1 package com.example.ali.control;
3 import android.graphics.Color;
4 import android.os.Bundle;
5 import android.support.v7.app.AppCompatActivity;
6 import android.support.v7.widget.Toolbar;
7 import android.os.StrictMode;
9 import android.util.Log;
10 import android.view.View;
11 import android.widget.Button;
12 import android.widget.TextView;
15 import java.util.concurrent.*;
16 import android.os.Handler;
19 * This is a simple alarm controller for Android phone based on the code from Ali Younis
20 * @author Rahmadi Trimananda <rtrimana@uci.edu>
23 public class MainActivity extends AppCompatActivity implements View.OnClickListener {
29 Semaphore mutex = new Semaphore(1);
31 boolean alarmOn = false;
33 private Handler handler = new Handler();
34 private static final String CLOUD_SERVER = "http://dc-6.calit2.uci.edu/test.iotcloud/";
35 private static final String PASSWORD = "reallysecret";
36 private static final int LOCAL_MACHINE_ID = 400;
37 private static final int LISTENING_PORT = -1;
39 private Runnable runnable = new Runnable() {
43 String strAlarm = "alarm";
44 IoTString iotAlarm = new IoTString(strAlarm);
46 // Insert custom code here
48 Log.e("Ali:::::", "loop............");
50 //t1 = new Table(CLOUD_SERVER, PASSWORD, LOCAL_MACHINE_ID, LISTENING_PORT, MainActivity.this);
53 IoTString testValStatus = t1.getCommitted(iotAlarm);
57 if(testValStatus != null) {
58 String strStatus = testValStatus.toString();
59 intStatus = Integer.parseInt(strStatus);
63 alarmStatus.setText("OFF");
64 alarmStatus.setTextColor(Color.BLUE);
65 //alarmSwitch.setChecked(false);
67 Log.d("RAHMADI::::", "Set text to OFF and BLUE with alarm value: " + testValStatus);
70 alarmStatus.setText("ON");
71 alarmStatus.setTextColor(Color.RED);
72 //alarmSwitch.setChecked(true);
74 Log.d("RAHMADI::::", "Set text to ON and RED with alarm value: " + testValStatus);
78 } catch (Exception e) {
79 StringWriter sw = new StringWriter();
80 PrintWriter pw = new PrintWriter(sw);
81 e.printStackTrace(pw);
82 Log.e("ALI::::", sw.toString());
86 // Repeat every 2 seconds
87 handler.postDelayed(runnable, 1000);
93 protected void onCreate(Bundle savedInstanceState) {
95 StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
96 StrictMode.setThreadPolicy(policy);
98 super.onCreate(savedInstanceState);
99 setContentView(R.layout.activity_main);
100 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
101 setSupportActionBar(toolbar);
104 Log.e("Ali::::", "Here1");
105 t1 = new Table(CLOUD_SERVER, PASSWORD, LOCAL_MACHINE_ID, LISTENING_PORT, MainActivity.this);
106 Log.e("Ali::::", "Here2");
107 t1.rebuild(); // update
108 Log.e("Ali::::", "Here3");
110 } catch (Exception e) {
112 StringWriter sw = new StringWriter();
113 PrintWriter pw = new PrintWriter(sw);
114 e.printStackTrace(pw);
115 Log.e("ALI::::", sw.toString());
119 alarmStatus = (TextView) findViewById(R.id.alarmStatus);
120 alarmStatus.setText("OFF");
121 alarmStatus.setTextColor(Color.BLUE);
122 alarmButton = (Button) findViewById(R.id.alarmButton);
123 alarmButton.setOnClickListener(this);
125 handler.post(runnable);
128 public void onClick(View v) {
130 if (v == alarmButton) {
131 String strAlarm = "alarm";
132 IoTString iotAlarm = new IoTString(strAlarm);
133 String strStatusOn = "1";
134 IoTString iotStatusOn = new IoTString(strStatusOn);
135 String strStatusOff = "0";
136 IoTString iotStatusOff = new IoTString(strStatusOff);
138 Log.d("RAHMADI:::::", "Button pressed!");
146 t1.startTransaction();
147 t1.addKV(iotAlarm, iotStatusOn);
148 t1.commitTransaction();
150 alarmButton.setText("ON");
151 } catch (Exception e) {
152 StringWriter sw = new StringWriter();
153 PrintWriter pw = new PrintWriter(sw);
154 e.printStackTrace(pw);
155 Log.e("ALI::::", sw.toString());
162 t1.startTransaction();
163 t1.addKV(iotAlarm, iotStatusOff);
164 t1.commitTransaction();
166 alarmButton.setText("OFF");
167 } catch (Exception e) {
168 StringWriter sw = new StringWriter();
169 PrintWriter pw = new PrintWriter(sw);
170 e.printStackTrace(pw);
171 Log.e("ALI::::", sw.toString());
176 } catch (Exception e) {
177 StringWriter sw = new StringWriter();
178 PrintWriter pw = new PrintWriter(sw);
179 e.printStackTrace(pw);
180 Log.e("ALI::::", sw.toString());