diff --git a/app/src/main/java/org/ntlab/amaryllis/client/MainActivity.java b/app/src/main/java/org/ntlab/amaryllis/client/MainActivity.java index cd8727d..ccf7ad7 100644 --- a/app/src/main/java/org/ntlab/amaryllis/client/MainActivity.java +++ b/app/src/main/java/org/ntlab/amaryllis/client/MainActivity.java @@ -53,9 +53,7 @@ private static final String TAG = MainActivity.class.getSimpleName(); LocationManager locationManager; private ArrayList listeners = new ArrayList<>(); - private HashMap categories; - private ArrayList checkedList = new ArrayList<>(); - HashMap menuItemMap = new HashMap<>(); + static HashMap categories; ImageButton playbutton; ImageButton stopbutton; ImageButton skipbutton; @@ -239,41 +237,46 @@ return categories.get(cid); } - @Override - public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.nav_drawer_menu, menu); - - //カテゴリーの数だけitemを定義 - int id=0; - for(Category category : categories.values()){ - String name = category.getName(); - String cid = category.getcId(); - MenuItem newItem = menu.add(Menu.NONE, id, Menu.NONE, name); - menuItemMap.put(newItem.getItemId(),cid); - newItem.setCheckable(true); - newItem.setChecked(true); - checkedList.add(cid); - id++; - } - return true; + public static HashMap getCategories(){ + return categories; } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - String cid = menuItemMap.get(item.getItemId()); - - item.setChecked(!item.isChecked()); - if(item.isChecked()){ - checkedList.add(cid); - }else{ - checkedList.remove(cid); - } - return super.onOptionsItemSelected(item); - } - - public ArrayList getCheckedCidList() { - return checkedList; - } +// +// @Override +// public boolean onCreateOptionsMenu(Menu menu) { +// getMenuInflater().inflate(R.menu.nav_drawer_menu, menu); +// +// //カテゴリーの数だけitemを定義 +// int id=0; +// for(Category category : categories.values()){ +// String name = category.getName(); +// String cid = category.getcId(); +// MenuItem newItem = menu.add(Menu.NONE, id, Menu.NONE, name); +// menuItemMap.put(newItem.getItemId(),cid); +// newItem.setCheckable(true); +// newItem.setChecked(true); +// checkedList.add(cid); +// id++; +// } +// return true; +// } +// +// +// @Override +// public boolean onOptionsItemSelected(MenuItem item) { +// String cid = menuItemMap.get(item.getItemId()); +// +// item.setChecked(!item.isChecked()); +// if(item.isChecked()){ +// checkedList.add(cid); +// }else{ +// checkedList.remove(cid); +// } +// return super.onOptionsItemSelected(item); +// } +// +// public ArrayList getCheckedCidList() { +// return checkedList; +// } } \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/amaryllis/client/fragment/MapsFragment.java b/app/src/main/java/org/ntlab/amaryllis/client/fragment/MapsFragment.java index 1a56d15..d90101f 100644 --- a/app/src/main/java/org/ntlab/amaryllis/client/fragment/MapsFragment.java +++ b/app/src/main/java/org/ntlab/amaryllis/client/fragment/MapsFragment.java @@ -20,8 +20,13 @@ import android.media.MediaRecorder; import android.os.Bundle; import android.os.Environment; +import android.text.SpannableString; +import android.text.style.ForegroundColorSpan; import android.util.Base64; import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.util.Log; @@ -65,6 +70,7 @@ import java.io.FileInputStream; import java.lang.reflect.Array; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import retrofit2.Call; @@ -107,6 +113,8 @@ private ArrayList done_vid = new ArrayList<>(); private boolean flag = false; private ArrayList mMarker = new ArrayList<>(); + private ArrayList checkedList = new ArrayList<>(); + HashMap menuItemMap = new HashMap<>(); public MapsFragment() { } @@ -255,8 +263,7 @@ @Override public void onLocationChanged(Location location) { - category = ((MainActivity) getActivity()).getCheckedCidList(); - if(category.size() != before_category) { + if(checkedList.size() != before_category) { for(Marker marker : mMarker) { marker.remove(); } @@ -264,7 +271,7 @@ done_vid = new ArrayList<>(); mMarker = new ArrayList<>(); } - before_category = category.size(); + before_category = checkedList.size(); LatLng current = new LatLng(location.getLatitude(), location.getLongitude()); if (googlemap != null) { if (count == 0) { @@ -294,7 +301,7 @@ } if (flag == false || done_vid.size() == 0) { if (v.getCategory().size() >= 2) { - for (String category : category) {// ArrayList(ハンバーガーメニューでしていされた1つ以上のカテゴリーを比較する) + for (String category : checkedList) {// ArrayList(ハンバーガーメニューでしていされた1つ以上のカテゴリーを比較する) for (String cid : v.getCategory()) { if (category.equals(cid)) { Marker m; @@ -308,7 +315,7 @@ } } } else { - for (String category : category) {// ArrayList(ハンバーガーメニューでしていされた1つ以上のカテゴリーを比較する) + for (String category : checkedList) {// ArrayList(ハンバーガーメニューでしていされた1つ以上のカテゴリーを比較する) for (String cid : v.getCategory()) { Category category_info = ((MainActivity) getActivity()).getCategory(cid); if (category.equals(cid)) { @@ -570,7 +577,45 @@ return timeLabel; } + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setHasOptionsMenu(true); } + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + super.onCreateOptionsMenu(menu, inflater); + HashMap categories = MainActivity.getCategories(); + + int id=0; + for(Category category : categories.values()){ + String name = category.getName(); + String cid = category.getcId(); + MenuItem newItem = menu.add(Menu.NONE, id, Menu.NONE, name); + menuItemMap.put(newItem.getItemId(),cid); + newItem.setCheckable(true); + newItem.setChecked(true); + checkedList.add(cid); + id++; + } + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + String cid = menuItemMap.get(item.getItemId()); + + if(item.isChecked()){ + checkedList.remove(cid); + }else{ + checkedList.add(cid); + } + item.setChecked(!item.isChecked()); + return super.onOptionsItemSelected(item); + } + +} + +