Rendering Not Working Fine
Signed-off-by: Priyank Shankar <shankarpriyank312002@gmail.com>
This commit is contained in:
parent
fe0e83d3d6
commit
48547ae2f8
2 changed files with 93 additions and 4 deletions
|
@ -1,21 +1,36 @@
|
|||
package com.androidAuto;
|
||||
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Rect;
|
||||
import android.util.Log;
|
||||
import android.view.Surface;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.car.app.AppManager;
|
||||
import androidx.car.app.CarContext;
|
||||
import androidx.car.app.Screen;
|
||||
import androidx.car.app.SurfaceCallback;
|
||||
import androidx.car.app.SurfaceContainer;
|
||||
import androidx.car.app.model.Action;
|
||||
import androidx.car.app.model.ActionStrip;
|
||||
import androidx.car.app.model.Template;
|
||||
import androidx.car.app.navigation.NavigationManager;
|
||||
import androidx.car.app.navigation.model.NavigationTemplate;
|
||||
import com.mapswithme.maps.BuildConfig;
|
||||
import com.mapswithme.maps.MapFragment;
|
||||
|
||||
import static androidx.car.app.model.Action.BACK;
|
||||
|
||||
public class HelloWorldScreen extends Screen
|
||||
public class HelloWorldScreen extends Screen implements SurfaceCallback
|
||||
{
|
||||
private static final String TAG = "error";
|
||||
private SurfaceCallback mSurfaceCallback;
|
||||
|
||||
public HelloWorldScreen(@NonNull CarContext carContext)
|
||||
{
|
||||
super(carContext);
|
||||
|
||||
carContext.getCarService(AppManager.class).setSurfaceCallback(this);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
|
@ -24,11 +39,85 @@ public class HelloWorldScreen extends Screen
|
|||
{
|
||||
NavigationTemplate.Builder builder = new NavigationTemplate.Builder();
|
||||
Action back = BACK;
|
||||
|
||||
ActionStrip.Builder actionStripBuilder = new ActionStrip.Builder();
|
||||
actionStripBuilder.addAction(back).addAction(new Action.Builder().setTitle("Test").build());
|
||||
builder.setActionStrip(actionStripBuilder.build());
|
||||
NavigationManager navigationManager = getCarContext().getCarService(NavigationManager.class);
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSurfaceAvailable(@NonNull SurfaceContainer surfaceContainer)
|
||||
{
|
||||
|
||||
int h = surfaceContainer.getHeight();
|
||||
int w = surfaceContainer.getWidth();
|
||||
Canvas canvas = null;
|
||||
|
||||
if (surfaceContainer.getSurface() != null)
|
||||
{
|
||||
canvas = surfaceContainer.getSurface()
|
||||
.lockCanvas(new Rect(Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE));
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.e("NPE", "Surface Not Available");
|
||||
}
|
||||
if (canvas == null)
|
||||
{
|
||||
Log.e("Nope", "Cannot draw onto the canvas as it's null");
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.e("Draw", "Rendering Should be done successfully?");
|
||||
Surface surface = surfaceContainer.getSurface();
|
||||
MapFragment.nativeCreateEngine(surface, surface.lockHardwareCanvas()
|
||||
.getDensity(), false, true, BuildConfig.VERSION_CODE);
|
||||
MapFragment.nativeAttachSurface(surface);
|
||||
surfaceContainer.getSurface().unlockCanvasAndPost(canvas);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onVisibleAreaChanged(@NonNull Rect visibleArea)
|
||||
{
|
||||
SurfaceCallback.super.onVisibleAreaChanged(visibleArea);
|
||||
Log.e("Something", "Lets see");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStableAreaChanged(@NonNull Rect stableArea)
|
||||
{
|
||||
SurfaceCallback.super.onStableAreaChanged(stableArea);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSurfaceDestroyed(@NonNull SurfaceContainer surfaceContainer)
|
||||
{
|
||||
SurfaceCallback.super.onSurfaceDestroyed(surfaceContainer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onScroll(float distanceX, float distanceY)
|
||||
{
|
||||
SurfaceCallback.super.onScroll(distanceX, distanceY);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFling(float velocityX, float velocityY)
|
||||
{
|
||||
SurfaceCallback.super.onFling(velocityX, velocityY);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onScale(float focusX, float focusY, float scaleFactor)
|
||||
{
|
||||
SurfaceCallback.super.onScale(focusX, focusY, scaleFactor);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(float x, float y)
|
||||
{
|
||||
SurfaceCallback.super.onClick(x, y);
|
||||
}
|
||||
}
|
|
@ -394,11 +394,11 @@ public class MapFragment extends BaseMwmFragment
|
|||
public static native boolean nativeShowMapForUrl(String url);
|
||||
static native boolean nativeIsEngineCreated();
|
||||
static native boolean nativeDestroySurfaceOnDetach();
|
||||
private static native boolean nativeCreateEngine(Surface surface, int density,
|
||||
public static native boolean nativeCreateEngine(Surface surface, int density,
|
||||
boolean firstLaunch,
|
||||
boolean isLaunchByDeepLink,
|
||||
int appVersionCode);
|
||||
private static native boolean nativeAttachSurface(Surface surface);
|
||||
public static native boolean nativeAttachSurface(Surface surface);
|
||||
private static native void nativeDetachSurface(boolean destroySurface);
|
||||
private static native void nativePauseSurfaceRendering();
|
||||
private static native void nativeResumeSurfaceRendering();
|
||||
|
|
Reference in a new issue