diff --git a/.idea/misc.xml b/.idea/misc.xml
index 961a5e2..4343ab5 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -15,10 +15,12 @@
+
+
diff --git a/app/src/main/java/com/example/nemophila/Nemophila.java b/app/src/main/java/com/example/nemophila/Nemophila.java
index 37d9e2b..14f1aed 100644
--- a/app/src/main/java/com/example/nemophila/Nemophila.java
+++ b/app/src/main/java/com/example/nemophila/Nemophila.java
@@ -30,7 +30,7 @@
//フィルターのデータ
private HashSet selectGenres = new HashSet<>();
private HashSet selectFriends = new HashSet<>();
- private HashSet favoriteFriends = new HashSet<>();
+ private HashSet favoriteFriends;
//Account関連のGetter
public String getName() {
@@ -100,11 +100,11 @@
return selectFriends;
}
public HashSet getFavoriteFriends() {
- if(favoriteFriends.isEmpty()){
+ if(favoriteFriends == null){
SharedPreferences preferences = getSharedPreferences("prefData", MODE_PRIVATE);
- favoriteFriends = (HashSet) preferences.getStringSet("favoriteFriends", new HashSet<>());
+ favoriteFriends = new HashSet<>(preferences.getStringSet("favoriteFriends", new HashSet<>()));
}
- return new HashSet<>(favoriteFriends);
+ return favoriteFriends;
}
//Setter
@@ -146,18 +146,21 @@
SharedPreferences.Editor editor = preferences.edit();
editor.putFloat("cameraLatitude", (float) cameraLatitude);
this.cameraLatitude = cameraLatitude;
+ editor.commit();
}
public void setCameraLongitude(double cameraLongitude) {
SharedPreferences preferences = getSharedPreferences("prefData", MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putFloat("cameraLongitude", (float) cameraLongitude);
this.cameraLongitude = cameraLongitude;
+ editor.commit();
}
public void setZoom(float zoom) {
SharedPreferences preferences = getSharedPreferences("prefData", MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putFloat("zoom", zoom);
this.zoom = zoom;
+ editor.commit();
}
//フィルター関連のSetter
@@ -170,8 +173,9 @@
public void setFavoriteFriends(String favoriteFriend) {
SharedPreferences preferences = getSharedPreferences("prefData", MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
- editor.putStringSet("favoriteFriends", favoriteFriends);
this.favoriteFriends.add(favoriteFriend);
+ editor.putStringSet("favoriteFriends", favoriteFriends);
+ editor.commit();
}
//フィルターを取り除く
@@ -182,6 +186,6 @@
this.selectFriends.remove(selectFriend);
}
public void removeFavoriteFriends(String favoriteFriend){
- this.selectFriends.remove(favoriteFriend);
+ this.favoriteFriends.remove(favoriteFriend);
}
}
diff --git a/app/src/main/java/com/example/nemophila/RequestedActivity.java b/app/src/main/java/com/example/nemophila/RequestedActivity.java
index 5203dee..8b4b2ad 100644
--- a/app/src/main/java/com/example/nemophila/RequestedActivity.java
+++ b/app/src/main/java/com/example/nemophila/RequestedActivity.java
@@ -4,9 +4,12 @@
import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
+import androidx.recyclerview.widget.DividerItemDecoration;
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;
@@ -14,6 +17,7 @@
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
+import android.widget.Toast;
import com.example.nemophila.entities.Account;
import com.example.nemophila.entities.AccountNameJson;
@@ -24,10 +28,11 @@
import java.util.List;
public class RequestedActivity extends AppCompatActivity {
-
-
@Override
protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_requested);
+
//初期化
FriendViewModel friendViewModel = new ViewModelProvider(this).get(FriendViewModel.class);
Nemophila nemophila = (Nemophila) this.getApplication();
@@ -36,9 +41,6 @@
String uid = nemophila.getUid();
String token = nemophila.getToken();
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_requested);
-
Button returnButton = (Button)findViewById(R.id.CancelButton);
returnButton.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
@@ -48,11 +50,50 @@
});
RecyclerView rv = findViewById(R.id.requestedList);
- RequestedAdapter adapter = new RequestedAdapter(requestedDataSet);
+ RequestedAdapter adapter = new RequestedAdapter(requestedDataSet) {
+ @Override
+ void onOkButtonClick(View view, int position, RequestedUserModel userModel) {
+ new AlertDialog.Builder(RequestedActivity.this)
+ .setTitle("確認")
+ .setMessage("フレンド申請を承諾します")
+ .setPositiveButton("OK", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ Toast.makeText(RequestedActivity.this, userModel.getName(), Toast.LENGTH_SHORT).show();
+ System.out.println("承諾ボタンが押されました: " + userModel.getName());
+// friendViewModel.putFriend(uid, userModel.getId(), token);
+ }
+ })
+ .setNegativeButton("Cancel", null)
+ .create()
+ .show();
+ }
+ @Override
+ void onNoButtonClick(View view, int position, RequestedUserModel userModel) {
+ new AlertDialog.Builder(RequestedActivity.this)
+ .setTitle("警告")
+ .setMessage("フレンド申請を拒否します")
+ .setPositiveButton("OK", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ Toast.makeText(RequestedActivity.this, userModel.getName(), Toast.LENGTH_SHORT).show();
+ System.out.println("拒否ボタンが押されました: " + userModel.getName());
+// friendViewModel.deleteRequested(uid, userModel.getId(), token);
+ }
+ })
+ .setNegativeButton("Cancel", null)
+ .create()
+ .show();
+ }
+ };
+
+ RecyclerView.ItemDecoration itemDecoration =
+ new DividerItemDecoration(this, DividerItemDecoration.VERTICAL);
+
+ rv.addItemDecoration(itemDecoration);
rv.setHasFixedSize(true);
rv.setLayoutManager(llm);
- rv.setAdapter(adapter);
friendViewModel.getRequested(uid);
friendViewModel.getRequestedLiveData().observe(this, new Observer>() {
@@ -72,7 +113,7 @@
}
//Adapter
- public class RequestedAdapter extends RecyclerView.Adapter {
+ abstract public class RequestedAdapter extends RecyclerView.Adapter {
private List list;
public RequestedAdapter(List list) {
this.list = list;
@@ -86,6 +127,23 @@
public RequestedViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View inflate = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_requested_activity, parent,false);
RequestedViewHolder vh = new RequestedViewHolder(inflate);
+
+ vh.okButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ int position = vh.getBindingAdapterPosition();
+ onOkButtonClick(view, position, list.get(position));
+ }
+ });
+
+ vh.noButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ int position = vh.getBindingAdapterPosition();
+ onNoButtonClick(view, position, list.get(position));
+ }
+ });
+
return vh;
}
@@ -98,15 +156,22 @@
public int getItemCount() {
return list.size();
}
+
+ abstract void onOkButtonClick(View view, int position, RequestedUserModel userModel);
+ abstract void onNoButtonClick(View view, int position, RequestedUserModel userModel);
}
//ViewHolder
public class RequestedViewHolder extends RecyclerView.ViewHolder {
public TextView nameView;
+ public Button okButton;
+ public Button noButton;
public RequestedViewHolder(@NonNull View view) {
super(view);
nameView = (TextView) view.findViewById(R.id.textView3);
+ okButton = view.findViewById(R.id.okButton);
+ noButton = view.findViewById(R.id.noButton);
}
}
diff --git a/app/src/main/res/layout/activity_mypage.xml b/app/src/main/res/layout/activity_mypage.xml
index 956e605..9dcff08 100644
--- a/app/src/main/res/layout/activity_mypage.xml
+++ b/app/src/main/res/layout/activity_mypage.xml
@@ -127,10 +127,10 @@
android:layout_marginBottom="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintHorizontal_bias="0.5"
+ app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/myPageEdit"
- app:layout_constraintVertical_bias="0">
+ app:layout_constraintVertical_bias="1.0">