]> rtime.felk.cvut.cz Git - orte.git/blobdiff - orte/contrib/shape_android/src/org/ocera/orte/shape_android/PublisherActivity.java
Merge branch 'shape_android_features' of https://github.com/Vajnar/orte
[orte.git] / orte / contrib / shape_android / src / org / ocera / orte / shape_android / PublisherActivity.java
index 155de07ad953d06030bd8fa0555ed82fd6ab512d..8a13a3904faa08e90df40ecf27feba7df9ebc40b 100644 (file)
@@ -34,6 +34,8 @@ import android.net.wifi.WifiManager;
 import android.net.wifi.WifiManager.WifiLock;
 import android.os.Bundle;
 import android.os.Handler;
+import android.os.PowerManager;
+import android.os.PowerManager.WakeLock;
 import android.preference.PreferenceManager;
 import android.view.Menu;
 import android.view.MenuItem;
@@ -59,6 +61,9 @@ public class PublisherActivity extends Activity {
        public static int SHAPE_WIDTH = 0;
        public static int SHAPE_HEIGHT = 0;
        
+       private PowerManager powerManager;
+       private WakeLock wakeLock;
+       
        private WifiManager wifiManager;
        private WifiLock wifiLock;
        
@@ -99,13 +104,16 @@ public class PublisherActivity extends Activity {
                SHAPE_HEIGHT = (int) (this.getWindowManager().getDefaultDisplay().getHeight() * 45 / BoxType.DESTINATION_HEIGHT);
                
                // From Robot_Demo project.
-               wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
+               wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
                wifiLock = (WifiLock) wifiManager.createWifiLock((
                                        (android.os.Build.VERSION.SDK_INT >= 12)
                                        ? WifiManager.WIFI_MODE_FULL_HIGH_PERF
                                        : WifiManager.WIFI_MODE_FULL
                                ), getClass().getName());
-
+               
+               powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
+               wakeLock = (WakeLock) powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, getClass().getName() + " Dim");
+               
                sp = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
                
                // Start ORTE.
@@ -127,7 +135,7 @@ public class PublisherActivity extends Activity {
        }
 
        /**
-        * When pause activity, release WiFi lock.
+        * When pause activity, release WiFi lock and Wake lock.
         * 
         * @since 1.0
         */
@@ -137,10 +145,11 @@ public class PublisherActivity extends Activity {
                super.onPause();
                
                wifiLock.release();
+               wakeLock.release();
        }
        
        /**
-        * When resume activity, acquire WiFi lock.
+        * When resume activity, acquire WiFi lock and Wake lock.
         * 
         * @since 1.0
         */
@@ -150,6 +159,7 @@ public class PublisherActivity extends Activity {
                super.onResume();
                
                wifiLock.acquire();
+               wakeLock.acquire();
        }
        
        /**
@@ -161,7 +171,15 @@ public class PublisherActivity extends Activity {
        public void onDestroy()
        {
                super.onDestroy();
-               
+
+               handler.removeCallbacks(redraw);
+
+               for (PublisherShape shape : publisherView.shapes)
+                       shape.killMe();
+
+               for (SubscriberElement element : subscriberView.elements)
+                       element.killMe();
+
                if (appDomain != null) {
                        appDomain.destroy();
                        appDomain = null;
@@ -194,7 +212,7 @@ public class PublisherActivity extends Activity {
                        e.setScale(this.getWindowManager().getDefaultDisplay().getWidth(), this.getWindowManager().getDefaultDisplay().getHeight());
                }
                
-               //TODO  When change rotation in Subscriber view,
+               //TODO When change rotation in Subscriber view,
                //              there is no change in Publisher view, which
                //              leads to misbehavior. For example, there
                //              is Publisher of Black color in Publisher view,
@@ -231,6 +249,7 @@ public class PublisherActivity extends Activity {
                        orteManager = new Manager(sp.getString("prefManagers", ""));
                        
                break;
+           default:
            }
 
     }