diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
index 78b143c..7bd27ea 100644
--- a/.idea/deploymentTargetDropDown.xml
+++ b/.idea/deploymentTargetDropDown.xml
@@ -7,11 +7,11 @@
-
+
-
+
\ No newline at end of file
diff --git a/app/src/main/java/com/example/nemophila/MapsActivity.java b/app/src/main/java/com/example/nemophila/MapsActivity.java
index e760779..569eb29 100644
--- a/app/src/main/java/com/example/nemophila/MapsActivity.java
+++ b/app/src/main/java/com/example/nemophila/MapsActivity.java
@@ -15,7 +15,19 @@
import android.view.MenuItem;
-public class MapsActivity extends AppCompatActivity {
+public class MapsActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
+
+
+ DialogFragment filterDialog;
+ private Handler handler;
+
+ // フィルターのリスト用
+ ArrayList listData;
+ ListView list;
+ boolean isGenre;
+ String genreData[];
+ String friendsData[];
+
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -26,24 +38,132 @@
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
- // ナビゲーションホストを取得する
- NavHostFragment navHostFragment =
- (NavHostFragment)getSupportFragmentManager()
- .findFragmentById(R.id.navHostFragment);
+ // DrawerToggle
+ DrawerLayout drawer =
+ (DrawerLayout) findViewById(R.id.drawer_layout);
+ ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
+ this, drawer, toolbar,
+ R.string.drawer_open,
+ R.string.drawer_close);
+ drawer.addDrawerListener(toggle);
+ toggle.syncState();
- // navHostFragmentのナビゲーションコントローラを取得する
- NavController navController = navHostFragment.getNavController();
+ // NavigationView Listener
+ NavigationView navigationView = (NavigationView) findViewById(R.id.navView);
+ navigationView.setNavigationItemSelectedListener(this);
- // アップバーのコンフィグレーションをビルドする
- AppBarConfiguration appBarConfiguration =
- new AppBarConfiguration.Builder(navController.getGraph())
- .setOpenableLayout((DrawerLayout)findViewById(R.id.drawer_layout))
- .build();
+// // ナビゲーションホストを取得する
+// 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);
- // ナビゲーションUIをセットアップする
- NavigationUI.setupWithNavController(toolbar, navController, appBarConfiguration);
+
+ // geocode Test
+ handler = new Handler();
+
+ // 検索バーの処理
+ SearchView searchView = findViewById(R.id.tool_search);
+ searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
+ @Override
+ public boolean onQueryTextSubmit(String query) {
+ new Thread(() -> {
+ geoCode(query);
+ }).start();
+ return false;
+ }
+
+ @Override
+ public boolean onQueryTextChange(String newText) {
+ return false;
+ }
+ });
+
+ //filterDialog = new FilterDialog();
+
+ // サイドメニューのボタン
+ Button genreButton = findViewById(R.id.filter_genre_button);
+ Button friendButton = findViewById(R.id.filter_friends_button);
+
+ // 押したボタンを灰色にし、listを作成
+ genreButton.setOnClickListener(view -> {
+ genreButton.setBackgroundColor(Color.parseColor("#afafb0"));
+ friendButton.setBackgroundColor(Color.WHITE);
+ prepareGenreList(null);
+ });
+ friendButton.setOnClickListener(view -> {
+ friendButton.setBackgroundColor(Color.parseColor("#afafb0"));
+ genreButton.setBackgroundColor(Color.WHITE);
+ prepareFriendList(null);
+ });
+
+ // サイドメニューのフィルターのリストの準備
+ genreData = new String[5];
+ friendsData = new String[5];
+ genreData[0] = "和食";
+ genreData[1] = "中華";
+ genreData[2] = "イタリアン";
+ genreData[3] = "洋食";
+ genreData[4] = "ジャンクフード";
+
+ friendsData[0] = "iyo";
+ friendsData[1] = "iyo2";
+ friendsData[2] = "superiyo";
+ friendsData[3] = "perfectiyo";
+ friendsData[4] = "finaliyo";
+
+ listData = new ArrayList<>();
+ list = findViewById(R.id.drawer_list);
+ prepareGenreList(null);
+
+ // フィルターを有効にする
+ list.setTextFilterEnabled(true);
+
+ //サイドメニューの検索バー
+ SearchView listSearch = findViewById(R.id.drawer_search);
+ listSearch.setOnQueryTextListener(
+ new SearchView.OnQueryTextListener() {
+ // 入力テキストに変更があったとき
+ @Override
+ public boolean onQueryTextChange(String s) {
+ if(isGenre){
+ if(s.equals("")){
+ prepareGenreList(null);
+ } else {
+ prepareGenreList(s);
+ }
+ } else {
+ if(s.equals("")){
+ prepareFriendList(null);
+ } else {
+ prepareFriendList(s);
+ }
+ }
+ return false;
+ }
+
+ // 検索ボタンを押したとき
+ @Override
+ public boolean onQueryTextSubmit(String s) {
+ return false;
+ }
+ }
+ );
+
}
+ //右上のメニューを用意、マイページ画面への遷移
@Override
public boolean onCreateOptionsMenu(@NonNull Menu menu) {
getMenuInflater().inflate(R.menu.tool_menu, menu);
@@ -58,4 +178,123 @@
return super.onOptionsItemSelected(item);
}
+
+ public void prepareGenreList(String s){
+ // 現在表示されているリストがジャンルのリストかどうかを設定
+ isGenre = true;
+
+ // 一度リストのデータを取り除いてから追加する
+ listData.clear();
+ for(int i = 0; i < genreData.length; i++){
+ if(s == null) {
+ FilterDataModel fd = new FilterDataModel();
+ fd.setText(genreData[i]);
+ listData.add(fd);
+ } else {
+ if(genreData[i].contains(s)){
+ FilterDataModel fd = new FilterDataModel();
+ fd.setText(genreData[i]);
+ listData.add(fd);
+ }
+ }
+ }
+
+ // ListViewにデータをセットする
+ list.setAdapter(new MyAdapter(
+ this,
+ R.layout.filter_layout,
+ listData
+ ));
+ list.deferNotifyDataSetChanged();
+ }
+
+ public void prepareFriendList(String s){
+ // 現在表示されているリストがジャンルのリストかどうかを設定
+ isGenre = false;
+
+ // 一度リストのデータを取り除いてから追加する
+ listData.clear();
+ for(int i = 0; i < friendsData.length; i++){
+ if(s == null) {
+ FilterDataModel fd = new FilterDataModel();
+ fd.setText(friendsData[i]);
+ listData.add(fd);
+ } else {
+ if(friendsData[i].contains(s)){
+ FilterDataModel fd = new FilterDataModel();
+ fd.setText(friendsData[i]);
+ listData.add(fd);
+ }
+ }
+ }
+
+ // ListViewにデータをセットする
+ list.setAdapter(new MyAdapter(
+ this,
+ R.layout.filter_layout,
+ listData
+ ));
+ list.deferNotifyDataSetChanged();
+ }
+
+ // 内部クラス
+ private class MyAdapter extends ArrayAdapter{
+ private LayoutInflater layoutInflater;
+ public MyAdapter(Context context, int resourceId, List objects){
+ super(context, resourceId, objects);
+
+ layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ }
+
+ // 画面外に行ったときにチェックがずれないようにする
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent) {
+ FilterDataModel item = (FilterDataModel) getItem(position);
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.filter_item, null);
+ }
+
+ TextView textView = convertView.findViewById(R.id.filter_text);
+ textView.setText(item.text);
+ CheckBox checkBox = convertView.findViewById(R.id.filter_checkbox);
+ checkBox.setOnCheckedChangeListener(null);
+ checkBox.setChecked(item.isChecked);
+
+ // チェックボックスを押したときの処理
+ checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
+ if(b) {
+ Toast.makeText(MapsActivity.this, listData.get(position).getText(), Toast.LENGTH_SHORT).show();
+ }
+ FilterDataModel data = getItem(position);
+ data.isChecked = b;
+ }
+ });
+
+ return convertView;
+ }
+ }
+
+ private static class FilterDataModel{
+ private String text;
+ private boolean isChecked;
+
+ public String getText() {
+ return text;
+ }
+
+ public boolean isChecked() {
+ return isChecked;
+ }
+
+ public void setText(String text) {
+ this.text = text;
+ }
+
+ public void setChecked(boolean checked) {
+ isChecked = checked;
+ }
+ }
+
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_maps.xml b/app/src/main/res/layout/activity_maps.xml
index 7636d4b..37b98b3 100644
--- a/app/src/main/res/layout/activity_maps.xml
+++ b/app/src/main/res/layout/activity_maps.xml
@@ -68,6 +68,61 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
- app:menu="@menu/navdrawer_menu" />
+ app:menu="@menu/navdrawer_menu" >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file