diff options
author | Svetoslav <svetoslavganov@google.com> | 2015-06-02 18:21:38 -0700 |
---|---|---|
committer | Svetoslav <svetoslavganov@google.com> | 2015-06-03 16:57:01 -0700 |
commit | 52a06e5a4e493c1028a9620d92bfd1e03a6ee85a (patch) | |
tree | fe27e34085dd5db727371131c32d5a56712637db | |
parent | 55bbc3c2111d0828ec4224cbe8eff859f4dab138 (diff) | |
download | experimental-52a06e5a4e493c1028a9620d92bfd1e03a6ee85a.tar.gz |
Add a permissions sample using the support lib
Change-Id: I13da4d91d2d47d6fe627640649f636d337637a82
-rw-r--r-- | PermissionApp2/Android.mk | 4 | ||||
-rw-r--r-- | PermissionApp2/AndroidManifest.xml | 2 | ||||
-rw-r--r-- | PermissionApp2/res/drawable/header_background.xml | 21 | ||||
-rw-r--r-- | PermissionApp2/res/layout/permission_activity.xml | 5 | ||||
-rw-r--r-- | PermissionApp2/src/foo/bar/permission2/PermissionActivity.java | 31 |
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); } } } |