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);