mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-19 04:53:36 +00:00
[android-auto] Log screens' lifecycle
Signed-off-by: Andrei Shkrob <github@shkrob.dev>
This commit is contained in:
@@ -16,7 +16,8 @@ import app.organicmaps.sdk.util.log.Logger;
|
||||
|
||||
public abstract class Renderer implements DefaultLifecycleObserver
|
||||
{
|
||||
private static final String TAG = Renderer.class.getSimpleName();
|
||||
@NonNull
|
||||
private final String TAG;
|
||||
|
||||
private SurfaceCallback mSurfaceCallback;
|
||||
|
||||
@@ -46,6 +47,7 @@ public abstract class Renderer implements DefaultLifecycleObserver
|
||||
public Renderer(@NonNull CarContext carContext, @NonNull DisplayManager displayManager,
|
||||
@NonNull LocationHelper locationHelper, @NonNull LifecycleOwner lifecycleOwner)
|
||||
{
|
||||
TAG = getClass().getSimpleName();
|
||||
Logger.d(TAG, "SurfaceRenderer()");
|
||||
mIsRunning = true;
|
||||
mCarContext = carContext;
|
||||
|
||||
@@ -11,7 +11,8 @@ import app.organicmaps.sdk.util.log.Logger;
|
||||
|
||||
abstract class SurfaceCallbackBase implements SurfaceCallback
|
||||
{
|
||||
private static final String TAG = SurfaceCallbackBase.class.getSimpleName();
|
||||
@NonNull
|
||||
private final String TAG;
|
||||
|
||||
@NonNull
|
||||
protected final CarContext mCarContext;
|
||||
@@ -21,6 +22,7 @@ abstract class SurfaceCallbackBase implements SurfaceCallback
|
||||
|
||||
public SurfaceCallbackBase(@NonNull CarContext carContext)
|
||||
{
|
||||
TAG = getClass().getSimpleName();
|
||||
mCarContext = carContext;
|
||||
}
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ public class CategoriesScreen extends BaseMapScreen
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Template onGetTemplate()
|
||||
protected Template onGetTemplateImpl()
|
||||
{
|
||||
final MapWithContentTemplate.Builder builder = new MapWithContentTemplate.Builder();
|
||||
builder.setMapController(UiHelpers.createMapController(getCarContext(), getSurfaceRenderer()));
|
||||
|
||||
@@ -43,7 +43,7 @@ public class ErrorScreen extends BaseScreen implements UserActionRequired
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Template onGetTemplate()
|
||||
protected Template onGetTemplateImpl()
|
||||
{
|
||||
final MessageTemplate.Builder builder = new MessageTemplate.Builder(getCarContext().getString(mErrorMessage));
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ public class FreeDriveScreen extends BaseMapScreen
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Template onGetTemplate()
|
||||
protected Template onGetTemplateImpl()
|
||||
{
|
||||
final NavigationTemplate.Builder builder = new NavigationTemplate.Builder();
|
||||
builder.setMapActionStrip(UiHelpers.createMapActionStrip(getCarContext(), getSurfaceRenderer()));
|
||||
|
||||
@@ -22,7 +22,7 @@ public class MapPlaceholderScreen extends BaseScreen
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Template onGetTemplate()
|
||||
protected Template onGetTemplateImpl()
|
||||
{
|
||||
final MessageTemplate.Builder builder =
|
||||
new MessageTemplate.Builder(getCarContext().getString(R.string.car_used_on_the_phone_screen));
|
||||
|
||||
@@ -31,7 +31,7 @@ public class MapScreen extends BaseMapScreen
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Template onGetTemplate()
|
||||
protected Template onGetTemplateImpl()
|
||||
{
|
||||
SuggestionsHelpers.updateSuggestions(getCarContext());
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ public class NavigationScreen extends BaseMapScreen implements RoutingController
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Template onGetTemplate()
|
||||
protected Template onGetTemplateImpl()
|
||||
{
|
||||
final NavigationTemplate.Builder builder = new NavigationTemplate.Builder();
|
||||
builder.setBackgroundColor(Colors.NAVIGATION_TEMPLATE_BACKGROUND);
|
||||
@@ -132,7 +132,7 @@ public class NavigationScreen extends BaseMapScreen implements RoutingController
|
||||
@Override
|
||||
public void onCreate(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
Logger.d(TAG);
|
||||
super.onCreate(owner);
|
||||
mRoutingController.attach(this);
|
||||
ThemeUtils.update(getCarContext());
|
||||
mNavigationManager.setNavigationManagerCallback(this);
|
||||
@@ -148,13 +148,14 @@ public class NavigationScreen extends BaseMapScreen implements RoutingController
|
||||
@Override
|
||||
public void onResume(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
Logger.d(TAG);
|
||||
super.onResume(owner);
|
||||
mRoutingController.attach(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
super.onDestroy(owner);
|
||||
NavigationService.stopService(getCarContext());
|
||||
MwmApplication.from(getCarContext()).getLocationHelper().removeListener(mLocationListener);
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ public class PlaceScreen extends BaseMapScreen implements OnBackPressedCallback.
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Template onGetTemplate()
|
||||
protected Template onGetTemplateImpl()
|
||||
{
|
||||
final MapWithContentTemplate.Builder builder = new MapWithContentTemplate.Builder();
|
||||
builder.setMapController(UiHelpers.createMapController(getCarContext(), getSurfaceRenderer()));
|
||||
@@ -80,6 +80,7 @@ public class PlaceScreen extends BaseMapScreen implements OnBackPressedCallback.
|
||||
@Override
|
||||
public void onCreate(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
super.onCreate(owner);
|
||||
mRoutingController.restore();
|
||||
if (mRoutingController.isNavigating() && mRoutingController.getLastRouterType() == ROUTER)
|
||||
{
|
||||
@@ -112,12 +113,14 @@ public class PlaceScreen extends BaseMapScreen implements OnBackPressedCallback.
|
||||
@Override
|
||||
public void onResume(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
super.onResume(owner);
|
||||
mRoutingController.attach(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
super.onDestroy(owner);
|
||||
if (mRoutingController.isPlanning())
|
||||
mRoutingController.onSaveState();
|
||||
if (!mRoutingController.isNavigating())
|
||||
|
||||
@@ -1,15 +1,71 @@
|
||||
package app.organicmaps.car.screens.base;
|
||||
|
||||
import androidx.annotation.CallSuper;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.car.app.CarContext;
|
||||
import androidx.car.app.Screen;
|
||||
import androidx.car.app.model.Template;
|
||||
import androidx.lifecycle.DefaultLifecycleObserver;
|
||||
import androidx.lifecycle.LifecycleOwner;
|
||||
import app.organicmaps.sdk.util.log.Logger;
|
||||
|
||||
public abstract class BaseScreen extends Screen implements DefaultLifecycleObserver
|
||||
{
|
||||
@NonNull
|
||||
private final String TAG;
|
||||
|
||||
public BaseScreen(@NonNull CarContext carContext)
|
||||
{
|
||||
super(carContext);
|
||||
TAG = getClass().getSimpleName();
|
||||
|
||||
getLifecycle().addObserver(this);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
protected abstract Template onGetTemplateImpl();
|
||||
|
||||
@Override
|
||||
@NonNull
|
||||
public final Template onGetTemplate()
|
||||
{
|
||||
Logger.d(TAG);
|
||||
return onGetTemplateImpl();
|
||||
}
|
||||
|
||||
@CallSuper
|
||||
public void onCreate(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
Logger.d(TAG);
|
||||
}
|
||||
|
||||
@CallSuper
|
||||
public void onStart(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
Logger.d(TAG);
|
||||
}
|
||||
|
||||
@CallSuper
|
||||
public void onResume(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
Logger.d(TAG);
|
||||
}
|
||||
|
||||
@CallSuper
|
||||
public void onPause(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
Logger.d(TAG);
|
||||
}
|
||||
|
||||
@CallSuper
|
||||
public void onStop(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
Logger.d(TAG);
|
||||
}
|
||||
|
||||
@CallSuper
|
||||
public void onDestroy(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
Logger.d(TAG);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ public class BookmarkCategoriesScreen extends BaseMapScreen
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Template onGetTemplate()
|
||||
protected Template onGetTemplateImpl()
|
||||
{
|
||||
final MapWithContentTemplate.Builder builder = new MapWithContentTemplate.Builder();
|
||||
builder.setMapController(UiHelpers.createMapController(getCarContext(), getSurfaceRenderer()));
|
||||
|
||||
@@ -41,7 +41,7 @@ public class BookmarksScreen extends BaseMapScreen
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Template onGetTemplate()
|
||||
protected Template onGetTemplateImpl()
|
||||
{
|
||||
final MapWithContentTemplate.Builder builder = new MapWithContentTemplate.Builder();
|
||||
builder.setMapController(UiHelpers.createMapController(getCarContext(), getSurfaceRenderer()));
|
||||
@@ -52,6 +52,7 @@ public class BookmarksScreen extends BaseMapScreen
|
||||
@Override
|
||||
public void onStop(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
super.onStop(owner);
|
||||
if (!mIsOnSortingScreen)
|
||||
mBookmarksLoader.cancel();
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ class SortingScreen extends BaseMapScreen
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Template onGetTemplate()
|
||||
protected Template onGetTemplateImpl()
|
||||
{
|
||||
final MapWithContentTemplate.Builder builder = new MapWithContentTemplate.Builder();
|
||||
builder.setMapController(UiHelpers.createMapController(getCarContext(), getSurfaceRenderer()));
|
||||
|
||||
@@ -23,6 +23,7 @@ class DownloadMapsForFirstLaunchScreen extends DownloadMapsScreen
|
||||
@Override
|
||||
public void onResume(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
super.onResume(owner);
|
||||
// Attempting to streamline initial download by including the current country in the list of missing maps for
|
||||
// simultaneous retrieval.
|
||||
final Location location = MwmApplication.from(getCarContext()).getLocationHelper().getSavedLocation();
|
||||
|
||||
@@ -34,7 +34,7 @@ public abstract class DownloadMapsScreen extends BaseScreen
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public final Template onGetTemplate()
|
||||
protected final Template onGetTemplateImpl()
|
||||
{
|
||||
final MessageTemplate.Builder builder = new MessageTemplate.Builder(getText(getMapsSize(mMissingMaps)));
|
||||
final Header.Builder headerBuilder = new Header.Builder();
|
||||
|
||||
@@ -102,6 +102,7 @@ class DownloaderScreen extends BaseScreen
|
||||
@Override
|
||||
public void onResume(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
super.onResume(owner);
|
||||
if (mSubscriptionSlot == 0)
|
||||
mSubscriptionSlot = MapManager.nativeSubscribe(mStorageCallback);
|
||||
for (final var item : mMissingMaps.entrySet())
|
||||
@@ -114,6 +115,7 @@ class DownloaderScreen extends BaseScreen
|
||||
@Override
|
||||
public void onPause(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
super.onPause(owner);
|
||||
if (!mIsDownloadFailed)
|
||||
cancelMapsDownloading();
|
||||
if (mSubscriptionSlot != 0)
|
||||
@@ -125,7 +127,7 @@ class DownloaderScreen extends BaseScreen
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Template onGetTemplate()
|
||||
protected Template onGetTemplateImpl()
|
||||
{
|
||||
final MessageTemplate.Builder builder = new MessageTemplate.Builder(getText());
|
||||
builder.setLoading(true);
|
||||
|
||||
@@ -37,7 +37,7 @@ public class RequestPermissionsScreenWithApi extends BaseScreen implements UserA
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Template onGetTemplate()
|
||||
protected Template onGetTemplateImpl()
|
||||
{
|
||||
final MessageTemplate.Builder builder =
|
||||
new MessageTemplate.Builder(getCarContext().getString(R.string.aa_request_permission_activity_text));
|
||||
@@ -63,6 +63,7 @@ public class RequestPermissionsScreenWithApi extends BaseScreen implements UserA
|
||||
@Override
|
||||
public void onResume(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
super.onResume(owner);
|
||||
// Let's review the permissions once more, as we might enter this function following an ErrorScreen situation
|
||||
// where the user manually enabled location permissions.
|
||||
if (LocationUtils.checkFineLocationPermission(getCarContext()))
|
||||
|
||||
@@ -47,7 +47,7 @@ public class RequestPermissionsScreenWithNotification extends BaseScreen impleme
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Template onGetTemplate()
|
||||
protected Template onGetTemplateImpl()
|
||||
{
|
||||
final MessageTemplate.Builder builder =
|
||||
new MessageTemplate.Builder(getCarContext().getString(R.string.aa_location_permissions_request));
|
||||
@@ -66,6 +66,7 @@ public class RequestPermissionsScreenWithNotification extends BaseScreen impleme
|
||||
@RequiresPermission(value = Manifest.permission.POST_NOTIFICATIONS)
|
||||
public void onStart(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
super.onStart(owner);
|
||||
mIsPermissionCheckEnabled = true;
|
||||
mBackgroundExecutor.execute(this::checkPermissions);
|
||||
sendPermissionsRequestNotification();
|
||||
@@ -74,12 +75,14 @@ public class RequestPermissionsScreenWithNotification extends BaseScreen impleme
|
||||
@Override
|
||||
public void onStop(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
super.onStop(owner);
|
||||
mIsPermissionCheckEnabled = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
super.onDestroy(owner);
|
||||
NotificationManagerCompat.from(getCarContext()).cancel(NOTIFICATION_ID);
|
||||
}
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@ public class SearchOnMapScreen extends BaseMapScreen implements SearchListener
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Template onGetTemplate()
|
||||
protected Template onGetTemplateImpl()
|
||||
{
|
||||
final MapWithContentTemplate.Builder builder = new MapWithContentTemplate.Builder();
|
||||
builder.setMapController(UiHelpers.createMapController(getCarContext(), getSurfaceRenderer()));
|
||||
@@ -136,12 +136,14 @@ public class SearchOnMapScreen extends BaseMapScreen implements SearchListener
|
||||
@Override
|
||||
public void onStart(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
super.onStart(owner);
|
||||
SearchEngine.INSTANCE.addListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
super.onResume(owner);
|
||||
SearchEngine.INSTANCE.cancel();
|
||||
|
||||
final MapObject location = MwmApplication.from(getCarContext()).getLocationHelper().getMyPosition();
|
||||
@@ -156,6 +158,7 @@ public class SearchOnMapScreen extends BaseMapScreen implements SearchListener
|
||||
@Override
|
||||
public void onStop(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
super.onStop(owner);
|
||||
SearchEngine.INSTANCE.removeListener(this);
|
||||
SearchEngine.INSTANCE.cancel();
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ public class SearchScreen extends BaseMapScreen implements SearchTemplate.Search
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Template onGetTemplate()
|
||||
protected Template onGetTemplateImpl()
|
||||
{
|
||||
final SearchTemplate.Builder builder = new SearchTemplate.Builder(this);
|
||||
builder.setHeaderAction(Action.BACK);
|
||||
@@ -106,12 +106,14 @@ public class SearchScreen extends BaseMapScreen implements SearchTemplate.Search
|
||||
@Override
|
||||
public void onStart(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
super.onStart(owner);
|
||||
SearchEngine.INSTANCE.addListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStop(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
super.onStop(owner);
|
||||
SearchEngine.INSTANCE.removeListener(this);
|
||||
SearchEngine.INSTANCE.cancel();
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ public class DrivingOptionsScreen extends BaseMapScreen
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Template onGetTemplate()
|
||||
protected Template onGetTemplateImpl()
|
||||
{
|
||||
final MapWithContentTemplate.Builder builder = new MapWithContentTemplate.Builder();
|
||||
builder.setMapController(UiHelpers.createMapController(getCarContext(), getSurfaceRenderer()));
|
||||
@@ -56,6 +56,7 @@ public class DrivingOptionsScreen extends BaseMapScreen
|
||||
@Override
|
||||
public void onStop(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
super.onStop(owner);
|
||||
for (final DrivingOption drivingOption : mDrivingOptions)
|
||||
{
|
||||
if (Boolean.TRUE.equals(mInitialDrivingOptionsState.get(drivingOption.roadType))
|
||||
|
||||
@@ -27,7 +27,7 @@ public class HelpScreen extends BaseMapScreen
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Template onGetTemplate()
|
||||
protected Template onGetTemplateImpl()
|
||||
{
|
||||
final MapWithContentTemplate.Builder builder = new MapWithContentTemplate.Builder();
|
||||
builder.setMapController(UiHelpers.createMapController(getCarContext(), getSurfaceRenderer()));
|
||||
|
||||
@@ -40,7 +40,7 @@ public class SettingsScreen extends BaseMapScreen
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Template onGetTemplate()
|
||||
protected Template onGetTemplateImpl()
|
||||
{
|
||||
final MapWithContentTemplate.Builder builder = new MapWithContentTemplate.Builder();
|
||||
builder.setMapController(UiHelpers.createMapController(getCarContext(), getSurfaceRenderer()));
|
||||
|
||||
@@ -35,7 +35,7 @@ public class ThemeScreen extends BaseMapScreen
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Template onGetTemplate()
|
||||
protected Template onGetTemplateImpl()
|
||||
{
|
||||
final MapWithContentTemplate.Builder builder = new MapWithContentTemplate.Builder();
|
||||
builder.setMapController(UiHelpers.createMapController(getCarContext(), getSurfaceRenderer()));
|
||||
|
||||
Reference in New Issue
Block a user