diff options
| author | android-build-team Robot <android-build-team-robot@google.com> | 2019-04-24 03:15:59 +0000 |
|---|---|---|
| committer | android-build-team Robot <android-build-team-robot@google.com> | 2019-04-24 03:15:59 +0000 |
| commit | c7919337268fb77fe92b6b8f096a9ca67d07b455 (patch) | |
| tree | 823d636adfc3fe09adb0e3e9d0b961136c0ddbbb | |
| parent | 0ca849c9f448de7e01d6855c6804c12d856c0b1c (diff) | |
| parent | 01809642e1c7214d936c0d35301b355fe6dbfdf0 (diff) | |
| download | platform_packages_apps_SampleLocationAttribution-android10-s1-release.tar.gz platform_packages_apps_SampleLocationAttribution-android10-s1-release.tar.bz2 platform_packages_apps_SampleLocationAttribution-android10-s1-release.zip | |
Snap for 5499134 from 01809642e1c7214d936c0d35301b355fe6dbfdf0 to qt-releaseandroid-vts-10.0_r5android-vts-10.0_r4android-vts-10.0_r3android-vts-10.0_r2android-vts-10.0_r1android-cts-10.0_r5android-cts-10.0_r4android-cts-10.0_r3android-cts-10.0_r2android-cts-10.0_r1android-10.0.0_r6android-10.0.0_r5android-10.0.0_r46android-10.0.0_r4android-10.0.0_r3android-10.0.0_r2android-10.0.0_r17android-10.0.0_r11android-10.0.0_r10android-10.0.0_r1android10-tests-releaseandroid10-security-releaseandroid10-s3-releaseandroid10-s2-releaseandroid10-s1-releaseandroid10-releaseandroid10-gsi
Change-Id: Ie4e65ef0b7b99d0dbd132e17d0676de2f430303e
| -rw-r--r-- | Android.mk | 1 | ||||
| -rw-r--r-- | src/com/example/android/locationattribution/MainActivity.java | 30 |
2 files changed, 25 insertions, 6 deletions
@@ -15,7 +15,6 @@ LOCAL_SRC_FILES := $(call all-java-files-under, src) LOCAL_SDK_VERSION := current -LOCAL_PRIVILEGED_MODULE := true LOCAL_PRODUCT_MODULE := true # Name of the APK to build diff --git a/src/com/example/android/locationattribution/MainActivity.java b/src/com/example/android/locationattribution/MainActivity.java index 1ca5c35..3f72bfc 100644 --- a/src/com/example/android/locationattribution/MainActivity.java +++ b/src/com/example/android/locationattribution/MainActivity.java @@ -22,7 +22,6 @@ import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.net.Uri; import androidx.core.app.ActivityCompat; -import androidx.core.content.ContextCompat; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.text.Spannable; @@ -90,9 +89,18 @@ public class MainActivity extends AppCompatActivity { return new View.OnClickListener() { @Override public void onClick(View v) { - if (ContextCompat.checkSelfPermission(MainActivity.this, - Manifest.permission.ACCESS_FINE_LOCATION) - == PackageManager.PERMISSION_GRANTED) { + if (isLocationPermissionGranted(Manifest.permission.ACCESS_FINE_LOCATION)) { + if (!isLocationPermissionGranted( + Manifest.permission.ACCESS_BACKGROUND_LOCATION)) { + // Request 'Allow all the time' permission if the user didn't select + // 'Don't ask again' option earlier. + if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, + Manifest.permission.ACCESS_BACKGROUND_LOCATION)) { + showRequestBackgroundLocationPermissionDialog(); + return; + } + } + // We can't show tri-state dialog when permission is already granted. // So, go to the location permission settings screen directly. showLocationPermissionSettingsDashboard(); @@ -118,9 +126,21 @@ public class MainActivity extends AppCompatActivity { }; } + private boolean isLocationPermissionGranted(String locationPermissionType) { + return ActivityCompat.checkSelfPermission(this, locationPermissionType) + == PackageManager.PERMISSION_GRANTED; + } + private void showRequestLocationPermissionDialog() { ActivityCompat.requestPermissions(this, - new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, + new String[]{Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_BACKGROUND_LOCATION}, + NON_FRAMEWORK_LOCATION_PERMISSION); + } + + private void showRequestBackgroundLocationPermissionDialog() { + ActivityCompat.requestPermissions(this, + new String[]{Manifest.permission.ACCESS_BACKGROUND_LOCATION}, NON_FRAMEWORK_LOCATION_PERMISSION); } |
