The final version for lede-gui (the phone app for device registration)
[iot2.git] / others / lede-gui / src / main / java / com / example / lede2 / RelationActivity.java
1 package com.example.lede2;\r
2 \r
3 import android.content.Context;\r
4 import android.os.Bundle;\r
5 import android.support.v7.app.AppCompatActivity;\r
6 import android.util.Log;\r
7 import android.view.Gravity;\r
8 import android.view.View;\r
9 import android.view.inputmethod.InputMethodManager;\r
10 import android.widget.Button;\r
11 import android.widget.EditText;\r
12 \r
13 import java.io.IOException;\r
14 import java.io.InputStream;\r
15 \r
16 public class RelationActivity extends AppCompatActivity implements View.OnClickListener,View.OnFocusChangeListener {\r
17 \r
18     Button addButton;\r
19     Button deleteButton;\r
20     EditText databaseInfo;\r
21     EditText idSource;\r
22     EditText idDestination;\r
23     private SSH_MySQL ssh;//Connection object between Android & Host\r
24 \r
25     @Override\r
26     protected void onCreate(Bundle savedInstanceState) {\r
27         super.onCreate(savedInstanceState);\r
28         setContentView(R.layout.activity_relation);\r
29 \r
30         addButton = (Button) findViewById(R.id.addButton);\r
31         deleteButton = (Button) findViewById(R.id.delButton);\r
32         databaseInfo = (EditText)findViewById(R.id.textInfoComm);\r
33         idSource = (EditText)findViewById(R.id.id_source);\r
34         idDestination = (EditText)findViewById(R.id.id_destination);\r
35 \r
36         addButton.setOnClickListener(this);\r
37         deleteButton.setOnClickListener(this);\r
38         databaseInfo.setOnFocusChangeListener(this);\r
39         idSource.setOnFocusChangeListener(this);\r
40         idDestination.setOnFocusChangeListener(this);\r
41         ssh = new SSH_MySQL();\r
42         // Set config text from file for device\r
43         try {\r
44             InputStream is = getAssets().open(MainActivity.DEF_INSTALL_ADDRESS_FILE);\r
45             int size = is.available();\r
46             byte[] buffer = new byte[size];\r
47             is.read(buffer);\r
48             is.close();\r
49             String text = new String(buffer);\r
50             databaseInfo.setGravity(Gravity.LEFT);\r
51             databaseInfo.setText(text);\r
52             Log.d("LOADINGFILE", "Add comm info file is already loaded!");\r
53         } catch (IOException ex) {\r
54             Log.d("LOADINGFILE", "Add comm info file is NOT loaded!");\r
55             ex.printStackTrace();\r
56         }\r
57     }\r
58 \r
59     @Override\r
60     public void onClick(View v) {\r
61         if(v == addButton){\r
62             // 1) Create a new file and insert the configuration\r
63             // 2) Run iotinstaller code for communication/relation installation\r
64             // 3) Remove the existing config file\r
65             ssh.execute("echo \"" + databaseInfo.getText().toString() + "\" >> " +\r
66                     MainActivity.DEF_MYSQL_CONFIG_FILE + ";" +\r
67                     MainActivity.DEF_INSTALL_RELATION_CMD + " " + MainActivity.DEF_MYSQL_CONFIG_FILE + ";" +\r
68                     "rm -rf " + MainActivity.DEF_MYSQL_CONFIG_FILE);\r
69             finish();\r
70         }\r
71         if(v == deleteButton){\r
72             // Delete a communication/relation entry\r
73             ssh.execute(MainActivity.DEF_DELETE_RELATION_CMD + " " + idSource.getText().toString()\r
74                     + " " + idDestination.getText().toString());\r
75             finish();\r
76         }\r
77     }\r
78 \r
79     @Override\r
80     public void onFocusChange(View view, boolean hasFocus) {\r
81         InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);\r
82         if (hasFocus) {\r
83             imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);\r
84         } else {\r
85             imm.hideSoftInputFromWindow(view.getWindowToken(), 0);\r
86         }\r
87     }\r
88 \r
89 }\r