diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
index 66f7271..40556a2 100644
--- a/.idea/deploymentTargetDropDown.xml
+++ b/.idea/deploymentTargetDropDown.xml
@@ -7,11 +7,11 @@
-
+
-
+
\ No newline at end of file
diff --git a/app/src/main/java/com/example/nemophila/FriendActivity.java b/app/src/main/java/com/example/nemophila/FriendActivity.java
index ffb93c8..02785cb 100644
--- a/app/src/main/java/com/example/nemophila/FriendActivity.java
+++ b/app/src/main/java/com/example/nemophila/FriendActivity.java
@@ -2,6 +2,7 @@
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
@@ -16,9 +17,11 @@
import android.widget.ImageView;
import android.widget.TextView;
+import com.example.nemophila.entities.AccountNameJson;
import com.example.nemophila.viewmodels.FriendViewModel;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
public class FriendActivity extends AppCompatActivity {
@@ -48,8 +51,25 @@
rv.setLayoutManager(llm);
String myUid = nemophila.getUid(); // 自身のidを取得
-// friendViewModel.getFriends(myUid); // 自身のフレンドの一覧を取得するメソッドを呼び出す
-
+ friendViewModel.getFriends(myUid); // 自身のフレンドの一覧を取得するメソッドを呼び出す
+
+ friendViewModel.getFriendsLiveData().observe(this, new Observer>() {
+ @Override
+ public void onChanged(Collection friends) {
+ // 以前のデータが残っていると不都合なので、空にしておく
+ friendsDataset.clear();
+
+ for (AccountNameJson friend : friends) {
+ FriendDataModel data = new FriendDataModel();
+ data.setName(friend.getName());
+ friendsDataset.add(data);
+
+ //RecyclerViewをonChangedが呼ばれるたび表示(アダプターを更新してRecyclerViewにセット)
+ adapter.setList(friendsDataset);
+ rv.setAdapter(adapter);
+ }
+ }
+ });
// マイページ画面に画面遷移する
Button backButton = findViewById(R.id.backMyPage);
diff --git a/app/src/main/java/com/example/nemophila/SignUpActivity.java b/app/src/main/java/com/example/nemophila/SignUpActivity.java
index e1f276b..b867654 100644
--- a/app/src/main/java/com/example/nemophila/SignUpActivity.java
+++ b/app/src/main/java/com/example/nemophila/SignUpActivity.java
@@ -34,6 +34,14 @@
//Nemophilaと連携
nemophila = (Nemophila) this.getApplication();
+ //Nemophilaにtokenとuidがある場合サインアップ画面をスキップ
+ if ((nemophila.getUid() != null) && (nemophila.getToken() != null)){
+ Intent intent = new Intent(SignUpActivity.this,MainActivity.class);
+ startActivity(intent);
+ System.out.println("サインアップ処理をスキップ");
+ return;
+ }
+
//通信の初期化
this.retrofit = new Retrofit.Builder()
.baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/nemophila/")
diff --git a/app/src/main/java/com/example/nemophila/entities/AccountNameJson.java b/app/src/main/java/com/example/nemophila/entities/AccountNameJson.java
index d865620..2df8fc1 100644
--- a/app/src/main/java/com/example/nemophila/entities/AccountNameJson.java
+++ b/app/src/main/java/com/example/nemophila/entities/AccountNameJson.java
@@ -1,6 +1,22 @@
package com.example.nemophila.entities;
public class AccountNameJson {
+ private String uid;
private String name;
- private String id;
+
+ // Getter
+ public String getName() {
+ return name;
+ }
+ public String getUid() {
+ return uid;
+ }
+
+ // Setter
+ public void setName(String name) {
+ this.name = name;
+ }
+ public void setUid(String uid) {
+ this.uid = uid;
+ }
}
diff --git a/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java b/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java
index b670f3a..aec3547 100644
--- a/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java
+++ b/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java
@@ -1,5 +1,6 @@
package com.example.nemophila.viewmodels;
+import android.util.Log;
import android.widget.TextView;
import com.example.nemophila.R;
@@ -12,6 +13,7 @@
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
@@ -31,6 +33,7 @@
private final MutableLiveData pwLiveData;
private final MutableLiveData> accountPostsLiveData;
private final MutableLiveData pwErrorLiveData;
+ private final MutableLiveData accountLiveData;
// コンストラクタ
public AccountViewModel() {
@@ -43,6 +46,7 @@
this.pwLiveData = new MutableLiveData<>();
this.accountPostsLiveData = new MutableLiveData<>();
this.pwErrorLiveData = new MutableLiveData<>();
+ this.accountLiveData = new MutableLiveData<>();
}
// ライブデータの取得(ゲッター)
@@ -56,6 +60,9 @@
public MutableLiveData getPwErrorLiveData() {
return pwErrorLiveData;
}
+ public MutableLiveData getAccountLiveData() {
+ return accountLiveData;
+ }
// 対象のアカウント情報の削除
public void deleteAccount(String uid, String token) {
@@ -156,6 +163,47 @@
accountPostsLiveData.setValue(posts);
}
+ //idからアカウント情報を取得するメソッド
+ private void fetchAccount(String id) {
+ Call call = accountsRest.getAccount(id);
+
+ call.enqueue(new Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+ if (response.isSuccessful()) {
+ Account ac = new Account(response.body());
+ accountLiveData.setValue(ac);
+ System.out.println("success");
+ } else {
+ System.out.println("response error");
+ }
+ }
+
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ System.out.println("network error" + t);
+ }
+ });
+ }
+
+ //同期的にidからアカウント情報を取得するメソッド
+ public Account sample(String id) {
+ try {
+ Response response = accountsRest.getAccount(id).execute();
+
+ if (response.isSuccessful()) {
+ Account account = new Account(response.body());
+ return account;
+ } else {
+ Log.d("message", "error" + response.code());
+ }
+
+ } catch (IOException e) {
+ Log.i("message", "error" + e.getMessage());
+ }
+ return null;
+ }
+
// 対象のアカウントがした投稿の削除
public void deleteAccountPost(String sid, String uid, String pid, String token) {
Call call = accountsRest.deletePost(sid, uid, pid, token);
diff --git a/app/src/main/java/com/example/nemophila/viewmodels/FriendViewModel.java b/app/src/main/java/com/example/nemophila/viewmodels/FriendViewModel.java
index a9cfb11..2be6f58 100644
--- a/app/src/main/java/com/example/nemophila/viewmodels/FriendViewModel.java
+++ b/app/src/main/java/com/example/nemophila/viewmodels/FriendViewModel.java
@@ -22,8 +22,8 @@
private final Retrofit retrofit;
private final FriendsRest friendsRest;
// ライブデータ
- private final MutableLiveData friendsLiveData;
- private final MutableLiveData requestedLiveData;
+ private final MutableLiveData> friendsLiveData;
+ private final MutableLiveData> requestedLiveData;
private final MutableLiveData> requestingLiveData;
// コンストラクタ
@@ -39,16 +39,16 @@
}
// ライブデータの取得(ゲッター)
- public MutableLiveData getFriendsLiveData() {
+ public MutableLiveData> getFriendsLiveData() {
return friendsLiveData;
}
- public MutableLiveData getRequestedLiveData() {
+ public MutableLiveData> getRequestedLiveData() {
return requestedLiveData;
}
public MutableLiveData> getRequestingLiveData() { return requestingLiveData; }
-
+//フレンドの情報の取得
public void getFriends(String uid) {
Call> call = friendsRest.getFriends(uid);
call.enqueue(new Callback>() {
@@ -56,8 +56,8 @@
public void onResponse(Call> call, Response> response) {
if (response.isSuccessful()) {
System.out.println("Successful");
- Collection AccountNameJson = response.body();
-// setFriendsLiveDataFromJson(AccountNameJson);
+ Collection accountNameJson = response.body();
+ friendsLiveData.setValue(accountNameJson);
} else {
System.out.println("ResponseError");
@@ -69,7 +69,7 @@
}
});
}
-
+//
public void putFriend(String uid,String fid, String token) {
Call call = friendsRest.putFriend(uid,fid,token);
call.enqueue(new Callback() {
@@ -87,7 +87,7 @@
}
});
}
-
+ // 対象のアカウントのフレンド登録情報の削除
public void deleteFriend(String uid,String fid, String token) {
Call call = friendsRest.deleteFriend(uid,fid,token);
call.enqueue(new Callback() {
@@ -105,7 +105,7 @@
}
});
}
-
+ //フレンド申請を行うときの情報の取得
public void getRequesting(String uid) {
Call> call = friendsRest.getRequesting(uid);
call.enqueue(new Callback>() {
@@ -141,6 +141,7 @@
}
});
}
+ // 対象のアカウントのフレンド申請を行うときの情報削除
public void deleteRequesting(String uid,String requesting_id, String token) {
Call call = friendsRest.deleteRequesting(uid,requesting_id,token);
call.enqueue(new Callback() {
@@ -158,7 +159,7 @@
}
});
}
-
+ //フレンド申請を行われたときの情報の取得
public void getRequested(String uid) {
Call> call = friendsRest.getRequested(uid);
call.enqueue(new Callback>() {
@@ -176,7 +177,7 @@
}
});
}
-
+ // 対象のアカウントのフレンド申請を行われたときの情報削除
public void deleteRequested(String uid,String fid, String token) {
Call call = friendsRest.deleteRequested(uid,fid,token);
call.enqueue(new Callback() {