diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0407368..3ae6a8a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,10 +87,10 @@ android:name=".RequestedActivity" android:exported="true" android:label="@string/title_activity_requested"> - - - - + + + + - - + + - - + + diff --git a/app/src/main/java/com/example/nemophila/MyPageActivity.java b/app/src/main/java/com/example/nemophila/MyPageActivity.java index 47eeaaa..d71b37f 100644 --- a/app/src/main/java/com/example/nemophila/MyPageActivity.java +++ b/app/src/main/java/com/example/nemophila/MyPageActivity.java @@ -6,6 +6,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; @@ -13,6 +15,7 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; +import android.widget.Toast; import com.example.nemophila.entities.Post; import com.example.nemophila.viewmodels.AccountViewModel; @@ -31,10 +34,12 @@ Nemophila nemophila = (Nemophila) getApplication(); String uid = nemophila.getUid(); String name = nemophila.getName(); + String token = nemophila.getToken(); TextView myName = (TextView) findViewById(R.id.name); myName.setText(name); TextView id = (TextView) findViewById(R.id.id); id.setText(uid); + AccountViewModel accountViewModel = new ViewModelProvider(this).get(AccountViewModel.class); // 「閉じる」ボタンを押したときにメイン画面へ遷移する Button closeButton = (Button) findViewById(R.id.close); @@ -83,7 +88,6 @@ }); //getNameLiveDataとの通信により今のユーザーネームを表示する - AccountViewModel accountViewModel = new ViewModelProvider(this).get(AccountViewModel.class); accountViewModel.getNameLiveData().observe(this, new Observer () { @Override public void onChanged(String name) { @@ -94,10 +98,28 @@ }); /* ここからあんまわかっていない */ - RecyclerView rv = (RecyclerView) findViewById(R.id.postsList); + RecyclerView rv = findViewById(R.id.postsList); LinearLayoutManager llm = new LinearLayoutManager(this); List myPageActDataset = new ArrayList<>(); - MyPageActAdapter adapter = new MyPageActAdapter(myPageActDataset); + MyPageActivity.MyPageActAdapter adapter = new MyPageActivity.MyPageActAdapter(myPageActDataset) { + @Override + void onDeleteButtonClick(View view, int position, MyPageActivity.MyPageActDataModel dataModel) { + new AlertDialog.Builder(MyPageActivity.this) + .setTitle("警告") + .setMessage("この投稿を削除しますか?\n削除すると二度と元に戻せなくなります。") + .setPositiveButton("Yes", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + Toast.makeText(MyPageActivity.this, dataModel.getPid(), Toast.LENGTH_SHORT).show(); + System.out.println("投稿を削除しました。"); +// accountViewModel.deleteAccountPost(dataModel.getSid(), uid, dataModel.getPid(), token); + } + }) + .setNegativeButton("No", null) + .create() + .show(); + } + }; rv.setHasFixedSize(true); rv.setLayoutManager(llm); @@ -138,22 +160,24 @@ /* ここからMyPageActivityの内部クラス */ // Adapter - public class MyPageActAdapter extends RecyclerView.Adapter { - + abstract public class MyPageActAdapter extends RecyclerView.Adapter { private List list; - - public void setList(List list) { - this.list = list; - } - - public MyPageActAdapter(List list) { - this.list = list; - } + public void setList(List list) { this.list = list; } + public MyPageActAdapter(List list) { this.list = list; } @Override public MyPageActViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View inflate = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_my_page_activity_posts, parent,false); MyPageActViewHolder vh = new MyPageActViewHolder(inflate); + + vh.deleteButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + int position = vh.getBindingAdapterPosition(); + onDeleteButtonClick(view, position, list.get(position)); + } + }); + return vh; } @@ -166,9 +190,9 @@ } @Override - public int getItemCount() { - return list.size(); - } + public int getItemCount() { return list.size(); } + + abstract void onDeleteButtonClick(View view, int position, MyPageActDataModel dataModel); } // ViewHolder @@ -177,13 +201,15 @@ public TextView rateView; public TextView genreView; public TextView commentView; + public Button deleteButton; - public MyPageActViewHolder(View itemView) { - super(itemView); - dateView = (TextView) itemView.findViewById(R.id.date); - rateView = (TextView) itemView.findViewById(R.id.rate); - genreView = (TextView) itemView.findViewById(R.id.genre); - commentView = (TextView) itemView.findViewById(R.id.comment); + public MyPageActViewHolder(View view) { + super(view); + dateView = (TextView) view.findViewById(R.id.date); + rateView = (TextView) view.findViewById(R.id.rate); + genreView = (TextView) view.findViewById(R.id.genre); + commentView = (TextView) view.findViewById(R.id.comment); + deleteButton = view.findViewById(R.id.deleteButton); } } @@ -193,6 +219,8 @@ private String rate; private String genre; private String comment; + private String sid; + private String pid; public String getDate() { return date; @@ -221,5 +249,11 @@ public void setComment(String comment) { this.comment = comment; } + + public String getSid() { return sid; } + public void setSid(String sid) { this.sid = sid; } + + public String getPid() { return pid; } + public void setPid(String sid) { this.pid = pid; } } }