The final version for lede-gui (the phone app for device registration)
[iot2.git] / others / lede-gui / src / main / java / com / example / lede2 / MainActivity.java
index d5dc4a5024b663e744b3331aa0de32a30183cc62..e1fe9512226bf6c8399771e5fdc07ce5ff6e2149 100644 (file)
@@ -1,5 +1,6 @@
 package com.example.lede2;\r
 \r
+import android.app.ProgressDialog;\r
 import android.content.Context;\r
 import android.content.Intent;\r
 import android.net.ConnectivityManager;\r
@@ -15,13 +16,15 @@ import android.widget.Toast;
 \r
 public class MainActivity extends AppCompatActivity implements View.OnClickListener {\r
 \r
+    Button databaseButton;\r
     Button registerButton;\r
     Button listButton;\r
-    Button insertDBButton;\r
-    Button deleteDBButton;\r
+    Button applicationsButton;\r
     Button configButton;\r
-    Button relationButton;\r
+    Button driversButton;\r
     TextView ssid;\r
+    DatabaseObject databaseObject;\r
+    ProgressDialog dialog;\r
     protected static Context context;\r
     protected static String DEF_RSSID;\r
     protected static String DEF_RPWD;\r
@@ -33,61 +36,117 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
     protected static String DEF_CHANGE_DEFAULT_SCRIPT;\r
     protected static String DEF_CONNECT_DEVICE_SCRIPT;\r
     protected static String DEF_REGISTER_DEVICE_SCRIPT;\r
-    protected static String DEF_ADD_DEVICE_FILE;\r
-    protected static String DEF_ADD_DEVICE_ADDRESS_FILE;\r
-    protected static String DEF_ADD_DEVICE_COMM_FILE;\r
+\r
+    protected static String DEF_INSTALL_DEVICE_FILE;\r
+    protected static String DEF_INSTALL_DEVICE_ADDRESS_FILE;\r
+    protected static String DEF_INSTALL_DEVICE_COMM_FILE;\r
+    protected static String DEF_INSTALL_ADDRESS_FILE;\r
+    protected static String DEF_INSTALL_TWO_DEVICES_AND_COMM_FILE;\r
+    protected static String DEF_INSTALL_ZIGBEE_DEVICE_ADDRESS_FILE;\r
+    protected static String DEF_INSTALL_HOST_FILE;\r
+    protected static String DEF_DELETE_ENTITY_FILE;\r
+    protected static String DEF_DELETE_COMM_PATTERN_FILE;\r
+    protected static String DEF_DELETE_ADDRESS_FILE;\r
+    protected static String DEF_DELETE_DEVICE_ADDRESS_FILE;\r
+    protected static String DEF_DELETE_ZIGBEE_DEVICE_ADDRESS_FILE;\r
+    protected static String DEF_DELETE_HOST_FILE;\r
+\r
+\r
     protected static String DEF_ADD_DEVICE_TO_MYSQL;\r
     protected static String DEF_MYSQL_CONFIG_FILE;\r
     protected static String DEF_INSTALL_CMD;\r
     protected static String DEF_DELETE_CMD;\r
     protected static String DEF_INSTALL_ADDRESS_CMD;\r
+    protected static String DEF_INSTALL_ZBADDRESS_CMD;\r
     protected static String DEF_DELETE_ADDRESS_CMD;\r
     protected static String DEF_INSTALL_RELATION_CMD;\r
     protected static String DEF_DELETE_RELATION_CMD;\r
+    protected static String DEF_DATABASE_NAME;\r
+\r
 \r
     @Override\r
     protected void onCreate(Bundle savedInstanceState) {\r
         super.onCreate(savedInstanceState);\r
         setContentView(R.layout.activity_main);\r
-\r
         registerButton = (Button) findViewById(R.id.register);\r
         listButton = (Button) findViewById(R.id.list);\r
-        insertDBButton = (Button) findViewById(R.id.insert_db);\r
-        deleteDBButton = (Button) findViewById(R.id.delete_db);\r
+        databaseButton = (Button) findViewById(R.id.database);\r
+        applicationsButton = (Button) findViewById(R.id.applications);\r
         configButton = (Button) findViewById(R.id.config);\r
-        relationButton = (Button) findViewById(R.id.add_del_comm);\r
+        driversButton = (Button) findViewById(R.id.drivers);\r
         ssid = (TextView)findViewById(R.id.device_subtype);\r
 \r
+\r
         registerButton.setOnClickListener(this);\r
         listButton.setOnClickListener(this);\r
-        insertDBButton.setOnClickListener(this);\r
-        deleteDBButton.setOnClickListener(this);\r
+        databaseButton.setOnClickListener(this);\r
+        applicationsButton.setOnClickListener(this);\r
         configButton.setOnClickListener(this);\r
-        relationButton.setOnClickListener(this);\r
+        driversButton.setOnClickListener(this);\r
 \r
         context = getApplicationContext();\r
         DEF_RSSID = context.getResources().getString(R.string.default_rssid);\r
         DEF_RPWD = context.getResources().getString(R.string.default_rpwd);\r
         DEF_ROUTERIP = context.getResources().getString(R.string.default_routerip);\r
         DEF_ROUTERUSER = context.getResources().getString(R.string.default_routeruser);\r
-        DEF_CHANGE_DEFAULT_SCRIPT = context.getResources().getString(R.string.change_default_script);\r
-        DEF_CONNECT_DEVICE_SCRIPT = context.getResources().getString(R.string.connect_device_script);\r
-        DEF_REGISTER_DEVICE_SCRIPT = context.getResources().getString(R.string.register_device_script);\r
-        DEF_ADD_DEVICE_FILE = context.getResources().getString(R.string.add_device_file);\r
-        DEF_ADD_DEVICE_ADDRESS_FILE = context.getResources().getString(R.string.add_device_address_file);\r
-        DEF_ADD_DEVICE_COMM_FILE = context.getResources().getString(R.string.add_device_comm_file);\r
+        DEF_CHANGE_DEFAULT_SCRIPT = context.getResources()\r
+                .getString(R.string.change_default_script);\r
+        DEF_CONNECT_DEVICE_SCRIPT = context.getResources()\r
+                .getString(R.string.connect_device_script);\r
+        DEF_REGISTER_DEVICE_SCRIPT = context.getResources()\r
+                .getString(R.string.register_device_script);\r
+        DEF_INSTALL_DEVICE_FILE = context.getResources().getString(R.string.install_device_file);\r
+        DEF_INSTALL_DEVICE_ADDRESS_FILE = context.getResources().getString\r
+                (R.string.install_device_address_file);\r
+        DEF_INSTALL_TWO_DEVICES_AND_COMM_FILE = context.getResources()\r
+                .getString(R.string.install_two_devices_and_comm_file);\r
+        DEF_INSTALL_ADDRESS_FILE = context.getResources().getString(R.string.install_address_file);\r
+        DEF_INSTALL_DEVICE_COMM_FILE = context.getResources().getString(R.string.install_device_comm_file);\r
+        DEF_INSTALL_ZIGBEE_DEVICE_ADDRESS_FILE = context.getResources()\r
+                .getString(R.string.install_zigbee_device_address_file);\r
+        DEF_INSTALL_HOST_FILE = context.getResources().getString(R.string.install_host_file);\r
+        DEF_DELETE_ENTITY_FILE = context.getResources().getString(R.string.delete_entity_file);\r
+        DEF_DELETE_COMM_PATTERN_FILE = context.getResources()\r
+                .getString(R.string.delete_comm_pattern_file);\r
+        DEF_DELETE_ADDRESS_FILE = context.getResources().getString(R.string.delete_address_file);\r
+        DEF_DELETE_DEVICE_ADDRESS_FILE = context.getResources()\r
+                .getString(R.string.delete_device_address_file);\r
+        DEF_DELETE_ZIGBEE_DEVICE_ADDRESS_FILE = context.getResources()\r
+                .getString(R.string.delete_zigbee_device_address_file);\r
+        DEF_DELETE_HOST_FILE = context.getResources().getString(R.string.delete_host);\r
+\r
         DEF_MYSQLHOSTUSER = context.getResources().getString(R.string.mysql_hostuser);\r
         DEF_MYSQLHOSTIP = context.getResources().getString(R.string.mysql_hostip);\r
         DEF_MYSQLHOSTPASSWORD = context.getResources().getString(R.string.mysql_hostpassword);\r
         DEF_ADD_DEVICE_TO_MYSQL = context.getResources().getString(R.string.add_device_to_mysql);\r
+\r
+\r
         DEF_MYSQL_CONFIG_FILE = context.getResources().getString(R.string.mysql_config_file);\r
         DEF_INSTALL_CMD = context.getResources().getString(R.string.install_cmd);\r
         DEF_DELETE_CMD = context.getResources().getString(R.string.delete_cmd);\r
         DEF_INSTALL_ADDRESS_CMD = context.getResources().getString(R.string.install_address_cmd);\r
+        DEF_INSTALL_ZBADDRESS_CMD = context.getResources().getString(R.string.install_zb_address_cmd);\r
         DEF_DELETE_ADDRESS_CMD = context.getResources().getString(R.string.delete_address_cmd);\r
         DEF_INSTALL_RELATION_CMD = context.getResources().getString(R.string.add_comm_cmd);\r
         DEF_DELETE_RELATION_CMD = context.getResources().getString(R.string.delete_comm_cmd);\r
+\r
+        DEF_DATABASE_NAME = context.getResources().getString(R.string.database_name);\r
+\r
         ssid.setText(DEF_RSSID);\r
+        databaseObject = new DatabaseObject();\r
+        //Check if the user has wifi connection\r
+        if (isNetworkAvailable() == false) {//without wifi connection\r
+            Toast t = Toast.makeText(this, R.string.connect, Toast.LENGTH_SHORT);\r
+            t.show();\r
+            Intent intent = new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK);\r
+            intent.putExtra("only_access_points", true);\r
+            intent.putExtra("extra_prefs_show_button_bar", true);\r
+            intent.putExtra("wifi_enable_next_on_connect", true);\r
+            startActivityForResult(intent,1);\r
+        }\r
+        //sends to another page to update/retrieve information about the database from the pi\r
+        startActivity(new Intent(this, UpdateLocalConfigFiles.class));\r
+\r
     }\r
 \r
     public void onClick(View v) {\r
@@ -95,35 +154,60 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
         if(v == configButton){\r
             startActivityForResult(new Intent(this,ConfigActivity.class),1000);\r
         }\r
-\r
         //Users try to execute shell scripts by pushing button,\r
         //but problem could occur(application stop) if user push the button without wifi connection\r
         //As a result, below function have to be implemented.\r
         if (isNetworkAvailable() == false) {//without wifi connection\r
             Toast t = Toast.makeText(this, R.string.connect, Toast.LENGTH_SHORT);\r
             t.show();\r
-            startActivity(new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK));\r
+            Intent intent = new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK);\r
+            intent.putExtra("only_access_points", true);\r
+            intent.putExtra("extra_prefs_show_button_bar", true);\r
+            intent.putExtra("wifi_enable_next_on_connect", true);\r
+            startActivityForResult(intent,1);\r
+            System.out.println("STOPPPPP");\r
+            //startActivity(new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK)); // Not as good as the lines above\r
         } else {//with wifi connection\r
+\r
+            dialog = new ProgressDialog(this);\r
+            dialog.setMessage("Please Wait");\r
+            dialog.setCancelable(false);\r
+            dialog.setInverseBackgroundForced(false);\r
+            dialog.show();\r
+\r
             if (v == registerButton) {\r
                 Log.d("CLICKING", "Clicking on register!");\r
-                startActivity(new Intent(this, EnrollDeviceActivity.class));\r
+                startActivity(new Intent(this, RegistrationRouterCheck.class));\r
+//                dialog.hide();\r
                 //startActivity(new Intent(this, AddDeviceActivity.class));\r
             } else if (v == listButton) {\r
                 Log.d("CLICKING", "Clicking on list activity!");\r
                 startActivity(new Intent(this, ListActivity.class));\r
-            } else if (v == insertDBButton) {\r
+//                dialog.hide();\r
+            } else if (v == databaseButton) {\r
+                //Need to change. Not every install option needs its own page.\r
                 Log.d("CLICKING", "Clicking on add device!");\r
-                startActivity(new Intent(this, AddDeviceActivity.class));\r
-            } else if (v == deleteDBButton) {\r
+                startActivity(new Intent(this, DatabaseActivity.class));\r
+//                dialog.hide();\r
+            } else if (v == applicationsButton) {\r
                 Log.d("CLICKING", "Clicking on delete device!");\r
-                startActivity(new Intent(this, DeleteDeviceActivity.class));\r
-            } else if (v == relationButton) {\r
+                startActivity(new Intent(this, ApplicationsList.class));\r
+//                dialog.hide();\r
+            } else if (v == driversButton) {\r
                 Log.d("CLICKING", "Clicking on add communication!");\r
-                startActivity(new Intent(this, RelationActivity.class));\r
+                startActivity(new Intent(this, DriversSelectActivity.class));\r
             }\r
         }\r
     }\r
 \r
+    @Override\r
+    protected void onResume() {\r
+        super.onResume();\r
+        if(dialog != null && dialog.isShowing()){\r
+            dialog.dismiss();\r
+        }\r
+    }\r
+\r
     boolean isNetworkAvailable() {//check whether wifi connection is or not\r
         Context context = getApplicationContext();\r
         ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);\r
@@ -140,4 +224,4 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
             ssid.setText(ConfigActivity.RSSID);\r
         }\r
     }\r
-}\r
+}
\ No newline at end of file