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 47fb8f8..b9244e5 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 @@ -14,6 +14,7 @@ import org.ntlab.acanthus_client.R; import org.ntlab.acanthus_client.databinding.FragmentMypageBinding; import org.ntlab.acanthus_client.views.animation.AnimationActivity; +import org.ntlab.acanthus_client.views.main_menu_ui.mypage.help.HowToUseActivity; import org.ntlab.acanthus_client.views.main_menu_ui.mypage.help.InquiryActivity; import org.ntlab.acanthus_client.views.main_menu_ui.mypage.others.AppInformationActivity; import org.ntlab.acanthus_client.views.main_menu_ui.mypage.logout.LogoutActivity; @@ -278,7 +279,7 @@ // private void transitionHowToUseActivity() { Acanthus acanthus = (Acanthus) getActivity().getApplication(); - Intent intent = new Intent(acanthus, FollowFollowerActivity.class); + Intent intent = new Intent(acanthus, HowToUseActivity.class); startActivity(intent); } 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 ba633d4..bfc4463 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 @@ -3,8 +3,17 @@ import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModel; +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; +import retrofit2.Retrofit; +import retrofit2.converter.jackson.JacksonConverterFactory; import org.ntlab.acanthus_client.Acanthus; +import org.ntlab.acanthus_client.entities.FollowJson; +import org.ntlab.acanthus_client.entities.FollowerJson; +import org.ntlab.acanthus_client.resources.accounts.FollowersRest; +import org.ntlab.acanthus_client.resources.accounts.FollowsRest; //----------------------------------------------------------------- @@ -13,6 +22,8 @@ private MyPageModelContainer myPageModelContainer; private MutableLiveData mIsInvited = new MutableLiveData<>(); private MutableLiveData mUidText = new MutableLiveData<>(); + private MutableLiveData myFollowJsonMutableLiveData; + private MutableLiveData myFollowerJsonMutableLiveData; //----------------------------------------------------------------- // getter @@ -24,11 +35,21 @@ return mUidText; } + public LiveData getMyFollowJson() { + return myFollowJsonMutableLiveData; + } + + public LiveData getMyFollowerJson() { + return myFollowerJsonMutableLiveData; + } + //----------------------------------------------------------------- //----------------------------------------------------------------- // init public void init(Acanthus acanthus) { myPageModelContainer = new MyPageModelContainer(acanthus); + this.myFollowJsonMutableLiveData = new MutableLiveData<>(); + this.myFollowerJsonMutableLiveData = new MutableLiveData<>(); } //----------------------------------------------------------------- @@ -47,5 +68,62 @@ public void acceptInviteRequest(){ myPageModelContainer.getInvitedConnectionModel().acceptInvite(); } + //----------------------------------------------------------------- + //ログイン中のユーザーのフォローリストを取得する + public void getMyFollows(Integer uid) { + Retrofit retrofit = new Retrofit.Builder() + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/acanthus/") + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + final FollowsRest followsRest = retrofit.create(FollowsRest.class); + + //フォローリストの取得 + Call call = followsRest.getFollows(uid); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()) { + if (response.body() != null) { + myFollowJsonMutableLiveData.setValue(response.body()); + } + } + } + + @Override + public void onFailure(Call call, Throwable t) { + + } + }); + } + + //----------------------------------------------------------------- + //ユーザーのフォロワーリストを取得する + public void getMyFollowers(Integer uid){ + Retrofit retrofit = new Retrofit.Builder() + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/acanthus/") + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + final FollowersRest followersRest = retrofit.create(FollowersRest.class); + + //フォロワーリストの取得 + Call call = followersRest.getFollowers(uid); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()) { + if (response.body() != null) { + myFollowerJsonMutableLiveData.setValue(response.body()); + } + } + } + + @Override + public void onFailure(Call call, Throwable t) { + + } + }); + + } + } \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followFollower/UserPageViewModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followFollower/UserPageViewModel.java index 3b5ba22..c128e73 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followFollower/UserPageViewModel.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followFollower/UserPageViewModel.java @@ -21,18 +21,24 @@ public class UserPageViewModel extends ViewModel { - private MutableLiveData followJsonMutableLiveData; + private MutableLiveData myFollowJsonMutableLiveData; + private MutableLiveData userFollowJsonMutableLiveData; private MutableLiveData followerJsonMutableLiveData; private MutableLiveData> animationJsonMutableLiveData; public UserPageViewModel(){ - this.followJsonMutableLiveData = new MutableLiveData<>(); + this.myFollowJsonMutableLiveData = new MutableLiveData<>(); + this.userFollowJsonMutableLiveData = new MutableLiveData<>(); this.followerJsonMutableLiveData = new MutableLiveData<>(); this.animationJsonMutableLiveData = new MutableLiveData<>(); } - public LiveData getFollowJson(){ - return this.followJsonMutableLiveData; + public LiveData getMyFollowJson(){ + return this.myFollowJsonMutableLiveData; + } + + public LiveData getUserFollowJson() { + return this.userFollowJsonMutableLiveData; } public LiveData getFollowerJson() { @@ -43,8 +49,8 @@ return animationJsonMutableLiveData; } - //ユーザーのフォローリストを取得する - public void getFollows(Integer uid){ + //ログイン中のユーザーのフォローリストを取得する + public void getMyFollows(Integer uid){ Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/acanthus/") .addConverterFactory(JacksonConverterFactory.create()) @@ -58,7 +64,35 @@ public void onResponse(Call call, Response response) { if (response.isSuccessful()) { if (response.body() != null) { - followJsonMutableLiveData.setValue(response.body()); + myFollowJsonMutableLiveData.setValue(response.body()); + } + } + } + + @Override + public void onFailure(Call call, Throwable t) { + + } + }); + + } + + //ユーザーのフォローリストを取得する(衝突回避用) + public void getUserFollows(Integer uid){ + Retrofit retrofit = new Retrofit.Builder() + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/acanthus/") + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + final FollowsRest followsRest = retrofit.create(FollowsRest.class); + + //フォローリストの取得 + Call call = followsRest.getFollows(uid); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()) { + if (response.body() != null) { + userFollowJsonMutableLiveData.setValue(response.body()); } } } diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followFollower/followList/FollowListFragment.java b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followFollower/followList/FollowListFragment.java index 5481f3c..c1d78d9 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followFollower/followList/FollowListFragment.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followFollower/followList/FollowListFragment.java @@ -1,4 +1,4 @@ -package org.ntlab.acanthus_client.views.userpage.followFollower.followList; +package org.ntlab.acanthus_client.views.userpage.followList; import android.content.Intent; import android.os.Bundle; @@ -75,4 +75,5 @@ }); } + } diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followFollower/followerList/FollowerListFragment.java b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followFollower/followerList/FollowerListFragment.java index 8870d21..1fd2b59 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followFollower/followerList/FollowerListFragment.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followFollower/followerList/FollowerListFragment.java @@ -1,34 +1,25 @@ -package org.ntlab.acanthus_client.views.userpage.followFollower.followerList; +package org.ntlab.acanthus_client.views.userpage.followerList; import android.content.Intent; import android.os.Bundle; - -import androidx.fragment.app.Fragment; -import androidx.lifecycle.Observer; -import androidx.lifecycle.ViewModelProvider; - -import android.view.LayoutInflater; import android.view.View; -import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ListView; import org.jetbrains.annotations.Nullable; -import org.ntlab.acanthus_client.Acanthus; import org.ntlab.acanthus_client.R; import org.ntlab.acanthus_client.entities.FollowerJson; -import org.ntlab.acanthus_client.views.userpage.followFollower.UserListViewAdapter; +import org.ntlab.acanthus_client.views.userpage.UserListViewAdapter; import org.ntlab.acanthus_client.views.userpage.UserPageActivity; -import org.ntlab.acanthus_client.views.userpage.followFollower.UserPageViewModel; +import org.ntlab.acanthus_client.views.userpage.UserPageViewModel; import java.util.ArrayList; public class FollowerListFragment extends Fragment { private UserPageViewModel userPageViewModel; - private Acanthus acanthus; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, @@ -71,4 +62,5 @@ }); } -} \ No newline at end of file + +} diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/workList/WorkListActivity.java b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/workList/WorkListActivity.java index 04b6d59..56d70a0 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/workList/WorkListActivity.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/workList/WorkListActivity.java @@ -7,6 +7,7 @@ import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ListView; +import android.widget.TextView; import org.ntlab.acanthus_client.R; import org.ntlab.acanthus_client.entities.AnimationJson; @@ -34,21 +35,24 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_work_list); + setTitle("作品一覧"); userPageViewModel = new ViewModelProvider(this).get(UserPageViewModel.class); Intent intent = getIntent(); //UserPageActivityからuidをもらう Integer uid = intent.getIntExtra("UID", 0); ListView listView = findViewById(R.id.workListView); - Button returnButton = findViewById(R.id.returnWorkButton); + TextView workSize = findViewById(R.id.workSizeText); + +// Button returnButton = findViewById(R.id.returnWorkButton); //前の画面に戻る処理 - returnButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - finish(); - } - }); +// returnButton.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View v) { +// finish(); +// } +// }); //全ユーザーの作品から特定のユーザーの作品を抽出し、一覧として表示する userPageViewModel.getGallery(); @@ -66,6 +70,10 @@ } } + //作品の数を表示 + Integer size = animationJsonHashMap.size(); + workSize.setText("作品 " + size.toString()); + //ユーザー作品の昇順(作品を新しい順に並び変える) List> listEntries = new ArrayList<>(animationJsonHashMap.entrySet()); Collections.sort(listEntries, new Comparator>() { diff --git a/app/src/main/res/layout/activity_follow_list.xml b/app/src/main/res/layout/activity_follow_list.xml new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app/src/main/res/layout/activity_follow_list.xml diff --git a/app/src/main/res/layout/activity_follower_list.xml b/app/src/main/res/layout/activity_follower_list.xml new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app/src/main/res/layout/activity_follower_list.xml diff --git a/app/src/main/res/layout/activity_userpage.xml b/app/src/main/res/layout/activity_userpage.xml index a4adfe0..3d73636 100644 --- a/app/src/main/res/layout/activity_userpage.xml +++ b/app/src/main/res/layout/activity_userpage.xml @@ -31,13 +31,6 @@ app:layout_constraintTop_toTopOf="parent" tools:layout_editor_absoluteX="0dp"> - - + + + + + -