Cleaned up JNI wrapper, android light sensor resource example, notification mechanism...
[platform/upstream/iotivity.git] / service / resource-container / examples / android / ContainerSampleApp / app / src / main / java / org / iotivity / service / sample / container / OicLightActivity.java
1 package org.iotivity.service.sample.container;\r
2 \r
3 import android.app.Activity;\r
4 import android.content.Context;\r
5 import android.graphics.Color;\r
6 import android.os.Bundle;\r
7 import android.os.PowerManager;\r
8 import android.os.PowerManager.WakeLock;\r
9 import android.util.Log;\r
10 import android.view.KeyEvent;\r
11 import android.view.SurfaceHolder;\r
12 import android.view.View;\r
13 import android.view.WindowManager;\r
14 \r
15 /*\r
16  * Torch is an LED flashlight.\r
17  */\r
18 public class OicLightActivity extends Activity implements SurfaceHolder.Callback {\r
19 \r
20     private static final String TAG = OicLightActivity.class.getSimpleName();\r
21 \r
22     private static final String WAKE_LOCK_TAG = "TORCH_WAKE_LOCK";\r
23 \r
24     private View button;\r
25     private View lightText;\r
26 \r
27     private WakeLock wakeLock;\r
28     private boolean lightOn = false;\r
29 \r
30     private static OicLightActivity torch;\r
31 \r
32     public OicLightActivity() {\r
33         super();\r
34         torch = this;\r
35     }\r
36 \r
37     public static OicLightActivity getTorch() {\r
38         return torch;\r
39     }\r
40 \r
41     /*\r
42      * Called by the view (see main.xml)\r
43      */\r
44     public void toggleLight(View view) {\r
45         toggleLight();\r
46     }\r
47 \r
48     private void toggleLight() {\r
49         Log.i(OicLightActivity.class.getName(), "Toggle light");\r
50         if (lightOn) {\r
51             turnLightOff();\r
52         } else {\r
53             turnLightOn();\r
54         }\r
55     }\r
56 \r
57     private void turnLightOn() {\r
58         lightOn = true;\r
59         Log.i(OicLightActivity.class.getName(), "Turn light on");\r
60         lightText.setBackgroundColor(Color.WHITE);\r
61     }\r
62 \r
63     private void turnLightOff() {\r
64         lightOn = false;\r
65         Log.i(OicLightActivity.class.getName(), "Turn light off");\r
66         lightText.setBackgroundColor(Color.BLACK);\r
67     }\r
68 \r
69     private void startWakeLock() {\r
70         if (wakeLock == null) {\r
71             Log.d(TAG, "wakeLock is null, getting a new WakeLock");\r
72             PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);\r
73             Log.d(TAG, "PowerManager acquired");\r
74             wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, WAKE_LOCK_TAG);\r
75             Log.d(TAG, "WakeLock set");\r
76         }\r
77         wakeLock.acquire();\r
78         Log.d(TAG, "WakeLock acquired");\r
79     }\r
80 \r
81     private void stopWakeLock() {\r
82         if (wakeLock != null) {\r
83             wakeLock.release();\r
84             Log.d(TAG, "WakeLock released");\r
85         }\r
86     }\r
87 \r
88     /** Called when the activity is first created. */\r
89     @Override\r
90     public void onCreate(Bundle savedInstanceState) {\r
91         super.onCreate(savedInstanceState);\r
92         button.setOnClickListener(new View.OnClickListener() {\r
93             @Override\r
94             public void onClick(View view) {\r
95                 toggleLight();\r
96             }\r
97         });\r
98         disablePhoneSleep();\r
99         Log.i(TAG, "onCreate");\r
100     }\r
101 \r
102     private void disablePhoneSleep() {\r
103         getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);\r
104     }\r
105 \r
106     @Override\r
107     public void onRestart() {\r
108         super.onRestart();\r
109         Log.i(TAG, "onRestart");\r
110     }\r
111 \r
112     @Override\r
113     public void onStart() {\r
114         super.onStart();\r
115         Log.i(TAG, "onStart");\r
116     }\r
117 \r
118     @Override\r
119     public void onResume() {\r
120         super.onResume();\r
121         turnLightOn();\r
122         Log.i(TAG, "onResume");\r
123     }\r
124 \r
125     @Override\r
126     public void onPause() {\r
127         super.onPause();\r
128         turnLightOff();\r
129         Log.i(TAG, "onPause");\r
130     }\r
131 \r
132     @Override\r
133     public void onStop() {\r
134         super.onStop();\r
135         torch = null;\r
136         Log.i(TAG, "onStop");\r
137     }\r
138 \r
139     @Override\r
140     public void onDestroy() {\r
141         super.onDestroy();\r
142         Log.i(TAG, "onDestroy");\r
143     }\r
144 \r
145     @Override\r
146     public boolean onKeyLongPress(int keyCode, KeyEvent event) {\r
147         // When the search button is long pressed, quit\r
148         if (keyCode == KeyEvent.KEYCODE_SEARCH) {\r
149             finish();\r
150             return true;\r
151         }\r
152         return false;\r
153     }\r
154 \r
155     @Override\r
156     public void surfaceChanged(SurfaceHolder holder, int I, int J, int K) {\r
157         Log.d(TAG, "surfaceChanged");\r
158     }\r
159 \r
160     @Override\r
161     public void surfaceCreated(SurfaceHolder holder) {\r
162         Log.d(TAG, "surfaceCreated");\r
163     }\r
164 \r
165     @Override\r
166     public void surfaceDestroyed(SurfaceHolder holder) {\r
167         Log.d(TAG, "surfaceDestroyed");\r
168     }\r
169 }