diff --git a/.idea/misc.xml b/.idea/misc.xml
index 04fd990..ac8866a 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -12,7 +12,12 @@
+
+
+
+
+
diff --git a/app/build.gradle b/app/build.gradle
index 3e9f984..6c37ec9 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -56,4 +56,7 @@
//google用
implementation 'com.google.maps:google-maps-services:0.2.5'
implementation 'org.slf4j:slf4j-nop:1.7.25'
+
+ //RecycleView用
+ implementation 'androidx.recyclerview:recyclerview:1.2.1'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 71afc68..c421826 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -50,11 +50,11 @@
android:name=".LoginActivity"
android:exported="true"
android:label="@string/title_activity_login">
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
() {
+//
+// });
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/nemophila/ShopActivity.java b/app/src/main/java/com/example/nemophila/ShopActivity.java
index e8fdb1c..fe69e34 100644
--- a/app/src/main/java/com/example/nemophila/ShopActivity.java
+++ b/app/src/main/java/com/example/nemophila/ShopActivity.java
@@ -14,6 +14,7 @@
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_shop);
+ //右上のボタンで投稿画面へ遷移
Button postButton = (Button)findViewById(R.id.postButton);
postButton.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
@@ -21,5 +22,9 @@
startActivity(intent);
}
});
+
+ ////RecycleView
+ //super.onCreate(savedInstanceState);
+
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/nemophila/ShopActivityAdapter.java b/app/src/main/java/com/example/nemophila/ShopActivityAdapter.java
new file mode 100644
index 0000000..47b2da1
--- /dev/null
+++ b/app/src/main/java/com/example/nemophila/ShopActivityAdapter.java
@@ -0,0 +1,26 @@
+package com.example.nemophila;
+
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+public class ShopActivityAdapter extends RecyclerView.Adapter {
+
+
+ @NonNull
+ @Override
+ public ShopActivityViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ return null;
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ShopActivityViewHolder holder, int position) {
+
+ }
+
+ @Override
+ public int getItemCount() {
+ return 0;
+ }
+}
diff --git a/app/src/main/java/com/example/nemophila/ShopActivityViewHolder.java b/app/src/main/java/com/example/nemophila/ShopActivityViewHolder.java
new file mode 100644
index 0000000..5ca11ed
--- /dev/null
+++ b/app/src/main/java/com/example/nemophila/ShopActivityViewHolder.java
@@ -0,0 +1,13 @@
+package com.example.nemophila;
+
+import android.view.View;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+public class ShopActivityViewHolder extends RecyclerView.ViewHolder {
+
+ public ShopActivityViewHolder(@NonNull View itemView) {
+ super(itemView);
+ }
+}
diff --git a/app/src/main/java/com/example/nemophila/TestActivity.java b/app/src/main/java/com/example/nemophila/TestActivity.java
index c2571c8..3b2af0b 100644
--- a/app/src/main/java/com/example/nemophila/TestActivity.java
+++ b/app/src/main/java/com/example/nemophila/TestActivity.java
@@ -24,6 +24,8 @@
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
+ Nemophila nemophila = (Nemophila) this.getApplication();
+
//テスト用ViewModel(ViewModelが増えた場合はここで準備。spinnerItemに名前も追加すること)
//RoomViewModelへのアクセス
ShopsViewModel shopsViewModel = new ViewModelProvider(this).get(ShopsViewModel.class);
@@ -55,7 +57,8 @@
switch (position){
//ここにテストしたい処理を追加する( 0はShopsViewModel、1はAccountViewModel、2はPostsViewModel)
case 0:
- shopsViewModel.setViewArea(20.0, 40.0, 10.0, 30.0);
+ // shopsViewModel.setViewArea(20.0, 40.0, 10.0, 30.0);
+ shopsViewModel.start(500, nemophila);
break;
case 1:
//accountViewModel.getAccount("1111");
diff --git a/app/src/main/java/com/example/nemophila/entities/Post.java b/app/src/main/java/com/example/nemophila/entities/Post.java
index 8169350..fc17f1d 100644
--- a/app/src/main/java/com/example/nemophila/entities/Post.java
+++ b/app/src/main/java/com/example/nemophila/entities/Post.java
@@ -1,4 +1,64 @@
package com.example.nemophila.entities;
public class Post {
+ private String id;
+ private String genre;
+ private String image1;
+ private String image2;
+ private String image3;
+ private int rate;
+ private String comment;
+ private Account owner;
+
+ //Getter
+ public String getId() {
+ return id;
+ }
+ public String getGenre() {
+ return genre;
+ }
+ public String getImage1() {
+ return image1;
+ }
+ public String getImage2() {
+ return image2;
+ }
+ public String getImage3() {
+ return image3;
+ }
+ public int getRate() {
+ return rate;
+ }
+ public String getComment() {
+ return comment;
+ }
+ public Account getOwner() {
+ return owner;
+ }
+
+ //Setter
+ public void setId(String id) {
+ this.id = id;
+ }
+ public void setGenre(String genre) {
+ this.genre = genre;
+ }
+ public void setImage1(String image1) {
+ this.image1 = image1;
+ }
+ public void setImage2(String image2) {
+ this.image2 = image2;
+ }
+ public void setImage3(String image3) {
+ this.image3 = image3;
+ }
+ public void setRate(int rate) {
+ this.rate = rate;
+ }
+ public void setComment(String comment) {
+ this.comment = comment;
+ }
+ public void setOwner(Account owner) {
+ this.owner = owner;
+ }
}
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 5f0f243..81e0aa5 100644
--- a/app/src/main/java/com/example/nemophila/resources/AccountsRest.java
+++ b/app/src/main/java/com/example/nemophila/resources/AccountsRest.java
@@ -59,7 +59,7 @@
@PUT("accounts/{uid}/name")
Call changeName(
@Path("uid") String uid,
- @Field("name") String oldPw,
+ @Field("name") String name,
@Field("token") String token
);
diff --git a/app/src/main/java/com/example/nemophila/resources/PostsRest.java b/app/src/main/java/com/example/nemophila/resources/PostsRest.java
index 1791bd4..da76051 100644
--- a/app/src/main/java/com/example/nemophila/resources/PostsRest.java
+++ b/app/src/main/java/com/example/nemophila/resources/PostsRest.java
@@ -34,7 +34,7 @@
);
@GET("shops/{sid}/posts")
- Call> getShopPosts(
+ Call> getShopPosts(
@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 fc670fa..b8d13de 100644
--- a/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java
+++ b/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java
@@ -16,7 +16,6 @@
// フィールド
private final Retrofit retrofit;
private final AccountsRest accountsRest;
-
// ライブデータ
private final MutableLiveData accountLiveData;
@@ -30,7 +29,7 @@
this.accountsRest = retrofit.create(AccountsRest.class);
}
- // ライブデータの取得
+ // ライブデータの取得(ゲッター)
public MutableLiveData getAccountLiveData() {
return accountLiveData;
}
@@ -55,6 +54,46 @@
});
}
+ // アカウント情報の削除
+ public void deleteAccount(String uid) {
+ Call call = accountsRest.deleteAccount(uid);
+
+ 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");
+ }
+ });
+ }
+
+ // アカウントパスワードの変更
+ public void changePw(String uid, String oldPw, String newPw, String token) {
+ 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("successful");
+ } else {
+ System.out.println("response error");
+ }
+ }
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ System.out.println("correspondence error");
+ }
+ });
+ }
+
// アカウント名の変更
public void changeName(String uid, String name, String token) {
Call call = accountsRest.changeName(uid, name, token);
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 5e32ce2..887769c 100644
--- a/app/src/main/java/com/example/nemophila/viewmodels/PostsViewModel.java
+++ b/app/src/main/java/com/example/nemophila/viewmodels/PostsViewModel.java
@@ -23,12 +23,24 @@
final private Retrofit retrofit;
final private PostsRest postsRest;
private String pid;
- private ArrayList postJsons = new ArrayList<>();
//LiveData
final private MutableLiveData> accountPostsLiveData;
final private MutableLiveData> shopPostsLiveData;
+ //テスト用のリスト
+ private ArrayList testPostsList;
+ //テスト用のメソッド
+ private void createSamplePost() {
+ Post post1 = new Post();
+ Post post2 = new Post();
+
+ post1.setId("ID1");
+ post2.setId("ID2");
+
+ testPostsList.add(post1);
+ testPostsList.add(post2);
+ }
//コンストラクタ
public PostsViewModel() {
@@ -40,6 +52,8 @@
.build();
this.postsRest = retrofit.create(PostsRest.class);
this.pid = null;
+ this.testPostsList = new ArrayList<>();
+ createSamplePost();
}
//getter
@@ -67,6 +81,7 @@
});
}
+ //投稿作成
public String createPost(String uid, String token, String sid,
String rate, String genre, String comment,
String image1, String image2, String image3) {
@@ -90,29 +105,22 @@
return pid;
}
- private void getShopPostJsons(String sid) {
- Call> call = postsRest.getShopPosts(sid);
- call.enqueue(new Callback>() {
+ public void getShopPostJson(String sid) {
+ Call> call = postsRest.getShopPosts(sid);
+ call.enqueue(new Callback>() {
@Override
- public void onResponse(Call> call, Response> response) {
+ public void onResponse(Call> call, Response> response) {
if (response.isSuccessful()) {
- postJsons = response.body();
+ shopPostsLiveData.setValue(response.body());
} else {
//レスポンスエラー
}
}
@Override
- public void onFailure(Call> call, Throwable t) {
+ public void onFailure(Call> call, Throwable t) {
//通信エラー
}
});
}
-
- public void getShopPosts(String sid) {
- getAccountPosts(sid);
- for(PostJson pj: this.postJsons) {
-
- }
- }
}
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 addd584..4f0d8d3 100644
--- a/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java
+++ b/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java
@@ -15,10 +15,14 @@
import retrofit2.Retrofit;
import retrofit2.converter.jackson.JacksonConverterFactory;
-public class ShopsViewModel extends ViewModel {
+public class ShopsViewModel extends TimerViewModel {
// フィールド
final private ShopsRest shopsRest;
final private Retrofit retrofit;
+ private double ux;
+ private double uy;
+ private double lx;
+ private double ly;
// ライブデータ
final private MutableLiveData> shopsLiveData;
@@ -33,12 +37,27 @@
this.shopsRest = retrofit.create(ShopsRest.class);
}
- public LiveData> getMembersLiveData() {
+ public LiveData> getShopsLiveData() {
return this.shopsLiveData;
}
+ @Override
+ public void update() {
+ updateShops();
+ // System.out.println("hogehoge");
+ }
+
// 画面を動かす, 又はGPSが移動する度に呼び出される
public void setViewArea(double ux, double uy, double lx, double ly) {
+ this.ux = ux;
+ this.uy = uy;
+ this.lx = lx;
+ this.ly = ly;
+
+ updateShops();
+ }
+
+ public void updateShops() {
// 画面内に収まる範囲の店舗を取得する
Call> call = shopsRest.getShops(ux, uy, lx, ly);
diff --git a/app/src/main/java/com/example/nemophila/viewmodels/TimerViewModel.java b/app/src/main/java/com/example/nemophila/viewmodels/TimerViewModel.java
new file mode 100644
index 0000000..3ec5dd4
--- /dev/null
+++ b/app/src/main/java/com/example/nemophila/viewmodels/TimerViewModel.java
@@ -0,0 +1,38 @@
+package com.example.nemophila.viewmodels;
+
+import com.example.nemophila.Nemophila;
+
+import java.util.concurrent.ScheduledThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
+import androidx.lifecycle.ViewModel;
+
+abstract class TimerViewModel extends ViewModel implements Runnable {
+ private ScheduledThreadPoolExecutor thread = null;
+ protected Nemophila nemophila;
+
+
+ //-----------------------------------------------------------------
+ // 一定間隔で呼び出す
+ @Override
+ public void run() {
+ update();
+ }
+
+ public abstract void update();
+
+ //-----------------------------------------------------------------
+ //何ミリ秒ごとにrun()を実行するかを決める
+ public void start(int interval, Nemophila nemophila) {
+ this.nemophila = nemophila;
+ thread = new ScheduledThreadPoolExecutor(1);
+ thread.scheduleWithFixedDelay(this, interval, 1000L, TimeUnit.MILLISECONDS);
+ }
+
+ //-----------------------------------------------------------------
+ //
+ public void stop() {
+ thread.shutdown();
+ }
+ //-----------------------------------------------------------------
+}
diff --git a/app/src/main/res/layout/activity_shop.xml b/app/src/main/res/layout/activity_shop.xml
index 108efca..ae997d6 100644
--- a/app/src/main/res/layout/activity_shop.xml
+++ b/app/src/main/res/layout/activity_shop.xml
@@ -34,6 +34,7 @@
app:layout_constraintVertical_bias="0.032" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file