diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
index 0a40946..e69de29 100644
--- a/.idea/deploymentTargetDropDown.xml
+++ b/.idea/deploymentTargetDropDown.xml
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/java/com/example/nemophila/MapsDialogFragment.java b/app/src/main/java/com/example/nemophila/MapsDialogFragment.java
new file mode 100644
index 0000000..f2028a4
--- /dev/null
+++ b/app/src/main/java/com/example/nemophila/MapsDialogFragment.java
@@ -0,0 +1,82 @@
+package com.example.nemophila;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.os.Bundle;
+import android.widget.Toast;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.DialogFragment;
+
+import com.example.nemophila.entities.Shop;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+public class MapsDialogFragment extends DialogFragment {
+
+ private Collection shops;
+ public MapsDialogFragment(Collection shops) {
+ this.shops = shops;
+ }
+ Nemophila nemophila;
+
+
+ @NonNull
+ @Override
+ public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
+ nemophila = (Nemophila) getActivity().getApplication();
+
+ String[] choices = new String[shops.size()];
+ //ArrayList choices = new ArrayList<>();
+ Shop[] shoplist = new Shop[shops.size()];
+
+ int j = 0;
+ for (Iterator i = shops.iterator(); i.hasNext(); j++) {
+ Shop tmp = (Shop)i.next();
+ choices[j] = tmp.getName();
+
+ shoplist[j] = tmp;
+ }
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+ builder.setTitle("投稿したいお店はこの中にありますか?")
+ .setPositiveButton("該当する店がありません(新規作成)", new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+ //このボタンを押した時の処理を書きます。
+ //新規投稿画面へ遷移
+ //ShopCreate画面に遷移
+ Intent intent = new Intent(getActivity(), ShopCreateActivity.class);
+ startActivity(intent);
+ }
+ })
+ .setNeutralButton("キャンセル", new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+ // このボタンを押した時の処理を書きます。
+ }
+ })
+ .setItems(choices, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ Toast.makeText(getActivity(),
+ String.format("「%s」を選択しました。", choices[which]),
+ Toast.LENGTH_SHORT)
+ .show();
+
+ //そのShopをNemophilaに渡す
+ nemophila.setCurrentShop(shoplist[which]);
+
+ //そのShopのPostActivityに遷移
+ //PostCreate画面に遷移
+ Intent intent = new Intent(getActivity(), PostActivity.class);
+ startActivity(intent);
+ }
+ });
+ return builder.create();
+ }
+}
diff --git a/app/src/main/java/com/example/nemophila/MapsFragment.java b/app/src/main/java/com/example/nemophila/MapsFragment.java
index 0ed3186..a078e85 100644
--- a/app/src/main/java/com/example/nemophila/MapsFragment.java
+++ b/app/src/main/java/com/example/nemophila/MapsFragment.java
@@ -7,6 +7,7 @@
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.core.content.res.ResourcesCompat;
+import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
@@ -32,6 +33,8 @@
import com.example.nemophila.databinding.ActivityMainBinding;
import com.example.nemophila.entities.Shop;
+import com.example.nemophila.viewmodels.FriendViewModel;
+import com.example.nemophila.viewmodels.PostsViewModel;
import com.example.nemophila.viewmodels.ShopsViewModel;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
@@ -52,6 +55,8 @@
public class MapsFragment extends Fragment implements LocationListener {
ShopsViewModel shopsViewModel;
+ FriendViewModel friendViewModel;
+ PostsViewModel postsViewModel;
Nemophila nemophila;
private GoogleMap mMap;
@@ -61,12 +66,13 @@
private LatLng shopLatlng;
// private LatLng testLatlng;
// private LatLng testLatlng2;
-// private LatLng tapLatlng;
+ private LatLng tapLatlng;
// private CameraPosition nowCamera;
// private LatLng nowLatlng;
private Marker currentMarker;
private BitmapDescriptor bd;
-
+ private boolean isLongClick;
+ private
LocationManager locationManager;
@@ -78,34 +84,61 @@
nemophila = (Nemophila) getActivity().getApplication();
mMap = googleMap;
-
-
//ViewModelへのアクセス
shopsViewModel = new ViewModelProvider(getActivity()).get(ShopsViewModel.class);
+ friendViewModel = new ViewModelProvider(getActivity()).get(FriendViewModel.class);
+ postsViewModel = new ViewModelProvider(getActivity()).get(PostsViewModel.class);
- // LiveDataへの購読
+ //フレンドの更新が入った時の処理(LiveDataへの購読)
+ friendViewModel.getFriendsLiveData().observe(getActivity(), friends -> {
+ Toast.makeText(getActivity(),
+ String.format("フレンドの更新を確認しました。"),
+ Toast.LENGTH_SHORT)
+ .show();
+ //nemophilaにセットしておく
+ nemophila.setFriends(friends);
+ });
+
+ // 店情報の更新が入った時の処理(LiveDataへの購読)
shopsViewModel.getShopsLiveData().observe(getActivity(), shops -> {
- //受け取ったshopsに対してMarkerが立っているかを確認
- //対応するMarkerがなければMarkerを立てる
- for (Shop shop : shops) {
- if (shopsViewModel.getMarker(shop) == null) {
+ Toast.makeText(getActivity(),
+ String.format("表示していない店を確認しました。ピンを立てます"),
+ Toast.LENGTH_SHORT)
+ .show();
- shopLatlng = new LatLng(shop.getLatitude(), shop.getLongitude());
- System.out.println(shopLatlng);
- Marker createMaker = mMap.addMarker(new MarkerOptions().position(shopLatlng).title(""));
- //マーカーに店情報を持たせる
- createMaker.setTag(shop);
- //ShopToMarkerに紐づけ
- shopsViewModel.setShopAndMarker(shop, createMaker);
+ for (Shop shop : shops) {
+ //受け取ったshopsにfriendsの投稿が含まれているかを確認,受け取ったshopsに対してMarkerが立っているかを確認
+ if ( shopsViewModel.getMarker(shop) == null) { //フレンド以外の投稿のピンも立てたい場合
+ //if( && shopsViewModel.getMarker(shop) == null) {
+
+ //各shopに対応するMarkerがなければMarkerを立てる
+ shopLatlng = new LatLng(shop.getLatitude(), shop.getLongitude());
+ System.out.println(shopLatlng);
+ Marker createMaker = mMap.addMarker(new MarkerOptions().position(shopLatlng).title(""));
+ //マーカーに店情報を持たせる
+ createMaker.setTag(shop);
+ //ShopToMarkerに紐づけ
+ shopsViewModel.setShopAndMarker(shop, createMaker);
+ }
}
- }
+ });
+
+ // 長押しを認識した後の処理(LiveDataへの購読)
+ shopsViewModel.getNearShopsLiveData().observe(getActivity(), shops -> {
+ Toast.makeText(getActivity(),
+ String.format("近辺の店を確認しました。ダイアログを表示します"),
+ Toast.LENGTH_SHORT)
+ .show();
+
+ //長押し時は周辺のピンを全て取得し、ダイアログに表示する
+ DialogFragment dialogFragment = new MapsDialogFragment(shops);
+ dialogFragment.show(getActivity().getSupportFragmentManager(),"mapsdialog");
});
//初期画面の座標(現在地をロードするまで表示)
//initialLatlng = new LatLng(39,138);
initialLatlng = new LatLng(nemophila.getCameraLatitude(), nemophila.getCameraLongitude());
//初期画面に移動
- //mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(initialLatlng, 15f));
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(initialLatlng, nemophila.getZoom()));
@@ -116,37 +149,42 @@
nemophila.setCameraLatitude(mMap.getCameraPosition().target.latitude);
nemophila.setCameraLongitude(mMap.getCameraPosition().target.longitude);
nemophila.setZoom(mMap.getCameraPosition().zoom);
-
- //nowLatlng = new LatLng(nowCamera.target.latitude, nowCamera.target.longitude);
- //nowZoom = nowCamera.zoom;
//Shopの描画範囲を指定
shopsViewModel.setViewArea(nemophila.getCameraLongitude() + 1, nemophila.getCameraLatitude() + 1, nemophila.getCameraLongitude() - 1, nemophila.getCameraLatitude() - 1);
});
- /*
- //多分使わない
+
+ // test用 座標を確認するため
// タップした時のリスナーをセット
mMap.setOnMapClickListener(tapLocation -> {
// map(ピン以外)をtapされた位置の緯度経度
tapLatlng = new LatLng(tapLocation.latitude, tapLocation.longitude);
- mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(tapLatlng, nowZoom));
- shopsViewModel.setViewArea(tapLatlng.longitude+1, tapLatlng.latitude+1, tapLatlng.longitude-1, tapLatlng.latitude-1);
+ Toast.makeText(getActivity(),
+ String.format("%s", tapLatlng),
+ Toast.LENGTH_SHORT)
+ .show();
});
- */
+
//長押し時に店を作成し、その座標にピンを立てる
//長押し時にその座標を保存し、投稿画面に移り、Shop作成完了時にはピンを立て、Shop画面に移行
mMap.setOnMapLongClickListener(longpushLocation -> {
//長押しされた位置の緯度経度を取得
//LatLng newlocation = new LatLng(longpushLocation.latitude, longpushLocation.longitude);
+
+ //長押し座標を画面中心にしておく
+ //zoomMap(longpushLocation.latitude, longpushLocation.longitude);
//Nemophilaに座標を保存
nemophila.setCurrentLatitude(longpushLocation.latitude);
nemophila.setCurrentLongitude(longpushLocation.longitude);
//長押しした場合は今からShopを作成するので、CurrentShopをnullで登録しておく
nemophila.setCurrentShop(null);
- //ShopCreate画面に遷移
- Intent intent = new Intent(getActivity(), ShopCreateActivity.class);
- startActivity(intent);
+
+ //長押しでダイアログを表示
+ //テスト用
+ //shopsViewModel.longClickViewArea(longpushLocation.longitude+1, longpushLocation.latitude+1, longpushLocation.longitude-1, longpushLocation.latitude-1);
+ //本番環境は↓の範囲で
+ shopsViewModel.longClickViewArea(longpushLocation.longitude+0.001, longpushLocation.latitude+0.001, longpushLocation.longitude-0.001, longpushLocation.latitude-0.001);
});
// ピンをクリックした場合
diff --git a/app/src/main/java/com/example/nemophila/MyPageActivity.java b/app/src/main/java/com/example/nemophila/MyPageActivity.java
index 502a50b..f90011a 100644
--- a/app/src/main/java/com/example/nemophila/MyPageActivity.java
+++ b/app/src/main/java/com/example/nemophila/MyPageActivity.java
@@ -1,5 +1,6 @@
package com.example.nemophila;
+import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
@@ -99,22 +100,22 @@
}
});
- /* ここからあんまわかっていない */
RecyclerView rv = findViewById(R.id.postsList);
LinearLayoutManager llm = new LinearLayoutManager(this);
List myPageActDataset = new ArrayList<>();
MyPageActAdapter adapter = new MyPageActAdapter(myPageActDataset) {
+ // 「(投稿)削除」ボタンを押した後、「Yes」を押すと対象の投稿を削除する
@Override
void onDeleteButtonClick(View view, int position, MyPageActDataModel dataModel) {
new AlertDialog.Builder(MyPageActivity.this)
.setTitle("警告")
- .setMessage("この投稿を削除しますか?")
+ .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();
+ Toast.makeText(MyPageActivity.this, "投稿を削除しました。", Toast.LENGTH_SHORT).show();
System.out.println("投稿を削除しました。");
-// accountViewModel.deleteAccountPost(dataModel.getSid(), uid, dataModel.getPid(), token);
+ accountViewModel.deleteAccountPost(uid, dataModel.getPid(), token);
}
})
.setNegativeButton("No", null)
@@ -127,6 +128,7 @@
rv.setLayoutManager(llm);
rv.setAdapter(adapter);
+ // getAccountPostsLiveDataとの通信により今までにユーザーがしている投稿を表示する
accountViewModel.getAccountPosts(uid);
accountViewModel.getAccountPostsLiveData().observe(this, new Observer >() {
@Override
@@ -149,6 +151,7 @@
data.setRate(strRate);
data.setGenre(post.getGenre());
data.setComment(post.getComment());
+ data.setPid(post.getPid());
myPageActDataset.add(data);
}
@@ -168,7 +171,7 @@
public MyPageActAdapter(List list) { this.list = list; }
@Override
- public MyPageActViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ public MyPageActViewHolder onCreateViewHolder(@NonNull 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);
@@ -184,7 +187,7 @@
}
@Override
- public void onBindViewHolder(MyPageActViewHolder holder, int position) {
+ public void onBindViewHolder(@NonNull MyPageActViewHolder holder, int position) {
holder.dateView.setText(list.get(position).getDate());
holder.rateView.setText(list.get(position).getRate());
holder.genreView.setText(list.get(position).getGenre());
@@ -205,7 +208,7 @@
public TextView commentView;
public ImageButton deleteButton;
- public MyPageActViewHolder(View view) {
+ public MyPageActViewHolder(@NonNull View view) {
super(view);
dateView = (TextView) view.findViewById(R.id.date);
rateView = (TextView) view.findViewById(R.id.rate);
@@ -216,12 +219,11 @@
}
// DataModel
- public class MyPageActDataModel {
+ public static class MyPageActDataModel {
private String date;
private String rate;
private String genre;
private String comment;
- private String sid;
private String pid;
public String getDate() {
@@ -252,9 +254,6 @@
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/Nemophila.java b/app/src/main/java/com/example/nemophila/Nemophila.java
index 14f1aed..a41a04d 100644
--- a/app/src/main/java/com/example/nemophila/Nemophila.java
+++ b/app/src/main/java/com/example/nemophila/Nemophila.java
@@ -4,9 +4,11 @@
import android.content.SharedPreferences;
import com.example.nemophila.entities.Account;
+import com.example.nemophila.entities.AccountNameJson;
import com.example.nemophila.entities.Shop;
import com.google.type.LatLng;
+import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
@@ -15,6 +17,7 @@
private String name;
private String uid;
private String token;
+ private Collection friends;
//ショップのデータ
private Shop currentShop;
@@ -54,6 +57,9 @@
}
return token;
}
+ public Collection getFriends() {
+ return friends;
+ }
//Shop関連のGetter
public Shop getCurrentShop() {
@@ -129,6 +135,10 @@
this.token = token;
editor.commit();
}
+ public void setFriends(Collection friends) {
+ this.friends = friends;
+ }
+
public void setCurrentShop(Shop currentShop) {
this.currentShop = currentShop;
}
diff --git a/app/src/main/java/com/example/nemophila/RequestedActivity.java b/app/src/main/java/com/example/nemophila/RequestedActivity.java
index 724535d..6a1ef91 100644
--- a/app/src/main/java/com/example/nemophila/RequestedActivity.java
+++ b/app/src/main/java/com/example/nemophila/RequestedActivity.java
@@ -96,7 +96,6 @@
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/ShopActivity.java b/app/src/main/java/com/example/nemophila/ShopActivity.java
index 1f155ee..6a0e6fa 100644
--- a/app/src/main/java/com/example/nemophila/ShopActivity.java
+++ b/app/src/main/java/com/example/nemophila/ShopActivity.java
@@ -35,19 +35,11 @@
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_shop);
-// //テスト用に仮にcurrentShopをセット
-// Shop kariShop = new Shop();
-// kariShop.setSid("151347fa-2c90-44d7-ba48-f23f475b910d");
-// kariShop.setName("店D");
-// kariShop.setLongitude(56.7);
-// kariShop.setLatitude(78.9);
-// ((Nemophila)getApplication()).setCurrentShop(kariShop);
-
- //NemophilaからcurrentShopを取得、店名の表示
- //currentshopに何もないとgetNameとgetSidでアプリが落ちます
Shop shop;
String shopName;
String sid;
+
+ //NemophilaからcurrentShopを取得、店名の表示
shop = ((Nemophila)getApplication()).getCurrentShop();
shopName = shop.getName();
sid = shop.getSid();
@@ -59,14 +51,9 @@
toPostButton.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
Intent intent = new Intent(ShopActivity.this, PostActivity.class);
- intent.putExtra("toPostSid",sid);
startActivity(intent);
}
});
-// PostActivity側でsidを受け取ってください
-// Intent intent = getIntent();
-// sid = intent.getStringExtra("toPostSid");
-// みたいな感じで受け取れるはずです
//左上のボタンでメイン画面へ遷移
Button returnButton = (Button)findViewById(R.id.shopAcReturnButton);
@@ -77,6 +64,7 @@
}
});
+ //RecyclerViewに表示する中身を格納するリストを宣言
List postsDataset = new ArrayList<>();
//RecyclerView(表示の設定、直接表示するところはLivedataを購読しているonChanged内)
@@ -98,33 +86,23 @@
PostsViewModel postsViewModel = new ViewModelProvider(this).get(PostsViewModel.class);
postsViewModel.loadShopPost(sid);
- //LiveDataへの購読
+ //投稿を取得するLiveDataへの購読
postsViewModel.getShopPostLiveData().observe(this, new Observer>() {
@Override
public void onChanged(List ShopPosts) {
- //Nemophilaから選択中のジャンルを受け取る
+ //Nemophilaから選択中のジャンル(HashSet)を受け取る
HashSet selectingGenre = ((Nemophila)getApplication()).getSelectGenres();
- //テスト用にHashSetにジャンルを入力
-// HashSet selectingGenre = new HashSet<>();
-// selectingGenre.add("ラーメン");
-// selectingGenre.add("中華");
- //選択中に何かあれば表示
+ //選択中のジャンルが何かあれば表示
if(!(selectingGenre.isEmpty())) {
TextView genreView = (TextView) findViewById(R.id.shopAcGenre);
genreView.setText("選択中のジャンル:" + selectingGenre);
}
- //Nemophilaから選択中のフレンドを受け取る
+ //Nemophilaから選択中のフレンド(HashSet)を受け取る
HashSet selectingFriend = ((Nemophila)getApplication()).getSelectFriends();
-
- //テスト用にHashSetにフレンドを入力
-// HashSet selectingFriend = new HashSet<>();
-// selectingFriend.add("1111");
-// selectingFriend.add("1113");
-
- //選択したフレンドの表示のための宣言
+ //選択したフレンドを表示するために名前を格納するHashSetの宣言
HashSet selectingFriendName = new HashSet<>();
//postsDatasetを一旦クリアし、LiveDataから受け取ったデータを一つずつセット(重複しないように)
@@ -133,12 +111,12 @@
for (Post post: ShopPosts){
//dataを宣言 dataに投稿の必要なデータをセットし、それをpostsDatasetに追加してリストを作る
ShopAcDataModel data = new ShopAcDataModel();
- //フィルター選択中かの判定のためにgenreとuidを先に読み込む
+ //フィルター判定のためにgenreとuidを、表示用のセットのためにnameを先に読み込む
String genre = post.getGenre();
String uid = post.getUid();
String name = post.getName();
- //選択が何もない場合は全ての投稿を、選択ある場合は一致する投稿をdataにセット
+ //選択が何もない場合は全ての投稿を、選択がある場合は一致する投稿をdataにセット
if(selectingGenre.isEmpty() || selectingGenre.contains(genre)) {
if(selectingFriend.isEmpty() || selectingFriend.contains(uid)) {
data.setName(name);
@@ -181,7 +159,6 @@
}
//RecyclerViewのための内部クラス
-
//Adapter
public class ShopAcAdapter extends RecyclerView.Adapter {
@@ -237,7 +214,7 @@
}
}
- //DataModel
+ //DataModel(投稿1つあたりに必要なデータ)
public static class ShopAcDataModel {
private String name;
private String date;
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 a3bf6ff..02a6203 100644
--- a/app/src/main/java/com/example/nemophila/resources/AccountsRest.java
+++ b/app/src/main/java/com/example/nemophila/resources/AccountsRest.java
@@ -71,9 +71,8 @@
);
@FormUrlEncoded
- @POST("shops/{sid}/posts/{uid}/{pid}")
+ @POST("accounts/{uid}/posts/{pid}")
Call deletePost(
- @Path("sid") String sid,
@Path("uid") String uid,
@Path("pid") String pid,
@Field("token") String token
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 3216931..300fbe7 100644
--- a/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java
+++ b/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java
@@ -6,6 +6,7 @@
import com.example.nemophila.R;
import com.example.nemophila.entities.Account;
import com.example.nemophila.entities.AccountJson;
+import com.example.nemophila.entities.AccountNameJson;
import com.example.nemophila.entities.Post;
import com.example.nemophila.entities.PostJson;
import com.example.nemophila.resources.AccountsRest;
@@ -211,13 +212,14 @@
}
// 対象のアカウントがした投稿の削除
- public void deleteAccountPost(String sid, String uid, String pid, String token) {
- Call call = accountsRest.deletePost(sid, uid, pid, token);
+ public void deleteAccountPost(String uid, String pid, String token) {
+ Call call = accountsRest.deletePost(uid, pid, token);
call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
if (response.isSuccessful()) {
+ deleteAccountPostLiveData(pid);
System.out.println("successful");
} else {
System.out.println("response error");
@@ -229,4 +231,15 @@
}
});
}
+
+ private void deleteAccountPostLiveData(String id) {
+ ArrayList preData = new ArrayList<>();
+ for (Post post: accountPostsLiveData.getValue()) {
+ if (post.getPid().equals(id)) {
+ continue;
+ }
+ preData.add(post);
+ }
+ accountPostsLiveData.setValue(preData);
+ }
}
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 474849b..83c6596 100644
--- a/app/src/main/java/com/example/nemophila/viewmodels/FriendViewModel.java
+++ b/app/src/main/java/com/example/nemophila/viewmodels/FriendViewModel.java
@@ -75,7 +75,6 @@
@Override
public void onResponse(Call call, Response response) {
if (response.isSuccessful()) {
- addFriendLiveData(fid, name);
removeRequestedLiveData(fid);
System.out.println("Successful");
} else {
@@ -211,15 +210,6 @@
return anj;
}
- private void addFriendLiveData(String uid, String name) {
- ArrayList preData = new ArrayList<>();
- for (AccountNameJson anj: friendsLiveData.getValue()) {
- preData.add(anj);
- }
- preData.add(createAccountNameJson(uid, name));
- friendsLiveData.setValue(preData);
- }
-
private void addRequestingLiveData(String uid, String name) {
ArrayList preData = new ArrayList<>();
for (AccountNameJson anj: requestingLiveData.getValue()) {
diff --git a/app/src/main/java/com/example/nemophila/viewmodels/PostsViewModel.java b/app/src/main/java/com/example/nemophila/viewmodels/PostsViewModel.java
index bb4252c..2985f6a 100644
--- a/app/src/main/java/com/example/nemophila/viewmodels/PostsViewModel.java
+++ b/app/src/main/java/com/example/nemophila/viewmodels/PostsViewModel.java
@@ -129,4 +129,12 @@
}
});
}
+
+ public ArrayList getUserIds() {
+ ArrayList ids = new ArrayList<>();
+ for(Post post: shopPostsLiveData.getValue()) {
+ ids.add(post.getUid());
+ }
+ return ids;
+ }
}
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 e0a8dc9..c31459d 100644
--- a/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java
+++ b/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java
@@ -154,23 +154,23 @@
});
}
- // 新しく店を生成する
- public void createShop (String name,double longitude, double latitude){
- Call call = shopsRest.createShop(name, longitude, latitude);
+ // 新しく店を生成する
+ 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());
- }
+ 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);
- }
- });
- }
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ System.out.println("通信失敗 : createShop");
+ System.out.println(t);
+ }
+ });
}
+}
diff --git a/app/src/main/res/layout/activity_requesting.xml b/app/src/main/res/layout/activity_requesting.xml
index 6dc38db..b15fa49 100644
--- a/app/src/main/res/layout/activity_requesting.xml
+++ b/app/src/main/res/layout/activity_requesting.xml
@@ -91,13 +91,13 @@
+ app:layout_constraintVertical_bias="1.0" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_shop.xml b/app/src/main/res/layout/activity_shop.xml
index 8e57be7..3924fd7 100644
--- a/app/src/main/res/layout/activity_shop.xml
+++ b/app/src/main/res/layout/activity_shop.xml
@@ -52,13 +52,13 @@
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_bias="1.0" />