diff --git a/app/build.gradle b/app/build.gradle index 6c37ec9..9204a42 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -37,14 +37,28 @@ dependencies { - implementation 'androidx.appcompat:appcompat:1.4.2' - implementation 'com.google.android.material:material:1.6.1' - implementation 'com.google.android.gms:play-services-maps:17.0.1' +// implementation 'androidx.appcompat:appcompat:1.4.2' +// implementation 'com.google.android.material:material:1.6.1' +// implementation 'com.google.android.gms:play-services-maps:17.0.1' +// implementation 'androidx.constraintlayout:constraintlayout:2.1.4' +// implementation 'com.google.firebase:firebase-firestore:23.0.2' +// implementation 'androidx.navigation:navigation-fragment:2.6.0' +// implementation 'androidx.navigation:navigation-ui:2.6.0' +// testImplementation 'junit:junit:4.13.2' +// androidTestImplementation 'androidx.test.ext:junit:1.1.3' +// androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' + + + implementation 'androidx.appcompat:appcompat:1.5.1' + implementation 'com.google.android.material:material:1.7.0' + implementation 'com.google.android.gms:play-services-maps:18.1.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'com.google.firebase:firebase-firestore:23.0.2' + implementation 'androidx.navigation:navigation-fragment:2.5.3' + implementation 'androidx.navigation:navigation-ui:2.5.3' testImplementation 'junit:junit:4.13.2' - androidTestImplementation 'androidx.test.ext:junit:1.1.3' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' + androidTestImplementation 'androidx.test.ext:junit:1.1.4' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.0' // Retrofit implementation "com.squareup.retrofit2:retrofit:2.9.0" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 90507b0..de55231 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -5,7 +5,7 @@ - + + android:usesCleartextTraffic="true" + tools:targetApi="31"> + + + + + + + + + + + - - - - + + + + + + - - + + + - - + + - - - + + + - - + + - - + + + - - + + - - - - + + + + + + - - - - - - - - + + + + + + - - - - - + + + + + + - - - - + + + + + + diff --git a/app/src/main/java/com/example/nemophila/MapsActivity.java b/app/src/main/java/com/example/nemophila/MapsActivity.java new file mode 100644 index 0000000..0147d71 --- /dev/null +++ b/app/src/main/java/com/example/nemophila/MapsActivity.java @@ -0,0 +1,42 @@ +package com.example.nemophila; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.drawerlayout.widget.DrawerLayout; +import androidx.navigation.NavController; +import androidx.navigation.fragment.NavHostFragment; +import androidx.navigation.ui.AppBarConfiguration; +import androidx.navigation.ui.NavigationUI; + +import android.os.Bundle; + + +public class MapsActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_maps); + + Toolbar toolbar = findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + getSupportActionBar().setDisplayShowTitleEnabled(false); + + // ナビゲーションホストを取得する + NavHostFragment navHostFragment = + (NavHostFragment)getSupportFragmentManager() + .findFragmentById(R.id.navHostFragment); + + // navHostFragmentのナビゲーションコントローラを取得する + NavController navController = navHostFragment.getNavController(); + + // アップバーのコンフィグレーションをビルドする + AppBarConfiguration appBarConfiguration = + new AppBarConfiguration.Builder(navController.getGraph()) + .setOpenableLayout((DrawerLayout)findViewById(R.id.drawer_layout)) + .build(); + + // ナビゲーションUIをセットアップする + NavigationUI.setupWithNavController(toolbar, navController, appBarConfiguration); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/nemophila/MapsFragment.java b/app/src/main/java/com/example/nemophila/MapsFragment.java new file mode 100644 index 0000000..16aa92e --- /dev/null +++ b/app/src/main/java/com/example/nemophila/MapsFragment.java @@ -0,0 +1,49 @@ +package com.example.nemophila; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +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.LatLng; +import com.google.android.gms.maps.model.MarkerOptions; + +public class MapsFragment extends Fragment { + + private OnMapReadyCallback callback = new OnMapReadyCallback() { + + @Override + public void onMapReady(GoogleMap googleMap) { + LatLng sydney = new LatLng(-34, 151); + googleMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney")); + googleMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)); + } + }; + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, + @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { + + return inflater.inflate(R.layout.fragment_maps, container, false); + } + + @Override + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + SupportMapFragment mapFragment = + (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map); + if (mapFragment != null) { + mapFragment.getMapAsync(callback); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/nemophila/viewmodels/FriendViewModel.java b/app/src/main/java/com/example/nemophila/viewmodels/FriendViewModel.java index 58e6151..5322b9e 100644 --- a/app/src/main/java/com/example/nemophila/viewmodels/FriendViewModel.java +++ b/app/src/main/java/com/example/nemophila/viewmodels/FriendViewModel.java @@ -1,65 +1,65 @@ -package com.example.nemophila.viewmodels; - -import androidx.lifecycle.MutableLiveData; -import androidx.lifecycle.ViewModel; - -import com.example.nemophila.entities.Post; -import com.example.nemophila.resources.AccountsRest; -import com.example.nemophila.resources.FriendsRest; - -import java.util.Collection; - -import retrofit2.Call; -import retrofit2.Callback; -import retrofit2.Response; -import retrofit2.Retrofit; -import retrofit2.converter.jackson.JacksonConverterFactory; - -public class FriendViewModel extends ViewModel { - // フィールド - private final Retrofit retrofit; - private final FriendsRest friendsRest; - // ライブデータ - private final MutableLiveData friendsLiveData; - private final MutableLiveData requestedLiveData; - private final MutableLiveData> requestingLiveData; - - // コンストラクタ - public FriendViewModel() { - this.retrofit = new Retrofit.Builder() - .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/nemophila/") - .addConverterFactory(JacksonConverterFactory.create()) - .build(); - this.friendsRest = retrofit.create(FriendsRest.class); - this.friendsLiveData = new MutableLiveData<>(); - this.requestedLiveData = new MutableLiveData<>(); - this.requestingLiveData = new MutableLiveData<>(); - } - - // ライブデータの取得(ゲッター) - public MutableLiveData getFriendsLiveData() { - return friendsLiveData; - } - public MutableLiveData getRequestedLiveData() { - return requestedLiveData; - } - public MutableLiveData> getRequestingLiveData() { return requestingLiveData; } - - public void searchFriend(String uid,String fid, String token) { - Call call = friendsRest.putFriend (); - call.enqueue(new Callback() { - @Override - public void onResponse(Call call, Response response) { - if (response.isSuccessful()) { - System.out.println("Successful"); - } else { - System.out.println("ResponseError"); - } - } - @Override - public void onFailure(Call call, Throwable t) { - System.out.println(" NetworkError" + t); - } - }); - } -} +//package com.example.nemophila.viewmodels; +// +//import androidx.lifecycle.MutableLiveData; +//import androidx.lifecycle.ViewModel; +// +//import com.example.nemophila.entities.Post; +//import com.example.nemophila.resources.AccountsRest; +//import com.example.nemophila.resources.FriendsRest; +// +//import java.util.Collection; +// +//import retrofit2.Call; +//import retrofit2.Callback; +//import retrofit2.Response; +//import retrofit2.Retrofit; +//import retrofit2.converter.jackson.JacksonConverterFactory; +// +//public class FriendViewModel extends ViewModel { +// // フィールド +// private final Retrofit retrofit; +// private final FriendsRest friendsRest; +// // ライブデータ +// private final MutableLiveData friendsLiveData; +// private final MutableLiveData requestedLiveData; +// private final MutableLiveData> requestingLiveData; +// +// // コンストラクタ +// public FriendViewModel() { +// this.retrofit = new Retrofit.Builder() +// .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/nemophila/") +// .addConverterFactory(JacksonConverterFactory.create()) +// .build(); +// this.friendsRest = retrofit.create(FriendsRest.class); +// this.friendsLiveData = new MutableLiveData<>(); +// this.requestedLiveData = new MutableLiveData<>(); +// this.requestingLiveData = new MutableLiveData<>(); +// } +// +// // ライブデータの取得(ゲッター) +// public MutableLiveData getFriendsLiveData() { +// return friendsLiveData; +// } +// public MutableLiveData getRequestedLiveData() { +// return requestedLiveData; +// } +// public MutableLiveData> getRequestingLiveData() { return requestingLiveData; } +// +// public void searchFriend(String uid,String fid, String token) { +// Call call = friendsRest.putFriend (); +// call.enqueue(new Callback() { +// @Override +// public void onResponse(Call call, Response response) { +// if (response.isSuccessful()) { +// System.out.println("Successful"); +// } else { +// System.out.println("ResponseError"); +// } +// } +// @Override +// public void onFailure(Call call, Throwable t) { +// System.out.println(" NetworkError" + t); +// } +// }); +// } +//} diff --git a/app/src/main/res/layout/activity_maps.xml b/app/src/main/res/layout/activity_maps.xml new file mode 100644 index 0000000..05b3440 --- /dev/null +++ b/app/src/main/res/layout/activity_maps.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_maps.xml b/app/src/main/res/layout/fragment_maps.xml new file mode 100644 index 0000000..59319fb --- /dev/null +++ b/app/src/main/res/layout/fragment_maps.xml @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/navdrawer_menu.xml b/app/src/main/res/menu/navdrawer_menu.xml new file mode 100644 index 0000000..6048d10 --- /dev/null +++ b/app/src/main/res/menu/navdrawer_menu.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/navigation/navigation.xml b/app/src/main/res/navigation/navigation.xml new file mode 100644 index 0000000..a021417 --- /dev/null +++ b/app/src/main/res/navigation/navigation.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index 946d321..b8304c8 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -1,6 +1,6 @@ -