Browse Source

removed magic numbers in main activity -> now there is a enum for each main menu item

Julien Clauter 10 years ago
parent
commit
be6aec1b39
1 changed files with 37 additions and 16 deletions
  1. 37 16
      src/de/tudarmstadt/informatik/hostage/ui2/activity/MainActivity.java

+ 37 - 16
src/de/tudarmstadt/informatik/hostage/ui2/activity/MainActivity.java

@@ -1,9 +1,5 @@
 package de.tudarmstadt.informatik.hostage.ui2.activity;
 
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.util.ArrayList;
-
 import android.app.ActionBar;
 import android.app.Activity;
 import android.app.Fragment;
@@ -25,10 +21,13 @@ import android.view.View;
 import android.widget.AdapterView;
 import android.widget.ListView;
 
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+
 import de.tudarmstadt.informatik.hostage.HoneyService;
 import de.tudarmstadt.informatik.hostage.R;
 import de.tudarmstadt.informatik.hostage.ui.LogFilter;
-import de.tudarmstadt.informatik.hostage.ui.ViewLogTable;
 import de.tudarmstadt.informatik.hostage.ui2.adapter.DrawerListAdapter;
 import de.tudarmstadt.informatik.hostage.ui2.fragment.HomeFragment;
 import de.tudarmstadt.informatik.hostage.ui2.fragment.ProfileManagerFragment;
@@ -43,6 +42,28 @@ import de.tudarmstadt.informatik.hostage.ui2.model.DrawerListItem;
  * @created 12.01.14 23:24
  */
 public class MainActivity extends Activity {
+
+    public enum MainMenuItem {
+        UNUSED(-1),
+        HOME(0),
+        THREAT_MAP(1),
+        RECORDS(2),
+        SERVICES(3),
+        PROFILE_MANAGER(4),
+        SETTINGS(5),
+        APPLICATION_INFO(6);
+        private int value;
+
+        private MainMenuItem(int value) {
+            this.value = value;
+        }
+        static public MainMenuItem create(int value){
+            if (value < -1 || value+1  >= MainMenuItem.values().length) return MainMenuItem.HOME;
+            return  MainMenuItem.values()[value+1];
+        }
+
+    }
+
 	private DrawerLayout mDrawerLayout;
 	private ListView mDrawerList;
 	private ActionBarDrawerToggle mDrawerToggle;
@@ -51,7 +72,7 @@ public class MainActivity extends Activity {
 	private CharSequence mTitle;
 
 	public Fragment displayedFragment;
-    private int selectedMenuItemPosition;
+    private MainMenuItem selectedMenuItem;
 
 	private ArrayList<DrawerListItem> drawerItems;
 	private HoneyService mHoneyService;
@@ -67,7 +88,7 @@ public class MainActivity extends Activity {
 	protected void onCreate(Bundle savedInstanceState) {
 		super.onCreate(savedInstanceState);
 		MainActivity.context = getApplicationContext();
-        this.selectedMenuItemPosition = 0;
+        this.selectedMenuItem = MainMenuItem.HOME;
 
 		setContentView(R.layout.activity_drawer_main);
 
@@ -178,32 +199,32 @@ public class MainActivity extends Activity {
 
 	private void displayView(int position) {
         // DONT OPEN SAME VIEW AGAIN
-        int menuItemPosition = position;
+        MainMenuItem menuItemPosition = MainMenuItem.create(position);
 
         Fragment fragment = null;
 
-        if (this.selectedMenuItemPosition == position &&  this.displayedFragment != null) {
-            menuItemPosition = -1;
+        if (this.selectedMenuItem == menuItemPosition &&  this.displayedFragment != null) {
+            menuItemPosition = MainMenuItem.UNUSED;
             fragment = this.displayedFragment;
         }
 
         // update the main content by replacing fragments
 		switch (menuItemPosition) {
-			case 0:
+			case HOME:
 				fragment = new HomeFragment();
 				break;
-			case 1:
+			case THREAT_MAP:
 				fragment = new ThreatMapFragment();
 				break;
-			case 2:
+			case RECORDS:
 				Intent intent = this.getIntent();
 				intent.removeExtra(LogFilter.LOG_FILTER_INTENT_KEY);
 				fragment = new RecordOverviewFragment();
 				break;
-			case 3:
+			case SERVICES:
 				fragment = new ServicesFragment();
 				break;
-			case 4:
+			case PROFILE_MANAGER:
 				fragment = new ProfileManagerFragment();
 				break;
 			default:
@@ -221,7 +242,7 @@ public class MainActivity extends Activity {
 			    mDrawerList.setItemChecked(position, true);
 			    mDrawerList.setSelection(position);
 			    setTitle(drawerItems.get(position).text);
-                this.selectedMenuItemPosition = position;
+                this.selectedMenuItem = MainMenuItem.create(position);
             }
 
             mDrawerLayout.closeDrawer(mDrawerList);