1 package com.example.lede2;
3 import android.content.Context;
4 import android.content.Intent;
5 import android.os.Bundle;
6 import android.support.v7.app.AppCompatActivity;
7 import android.util.Log;
8 import android.view.Gravity;
9 import android.view.View;
10 import android.view.inputmethod.InputMethodManager;
11 import android.widget.Button;
12 import android.widget.EditText;
13 import android.widget.TextView;
15 import java.io.IOException;
16 import java.io.InputStream;
20 public class AddDeviceActivity extends AppCompatActivity implements View.OnClickListener,View.OnFocusChangeListener {
23 TextView databaseInfo;
24 TextView databaseAddressInfo;
25 private SSH_MySQL ssh;//Connection object between Android & Host
28 protected void onCreate(Bundle savedInstanceState) {
29 super.onCreate(savedInstanceState);
30 setContentView(R.layout.activity_add_device);
32 doneButton = (Button) findViewById(R.id.doneButton);
33 databaseInfo = (EditText)findViewById(R.id.textInfo);
34 databaseAddressInfo = (EditText)findViewById(R.id.textInfoAddress);
36 doneButton.setOnClickListener(this);
37 databaseInfo.setOnFocusChangeListener(this);
38 databaseAddressInfo.setOnFocusChangeListener(this);
39 ssh = new SSH_MySQL();
40 // Set config text from file for device
42 InputStream is = getAssets().open(MainActivity.DEF_ADD_DEVICE_FILE);
43 int size = is.available();
44 byte[] buffer = new byte[size];
47 String text = new String(buffer);
48 databaseInfo.setGravity(Gravity.LEFT);
49 databaseInfo.setText(text);
50 Log.d("LOADINGFILE", "Add device info file is already loaded!");
51 } catch (IOException ex) {
52 Log.d("LOADINGFILE", "Add device info file is NOT loaded!");
55 // Set config text from file for device address
57 InputStream is = getAssets().open(MainActivity.DEF_ADD_DEVICE_ADDRESS_FILE);
58 int size = is.available();
59 byte[] buffer = new byte[size];
62 String text = new String(buffer);
63 databaseAddressInfo.setGravity(Gravity.LEFT);
64 databaseAddressInfo.setText(text);
65 Log.d("LOADINGFILE", "Add device address info file is already loaded!");
66 } catch (IOException ex) {
67 Log.d("LOADINGFILE", "Add device address info file is NOT loaded!");
74 public void onClick(View v) {
76 // 1) Create a new file and insert the configuration
77 // 2) Run iotinstaller code for device installation
78 // 3) Remove the existing config file
79 // 4) Repeat 1, 2, and 3 for device address
80 ssh.execute("echo \"" + databaseInfo.getText().toString() + "\" >> " +
81 MainActivity.DEF_MYSQL_CONFIG_FILE + ";" +
82 MainActivity.DEF_INSTALL_CMD + " " + MainActivity.DEF_MYSQL_CONFIG_FILE + ";" +
83 "rm -rf " + MainActivity.DEF_MYSQL_CONFIG_FILE + ";" +
84 // repeat process for device address
85 "echo \"" + databaseAddressInfo.getText().toString() + "\" >> " +
86 MainActivity.DEF_MYSQL_CONFIG_FILE + ";" +
87 MainActivity.DEF_INSTALL_ADDRESS_CMD + " " + MainActivity.DEF_MYSQL_CONFIG_FILE + ";" +
88 "rm -rf " + MainActivity.DEF_MYSQL_CONFIG_FILE);
94 public void onFocusChange(View view, boolean hasFocus) {
95 InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
97 imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
99 imm.hideSoftInputFromWindow(view.getWindowToken(), 0);