diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.idea/deploymentTargetDropDown.xml
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 4343ab5..960c647 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -19,6 +19,7 @@
+
diff --git a/app/src/main/java/com/example/nemophila/FriendActivity.java b/app/src/main/java/com/example/nemophila/FriendActivity.java
index dbca5a6..2df9314 100644
--- a/app/src/main/java/com/example/nemophila/FriendActivity.java
+++ b/app/src/main/java/com/example/nemophila/FriendActivity.java
@@ -65,8 +65,7 @@
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
- Toast.makeText(FriendActivity.this, friend.getName(), Toast.LENGTH_SHORT).show();
-// friendViewModel.deleteFriend(myUid, friend.getId(), myToken);
+ friendViewModel.deleteFriend(myUid, friend.getId(), myToken);
}
})
.setNegativeButton("キャンセル", null)
@@ -132,7 +131,7 @@
@Override
public FriendsViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int ViewType) {
// layoutXMLからViewを生成
- View inflate = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_friends_activity, parent,false);
+ View inflate = LayoutInflater.from(parent.getContext()).inflate(R.layout.friend_list_item, parent,false);
// ViewHolderを生成
FriendsViewHolder vh = new FriendsViewHolder(inflate);
diff --git a/app/src/main/java/com/example/nemophila/MyPageActivity.java b/app/src/main/java/com/example/nemophila/MyPageActivity.java
index 47eeaaa..502a50b 100644
--- a/app/src/main/java/com/example/nemophila/MyPageActivity.java
+++ b/app/src/main/java/com/example/nemophila/MyPageActivity.java
@@ -6,13 +6,17 @@
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;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
+import android.widget.ImageButton;
import android.widget.TextView;
+import android.widget.Toast;
import com.example.nemophila.entities.Post;
import com.example.nemophila.viewmodels.AccountViewModel;
@@ -28,9 +32,11 @@
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mypage);
- Nemophila nemophila = (Nemophila) getApplication();
+ //初期化
+ Nemophila nemophila = (Nemophila) this.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);
@@ -94,10 +100,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);
+ MyPageActAdapter adapter = new MyPageActAdapter(myPageActDataset) {
+ @Override
+ void onDeleteButtonClick(View view, int position, MyPageActDataModel dataModel) {
+ new AlertDialog.Builder(MyPageActivity.this)
+ .setTitle("警告")
+ .setMessage("この投稿を削除しますか?")
+ .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 +162,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 +192,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 +203,15 @@
public TextView rateView;
public TextView genreView;
public TextView commentView;
+ public ImageButton 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 +221,8 @@
private String rate;
private String genre;
private String comment;
+ private String sid;
+ private String pid;
public String getDate() {
return date;
@@ -221,5 +251,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; }
}
}
diff --git a/app/src/main/java/com/example/nemophila/RequestedActivity.java b/app/src/main/java/com/example/nemophila/RequestedActivity.java
index 19e1515..724535d 100644
--- a/app/src/main/java/com/example/nemophila/RequestedActivity.java
+++ b/app/src/main/java/com/example/nemophila/RequestedActivity.java
@@ -61,7 +61,7 @@
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.getName() ,userModel.getId(), token);
+ friendViewModel.putFriend(uid, userModel.getId() ,userModel.getName(), token);
}
})
.setNegativeButton("Cancel", null)
@@ -96,6 +96,7 @@
rv.setLayoutManager(llm);
friendViewModel.getRequested(uid);
+ friendViewModel.getFriends(uid);
friendViewModel.getRequestedLiveData().observe(this, new Observer>() {
@Override
public void onChanged(Collection accountNameJson) {
diff --git a/app/src/main/java/com/example/nemophila/RequestingActivity.java b/app/src/main/java/com/example/nemophila/RequestingActivity.java
index 988fadd..12f8900 100644
--- a/app/src/main/java/com/example/nemophila/RequestingActivity.java
+++ b/app/src/main/java/com/example/nemophila/RequestingActivity.java
@@ -49,8 +49,6 @@
uid = ((Nemophila)getApplication()).getUid();
token = ((Nemophila)getApplication()).getToken();
-
-
//左上のボタンでマイページへ遷移
Button returnButton = (Button)findViewById(R.id.requestingAcReturnButton);
returnButton.setOnClickListener(new View.OnClickListener(){
@@ -81,22 +79,31 @@
//ViewModelからアカウントが返ってくれば(データ変更があれば)実行
@Override
public void onChanged(Account user) {
- requestingName = (user.getName());
+ if(user == null){
+ new AlertDialog.Builder(RequestingActivity.this)
+ .setTitle("IDが間違っています")
+ .setPositiveButton("OK", null)
+ .create()
+ .show();
+ }else {
+ requestingName = (user.getName());
- //申請を送るダイアログ
- RequestingDialogFragment dialog = new RequestingDialogFragment(RequestingActivity.this);
- //名前を渡す
- Bundle args = new Bundle();
- args.putString("message", requestingName);
- dialog.setArguments(args);
+ //申請を送るダイアログ
+ 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を渡す
+ //ダイアログの表示
+ dialog.show(getSupportFragmentManager(), "Requesting_dialog");
+ //OK押したら申請するメソッドにuid、requestingId、tokenを渡す
+ }
}
});
-
}
+
+
});
@@ -125,7 +132,6 @@
}
};
-
//一行ずつを縦に(LinearLayout)表示するLayoutManagerを宣言
LinearLayoutManager llm = new LinearLayoutManager(this);
//データごとの区切り線を入れる
diff --git a/app/src/main/java/com/example/nemophila/resources/AccountsRest.java b/app/src/main/java/com/example/nemophila/resources/AccountsRest.java
index e8b46a1..a3bf6ff 100644
--- a/app/src/main/java/com/example/nemophila/resources/AccountsRest.java
+++ b/app/src/main/java/com/example/nemophila/resources/AccountsRest.java
@@ -34,7 +34,8 @@
@Path("uid") String uid
);
- @DELETE("accounts/{uid}")
+ @FormUrlEncoded
+ @POST("accounts/{uid}")
Call deleteAccount(
@Path("uid") String uid,
@Field("token") String token
@@ -69,7 +70,8 @@
@Path("uid") String uid
);
- @DELETE("shops/{sid}/posts/{uid}/{pid}")
+ @FormUrlEncoded
+ @POST("shops/{sid}/posts/{uid}/{pid}")
Call deletePost(
@Path("sid") String sid,
@Path("uid") String uid,
diff --git a/app/src/main/java/com/example/nemophila/resources/FriendsRest.java b/app/src/main/java/com/example/nemophila/resources/FriendsRest.java
index 03cc094..85c6305 100644
--- a/app/src/main/java/com/example/nemophila/resources/FriendsRest.java
+++ b/app/src/main/java/com/example/nemophila/resources/FriendsRest.java
@@ -10,6 +10,7 @@
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
+import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Path;
@@ -27,7 +28,8 @@
@Field("token") String token
);
- @DELETE("accounts/{uid}/friends/{fid}")
+ @FormUrlEncoded
+ @POST("accounts/{uid}/friends/{fid}")
Call deleteFriend(
@Path("uid") String uid,
@Path("fid") String fid,
@@ -48,7 +50,7 @@
);
@FormUrlEncoded
- @DELETE("accounts/{uid}/requesting/{requesting_id}")
+ @POST("accounts/{uid}/requesting/{requesting_id}")
Call deleteRequesting(
@Path("uid") String uid,
@Path("requesting_id") String requesting_id,
@@ -61,7 +63,7 @@
);
@FormUrlEncoded
- @DELETE("accounts/{uid}/requested/{requested_id}")
+ @POST("accounts/{uid}/requested/{requested_id}")
Call deleteRequested(
@Path("uid") String uid,
@Path("requested_id") String requested_id,
diff --git a/app/src/main/java/com/example/nemophila/resources/ShopsRest.java b/app/src/main/java/com/example/nemophila/resources/ShopsRest.java
index 5626822..c781f22 100644
--- a/app/src/main/java/com/example/nemophila/resources/ShopsRest.java
+++ b/app/src/main/java/com/example/nemophila/resources/ShopsRest.java
@@ -45,7 +45,8 @@
@Path("sid") String sid
);
- @DELETE("shops/{sid}/posts/{uid}/{pid}")
+ @FormUrlEncoded
+ @POST("shops/{sid}/posts/{uid}/{pid}")
Call deletePost(
@Path("sid") String sid,
diff --git a/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java b/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java
index 8cc8f52..3216931 100644
--- a/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java
+++ b/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java
@@ -171,10 +171,16 @@
@Override
public void onResponse(Call call, Response response) {
if (response.isSuccessful()) {
- Account ac = new Account(response.body());
- accountLiveData.setValue(ac);
- System.out.println("success");
+ if(response.body() == null){
+ accountLiveData.setValue(null);
+ System.out.println("response error");
+ }else {
+ Account ac = new Account(response.body());
+ accountLiveData.setValue(ac);
+ System.out.println("success");
+ }
} else {
+ accountLiveData.setValue(null);
System.out.println("response error");
}
}
diff --git a/app/src/main/java/com/example/nemophila/viewmodels/FriendViewModel.java b/app/src/main/java/com/example/nemophila/viewmodels/FriendViewModel.java
index a7493ca..474849b 100644
--- a/app/src/main/java/com/example/nemophila/viewmodels/FriendViewModel.java
+++ b/app/src/main/java/com/example/nemophila/viewmodels/FriendViewModel.java
@@ -147,13 +147,13 @@
}
// 対象のアカウントのフレンド申請を行うときの情報削除
public void deleteRequesting(String uid,String requesting_id, String token) {
- Call call = friendsRest.deleteRequesting(uid,requesting_id,token);
+ Call call = friendsRest.deleteRequesting(uid, requesting_id, token);
call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
if (response.isSuccessful()) {
removeRequestingLiveData(requesting_id);
- System.out.println("Successful");
+ System.out.println("Successful Delete");
} else {
System.out.println("ResponseError: " + response.code());
}
@@ -236,8 +236,8 @@
continue;
}
preData.add(anj);
- friendsLiveData.setValue(preData);
}
+ friendsLiveData.setValue(preData);
}
private void removeRequestingLiveData(String id) {
@@ -247,8 +247,8 @@
continue;
}
preData.add(anj);
- requestingLiveData.setValue(preData);
}
+ requestingLiveData.setValue(preData);
}
private void removeRequestedLiveData(String id) {
@@ -258,7 +258,7 @@
continue;
}
preData.add(anj);
- requestedLiveData.setValue(preData);
}
+ requestedLiveData.setValue(preData);
}
}
diff --git a/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java b/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java
index 88ea984..8a3b95a 100644
--- a/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java
+++ b/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java
@@ -35,11 +35,13 @@
// ライブデータ
final private MutableLiveData> shopsLiveData;
+ final private MutableLiveData> nearShopsLiveData;
final private MutableLiveData currentShopLiveData;
// コンストラクタ
public ShopsViewModel() {
this.shopsLiveData = new MutableLiveData<>();
+ this.nearShopsLiveData = new MutableLiveData<>();
this.currentShopLiveData = new MutableLiveData<>();
this.retrofit = new Retrofit.Builder()
.baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/nemophila/")
@@ -53,7 +55,10 @@
public LiveData> getShopsLiveData() {
return this.shopsLiveData;
}
- public LiveData getCurrentLiveData() { return this.currentShopLiveData; }
+
+ public LiveData getCurrentLiveData() {
+ return this.currentShopLiveData;
+ }
// ShopToMarkerに新しく店と地図上のピンを紐づける
public void setShopAndMarker(Shop shop, Marker marker) {
@@ -61,7 +66,9 @@
}
// ShopToMarkerからkeyを指定して、要素を削除する
- public void removeShopAndMarker(Shop shop) { ShopToMarker.remove(shop); }
+ public void removeShopAndMarker(Shop shop) {
+ ShopToMarker.remove(shop);
+ }
// 店に紐づいたピンを返す
public Marker getMarker(Shop shop) {
@@ -122,23 +129,48 @@
});
}
- // 新しく店を生成する
- public void createShop(String name, double longitude, double latitude) {
- Call call = shopsRest.createShop(name, longitude, latitude);
+ public void longClickViewArea(double ux, double uy, double lx, double ly) {
+ // 画面内に収まる範囲の店舗を取得する
+ Call> call = shopsRest.getShops(ux, uy, lx, ly);
- call.enqueue(new Callback() {
+ call.enqueue(new Callback>() {
+ // 通信が成功
@Override
- public void onResponse(Call call, Response response) {
+ public void onResponse(Call> call, Response> response) {
+ // 通信が正常に動作
if (response.isSuccessful()) {
- currentShopLiveData.setValue(response.body());
+ nearShopsLiveData.setValue(response.body());
+ } else {
+ System.out.println("ShopsViewModel : 通信失敗");
}
}
+ // 通信が失敗
@Override
- public void onFailure(Call call, Throwable t) {
- System.out.println("通信失敗 : createShop");
- System.out.println(t);
- }
+ public void onFailure(Call> call, Throwable t) {
+ System.out.println("setViewModel : 通信失敗");
+ System.out.println(t);
+ }
});
}
-}
+
+ // 新しく店を生成する
+ public void createShop (String name,double longitude, double latitude){
+ Call call = shopsRest.createShop(name, longitude, latitude);
+
+ call.enqueue(new Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+ if (response.isSuccessful()) {
+ currentShopLiveData.setValue(response.body());
+ }
+ }
+
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ System.out.println("通信失敗 : createShop");
+ System.out.println(t);
+ }
+ });
+ }
+ }
diff --git a/app/src/main/res/drawable/blue_circle_button.xml b/app/src/main/res/drawable/blue_circle_button.xml
index e007807..182023f 100644
--- a/app/src/main/res/drawable/blue_circle_button.xml
+++ b/app/src/main/res/drawable/blue_circle_button.xml
@@ -2,5 +2,5 @@
+ android:color="@color/design_default_color_secondary"/>
diff --git a/app/src/main/res/drawable/ic_baseline_replay_24.xml b/app/src/main/res/drawable/ic_baseline_replay_24.xml
new file mode 100644
index 0000000..effe564
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_replay_24.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/layout/activity_friend.xml b/app/src/main/res/layout/activity_friend.xml
index 5ac6e12..8a95aba 100644
--- a/app/src/main/res/layout/activity_friend.xml
+++ b/app/src/main/res/layout/activity_friend.xml
@@ -1,43 +1,57 @@
-
+ tools:context=".FriendActivity"
+ android:orientation="vertical">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
\ No newline at end of file
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="0.87" />
+
\ No newline at end of file
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 3b45611..e187d18 100644
--- a/app/src/main/res/layout/activity_my_page_editor.xml
+++ b/app/src/main/res/layout/activity_my_page_editor.xml
@@ -126,7 +126,7 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.023"
android:background="@drawable/circle_button"
- android:src="@drawable/ic_mypage"
+ android:src="@drawable/ic_baseline_replay_24"
android:scaleType="fitCenter"
android:padding="7dp"
/>
diff --git a/app/src/main/res/layout/activity_mypage.xml b/app/src/main/res/layout/activity_mypage.xml
index 9dcff08..5ba4e04 100644
--- a/app/src/main/res/layout/activity_mypage.xml
+++ b/app/src/main/res/layout/activity_mypage.xml
@@ -106,7 +106,7 @@