diff --git a/app/src/main/java/com/example/nemophila/RequestingActivity.java b/app/src/main/java/com/example/nemophila/RequestingActivity.java index 3fa12bb..988fadd 100644 --- a/app/src/main/java/com/example/nemophila/RequestingActivity.java +++ b/app/src/main/java/com/example/nemophila/RequestingActivity.java @@ -1,7 +1,6 @@ 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; @@ -9,6 +8,8 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import android.app.AlertDialog; +import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; @@ -18,6 +19,7 @@ import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; +import android.widget.Toast; import com.example.nemophila.entities.Account; import com.example.nemophila.entities.AccountNameJson; @@ -36,6 +38,7 @@ String uid; String token; String requestingId; + String requestingName; String searchingId; @Override @@ -45,7 +48,7 @@ //Nemophilaから自分のuidとtokenを取得 uid = ((Nemophila)getApplication()).getUid(); token = ((Nemophila)getApplication()).getToken(); - String requestingName; + //左上のボタンでマイページへ遷移 @@ -78,7 +81,7 @@ //ViewModelからアカウントが返ってくれば(データ変更があれば)実行 @Override public void onChanged(Account user) { - String requestingName = (user.getName()); + requestingName = (user.getName()); //申請を送るダイアログ RequestingDialogFragment dialog = new RequestingDialogFragment(RequestingActivity.this); @@ -100,9 +103,28 @@ //RecyclerView(表示の設定、直接表示するところはLivedataを購読しているonChanged内に) List requestingDataList = new ArrayList<>(); - //xmlからrvにRecyclerViewを取得、アダプターを宣言 + //xmlからrvにRecyclerViewを取得 RecyclerView rv = (RecyclerView) findViewById(R.id.requestingList); - RequestingAdapter adapter = new RequestingAdapter(requestingDataList); + + //アダプターを宣言し、削除ボタンを押したときの処理をオーバーライド + RequestingAdapter adapter = new RequestingAdapter(requestingDataList){ + @Override + void onDeleteClick(View view, int position, RequestingDataModel user) { + new AlertDialog.Builder(RequestingActivity.this) + .setTitle(user.getName() + "さんへの申請を削除しますか?") + .setPositiveButton("OK", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + Toast.makeText(RequestingActivity.this, user.getName(), Toast.LENGTH_SHORT).show(); + friendViewModel.deleteRequesting(uid, user.getId(), token); + } + }) + .setNegativeButton("キャンセル", null) + .create() + .show(); + } + }; + //一行ずつを縦に(LinearLayout)表示するLayoutManagerを宣言 LinearLayoutManager llm = new LinearLayoutManager(this); @@ -148,7 +170,7 @@ //ダイアログでOKを押した時に呼び出される フレンド申請を送るメソッド public void putRequesting(){ requestingId = searchingId; - friendViewModel.putRequesting(uid, requestingId, token); + friendViewModel.putRequesting(uid, requestingId, requestingName, token); } //RecyclerViewのための内部クラス @@ -172,13 +194,13 @@ View inflate = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_requesting_activity, parent,false); RequestingViewHolder vh = new RequestingViewHolder(inflate); - // リスト内のボタンを押した時の処理 + // リスト内の削除ボタンを押した時の処理 vh.deleteButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int position = vh.getBindingAdapterPosition(); - // 処理はonItemClickに - onItemClick(v, position, list.get(position)); + // 処理はonDeleteClickに + onDeleteClick(v, position, list.get(position)); } }); @@ -195,7 +217,7 @@ return list.size(); } - void onItemClick(View view, int position, RequestingDataModel requesting) { + void onDeleteClick(View view, int position, RequestingDataModel requesting) { // このメソッドをActivity内でオーバーライドして、クリックイベントの処理を設定する } }