diff --git a/.idea/misc.xml b/.idea/misc.xml
index 743778d..961a5e2 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -12,9 +12,12 @@
+
+
+
@@ -34,8 +37,6 @@
-
-
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e590043..0407368 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -103,22 +103,22 @@
android:exported="true"
android:label="@string/title_activity_requesting"
android:windowSoftInputMode="adjustPan">
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
diff --git a/app/src/main/java/com/example/nemophila/FriendActivity.java b/app/src/main/java/com/example/nemophila/FriendActivity.java
index d611634..dbca5a6 100644
--- a/app/src/main/java/com/example/nemophila/FriendActivity.java
+++ b/app/src/main/java/com/example/nemophila/FriendActivity.java
@@ -11,11 +11,14 @@
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
+import android.graphics.Color;
+import android.graphics.PorterDuff;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
+import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
@@ -28,6 +31,7 @@
import java.util.List;
public class FriendActivity extends AppCompatActivity {
+ private Nemophila nemophila;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -37,7 +41,7 @@
List friendsDataset = new ArrayList<>(); // 1行分の情報を持つDataModelを格納するリスト
RecyclerView rv = findViewById(R.id.friendsList); // recyclerViewを取得
FriendViewModel friendViewModel = new ViewModelProvider(this).get(FriendViewModel.class); // ViewModelを取得
- Nemophila nemophila = (Nemophila) this.getApplication();
+ nemophila = (Nemophila) this.getApplication();
//一行ずつを縦に(LinearLayout)表示するLayoutManagerを宣言
@@ -69,6 +73,18 @@
.create()
.show();
}
+
+ @Override
+ void onFavoriteClick(View view, int position, FriendDataModel friend, ImageView favorite) {
+ if (favorite.getVisibility() == View.INVISIBLE) {
+ favorite.setVisibility(View.VISIBLE);
+ nemophila.setFavoriteFriends(friend.getId());
+ } else {
+ favorite.setVisibility(View.INVISIBLE);
+ nemophila.removeFavoriteFriends(friend.getId());
+ System.out.println(nemophila.getFavoriteFriends());
+ }
+ }
};
friendViewModel.getFriends(myUid); // 自身のフレンドの一覧を取得するメソッドを呼び出す
@@ -102,14 +118,14 @@
// ----------- RecyclerView用の内部クラス ------------//
// Adapter
abstract public class FriendActivityAdapter extends RecyclerView.Adapter {
- private List friendDatas;
+ private List friendData;
- public FriendActivityAdapter(List friendDatas) {
- this.friendDatas = friendDatas;
+ public FriendActivityAdapter(List friendData) {
+ this.friendData = friendData;
}
- public void setList(List friendDatas) {
- this.friendDatas = friendDatas;
+ public void setList(List friendData) {
+ this.friendData = friendData;
}
@NonNull
@@ -120,13 +136,23 @@
// ViewHolderを生成
FriendsViewHolder vh = new FriendsViewHolder(inflate);
- // クリックイベントを登録
+ // 削除ボタンを押したときのイベントを登録
vh.deleteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = vh.getBindingAdapterPosition();
- // 処理はonItemClick()に丸投げ
- onDeleteClick(v, position, friendDatas.get(position));
+ // 処理はonDeleteClick()に丸投げ
+ onDeleteClick(v, position, friendData.get(position));
+ }
+ });
+
+ // お気に入りに追加したときのイベントを登録
+ vh.favoriteOutline.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ int position = vh.getBindingAdapterPosition();
+ // 処理はonFavoriteClick()に丸投げ
+ onFavoriteClick(v, position, friendData.get(position), vh.favorite);
}
});
@@ -136,25 +162,33 @@
@Override
public void onBindViewHolder(@NonNull FriendsViewHolder holder, int position) {
// 後からアイコンの登録をできるようにする
- holder.nameView.setText(friendDatas.get(position).getName());
+ holder.nameView.setText(friendData.get(position).getName());
+ if (nemophila.getFavoriteFriends().contains(friendData.get(position).getId())) {
+ holder.favorite.setVisibility(View.VISIBLE);
+ }
}
@Override
public int getItemCount() {
- return friendDatas.size();
+ return friendData.size();
}
abstract void onDeleteClick(View view, int position, FriendDataModel friend);
+ abstract void onFavoriteClick(View view, int position, FriendDataModel friend, ImageView favorite);
}
// ViewHolder
public class FriendsViewHolder extends RecyclerView.ViewHolder {
+ public ImageView favorite;
+ public ImageButton favoriteOutline;
public ImageView iconView;
public TextView nameView;
public Button deleteButton;
public FriendsViewHolder(@NonNull View itemView) {
super(itemView);
+ favorite = itemView.findViewById(R.id.favorite);
+ favoriteOutline = itemView.findViewById(R.id.favorite_outline);
iconView = itemView.findViewById(R.id.friendIcon);
nameView = itemView.findViewById(R.id.friendName);
deleteButton = itemView.findViewById(R.id.friendDelete);
diff --git a/app/src/main/java/com/example/nemophila/MyPageEditorActivity.java b/app/src/main/java/com/example/nemophila/MyPageEditorActivity.java
index 6301b5d..4ff7896 100644
--- a/app/src/main/java/com/example/nemophila/MyPageEditorActivity.java
+++ b/app/src/main/java/com/example/nemophila/MyPageEditorActivity.java
@@ -10,6 +10,7 @@
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
+import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
@@ -31,7 +32,7 @@
myName.setText(name);
//MyPageに戻るボタン
- Button backButton = (Button) findViewById(R.id.backMyPage);
+ ImageButton backButton = (ImageButton) findViewById(R.id.backMyPage);
backButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MyPageEditorActivity.this, MyPageActivity.class);
diff --git a/app/src/main/java/com/example/nemophila/RequestedActivity.java b/app/src/main/java/com/example/nemophila/RequestedActivity.java
index db2d1d9..5203dee 100644
--- a/app/src/main/java/com/example/nemophila/RequestedActivity.java
+++ b/app/src/main/java/com/example/nemophila/RequestedActivity.java
@@ -57,9 +57,9 @@
friendViewModel.getRequested(uid);
friendViewModel.getRequestedLiveData().observe(this, new Observer>() {
@Override
- public void onChanged(Collection accountNameJsons) {
+ public void onChanged(Collection accountNameJson) {
requestedDataSet.clear();
- for (AccountNameJson acj: accountNameJsons) {
+ for (AccountNameJson acj: accountNameJson) {
RequestedUserModel data = new RequestedUserModel();
data.setId(acj.getUid());
data.setName(acj.getName());
diff --git a/app/src/main/res/drawable/ic_star.xml b/app/src/main/res/drawable/ic_star.xml
new file mode 100644
index 0000000..f4b4d6a
--- /dev/null
+++ b/app/src/main/res/drawable/ic_star.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_star_outline.xml b/app/src/main/res/drawable/ic_star_outline.xml
new file mode 100644
index 0000000..59aef55
--- /dev/null
+++ b/app/src/main/res/drawable/ic_star_outline.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/layout/activity_my_page_editor.xml b/app/src/main/res/layout/activity_my_page_editor.xml
index f499bfb..3b45611 100644
--- a/app/src/main/res/layout/activity_my_page_editor.xml
+++ b/app/src/main/res/layout/activity_my_page_editor.xml
@@ -112,9 +112,9 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editName"
- app:layout_constraintVertical_bias="0.149" />
+ app:layout_constraintVertical_bias="0.149"/>
-
+ app:layout_constraintVertical_bias="0.023"
+ android:background="@drawable/circle_button"
+ android:src="@drawable/ic_mypage"
+ android:scaleType="fitCenter"
+ android:padding="7dp"
+ />
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_requested.xml b/app/src/main/res/layout/activity_requested.xml
index 65a1051..bcb5a63 100644
--- a/app/src/main/res/layout/activity_requested.xml
+++ b/app/src/main/res/layout/activity_requested.xml
@@ -8,17 +8,17 @@
+ tools:textSize="14sp" />
+ app:layout_constraintTop_toBottomOf="@+id/textView5"
+ app:layout_constraintVertical_bias="0.0" />
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+
+
+
+
+
+
+
\ No newline at end of file