]> hydra-www.ietfng.org Git - acmetensortoys-watchviz/commitdiff
Fix lifecycle management
authorNathaniel Wesley Filardo <nwf@cs.jhu.edu>
Wed, 8 Jun 2016 18:34:19 +0000 (14:34 -0400)
committerNathaniel Wesley Filardo <nwf@cs.jhu.edu>
Thu, 9 Jun 2016 04:02:38 +0000 (00:02 -0400)
Apparently onPause/onResume are less useful to us than I thought.

app/src/main/java/com/acmetensortoys/watchviz/MainActivity.java

index 25d77f5c22c2910dfd8046c729d2582c770c96a9..9c8a35ce7cd39157bffb0a981d3f9ad1d95e4acb 100644 (file)
@@ -285,29 +285,29 @@ public class MainActivity extends WearableActivity
     public void onStart() {
         Log.d("onStart", "top");
         super.onStart();
+
+        // Ask once at startup
+        if(checkSelfPermission(Manifest.permission.RECORD_AUDIO)
+                != PackageManager.PERMISSION_GRANTED) {
+            requestPermissions(new String[]{Manifest.permission.RECORD_AUDIO}, 1);
+        } else {
+            createSurface();
+        }
     }
 
     @Override
     public void onResume() {
         Log.d("onResume", "top");
         super.onResume();
-
-        if(checkSelfPermission(Manifest.permission.RECORD_AUDIO)
-                == PackageManager.PERMISSION_GRANTED) {
-            createSurface();
-        } else {
-            requestPermissions(new String[]{Manifest.permission.RECORD_AUDIO}, 1);
-        }
     }
 
     @Override
     public void onRequestPermissionsResult(int rq, @NonNull String[] ps, @NonNull int[] rs) {
         if(rq == 1) {
-            if (rs[0] == 1) {
+            if (rs[0] == PackageManager.PERMISSION_GRANTED) {
                 createSurface();
             } else {
-                //TODO: Something else
-                throw new RuntimeException("asdf");
+                mDebugView.setText("No audio");
             }
         }
     }
@@ -349,13 +349,13 @@ public class MainActivity extends WearableActivity
     @Override
     public void onPause() {
         Log.d("onPause", "top");
-        removeSurface();
         super.onPause();
     }
 
     @Override
     public void onStop() {
         Log.d("onStop", "top");
+        removeSurface();
         super.onStop();
     }