aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSvetoslav <svetoslavganov@google.com>2015-06-02 18:21:38 -0700
committerSvetoslav <svetoslavganov@google.com>2015-06-03 16:57:01 -0700
commit52a06e5a4e493c1028a9620d92bfd1e03a6ee85a (patch)
treefe27e34085dd5db727371131c32d5a56712637db
parent55bbc3c2111d0828ec4224cbe8eff859f4dab138 (diff)
downloadexperimental-52a06e5a4e493c1028a9620d92bfd1e03a6ee85a.tar.gz
Add a permissions sample using the support lib
Change-Id: I13da4d91d2d47d6fe627640649f636d337637a82
-rw-r--r--PermissionApp2/Android.mk4
-rw-r--r--PermissionApp2/AndroidManifest.xml2
-rw-r--r--PermissionApp2/res/drawable/header_background.xml21
-rw-r--r--PermissionApp2/res/layout/permission_activity.xml5
-rw-r--r--PermissionApp2/src/foo/bar/permission2/PermissionActivity.java31
5 files changed, 30 insertions, 33 deletions
diff --git a/PermissionApp2/Android.mk b/PermissionApp2/Android.mk
index 874769d..43fd5ad 100644
--- a/PermissionApp2/Android.mk
+++ b/PermissionApp2/Android.mk
@@ -6,6 +6,10 @@ LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-java-files-under, src)
+LOCAL_SDK_VERSION := 19
+
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4
+
LOCAL_PACKAGE_NAME := Permission2
include $(BUILD_PACKAGE)
diff --git a/PermissionApp2/AndroidManifest.xml b/PermissionApp2/AndroidManifest.xml
index 8de044d..dba9eba 100644
--- a/PermissionApp2/AndroidManifest.xml
+++ b/PermissionApp2/AndroidManifest.xml
@@ -3,7 +3,7 @@
android:versionCode="1"
android:versionName="1.0">
- <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="10000"/>
+ <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="MNC"/>
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
diff --git a/PermissionApp2/res/drawable/header_background.xml b/PermissionApp2/res/drawable/header_background.xml
deleted file mode 100644
index f26c6f3..0000000
--- a/PermissionApp2/res/drawable/header_background.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2015 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<ripple xmlns:android="http://schemas.android.com/apk/res/android"
- android:color="?android:attr/colorControlHighlight">
- <item android:drawable="@color/header_background_color" />
-</ripple>
-
diff --git a/PermissionApp2/res/layout/permission_activity.xml b/PermissionApp2/res/layout/permission_activity.xml
index 01f734e..2709bbd 100644
--- a/PermissionApp2/res/layout/permission_activity.xml
+++ b/PermissionApp2/res/layout/permission_activity.xml
@@ -26,14 +26,13 @@
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="?android:attr/actionBarSize"
- android:background="@drawable/header_background"
- android:theme="@android:style/Theme.Material.Settings" >
+ android:theme="@android:style/Theme.DeviceDefault" >
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center"
- android:textAppearance="@android:style/TextAppearance.Material.Medium"
+ android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@android:color/white"
android:text="@string/list_title">
</TextView>
diff --git a/PermissionApp2/src/foo/bar/permission2/PermissionActivity.java b/PermissionApp2/src/foo/bar/permission2/PermissionActivity.java
index d44de53..348a429 100644
--- a/PermissionApp2/src/foo/bar/permission2/PermissionActivity.java
+++ b/PermissionApp2/src/foo/bar/permission2/PermissionActivity.java
@@ -26,17 +26,21 @@ import android.database.Cursor;
import android.os.Bundle;
import android.provider.CalendarContract;
import android.provider.ContactsContract;
+import android.support.v4.app.ActivityCompat;
+import android.support.v4.content.ContextCompat;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.CursorAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
+import android.widget.Toast;
/**
* Simple sample of how to use the runtime permissions APIs.
*/
-public class PermissionActivity extends Activity implements LoaderManager.LoaderCallbacks<Cursor> {
+public class PermissionActivity extends Activity implements LoaderManager.LoaderCallbacks<Cursor>,
+ ActivityCompat.OnRequestPermissionsResultCallback {
public static final String LOG_TAG = "PermissionActivity";
@@ -194,9 +198,14 @@ public class PermissionActivity extends Activity implements LoaderManager.Loader
}
private void showContacts() {
- if (checkSelfPermission(Manifest.permission.READ_CONTACTS)
+ if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS)
!= PackageManager.PERMISSION_GRANTED) {
- requestPermissions(new String[] {Manifest.permission.READ_CONTACTS},
+ if (ActivityCompat.shouldShowRequestPermissionRationale(this,
+ Manifest.permission.READ_CONTACTS)) {
+ Toast.makeText(this, "I really need it, dude!", Toast.LENGTH_SHORT).show();
+ }
+ ActivityCompat.requestPermissions(this, new String[]{
+ Manifest.permission.READ_CONTACTS},
PERMISSIONS_REQUEST_READ_CONTACTS);
return;
}
@@ -208,9 +217,14 @@ public class PermissionActivity extends Activity implements LoaderManager.Loader
}
private void showEvents() {
- if (checkSelfPermission(Manifest.permission.READ_CALENDAR)
+ if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CALENDAR)
!= PackageManager.PERMISSION_GRANTED) {
- requestPermissions(new String[]{Manifest.permission.READ_CALENDAR},
+ if (ActivityCompat.shouldShowRequestPermissionRationale(this,
+ Manifest.permission.READ_CALENDAR)) {
+ Toast.makeText(this, "I really need it, dude!", Toast.LENGTH_SHORT).show();
+ }
+ ActivityCompat.requestPermissions(this, new String[]{
+ Manifest.permission.READ_CALENDAR},
PERMISSIONS_REQUEST_READ_CALENDAR);
return;
}
@@ -222,15 +236,16 @@ public class PermissionActivity extends Activity implements LoaderManager.Loader
}
private void requestPermissions() {
- if (checkSelfPermission(Manifest.permission.READ_CALENDAR)
+ if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CALENDAR)
!= PackageManager.PERMISSION_GRANTED
- || checkSelfPermission(Manifest.permission.READ_CONTACTS)
+ || ContextCompat.checkSelfPermission(this, 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);
+ ActivityCompat.requestPermissions(this, permissions,
+ PERMISSIONS_REQUEST_ALL_PERMISSIONS);
}
}
}