mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-31 18:13:44 +00:00
[android-auto] Refactor SurfaceRendered
Created base Renderer class Rename SurfaceRenderer -> SurfaceRendererLegacy Signed-off-by: Andrei Shkrob <github@shkrob.dev>
This commit is contained in:
@@ -12,6 +12,8 @@ import androidx.lifecycle.DefaultLifecycleObserver;
|
||||
import androidx.lifecycle.LifecycleOwner;
|
||||
import app.organicmaps.MwmApplication;
|
||||
import app.organicmaps.R;
|
||||
import app.organicmaps.car.renderer.Renderer;
|
||||
import app.organicmaps.car.renderer.SurfaceRendererLegacy;
|
||||
import app.organicmaps.car.screens.ErrorScreen;
|
||||
import app.organicmaps.car.screens.MapPlaceholderScreen;
|
||||
import app.organicmaps.car.screens.MapScreen;
|
||||
@@ -49,8 +51,9 @@ public final class CarAppSession extends Session implements DefaultLifecycleObse
|
||||
|
||||
@Nullable
|
||||
private final SessionInfo mSessionInfo;
|
||||
@SuppressWarnings("NotNullFieldNotInitialized")
|
||||
@NonNull
|
||||
private final SurfaceRenderer mSurfaceRenderer;
|
||||
private Renderer mSurfaceRenderer;
|
||||
@NonNull
|
||||
private final ScreenManager mScreenManager;
|
||||
@SuppressWarnings("NotNullFieldNotInitialized")
|
||||
@@ -67,7 +70,6 @@ public final class CarAppSession extends Session implements DefaultLifecycleObse
|
||||
{
|
||||
getLifecycle().addObserver(this);
|
||||
mSessionInfo = sessionInfo;
|
||||
mSurfaceRenderer = new SurfaceRenderer(getCarContext(), getLifecycle());
|
||||
mScreenManager = getCarContext().getCarService(ScreenManager.class);
|
||||
mCurrentCountryChangedListener = new CurrentCountryChangedListener();
|
||||
}
|
||||
@@ -111,6 +113,7 @@ public final class CarAppSession extends Session implements DefaultLifecycleObse
|
||||
public void onCreate(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
Logger.d(TAG);
|
||||
mSurfaceRenderer = new SurfaceRendererLegacy(getCarContext(), getLifecycle());
|
||||
mSensorsManager = new CarSensorsManager(getCarContext());
|
||||
mDisplayManager = MwmApplication.from(getCarContext()).getDisplayManager();
|
||||
mDisplayManager.addListener(DisplayType.Car, this);
|
||||
|
||||
@@ -0,0 +1,125 @@
|
||||
package app.organicmaps.car.renderer;
|
||||
|
||||
import androidx.annotation.CallSuper;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.car.app.AppManager;
|
||||
import androidx.car.app.CarContext;
|
||||
import androidx.car.app.SurfaceCallback;
|
||||
import androidx.lifecycle.DefaultLifecycleObserver;
|
||||
import androidx.lifecycle.Lifecycle;
|
||||
import androidx.lifecycle.LifecycleOwner;
|
||||
import app.organicmaps.sdk.Map;
|
||||
import app.organicmaps.sdk.MapRenderingListener;
|
||||
import app.organicmaps.sdk.display.DisplayManager;
|
||||
import app.organicmaps.sdk.location.LocationHelper;
|
||||
import app.organicmaps.sdk.settings.UnitLocale;
|
||||
import app.organicmaps.sdk.util.log.Logger;
|
||||
|
||||
public abstract class Renderer implements DefaultLifecycleObserver
|
||||
{
|
||||
private static final String TAG = Renderer.class.getSimpleName();
|
||||
|
||||
@NonNull
|
||||
protected final CarContext mCarContext;
|
||||
|
||||
@NonNull
|
||||
protected final DisplayManager mDisplayManager;
|
||||
|
||||
@NonNull
|
||||
protected final LocationHelper mLocationHelper;
|
||||
|
||||
private boolean mIsRunning;
|
||||
|
||||
private SurfaceCallback mSurfaceCallback;
|
||||
|
||||
@NonNull
|
||||
private final MapRenderingListener mMapRenderingListener = new MapRenderingListener() {
|
||||
@Override
|
||||
public void onRenderingCreated()
|
||||
{
|
||||
UnitLocale.initializeCurrentUnits();
|
||||
}
|
||||
};
|
||||
|
||||
public Renderer(@NonNull CarContext carContext, @NonNull DisplayManager displayManager,
|
||||
@NonNull LocationHelper locationHelper, @NonNull Lifecycle lifecycle)
|
||||
{
|
||||
Logger.d(TAG, "SurfaceRenderer()");
|
||||
mCarContext = carContext;
|
||||
mDisplayManager = displayManager;
|
||||
mLocationHelper = locationHelper;
|
||||
mIsRunning = true;
|
||||
lifecycle.addObserver(this);
|
||||
}
|
||||
|
||||
protected void setSurfaceCallback(@NonNull SurfaceCallback surfaceCallback)
|
||||
{
|
||||
mSurfaceCallback = surfaceCallback;
|
||||
}
|
||||
|
||||
public boolean isRenderingActive()
|
||||
{
|
||||
return mIsRunning;
|
||||
}
|
||||
|
||||
protected MapRenderingListener getMapRenderingListener()
|
||||
{
|
||||
return mMapRenderingListener;
|
||||
}
|
||||
|
||||
@CallSuper
|
||||
@Override
|
||||
public void onCreate(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
Logger.d(TAG);
|
||||
if (mSurfaceCallback == null)
|
||||
throw new IllegalStateException("SurfaceCallback must be set before onCreate()");
|
||||
mCarContext.getCarService(AppManager.class).setSurfaceCallback(mSurfaceCallback);
|
||||
}
|
||||
|
||||
@CallSuper
|
||||
@Override
|
||||
public void onDestroy(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
Logger.d(TAG);
|
||||
mCarContext.getCarService(AppManager.class).setSurfaceCallback(null);
|
||||
}
|
||||
|
||||
@CallSuper
|
||||
public void enable()
|
||||
{
|
||||
if (isRenderingActive())
|
||||
{
|
||||
Logger.d(TAG, "Already enabled");
|
||||
return;
|
||||
}
|
||||
|
||||
if (mSurfaceCallback == null)
|
||||
throw new IllegalStateException("SurfaceCallback must be set before enable()");
|
||||
mCarContext.getCarService(AppManager.class).setSurfaceCallback(mSurfaceCallback);
|
||||
mIsRunning = true;
|
||||
}
|
||||
|
||||
@CallSuper
|
||||
public void disable()
|
||||
{
|
||||
if (!isRenderingActive())
|
||||
{
|
||||
Logger.d(TAG, "Already disabled");
|
||||
return;
|
||||
}
|
||||
|
||||
mCarContext.getCarService(AppManager.class).setSurfaceCallback(null);
|
||||
mIsRunning = false;
|
||||
}
|
||||
|
||||
public void onZoomIn()
|
||||
{
|
||||
Map.zoomIn();
|
||||
}
|
||||
|
||||
public void onZoomOut()
|
||||
{
|
||||
Map.zoomOut();
|
||||
}
|
||||
}
|
||||
@@ -1,50 +1,41 @@
|
||||
package app.organicmaps.car;
|
||||
|
||||
import static app.organicmaps.sdk.display.DisplayType.Car;
|
||||
package app.organicmaps.car.renderer;
|
||||
|
||||
import android.graphics.Rect;
|
||||
import android.view.Surface;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.car.app.AppManager;
|
||||
import androidx.car.app.CarContext;
|
||||
import androidx.car.app.SurfaceCallback;
|
||||
import androidx.car.app.SurfaceContainer;
|
||||
import androidx.lifecycle.DefaultLifecycleObserver;
|
||||
import androidx.lifecycle.Lifecycle;
|
||||
import androidx.lifecycle.LifecycleOwner;
|
||||
import app.organicmaps.MwmApplication;
|
||||
import app.organicmaps.sdk.Framework;
|
||||
import app.organicmaps.sdk.Map;
|
||||
import app.organicmaps.sdk.MapRenderingListener;
|
||||
import app.organicmaps.sdk.settings.UnitLocale;
|
||||
import app.organicmaps.sdk.location.LocationHelper;
|
||||
import app.organicmaps.sdk.util.log.Logger;
|
||||
|
||||
public class SurfaceRenderer implements DefaultLifecycleObserver, SurfaceCallback, MapRenderingListener
|
||||
public class SurfaceCallbackLegacy implements SurfaceCallback
|
||||
{
|
||||
private static final String TAG = SurfaceRenderer.class.getSimpleName();
|
||||
private static final String TAG = SurfaceCallbackLegacy.class.getSimpleName();
|
||||
|
||||
@NonNull
|
||||
private final CarContext mCarContext;
|
||||
protected final CarContext mCarContext;
|
||||
|
||||
@NonNull
|
||||
private final Map mMap = new Map(Car);
|
||||
private final Map mMap;
|
||||
|
||||
@NonNull
|
||||
private Rect mVisibleArea = new Rect();
|
||||
private final LocationHelper mLocationHelper;
|
||||
|
||||
@Nullable
|
||||
private Surface mSurface = null;
|
||||
|
||||
private boolean mIsRunning;
|
||||
@NonNull
|
||||
private Rect mVisibleArea = new Rect();
|
||||
|
||||
public SurfaceRenderer(@NonNull CarContext carContext, @NonNull Lifecycle lifecycle)
|
||||
public SurfaceCallbackLegacy(@NonNull CarContext carContext, @NonNull Map map, @NonNull LocationHelper locationHelper)
|
||||
{
|
||||
Logger.d(TAG, "SurfaceRenderer()");
|
||||
mCarContext = carContext;
|
||||
mIsRunning = true;
|
||||
lifecycle.addObserver(this);
|
||||
mMap.setMapRenderingListener(this);
|
||||
mMap = map;
|
||||
mLocationHelper = locationHelper;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -56,13 +47,25 @@ public class SurfaceRenderer implements DefaultLifecycleObserver, SurfaceCallbac
|
||||
mSurface.release();
|
||||
mSurface = surfaceContainer.getSurface();
|
||||
|
||||
mMap.setLocationHelper(MwmApplication.from(mCarContext).getLocationHelper());
|
||||
mMap.setLocationHelper(mLocationHelper);
|
||||
mMap.onSurfaceCreated(mCarContext, mSurface,
|
||||
new Rect(0, 0, surfaceContainer.getWidth(), surfaceContainer.getHeight()),
|
||||
surfaceContainer.getDpi());
|
||||
mMap.updateBottomWidgetsOffset(mCarContext, -1, -1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSurfaceDestroyed(@NonNull SurfaceContainer surfaceContainer)
|
||||
{
|
||||
Logger.d(TAG, "Surface destroyed");
|
||||
if (mSurface != null)
|
||||
{
|
||||
mSurface.release();
|
||||
mSurface = null;
|
||||
}
|
||||
mMap.onSurfaceDestroyed(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onVisibleAreaChanged(@NonNull Rect visibleArea)
|
||||
{
|
||||
@@ -84,57 +87,6 @@ public class SurfaceRenderer implements DefaultLifecycleObserver, SurfaceCallbac
|
||||
Framework.nativeSetVisibleRect(mVisibleArea.left, mVisibleArea.top, mVisibleArea.right, mVisibleArea.bottom);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSurfaceDestroyed(@NonNull SurfaceContainer surfaceContainer)
|
||||
{
|
||||
Logger.d(TAG, "Surface destroyed");
|
||||
if (mSurface != null)
|
||||
{
|
||||
mSurface.release();
|
||||
mSurface = null;
|
||||
}
|
||||
mMap.onSurfaceDestroyed(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
Logger.d(TAG);
|
||||
mCarContext.getCarService(AppManager.class).setSurfaceCallback(this);
|
||||
mMap.onCreate(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStart(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
Logger.d(TAG);
|
||||
mMap.onStart();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
Logger.d(TAG);
|
||||
mMap.onResume();
|
||||
if (MwmApplication.from(mCarContext).getDisplayManager().isCarDisplayUsed())
|
||||
mMap.updateMyPositionRoutingOffset(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
Logger.d(TAG);
|
||||
mMap.onPause();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStop(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
Logger.d(TAG);
|
||||
mMap.onStop();
|
||||
mMap.setCallbackUnsupported(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onScroll(float distanceX, float distanceY)
|
||||
{
|
||||
@@ -146,16 +98,7 @@ public class SurfaceRenderer implements DefaultLifecycleObserver, SurfaceCallbac
|
||||
public void onFling(float velocityX, float velocityY)
|
||||
{
|
||||
Logger.d(TAG, "velocityX: " + velocityX + ", velocityY: " + velocityY);
|
||||
}
|
||||
|
||||
public void onZoomIn()
|
||||
{
|
||||
Map.zoomIn();
|
||||
}
|
||||
|
||||
public void onZoomOut()
|
||||
{
|
||||
Map.zoomOut();
|
||||
// TODO: Implement fling in the native code.
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -185,49 +128,4 @@ public class SurfaceRenderer implements DefaultLifecycleObserver, SurfaceCallbac
|
||||
Logger.d(TAG, "x: " + x + ", y: " + y);
|
||||
Map.onClick(x, y);
|
||||
}
|
||||
|
||||
public void disable()
|
||||
{
|
||||
if (!mIsRunning)
|
||||
{
|
||||
Logger.d(TAG, "Already disabled");
|
||||
return;
|
||||
}
|
||||
|
||||
mCarContext.getCarService(AppManager.class).setSurfaceCallback(null);
|
||||
mMap.onPause();
|
||||
mMap.onSurfaceDestroyed(false);
|
||||
mMap.onStop();
|
||||
mMap.setCallbackUnsupported(null);
|
||||
mMap.setMapRenderingListener(null);
|
||||
|
||||
mIsRunning = false;
|
||||
}
|
||||
|
||||
public void enable()
|
||||
{
|
||||
if (mIsRunning)
|
||||
{
|
||||
Logger.d(TAG, "Already enabled");
|
||||
return;
|
||||
}
|
||||
|
||||
mCarContext.getCarService(AppManager.class).setSurfaceCallback(this);
|
||||
mMap.onStart();
|
||||
mMap.setMapRenderingListener(this);
|
||||
mMap.updateMyPositionRoutingOffset(0);
|
||||
|
||||
mIsRunning = true;
|
||||
}
|
||||
|
||||
public boolean isRenderingActive()
|
||||
{
|
||||
return mIsRunning;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRenderingCreated()
|
||||
{
|
||||
UnitLocale.initializeCurrentUnits();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
package app.organicmaps.car.renderer;
|
||||
|
||||
import static app.organicmaps.sdk.display.DisplayType.Car;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.car.app.CarContext;
|
||||
import androidx.lifecycle.Lifecycle;
|
||||
import androidx.lifecycle.LifecycleOwner;
|
||||
import app.organicmaps.MwmApplication;
|
||||
import app.organicmaps.sdk.Map;
|
||||
import app.organicmaps.sdk.util.log.Logger;
|
||||
|
||||
public class SurfaceRendererLegacy extends Renderer
|
||||
{
|
||||
private static final String TAG = SurfaceRendererLegacy.class.getSimpleName();
|
||||
|
||||
@NonNull
|
||||
private final Map mMap = new Map(Car);
|
||||
|
||||
public SurfaceRendererLegacy(@NonNull CarContext carContext, @NonNull Lifecycle lifecycle)
|
||||
{
|
||||
super(carContext, MwmApplication.from(carContext).getDisplayManager(),
|
||||
MwmApplication.from(carContext).getLocationHelper(), lifecycle);
|
||||
setSurfaceCallback(new SurfaceCallbackLegacy(mCarContext, mMap, mLocationHelper));
|
||||
mMap.setMapRenderingListener(getMapRenderingListener());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
super.onCreate(owner);
|
||||
mMap.onCreate(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStart(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
Logger.d(TAG);
|
||||
if (mDisplayManager.isCarDisplayUsed())
|
||||
mMap.onStart();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
Logger.d(TAG);
|
||||
if (mDisplayManager.isCarDisplayUsed())
|
||||
{
|
||||
mMap.onResume();
|
||||
mMap.updateMyPositionRoutingOffset(0);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
Logger.d(TAG);
|
||||
if (mDisplayManager.isCarDisplayUsed())
|
||||
mMap.onPause();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStop(@NonNull LifecycleOwner owner)
|
||||
{
|
||||
Logger.d(TAG);
|
||||
if (mDisplayManager.isCarDisplayUsed())
|
||||
mMap.onStop();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enable()
|
||||
{
|
||||
super.enable();
|
||||
|
||||
mMap.onStart();
|
||||
mMap.setMapRenderingListener(getMapRenderingListener());
|
||||
mMap.updateMyPositionRoutingOffset(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void disable()
|
||||
{
|
||||
super.disable();
|
||||
|
||||
mMap.onPause();
|
||||
mMap.onSurfaceDestroyed(false);
|
||||
mMap.onStop();
|
||||
mMap.setMapRenderingListener(null);
|
||||
}
|
||||
}
|
||||
@@ -15,7 +15,7 @@ import androidx.car.app.model.Template;
|
||||
import androidx.car.app.navigation.model.MapWithContentTemplate;
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import app.organicmaps.R;
|
||||
import app.organicmaps.car.SurfaceRenderer;
|
||||
import app.organicmaps.car.renderer.Renderer;
|
||||
import app.organicmaps.car.screens.base.BaseMapScreen;
|
||||
import app.organicmaps.car.screens.search.SearchOnMapScreen;
|
||||
import app.organicmaps.car.util.UiHelpers;
|
||||
@@ -37,7 +37,7 @@ public class CategoriesScreen extends BaseMapScreen
|
||||
|
||||
private final int MAX_CATEGORIES_SIZE;
|
||||
|
||||
public CategoriesScreen(@NonNull CarContext carContext, @NonNull SurfaceRenderer surfaceRenderer)
|
||||
public CategoriesScreen(@NonNull CarContext carContext, @NonNull Renderer surfaceRenderer)
|
||||
{
|
||||
super(carContext, surfaceRenderer);
|
||||
final ConstraintManager constraintManager = getCarContext().getCarService(ConstraintManager.class);
|
||||
|
||||
@@ -9,13 +9,13 @@ import androidx.car.app.model.Template;
|
||||
import androidx.car.app.navigation.model.NavigationTemplate;
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import app.organicmaps.R;
|
||||
import app.organicmaps.car.SurfaceRenderer;
|
||||
import app.organicmaps.car.renderer.Renderer;
|
||||
import app.organicmaps.car.screens.base.BaseMapScreen;
|
||||
import app.organicmaps.car.util.UiHelpers;
|
||||
|
||||
public class FreeDriveScreen extends BaseMapScreen
|
||||
{
|
||||
public FreeDriveScreen(@NonNull CarContext carContext, @NonNull SurfaceRenderer surfaceRenderer)
|
||||
public FreeDriveScreen(@NonNull CarContext carContext, @NonNull Renderer surfaceRenderer)
|
||||
{
|
||||
super(carContext, surfaceRenderer);
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ import androidx.car.app.model.Template;
|
||||
import androidx.car.app.navigation.model.MapWithContentTemplate;
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import app.organicmaps.R;
|
||||
import app.organicmaps.car.SurfaceRenderer;
|
||||
import app.organicmaps.car.renderer.Renderer;
|
||||
import app.organicmaps.car.screens.base.BaseMapScreen;
|
||||
import app.organicmaps.car.screens.bookmarks.BookmarkCategoriesScreen;
|
||||
import app.organicmaps.car.screens.search.SearchScreen;
|
||||
@@ -24,7 +24,7 @@ import app.organicmaps.car.util.UiHelpers;
|
||||
|
||||
public class MapScreen extends BaseMapScreen
|
||||
{
|
||||
public MapScreen(@NonNull CarContext carContext, @NonNull SurfaceRenderer surfaceRenderer)
|
||||
public MapScreen(@NonNull CarContext carContext, @NonNull Renderer surfaceRenderer)
|
||||
{
|
||||
super(carContext, surfaceRenderer);
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ import androidx.lifecycle.LifecycleOwner;
|
||||
import app.organicmaps.MwmApplication;
|
||||
import app.organicmaps.R;
|
||||
import app.organicmaps.car.CarAppService;
|
||||
import app.organicmaps.car.SurfaceRenderer;
|
||||
import app.organicmaps.car.renderer.Renderer;
|
||||
import app.organicmaps.car.screens.base.BaseMapScreen;
|
||||
import app.organicmaps.car.screens.settings.DrivingOptionsScreen;
|
||||
import app.organicmaps.car.util.Colors;
|
||||
@@ -261,9 +261,9 @@ public class NavigationScreen extends BaseMapScreen implements RoutingController
|
||||
@NonNull
|
||||
private final CarContext mCarContext;
|
||||
@NonNull
|
||||
private final SurfaceRenderer mSurfaceRenderer;
|
||||
private final Renderer mSurfaceRenderer;
|
||||
|
||||
public Builder(@NonNull final CarContext carContext, @NonNull final SurfaceRenderer surfaceRenderer)
|
||||
public Builder(@NonNull final CarContext carContext, @NonNull final Renderer surfaceRenderer)
|
||||
{
|
||||
mCarContext = carContext;
|
||||
mSurfaceRenderer = surfaceRenderer;
|
||||
|
||||
@@ -26,7 +26,7 @@ import androidx.core.graphics.drawable.IconCompat;
|
||||
import androidx.lifecycle.LifecycleOwner;
|
||||
import app.organicmaps.MwmApplication;
|
||||
import app.organicmaps.R;
|
||||
import app.organicmaps.car.SurfaceRenderer;
|
||||
import app.organicmaps.car.renderer.Renderer;
|
||||
import app.organicmaps.car.screens.base.BaseMapScreen;
|
||||
import app.organicmaps.car.screens.download.DownloadMapsScreenBuilder;
|
||||
import app.organicmaps.car.screens.settings.DrivingOptionsScreen;
|
||||
@@ -340,11 +340,11 @@ public class PlaceScreen extends BaseMapScreen implements OnBackPressedCallback.
|
||||
@NonNull
|
||||
private final CarContext mCarContext;
|
||||
@NonNull
|
||||
private final SurfaceRenderer mSurfaceRenderer;
|
||||
private final Renderer mSurfaceRenderer;
|
||||
@Nullable
|
||||
private MapObject mMapObject;
|
||||
|
||||
public Builder(@NonNull final CarContext carContext, @NonNull final SurfaceRenderer surfaceRenderer)
|
||||
public Builder(@NonNull final CarContext carContext, @NonNull final Renderer surfaceRenderer)
|
||||
{
|
||||
mCarContext = carContext;
|
||||
mSurfaceRenderer = surfaceRenderer;
|
||||
|
||||
@@ -2,21 +2,21 @@ package app.organicmaps.car.screens.base;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.car.app.CarContext;
|
||||
import app.organicmaps.car.SurfaceRenderer;
|
||||
import app.organicmaps.car.renderer.Renderer;
|
||||
|
||||
public abstract class BaseMapScreen extends BaseScreen
|
||||
{
|
||||
@NonNull
|
||||
private final SurfaceRenderer mSurfaceRenderer;
|
||||
private final Renderer mSurfaceRenderer;
|
||||
|
||||
public BaseMapScreen(@NonNull CarContext carContext, @NonNull SurfaceRenderer surfaceRenderer)
|
||||
public BaseMapScreen(@NonNull CarContext carContext, @NonNull Renderer surfaceRenderer)
|
||||
{
|
||||
super(carContext);
|
||||
mSurfaceRenderer = surfaceRenderer;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
protected SurfaceRenderer getSurfaceRenderer()
|
||||
protected Renderer getSurfaceRenderer()
|
||||
{
|
||||
return mSurfaceRenderer;
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ import androidx.car.app.model.Row;
|
||||
import androidx.car.app.model.Template;
|
||||
import androidx.car.app.navigation.model.MapWithContentTemplate;
|
||||
import app.organicmaps.R;
|
||||
import app.organicmaps.car.SurfaceRenderer;
|
||||
import app.organicmaps.car.renderer.Renderer;
|
||||
import app.organicmaps.car.screens.base.BaseMapScreen;
|
||||
import app.organicmaps.car.util.UiHelpers;
|
||||
import app.organicmaps.sdk.bookmarks.data.BookmarkCategory;
|
||||
@@ -23,7 +23,7 @@ public class BookmarkCategoriesScreen extends BaseMapScreen
|
||||
{
|
||||
private final int MAX_CATEGORIES_SIZE;
|
||||
|
||||
public BookmarkCategoriesScreen(@NonNull CarContext carContext, @NonNull SurfaceRenderer surfaceRenderer)
|
||||
public BookmarkCategoriesScreen(@NonNull CarContext carContext, @NonNull Renderer surfaceRenderer)
|
||||
{
|
||||
super(carContext, surfaceRenderer);
|
||||
final ConstraintManager constraintManager = getCarContext().getCarService(ConstraintManager.class);
|
||||
|
||||
@@ -13,7 +13,7 @@ import androidx.car.app.navigation.model.MapWithContentTemplate;
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import androidx.lifecycle.LifecycleOwner;
|
||||
import app.organicmaps.R;
|
||||
import app.organicmaps.car.SurfaceRenderer;
|
||||
import app.organicmaps.car.renderer.Renderer;
|
||||
import app.organicmaps.car.screens.base.BaseMapScreen;
|
||||
import app.organicmaps.car.util.UiHelpers;
|
||||
import app.organicmaps.sdk.bookmarks.data.BookmarkCategory;
|
||||
@@ -31,7 +31,7 @@ public class BookmarksScreen extends BaseMapScreen
|
||||
|
||||
private boolean mIsOnSortingScreen = false;
|
||||
|
||||
public BookmarksScreen(@NonNull CarContext carContext, @NonNull SurfaceRenderer surfaceRenderer,
|
||||
public BookmarksScreen(@NonNull CarContext carContext, @NonNull Renderer surfaceRenderer,
|
||||
@NonNull BookmarkCategory bookmarkCategory)
|
||||
{
|
||||
super(carContext, surfaceRenderer);
|
||||
|
||||
@@ -16,7 +16,7 @@ import androidx.core.graphics.drawable.IconCompat;
|
||||
import androidx.lifecycle.LifecycleOwner;
|
||||
import app.organicmaps.MwmApplication;
|
||||
import app.organicmaps.R;
|
||||
import app.organicmaps.car.SurfaceRenderer;
|
||||
import app.organicmaps.car.renderer.Renderer;
|
||||
import app.organicmaps.car.screens.base.BaseMapScreen;
|
||||
import app.organicmaps.car.util.UiHelpers;
|
||||
import app.organicmaps.sdk.bookmarks.data.BookmarkCategory;
|
||||
@@ -38,7 +38,7 @@ class SortingScreen extends BaseMapScreen
|
||||
|
||||
private @BookmarkManager.SortingType int mNewSortingType;
|
||||
|
||||
public SortingScreen(@NonNull CarContext carContext, @NonNull SurfaceRenderer surfaceRenderer,
|
||||
public SortingScreen(@NonNull CarContext carContext, @NonNull Renderer surfaceRenderer,
|
||||
@NonNull BookmarkCategory bookmarkCategory)
|
||||
{
|
||||
super(carContext, surfaceRenderer);
|
||||
|
||||
@@ -17,7 +17,7 @@ import androidx.core.graphics.drawable.IconCompat;
|
||||
import androidx.lifecycle.LifecycleOwner;
|
||||
import app.organicmaps.MwmApplication;
|
||||
import app.organicmaps.R;
|
||||
import app.organicmaps.car.SurfaceRenderer;
|
||||
import app.organicmaps.car.renderer.Renderer;
|
||||
import app.organicmaps.car.screens.base.BaseMapScreen;
|
||||
import app.organicmaps.car.util.UiHelpers;
|
||||
import app.organicmaps.sdk.bookmarks.data.MapObject;
|
||||
@@ -177,7 +177,7 @@ public class SearchOnMapScreen extends BaseMapScreen implements SearchListener
|
||||
@NonNull
|
||||
private final CarContext mCarContext;
|
||||
@NonNull
|
||||
private final SurfaceRenderer mSurfaceRenderer;
|
||||
private final Renderer mSurfaceRenderer;
|
||||
|
||||
@NonNull
|
||||
private String mQuery = "";
|
||||
@@ -185,7 +185,7 @@ public class SearchOnMapScreen extends BaseMapScreen implements SearchListener
|
||||
private String mLocale;
|
||||
private boolean mIsCategory;
|
||||
|
||||
public Builder(@NonNull CarContext carContext, @NonNull SurfaceRenderer surfaceRenderer)
|
||||
public Builder(@NonNull CarContext carContext, @NonNull Renderer surfaceRenderer)
|
||||
{
|
||||
mCarContext = carContext;
|
||||
mSurfaceRenderer = surfaceRenderer;
|
||||
|
||||
@@ -16,7 +16,7 @@ import androidx.core.graphics.drawable.IconCompat;
|
||||
import androidx.lifecycle.LifecycleOwner;
|
||||
import app.organicmaps.MwmApplication;
|
||||
import app.organicmaps.R;
|
||||
import app.organicmaps.car.SurfaceRenderer;
|
||||
import app.organicmaps.car.renderer.Renderer;
|
||||
import app.organicmaps.car.screens.base.BaseMapScreen;
|
||||
import app.organicmaps.sdk.bookmarks.data.MapObject;
|
||||
import app.organicmaps.sdk.search.SearchEngine;
|
||||
@@ -209,14 +209,14 @@ public class SearchScreen extends BaseMapScreen implements SearchTemplate.Search
|
||||
@NonNull
|
||||
private final CarContext mCarContext;
|
||||
@NonNull
|
||||
private final SurfaceRenderer mSurfaceRenderer;
|
||||
private final Renderer mSurfaceRenderer;
|
||||
|
||||
@NonNull
|
||||
private String mQuery = "";
|
||||
@NonNull
|
||||
private String mLocale;
|
||||
|
||||
public Builder(@NonNull CarContext carContext, @NonNull SurfaceRenderer surfaceRenderer)
|
||||
public Builder(@NonNull CarContext carContext, @NonNull Renderer surfaceRenderer)
|
||||
{
|
||||
mCarContext = carContext;
|
||||
mSurfaceRenderer = surfaceRenderer;
|
||||
|
||||
@@ -13,7 +13,7 @@ import androidx.car.app.model.Template;
|
||||
import androidx.car.app.navigation.model.MapWithContentTemplate;
|
||||
import androidx.lifecycle.LifecycleOwner;
|
||||
import app.organicmaps.R;
|
||||
import app.organicmaps.car.SurfaceRenderer;
|
||||
import app.organicmaps.car.renderer.Renderer;
|
||||
import app.organicmaps.car.screens.base.BaseMapScreen;
|
||||
import app.organicmaps.car.util.Toggle;
|
||||
import app.organicmaps.car.util.UiHelpers;
|
||||
@@ -36,7 +36,7 @@ public class DrivingOptionsScreen extends BaseMapScreen
|
||||
@NonNull
|
||||
private final Map<RoadType, Boolean> mInitialDrivingOptionsState = new HashMap<>();
|
||||
|
||||
public DrivingOptionsScreen(@NonNull CarContext carContext, @NonNull SurfaceRenderer surfaceRenderer)
|
||||
public DrivingOptionsScreen(@NonNull CarContext carContext, @NonNull Renderer surfaceRenderer)
|
||||
{
|
||||
super(carContext, surfaceRenderer);
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ import androidx.car.app.model.Template;
|
||||
import androidx.car.app.navigation.model.MapWithContentTemplate;
|
||||
import app.organicmaps.BuildConfig;
|
||||
import app.organicmaps.R;
|
||||
import app.organicmaps.car.SurfaceRenderer;
|
||||
import app.organicmaps.car.renderer.Renderer;
|
||||
import app.organicmaps.car.screens.base.BaseMapScreen;
|
||||
import app.organicmaps.car.util.UiHelpers;
|
||||
import app.organicmaps.sdk.Framework;
|
||||
@@ -20,7 +20,7 @@ import app.organicmaps.sdk.util.DateUtils;
|
||||
|
||||
public class HelpScreen extends BaseMapScreen
|
||||
{
|
||||
public HelpScreen(@NonNull CarContext carContext, @NonNull SurfaceRenderer surfaceRenderer)
|
||||
public HelpScreen(@NonNull CarContext carContext, @NonNull Renderer surfaceRenderer)
|
||||
{
|
||||
super(carContext, surfaceRenderer);
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ import androidx.car.app.model.Row;
|
||||
import androidx.car.app.model.Template;
|
||||
import androidx.car.app.navigation.model.MapWithContentTemplate;
|
||||
import app.organicmaps.R;
|
||||
import app.organicmaps.car.SurfaceRenderer;
|
||||
import app.organicmaps.car.renderer.Renderer;
|
||||
import app.organicmaps.car.screens.base.BaseMapScreen;
|
||||
import app.organicmaps.car.util.ThemeUtils;
|
||||
import app.organicmaps.car.util.Toggle;
|
||||
@@ -33,7 +33,7 @@ public class SettingsScreen extends BaseMapScreen
|
||||
void set(boolean newValue);
|
||||
}
|
||||
|
||||
public SettingsScreen(@NonNull CarContext carContext, @NonNull SurfaceRenderer surfaceRenderer)
|
||||
public SettingsScreen(@NonNull CarContext carContext, @NonNull Renderer surfaceRenderer)
|
||||
{
|
||||
super(carContext, surfaceRenderer);
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ import androidx.car.app.model.Template;
|
||||
import androidx.car.app.navigation.model.MapWithContentTemplate;
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import app.organicmaps.R;
|
||||
import app.organicmaps.car.SurfaceRenderer;
|
||||
import app.organicmaps.car.renderer.Renderer;
|
||||
import app.organicmaps.car.screens.base.BaseMapScreen;
|
||||
import app.organicmaps.car.util.ThemeUtils;
|
||||
import app.organicmaps.car.util.UiHelpers;
|
||||
@@ -24,7 +24,7 @@ public class ThemeScreen extends BaseMapScreen
|
||||
@NonNull
|
||||
private final CarIcon mRadioButtonSelectedIcon;
|
||||
|
||||
public ThemeScreen(@NonNull CarContext carContext, @NonNull SurfaceRenderer surfaceRenderer)
|
||||
public ThemeScreen(@NonNull CarContext carContext, @NonNull Renderer surfaceRenderer)
|
||||
{
|
||||
super(carContext, surfaceRenderer);
|
||||
mRadioButtonIcon =
|
||||
|
||||
@@ -12,7 +12,7 @@ import androidx.car.app.notification.CarPendingIntent;
|
||||
import app.organicmaps.MwmApplication;
|
||||
import app.organicmaps.api.Const;
|
||||
import app.organicmaps.car.CarAppService;
|
||||
import app.organicmaps.car.SurfaceRenderer;
|
||||
import app.organicmaps.car.renderer.Renderer;
|
||||
import app.organicmaps.car.screens.NavigationScreen;
|
||||
import app.organicmaps.car.screens.search.SearchScreen;
|
||||
import app.organicmaps.sdk.Framework;
|
||||
@@ -30,7 +30,7 @@ public final class IntentUtils
|
||||
|
||||
private static final int SEARCH_IN_VIEWPORT_ZOOM = 16;
|
||||
|
||||
public static void processIntent(@NonNull CarContext carContext, @NonNull SurfaceRenderer surfaceRenderer,
|
||||
public static void processIntent(@NonNull CarContext carContext, @NonNull Renderer surfaceRenderer,
|
||||
@NonNull Intent intent)
|
||||
{
|
||||
final String action = intent.getAction();
|
||||
@@ -50,8 +50,8 @@ public final class IntentUtils
|
||||
}
|
||||
|
||||
// https://developer.android.com/reference/androidx/car/app/CarContext#startCarApp(android.content.Intent)
|
||||
private static void processNavigationIntent(@NonNull CarContext carContext, @NonNull SurfaceRenderer surfaceRenderer,
|
||||
@NonNull Intent intent)
|
||||
private static void processNavigationIntent(@NonNull CarContext carContext,
|
||||
@NonNull Renderer surfaceRenderer, @NonNull Intent intent)
|
||||
{
|
||||
// TODO (AndrewShkrob): This logic will need to be revised when we introduce support for adding stops during
|
||||
// navigation or route planning. Skip navigation intents during navigation
|
||||
|
||||
@@ -15,7 +15,7 @@ import androidx.car.app.navigation.model.MapController;
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import app.organicmaps.MwmApplication;
|
||||
import app.organicmaps.R;
|
||||
import app.organicmaps.car.SurfaceRenderer;
|
||||
import app.organicmaps.car.renderer.Renderer;
|
||||
import app.organicmaps.car.screens.base.BaseMapScreen;
|
||||
import app.organicmaps.car.screens.settings.SettingsScreen;
|
||||
import app.organicmaps.sdk.Map;
|
||||
@@ -33,13 +33,14 @@ public final class UiHelpers
|
||||
{
|
||||
@NonNull
|
||||
public static ActionStrip createSettingsActionStrip(@NonNull BaseMapScreen mapScreen,
|
||||
@NonNull SurfaceRenderer surfaceRenderer)
|
||||
@NonNull Renderer surfaceRenderer)
|
||||
{
|
||||
return new ActionStrip.Builder().addAction(createSettingsAction(mapScreen, surfaceRenderer)).build();
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public static ActionStrip createMapActionStrip(@NonNull CarContext context, @NonNull SurfaceRenderer surfaceRenderer)
|
||||
public static ActionStrip createMapActionStrip(@NonNull CarContext context,
|
||||
@NonNull Renderer surfaceRenderer)
|
||||
{
|
||||
final CarIcon iconPlus = new CarIcon.Builder(IconCompat.createWithResource(context, R.drawable.ic_plus)).build();
|
||||
final CarIcon iconMinus = new CarIcon.Builder(IconCompat.createWithResource(context, R.drawable.ic_minus)).build();
|
||||
@@ -58,27 +59,30 @@ public final class UiHelpers
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public static MapController createMapController(@NonNull CarContext context, @NonNull SurfaceRenderer surfaceRenderer)
|
||||
public static MapController createMapController(@NonNull CarContext context,
|
||||
@NonNull Renderer surfaceRenderer)
|
||||
{
|
||||
return new MapController.Builder().setMapActionStrip(createMapActionStrip(context, surfaceRenderer)).build();
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public static Action createSettingsAction(@NonNull BaseMapScreen mapScreen, @NonNull SurfaceRenderer surfaceRenderer)
|
||||
public static Action createSettingsAction(@NonNull BaseMapScreen mapScreen,
|
||||
@NonNull Renderer surfaceRenderer)
|
||||
{
|
||||
return createSettingsAction(mapScreen, surfaceRenderer, null);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public static Action createSettingsActionForResult(@NonNull BaseMapScreen mapScreen,
|
||||
@NonNull SurfaceRenderer surfaceRenderer,
|
||||
@NonNull Renderer surfaceRenderer,
|
||||
@NonNull OnScreenResultListener onScreenResultListener)
|
||||
{
|
||||
return createSettingsAction(mapScreen, surfaceRenderer, onScreenResultListener);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
private static Action createSettingsAction(@NonNull BaseMapScreen mapScreen, @NonNull SurfaceRenderer surfaceRenderer,
|
||||
private static Action createSettingsAction(@NonNull BaseMapScreen mapScreen,
|
||||
@NonNull Renderer surfaceRenderer,
|
||||
@Nullable OnScreenResultListener onScreenResultListener)
|
||||
{
|
||||
final CarContext context = mapScreen.getCarContext();
|
||||
|
||||
Reference in New Issue
Block a user