diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
index 95b35cb..e58179e 100644
--- a/.idea/deploymentTargetDropDown.xml
+++ b/.idea/deploymentTargetDropDown.xml
@@ -12,6 +12,6 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/java/com/example/nemophila/RequestingActivity.java b/app/src/main/java/com/example/nemophila/RequestingActivity.java
index 0209578..78a3ec8 100644
--- a/app/src/main/java/com/example/nemophila/RequestingActivity.java
+++ b/app/src/main/java/com/example/nemophila/RequestingActivity.java
@@ -65,63 +65,64 @@
//フレンド検索ボタン
Button requestingButton = (Button)findViewById(R.id.requestingSearchButton);
requestingButton.setOnClickListener(new View.OnClickListener(){
+
@Override
public void onClick(View v){
//入力されたIDを取得
EditText editSearchId = (EditText) findViewById(R.id.inputRequestingId);
searchingId = editSearchId.getText().toString();
-
- //エラーコードを購読
- friendViewModel.getErrorLiveData().observe(RequestingActivity.this, new Observer() {
- @Override
- public void onChanged(String error) {
-
- if (error == ErrorType.ResponseError.getText()) {
- new AlertDialog.Builder(RequestingActivity.this)
- .setTitle("既にフレンド、申請を受けているなどの理由で申請できません")
- .setPositiveButton("OK", null)
- .create()
- .show();
- }
- }
- });
-
- //取得したIDからアカウントを読み込んでおく
+ //取得したIDからアカウントを読み込み、検索用LiveDataのonChangeへ
accountViewModel.fetchAccount(searchingId);
- //検索用LiveDataへの購読
- accountViewModel.getAccountLiveData().observe(RequestingActivity.this, new Observer() {
-
- //ViewModelからアカウントが返ってくれば(データ変更があれば)実行
- @Override
- public void onChanged(Account user) {
-
- if (user == null) {
- new AlertDialog.Builder(RequestingActivity.this)
- .setTitle("IDが間違っています")
- .setPositiveButton("OK", null)
- .create()
- .show();
- } else {
- requestingName = (user.getName());
-
- //申請を送るダイアログ
- RequestingDialogFragment dialog = new RequestingDialogFragment(RequestingActivity.this);
- //名前を渡す
- Bundle args = new Bundle();
- args.putString("message", requestingName);
- dialog.setArguments(args);
-
- //ダイアログの表示
- dialog.show(getSupportFragmentManager(), "Requesting_dialog");
- //OK押したら申請するメソッドにuid、requestingId、tokenを渡す
- }
- }
- });
-
- } //onClick終わり
-
+ }
});
+ //検索用LiveDataへの購読
+ accountViewModel.getAccountLiveData().observe(RequestingActivity.this, new Observer() {
+
+ //ViewModelから検索結果が返ってくれば(データ変更があれば)実行
+ @Override
+ public void onChanged(Account user) {
+
+ if (user == null) {
+ new AlertDialog.Builder(RequestingActivity.this)
+ .setTitle("IDが間違っています")
+ .setPositiveButton("OK", null)
+ .create()
+ .show();
+ } else {
+ requestingName = (user.getName());
+
+ //申請を送るダイアログ
+ RequestingDialogFragment dialog = new RequestingDialogFragment(RequestingActivity.this);
+ //名前を渡す
+ Bundle args = new Bundle();
+ args.putString("message", requestingName);
+ dialog.setArguments(args);
+
+ //ダイアログの表示
+ dialog.show(getSupportFragmentManager(), "Requesting_dialog");
+ //OK押したら申請するメソッドにuid、requestingId、tokenを渡す
+ }
+ }
+ });
+
+ //FriendViewModelの初期化
+ friendViewModel = new ViewModelProvider(this).get(FriendViewModel.class);
+
+ //エラーコードを購読
+ friendViewModel.getErrorLiveData().observe(RequestingActivity.this, new Observer() {
+ @Override
+ public void onChanged(String error) {
+
+ if (error == ErrorType.ResponseError.getText()) {
+ new AlertDialog.Builder(RequestingActivity.this)
+ .setTitle("既にフレンド、申請を受けているなどの理由で申請できません")
+ .setPositiveButton("OK", null)
+ .create()
+ .show();
+ }
+ }
+ });
//RecyclerView(表示の設定、直接表示するところはLivedataを購読しているonChanged内に)
List requestingDataList = new ArrayList<>();
@@ -172,13 +173,16 @@
requestingDataList.clear();
//受け取ったLivedataの要素分繰り返し、セット
for (AccountNameJson user: requestingUsers) {
- //dataを宣言 dataに投稿の必要なデータをセットし、それをpostsDatasetに追加してリストを作る
+ //申請先1人に必要な情報をセットするdataを宣言
RequestingDataModel data = new RequestingDataModel();
+ //dataをpostsDatasetに追加してリストを作る
data.setName(user.getName());
data.setId(user.getUid());
- //申請先一つの情報がdataに全部セットされたらDatasetに追加
- requestingDataList.add(0, data);
+ //申請先一つの情報がdataに全部セットされたらDatasetに追加 重複していたら追加しない
+ if(!(requestingDataList.contains(data))) {
+ requestingDataList.add(0, data);
+ }
}
//onChange内に書くべき表示部分
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 6a5f9f7..8f3dc95 100644
--- a/app/src/main/java/com/example/nemophila/viewmodels/FriendViewModel.java
+++ b/app/src/main/java/com/example/nemophila/viewmodels/FriendViewModel.java
@@ -238,7 +238,7 @@
preData.add(anj);
}
preData.add(createAccountNameJson(uid, name));
- requestedLiveData.setValue(preData);
+ requestingLiveData.setValue(preData);
}
private void removeFriendLiveData(String id) {