diff --git a/app/src/main/java/org/ntlab/acanthus_client/entities/FollowAddJson.java b/app/src/main/java/org/ntlab/acanthus_client/entities/FollowAddJson.java index c4841b3..ec733a7 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/entities/FollowAddJson.java +++ b/app/src/main/java/org/ntlab/acanthus_client/entities/FollowAddJson.java @@ -1,9 +1,14 @@ package org.ntlab.acanthus_client.entities; public class FollowAddJson { + private String message = "Follow registration success"; private Integer uid; private Integer followUid; + public String getMessage() { + return message; + } + public Integer getUid() { return uid; } @@ -20,4 +25,7 @@ this.followUid = followUid; } + public void setMessage(String message) { + this.message = message; + } } diff --git a/app/src/main/java/org/ntlab/acanthus_client/entities/FollowUidJson.java b/app/src/main/java/org/ntlab/acanthus_client/entities/FollowUidJson.java index ddf8087..f116fc9 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/entities/FollowUidJson.java +++ b/app/src/main/java/org/ntlab/acanthus_client/entities/FollowUidJson.java @@ -4,14 +4,14 @@ import java.util.Collection; public class FollowUidJson { - private Collection uidList = new ArrayList<>(); + private ArrayList followsUid = new ArrayList<>(); - public Collection getUidList() { - return uidList; + public Collection getFollowsUid() { + return followsUid; } - public void setUidList(Collection uidList) { - this.uidList = uidList; + public void setFollowsUid(ArrayList followsUid) { + this.followsUid = followsUid; } } diff --git a/app/src/main/java/org/ntlab/acanthus_client/entities/FollowerUidJson.java b/app/src/main/java/org/ntlab/acanthus_client/entities/FollowerUidJson.java index 3498d99..6893048 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/entities/FollowerUidJson.java +++ b/app/src/main/java/org/ntlab/acanthus_client/entities/FollowerUidJson.java @@ -4,13 +4,14 @@ import java.util.Collection; public class FollowerUidJson { - private Collection uidList = new ArrayList<>(); + private ArrayList followersUid = new ArrayList<>(); - public Collection getUidList() { - return uidList; + public Collection getFollowersUid() { + return followersUid; } - public void setUidList(Collection uidList) { - this.uidList = uidList; + public void setFollowersUid(ArrayList followersUid) { + this.followersUid = followersUid; } + } diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/UserPageActivity.java b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/UserPageActivity.java index f805a0a..85b07e6 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/UserPageActivity.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/UserPageActivity.java @@ -1,16 +1,22 @@ package org.ntlab.acanthus_client.views.userpage; +import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; +import org.jetbrains.annotations.Nullable; import org.ntlab.acanthus_client.Acanthus; import org.ntlab.acanthus_client.R; +import org.ntlab.acanthus_client.entities.FollowUidJson; +import org.ntlab.acanthus_client.views.userpage.followList.FollowListActivity; +import org.ntlab.acanthus_client.views.userpage.followerList.FollowerListActivity; +import org.ntlab.acanthus_client.views.userpage.workList.WorkListActivity; + import androidx.appcompat.app.AppCompatActivity; -import androidx.fragment.app.FragmentManager; -import androidx.fragment.app.FragmentTransaction; +import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; public class UserPageActivity extends AppCompatActivity { @@ -25,6 +31,8 @@ userPageViewModel = new ViewModelProvider(this).get(UserPageViewModel.class); acanthus = (Acanthus) getApplication(); + Integer uid = 1; + String token = "abc0"; TextView userNameText = findViewById(R.id.userNameText); // userNameText.setText(); @@ -43,6 +51,15 @@ Button followUserButton = findViewById(R.id.followUserButton); //ログインしているユーザーがフォローしているかの有無で画面表示時のボタンの文字を変更する + userPageViewModel.getFollows(uid); + userPageViewModel.getFollowUidJson().observe(this, new Observer() { + @Override + public void onChanged(@Nullable FollowUidJson followUidJson) { + + + } + }); + // if () { // followUserButton.setText("フォロー解除"); // }else{ @@ -54,10 +71,10 @@ @Override public void onClick(View v) { // if () { -// //userPageViewModel.addFollow(); +// userPageViewModel.addFollow(uid, token, 2); // followUserButton.setText("フォロー解除"); // }else{ -// //userPageViewModel.releaseFollow(); +// userPageViewModel.releaseFollow(uid, token, 2); // followUserButton.setText("フォローする"); // } } @@ -68,10 +85,8 @@ followListButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - FragmentManager fragmentManager = getSupportFragmentManager(); - FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); -// fragmentTransaction.replace(R.id.container, new ); - fragmentTransaction.commit(); + Intent intent = new Intent(getApplication(), FollowListActivity.class); + startActivity(intent); } }); @@ -80,10 +95,8 @@ followerListButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - FragmentManager fragmentManager = getSupportFragmentManager(); - FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); -// fragmentTransaction.replace(R.id.container, new ); - fragmentTransaction.commit(); + Intent intent = new Intent(getApplication(), FollowerListActivity.class); + startActivity(intent); } }); @@ -92,10 +105,8 @@ workListButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - FragmentManager fragmentManager = getSupportFragmentManager(); - FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); -// fragmentTransaction.replace(R.id.container, new ); - fragmentTransaction.commit(); + Intent intent = new Intent(getApplication(), WorkListActivity.class); + startActivity(intent); } }); diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/UserPageViewModel.java b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/UserPageViewModel.java index d5f9261..c4db76d 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/UserPageViewModel.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/UserPageViewModel.java @@ -1,12 +1,15 @@ package org.ntlab.acanthus_client.views.userpage; +import android.util.Log; + import org.ntlab.acanthus_client.entities.FollowAddJson; import org.ntlab.acanthus_client.entities.FollowUidJson; +import org.ntlab.acanthus_client.entities.FollowerUidJson; +import org.ntlab.acanthus_client.resources.accounts.FollowersRest; import org.ntlab.acanthus_client.resources.accounts.FollowsRest; -import java.util.ArrayList; -import java.util.Collection; - +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModel; import retrofit2.Call; import retrofit2.Callback; @@ -16,14 +19,20 @@ public class UserPageViewModel extends ViewModel { - private Collection followUidList; + private MutableLiveData followUidJsonMutableLiveData; + private MutableLiveData followerUidJsonMutableLiveData; public UserPageViewModel(){ - this.followUidList = new ArrayList<>(); + this.followUidJsonMutableLiveData = new MutableLiveData<>(); + this.followerUidJsonMutableLiveData = new MutableLiveData<>(); } - public Collection getFollowUidList(){ - return this.followUidList; + public LiveData getFollowUidJson(){ + return this.followUidJsonMutableLiveData; + } + + public LiveData getFollowerUidJson() { + return this.followerUidJsonMutableLiveData; } //ユーザーのフォローリストを取得する @@ -41,14 +50,14 @@ public void onResponse(Call call, Response response) { if (response.isSuccessful()) { if (response.body() != null) { - followUidList = response.body().getUidList(); + followUidJsonMutableLiveData.setValue(response.body()); } } } @Override public void onFailure(Call call, Throwable t) { - + Log.d("tag", "onFailure: "); } }); @@ -91,19 +100,43 @@ final FollowsRest followsRest = retrofit.create(FollowsRest.class); //フォローの解除 - Call call = followsRest.releaseFollows(uid, token, followUid); - call.enqueue(new Callback() { + Call call = followsRest.releaseFollows(uid, token, followUid); + call.enqueue(new Callback() { @Override - public void onResponse(Call call, Response response) { + public void onResponse(Call call, Response response) { + + } + + @Override + public void onFailure(Call call, Throwable t) { + + } + }); + + } + + //ユーザーのフォロワーリストを取得する + public void getFollowers(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) { - + followerUidJsonMutableLiveData.setValue(response.body()); } } } @Override - public void onFailure(Call call, Throwable t) { + public void onFailure(Call call, Throwable t) { } }); diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followList/FollowListActivity.java b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followList/FollowListActivity.java new file mode 100644 index 0000000..b271941 --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followList/FollowListActivity.java @@ -0,0 +1,38 @@ +package org.ntlab.acanthus_client.views.userpage.followList; + +import android.os.Bundle; +import android.view.View; +import android.widget.Button; + +import org.ntlab.acanthus_client.R; +import org.ntlab.acanthus_client.views.userpage.UserPageViewModel; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.lifecycle.ViewModelProvider; + +public class FollowListActivity extends AppCompatActivity { + + private UserPageViewModel userPageViewModel; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_follow_list); + + userPageViewModel = new ViewModelProvider(this).get(UserPageViewModel.class); + + Button returnButton = findViewById(R.id.returnFollowButton); + + //前の画面に戻る処理 + returnButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + + + + } + +} diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followList/FollowListFragment.java b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followList/FollowListFragment.java deleted file mode 100644 index 94e725e..0000000 --- a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followList/FollowListFragment.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.ntlab.acanthus_client.views.userpage.followList; - -public class FollowListFragment { - - - -} diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followerList/FollowerListActivity.java b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followerList/FollowerListActivity.java new file mode 100644 index 0000000..1627710 --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followerList/FollowerListActivity.java @@ -0,0 +1,39 @@ +package org.ntlab.acanthus_client.views.userpage.followerList; + +import android.os.Bundle; +import android.view.View; +import android.widget.Button; + +import org.ntlab.acanthus_client.R; +import org.ntlab.acanthus_client.views.userpage.UserPageViewModel; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.lifecycle.ViewModelProvider; + + +public class FollowerListActivity extends AppCompatActivity { + + private UserPageViewModel userPageViewModel; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_follower_list); + + userPageViewModel = new ViewModelProvider(this).get(UserPageViewModel.class); + + Button returnButton = findViewById(R.id.returnFollowerButton); + + //前の画面に戻る処理 + returnButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + + + + } + +} diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followerList/FollowerListFragment.java b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followerList/FollowerListFragment.java deleted file mode 100644 index 15536c1..0000000 --- a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/followerList/FollowerListFragment.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.ntlab.acanthus_client.views.userpage.followerList; - -public class FollowerListFragment { - - - -} 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 new file mode 100644 index 0000000..9a543e7 --- /dev/null +++ b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/workList/WorkListActivity.java @@ -0,0 +1,35 @@ +package org.ntlab.acanthus_client.views.userpage.workList; + +import android.os.Bundle; +import android.view.View; +import android.widget.Button; + +import org.ntlab.acanthus_client.R; +import org.ntlab.acanthus_client.views.userpage.UserPageViewModel; + +import androidx.appcompat.app.AppCompatActivity; + +public class WorkListActivity extends AppCompatActivity { + + private UserPageViewModel userPageViewModel; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_work_list); + + Button returnButton = findViewById(R.id.returnWorkButton); + + //前の画面に戻る処理 + returnButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + + + + } + +} diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/workList/WorkListFragment.java b/app/src/main/java/org/ntlab/acanthus_client/views/userpage/workList/WorkListFragment.java deleted file mode 100644 index dc4899c..0000000 --- a/app/src/main/java/org/ntlab/acanthus_client/views/userpage/workList/WorkListFragment.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.ntlab.acanthus_client.views.userpage.workList; - -public class WorkListFragment { - - - -} 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..3dd42ce --- /dev/null +++ b/app/src/main/res/layout/activity_follow_list.xml @@ -0,0 +1,19 @@ + + + +