[framework] Modify scalePreview in WallpaperService
Modified the implementation of scalePreview to call setFixedSize instead This function is used by the wallpaper picker to resolve the scaling issue. A TODO b/262750854 is created to later have a holistic fix. Bug: 204844104 Bug: 240291366 Test: Manuel Change-Id: Idd45eaac34db69d7e2bdd5450678b7d7e86d4629
This commit is contained in:
@@ -42,7 +42,7 @@ interface IWallpaperEngine {
|
||||
@UnsupportedAppUsage
|
||||
oneway void destroy();
|
||||
oneway void setZoomOut(float scale);
|
||||
oneway void scalePreview(in Rect positionInWindow);
|
||||
oneway void resizePreview(in Rect positionInWindow);
|
||||
oneway void removeLocalColorsAreas(in List<RectF> regions);
|
||||
oneway void addLocalColorsAreas(in List<RectF> regions);
|
||||
SurfaceControl mirrorSurfaceControl();
|
||||
|
||||
@@ -163,7 +163,7 @@ public abstract class WallpaperService extends Service {
|
||||
private static final int MSG_TOUCH_EVENT = 10040;
|
||||
private static final int MSG_REQUEST_WALLPAPER_COLORS = 10050;
|
||||
private static final int MSG_ZOOM = 10100;
|
||||
private static final int MSG_SCALE_PREVIEW = 10110;
|
||||
private static final int MSG_RESIZE_PREVIEW = 10110;
|
||||
private static final int MSG_REPORT_SHOWN = 10150;
|
||||
private static final int MSG_UPDATE_DIMMING = 10200;
|
||||
private static final List<Float> PROHIBITED_STEPS = Arrays.asList(0f, Float.POSITIVE_INFINITY,
|
||||
@@ -323,7 +323,7 @@ public abstract class WallpaperService extends Service {
|
||||
|
||||
@Override
|
||||
public void setFixedSize(int width, int height) {
|
||||
if (!mFixedSizeAllowed) {
|
||||
if (!mFixedSizeAllowed && !mIWallpaperEngine.mIsPreview) {
|
||||
// Regular apps can't do this. It can only work for
|
||||
// certain designs of window animations, so you can't
|
||||
// rely on it.
|
||||
@@ -1372,16 +1372,9 @@ public abstract class WallpaperService extends Service {
|
||||
}
|
||||
}
|
||||
|
||||
private void scalePreview(Rect position) {
|
||||
if (isPreview() && mPreviewSurfacePosition == null && position != null
|
||||
|| mPreviewSurfacePosition != null
|
||||
&& !mPreviewSurfacePosition.equals(position)) {
|
||||
mPreviewSurfacePosition = position;
|
||||
if (mSurfaceControl.isValid()) {
|
||||
reposition();
|
||||
} else {
|
||||
updateSurface(false, false, false);
|
||||
}
|
||||
private void resizePreview(Rect position) {
|
||||
if (position != null) {
|
||||
mSurfaceHolder.setFixedSize(position.width(), position.height());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2295,8 +2288,8 @@ public abstract class WallpaperService extends Service {
|
||||
mCaller.sendMessage(msg);
|
||||
}
|
||||
|
||||
public void scalePreview(Rect position) {
|
||||
Message msg = mCaller.obtainMessageO(MSG_SCALE_PREVIEW, position);
|
||||
public void resizePreview(Rect position) {
|
||||
Message msg = mCaller.obtainMessageO(MSG_RESIZE_PREVIEW, position);
|
||||
mCaller.sendMessage(msg);
|
||||
}
|
||||
|
||||
@@ -2383,8 +2376,8 @@ public abstract class WallpaperService extends Service {
|
||||
case MSG_UPDATE_DIMMING:
|
||||
mEngine.updateWallpaperDimming(Float.intBitsToFloat(message.arg1));
|
||||
break;
|
||||
case MSG_SCALE_PREVIEW:
|
||||
mEngine.scalePreview((Rect) message.obj);
|
||||
case MSG_RESIZE_PREVIEW:
|
||||
mEngine.resizePreview((Rect) message.obj);
|
||||
break;
|
||||
case MSG_VISIBILITY_CHANGED:
|
||||
if (DEBUG) Log.v(TAG, "Visibility change in " + mEngine
|
||||
|
||||
Reference in New Issue
Block a user