diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/mypage/InvitedConnectionModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/mypage/InvitedConnectionModel.java index 20d1ad8..3ceb9a0 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/mypage/InvitedConnectionModel.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/mypage/InvitedConnectionModel.java @@ -6,9 +6,11 @@ import org.ntlab.acanthus_client.Acanthus; import org.ntlab.acanthus_client.R; +import org.ntlab.acanthus_client.entities.Editor; import org.ntlab.acanthus_client.entities.Work; import org.ntlab.acanthus_client.resources.accounts.InvitedRest; import org.ntlab.acanthus_client.resources.accounts.WorkRest; +import org.ntlab.acanthus_client.resources.gallery.EditorsRest; import retrofit2.Call; import retrofit2.Callback; @@ -23,6 +25,14 @@ private Retrofit retrofit; private Acanthus acanthus; + //----------------------------------------------------------------- + private Boolean isInvited; + + //----------------------------------------------------------------- + // setter + private void setIsInvited(Boolean isInvited) { + this.isInvited = isInvited; + } //----------------------------------------------------------------- //----------------------------------------------------------------- @@ -33,15 +43,16 @@ //----------------------------------------------------------------- // 招待確認 - public void checkInvited(MutableLiveData mIsInvitedText) { + public void checkInvited(MutableLiveData mIsInvited) { final InvitedRest invitedRest = retrofit.create(InvitedRest.class); + int dummyId = 2; - Call call = invitedRest.checkAccountInvited(acanthus.getPreferenceUid(), acanthus.getAid()); + Call call = invitedRest.checkAccountInvited(dummyId, acanthus.getAid()); call.enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { if (response.isSuccessful()) - mIsInvitedText.setValue(response.body().toString()); + mIsInvited.setValue(response.body()); } @Override @@ -53,16 +64,30 @@ } //----------------------------------------------------------------- + // 招待されているリストの取得API + public void getAccountInvitedList(){ + + } + + + //----------------------------------------------------------------- // 招待承認 public void acceptInvite() { final WorkRest workRest = retrofit.create(WorkRest.class); + int dummy = 1111; + // 作品への参加 - Call call = workRest.updateWork(acanthus.getPreferenceUid(), acanthus.getPreferenceToken(), acanthus.getAid()); + // 自身のID, token, 該当作品ID + // ToDo: Aidを外部から取得する必要あり? -> AccountのInviteMapから任意の + // ToDo: getAidを招待一覧画面で更新してから取得すれば変更しなくてよさそう + + + + Call call = workRest.updateWork(acanthus.getPreferenceUid(), acanthus.getPreferenceToken(), dummy); call.enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { - if (response.isSuccessful()) ; } @Override @@ -83,6 +108,6 @@ .addConverterFactory(JacksonConverterFactory.create()) .build(); } - //----------------------------------------------------------------- + //----------------------------------------------------------------- } diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/mypage/MyPageFragment.java b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/mypage/MyPageFragment.java index 2ac5e16..3407bf6 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/mypage/MyPageFragment.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/mypage/MyPageFragment.java @@ -1,13 +1,17 @@ package org.ntlab.acanthus_client.views.main_menu_ui.mypage; + import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.Button; +import android.widget.EditText; import android.widget.TextView; import org.ntlab.acanthus_client.Acanthus; +import org.ntlab.acanthus_client.R; import org.ntlab.acanthus_client.databinding.FragmentMypageBinding; import androidx.annotation.NonNull; @@ -16,6 +20,8 @@ import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; +import static android.os.Build.VERSION_CODES.R; + //----------------------------------------------------------------- // public class MyPageFragment extends Fragment { @@ -34,6 +40,11 @@ return root; } + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + onClickAccept(view); + } //----------------------------------------------------------------- // @Override @@ -43,6 +54,16 @@ } //----------------------------------------------------------------- + // + public void onClickAccept(View view) { + Button buttonIsInvited = view.findViewById(org.ntlab.acanthus_client.R.id.buttonIsInvited); + + buttonIsInvited.setOnClickListener(v -> { + mypageViewModel.acceptInviteRequest(); + }); + } + + //----------------------------------------------------------------- //----------------------------------------------------------------- // init private void init() { @@ -65,11 +86,12 @@ //----------------------------------------------------------------- // 招待されているテキストの変更監視 private void observeInvitedText() { - final TextView textIsInvited = binding.textIsInvited; - mypageViewModel.getImmutableIsInvitedText().observe(getViewLifecycleOwner(), new Observer() { + final Button buttonIsInvited = binding.buttonIsInvited; + mypageViewModel.getImmutableIsInvited().observe(getViewLifecycleOwner(), new Observer() { @Override - public void onChanged(@Nullable String s) { - textIsInvited.setText(s); + public void onChanged(Boolean aBoolean) { + buttonIsInvited.setText(aBoolean.toString()); + buttonIsInvited.setEnabled(aBoolean); } }); } diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/mypage/MyPageViewModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/mypage/MyPageViewModel.java index d71590b..ba633d4 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/mypage/MyPageViewModel.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/mypage/MyPageViewModel.java @@ -11,13 +11,13 @@ // マイページロジックの仲介者 public class MyPageViewModel extends ViewModel { private MyPageModelContainer myPageModelContainer; - private MutableLiveData mIsInvitedText = new MutableLiveData<>(); + private MutableLiveData mIsInvited = new MutableLiveData<>(); private MutableLiveData mUidText = new MutableLiveData<>(); //----------------------------------------------------------------- // getter - public LiveData getImmutableIsInvitedText() { - return mIsInvitedText; + public LiveData getImmutableIsInvited() { + return mIsInvited; } public LiveData getImmutableUidText() { @@ -34,7 +34,7 @@ //----------------------------------------------------------------- // 招待されているかを確認する通信リクエスト public void checkInvitedRequest() { - myPageModelContainer.getInvitedConnectionModel().checkInvited(mIsInvitedText); + myPageModelContainer.getInvitedConnectionModel().checkInvited(mIsInvited); } //----------------------------------------------------------------- @@ -43,4 +43,9 @@ myPageModelContainer.getMyPageInfoConnectionModel().getAccountByUid(mUidText); } //----------------------------------------------------------------- + // 招待を承諾するリクエスト + public void acceptInviteRequest(){ + myPageModelContainer.getInvitedConnectionModel().acceptInvite(); + } + //----------------------------------------------------------------- } \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/paint/InvitesConnectionModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/paint/InvitesConnectionModel.java index 588d2b5..8a06abd 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/paint/InvitesConnectionModel.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/paint/InvitesConnectionModel.java @@ -39,15 +39,17 @@ // 新しい編集者の追加(POST) public void inviteNewEditor(Integer invitedUid) { final InvitesRest invitesRest = retrofit.create(InvitesRest.class); + Integer owner = 1; + String token = "abc0"; + int dummy = 1111; //----------------------------------------------------------------- // 招待リクエストを送るAPI - Call call = invitesRest.addInvite( - acanthus.getAid(), acanthus.getPreferenceUid().toString(), invitedUid.toString(), acanthus.getPreferenceToken()); + Call call = invitesRest.addInvite(dummy, owner.toString(), invitedUid.toString(), token); call.enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { - + if(response.isSuccessful()); } @Override 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 b54769a..221e287 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 @@ -36,8 +36,8 @@ //----------------------------------------------------------------- // public void onClickInvite(View view) { - Integer dummy1Id = 1; - paintViewModel.inviteNewUserRequest(dummy1Id); + Integer dummyId = 2; + paintViewModel.inviteNewUserRequest(dummyId); } //----------------------------------------------------------------- diff --git a/app/src/main/res/layout/fragment_mypage.xml b/app/src/main/res/layout/fragment_mypage.xml index c5246db..d5d6870 100644 --- a/app/src/main/res/layout/fragment_mypage.xml +++ b/app/src/main/res/layout/fragment_mypage.xml @@ -7,29 +7,12 @@ tools:context=".views.main_menu_ui.mypage.MyPageFragment"> - - @@ -57,4 +40,15 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> +