diff --git a/src/main/java/de/dennisguse/opentracks/TrackListActivity.java b/src/main/java/de/dennisguse/opentracks/TrackListActivity.java index 94ce9d403..410be3cf1 100644 --- a/src/main/java/de/dennisguse/opentracks/TrackListActivity.java +++ b/src/main/java/de/dennisguse/opentracks/TrackListActivity.java @@ -70,6 +70,7 @@ import de.dennisguse.opentracks.ui.util.ActivityUtils; import de.dennisguse.opentracks.ui.util.ListItemUtils; import de.dennisguse.opentracks.util.IntentDashboardUtils; import de.dennisguse.opentracks.util.IntentUtils; +import de.dennisguse.opentracks.util.PermissionUtils; import de.dennisguse.opentracks.util.StringUtils; import de.dennisguse.opentracks.util.TrackIconUtils; @@ -163,6 +164,8 @@ public class TrackListActivity extends AbstractTrackDeleteActivity implements Co super.onCreate(savedInstanceState); setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL); + requestRequiredPermissions(); + trackRecordingServiceConnection = new TrackRecordingServiceConnection(bindChangedCallback); viewBinding.trackList.setEmptyView(viewBinding.trackListEmptyView); @@ -259,6 +262,16 @@ public class TrackListActivity extends AbstractTrackDeleteActivity implements Co loadData(getIntent()); } + private void requestRequiredPermissions() { + if (!PermissionUtils.hasGPSPermission(this)) { + PermissionUtils.requestGPSPermission(this, null, () -> Toast.makeText(this, R.string.permission_gps_failed, Toast.LENGTH_SHORT).show()); + } + + if (!PermissionUtils.hasBluetoothPermissions(this)) { + PermissionUtils.requestBluetoothPermission(this, null, null); + } + } + @Override protected void onStart() { super.onStart(); diff --git a/src/main/java/de/dennisguse/opentracks/TrackRecordingActivity.java b/src/main/java/de/dennisguse/opentracks/TrackRecordingActivity.java index e045988c4..71da9186b 100644 --- a/src/main/java/de/dennisguse/opentracks/TrackRecordingActivity.java +++ b/src/main/java/de/dennisguse/opentracks/TrackRecordingActivity.java @@ -131,8 +131,6 @@ public class TrackRecordingActivity extends AbstractActivity implements ChooseAc viewBinding.trackDetailActivityViewPager.setCurrentItem(savedInstanceState.getInt(CURRENT_TAB_TAG_KEY)); } - requestGPSPermissions(); - viewBinding.trackRecordingFabAction.setImageResource(R.drawable.ic_baseline_stop_24); viewBinding.trackRecordingFabAction.setBackgroundTintList(ContextCompat.getColorStateList(this, R.color.opentracks_secondary_color)); viewBinding.trackRecordingFabAction.setBackgroundColor(getResources().getColor(R.color.opentracks_secondary_color)); @@ -371,14 +369,6 @@ public class TrackRecordingActivity extends AbstractActivity implements ChooseAc setScreenOnPolicy(); } - private void requestGPSPermissions() { - if (PermissionUtils.hasGPSPermission(this)) { - return; - } - - PermissionUtils.requestGPSPermission(this, null, () -> Toast.makeText(this, R.string.permission_gps_failed, Toast.LENGTH_SHORT).show()); - } - private void onGpsStatusChanged(GpsStatusValue gpsStatusValue) { if (gpsStatusValue.isGpsStarted() && snackbar != null && snackbar.isShown()) { snackbar.dismiss();