diff options
author | Anil Admal <aadmal@google.com> | 2019-04-23 15:29:10 -0700 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-04-23 15:29:10 -0700 |
commit | 414210769cbe3ab244ec4af9eef1648e4933f863 (patch) | |
tree | 823d636adfc3fe09adb0e3e9d0b961136c0ddbbb | |
parent | 01c56399fbdb6441d51a87f5ae7dbc283f7bba50 (diff) | |
parent | 01809642e1c7214d936c0d35301b355fe6dbfdf0 (diff) | |
download | SampleLocationAttribution-414210769cbe3ab244ec4af9eef1648e4933f863.tar.gz |
Show 'Allow all the time' option in request permission dialogq_tzdata_aml_297100400q_tzdata_aml_297100300q_tzdata_aml_297100000q_tzdata_aml_296200000q_tzdata_aml_295600118q_tzdata_aml_295600110q_tzdata_aml_295500002q_tzdata_aml_295500001q_tzdata_aml_294400310platform-tools-30.0.1platform-tools-30.0.0platform-tools-29.0.6platform-tools-29.0.5android-r-preview-4android-r-preview-3android-r-preview-2android-r-preview-1android-mainline-12.0.0_r54android-mainline-12.0.0_r111android-mainline-10.0.0_r8android-mainline-10.0.0_r6android-mainline-10.0.0_r13android-mainline-10.0.0_r12android-mainline-10.0.0_r11q_tzdata_aml_297100000ndk-sysroot-r21android12-mainline-tzdata-releaseandroid10-mainline-tzdata-releaseandroid10-mainline-resolv-releaseandroid10-mainline-networking-releaseandroid10-android13-mainline-tzdata-release
am: 01809642e1
Change-Id: I0c2c0ab7db9874530827c517516b1c066e82bdb6
-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); } |