diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
new file mode 100644
index 0000000..10746e9
--- /dev/null
+++ b/.idea/deploymentTargetDropDown.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 9b3af12..8f9d4ab 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -11,13 +11,12 @@
-
+
-
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index bc3d70f..d3b9dcc 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,22 +43,18 @@
android:exported="true"
android:label="@string/title_activity_sign_up">
-
-
+
+
-
-
+
+
-
- android:name=".ChangePwActivity"
- android:exported="true"
-
@@ -87,22 +83,22 @@
android:name=".MainActivity"
android:exported="true"
android:label="@string/title_activity_maps">
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
+
+
+
+
+
diff --git a/app/src/main/java/com/example/nemophila/ChangePwActivity.java b/app/src/main/java/com/example/nemophila/ChangePwActivity.java
deleted file mode 100644
index 6dea40f..0000000
--- a/app/src/main/java/com/example/nemophila/ChangePwActivity.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package com.example.nemophila;
-
-import androidx.appcompat.app.AppCompatActivity;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.EditText;
-
-import com.example.nemophila.entities.Account;
-import com.example.nemophila.resources.AccountsRest;
-
-import retrofit2.Call;
-import retrofit2.Callback;
-import retrofit2.Response;
-import retrofit2.Retrofit;
-import retrofit2.converter.jackson.JacksonConverterFactory;
-
-public class ChangePwActivity extends AppCompatActivity {
-
- private Retrofit retrofit;
- private AccountsRest AccountsRest;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_change_pw);
- //通信の初期化
- this.retrofit = new Retrofit.Builder()
- .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/nemophila/")
- .addConverterFactory(JacksonConverterFactory.create())
- .build();
- this.AccountsRest = retrofit.create(AccountsRest.class);
-
-
- findViewById(R.id.ChangePassword).setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- EditText edituid = (EditText) findViewById(R.id.editTextUserid);
- String uid = edituid.getText().toString();
- EditText editoldtpw = (EditText) findViewById(R.id.editTextTextOldPassword);
- String oldPw = editoldtpw.getText().toString();
- EditText editnewpw = (EditText) findViewById(R.id.editTextTextNewPassword);
- String newPw = editnewpw.getText().toString();
- Nemophila nemophila = new Nemophila();
- String token = nemophila.getToken();
-
- // 通信
- Call call = AccountsRest.changePw(uid,oldPw,newPw,token);
-
- call.enqueue(new Callback() {
- @Override
- public void onResponse(Call call, Response response) {
- if (response.isSuccessful()) {
- System.out.println("通信成功:changeBelongsAndMaster");
- Intent intent = new Intent(ChangePwActivity.this, LoginActivity.class);
- startActivity(intent);
- } else {
- System.out.println("通信可能:changeBelongsAndMaster: " + response.code());
-// if (response.code() == 500){
-// ((TextView) findViewById(R.id.textView)).setText("The UserName you gave is already in use.");
-// }else if (response.code() == 404){
-// ((TextView) findViewById(R.id.textView)).setText("SignUp failed. Please enter the correct credentials.");
-// }
- }
- }
- @Override
- public void onFailure(Call call, Throwable t) {
- System.out.println("通信失敗:changeBelongsAndMaster");
- }
- });
- }
- });
- }
-}
diff --git a/app/src/main/java/com/example/nemophila/LoginActivity.java b/app/src/main/java/com/example/nemophila/LoginActivity.java
index f8310d6..cd63a63 100644
--- a/app/src/main/java/com/example/nemophila/LoginActivity.java
+++ b/app/src/main/java/com/example/nemophila/LoginActivity.java
@@ -79,8 +79,8 @@
findViewById(R.id.ForgotPW).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- Intent intent = new Intent(LoginActivity.this, ChangePwActivity.class);
- startActivity(intent);
+// Intent intent = new Intent(LoginActivity.this, ChangePwActivity.class);
+// startActivity(intent);
}
});
}
diff --git a/app/src/main/java/com/example/nemophila/MyPageActivity.java b/app/src/main/java/com/example/nemophila/MyPageActivity.java
index d32f433..a2f9074 100644
--- a/app/src/main/java/com/example/nemophila/MyPageActivity.java
+++ b/app/src/main/java/com/example/nemophila/MyPageActivity.java
@@ -19,12 +19,12 @@
import com.example.nemophila.viewmodels.AccountViewModel;
public class MyPageActivity extends AppCompatActivity {
-
+//MyPageActivity画面の作成
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mypage);
-
+//ボタンを押した場合の画面遷移
Button friendButton = (Button) findViewById(R.id.friend);
friendButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
@@ -56,12 +56,13 @@
startActivity(intent);
}
});
-
+//AccountViewModelとの通信とテキストの表示
AccountViewModel accountViewModel = new ViewModelProvider(this).get(AccountViewModel.class);
- TextView name = (TextView) findViewById(R.id.name);
- TextView id = (TextView) findViewById(R.id.id);
-// accountViewModel.getAccountLiveData().observe(this, new Observer() {
-//
-// });
+ Nemophila nemophila = (Nemophila) getApplication();
+ String uid = nemophila.getUid();
+// String name = nemophila.
+// TextView name = (TextView) findViewById(R.id.name);
+// TextView id = (TextView) findViewById(R.id.id);
+
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/nemophila/MyPageEditorActivity.java b/app/src/main/java/com/example/nemophila/MyPageEditorActivity.java
index 230015e..b9b46be 100644
--- a/app/src/main/java/com/example/nemophila/MyPageEditorActivity.java
+++ b/app/src/main/java/com/example/nemophila/MyPageEditorActivity.java
@@ -1,14 +1,58 @@
package com.example.nemophila;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.lifecycle.ViewModelProvider;
+import android.content.Intent;
import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+
+import com.example.nemophila.viewmodels.AccountViewModel;
public class MyPageEditorActivity extends AppCompatActivity {
-
+//マイページ編集画面の作成
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_page_editor);
+//AccountViewModelとの通信
+ AccountViewModel accountViewModel = new ViewModelProvider(this).get(AccountViewModel.class);
+//MyPageに戻るボタン
+ Button backButton = (Button) findViewById(R.id.backMyPage);
+ backButton.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ Intent intent = new Intent(MyPageEditorActivity.this, MyPageActivity.class);
+ startActivity(intent);
+
+ }
+ });
+//変更確定ボタンを押した場合の動き
+ Button changeNameButton = (Button) findViewById(R.id.changeConfirm);
+ changeNameButton.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+//名前とパスワードを取り込む
+ EditText editName = (EditText) findViewById(R.id.editName);
+ String newName = editName.getText().toString();
+ EditText editOldPw = (EditText) findViewById(R.id.editOldPw);
+ String oldPw = editOldPw.getText().toString();
+ EditText editNewPw = (EditText) findViewById(R.id.editNewPw);
+ String newPw = editNewPw.getText().toString();
+//Nemophilaから(id)(token)をgetしてaccountViewModelに送る
+ Nemophila nemophila = (Nemophila) getApplication();
+ String uid = nemophila.getUid();
+ String token = nemophila.getToken();
+ if(newName!=null) {
+ accountViewModel.changeName(uid, newName, token);
+ }
+ if(oldPw!=null && newPw!=null) {
+ accountViewModel.changePw(uid, oldPw, newPw, token);
+ }
+//変更確定ボタンを押した場合もMyPageに戻る
+ Intent intent = new Intent(MyPageEditorActivity.this, MyPageActivity.class);
+ startActivity(intent);
+ }
+ });
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/nemophila/Nemophila.java b/app/src/main/java/com/example/nemophila/Nemophila.java
index 1069e4e..aa1b244 100644
--- a/app/src/main/java/com/example/nemophila/Nemophila.java
+++ b/app/src/main/java/com/example/nemophila/Nemophila.java
@@ -5,6 +5,7 @@
import com.example.nemophila.entities.Shop;
public class Nemophila extends Application {
+ private String name;
private String uid;
private String token;
private Shop currentShop;
@@ -12,6 +13,10 @@
private double currentLatitude;
//Getter
+
+ public String getName() {
+ return name;
+ }
public String getUid() {
return uid;
}
@@ -29,6 +34,9 @@
}
//Setter
+ public void setName(String name) {
+ this.name = name;
+ }
public void setUid(String uid) {
this.uid = uid;
}
diff --git a/app/src/main/java/com/example/nemophila/ShopActivity.java b/app/src/main/java/com/example/nemophila/ShopActivity.java
index b1d0143..ed03880 100644
--- a/app/src/main/java/com/example/nemophila/ShopActivity.java
+++ b/app/src/main/java/com/example/nemophila/ShopActivity.java
@@ -3,6 +3,8 @@
import static android.app.PendingIntent.getActivity;
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;
@@ -12,6 +14,9 @@
import android.view.View;
import android.widget.Button;
+import com.example.nemophila.entities.Post;
+import com.example.nemophila.viewmodels.PostsViewModel;
+
import java.util.ArrayList;
import java.util.List;
@@ -22,22 +27,24 @@
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_shop);
- //右上のボタンで投稿画面へ遷移
- Button postButton = (Button)findViewById(R.id.postButton);
- postButton.setOnClickListener(new View.OnClickListener(){
+ //右上のボタンで投稿画面(PostActivity)へ遷移
+ Button buttonToPost = (Button)findViewById(R.id.buttonToPostActivity);
+ buttonToPost.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
Intent intent = new Intent(getApplication(), PostActivity.class);
startActivity(intent);
}
});
+ List postsDataset = new ArrayList<>();
+
+
//RecyclerView
RecyclerView rv = (RecyclerView) findViewById(R.id.postsList);
- ShopActivityAdapter adapter = new ShopActivityAdapter(this.createDataset());
+ ShopActivityAdapter adapter = new ShopActivityAdapter(postsDataset);
LinearLayoutManager llm = new LinearLayoutManager(this);
-
RecyclerView.ItemDecoration itemDecoration =
new DividerItemDecoration(this, DividerItemDecoration.VERTICAL);
rv.addItemDecoration(itemDecoration);
@@ -46,24 +53,59 @@
rv.setLayoutManager(llm);
rv.setAdapter(adapter);
+ //通信テスト
+ PostsViewModel postsViewModel = new ViewModelProvider(this).get(PostsViewModel.class);
+ postsViewModel.getShopPostJson("151347fa-2c90-44d7-ba48-f23f475b910d");
+
+ //LiveDataへの購読
+ postsViewModel.getShopPostLiveData().observe(this, new Observer>() {
+ //private List members;
+ @Override
+ public void onChanged(List ShopPosts) {
+ postsDataset.clear();
+ for (Post post: ShopPosts){
+ PostDataModel data = new PostDataModel();
+ data.setName(post.getName());
+ data.setDate(post.getDate());
+ int intRate = post.getRate();
+ String strRate = "";
+ for (int i = 0; i < 5; i++){
+ if(intRate > i ){
+ strRate += "★";
+ }else{
+ strRate += "☆";
+ }
+ }
+ data.setRate(strRate);
+ data.setGenre(post.getGenre());
+ data.setComment(post.getComment());
+
+ postsDataset.add(data);
+ System.out.println("hogehoge");
+ }
+ }
+
+ });
}
- private List createDataset() {
- //RecyclerViewの中身の仮データ
- List dataset = new ArrayList<>();
- for (int i = 0; i < 50; i++) {
- PostDataModel data = new PostDataModel();
- data.setName("ネモフィラ 太郎" + i + "号");
- data.setDate("yyyy/mm/dd");
- data.setRate("★★★★★");
- data.setGenre("ラーメン, 中華, おいしい, 安い");
- data.setComment("おいしかった。");
- dataset.add(data);
- }
- return dataset;
- }
+// private List postsDataset() {
+//
+// //RecyclerViewの中身の仮データ
+// List dataset = new ArrayList<>();
+// for (int i = 0; i < 50; i++) {
+// PostDataModel data = new PostDataModel();
+// data.setName("ネモフィラ 太郎" + i + "号");
+// data.setDate("yyyy/mm/dd");
+// data.setRate("★★★★★");
+// data.setGenre("ラーメン, 中華, おいしい, 安い");
+// data.setComment("おいしかった。");
+//
+// dataset.add(data);
+// }
+// return dataset;
+// }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/nemophila/ShopCreateActivity.java b/app/src/main/java/com/example/nemophila/ShopCreateActivity.java
index 811ddd9..a0dcc9b 100644
--- a/app/src/main/java/com/example/nemophila/ShopCreateActivity.java
+++ b/app/src/main/java/com/example/nemophila/ShopCreateActivity.java
@@ -2,7 +2,10 @@
import androidx.appcompat.app.AppCompatActivity;
+import android.content.Intent;
import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
public class ShopCreateActivity extends AppCompatActivity {
@@ -10,5 +13,19 @@
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_shop_create);
+
+
+ // お店の名前を取得
+
+ //右下のボタンでShopActivityへ遷移
+ //sidを発行してピンを立てたい
+ Button shopCreateButton = (Button)findViewById(R.id.buttonShopCreate);
+ shopCreateButton.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ Intent intent = new Intent(getApplication(), ShopActivity.class);
+ startActivity(intent);
+ }
+ });
+
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/nemophila/SignUpActivity.java b/app/src/main/java/com/example/nemophila/SignUpActivity.java
index bccc61a..9a412a6 100644
--- a/app/src/main/java/com/example/nemophila/SignUpActivity.java
+++ b/app/src/main/java/com/example/nemophila/SignUpActivity.java
@@ -10,13 +10,14 @@
import com.example.nemophila.entities.Account;
import com.example.nemophila.resources.AccountsRest;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.jackson.JacksonConverterFactory;
-
+@JsonIgnoreProperties(ignoreUnknown=true)
public class SignUpActivity extends AppCompatActivity{
private Retrofit retrofit;
diff --git a/app/src/main/java/com/example/nemophila/TestActivity.java b/app/src/main/java/com/example/nemophila/TestActivity.java
index bd60023..c38422c 100644
--- a/app/src/main/java/com/example/nemophila/TestActivity.java
+++ b/app/src/main/java/com/example/nemophila/TestActivity.java
@@ -57,14 +57,14 @@
switch (position){
//ここにテストしたい処理を追加する( 0はShopsViewModel、1はAccountViewModel、2はPostsViewModel)
case 0:
- // shopsViewModel.setViewArea(20.0, 40.0, 10.0, 30.0);
- shopsViewModel.start(500, nemophila);
+ shopsViewModel.setViewArea(20.0, 40.0, 10.0, 30.0);
+ // shopsViewModel.start(500, nemophila);
break;
case 1:
//accountViewModel.getAccount("1111");
break;
case 2:
- postsViewModel.getShopPosts("2637a768-da49-40f9-bd48-a4f3aea64e28");
+ postsViewModel.getShopPostJson("151347fa-2c90-44d7-ba48-f23f475b910d");
break;
}
}
diff --git a/app/src/main/java/com/example/nemophila/entities/Shop.java b/app/src/main/java/com/example/nemophila/entities/Shop.java
index 9095f5a..13522f2 100644
--- a/app/src/main/java/com/example/nemophila/entities/Shop.java
+++ b/app/src/main/java/com/example/nemophila/entities/Shop.java
@@ -7,7 +7,6 @@
private String name;
private double longitude;
private double latitude;
- private ArrayList posts = new ArrayList<>();
//Getter
public String getSid() {
@@ -22,9 +21,6 @@
public double getLatitude() {
return latitude;
}
- public ArrayList getPosts() {
- return posts;
- }
//Setter
public void setSid(String id) {
@@ -39,7 +35,16 @@
public void setLatitude(double latitude) {
this.latitude = latitude;
}
- public void setPosts(ArrayList posts) {
- this.posts = posts;
+
+ @Override
+ public boolean equals(Object other) {
+ if (other == null || !(other instanceof Shop)) {
+ return false;
+ }
+ Shop shop = (Shop) other;
+ if (!this.id.equals(shop.id)) {
+ return false;
+ }
+ return true;
}
}
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 2da0430..3d57bc1 100644
--- a/app/src/main/java/com/example/nemophila/resources/AccountsRest.java
+++ b/app/src/main/java/com/example/nemophila/resources/AccountsRest.java
@@ -71,7 +71,6 @@
@DELETE("shops/{sid}/posts/{uid}/{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 b8d13de..42479b7 100644
--- a/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java
+++ b/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java
@@ -1,11 +1,14 @@
package com.example.nemophila.viewmodels;
import com.example.nemophila.entities.Account;
+import com.example.nemophila.entities.Post;
import com.example.nemophila.resources.AccountsRest;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
+import java.util.Collection;
+
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
@@ -18,23 +21,26 @@
private final AccountsRest accountsRest;
// ライブデータ
private final MutableLiveData accountLiveData;
+ private final MutableLiveData> accountPostsLiveData;
// コンストラクタ
public AccountViewModel() {
- this.accountLiveData = new MutableLiveData<>();
this.retrofit = new Retrofit.Builder()
.baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/nemophila/")
.addConverterFactory(JacksonConverterFactory.create())
.build();
this.accountsRest = retrofit.create(AccountsRest.class);
+ this.accountLiveData = new MutableLiveData<>();
+ this.accountPostsLiveData = new MutableLiveData<>();
}
// ライブデータの取得(ゲッター)
public MutableLiveData getAccountLiveData() {
return accountLiveData;
}
+ public MutableLiveData> getAccountPostsLiveData() { return accountPostsLiveData; }
- // アカウント情報の取得
+ // 対象のアカウント情報の取得
public void getAccount(String uid) {
Call call = accountsRest.getAccount(uid);
@@ -54,7 +60,7 @@
});
}
- // アカウント情報の削除
+ // 対象のアカウント情報の削除
public void deleteAccount(String uid) {
Call call = accountsRest.deleteAccount(uid);
@@ -74,7 +80,7 @@
});
}
- // アカウントパスワードの変更
+ // 対象のアカウントパスワードの変更
public void changePw(String uid, String oldPw, String newPw, String token) {
Call call = accountsRest.changePw(uid, oldPw, newPw, token);
@@ -94,7 +100,7 @@
});
}
- // アカウント名の変更
+ // 対象のアカウント名の変更
public void changeName(String uid, String name, String token) {
Call call = accountsRest.changeName(uid, name, token);
@@ -113,4 +119,44 @@
}
});
}
+
+ // 対象のアカウントがした投稿の全取得
+ public void getAccountPosts(String uid) {
+ Call> call = accountsRest.getAccountPosts(uid);
+
+ call.enqueue(new Callback>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ if (response.isSuccessful()) {
+ accountPostsLiveData.setValue(response.body());
+ } else {
+ System.out.println("response error");
+ }
+ }
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ System.out.println("correspondence error");
+ }
+ });
+ }
+
+ // 対象のアカウントがした投稿の削除
+ public void deleteAccountPost(String sid, String uid, String pid, String token) {
+ Call call = accountsRest.deletePost(sid, uid, pid, token);
+
+ call.enqueue(new Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+ if (response.isSuccessful()) {
+ System.out.println("successful");
+ } else {
+ System.out.println("response error");
+ }
+ }
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ System.out.println("correspondence error");
+ }
+ });
+ }
}
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 30199fe..37e7985 100644
--- a/app/src/main/java/com/example/nemophila/viewmodels/PostsViewModel.java
+++ b/app/src/main/java/com/example/nemophila/viewmodels/PostsViewModel.java
@@ -23,7 +23,6 @@
final private Retrofit retrofit;
final private PostsRest postsRest;
private String pid;
- private ArrayList postJson;
//LiveData
final private MutableLiveData> accountPostsLiveData;
@@ -39,13 +38,15 @@
.build();
this.postsRest = retrofit.create(PostsRest.class);
this.pid = null;
- this.postJson = new ArrayList<>();
}
//getter
- public LiveData> getLiveData() {
+ public LiveData> getAccountPostLiveData() {
return this.accountPostsLiveData;
}
+ public LiveData> getShopPostLiveData() {
+ return this.shopPostsLiveData;
+ }
//API通信メソッド
public void getAccountPosts(String uid) {
@@ -92,30 +93,25 @@
}
//PostJsonからPostを作成し,それをLiveDataにセット
- public void getShopPosts(String sid) {
- System.out.println("通信前" + postJson.get(0));
+ private void setShopPostLiveData(ArrayList postJson) {
ArrayList posts = new ArrayList<>();
- getShopPostJson(sid);
- System.out.println("通信after" + postJson);
- for(PostJson pj: postJson) {
- Post post = new Post(pj);
+ for(PostJson i: postJson) {
+ Post post = new Post(i);
posts.add(post);
}
shopPostsLiveData.setValue(posts);
- System.out.println("完了しました");
}
//PostJsonを取得
- private void getShopPostJson(String sid) {
+ public void getShopPostJson(String sid) {
Call> call = postsRest.getShopPosts(sid);
call.enqueue(new Callback>() {
@Override
public void onResponse(Call> call, Response> response) {
if (response.isSuccessful()) {
- System.out.println("responseGood");
- postJson = response.body();
+ ArrayList postJson = response.body();
+ setShopPostLiveData(postJson);
} else {
- System.out.println("responseError");
//レスポンスエラー
}
}
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 4f0d8d3..6506043 100644
--- a/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java
+++ b/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java
@@ -7,6 +7,7 @@
import com.example.nemophila.entities.Shop;
import com.example.nemophila.resources.ShopsRest;
+import java.util.ArrayList;
import java.util.Collection;
import retrofit2.Call;
@@ -24,11 +25,14 @@
private double lx;
private double ly;
+ // 更新比較用
+ private Collection shopsPreData;
+
// ライブデータ
final private MutableLiveData> shopsLiveData;
// コンストラクタ
- public ShopsViewModel(){
+ public ShopsViewModel() {
this.shopsLiveData = new MutableLiveData<>();
this.retrofit = new Retrofit.Builder()
.baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/nemophila/")
@@ -68,7 +72,15 @@
// 通信が正常に動作
if (response.isSuccessful()) {
if (response.body() != null) {
- shopsLiveData.setValue(response.body()); // LiveDataを書き換える
+ // LiveDataとresponse.body()が異なるときは更新する
+ if (shopsPreData == null || !shopsPreData.containsAll(response.body())) {
+ System.out.println(shopsPreData);
+ System.out.println(response.body());
+ shopsLiveData.setValue(response.body()); // LiveDataを書き換える
+ shopsPreData = response.body(); // shopsPreDataを更新
+ } else {
+ System.out.println("LiveDataとresponse.body()が一致");
+ }
} else {
System.out.println("response null : setViewModel");
}
diff --git a/app/src/main/res/layout/activity_change_pw.xml b/app/src/main/res/layout/activity_change_pw.xml
deleted file mode 100644
index 761857f..0000000
--- a/app/src/main/res/layout/activity_change_pw.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ 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 62fe2bb..f8439a4 100644
--- a/app/src/main/res/layout/activity_my_page_editor.xml
+++ b/app/src/main/res/layout/activity_my_page_editor.xml
@@ -23,13 +23,14 @@
+ app:layout_constraintVertical_bias="0.112" />
+ app:layout_constraintVertical_bias="0.524" />
+ app:layout_constraintTop_toBottomOf="@+id/mokuji"
+ 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 397f53f..57ac42b 100644
--- a/app/src/main/res/layout/activity_shop.xml
+++ b/app/src/main/res/layout/activity_shop.xml
@@ -22,7 +22,7 @@
app:layout_constraintVertical_bias="0.06" />