浏览代码

statistic filter bugs fixed

Julien Clauter 11 年之前
父节点
当前提交
652d7a441b

+ 4 - 2
src/de/tudarmstadt/informatik/hostage/ui2/dialog/ChecklistDialog.java

@@ -95,11 +95,13 @@ public class ChecklistDialog extends DialogFragment {
     	for(Integer i : this.mSelectedItems){
     		list.add(this.itemTitles.get(i.intValue()));
     	}
-        if (this.mSelectedItems.size() == 0){
+        if (this.mSelectedItems.size() == 0 && !this.isMultipleChoice){
             list.add(this.itemTitles.get(this.selectedIndex));
-        }
+       }
     	return list;
     }
+
+
 	
 	@Override
 	public Dialog onCreateDialog(Bundle savedInstanceState) {

+ 9 - 3
src/de/tudarmstadt/informatik/hostage/ui2/fragment/StatisticsFragment.java

@@ -443,12 +443,18 @@ public class StatisticsFragment extends Fragment implements ChecklistDialog.Chec
         ArrayList<String> titles =dialog.getSelectedItemTitles();
 
         if (title.equals(FILTER_MENU_TITLE_PROTOCOLS)){
-            this.filter.setProtocols(titles.size() == 0 ? this.protocolTitles() : titles);
+            //titles = titles.size() == 0 ? this.protocolTitles() : titles;
+            this.filter.setProtocols(titles);
             this.actualiseCurrentPlot();
             return;
         }
         if (title.equals(FILTER_MENU_PROTOCOL_SINGLE_CHOICE_TITLE)){
+            if (titles.size() == 0){
+                titles = new ArrayList<String>();
+                titles.add(this.protocolTitles().get(0));
+            }
             this.filter.setProtocols(titles);
+
             this.actualiseCurrentPlot();
             String fragTitle = "" + this.getCurrentSelectedProtocol() + ": " + this.selectedCompareData;
             this.setTitle(fragTitle);
@@ -599,7 +605,7 @@ public class StatisticsFragment extends Fragment implements ChecklistDialog.Chec
             titles.add(FILTER_MENU_TITLE_ESSID);
             titles.add(FILTER_MENU_TITLE_PROTOCOLS);
             titles.add(FILTER_MENU_TITLE_TIMESTAMP_ABOVE);
-            if (this.filter.hasESSIDs() || this.filter.hasATimestamp()){
+            if (this.filter.hasESSIDs() || this.filter.hasATimestamp() || (this.filter.getProtocols() != null  && this.filter.hasProtocols() && this.filter.getProtocols().size() != this.protocolTitles().size())){
                 titles.add(FILTER_MENU_TITLE_REMOVE);
             }
         } else {
@@ -1294,7 +1300,7 @@ public class StatisticsFragment extends Fragment implements ChecklistDialog.Chec
             return this.filter.hasESSIDs();
         }
         if (title.equals(FILTER_MENU_TITLE_PROTOCOLS)){
-            return this.filter.hasProtocols();
+            return (this.filter.getProtocols() != null  && this.filter.hasProtocols() && this.filter.getProtocols().size() != this.protocolTitles().size());
         }
         if (title.equals(FILTER_MENU_TITLE_TIMESTAMP_BELOW)){
             return this.filter.hasBelowTimestamp();