diff --git a/app/src/main/java/org/ntlab/acanthus_client/Acanthus.java b/app/src/main/java/org/ntlab/acanthus_client/Acanthus.java index 3c78739..08f02fd 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/Acanthus.java +++ b/app/src/main/java/org/ntlab/acanthus_client/Acanthus.java @@ -123,6 +123,7 @@ SharedPreferences preferences = getSharedPreferences("prefData", MODE_PRIVATE); SharedPreferences.Editor editor = preferences.edit(); editor.putInt("aid", aid); + this.aid = aid; editor.commit(); } diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditFragment.java b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditFragment.java index 0cfd53c..f17960f 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditFragment.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditFragment.java @@ -18,6 +18,7 @@ import org.ntlab.acanthus_client.Acanthus; import org.ntlab.acanthus_client.R; import org.ntlab.acanthus_client.databinding.FragmentEditBinding; +import org.ntlab.acanthus_client.entities.AidJson; import org.ntlab.acanthus_client.entities.Animation; import org.ntlab.acanthus_client.entities.AnimationJson; import org.ntlab.acanthus_client.entities.WorkJson; @@ -141,6 +142,16 @@ }); + + editViewModel.getAidJson().observe(getViewLifecycleOwner(), new Observer() { + //作品の新規作成時の処理 + @Override + public void onChanged(AidJson aidJson) { + acanthus.setAid(aidJson.getAid()); + transitionPaintActivity(); + } + }); + } //------------------------------------------------------------------------------------------------- @@ -149,13 +160,13 @@ super.onDestroyView(); binding = null; } + @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); Button appButton = view.findViewById(R.id.Paint_button); Integer uid = 1; String token = "abc0"; - editViewModel.getWorkList(uid, token); //編集ボタン Button editButton = view.findViewById(R.id.Edit_button); @@ -165,9 +176,8 @@ //Integer uid = acanthus.getPreferenceUid(); String name = ((EditText)view.findViewById(R.id.AnimationName)).getText().toString(); //String token = acanthus.getPreferenceToken(); - Integer aid = editViewModel.startWorkEdit(uid, name, token); - acanthus.setAid(aid); - transitionPaintActivity(); + //Integer aid = editViewModel.startWorkEdit(uid, name, token); + editViewModel.startWorkEdit(uid, name, token); }); editButton.setOnClickListener(v -> { @@ -188,10 +198,11 @@ startActivity(intent); } + //各作品毎の画面遷移 private void transitionPaintActivity(AnimationJson animationJson) { Acanthus acanthus = (Acanthus) getActivity().getApplication(); Intent intent = new Intent(acanthus, PaintActivity.class); - intent.putExtra("AnimationJsonData", animationJson); + acanthus.setAid(animationJson.getAid()); startActivity(intent); } diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditViewModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditViewModel.java index 16f757e..f46ae6b 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditViewModel.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditViewModel.java @@ -36,15 +36,13 @@ } //新規作品作成APIの呼び出し - public Integer startWorkEdit(Integer uid, String animationName, String token) { + public void startWorkEdit(Integer uid, String animationName, String token) { Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/acanthus/") .addConverterFactory(JacksonConverterFactory.create()) .build(); final WorkRest workRest = retrofit.create(WorkRest.class); - final Integer[] aid = new Integer[1]; - //作品の新規作成 Call call = workRest.createWork(uid, animationName, token); call.enqueue(new Callback() { @@ -52,7 +50,6 @@ public void onResponse(Call call, Response response) { if (response.isSuccessful()) { if (response.body() != null) { - aid[0] = response.body().getAid(); aidJsonMutableLiveData.setValue(response.body()); } } @@ -64,7 +61,6 @@ } }); - return aid[0]; } //ユーザーの作成した作品の表示APIの呼び出し diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintActivity.java b/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintActivity.java index 00c0f7f..4c17d1d 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintActivity.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintActivity.java @@ -35,12 +35,15 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); init(); + initView(); + } //----------------------------------------------------------------- @Override - protected void onStart() { - super.onStart(); + protected void onResume() { + super.onResume(); + displayAid(); } @@ -71,8 +74,6 @@ paintViewModel = new ViewModelProvider(this).get(PaintViewModel.class); paintViewModel.init(acanthus); - initView(); - startObserve(); } @@ -103,7 +104,8 @@ // デバッグ用の現在編集中のAid表示 private void displayAid() { Acanthus acanthus = (Acanthus) getApplication(); - binding.textViewCurAid.setText("aid:" + acanthus.getAid().toString()); + TextView view = findViewById(R.id.textViewCurAid); + view.setText("aid:" + acanthus.getAid().toString()); } //------------------------------------------------------------------