From 00922a5779ecade450c3cabc756f850dbe528095 Mon Sep 17 00:00:00 2001 From: rtrimana Date: Tue, 26 Sep 2017 12:45:58 -0700 Subject: [PATCH] Adding database information insertion features in the phone app --- .../.gradle/3.3/taskArtifacts/fileHashes.bin | Bin 646027 -> 688995 bytes .../3.3/taskArtifacts/fileSnapshots.bin | Bin 4674724 -> 5908973 bytes .../3.3/taskArtifacts/taskArtifacts.bin | Bin 199356 -> 212058 bytes .../3.3/taskArtifacts/taskArtifacts.lock | Bin 17 -> 17 bytes .../localClassSetAnalysis.bin | Bin 62037 -> 134862 bytes .../localClassSetAnalysis.lock | Bin 17 -> 17 bytes .../localJarClasspathSnapshot.bin | Bin 26573 -> 28701 bytes .../localJarClasspathSnapshot.lock | Bin 17 -> 17 bytes .../lede-gui/.idea/libraries/iotinstaller.xml | 9 - others/lede-gui/.idea/workspace.xml | 625 +++++++++++++----- others/lede-gui/build.gradle | 1 + others/lede-gui/lede-gui.iml | 17 +- others/lede-gui/libs/iotinstaller.jar | Bin 16702 -> 0 bytes others/lede-gui/src/main/AndroidManifest.xml | 11 +- .../lede-gui/src/main/assets/add_comm.config | 3 + .../src/main/assets/add_device.config | 15 + .../src/main/assets/add_device_address.config | 8 + .../com/example/lede2/AddDeviceActivity.java | 102 +++ .../example/lede2/AddRelationActivity.java | 75 +++ .../com/example/lede2/ConfigActivity.java | 6 +- .../example/lede2/DeleteDeviceActivity.java | 85 +++ .../example/lede2/EnrollDeviceActivity.java | 8 +- .../java/com/example/lede2/ListActivity.java | 34 +- .../java/com/example/lede2/MainActivity.java | 53 +- .../com/example/lede2/MySQLInterface.config | 7 - .../src/main/java/com/example/lede2/SSH.java | 19 +- .../java/com/example/lede2/SSH_MySQL.java | 174 +++++ .../main/res/layout/activity_add_device.xml | 107 +++ .../main/res/layout/activity_add_relation.xml | 92 +++ .../src/main/res/layout/activity_config.xml | 2 +- .../res/layout/activity_delete_device.xml | 179 +++++ .../src/main/res/layout/activity_list.xml | 55 +- .../src/main/res/layout/activity_main.xml | 88 ++- others/lede-gui/src/main/res/values/attrs.xml | 12 + .../lede-gui/src/main/res/values/colors.xml | 6 +- .../src/main/res/values/constants.xml | 13 + .../lede-gui/src/main/res/values/dimens.xml | 3 + .../lede-gui/src/main/res/values/strings.xml | 9 +- .../lede-gui/src/main/res/values/styles.xml | 21 + 39 files changed, 1592 insertions(+), 247 deletions(-) delete mode 100644 others/lede-gui/.idea/libraries/iotinstaller.xml delete mode 100644 others/lede-gui/libs/iotinstaller.jar create mode 100644 others/lede-gui/src/main/assets/add_comm.config create mode 100644 others/lede-gui/src/main/assets/add_device.config create mode 100644 others/lede-gui/src/main/assets/add_device_address.config create mode 100644 others/lede-gui/src/main/java/com/example/lede2/AddDeviceActivity.java create mode 100644 others/lede-gui/src/main/java/com/example/lede2/AddRelationActivity.java create mode 100644 others/lede-gui/src/main/java/com/example/lede2/DeleteDeviceActivity.java delete mode 100644 others/lede-gui/src/main/java/com/example/lede2/MySQLInterface.config create mode 100644 others/lede-gui/src/main/java/com/example/lede2/SSH_MySQL.java create mode 100644 others/lede-gui/src/main/res/layout/activity_add_device.xml create mode 100644 others/lede-gui/src/main/res/layout/activity_add_relation.xml create mode 100644 others/lede-gui/src/main/res/layout/activity_delete_device.xml create mode 100644 others/lede-gui/src/main/res/values/attrs.xml create mode 100644 others/lede-gui/src/main/res/values/dimens.xml diff --git a/others/lede-gui/.gradle/3.3/taskArtifacts/fileHashes.bin b/others/lede-gui/.gradle/3.3/taskArtifacts/fileHashes.bin index 8a9ea4e6724dee6ca21bf70fd9771f9bb20c1d4a..466d723b14564fbacfb583c902b30d2cf99daace 100644 GIT binary patch delta 42405 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 z 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 L9rDmJ3Wfg%(>tE* diff --git a/others/lede-gui/.gradle/3.3/taskArtifacts/fileSnapshots.bin b/others/lede-gui/.gradle/3.3/taskArtifacts/fileSnapshots.bin index 5832079c4ac68f8b2fdb0b7865660a1c8da32f80..1d63b580e2b5a7664e4a31f3dbb7c8ca8cd9ea3c 100644 GIT binary patch delta 109283 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 literal 17 VcmZS9`S3+oonw&&0~nOv0RSxX1e*W= diff --git a/others/lede-gui/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.bin b/others/lede-gui/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.bin index c182c8b9fb9b53957c83dac9551b9755f7d3f729..ecaaa6c4be8c67231e0e1e3e7c1a290d24cf3c71 100644 GIT binary patch literal 134862 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 TsKg3b3JR9i%2~E{9^CwYXMRQ# delta 35 tcmV+;0Nnr1oe0(B1CSH}1d$ap0Y$N)co&hdSd$qTDFXn{qO(O95Zdh349x%l diff --git a/others/lede-gui/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock b/others/lede-gui/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock index 627cc8adf9fa92749b239b52556d47313f4e10b4..f864e15f5786a2bd7efa3409edcafd2ff3e7a94d 100644 GIT binary patch literal 17 VcmZQ(3#oel#^*#K0~jy`001)31d0Fv literal 17 UcmZQ(3#oel#^*#K0|XQU05b0cs{jB1 diff --git a/others/lede-gui/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.bin b/others/lede-gui/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.bin index e08f809a25d4227dca72ea995162cd92f932840d..fb93f2d277d2bd1e9cf755ad129f062bad683a3b 100644 GIT binary patch delta 139 zcmX?mo^kF2#t9;fEE7f5c^McO;*T;gaBu(_t{WXMh) - - - - - - - - \ No newline at end of file diff --git a/others/lede-gui/.idea/workspace.xml b/others/lede-gui/.idea/workspace.xml index 9323b6a..be99b55 100644 --- a/others/lede-gui/.idea/workspace.xml +++ b/others/lede-gui/.idea/workspace.xml @@ -6,6 +6,7 @@ + @@ -46,12 +47,16 @@ - + - - - + + + + + + + @@ -59,19 +64,26 @@ - - - + + + + + + - - + + - - - + + + + + + + @@ -79,8 +91,35 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -93,6 +132,8 @@ @@ -873,7 +914,7 @@ @@ -1135,32 +1176,48 @@ - @@ -1224,6 +1281,124 @@ + @@ -1259,12 +1435,20 @@ - - + + + + + + + + + + @@ -1851,23 +2035,25 @@ - - + + - + - - + + + - + - - + + + @@ -1881,10 +2067,11 @@ - - + + - - - - - - - + + + + + + + - - - - - - - + + + - + + + + + - + + + - - - + + - + - - - + + - + - - - + + - - - - - - - - - + + + + + + + + - - - + - - + + + - + + + + + + + + + - - - - - + + + + + - + - + - - + + - - - - - + - - + + + - - - - + + + + + + + + - - - + + + + + + + + - - - + + + + + + + + - - - - + - - + + + - - - + - - + + + - + - - + + + + + + - + - + + + + + - + - - + + + - - + + + + + + + + + + + + - + - - - - - - + + + + + + - + + + + + + + + + + + + - - + + + - + + + + + + + + + - - + + + - + + + + + + + + + + + - - + + @@ -2113,66 +2363,105 @@ + + + + + + + + + - + - - - + + + + + + + - - + + + + + + + + + + - + - - - + + + + + + + - - + + + + + + + + + + + - + - - + + + + + - + - - + + - + - - - + + + + + - + - - + + diff --git a/others/lede-gui/build.gradle b/others/lede-gui/build.gradle index f74784d..b9dd0d4 100644 --- a/others/lede-gui/build.gradle +++ b/others/lede-gui/build.gradle @@ -45,5 +45,6 @@ dependencies { compile 'com.android.support:appcompat-v7:26.+' compile 'com.android.support.constraint:constraint-layout:1.0.2' compile 'com.android.support:design:26.0.0-alpha1' + compile 'com.android.support:support-v4:26.+' testCompile 'junit:junit:4.12' } diff --git a/others/lede-gui/lede-gui.iml b/others/lede-gui/lede-gui.iml index b56780f..74baa3e 100644 --- a/others/lede-gui/lede-gui.iml +++ b/others/lede-gui/lede-gui.iml @@ -62,13 +62,6 @@ - - - - - - - @@ -76,9 +69,17 @@ + + + + + + + + @@ -90,6 +91,7 @@ + @@ -125,7 +127,6 @@ - diff --git a/others/lede-gui/libs/iotinstaller.jar b/others/lede-gui/libs/iotinstaller.jar deleted file mode 100644 index 1acf7bec64f439acf17a7ac76697d3b57629cbc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16702 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 Al>h($ diff --git a/others/lede-gui/src/main/AndroidManifest.xml b/others/lede-gui/src/main/AndroidManifest.xml index c8e7e6f..57ca44d 100644 --- a/others/lede-gui/src/main/AndroidManifest.xml +++ b/others/lede-gui/src/main/AndroidManifest.xml @@ -23,7 +23,16 @@ - + + + + \ No newline at end of file diff --git a/others/lede-gui/src/main/assets/add_comm.config b/others/lede-gui/src/main/assets/add_comm.config new file mode 100644 index 0000000..0a8a2ac --- /dev/null +++ b/others/lede-gui/src/main/assets/add_comm.config @@ -0,0 +1,3 @@ +CM4 AmcrestCameraCM4 +LB4 LifxLightBulbLB4 +WRITE \ No newline at end of file diff --git a/others/lede-gui/src/main/assets/add_device.config b/others/lede-gui/src/main/assets/add_device.config new file mode 100644 index 0000000..4ecf673 --- /dev/null +++ b/others/lede-gui/src/main/assets/add_device.config @@ -0,0 +1,15 @@ +IoTMain +ID CM4 +TYPE Camera +TYPESPECIFIC AmcrestCamera +END + +Table 2 +USERNAME VARCHAR 20 +PASSWORD VARCHAR 20 +END + +Data +admin +55779CatSoundz35 +END \ No newline at end of file diff --git a/others/lede-gui/src/main/assets/add_device_address.config b/others/lede-gui/src/main/assets/add_device_address.config new file mode 100644 index 0000000..9867d01 --- /dev/null +++ b/others/lede-gui/src/main/assets/add_device_address.config @@ -0,0 +1,8 @@ +ID=CM4 +ADDRESSFOR=AmcrestCameraAdd +DEVICEADDRESS=ab:cd:ef:12:34:56 +PORTNUMBER=888 +PROTOCOL=udp +SOURCEWILDCARD=false +DESTWILDCARD=false +END \ No newline at end of file diff --git a/others/lede-gui/src/main/java/com/example/lede2/AddDeviceActivity.java b/others/lede-gui/src/main/java/com/example/lede2/AddDeviceActivity.java new file mode 100644 index 0000000..fc4a075 --- /dev/null +++ b/others/lede-gui/src/main/java/com/example/lede2/AddDeviceActivity.java @@ -0,0 +1,102 @@ +package com.example.lede2; + +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.util.Log; +import android.view.Gravity; +import android.view.View; +import android.view.inputmethod.InputMethodManager; +import android.widget.Button; +import android.widget.EditText; +import android.widget.TextView; + +import java.io.IOException; +import java.io.InputStream; +import java.sql.*; + + +public class AddDeviceActivity extends AppCompatActivity implements View.OnClickListener,View.OnFocusChangeListener { + + Button doneButton; + TextView databaseInfo; + TextView databaseAddressInfo; + private SSH_MySQL ssh;//Connection object between Android & Host + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_add_device); + + doneButton = (Button) findViewById(R.id.doneButton); + databaseInfo = (EditText)findViewById(R.id.textInfo); + databaseAddressInfo = (EditText)findViewById(R.id.textInfoAddress); + + doneButton.setOnClickListener(this); + databaseInfo.setOnFocusChangeListener(this); + databaseAddressInfo.setOnFocusChangeListener(this); + ssh = new SSH_MySQL(); + // Set config text from file for device + try { + InputStream is = getAssets().open(MainActivity.DEF_ADD_DEVICE_FILE); + int size = is.available(); + byte[] buffer = new byte[size]; + is.read(buffer); + is.close(); + String text = new String(buffer); + databaseInfo.setGravity(Gravity.LEFT); + databaseInfo.setText(text); + Log.d("LOADINGFILE", "Add device info file is already loaded!"); + } catch (IOException ex) { + Log.d("LOADINGFILE", "Add device info file is NOT loaded!"); + ex.printStackTrace(); + } + // Set config text from file for device address + try { + InputStream is = getAssets().open(MainActivity.DEF_ADD_DEVICE_ADDRESS_FILE); + int size = is.available(); + byte[] buffer = new byte[size]; + is.read(buffer); + is.close(); + String text = new String(buffer); + databaseAddressInfo.setGravity(Gravity.LEFT); + databaseAddressInfo.setText(text); + Log.d("LOADINGFILE", "Add device address info file is already loaded!"); + } catch (IOException ex) { + Log.d("LOADINGFILE", "Add device address info file is NOT loaded!"); + ex.printStackTrace(); + } + + } + + @Override + public void onClick(View v) { + if(v == doneButton){ + // 1) Create a new file and insert the configuration + // 2) Run iotinstaller code for device installation + // 3) Remove the existing config file + // 4) Repeat 1, 2, and 3 for device address + ssh.execute("echo \"" + databaseInfo.getText().toString() + "\" >> " + + MainActivity.DEF_MYSQL_CONFIG_FILE + ";" + + MainActivity.DEF_INSTALL_CMD + " " + MainActivity.DEF_MYSQL_CONFIG_FILE + ";" + + "rm -rf " + MainActivity.DEF_MYSQL_CONFIG_FILE + ";" + + // repeat process for device address + "echo \"" + databaseAddressInfo.getText().toString() + "\" >> " + + MainActivity.DEF_MYSQL_CONFIG_FILE + ";" + + MainActivity.DEF_INSTALL_ADDRESS_CMD + " " + MainActivity.DEF_MYSQL_CONFIG_FILE + ";" + + "rm -rf " + MainActivity.DEF_MYSQL_CONFIG_FILE); + finish(); + } + } + + @Override + public void onFocusChange(View view, boolean hasFocus) { + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + if (hasFocus) { + imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); + } else { + imm.hideSoftInputFromWindow(view.getWindowToken(), 0); + } + } +} diff --git a/others/lede-gui/src/main/java/com/example/lede2/AddRelationActivity.java b/others/lede-gui/src/main/java/com/example/lede2/AddRelationActivity.java new file mode 100644 index 0000000..da54025 --- /dev/null +++ b/others/lede-gui/src/main/java/com/example/lede2/AddRelationActivity.java @@ -0,0 +1,75 @@ +package com.example.lede2; + +import android.content.Context; +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.util.Log; +import android.view.Gravity; +import android.view.View; +import android.view.inputmethod.InputMethodManager; +import android.widget.Button; +import android.widget.EditText; +import android.widget.TextView; + +import java.io.IOException; +import java.io.InputStream; + +public class AddRelationActivity extends AppCompatActivity implements View.OnClickListener,View.OnFocusChangeListener { + + Button doneButton; + TextView databaseInfo; + private SSH_MySQL ssh;//Connection object between Android & Host + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_add_relation); + + doneButton = (Button) findViewById(R.id.doneButton); + databaseInfo = (EditText)findViewById(R.id.textInfoComm); + + doneButton.setOnClickListener(this); + databaseInfo.setOnFocusChangeListener(this); + ssh = new SSH_MySQL(); + // Set config text from file for device + try { + InputStream is = getAssets().open(MainActivity.DEF_ADD_DEVICE_COMM_FILE); + int size = is.available(); + byte[] buffer = new byte[size]; + is.read(buffer); + is.close(); + String text = new String(buffer); + databaseInfo.setGravity(Gravity.LEFT); + databaseInfo.setText(text); + Log.d("LOADINGFILE", "Add comm info file is already loaded!"); + } catch (IOException ex) { + Log.d("LOADINGFILE", "Add comm info file is NOT loaded!"); + ex.printStackTrace(); + } + } + + @Override + public void onClick(View v) { + if(v == doneButton){ + // 1) Create a new file and insert the configuration + // 2) Run iotinstaller code for communication/relation installation + // 3) Remove the existing config file + ssh.execute("echo \"" + databaseInfo.getText().toString() + "\" >> " + + MainActivity.DEF_MYSQL_CONFIG_FILE + ";" + + MainActivity.DEF_INSTALL_RELATION_CMD + " " + MainActivity.DEF_MYSQL_CONFIG_FILE + ";" + + "rm -rf " + MainActivity.DEF_MYSQL_CONFIG_FILE); + finish(); + } + } + + @Override + public void onFocusChange(View view, boolean hasFocus) { + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + if (hasFocus) { + imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); + } else { + imm.hideSoftInputFromWindow(view.getWindowToken(), 0); + } + } + +} diff --git a/others/lede-gui/src/main/java/com/example/lede2/ConfigActivity.java b/others/lede-gui/src/main/java/com/example/lede2/ConfigActivity.java index de16fa9..5f20a69 100644 --- a/others/lede-gui/src/main/java/com/example/lede2/ConfigActivity.java +++ b/others/lede-gui/src/main/java/com/example/lede2/ConfigActivity.java @@ -22,14 +22,16 @@ public class ConfigActivity extends AppCompatActivity implements View.OnClickLis public static String RPWD = MainActivity.DEF_RPWD; public static String ROUTERIP = MainActivity.DEF_ROUTERIP; public static String ROUTERUSER = MainActivity.DEF_ROUTERUSER; - + public static String MYSQLHOSTUSER = MainActivity.DEF_MYSQLHOSTUSER; + public static String MYSQLHOSTIP = MainActivity.DEF_MYSQLHOSTIP; + public static String MYSQLHOSTPASSWORD = MainActivity.DEF_MYSQLHOSTPASSWORD; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_config); - ssid = (EditText) findViewById(R.id.ssid); + ssid = (EditText) findViewById(R.id.device_subtype); pwd = (EditText) findViewById(R.id.pwd); ip = (EditText) findViewById(R.id.ip); user = (EditText) findViewById(R.id.user); diff --git a/others/lede-gui/src/main/java/com/example/lede2/DeleteDeviceActivity.java b/others/lede-gui/src/main/java/com/example/lede2/DeleteDeviceActivity.java new file mode 100644 index 0000000..3036805 --- /dev/null +++ b/others/lede-gui/src/main/java/com/example/lede2/DeleteDeviceActivity.java @@ -0,0 +1,85 @@ +package com.example.lede2; + +import android.content.Context; +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.view.View; +import android.view.inputmethod.InputMethodManager; +import android.widget.Button; +import android.widget.EditText; +import android.widget.TextView; + +public class DeleteDeviceActivity extends AppCompatActivity implements View.OnClickListener, View.OnFocusChangeListener { + + Button deleteButton; + Button doneButton; + EditText device_id; + EditText device_type; + EditText device_subtype; + EditText device_address_subtype; + TextView status; + private SSH_MySQL ssh;//Connection object between Android & Host + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_delete_device); + + deleteButton = (Button) findViewById(R.id.delete); + doneButton = (Button) findViewById(R.id.done); + device_id = (EditText)findViewById(R.id.device_id); + device_type = (EditText)findViewById(R.id.device_type); + device_subtype = (EditText)findViewById(R.id.device_subtype); + device_address_subtype = (EditText)findViewById(R.id.device_address_subtype); + status = (TextView)findViewById(R.id.textStatus); + + deleteButton.setOnClickListener(this); + doneButton.setOnClickListener(this); + device_id.setOnFocusChangeListener(this); + device_type.setOnFocusChangeListener(this); + device_subtype.setOnFocusChangeListener(this); + device_address_subtype.setOnFocusChangeListener(this); + ssh = new SSH_MySQL(); + } + + @Override + public void onClick(View v) { + if(v == deleteButton){ + // Remove the entry based on ID, type, and subtype + ssh.execute(MainActivity.DEF_DELETE_CMD + " " + + device_id.getText().toString() + " " + + device_type.getText().toString() + " " + + device_subtype.getText().toString() + ";" + + // Also remove the device address + MainActivity.DEF_DELETE_ADDRESS_CMD + " " + + device_id.getText().toString() + " " + + device_address_subtype.getText().toString() + ); + device_id.setText(""); + device_type.setText(""); + device_subtype.setText(""); + device_address_subtype.setText(""); + status.setText("Successfully deleted " + device_id.getText()); + /*try { + Thread.sleep(2000); + } catch (Exception ex) { + ex.printStackTrace(); + } + status.setText("");*/ + } + if(v == doneButton){ + finish(); + } + + } + + @Override + public void onFocusChange(View view, boolean hasFocus) { + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + if (hasFocus) { + imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); + } else { + imm.hideSoftInputFromWindow(view.getWindowToken(), 0); + } + } +} diff --git a/others/lede-gui/src/main/java/com/example/lede2/EnrollDeviceActivity.java b/others/lede-gui/src/main/java/com/example/lede2/EnrollDeviceActivity.java index 926870a..be1d04a 100644 --- a/others/lede-gui/src/main/java/com/example/lede2/EnrollDeviceActivity.java +++ b/others/lede-gui/src/main/java/com/example/lede2/EnrollDeviceActivity.java @@ -100,19 +100,23 @@ public class EnrollDeviceActivity extends AppCompatActivity implements View.OnCl ssh = new SSH(); // execute shell script (script's function -> Save contents(Mac,Ip,Key,Name) on hostapd-psk) - ssh.execute("-co " + networkPass + " " + deviceName +" "+ ConfigActivity.RPWD);//review!!!!!! + ssh.execute("-co " + networkPass + " " + deviceName + " " + ConfigActivity.RPWD);//review!!!!!! try {//To execute asyntask in ssh object, we have to sleep main thread Thread.sleep(1000); } catch (Exception e) { Log.d("SLEEP EXCEPTION", "SLEEP EXCEPTION occurs in onClick method of EnrollDeviceActivity"); } finish();//Go back to the Main Activity - } else { //if name of wifi is not LEDE2 -> go to wifi configuration screen to change wifi type + } else { //if name of wifi is not LEDE -> go to wifi configuration screen to change wifi type Toast t = Toast.makeText(this, R.string.try_again, Toast.LENGTH_SHORT); t.show(); startActivity(new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK)); } } + // Call activity that adds device - not doing this flow because we haven't found + // a way to change password without restarting WiFi + //startActivity(new Intent(this, AddDeviceActivity.class)); + //finish(); } else if (v == wifi) { startActivity(new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK)); } diff --git a/others/lede-gui/src/main/java/com/example/lede2/ListActivity.java b/others/lede-gui/src/main/java/com/example/lede2/ListActivity.java index 60bc1f8..5de1fd2 100644 --- a/others/lede-gui/src/main/java/com/example/lede2/ListActivity.java +++ b/others/lede-gui/src/main/java/com/example/lede2/ListActivity.java @@ -1,24 +1,33 @@ package com.example.lede2; +import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.util.SparseBooleanArray; import android.view.View; +import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; +import android.widget.EditText; import android.widget.ListView; +import android.widget.TextView; +import android.widget.Toast; import java.util.List; public class ListActivity extends AppCompatActivity implements View.OnClickListener { Button delete;//delete button in UI - Button selectAll;//select button in UI + Button deviceInfo;//select button in UI ListView listview;//listview in UI SSH ssh;//Connection object between Android & Router List tmp;//data structure which has IoT device information already registered on LEDE2 ArrayAdapter adapter;//adapter between tmp and listview + String device_info; + protected String deviceIp; + TextView ip; + TextView mac; @Override protected void onCreate(Bundle savedInstanceState) { @@ -33,14 +42,20 @@ public class ListActivity extends AppCompatActivity implements View.OnClickListe } delete = (Button) findViewById(R.id.delete); - selectAll = (Button) findViewById(R.id.selectAll); + deviceInfo = (Button) findViewById(R.id.deviceInfo); listview = (ListView) findViewById(R.id.listView1); + ip = (TextView) findViewById(R.id.txt_ip); + mac = (TextView) findViewById(R.id.txt_mac); adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_multiple_choice, tmp);//register tmp array to adapter delete.setOnClickListener(this); - selectAll.setOnClickListener(this); + deviceInfo.setOnClickListener(this); listview.setAdapter(adapter); + listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { + public void onItemClick(AdapterView parent, View view, int position, long id) { + device_info = listview.getItemAtPosition(position).toString(); + }}); } @Override @@ -58,6 +73,7 @@ public class ListActivity extends AppCompatActivity implements View.OnClickListe command += rmName + " ";//complete command //remove this information on the listview tmp.remove(i); + //deviceIp = checkedItems. } } try { @@ -68,20 +84,24 @@ public class ListActivity extends AppCompatActivity implements View.OnClickListe } catch (Exception e) { Log.d("SLEEP EXCEPTION", "SLEEP EXCEPTION occurs in onClick method of ListActivity"); } - //update adapter.notifyDataSetChanged(); - //delete checked mark in listview listview.clearChoices(); - } else if (v == selectAll) { + } else if (v == deviceInfo) { + String[] devInfo = device_info.split("\\s+"); + ip.setText(devInfo[1]); + mac.setText(devInfo[2]); + Toast t = Toast.makeText(this, device_info, Toast.LENGTH_SHORT); + t.show(); + /*} else if (v == selectAll) { int count; count = adapter.getCount(); for (int i = 0; i < count; i++) { listview.setItemChecked(i, true); - } + }*/ } } } diff --git a/others/lede-gui/src/main/java/com/example/lede2/MainActivity.java b/others/lede-gui/src/main/java/com/example/lede2/MainActivity.java index d4ee5ea..7374bf1 100644 --- a/others/lede-gui/src/main/java/com/example/lede2/MainActivity.java +++ b/others/lede-gui/src/main/java/com/example/lede2/MainActivity.java @@ -13,22 +13,36 @@ import android.widget.Button; import android.widget.TextView; import android.widget.Toast; -import iotinstaller.IoTInstaller; - public class MainActivity extends AppCompatActivity implements View.OnClickListener { Button registerButton; Button listButton; + Button insertDBButton; + Button deleteDBButton; Button configButton; + Button relationButton; TextView ssid; protected static Context context; protected static String DEF_RSSID; protected static String DEF_RPWD; protected static String DEF_ROUTERIP; protected static String DEF_ROUTERUSER; + protected static String DEF_MYSQLHOSTUSER; + protected static String DEF_MYSQLHOSTIP; + protected static String DEF_MYSQLHOSTPASSWORD; protected static String DEF_CHANGE_DEFAULT_SCRIPT; protected static String DEF_CONNECT_DEVICE_SCRIPT; protected static String DEF_REGISTER_DEVICE_SCRIPT; + protected static String DEF_ADD_DEVICE_FILE; + protected static String DEF_ADD_DEVICE_ADDRESS_FILE; + protected static String DEF_ADD_DEVICE_COMM_FILE; + protected static String DEF_ADD_DEVICE_TO_MYSQL; + protected static String DEF_MYSQL_CONFIG_FILE; + protected static String DEF_INSTALL_CMD; + protected static String DEF_DELETE_CMD; + protected static String DEF_INSTALL_ADDRESS_CMD; + protected static String DEF_DELETE_ADDRESS_CMD; + protected static String DEF_INSTALL_RELATION_CMD; @Override protected void onCreate(Bundle savedInstanceState) { @@ -37,12 +51,18 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe registerButton = (Button) findViewById(R.id.register); listButton = (Button) findViewById(R.id.list); + insertDBButton = (Button) findViewById(R.id.insert_db); + deleteDBButton = (Button) findViewById(R.id.delete_db); configButton = (Button) findViewById(R.id.config); - ssid = (TextView)findViewById(R.id.ssid); + relationButton = (Button) findViewById(R.id.add_comm); + ssid = (TextView)findViewById(R.id.device_subtype); registerButton.setOnClickListener(this); listButton.setOnClickListener(this); + insertDBButton.setOnClickListener(this); + deleteDBButton.setOnClickListener(this); configButton.setOnClickListener(this); + relationButton.setOnClickListener(this); context = getApplicationContext(); DEF_RSSID = context.getResources().getString(R.string.default_rssid); @@ -52,6 +72,19 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe DEF_CHANGE_DEFAULT_SCRIPT = context.getResources().getString(R.string.change_default_script); DEF_CONNECT_DEVICE_SCRIPT = context.getResources().getString(R.string.connect_device_script); DEF_REGISTER_DEVICE_SCRIPT = context.getResources().getString(R.string.register_device_script); + DEF_ADD_DEVICE_FILE = context.getResources().getString(R.string.add_device_file); + DEF_ADD_DEVICE_ADDRESS_FILE = context.getResources().getString(R.string.add_device_address_file); + DEF_ADD_DEVICE_COMM_FILE = context.getResources().getString(R.string.add_device_comm_file); + DEF_MYSQLHOSTUSER = context.getResources().getString(R.string.mysql_hostuser); + DEF_MYSQLHOSTIP = context.getResources().getString(R.string.mysql_hostip); + DEF_MYSQLHOSTPASSWORD = context.getResources().getString(R.string.mysql_hostpassword); + DEF_ADD_DEVICE_TO_MYSQL = context.getResources().getString(R.string.add_device_to_mysql); + DEF_MYSQL_CONFIG_FILE = context.getResources().getString(R.string.mysql_config_file); + DEF_INSTALL_CMD = context.getResources().getString(R.string.install_cmd); + DEF_DELETE_CMD = context.getResources().getString(R.string.delete_cmd); + DEF_INSTALL_ADDRESS_CMD = context.getResources().getString(R.string.install_address_cmd); + DEF_DELETE_ADDRESS_CMD = context.getResources().getString(R.string.delete_address_cmd); + DEF_INSTALL_RELATION_CMD = context.getResources().getString(R.string.add_comm_cmd); ssid.setText(DEF_RSSID); } @@ -72,13 +105,21 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe if (v == registerButton) { Log.d("CLICKING", "Clicking on register!"); startActivity(new Intent(this, EnrollDeviceActivity.class)); + //startActivity(new Intent(this, AddDeviceActivity.class)); } else if (v == listButton) { + Log.d("CLICKING", "Clicking on list activity!"); startActivity(new Intent(this, ListActivity.class)); + } else if (v == insertDBButton) { + Log.d("CLICKING", "Clicking on add device!"); + startActivity(new Intent(this, AddDeviceActivity.class)); + } else if (v == deleteDBButton) { + Log.d("CLICKING", "Clicking on delete device!"); + startActivity(new Intent(this, DeleteDeviceActivity.class)); + } else if (v == relationButton) { + Log.d("CLICKING", "Clicking on add communication!"); + startActivity(new Intent(this, AddRelationActivity.class)); } } - //IoTInstaller ioTInstaller = new IoTInstaller(); - //ioTInstaller.helpMessages(); - } boolean isNetworkAvailable() {//check whether wifi connection is or not diff --git a/others/lede-gui/src/main/java/com/example/lede2/MySQLInterface.config b/others/lede-gui/src/main/java/com/example/lede2/MySQLInterface.config deleted file mode 100644 index b809e59..0000000 --- a/others/lede-gui/src/main/java/com/example/lede2/MySQLInterface.config +++ /dev/null @@ -1,7 +0,0 @@ -# MySQLInterface configuration - -#HOST=128.195.204.105 -HOST=localhost -DATABASE=IoTMain -USERNAME=root -PASSWORD=1234 \ No newline at end of file diff --git a/others/lede-gui/src/main/java/com/example/lede2/SSH.java b/others/lede-gui/src/main/java/com/example/lede2/SSH.java index 203ba79..9438053 100644 --- a/others/lede-gui/src/main/java/com/example/lede2/SSH.java +++ b/others/lede-gui/src/main/java/com/example/lede2/SSH.java @@ -34,13 +34,13 @@ import java.util.List; public class SSH extends AsyncTask> { // variables used for connection - Session session; - Channel channel; - ChannelExec ce; + private Session session; + private Channel channel; + private ChannelExec ce; // in this project, we supposed we use fixed host, username, password - String host; - String username; - String password; + private String host; + private String username; + private String password; // host, username, password initialize @Override @@ -57,8 +57,7 @@ public class SSH extends AsyncTask> { https://stackoverflow.com/questions/25789245/how-to-get-jsch-shell-command-output-in-string */ - - // open the conenction using username, password, and hostname + // open the connection using username, password, and hostname public boolean open() throws JSchException { JSch jSch = new JSch(); @@ -148,9 +147,9 @@ public class SSH extends AsyncTask> { cmd = MainActivity.DEF_CHANGE_DEFAULT_SCRIPT + " " + params[0]; } else if(params[0].substring(0,3).equals("-co")) { // ./connect_device.sh -co cmd = MainActivity.DEF_CONNECT_DEVICE_SCRIPT + " " + params[0]; - } else if(params[0].substring(0,3).equals("-dn")) { // ./register_device.sh -dn + } else if(params[0].substring(0,3).equals("-dn")) { // ./register_device.sh -dn cmd = MainActivity.DEF_REGISTER_DEVICE_SCRIPT + " " + params[0]; - } else if(params[0].substring(0,3).equals("-ln")) { // ./register_device.sh -ln + } else if(params[0].substring(0,3).equals("-ln")) { // ./register_device.sh -ln // below block is a little different from others cause it needs to get output from the router try { // try open the connection diff --git a/others/lede-gui/src/main/java/com/example/lede2/SSH_MySQL.java b/others/lede-gui/src/main/java/com/example/lede2/SSH_MySQL.java new file mode 100644 index 0000000..7702fcb --- /dev/null +++ b/others/lede-gui/src/main/java/com/example/lede2/SSH_MySQL.java @@ -0,0 +1,174 @@ +package com.example.lede2; + +/** + * Created by rtrimana on 9/25/17. + */ + +import android.os.AsyncTask; +import android.util.Log; + +import com.jcraft.jsch.Channel; +import com.jcraft.jsch.ChannelExec; +import com.jcraft.jsch.JSch; +import com.jcraft.jsch.JSchException; +import com.jcraft.jsch.Session; + +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import android.content.Context; +import android.util.Log; +import android.os.AsyncTask; + +import com.jcraft.jsch.JSch; +import com.jcraft.jsch.JSchException; +import com.jcraft.jsch.Session; +import com.jcraft.jsch.ChannelExec; +import com.jcraft.jsch.Channel; + +import java.io.IOException; +import java.io.InputStream; +import java.lang.String; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +// AsyncTask input : command line +// AysncTask output : output from a command +public class SSH_MySQL extends AsyncTask> { + + // variables used for connection + private Session session; + private Channel channel; + private ChannelExec ce; + // in this project, we supposed we use fixed host, username, password + private String host; + private String username; + private String password; + + // host, username, password initialize + @Override + protected void onPreExecute() { + super.onPreExecute(); + + host = ConfigActivity.MYSQLHOSTIP; + username = ConfigActivity.MYSQLHOSTUSER; + password = ConfigActivity.MYSQLHOSTPASSWORD; + } + + /* + The functions below are mainly from : + https://stackoverflow.com/questions/25789245/how-to-get-jsch-shell-command-output-in-string + */ + + // open the connection using username, password, and hostname + public boolean open() throws JSchException { + + JSch jSch = new JSch(); + + session = jSch.getSession(username, host, 22); + java.util.Properties config = new java.util.Properties(); + config.put("StrictHostKeyChecking", "no"); // not recommended + session.setPassword(password); + session.setConfig(config); + + + Log.d("SSH CONNECT OPEN", "Connecting SSH to " + host + " - Please wait for few seconds... "); + session.connect(); + if (session.isConnected()) { + Log.d("SSH CONNECT", "router connected!"); + return true; + } else { + Log.d("SSH NOT CONNECT", "router NOT connected!"); + return false; + } + } + + // send a command + public void runCommand(String command) throws JSchException, IOException { + + if (!session.isConnected()) + throw new RuntimeException("Not connected to an open session. Call open() first!"); + + channel = session.openChannel("exec"); + ce = (ChannelExec) channel; + ce.setCommand(command); + ce.connect(); + Log.d("SSH RUN COMMAND", command); + } + + // get output from a command + private List getChannelOutput(Channel channel) throws IOException { + + byte[] buffer = new byte[1024]; + List output_lines = new ArrayList(); + try { + InputStream in = channel.getInputStream(); + String line = new String(); + while (true) { + while (in.available() > 0) { + int i = in.read(buffer, 0, 1024); + if (i < 0) { + break; + } + line = new String(buffer, 0, i); + // add the read line to the return value list. + output_lines = new ArrayList(Arrays.asList(line.split("\\n"))); + } + + if(line.contains("logout")) { + break; + } + if (channel.isClosed()) { + break; + } + try { + Thread.sleep(1000); + } catch (Exception ee){} + } + } catch(Exception e) { + Log.d("SSH READOUTPUT ERROR", "Error while reading channel output: "+ e); + } + + return output_lines; + } + + + /* + usage : execute commands through SSH for database MySQL + */ + @Override + protected List doInBackground(String... params) { + + String cmd; + // Get into the path and create the config file + cmd = "cd " + MainActivity.DEF_ADD_DEVICE_TO_MYSQL + ";"; + cmd = cmd + params[0]; + + // now the command is set, so send it. + try { + // try open the connection + if (!open()) { + Log.d("SSH CONNECTION CLOSE", "open failed."); + return null; + } + runCommand(cmd); + ce.setCommand(cmd); + ce.connect(); + } catch (Exception e) { + } // done + + channel.disconnect(); + return null; + } + + /* + @Override + protected onPostExecute(Void param) { + Log.d("POST", "in post execute"); + } + */ +} diff --git a/others/lede-gui/src/main/res/layout/activity_add_device.xml b/others/lede-gui/src/main/res/layout/activity_add_device.xml new file mode 100644 index 0000000..836322a --- /dev/null +++ b/others/lede-gui/src/main/res/layout/activity_add_device.xml @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + +