diff --git a/app/src/main/java/com/example/nemophila/RequestingActivity.java b/app/src/main/java/com/example/nemophila/RequestingActivity.java index 1300847..3fa12bb 100644 --- a/app/src/main/java/com/example/nemophila/RequestingActivity.java +++ b/app/src/main/java/com/example/nemophila/RequestingActivity.java @@ -1,6 +1,7 @@ package com.example.nemophila; import androidx.annotation.NonNull; +import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -31,14 +32,21 @@ public class RequestingActivity extends AppCompatActivity { + FriendViewModel friendViewModel; + String uid; + String token; + String requestingId; + String searchingId; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_requesting); //Nemophilaから自分のuidとtokenを取得 - String uid = ((Nemophila)getApplication()).getUid(); - String token = ((Nemophila)getApplication()).getToken(); - String requestingId; + uid = ((Nemophila)getApplication()).getUid(); + token = ((Nemophila)getApplication()).getToken(); + String requestingName; + //左上のボタンでマイページへ遷移 Button returnButton = (Button)findViewById(R.id.requestingAcReturnButton); @@ -59,28 +67,37 @@ public void onClick(View v){ //入力されたIDを取得 EditText editSearchId = (EditText) findViewById(R.id.inputRequestingId); - String searchingId = editSearchId.getText().toString(); - //取得したIDのユーザー名を受け取り、OKならreqyestingIdに入れる + searchingId = editSearchId.getText().toString(); + //IDが存在しなければ落ちるのでその処理を書く + //取得したIDからアカウントを読み込んでおく accountViewModel.fetchAccount(searchingId); //検索用LiveDataへの購読 -// accountViewModel.getAccountLiveData().observe(this, new Observer() { -// -// @Override -// public void onChanged(Account user) { -// } -// }); + accountViewModel.getAccountLiveData().observe(RequestingActivity.this, new Observer() { - String requestingName; - //申請を送るダイアログを表示 - RequestingDialogFragment dialog = new RequestingDialogFragment(); - dialog.show(getSupportFragmentManager(), "Requesting_dialog"); - //OK押したら申請するメソッドにuid、requestingId、tokenを渡す + //ViewModelからアカウントが返ってくれば(データ変更があれば)実行 + @Override + public void onChanged(Account user) { + String 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を渡す + } + }); + } }); - //RecyclerView(表示の設定、直接表示するところはLivedataを購読しているonChanged内にしたい) + //RecyclerView(表示の設定、直接表示するところはLivedataを購読しているonChanged内に) List requestingDataList = new ArrayList<>(); //xmlからrvにRecyclerViewを取得、アダプターを宣言 @@ -97,12 +114,11 @@ rv.setHasFixedSize(true); rv.setLayoutManager(llm); - //FriendViewModelを宣言し、申請先のデータをロードしておく - FriendViewModel friendViewModel = new ViewModelProvider(this).get(FriendViewModel.class); + //FriendViewModelを初期化し、申請先のデータをロードしておく + friendViewModel = new ViewModelProvider(this).get(FriendViewModel.class); friendViewModel.getRequesting(uid); //申請先の一覧のLiveDataへの購読 - friendViewModel.getRequestingLiveData().observe(this, new Observer>() { //データに変更があった時実行 @Override @@ -126,27 +142,16 @@ rv.setAdapter(adapter); } }); - - -// //表示テスト用に仮データ -// List testDataSet = new ArrayList<>(); -// for (int i = 0; i < 15; i++) { -// RequestingDataModel data = new RequestingDataModel(); -// data.setName("ネモフィラ太郎"+ i + "号(テスト)"); -// -// testDataSet.add(data); -// } -// //onChange内に書くべき表示部分 -// adapter.setList(testDataSet); -// rv.setAdapter(adapter); - - } + //ダイアログでOKを押した時に呼び出される フレンド申請を送るメソッド + public void putRequesting(){ + requestingId = searchingId; + friendViewModel.putRequesting(uid, requestingId, token); + } //RecyclerViewのための内部クラス - //Adapter public class RequestingAdapter extends RecyclerView.Adapter {