|
@@ -4,21 +4,15 @@ import android.annotation.SuppressLint;
|
|
import android.app.Fragment;
|
|
import android.app.Fragment;
|
|
import android.content.Context;
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.content.Intent;
|
|
-import android.graphics.Color;
|
|
|
|
import android.os.Bundle;
|
|
import android.os.Bundle;
|
|
-import android.text.SpannableString;
|
|
|
|
-import android.text.style.ForegroundColorSpan;
|
|
|
|
import android.view.LayoutInflater;
|
|
import android.view.LayoutInflater;
|
|
import android.view.Menu;
|
|
import android.view.Menu;
|
|
import android.view.MenuInflater;
|
|
import android.view.MenuInflater;
|
|
-import android.view.MenuItem;
|
|
|
|
import android.view.View;
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
import android.view.ViewGroup;
|
|
import android.widget.AdapterView;
|
|
import android.widget.AdapterView;
|
|
import android.widget.ExpandableListView;
|
|
import android.widget.ExpandableListView;
|
|
import android.widget.ImageButton;
|
|
import android.widget.ImageButton;
|
|
-import android.widget.PopupMenu;
|
|
|
|
-import android.widget.PopupMenu.OnMenuItemClickListener;
|
|
|
|
import android.widget.Toast;
|
|
import android.widget.Toast;
|
|
|
|
|
|
import com.google.android.gms.maps.model.LatLng;
|
|
import com.google.android.gms.maps.model.LatLng;
|
|
@@ -43,16 +37,20 @@ import de.tudarmstadt.informatik.hostage.ui2.adapter.RecordListAdapter;
|
|
import de.tudarmstadt.informatik.hostage.ui2.dialog.ChecklistDialog;
|
|
import de.tudarmstadt.informatik.hostage.ui2.dialog.ChecklistDialog;
|
|
import de.tudarmstadt.informatik.hostage.ui2.dialog.DateTimeDialogFragment;
|
|
import de.tudarmstadt.informatik.hostage.ui2.dialog.DateTimeDialogFragment;
|
|
import de.tudarmstadt.informatik.hostage.ui2.model.ExpandableListItem;
|
|
import de.tudarmstadt.informatik.hostage.ui2.model.ExpandableListItem;
|
|
|
|
+import de.tudarmstadt.informatik.hostage.ui2.popup.AbstractPopup;
|
|
|
|
+import de.tudarmstadt.informatik.hostage.ui2.popup.AbstractPopupItem;
|
|
|
|
+import de.tudarmstadt.informatik.hostage.ui2.popup.SimplePopupItem;
|
|
|
|
+import de.tudarmstadt.informatik.hostage.ui2.popup.SimplePopupTable;
|
|
|
|
|
|
public class RecordOverviewFragment extends Fragment implements ChecklistDialog.ChecklistDialogListener, DateTimeDialogFragment.DateTimeDialogFragmentListener {
|
|
public class RecordOverviewFragment extends Fragment implements ChecklistDialog.ChecklistDialogListener, DateTimeDialogFragment.DateTimeDialogFragmentListener {
|
|
static final String SELECTED_KEY = "Selected";
|
|
static final String SELECTED_KEY = "Selected";
|
|
static final String OTHERS_KEY = "Other";
|
|
static final String OTHERS_KEY = "Other";
|
|
|
|
|
|
- static final String FILTER_MENU_TITLE_BSSID = "Filter by BSSID";
|
|
|
|
- static final String FILTER_MENU_TITLE_ESSID = "Filter by ESSID";
|
|
|
|
- static final String FILTER_MENU_TITLE_PROTOCOLS = "Filter by Protocol";
|
|
|
|
- static final String FILTER_MENU_TITLE_TIMESTAMP_BELOW = "To Date";
|
|
|
|
- static final String FILTER_MENU_TITLE_TIMESTAMP_ABOVE = "From Date";
|
|
|
|
|
|
+ static final String FILTER_MENU_TITLE_BSSID = "BSSID";
|
|
|
|
+ static final String FILTER_MENU_TITLE_ESSID = "ESSID";
|
|
|
|
+ static final String FILTER_MENU_TITLE_PROTOCOLS = "Protocol";
|
|
|
|
+ static final String FILTER_MENU_TITLE_TIMESTAMP_BELOW = "Latest Time";
|
|
|
|
+ static final String FILTER_MENU_TITLE_TIMESTAMP_ABOVE = "Earliest Time";
|
|
static final String FILTER_MENU_TITLE_SORTING = "Sort by";
|
|
static final String FILTER_MENU_TITLE_SORTING = "Sort by";
|
|
static final String FILTER_MENU_TITLE_REMOVE = "Reset Filter";
|
|
static final String FILTER_MENU_TITLE_REMOVE = "Reset Filter";
|
|
static final String FILTER_MENU_TITLE_GROUP = "Group by";
|
|
static final String FILTER_MENU_TITLE_GROUP = "Group by";
|
|
@@ -141,7 +139,7 @@ public class RecordOverviewFragment extends Fragment implements ChecklistDialog.
|
|
super.onCreateOptionsMenu(menu, inflater);
|
|
super.onCreateOptionsMenu(menu, inflater);
|
|
}
|
|
}
|
|
|
|
|
|
- public boolean onFilterMenuItemSelected(MenuItem item) {
|
|
|
|
|
|
+ public void onFilterMenuItemSelected(AbstractPopupItem item) {
|
|
String title = item.getTitle().toString();
|
|
String title = item.getTitle().toString();
|
|
|
|
|
|
if(title.equals(FILTER_MENU_TITLE_BSSID)){
|
|
if(title.equals(FILTER_MENU_TITLE_BSSID)){
|
|
@@ -166,7 +164,7 @@ public class RecordOverviewFragment extends Fragment implements ChecklistDialog.
|
|
if(title.equals(FILTER_MENU_TITLE_TIMESTAMP_ABOVE)){
|
|
if(title.equals(FILTER_MENU_TITLE_TIMESTAMP_ABOVE)){
|
|
this.openTimestampFromFilterDialog();
|
|
this.openTimestampFromFilterDialog();
|
|
}
|
|
}
|
|
- return super.onOptionsItemSelected(item);
|
|
|
|
|
|
+ //return super.onOptionsItemSelected(item);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -397,25 +395,21 @@ public class RecordOverviewFragment extends Fragment implements ChecklistDialog.
|
|
* ***************************/
|
|
* ***************************/
|
|
|
|
|
|
private void openFilterPopupMenuOnView(View v){
|
|
private void openFilterPopupMenuOnView(View v){
|
|
- // Open FilterMenu
|
|
|
|
- PopupMenu filterMenu = new PopupMenu(getBaseContext(), v);
|
|
|
|
|
|
|
|
- for(String title : RecordOverviewFragment.this.filterMenuTitles()){
|
|
|
|
- // Set a white Title
|
|
|
|
- SpannableString styledMenuTitle = new SpannableString(title);
|
|
|
|
- styledMenuTitle.setSpan(new ForegroundColorSpan(Color.parseColor("#FFFFFF")), 0, title.length(), 0);
|
|
|
|
-
|
|
|
|
- MenuItem item = filterMenu.getMenu().add(styledMenuTitle);
|
|
|
|
- item.setCheckable(this.isFilterSetForTitle(title));
|
|
|
|
- if (item.isCheckable()) item.setChecked(true);
|
|
|
|
- }
|
|
|
|
- filterMenu.setOnMenuItemClickListener(new OnMenuItemClickListener() {
|
|
|
|
- public boolean onMenuItemClick(MenuItem item) {
|
|
|
|
|
|
+ SimplePopupTable filterMenu = new SimplePopupTable(this.getActivity(), new AbstractPopup.OnPopupItemClickListener() {
|
|
|
|
+ public void onItemClick(AbstractPopupItem item) {
|
|
RecordOverviewFragment.this.onFilterMenuItemSelected(item);
|
|
RecordOverviewFragment.this.onFilterMenuItemSelected(item);
|
|
- return true;
|
|
|
|
}
|
|
}
|
|
});
|
|
});
|
|
- filterMenu.show();
|
|
|
|
|
|
+ filterMenu.setTitle("Filter by");
|
|
|
|
+ for(String title : RecordOverviewFragment.this.filterMenuTitles()){
|
|
|
|
+ SimplePopupItem item = new SimplePopupItem(this.getActivity());
|
|
|
|
+ item.setTitle(title);
|
|
|
|
+ item.setSelected(this.isFilterSetForTitle(title));
|
|
|
|
+
|
|
|
|
+ filterMenu.addItem(item);
|
|
|
|
+ }
|
|
|
|
+ filterMenu.showOnView(v);
|
|
}
|
|
}
|
|
|
|
|
|
private boolean isFilterSetForTitle(String title){
|
|
private boolean isFilterSetForTitle(String title){
|
|
@@ -498,7 +492,7 @@ public class RecordOverviewFragment extends Fragment implements ChecklistDialog.
|
|
boolean[] selected = new boolean[types.size()];
|
|
boolean[] selected = new boolean[types.size()];
|
|
int i = 0;
|
|
int i = 0;
|
|
for(String sorttype : types){
|
|
for(String sorttype : types){
|
|
- selected[i] =(this.filter.sorttype.toString() == sorttype);
|
|
|
|
|
|
+ selected[i] =(this.filter.sorttype.toString().equals(sorttype));
|
|
i++;
|
|
i++;
|
|
}
|
|
}
|
|
return selected;
|
|
return selected;
|