Add weak leanback compatibility to experimental permissions app
Change-Id: I6d6960029822a68b5c5c156e7d35ba2202028f66
diff --git a/PermissionApp/AndroidManifest.xml b/PermissionApp/AndroidManifest.xml
index 8807e94..9c298df 100644
--- a/PermissionApp/AndroidManifest.xml
+++ b/PermissionApp/AndroidManifest.xml
@@ -19,6 +19,7 @@
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
+ <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
</activity>
diff --git a/PermissionApp/src/foo/bar/permission/PermissionActivity.java b/PermissionApp/src/foo/bar/permission/PermissionActivity.java
index 364fc13..994986f 100644
--- a/PermissionApp/src/foo/bar/permission/PermissionActivity.java
+++ b/PermissionApp/src/foo/bar/permission/PermissionActivity.java
@@ -32,6 +32,11 @@
import android.widget.CursorAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
+import android.widget.Toast;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
/**
* Simple sample of how to use the runtime permissions APIs.
@@ -160,6 +165,11 @@
}
@Override
+ public void onBackPressed() {
+ requestPermissions();
+ }
+
+ @Override
public void onRequestPermissionsResult(int requestCode, String permissions[],
int[] grantResults) {
switch (requestCode) {
@@ -174,6 +184,23 @@
showEvents();
}
} break;
+
+ case PERMISSIONS_REQUEST_ALL_PERMISSIONS: {
+ for (int i = 0; i < permissions.length; i++) {
+ if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
+ switch (permissions[i]) {
+ case Manifest.permission.READ_CALENDAR: {
+ Toast.makeText(this, "Granted Calendar!",
+ Toast.LENGTH_SHORT).show();
+ } break;
+
+ case Manifest.permission.READ_CONTACTS: {
+ showContacts();
+ } break;
+ }
+ }
+ }
+ } break;
}
}
@@ -222,15 +249,18 @@
}
private void requestPermissions() {
+ List<String> permissions = new ArrayList<>();
if (checkSelfPermission(Manifest.permission.READ_CALENDAR)
- != PackageManager.PERMISSION_GRANTED
- || checkSelfPermission(Manifest.permission.READ_CONTACTS)
!= PackageManager.PERMISSION_GRANTED) {
- String[] permissions = new String[]{
- Manifest.permission.READ_CONTACTS,
- Manifest.permission.READ_CALENDAR
- };
- requestPermissions(permissions, PERMISSIONS_REQUEST_ALL_PERMISSIONS);
+ permissions.add(Manifest.permission.READ_CALENDAR);
+ }
+ if (checkSelfPermission(Manifest.permission.READ_CONTACTS)
+ != PackageManager.PERMISSION_GRANTED) {
+ permissions.add(Manifest.permission.READ_CONTACTS);
+ }
+ if (!permissions.isEmpty()) {
+ requestPermissions(permissions.toArray(new String[0]),
+ PERMISSIONS_REQUEST_ALL_PERMISSIONS);
}
}
}