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 @@ - - - - - - - - - -