1 package com.example.lede2;
\r
3 import android.app.ProgressDialog;
\r
4 import android.content.Context;
\r
5 import android.content.Intent;
\r
6 import android.net.ConnectivityManager;
\r
7 import android.net.NetworkInfo;
\r
8 import android.net.wifi.WifiManager;
\r
9 import android.support.v7.app.AppCompatActivity;
\r
10 import android.os.Bundle;
\r
11 import android.util.Log;
\r
12 import android.view.View;
\r
13 import android.widget.Button;
\r
14 import android.widget.TextView;
\r
15 import android.widget.Toast;
\r
17 public class MainActivity extends AppCompatActivity implements View.OnClickListener {
\r
19 Button databaseButton;
\r
20 Button registerButton;
\r
22 Button applicationsButton;
\r
23 Button configButton;
\r
24 Button driversButton;
\r
26 DatabaseObject databaseObject;
\r
27 ProgressDialog dialog;
\r
28 protected static Context context;
\r
29 protected static String DEF_RSSID;
\r
30 protected static String DEF_RPWD;
\r
31 protected static String DEF_ROUTERIP;
\r
32 protected static String DEF_ROUTERUSER;
\r
33 protected static String DEF_MYSQLHOSTUSER;
\r
34 protected static String DEF_MYSQLHOSTIP;
\r
35 protected static String DEF_MYSQLHOSTPASSWORD;
\r
36 protected static String DEF_CHANGE_DEFAULT_SCRIPT;
\r
37 protected static String DEF_CONNECT_DEVICE_SCRIPT;
\r
38 protected static String DEF_REGISTER_DEVICE_SCRIPT;
\r
40 protected static String DEF_INSTALL_DEVICE_FILE;
\r
41 protected static String DEF_INSTALL_DEVICE_ADDRESS_FILE;
\r
42 protected static String DEF_INSTALL_DEVICE_COMM_FILE;
\r
43 protected static String DEF_INSTALL_ADDRESS_FILE;
\r
44 protected static String DEF_INSTALL_TWO_DEVICES_AND_COMM_FILE;
\r
45 protected static String DEF_INSTALL_ZIGBEE_DEVICE_ADDRESS_FILE;
\r
46 protected static String DEF_INSTALL_HOST_FILE;
\r
47 protected static String DEF_DELETE_ENTITY_FILE;
\r
48 protected static String DEF_DELETE_COMM_PATTERN_FILE;
\r
49 protected static String DEF_DELETE_ADDRESS_FILE;
\r
50 protected static String DEF_DELETE_DEVICE_ADDRESS_FILE;
\r
51 protected static String DEF_DELETE_ZIGBEE_DEVICE_ADDRESS_FILE;
\r
52 protected static String DEF_DELETE_HOST_FILE;
\r
55 protected static String DEF_ADD_DEVICE_TO_MYSQL;
\r
56 protected static String DEF_MYSQL_CONFIG_FILE;
\r
57 protected static String DEF_INSTALL_CMD;
\r
58 protected static String DEF_DELETE_CMD;
\r
59 protected static String DEF_INSTALL_ADDRESS_CMD;
\r
60 protected static String DEF_INSTALL_ZBADDRESS_CMD;
\r
61 protected static String DEF_DELETE_ADDRESS_CMD;
\r
62 protected static String DEF_INSTALL_RELATION_CMD;
\r
63 protected static String DEF_DELETE_RELATION_CMD;
\r
64 protected static String DEF_DATABASE_NAME;
\r
68 protected void onCreate(Bundle savedInstanceState) {
\r
69 super.onCreate(savedInstanceState);
\r
70 setContentView(R.layout.activity_main);
\r
71 registerButton = (Button) findViewById(R.id.register);
\r
72 listButton = (Button) findViewById(R.id.list);
\r
73 databaseButton = (Button) findViewById(R.id.database);
\r
74 applicationsButton = (Button) findViewById(R.id.applications);
\r
75 configButton = (Button) findViewById(R.id.config);
\r
76 driversButton = (Button) findViewById(R.id.drivers);
\r
77 ssid = (TextView)findViewById(R.id.device_subtype);
\r
80 registerButton.setOnClickListener(this);
\r
81 listButton.setOnClickListener(this);
\r
82 databaseButton.setOnClickListener(this);
\r
83 applicationsButton.setOnClickListener(this);
\r
84 configButton.setOnClickListener(this);
\r
85 driversButton.setOnClickListener(this);
\r
87 context = getApplicationContext();
\r
88 DEF_RSSID = context.getResources().getString(R.string.default_rssid);
\r
89 DEF_RPWD = context.getResources().getString(R.string.default_rpwd);
\r
90 DEF_ROUTERIP = context.getResources().getString(R.string.default_routerip);
\r
91 DEF_ROUTERUSER = context.getResources().getString(R.string.default_routeruser);
\r
92 DEF_CHANGE_DEFAULT_SCRIPT = context.getResources()
\r
93 .getString(R.string.change_default_script);
\r
94 DEF_CONNECT_DEVICE_SCRIPT = context.getResources()
\r
95 .getString(R.string.connect_device_script);
\r
96 DEF_REGISTER_DEVICE_SCRIPT = context.getResources()
\r
97 .getString(R.string.register_device_script);
\r
98 DEF_INSTALL_DEVICE_FILE = context.getResources().getString(R.string.install_device_file);
\r
99 DEF_INSTALL_DEVICE_ADDRESS_FILE = context.getResources().getString
\r
100 (R.string.install_device_address_file);
\r
101 DEF_INSTALL_TWO_DEVICES_AND_COMM_FILE = context.getResources()
\r
102 .getString(R.string.install_two_devices_and_comm_file);
\r
103 DEF_INSTALL_ADDRESS_FILE = context.getResources().getString(R.string.install_address_file);
\r
104 DEF_INSTALL_DEVICE_COMM_FILE = context.getResources().getString(R.string.install_device_comm_file);
\r
105 DEF_INSTALL_ZIGBEE_DEVICE_ADDRESS_FILE = context.getResources()
\r
106 .getString(R.string.install_zigbee_device_address_file);
\r
107 DEF_INSTALL_HOST_FILE = context.getResources().getString(R.string.install_host_file);
\r
108 DEF_DELETE_ENTITY_FILE = context.getResources().getString(R.string.delete_entity_file);
\r
109 DEF_DELETE_COMM_PATTERN_FILE = context.getResources()
\r
110 .getString(R.string.delete_comm_pattern_file);
\r
111 DEF_DELETE_ADDRESS_FILE = context.getResources().getString(R.string.delete_address_file);
\r
112 DEF_DELETE_DEVICE_ADDRESS_FILE = context.getResources()
\r
113 .getString(R.string.delete_device_address_file);
\r
114 DEF_DELETE_ZIGBEE_DEVICE_ADDRESS_FILE = context.getResources()
\r
115 .getString(R.string.delete_zigbee_device_address_file);
\r
116 DEF_DELETE_HOST_FILE = context.getResources().getString(R.string.delete_host);
\r
118 DEF_MYSQLHOSTUSER = context.getResources().getString(R.string.mysql_hostuser);
\r
119 DEF_MYSQLHOSTIP = context.getResources().getString(R.string.mysql_hostip);
\r
120 DEF_MYSQLHOSTPASSWORD = context.getResources().getString(R.string.mysql_hostpassword);
\r
121 DEF_ADD_DEVICE_TO_MYSQL = context.getResources().getString(R.string.add_device_to_mysql);
\r
124 DEF_MYSQL_CONFIG_FILE = context.getResources().getString(R.string.mysql_config_file);
\r
125 DEF_INSTALL_CMD = context.getResources().getString(R.string.install_cmd);
\r
126 DEF_DELETE_CMD = context.getResources().getString(R.string.delete_cmd);
\r
127 DEF_INSTALL_ADDRESS_CMD = context.getResources().getString(R.string.install_address_cmd);
\r
128 DEF_INSTALL_ZBADDRESS_CMD = context.getResources().getString(R.string.install_zb_address_cmd);
\r
129 DEF_DELETE_ADDRESS_CMD = context.getResources().getString(R.string.delete_address_cmd);
\r
130 DEF_INSTALL_RELATION_CMD = context.getResources().getString(R.string.add_comm_cmd);
\r
131 DEF_DELETE_RELATION_CMD = context.getResources().getString(R.string.delete_comm_cmd);
\r
133 DEF_DATABASE_NAME = context.getResources().getString(R.string.database_name);
\r
135 ssid.setText(DEF_RSSID);
\r
136 databaseObject = new DatabaseObject();
\r
137 //Check if the user has wifi connection
\r
138 if (isNetworkAvailable() == false) {//without wifi connection
\r
139 Toast t = Toast.makeText(this, R.string.connect, Toast.LENGTH_SHORT);
\r
141 Intent intent = new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK);
\r
142 intent.putExtra("only_access_points", true);
\r
143 intent.putExtra("extra_prefs_show_button_bar", true);
\r
144 intent.putExtra("wifi_enable_next_on_connect", true);
\r
145 startActivityForResult(intent,1);
\r
147 //sends to another page to update/retrieve information about the database from the pi
\r
148 startActivity(new Intent(this, UpdateLocalConfigFiles.class));
\r
152 public void onClick(View v) {
\r
154 if(v == configButton){
\r
155 startActivityForResult(new Intent(this,ConfigActivity.class),1000);
\r
157 //Users try to execute shell scripts by pushing button,
\r
158 //but problem could occur(application stop) if user push the button without wifi connection
\r
159 //As a result, below function have to be implemented.
\r
160 if (isNetworkAvailable() == false) {//without wifi connection
\r
161 Toast t = Toast.makeText(this, R.string.connect, Toast.LENGTH_SHORT);
\r
163 Intent intent = new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK);
\r
164 intent.putExtra("only_access_points", true);
\r
165 intent.putExtra("extra_prefs_show_button_bar", true);
\r
166 intent.putExtra("wifi_enable_next_on_connect", true);
\r
167 startActivityForResult(intent,1);
\r
168 System.out.println("STOPPPPP");
\r
169 //startActivity(new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK)); // Not as good as the lines above
\r
170 } else {//with wifi connection
\r
172 dialog = new ProgressDialog(this);
\r
173 dialog.setMessage("Please Wait");
\r
174 dialog.setCancelable(false);
\r
175 dialog.setInverseBackgroundForced(false);
\r
178 if (v == registerButton) {
\r
179 Log.d("CLICKING", "Clicking on register!");
\r
180 startActivity(new Intent(this, RegistrationRouterCheck.class));
\r
182 //startActivity(new Intent(this, AddDeviceActivity.class));
\r
183 } else if (v == listButton) {
\r
184 Log.d("CLICKING", "Clicking on list activity!");
\r
185 startActivity(new Intent(this, ListActivity.class));
\r
187 } else if (v == databaseButton) {
\r
188 //Need to change. Not every install option needs its own page.
\r
189 Log.d("CLICKING", "Clicking on add device!");
\r
190 startActivity(new Intent(this, DatabaseActivity.class));
\r
192 } else if (v == applicationsButton) {
\r
193 Log.d("CLICKING", "Clicking on delete device!");
\r
194 startActivity(new Intent(this, ApplicationsList.class));
\r
196 } else if (v == driversButton) {
\r
197 Log.d("CLICKING", "Clicking on add communication!");
\r
198 startActivity(new Intent(this, DriversSelectActivity.class));
\r
204 protected void onResume() {
\r
206 if(dialog != null && dialog.isShowing()){
\r
211 boolean isNetworkAvailable() {//check whether wifi connection is or not
\r
212 Context context = getApplicationContext();
\r
213 ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
\r
214 NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
\r
215 boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();
\r
216 return isConnected;
\r
220 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
\r
221 super.onActivityResult(requestCode, resultCode, data);
\r
223 if(requestCode == 1000){
\r
224 ssid.setText(ConfigActivity.RSSID);
\r