diff --git a/.idea/misc.xml b/.idea/misc.xml
index abbe4f0..af9751c 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -3,10 +3,19 @@
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index db53bb1..38000c8 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -3,6 +3,10 @@
xmlns:tools="http://schemas.android.com/tools"
package="com.example.nemophila">
+
+
+
+
+
tools:targetApi="31">
+
+
+
+
+
+
+
+
+
+
@@ -34,11 +54,19 @@
-
+
+
+
@@ -57,23 +85,32 @@
android:name=".MainActivity"
android:exported="true"
android:label="@string/title_activity_maps">
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
+ android:label="@string/title_activity_post">
-
+ android:label="@string/title_activity_shop">
\ No newline at end of file
diff --git a/app/src/main/java/com/example/nemophila/FriendActivity.java b/app/src/main/java/com/example/nemophila/FriendActivity.java
new file mode 100644
index 0000000..718a01c
--- /dev/null
+++ b/app/src/main/java/com/example/nemophila/FriendActivity.java
@@ -0,0 +1,14 @@
+package com.example.nemophila;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.os.Bundle;
+
+public class FriendActivity extends AppCompatActivity {
+
+ @Override
+ 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/GpsActivity.java b/app/src/main/java/com/example/nemophila/GpsActivity.java
new file mode 100644
index 0000000..6b78a26
--- /dev/null
+++ b/app/src/main/java/com/example/nemophila/GpsActivity.java
@@ -0,0 +1,139 @@
+package com.example.nemophila;
+
+import androidx.activity.result.ActivityResultLauncher;
+import androidx.activity.result.contract.ActivityResultContracts;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
+
+import android.annotation.SuppressLint;
+import android.net.Uri;
+import android.os.Bundle;
+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;
+import android.widget.Toast;
+import android.Manifest;
+
+import android.os.Bundle;
+
+public class GpsActivity extends AppCompatActivity implements LocationListener {
+
+ LocationManager locationManager;
+
+ private final ActivityResultLauncher
+ requestPermissionLauncher = registerForActivityResult(
+ new ActivityResultContracts.RequestPermission(),
+ isGranted -> {
+ if (isGranted) {
+ locationStart();
+ }
+ else {
+ Toast toast = Toast.makeText(this,
+ "これ以上なにもできません", Toast.LENGTH_SHORT);
+ toast.show();
+ }
+ });
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_gps);
+
+ if (ActivityCompat.checkSelfPermission(this,
+ Manifest.permission.ACCESS_FINE_LOCATION)
+ != PackageManager.PERMISSION_GRANTED) {
+
+ requestPermissionLauncher.launch(
+ Manifest.permission.ACCESS_FINE_LOCATION);
+ }
+ else{
+ locationStart();
+ }
+ }
+
+ private void locationStart(){
+ Log.d("debug","locationStart()");
+
+ // LocationManager インスタンス生成
+ locationManager =
+ (LocationManager) getSystemService(LOCATION_SERVICE);
+
+ if (locationManager != null && locationManager.isProviderEnabled(
+ LocationManager.GPS_PROVIDER)) {
+
+ Log.d("debug", "location manager Enabled");
+ } else {
+ // GPSを設定するように促す
+ Intent settingsIntent =
+ new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
+ startActivity(settingsIntent);
+ Log.d("debug", "not gpsEnable, startActivity");
+ }
+
+ if (ContextCompat.checkSelfPermission(this,
+ Manifest.permission.ACCESS_FINE_LOCATION) !=
+ PackageManager.PERMISSION_GRANTED) {
+ ActivityCompat.requestPermissions(this,
+ new String[]{Manifest.permission.ACCESS_FINE_LOCATION,}, 1000);
+
+ Log.d("debug", "checkSelfPermission false");
+ return;
+ }
+
+ //解決しているはずの問題にエラーが起きています
+ //実行はできます
+ locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
+ 1000, 50, this);
+
+ }
+
+
+ @SuppressLint("QueryPermissionsNeeded")
+ private void moveToGMap(Location location){
+ String str1 = String.valueOf(location.getLatitude());
+ String str2 = String.valueOf(location.getLongitude());
+
+ Uri uri = Uri.parse("geo:"+str1+","+str2+"?z=16");
+
+ Intent intent = new Intent(Intent.ACTION_VIEW, uri);
+ startActivity(intent);
+ if (intent.resolveActivity(getPackageManager()) != null) {
+ startActivity(intent);
+ }
+ }
+
+ @Override
+ public void onLocationChanged(Location location) {
+ // 緯度の表示
+ 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);
+
+ //GoogleMapに送って表示
+ //moveToGMap(location);
+
+ //MainActivityに送って表示
+ }
+
+ @Override
+ public void onProviderEnabled(String provider) {
+
+ }
+
+ @Override
+ public void onProviderDisabled(String provider) {
+
+ }
+
+}
\ 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 25dba64..bf945c6 100644
--- a/app/src/main/java/com/example/nemophila/LoginActivity.java
+++ b/app/src/main/java/com/example/nemophila/LoginActivity.java
@@ -1,12 +1,19 @@
package com.example.nemophila;
import androidx.appcompat.app.AppCompatActivity;
-import androidx.constraintlayout.widget.ConstraintSet;
+import android.content.Intent;
import android.os.Bundle;
+import android.view.View;
+import android.widget.EditText;
import com.example.nemophila.resources.AccountsRest;
+import java.util.HashMap;
+
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.jackson.JacksonConverterFactory;
@@ -25,5 +32,44 @@
.addConverterFactory(JacksonConverterFactory.create())
.build();
this.AccountsRest = retrofit.create(AccountsRest.class);
+
+
+ findViewById(R.id.LoginButton).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ 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();
+
+ call.enqueue (new Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+ if (response.isSuccessful()) {
+ System.out.println("通信成功:changeBelongsAndMaster");
+ Intent intent = new Intent(LoginActivity.this,MainActivity.class);
+ startActivity(intent);
+ } else {
+ System.out.println("通信可能:changeBelongsAndMaster: " + response.code());
+ }
+ }
+
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ System.out.println("通信失敗:changeBelongsAndMaster");
+ }
+ });
+ }
+ });
+ findViewById(R.id.SignUp).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent intent = new Intent(LoginActivity.this,SignUpActivity.class);
+ startActivity(intent);
+ }
+ });
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/example/nemophila/MainActivity.java b/app/src/main/java/com/example/nemophila/MainActivity.java
index 34a3d8c..d5c1cff 100644
--- a/app/src/main/java/com/example/nemophila/MainActivity.java
+++ b/app/src/main/java/com/example/nemophila/MainActivity.java
@@ -1,51 +1,328 @@
package com.example.nemophila;
+import androidx.annotation.NonNull;
+import androidx.core.content.res.ResourcesCompat;
import androidx.fragment.app.FragmentActivity;
-import android.os.Bundle;
+import androidx.activity.result.ActivityResultLauncher;
+import androidx.activity.result.contract.ActivityResultContracts;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
+import android.content.res.Resources;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.widget.Toast;
+import android.annotation.SuppressLint;
+import android.net.Uri;
+import android.os.Bundle;
+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;
+import android.widget.Toast;
+import android.Manifest;
+
+import com.google.android.gms.maps.CameraUpdate;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
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.GroundOverlay;
+import com.google.android.gms.maps.model.GroundOverlayOptions;
import com.google.android.gms.maps.model.LatLng;
+import com.google.android.gms.maps.model.LatLngBounds;
+import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import com.example.nemophila.databinding.ActivityMainBinding;
-public class MainActivity extends FragmentActivity implements OnMapReadyCallback {
+import java.util.Locale;
+
+public class MainActivity extends FragmentActivity implements OnMapReadyCallback,LocationListener {
private GoogleMap mMap;
private ActivityMainBinding binding;
+ private LatLng latlng;
+ private LatLng latlng2;
+ private LatLng location;
+
+ 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());
+ if (ActivityCompat.checkSelfPermission(this,
+ Manifest.permission.ACCESS_FINE_LOCATION)
+ != PackageManager.PERMISSION_GRANTED) {
+
+ requestPermissionLauncher.launch(
+ Manifest.permission.ACCESS_FINE_LOCATION);
+ }
+ else{
+ locationStart();
+ }
+
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
+ assert mapFragment != null;
mapFragment.getMapAsync(this);
}
- /**
- * Manipulates the map once available.
- * This callback is triggered when the map is ready to be used.
- * This is where we can add markers or lines, add listeners or move the camera. In this case,
- * we just add a marker near Sydney, Australia.
- * If Google Play services is not installed on the device, the user will be prompted to install
- * it inside the SupportMapFragment. This method will only be triggered once the user has
- * installed Google Play services and returned to the app.
+ /*
+ ここからマップに関する操作
*/
+ /*
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
- // Add a marker in Sydney and move the
+ //マーカー(ピン)の登録・表示方法(例)
LatLng ntlab = new LatLng(34.73, 135.26);
mMap.addMarker(new MarkerOptions().position(ntlab).title("Marker in ntlab"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(ntlab));
+
+ //カメラの移動処理方法(例)
+ CameraUpdate cUpdate = CameraUpdateFactory.newLatLngZoom(
+ new LatLng(34.73, 135.26), 15);
+ mMap.moveCamera(cUpdate);
}
-}
\ No newline at end of file
+ */
+
+ @Override
+ public void onMapReady(GoogleMap googleMap) {
+ mMap = googleMap;
+
+ //研究室周辺の緯度経度
+ double latitude = 34.7308032;
+ double longitude = 135.2630272;
+
+ latlng = new LatLng(latitude, longitude);
+ //テスト用
+ latlng2 = new LatLng(34.74, 135.26);
+
+ // 標準のマーカー
+ setMarker(latitude, longitude);
+
+ // アイコン画像をマーカーに設定
+ //画像関連がわかっていないのでパス
+ //setIcon(latitude, longitude);
+
+ // camera 移動 (初期画面)
+ //mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latlng, 15));
+
+ /*
+ //多分使わない
+ // タップした時のリスナーをセット
+ mMap.setOnMapClickListener(tapLocation -> {
+ // map(ピン以外)をtapされた位置の緯度経度
+ latlng = new LatLng(tapLocation.latitude, tapLocation.longitude);
+ String str = String.format(Locale.US, "%f, %f", tapLocation.latitude, tapLocation.longitude);
+ mMap.addMarker(new MarkerOptions().position(location).title(str));
+ mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latlng, 18));
+ });
+ */
+
+ //長押し時にその座標にピンを立てる
+ //長押し時にその座標を保存し、投稿画面に移り、投稿完了時にはピンを立てる
+ mMap.setOnMapLongClickListener(longpushLocation -> {
+ //長押しされた位置の緯度経度を取得
+ LatLng newlocation = new LatLng(longpushLocation.latitude, longpushLocation.longitude);
+
+ //投稿処理
+
+
+ //投稿が完了した場合
+ //ピンをその座標に立て、緯度経度をタイトルに設定
+ //タイトルはnullにする予定
+ mMap.addMarker(new MarkerOptions().position(newlocation).title(""+longpushLocation.latitude+" :"+ longpushLocation.longitude));
+ //ピンを立てた位置にカメラを移動
+ mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(newlocation, 18));
+ });
+
+ // ピンをクリックした場合
+ mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
+ @Override
+ public boolean onMarkerClick(Marker marker) {
+ //店の詳細と投稿一覧を表示
+ //ここでshopActivityを呼び出す
+
+ //下からクリックしたことを通知
+ Toast.makeText(MainActivity.this, "ピンクリック", Toast.LENGTH_SHORT).show();
+ return false;
+ }
+ });
+
+ }
+
+ //ピンの設定
+ private void setMarker(double latitude, double longitude){
+
+ MarkerOptions markerOptions = new MarkerOptions();
+ MarkerOptions markerOptions2 = new MarkerOptions();
+
+ markerOptions.position(latlng);
+ markerOptions.title("ntlab");
+ mMap.addMarker(markerOptions);
+
+ //テスト用
+ markerOptions2.position(latlng2);
+ markerOptions2.title(null);
+ mMap.addMarker(markerOptions2);
+
+ // ズーム
+ zoomMap(latitude, longitude);
+
+ }
+
+ private void zoomMap(double latitude, double longitude){
+ // 表示する東西南北の緯度経度を設定
+ double south = latitude * (1-0.00005);
+ double west = longitude * (1-0.00005);
+ double north = latitude * (1+0.00005);
+ double east = longitude * (1+0.00005);
+
+ // LatLngBounds (LatLng southwest, LatLng northeast)
+ //左下、右上
+ LatLngBounds bounds = LatLngBounds.builder()
+ .include(new LatLng(south , west))
+ .include(new LatLng(north, east))
+ .build();
+
+ int width = getResources().getDisplayMetrics().widthPixels;
+ int height = getResources().getDisplayMetrics().heightPixels;
+
+ // static CameraUpdate.newLatLngBounds(LatLngBounds bounds, int width, int height, int padding)
+ mMap.moveCamera(CameraUpdateFactory.
+ newLatLngBounds(bounds, width, height, 0));
+
+ //ズーム処理
+ mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latlng, 15f));
+ }
+
+ private void setIcon(double latitude, double longitude){
+ Drawable ic_current = ResourcesCompat.getDrawable(getResources(),R.drawable.icon,null);
+
+ //LatLng current_location = new LatLng(34.73080,135.2630272);
+ LatLng current_location = new LatLng(latitude,longitude);
+ //mMap.addMarker(new MarkerOptions().position(current_location).icon(BitmapDescriptorFactory.fromResource(R.drawable.icon)));
+ // マップに貼り付ける BitmapDescriptor生成
+ // 画像は自分で適当に用意します。ここではmipmapから持ってきましたが
+ BitmapDescriptor descriptor = BitmapDescriptorFactory.fromResource(R.drawable.icon);
+ //Drawable ic_current = ResourcesCompat.getDrawable(getResources(),R.drawable.ic_current_location,null);
+
+ // 貼り付設定
+ GroundOverlayOptions overlayOptions = new GroundOverlayOptions();
+ overlayOptions.image(descriptor);
+
+ // public GroundOverlayOptions anchor (float u, float v)
+ // (0,0):top-left, (0,1):bottom-left, (1,0):top-right, (1,1):bottom-right
+ overlayOptions.anchor(0.5f, 0.5f);
+
+ // 張り付け画像の大きさ メートル単位
+ // public GroundOverlayOptions position(LatLng location, float width, float height)
+ overlayOptions.position(current_location, 300f, 300f);
+
+ // マップに貼り付け・アルファを設定
+ GroundOverlay overlay = mMap.addGroundOverlay(overlayOptions);
+ // ズーム
+ zoomMap(latitude, longitude);
+
+ // 透明度
+ assert overlay != null;
+ overlay.setTransparency(0.0F);
+ }
+
+ private final ActivityResultLauncher
+ requestPermissionLauncher = registerForActivityResult(
+ new ActivityResultContracts.RequestPermission(),
+ isGranted -> {
+ if (isGranted) {
+ locationStart();
+ }
+ else {
+ Toast toast = Toast.makeText(this,
+ "これ以上なにもできません", Toast.LENGTH_SHORT);
+ toast.show();
+ }
+ });
+
+ @SuppressLint("MissingPermission")
+ private void locationStart(){
+ Log.d("debug","locationStart()");
+
+ // LocationManager インスタンス生成
+ locationManager =
+ (LocationManager) getSystemService(LOCATION_SERVICE);
+
+ if (locationManager != null && locationManager.isProviderEnabled(
+ LocationManager.GPS_PROVIDER)) {
+
+ Log.d("debug", "location manager Enabled");
+ } else {
+ // GPSを設定するように促す
+ Intent settingsIntent =
+ new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
+ startActivity(settingsIntent);
+ Log.d("debug", "not gpsEnable, startActivity");
+ }
+
+ if (ContextCompat.checkSelfPermission(this,
+ Manifest.permission.ACCESS_FINE_LOCATION) !=
+ PackageManager.PERMISSION_GRANTED) {
+ ActivityCompat.requestPermissions(this,
+ new String[]{Manifest.permission.ACCESS_FINE_LOCATION,}, 1000);
+
+ Log.d("debug", "checkSelfPermission false");
+ return;
+ }
+
+ //解決しているはずの問題にエラーが起きています
+ //実行はできます
+ locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
+ 1000, 50, this);
+
+ }
+
+ @Override
+ public void onLocationChanged(Location location) {
+ //現在地が変更されるたびに現在地アイコンを移動
+
+ // 緯度の表示
+ 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);
+//
+// //GoogleMapに送って表示
+// moveToGMap(location);
+ setIcon(location.getLatitude(),location.getLongitude());
+ }
+
+ @Override
+ public void onProviderEnabled(String provider) {
+
+ }
+
+ @Override
+ 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 b902728..9424f3b 100644
--- a/app/src/main/java/com/example/nemophila/MyPageActivity.java
+++ b/app/src/main/java/com/example/nemophila/MyPageActivity.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 MyPageActivity extends AppCompatActivity {
@@ -10,5 +13,29 @@
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) {
+ Intent intent = new Intent(MyPageActivity.this,FriendActivity.class);
+ startActivity(intent);
+
+ }
+ });
+ Button changeMyPageButton = (Button)findViewById(R.id.changeMyPage);
+ changeMyPageButton.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ Intent intent = new Intent(MyPageActivity.this,MyPageEditorActivity.class);
+ startActivity(intent);
+
+ }
+ });
+ Button requestedButton = (Button)findViewById(R.id.requested);
+ requestedButton.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ Intent intent = new Intent(MyPageActivity.this,RequestedActivity.class);
+ startActivity(intent);
+
+ }
+ });
}
}
\ 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
new file mode 100644
index 0000000..230015e
--- /dev/null
+++ b/app/src/main/java/com/example/nemophila/MyPageEditorActivity.java
@@ -0,0 +1,14 @@
+package com.example.nemophila;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.os.Bundle;
+
+public class MyPageEditorActivity extends AppCompatActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_my_page_editor);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/nemophila/RequestedActivity.java b/app/src/main/java/com/example/nemophila/RequestedActivity.java
new file mode 100644
index 0000000..748c4b0
--- /dev/null
+++ b/app/src/main/java/com/example/nemophila/RequestedActivity.java
@@ -0,0 +1,14 @@
+package com.example.nemophila;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.os.Bundle;
+
+public class RequestedActivity extends AppCompatActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_requested);
+ }
+}
\ 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 8ac26b4..cc01b38 100644
--- a/app/src/main/java/com/example/nemophila/SignUpActivity.java
+++ b/app/src/main/java/com/example/nemophila/SignUpActivity.java
@@ -3,12 +3,64 @@
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
+import android.view.View;
+import android.widget.EditText;
-public class SignUpActivity extends AppCompatActivity {
+import com.example.nemophila.entities.Account;
+import com.example.nemophila.resources.AccountsRest;
+
+import java.util.HashMap;
+
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+import retrofit2.Retrofit;
+import retrofit2.converter.jackson.JacksonConverterFactory;
+
+public class SignUpActivity extends AppCompatActivity{
+
+ private Retrofit retrofit;
+ private AccountsRest AccountsRest;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sign_up);
+ //通信の初期化
+ 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.SignUpButton).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ 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.enqueue(new Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+ if (response.isSuccessful()) {
+ System.out.println("通信成功:changeBelongsAndMaster");
+ } else {
+ System.out.println("通信可能:changeBelongsAndMaster: " + response.code());
+ }
+ }
+
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ System.out.println("通信失敗:changeBelongsAndMaster");
+ }
+ });
+ }
+ });
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/nemophila/TestActivity.java b/app/src/main/java/com/example/nemophila/TestActivity.java
new file mode 100644
index 0000000..a8ed66a
--- /dev/null
+++ b/app/src/main/java/com/example/nemophila/TestActivity.java
@@ -0,0 +1,36 @@
+package com.example.nemophila;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.lifecycle.MutableLiveData;
+import androidx.lifecycle.ViewModelProvider;
+
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.Toast;
+
+import com.example.nemophila.entities.Shop;
+import com.example.nemophila.viewmodels.ShopsViewModel;
+
+import java.util.Collection;
+
+public class TestActivity extends AppCompatActivity {
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_test);
+
+ //RoomViewModelへのアクセス
+ ShopsViewModel shopsViewModel = new ViewModelProvider(this).get(ShopsViewModel.class);
+
+
+ // setViewModelのテスト用
+ Button setViewModelButton = (Button)findViewById(R.id.setViewModel);
+ setViewModelButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ shopsViewModel.setViewArea(20.0, 40.0, 10.0, 30.0);
+ }
+ });
+ }
+}
\ No newline at end of file
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 360e2e0..9095f5a 100644
--- a/app/src/main/java/com/example/nemophila/entities/Shop.java
+++ b/app/src/main/java/com/example/nemophila/entities/Shop.java
@@ -10,7 +10,7 @@
private ArrayList posts = new ArrayList<>();
//Getter
- public String getId() {
+ public String getSid() {
return id;
}
public String getName() {
@@ -27,7 +27,7 @@
}
//Setter
- public void setId(String id) {
+ public void setSid(String id) {
this.id = id;
}
public void setName(String name) {
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 cc86a83..fc670fa 100644
--- a/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java
+++ b/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java
@@ -3,6 +3,7 @@
import com.example.nemophila.entities.Account;
import com.example.nemophila.resources.AccountsRest;
+import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
import retrofit2.Call;
@@ -16,8 +17,12 @@
private final Retrofit retrofit;
private final AccountsRest accountsRest;
+ // ライブデータ
+ private final MutableLiveData accountLiveData;
+
// コンストラクタ
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())
@@ -25,6 +30,11 @@
this.accountsRest = retrofit.create(AccountsRest.class);
}
+ // ライブデータの取得
+ public MutableLiveData getAccountLiveData() {
+ return accountLiveData;
+ }
+
// アカウント情報の取得
public void getAccount(String uid) {
Call call = accountsRest.getAccount(uid);
@@ -32,9 +42,15 @@
call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
+ if (response.isSuccessful()) {
+ accountLiveData.setValue(response.body());
+ } else {
+ System.out.println("response error");
+ }
}
@Override
public void onFailure(Call call, Throwable t) {
+ System.out.println("correspondence error");
}
});
}
@@ -46,9 +62,15 @@
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/ShopsViewModel.java b/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java
index 4f048db..addd584 100644
--- a/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java
+++ b/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java
@@ -1,5 +1,6 @@
package com.example.nemophila.viewmodels;
+import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
@@ -23,7 +24,7 @@
final private MutableLiveData> shopsLiveData;
// コンストラクタ
- public ShopsViewModel(MutableLiveData> shopsLiveData){
+ public ShopsViewModel(){
this.shopsLiveData = new MutableLiveData<>();
this.retrofit = new Retrofit.Builder()
.baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/nemophila/")
@@ -32,8 +33,12 @@
this.shopsRest = retrofit.create(ShopsRest.class);
}
+ public LiveData> getMembersLiveData() {
+ return this.shopsLiveData;
+ }
+
// 画面を動かす, 又はGPSが移動する度に呼び出される
- public void setViewArea(double ux, double uy, double lx, double ly){
+ public void setViewArea(double ux, double uy, double lx, double ly) {
// 画面内に収まる範囲の店舗を取得する
Call> call = shopsRest.getShops(ux, uy, lx, ly);
@@ -56,6 +61,7 @@
@Override
public void onFailure(Call> call, Throwable t) {
System.out.println("通信失敗 : setViewModel");
+ System.out.println(t);
}
});
}
diff --git a/app/src/main/res/drawable/ic_current_location.xml b/app/src/main/res/drawable/ic_current_location.xml
new file mode 100644
index 0000000..3514cf2
--- /dev/null
+++ b/app/src/main/res/drawable/ic_current_location.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/icon.jpg b/app/src/main/res/drawable/icon.jpg
new file mode 100644
index 0000000..6f2e35a
--- /dev/null
+++ b/app/src/main/res/drawable/icon.jpg
Binary files differ
diff --git a/app/src/main/res/layout/activity_friend.xml b/app/src/main/res/layout/activity_friend.xml
new file mode 100644
index 0000000..560f9dd
--- /dev/null
+++ b/app/src/main/res/layout/activity_friend.xml
@@ -0,0 +1,9 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_gps.xml b/app/src/main/res/layout/activity_gps.xml
new file mode 100644
index 0000000..8571a51
--- /dev/null
+++ b/app/src/main/res/layout/activity_gps.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index c401d01..d12efd2 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -6,4 +6,51 @@
android:layout_height="match_parent"
tools:context=".LoginActivity">
+
+
+
+
+
+
+
\ 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 cfbceaa..95d4392 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,9 +1,29 @@
-
\ No newline at end of file
+ android:layout_height="match_parent">
+
+
+
+
+
+
+
+
\ 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
new file mode 100644
index 0000000..4c0d52c
--- /dev/null
+++ b/app/src/main/res/layout/activity_my_page_editor.xml
@@ -0,0 +1,9 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_mypage.xml b/app/src/main/res/layout/activity_mypage.xml
index 8979249..7fd6be6 100644
--- a/app/src/main/res/layout/activity_mypage.xml
+++ b/app/src/main/res/layout/activity_mypage.xml
@@ -6,4 +6,112 @@
android:layout_height="match_parent"
tools:context=".MyPageActivity">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_requested.xml b/app/src/main/res/layout/activity_requested.xml
new file mode 100644
index 0000000..86eabce
--- /dev/null
+++ b/app/src/main/res/layout/activity_requested.xml
@@ -0,0 +1,9 @@
+
+
+
+
\ 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 5d9d69e..8069609 100644
--- a/app/src/main/res/layout/activity_sign_up.xml
+++ b/app/src/main/res/layout/activity_sign_up.xml
@@ -6,4 +6,41 @@
android:layout_height="match_parent"
tools:context=".SignUpActivity">
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_test.xml b/app/src/main/res/layout/activity_test.xml
new file mode 100644
index 0000000..6915009
--- /dev/null
+++ b/app/src/main/res/layout/activity_test.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
\ 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 e19fa4c..d650b72 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -6,5 +6,7 @@
ShopActivity
LoginActivity
SignUpActivity
+ TestActivity
+ GpsActivity
\ No newline at end of file