diff --git a/.idea/misc.xml b/.idea/misc.xml
index 4862f2b..b3a7a61 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -18,6 +18,7 @@
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6697b51..df8ac75 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -24,11 +24,6 @@
android:name=".ShopCreateActivity"
android:exported="true"
android:label="@string/title_activity_shop_create">
-
-
-
-
-
-
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
diff --git a/app/src/main/java/com/example/nemophila/FriendActivity.java b/app/src/main/java/com/example/nemophila/FriendActivity.java
index 718a01c..ad12256 100644
--- a/app/src/main/java/com/example/nemophila/FriendActivity.java
+++ b/app/src/main/java/com/example/nemophila/FriendActivity.java
@@ -10,5 +10,6 @@
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_friend);
+
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/nemophila/LoginActivity.java b/app/src/main/java/com/example/nemophila/LoginActivity.java
index cd63a63..c3bdf20 100644
--- a/app/src/main/java/com/example/nemophila/LoginActivity.java
+++ b/app/src/main/java/com/example/nemophila/LoginActivity.java
@@ -9,7 +9,9 @@
import android.widget.TextView;
import com.example.nemophila.entities.Account;
+import com.example.nemophila.entities.AccountJson;
import com.example.nemophila.resources.AccountsRest;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import retrofit2.Call;
import retrofit2.Callback;
@@ -17,15 +19,26 @@
import retrofit2.Retrofit;
import retrofit2.converter.jackson.JacksonConverterFactory;
+@JsonIgnoreProperties(ignoreUnknown=true)
public class LoginActivity extends AppCompatActivity {
private Retrofit retrofit;
private AccountsRest AccountsRest;
+ private Nemophila nemophila;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
+
+ //Nemophilaと連携
+ nemophila = (Nemophila) this.getApplication();
+ //Nemophilaにtokenとuidがある場合ログイン画面をスキップ
+ if ((nemophila.getUid() != null) && (nemophila.getToken() != null)){
+ Intent intent = new Intent(LoginActivity.this,MainActivity.class);
+ startActivity(intent);
+ }
+
//通信の初期化
this.retrofit = new Retrofit.Builder()
.baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/nemophila/")
@@ -33,42 +46,50 @@
.build();
this.AccountsRest = retrofit.create(AccountsRest.class);
-
+//Loginボタンを押したとき
findViewById(R.id.LoginButton).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
+ //IDとpwの入力
EditText edituid = (EditText) findViewById(R.id.editTextUserID);
String uid = edituid.getText().toString();
EditText editpw = (EditText) findViewById(R.id.editTextTextNewPassword);
String pw = editpw.getText().toString();
// 通信
- Call call = AccountsRest.getAccounts(uid,pw);
+ Call call = AccountsRest.getAccounts(uid,pw);
- 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()) {
System.out.println("通信成功:changeBelongsAndMaster");
+
+ nemophila.setName(response.body().getName());
+ nemophila.setUid(response.body().getId());
+ nemophila.setToken(response.body().getToken());
+
Intent intent = new Intent(LoginActivity.this,MainActivity.class);
startActivity(intent);
} else {
System.out.println("通信可能:changeBelongsAndMaster: " + response.code());
if (response.code() == 500){
((TextView) findViewById(R.id.textView)).setText("Invalid UserID or Password");
- }else if (response.code() == 404){
+ } else if (response.code() == 404){
((TextView) findViewById(R.id.textView)).setText("Login failed. Please enter the correct credentials.");
}
}
}
@Override
- public void onFailure(Call call, Throwable t) {
+ public void onFailure(Call call, Throwable t) {
System.out.println("通信失敗:changeBelongsAndMaster");
+ System.out.println(t);
}
});
}
});
+//SignUpボタンを押したとき
findViewById(R.id.SignUp).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
@@ -76,6 +97,7 @@
startActivity(intent);
}
});
+//ForgotPasswordボタンを押したとき(処理未記入)
findViewById(R.id.ForgotPW).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
diff --git a/app/src/main/java/com/example/nemophila/MainActivity.java b/app/src/main/java/com/example/nemophila/MainActivity.java
index c3769c7..e50541f 100644
--- a/app/src/main/java/com/example/nemophila/MainActivity.java
+++ b/app/src/main/java/com/example/nemophila/MainActivity.java
@@ -1,6 +1,5 @@
package com.example.nemophila;
-import androidx.core.content.res.ResourcesCompat;
import androidx.fragment.app.FragmentActivity;
import androidx.activity.result.ActivityResultLauncher;
@@ -8,19 +7,16 @@
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.graphics.Canvas;
-import android.graphics.Point;
-import android.graphics.drawable.Drawable;
+import android.app.ProgressDialog;
import android.os.Bundle;
+import android.view.View;
+import android.widget.ImageButton;
import android.widget.Toast;
import android.annotation.SuppressLint;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
-import android.widget.TextView;
import android.content.Intent;
import android.provider.Settings;
import android.util.Log;
@@ -28,12 +24,10 @@
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
-import com.google.android.gms.maps.MapView;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptor;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
-import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.GroundOverlay;
import com.google.android.gms.maps.model.GroundOverlayOptions;
import com.google.android.gms.maps.model.LatLng;
@@ -41,30 +35,46 @@
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import com.example.nemophila.databinding.ActivityMainBinding;
-import com.google.firebase.firestore.GeoPoint;
-
-import java.util.Map;
public class MainActivity extends FragmentActivity implements OnMapReadyCallback,LocationListener {
private GoogleMap mMap;
private ActivityMainBinding binding;
- private LatLng latlng;
- private LatLng latlng2;
+ private LatLng currentLatlng = null;
+ private LatLng testLatlng;
+ private LatLng testLatlng2;
+ private LatLng initialLatlng;
- private GroundOverlay current_overlay;
+ private GroundOverlay currentOverlay;
LocationManager locationManager;
-
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- //現在地アイコンの取得
- //Drawable ic_current = ResourcesCompat.getDrawable(getResources(),R.drawable.ic_current_location,null);
+
binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
+ //現在地ボタン
+ ImageButton button1 = findViewById(R.id.currentButton);
+ // lambda式
+ button1.setOnClickListener( v -> {
+ Log.d("debug", "currentbutton, 現在地にカメラを移動");
+ //現在地にカメラを移動
+ zoomMap(currentLatlng.latitude, currentLatlng.longitude);
+ });
+
+ ImageButton myPageButton = findViewById(R.id.myPageButton);
+ // lambda式
+ myPageButton.setOnClickListener( v -> {
+ Log.d("debug", "myPageButton, マイページに画面遷移");
+ Intent intent = new Intent(MainActivity.this, MyPageActivity.class);
+ startActivity(intent);
+ });
+
+
if (ActivityCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
@@ -93,9 +103,15 @@
double latitude = 34.7308032;
double longitude = 135.2630272;
- //テスト用
- latlng = new LatLng(latitude, longitude);
- latlng2 = new LatLng(34.74, 135.26);
+ //テスト用,仮ピン立て
+ testLatlng = new LatLng(latitude, longitude);
+ testLatlng2 = new LatLng(34.74, 135.26);
+
+ //初期画面の座標(現在地をロードするまで)
+ initialLatlng = new LatLng(39,138);
+
+ //初期画面に移動
+ mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(initialLatlng, 5f));
//標準のマーカー(店用のピン)
setMarker(latitude, longitude);
@@ -104,9 +120,6 @@
//画像関連がわかっていないのでパス
//setIcon(latitude, longitude);
- // camera 移動 (初期画面)
- //mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latlng, 15));
-
/*
//多分使わない
// タップした時のリスナーをセット
@@ -163,22 +176,22 @@
}
- //ピンの初期設定。完成時不要
+ //起動時から立っているピンの設定。完成時不要
private void setMarker(double latitude, double longitude){
MarkerOptions markerOptions = new MarkerOptions();
MarkerOptions markerOptions2 = new MarkerOptions();
- markerOptions.position(latlng);
+ markerOptions.position(testLatlng);
markerOptions.title("ntlab");
mMap.addMarker(markerOptions);
//テスト用
- markerOptions2.position(latlng2);
+ markerOptions2.position(testLatlng2);
markerOptions2.title(null);
mMap.addMarker(markerOptions2);
// ズーム
- zoomMap(latitude, longitude);
+ //zoomMap(latitude, longitude);
}
@@ -189,6 +202,8 @@
double north = latitude * (1+0.00005);
double east = longitude * (1+0.00005);
+ LatLng latlng = new LatLng(latitude,longitude);
+
// LatLngBounds (LatLng southwest, LatLng northeast)
//左下、右上
LatLngBounds bounds = LatLngBounds.builder()
@@ -207,11 +222,12 @@
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latlng, 15f));
}
+ //現在地の表示
private void setIcon(double latitude, double longitude){
//Drawable ic_current = ResourcesCompat.getDrawable(getResources(),R.drawable.icon_current,null);
//更新前の現在地アイコンを消去
- if(current_overlay != null) {
- current_overlay.remove();
+ if(currentOverlay != null) {
+ currentOverlay.remove();
}
LatLng current_location = new LatLng(latitude,longitude);
@@ -233,14 +249,14 @@
overlayOptions.position(current_location, 200f, 200f);
// マップに貼り付け・アルファを設定
- current_overlay = mMap.addGroundOverlay(overlayOptions);
+ currentOverlay = mMap.addGroundOverlay(overlayOptions);
// カメラを移動
- zoomMap(latitude, longitude);
+ //zoomMap(latitude, longitude);
// 透明度
- assert current_overlay != null;
- current_overlay.setTransparency(0.8F);
+ assert currentOverlay != null;
+ currentOverlay.setTransparency(0.8F);
}
@@ -299,27 +315,36 @@
@Override
public void onLocationChanged(Location location) {
+ //初期画面は現在地を中心にするため...
+ if (currentLatlng == null){
+ zoomMap(location.getLatitude(), location.getLongitude());
+ findViewById(R.id.LL_Load).setVisibility(View.GONE);
+
+ }
+
//現在地が変更されるたびに現在地アイコンを移動
- //LatLng型で一応受け取っておく
- latlng = new LatLng(location.getLatitude(), location.getLongitude());
+ //LatLng型で受け取っておく
+ currentLatlng = new LatLng(location.getLatitude(), location.getLongitude());
/*
テスト用。現在座標を画面に表示
*/
- // 緯度の表示
- TextView textView1 = findViewById(R.id.text_view1);
- String str1 = "Latitude:"+location.getLatitude();
- textView1.setText(str1);
-
- // 経度の表示
- TextView textView2 = findViewById(R.id.text_view2);
- String str2 = "Longitude:"+location.getLongitude();
- textView2.setText(str2);
+// // 緯度の表示
+// TextView textView1 = findViewById(R.id.text_view1);
+// String str1 = "Latitude:"+location.getLatitude();
+// textView1.setText(str1);
+//
+// // 経度の表示
+// TextView textView2 = findViewById(R.id.text_view2);
+// String str2 = "Longitude:"+location.getLongitude();
+// textView2.setText(str2);
//現在地アイコンを表示.このsetIcon内にzoomMap処理もあるので注意
setIcon(location.getLatitude(),location.getLongitude());
}
+
+
@Override
public void onProviderEnabled(String provider) {
@@ -329,4 +354,5 @@
public void onProviderDisabled(String provider) {
}
+
}
diff --git a/app/src/main/java/com/example/nemophila/MyPageActivity.java b/app/src/main/java/com/example/nemophila/MyPageActivity.java
index a2f9074..82b4397 100644
--- a/app/src/main/java/com/example/nemophila/MyPageActivity.java
+++ b/app/src/main/java/com/example/nemophila/MyPageActivity.java
@@ -60,9 +60,11 @@
AccountViewModel accountViewModel = new ViewModelProvider(this).get(AccountViewModel.class);
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);
+ String name = nemophila.getName();
+ TextView myname = (TextView) findViewById(R.id.name);
+ myname.setText(name);
+ TextView id = (TextView) findViewById(R.id.id);
+ id.setText(uid);
}
}
\ 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 b9b46be..393e666 100644
--- a/app/src/main/java/com/example/nemophila/MyPageEditorActivity.java
+++ b/app/src/main/java/com/example/nemophila/MyPageEditorActivity.java
@@ -8,6 +8,7 @@
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
+import android.widget.TextView;
import com.example.nemophila.viewmodels.AccountViewModel;
@@ -19,6 +20,7 @@
setContentView(R.layout.activity_my_page_editor);
//AccountViewModelとの通信
AccountViewModel accountViewModel = new ViewModelProvider(this).get(AccountViewModel.class);
+ EditText name = (EditText) findViewById(R.id.editName);
//MyPageに戻るボタン
Button backButton = (Button) findViewById(R.id.backMyPage);
backButton.setOnClickListener(new View.OnClickListener() {
@@ -54,5 +56,16 @@
startActivity(intent);
}
});
+// 削除ボタンを押したときの処理
+ Button deleteAccountButton = (Button) findViewById(R.id.deleteAccount);
+ deleteAccountButton.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ Nemophila nemophila = (Nemophila) getApplication();
+ String uid = nemophila.getUid();
+ String token = nemophila.getToken();
+ Intent intent = new Intent(MyPageEditorActivity.this, LoginActivity.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 61ae16c..6b8c2be 100644
--- a/app/src/main/java/com/example/nemophila/Nemophila.java
+++ b/app/src/main/java/com/example/nemophila/Nemophila.java
@@ -18,21 +18,21 @@
public String getName() {
if(name == null){
SharedPreferences preferences = getSharedPreferences("prefData", MODE_PRIVATE);
- name = preferences.getString("name", "");
+ name = preferences.getString("name", null);
}
return name;
}
public String getUid() {
if(uid == null){
SharedPreferences preferences = getSharedPreferences("prefData", MODE_PRIVATE);
- uid = preferences.getString("uid", "");
+ uid = preferences.getString("uid", null);
}
return uid;
}
public String getToken() {
if(token == null){
SharedPreferences preferences = getSharedPreferences("prefData", MODE_PRIVATE);
- token = preferences.getString("token", "");
+ token = preferences.getString("token", null);
}
return token;
}
diff --git a/app/src/main/java/com/example/nemophila/PostActivity.java b/app/src/main/java/com/example/nemophila/PostActivity.java
index abf9115..2875f5a 100644
--- a/app/src/main/java/com/example/nemophila/PostActivity.java
+++ b/app/src/main/java/com/example/nemophila/PostActivity.java
@@ -2,6 +2,8 @@
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
+import android.widget.ArrayAdapter;
+import android.widget.Spinner;
public class PostActivity extends AppCompatActivity {
@@ -9,5 +11,20 @@
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_post);
+
+ //評価を入力するためのプルダウン
+ ArrayAdapter rateAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item);
+ rateAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+
+ rateAdapter.add("1");
+ rateAdapter.add("2");
+ rateAdapter.add("3");
+ rateAdapter.add("4");
+ rateAdapter.add("5");
+ Spinner rateSpinner = (Spinner) findViewById(R.id.inputRate);
+ rateSpinner.setAdapter(rateAdapter);
+
+
+
}
}
\ 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 7ca8ca8..6aa69fa 100644
--- a/app/src/main/java/com/example/nemophila/ShopActivity.java
+++ b/app/src/main/java/com/example/nemophila/ShopActivity.java
@@ -13,35 +13,59 @@
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
+import android.widget.TextView;
import com.example.nemophila.entities.Post;
+import com.example.nemophila.entities.Shop;
import com.example.nemophila.viewmodels.PostsViewModel;
import java.util.ArrayList;
import java.util.List;
public class ShopActivity extends AppCompatActivity {
+ private ShopActivityAdapter adapter = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_shop);
+ //NemophilaからcurrentShopを取得し店名の表示
+ //currentshopに何もないとgetNameとgetSidでアプリが落ちます
+ Shop shop;
+ String shopName;
+ String sid;
+ shop = ((Nemophila)getApplication()).getCurrentShop();
+// shopName = shop.getName();
+// sid = shop.getSid();
+ TextView nameView = (TextView) findViewById(R.id.shopName);
+ //テスト用に仮店名でセット
+ nameView.setText("お店A");
+// nameView.setText(shopName);
+
//右上のボタンで投稿画面(PostActivity)へ遷移
- Button buttonToPost = (Button)findViewById(R.id.buttonToPostActivity);
- buttonToPost.setOnClickListener(new View.OnClickListener(){
+ Button toPostButton = (Button)findViewById(R.id.toPostAcButton);
+ toPostButton.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
Intent intent = new Intent(getApplication(), PostActivity.class);
startActivity(intent);
}
});
+ //左上のボタンでメイン画面へ遷移
+ Button returnButton = (Button)findViewById(R.id.shopAcReturnButton);
+ returnButton.setOnClickListener(new View.OnClickListener(){
+ public void onClick(View v){
+ Intent intent = new Intent(getApplication(), MainActivity.class);
+ startActivity(intent);
+ }
+ });
+
List postsDataset = new ArrayList<>();
-
- //RecyclerView
+ //RecyclerView(表示以外の設定)
RecyclerView rv = (RecyclerView) findViewById(R.id.postsList);
- ShopActivityAdapter adapter = new ShopActivityAdapter(postsDataset);
+ adapter = new ShopActivityAdapter(postsDataset);
LinearLayoutManager llm = new LinearLayoutManager(this);
@@ -52,20 +76,22 @@
rv.setHasFixedSize(true);
rv.setLayoutManager(llm);
- //通信テスト
+ //PostViewModelを宣言し、LiveDataへの購読
PostsViewModel postsViewModel = new ViewModelProvider(this).get(PostsViewModel.class);
+ //通信テスト用データ(本来currentShopのsidをPostJsonに送る)
postsViewModel.getShopPostJson("151347fa-2c90-44d7-ba48-f23f475b910d");
//LiveDataへの購読
postsViewModel.getShopPostLiveData().observe(this, new Observer>() {
- //private List members;
@Override
public void onChanged(List ShopPosts) {
+ //postsDatasetを一旦クリアし、LiveDataから受け取ったデータを一つずつセット
postsDataset.clear();
for (Post post: ShopPosts){
PostDataModel data = new PostDataModel();
data.setName(post.getName());
data.setDate(post.getDate());
+ //intで受け取った評価を対応した星の数のStringに変換
int intRate = post.getRate();
String strRate = "";
for (int i = 0; i < 5; i++){
@@ -80,33 +106,14 @@
data.setComment(post.getComment());
postsDataset.add(data);
- System.out.println("hogehoge");
-
- //recyclerViewをonChangedが呼ばれるたび表示
- rv.setAdapter(adapter);
-
}
+ //RecyclerViewをonChangedが呼ばれるたび表示
+// ShopActivityAdapter adapter = new ShopActivityAdapter(postsDataset);
+ adapter.setList(postsDataset);
+ rv.setAdapter(adapter);
}
});
-
-
}
- private List kariDataset() {
-
- //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/ShopActivityAdapter.java b/app/src/main/java/com/example/nemophila/ShopActivityAdapter.java
index 8c3b5ce..d41d4ac 100644
--- a/app/src/main/java/com/example/nemophila/ShopActivityAdapter.java
+++ b/app/src/main/java/com/example/nemophila/ShopActivityAdapter.java
@@ -11,12 +11,18 @@
public class ShopActivityAdapter extends RecyclerView.Adapter {
- public List list;
+
+ private List list;
public ShopActivityAdapter(List list) {
this.list =list;
}
+ public void setList(List list) {
+ this.list = list;
+ }
+
+
@NonNull
@Override
public PostsViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
diff --git a/app/src/main/java/com/example/nemophila/SignUpActivity.java b/app/src/main/java/com/example/nemophila/SignUpActivity.java
index 9a412a6..c3ab931 100644
--- a/app/src/main/java/com/example/nemophila/SignUpActivity.java
+++ b/app/src/main/java/com/example/nemophila/SignUpActivity.java
@@ -9,6 +9,7 @@
import android.widget.TextView;
import com.example.nemophila.entities.Account;
+import com.example.nemophila.entities.AccountJson;
import com.example.nemophila.resources.AccountsRest;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@@ -17,6 +18,7 @@
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.jackson.JacksonConverterFactory;
+
@JsonIgnoreProperties(ignoreUnknown=true)
public class SignUpActivity extends AppCompatActivity{
@@ -34,21 +36,22 @@
.build();
this.AccountsRest = retrofit.create(AccountsRest.class);
-
+//アカウント新規製作
findViewById(R.id.SignUpButton).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
+ //Nameとpwを入力
EditText editname = (EditText) findViewById(R.id.editTextTextUserName);
String name = editname.getText().toString();
EditText editpw = (EditText) findViewById(R.id.editTextTextNewPassword);
String pw = editpw.getText().toString();
// 通信
- Call call = AccountsRest.createAccounts(name,pw);
+ Call call = AccountsRest.createAccounts(name,pw);
- 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()) {
System.out.println("通信成功:changeBelongsAndMaster");
Intent intent = new Intent(SignUpActivity.this,MainActivity.class);
@@ -64,11 +67,20 @@
}
@Override
- public void onFailure(Call call, Throwable t) {
+ public void onFailure(Call call, Throwable t) {
System.out.println("通信失敗:changeBelongsAndMaster");
+ System.out.println(t);
}
});
}
});
+//Login画面に遷移
+ findViewById(R.id.LoginTrans).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent intent = new Intent(SignUpActivity.this,LoginActivity.class);
+ startActivity(intent);
+ }
+ });
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/nemophila/entities/Account.java b/app/src/main/java/com/example/nemophila/entities/Account.java
index 9ebbf12..e96a2ce 100644
--- a/app/src/main/java/com/example/nemophila/entities/Account.java
+++ b/app/src/main/java/com/example/nemophila/entities/Account.java
@@ -1,6 +1,7 @@
package com.example.nemophila.entities;
import java.util.HashMap;
+import java.util.Map;
public class Account {
private String name;
@@ -43,4 +44,10 @@
public void setPosts(HashMap posts) {
this.posts = posts;
}
+
+ public Account(AccountJson aj){
+ this.name = aj.getName();
+ this.id = aj.getId();
+ this.token = aj.getToken();
+ }
}
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 3d57bc1..20af87c 100644
--- a/app/src/main/java/com/example/nemophila/resources/AccountsRest.java
+++ b/app/src/main/java/com/example/nemophila/resources/AccountsRest.java
@@ -2,14 +2,14 @@
//import android.accounts.Account;
-import com.example.nemophila.entities.Account;
-import com.example.nemophila.entities.Post;
+import com.example.nemophila.entities.AccountJson;
+import com.example.nemophila.entities.PostJson;
import java.util.Collection;
import java.util.HashMap;
-import java.util.List;
import retrofit2.Call;
+import retrofit2.Response;
import retrofit2.http.DELETE;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
@@ -24,13 +24,13 @@
@FormUrlEncoded
@POST("accounts")
- Call createAccounts(
+ Call createAccounts(
@Field("name") String name,
@Field("pw") String pw
);
@GET("accounts/{uid}")
- Call getAccount(
+ Call getAccount(
@Path("uid") String uid
);
@@ -41,7 +41,7 @@
@FormUrlEncoded
@POST("accounts/{uid}/login")
- Call getAccounts(
+ Call getAccounts(
@Path("uid") String uid,
@Field("pw")String pw
);
@@ -64,7 +64,7 @@
);
@GET("accounts/{uid}/posts")
- Call> getAccountPosts(
+ Call> getAccountPosts(
@Path("uid") String uid
);
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..bf4aa98 100644
--- a/app/src/main/java/com/example/nemophila/resources/PostsRest.java
+++ b/app/src/main/java/com/example/nemophila/resources/PostsRest.java
@@ -29,7 +29,7 @@
);
@GET("accounts/{uid}/posts")
- Call> getAccountPosts(
+ Call> getAccountPosts(
@Path("uid") String uid
);
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 42479b7..01f32f2 100644
--- a/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java
+++ b/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java
@@ -1,12 +1,15 @@
package com.example.nemophila.viewmodels;
import com.example.nemophila.entities.Account;
+import com.example.nemophila.entities.AccountJson;
import com.example.nemophila.entities.Post;
+import com.example.nemophila.entities.PostJson;
import com.example.nemophila.resources.AccountsRest;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
+import java.util.ArrayList;
import java.util.Collection;
import retrofit2.Call;
@@ -19,6 +22,7 @@
// フィールド
private final Retrofit retrofit;
private final AccountsRest accountsRest;
+
// ライブデータ
private final MutableLiveData accountLiveData;
private final MutableLiveData> accountPostsLiveData;
@@ -35,26 +39,41 @@
}
// ライブデータの取得(ゲッター)
- public MutableLiveData getAccountLiveData() {
- return accountLiveData;
- }
+ public MutableLiveData getAccountLiveData() { return accountLiveData; }
public MutableLiveData> getAccountPostsLiveData() { return accountPostsLiveData; }
+ //AccountJsonからAccountを作成し,対象のライブデータに設定する
+ private void setAccountLiveDataFromJson(AccountJson accountJson) {
+ Account account = new Account(accountJson);
+ accountLiveData.setValue(account);
+ }
+
+ //PostJsonからPostを作成し,対象のライブデータに設定する
+ private void setAccountPostLiveDataFromJson(Collection postJson) {
+ ArrayList posts = new ArrayList<>();
+ for(PostJson i: postJson) {
+ Post post = new Post(i);
+ posts.add(post);
+ }
+ accountPostsLiveData.setValue(posts);
+ }
+
// 対象のアカウント情報の取得
public void getAccount(String uid) {
- Call call = accountsRest.getAccount(uid);
+ Call call = accountsRest.getAccount(uid);
- 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()) {
- accountLiveData.setValue(response.body());
+ AccountJson accountJson = response.body();
+ setAccountLiveDataFromJson(accountJson);
} else {
System.out.println("response error");
}
}
@Override
- public void onFailure(Call call, Throwable t) {
+ public void onFailure(Call call, Throwable t) {
System.out.println("correspondence error");
}
});
@@ -122,19 +141,20 @@
// 対象のアカウントがした投稿の全取得
public void getAccountPosts(String uid) {
- Call> call = accountsRest.getAccountPosts(uid);
+ Call> call = accountsRest.getAccountPosts(uid);
- 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()) {
- accountPostsLiveData.setValue(response.body());
+ Collection postJson = response.body();
+ setAccountPostLiveDataFromJson(postJson);
} else {
System.out.println("response error");
}
}
@Override
- public void onFailure(Call> call, Throwable t) {
+ 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 37e7985..dd8e411 100644
--- a/app/src/main/java/com/example/nemophila/viewmodels/PostsViewModel.java
+++ b/app/src/main/java/com/example/nemophila/viewmodels/PostsViewModel.java
@@ -22,7 +22,6 @@
//Field
final private Retrofit retrofit;
final private PostsRest postsRest;
- private String pid;
//LiveData
final private MutableLiveData> accountPostsLiveData;
@@ -37,7 +36,6 @@
.addConverterFactory(JacksonConverterFactory.create())
.build();
this.postsRest = retrofit.create(PostsRest.class);
- this.pid = null;
}
//getter
@@ -48,61 +46,38 @@
return this.shopPostsLiveData;
}
- //API通信メソッド
+
+ //AccountのpostJsonを取得
public void getAccountPosts(String uid) {
- Call> call = postsRest.getAccountPosts(uid);
- call.enqueue(new Callback>() {
+ Call> call = postsRest.getAccountPosts(uid);
+ call.enqueue(new Callback>() {
@Override
- public void onResponse(Call> call, Response> response) {
+ public void onResponse(Call> call, Response> response) {
if (response.isSuccessful()) {
- accountPostsLiveData.setValue(response.body());
+ setAccountPostLiveData(response.body());
} else {
- //レスポンスエラーを通知
+ System.out.println("AccountPosts ResponseError");
}
}
@Override
- public void onFailure(Call> call, Throwable t) {
- //通信エラーを通知
+ public void onFailure(Call> call, Throwable t) {
+ System.out.println("AccountPosts NetWorkError: " + t);
}
});
}
- //投稿作成
- public String createPost(String uid, String token, String sid,
- String rate, String genre, String comment,
- String image1, String image2, String image3) {
- Call call = postsRest.postAccountPost(uid ,token, sid, rate, genre, comment, image1, image2, image3);
-
- call.enqueue(new Callback() {
- @Override
- public void onResponse(Call call, Response response) {
- if (response.isSuccessful()) {
- pid = response.body();
- } else {
- //レスポンスエラーを通知
- }
- }
-
- @Override
- public void onFailure(Call call, Throwable t) {
- //通信エラーを通知
- }
- });
- return pid;
- }
-
//PostJsonからPostを作成し,それをLiveDataにセット
- private void setShopPostLiveData(ArrayList postJson) {
+ private void setAccountPostLiveData(Collection postJson) {
ArrayList posts = new ArrayList<>();
- for(PostJson i: postJson) {
- Post post = new Post(i);
+ for(PostJson pj: postJson) {
+ Post post = new Post(pj);
posts.add(post);
}
- shopPostsLiveData.setValue(posts);
+ accountPostsLiveData.setValue(posts);
}
- //PostJsonを取得
+ //ShopのPostJsonを取得
public void getShopPostJson(String sid) {
Call> call = postsRest.getShopPosts(sid);
call.enqueue(new Callback>() {
@@ -112,16 +87,48 @@
ArrayList postJson = response.body();
setShopPostLiveData(postJson);
} else {
- //レスポンスエラー
+ System.out.println("ShopPosts ResponseError");
}
}
@Override
public void onFailure(Call> call, Throwable t) {
- System.out.println("networkError");
+ System.out.println("ShopPosts NetWorkError: " + t);
System.out.println(t);
//通信エラー
}
});
}
+ //PostJsonからPostを作成し,それをLiveDataにセット
+ private void setShopPostLiveData(ArrayList postJson) {
+ ArrayList posts = new ArrayList<>();
+ for(PostJson pj: postJson) {
+ Post post = new Post(pj);
+ posts.add(post);
+ }
+ shopPostsLiveData.setValue(posts);
+ }
+
+ //投稿作成
+ public void createPost(String uid, String token, String sid,
+ String rate, String genre, String comment,
+ String image1, String image2, String image3) {
+ Call call = postsRest.postAccountPost(uid ,token, sid, rate, genre, comment, image1, image2, image3);
+
+ call.enqueue(new Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+ if (response.isSuccessful()) {
+ System.out.println("Success CreatePost" + response.body());
+ } else {
+ System.out.println("CreatePosts ResponseError");
+ }
+ }
+
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ System.out.println("CreatePosts NetWorkError: " + t);
+ }
+ });
+ }
}
diff --git a/app/src/main/res/layout/activity_friend.xml b/app/src/main/res/layout/activity_friend.xml
index 560f9dd..51e2fcb 100644
--- a/app/src/main/res/layout/activity_friend.xml
+++ b/app/src/main/res/layout/activity_friend.xml
@@ -6,4 +6,29 @@
android:layout_height="match_parent"
tools:context=".FriendActivity">
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 95d4392..1a0a7e5 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -11,19 +11,68 @@
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:visibility="gone"
tools:context=".MainActivity" />
-
+ android:layout_height="match_parent">
-
+
+
+
+
+
+
+
+
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:gravity="center"
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_post.xml b/app/src/main/res/layout/activity_post.xml
index dc29d57..94ffebd 100644
--- a/app/src/main/res/layout/activity_post.xml
+++ b/app/src/main/res/layout/activity_post.xml
@@ -1,10 +1,66 @@
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
\ 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 57ac42b..394e0cc 100644
--- a/app/src/main/res/layout/activity_shop.xml
+++ b/app/src/main/res/layout/activity_shop.xml
@@ -8,40 +8,56 @@
+ app:layout_constraintVertical_bias="0.047" />
+ app:layout_constraintVertical_bias="0.025" />
+
+
+ app:layout_constraintVertical_bias="0.576" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_sign_up.xml b/app/src/main/res/layout/activity_sign_up.xml
index ff65596..261ee26 100644
--- a/app/src/main/res/layout/activity_sign_up.xml
+++ b/app/src/main/res/layout/activity_sign_up.xml
@@ -47,4 +47,13 @@
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editTextTextNewPassword" />
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index d95b0d2..504a6fe 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -17,5 +17,6 @@
SignUp
UserID
Forgot Password?
+ Button
\ No newline at end of file