From 90c3baf5afe6ac074b2953fc61a2216ac65cb2d4 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Thu, 12 Apr 2018 17:28:23 +0200 Subject: [PATCH] scanning WiFi/Bluetooth in android-23 requires location permission This requires that admin#65 is fixed, otherwise every F-Droid update will require Unknown Sources with Privileged Extension. https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-hardware-id https://stackoverflow.com/a/44200390 closes #656 --- app/src/full/AndroidManifest.xml | 2 ++ .../org/fdroid/fdroid/views/main/NearbyViewBinder.java | 10 +++++++++- .../org/fdroid/fdroid/views/main/MainActivity.java | 10 ++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/app/src/full/AndroidManifest.xml b/app/src/full/AndroidManifest.xml index a98dd272d..70c2bbe0f 100644 --- a/app/src/full/AndroidManifest.xml +++ b/app/src/full/AndroidManifest.xml @@ -44,6 +44,8 @@ + + = 23 + && PackageManager.PERMISSION_GRANTED + != ContextCompat.checkSelfPermission(activity, coarseLocation)) { + ActivityCompat.requestPermissions(activity, new String[]{coarseLocation}, + MainActivity.REQUEST_LOCATION_PERMISSIONS); + } else { + activity.startActivity(new Intent(activity, SwapWorkflowActivity.class)); + } } }); diff --git a/app/src/main/java/org/fdroid/fdroid/views/main/MainActivity.java b/app/src/main/java/org/fdroid/fdroid/views/main/MainActivity.java index 6fa949376..d30c736e2 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/main/MainActivity.java +++ b/app/src/main/java/org/fdroid/fdroid/views/main/MainActivity.java @@ -30,6 +30,7 @@ import android.content.IntentFilter; import android.net.Uri; import android.os.Build; import android.os.Bundle; +import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.content.LocalBroadcastManager; import android.support.v7.app.AppCompatActivity; @@ -77,6 +78,7 @@ public class MainActivity extends AppCompatActivity implements BottomNavigationB public static final String EXTRA_VIEW_UPDATES = "org.fdroid.fdroid.views.main.MainActivity.VIEW_UPDATES"; public static final String EXTRA_VIEW_SETTINGS = "org.fdroid.fdroid.views.main.MainActivity.VIEW_SETTINGS"; + static final int REQUEST_LOCATION_PERMISSIONS = 0xEF0F; static final int REQUEST_STORAGE_PERMISSIONS = 0xB004; private static final String ADD_REPO_INTENT_HANDLED = "addRepoIntentHandled"; @@ -208,6 +210,14 @@ public class MainActivity extends AppCompatActivity implements BottomNavigationB checkForAddRepoIntent(intent); } + @Override + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { // NOCHECKSTYLE LineLength + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + if (requestCode == REQUEST_LOCATION_PERMISSIONS) { + startActivity(new Intent(this, SwapWorkflowActivity.class)); + } + } + @Override public void onTabSelected(int position) { pager.scrollToPosition(position);