--- /dev/null
+package com.example.lede2;\r
+\r
+ import android.app.ProgressDialog;\r
+ import android.content.Context;\r
+ import android.os.Bundle;\r
+ import android.support.v7.app.AppCompatActivity;\r
+ import android.util.Log;\r
+ import android.view.WindowManager;\r
+ import android.widget.Spinner;\r
+\r
+ import java.io.File;\r
+ import java.util.ArrayList;\r
+ import java.util.List;\r
+\r
+/**\r
+ * Created by Brian on 2/23/2018.\r
+ */\r
+\r
+public class UpdateLocalConfigFiles extends AppCompatActivity {\r
+ private SSH_MySQL ssh_mySQL1;//Connection object between Android & Host\r
+ private SSH_MySQL ssh_mySQL2;\r
+ private SSH_MySQL ssh_mySQL3;\r
+ private SSH sshDevDat;\r
+ private SSH routerSSH;\r
+ String filename;\r
+ List<String> temp;//data structure which has IoT device information already registered on LEDE2\r
+ String filename_device;\r
+\r
+\r
+ protected void onCreate(Bundle savedInstanceState) {\r
+ super.onCreate(savedInstanceState);\r
+ setContentView(R.layout.update);\r
+ getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);\r
+ // 1)updates config files on the pi\r
+ // 2)cats the structure of the database\r
+ // 3)cats instances of devices on the database\r
+ String command1 = this.getString(R.string.update_DBInformation_File);\r
+ String command2 = this.getString(R.string.cat_device_types);\r
+ String command3 = this.getString(R.string.cat_subtypes);\r
+ String commandRouter = "cat /tmp/dhcp.leases";\r
+ filename = this.getString(R.string.device_param_config_filename);\r
+ filename_device = "initial_DHCP.txt";\r
+ ssh_mySQL1 = new SSH_MySQL();\r
+ ssh_mySQL2 = new SSH_MySQL();\r
+ ssh_mySQL3 = new SSH_MySQL();\r
+ routerSSH = new SSH();\r
+ sshDevDat = new SSH();\r
+\r
+ List<String> results = new ArrayList<>();\r
+\r
+\r
+ try{\r
+ //executes command and wait till result lines are no longer empty.\r
+ //result lines are the lines that the pi outputs after running the command\r
+ ssh_mySQL1.execute(command1);\r
+ Thread.sleep(1000);//To execute asyntask in ssh object, we have to sleep main thread\r
+ results = ssh_mySQL1.getResultLines();\r
+ while(results.size() == 0){\r
+ Thread.sleep(500);\r
+ results = ssh_mySQL1.getResultLines();\r
+ System.out.println(results);\r
+ }\r
+ }catch (Exception e){\r
+ e.printStackTrace();\r
+ Log.d("Sleep exception", "exception at SSH3");\r
+ }\r
+ try {\r
+\r
+ ssh_mySQL2.execute(command2);\r
+ Thread.sleep(1000);//To execute asyntask in ssh object, we have to sleep main thread\r
+ results = ssh_mySQL2.getResultLines();\r
+ while(results.size() == 0){\r
+ Thread.sleep(500);\r
+ results = ssh_mySQL2.getResultLines();\r
+\r
+ }\r
+ addSSHResultsToConfig(results, filename);\r
+ System.out.println(results);\r
+\r
+\r
+ } catch (Exception e) {\r
+ Log.d("Sleep exception", "exception at oncreate of update SSH2");\r
+ }\r
+\r
+\r
+ try {\r
+ ssh_mySQL3.execute(command3);\r
+ Thread.sleep(1000);\r
+ results = ssh_mySQL3.getResultLines();\r
+ while(results.size() == 0){\r
+ Thread.sleep(500);\r
+ results = ssh_mySQL3.getResultLines();\r
+ }\r
+\r
+ filename = this.getString(R.string.device_id_config_filename);\r
+ addSSHResultsToConfig(results, filename);\r
+ }\r
+ catch (Exception e){\r
+ e.printStackTrace();\r
+ Log.d("Sleep exception", "exception at SSH3");\r
+\r
+ }\r
+\r
+ try{\r
+ sshDevDat.execute("-ln");\r
+ Thread.sleep(1000);\r
+ results = sshDevDat.getResultLines();\r
+ while(results.size() == 0){\r
+ Thread.sleep(500);\r
+ results = sshDevDat.getResultLines();\r
+ System.out.println(results);\r
+ }\r
+ addSSHResultsToConfig(results,this.getString(R.string.devices_dat_filename));\r
+ }\r
+ catch (Exception e){\r
+ e.printStackTrace();\r
+ Log.d("cat device dat", "exception at cat device.dat");\r
+ }\r
+ finish();\r
+\r
+ }\r
+ //writes ssh result into a local config\r
+ private void addSSHResultsToConfig(List<String> results, String filename) {\r
+ File dir = getFilesDir();\r
+ File file = new File(dir, filename);\r
+ file.delete();\r
+ for (int i = 0; i < results.size(); i++) {\r
+ ConfigFileIO.writeToFile(filename, results.get(i), this);\r
+ }\r
+ finish();\r
+ }\r
+\r
+\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r