Cleanup WallpaperPreviewer
- Do #updatePreviewCardRadius in its constructor
Test: Manually
Fixes: 159777941
Change-Id: I251b02f0f1ac0bde9b3e99c6a56c25abf33c4dab
diff --git a/src/com/android/customization/picker/WallpaperPreviewer.java b/src/com/android/customization/picker/WallpaperPreviewer.java
index 9e56cec..ba750c9 100644
--- a/src/com/android/customization/picker/WallpaperPreviewer.java
+++ b/src/com/android/customization/picker/WallpaperPreviewer.java
@@ -28,6 +28,7 @@
import android.view.SurfaceControlViewHost;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
+import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
@@ -84,6 +85,16 @@
mWallpaperSurface = wallpaperSurface;
mWallpaperSurface.setZOrderMediaOverlay(false);
mWallpaperSurface.getHolder().addCallback(mWallpaperSurfaceCallback);
+
+ View rootView = homePreview.getRootView();
+ rootView.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
+ @Override
+ public void onLayoutChange(View v, int left, int top, int right, int bottom,
+ int oldLeft, int oldTop, int oldRight, int oldBottom) {
+ updatePreviewCardRadius();
+ rootView.removeOnLayoutChangeListener(this);
+ }
+ });
}
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
@@ -128,18 +139,6 @@
}
}
- /** Updates the preview card view radius to match the device radius. */
- public void updatePreviewCardRadius() {
- final float screenAspectRatio =
- ScreenSizeCalculator.getInstance().getScreenAspectRatio(mActivity);
- CardView cardView = (CardView) mHomePreview.getParent();
- final int cardWidth = (int) (cardView.getMeasuredHeight() / screenAspectRatio);
- ViewGroup.LayoutParams layoutParams = cardView.getLayoutParams();
- layoutParams.width = cardWidth;
- cardView.setLayoutParams(layoutParams);
- cardView.setRadius(SizeCalculator.getPreviewCornerRadius(mActivity, cardWidth));
- }
-
/**
* Sets a wallpaper to be shown on preview screen.
*
@@ -148,7 +147,7 @@
*/
public void setWallpaper(WallpaperInfo wallpaperInfo,
@Nullable WallpaperColorsListener listener) {
- mWallpaper = wallpaperInfo;
+ mWallpaper = wallpaperInfo;
mWallpaperColorsListener = listener;
setUpWallpaperPreview();
}
@@ -224,6 +223,23 @@
});
}
+ /** Updates the preview card view corner radius to match the device corner radius. */
+ private void updatePreviewCardRadius() {
+ final float screenAspectRatio =
+ ScreenSizeCalculator.getInstance().getScreenAspectRatio(mActivity);
+ CardView cardView = (CardView) mHomePreview.getParent();
+ final int cardWidth = (int) (cardView.getMeasuredHeight() / screenAspectRatio);
+ ViewGroup.LayoutParams layoutParams = cardView.getLayoutParams();
+ layoutParams.width = cardWidth;
+ cardView.setLayoutParams(layoutParams);
+ cardView.setRadius(SizeCalculator.getPreviewCornerRadius(mActivity, cardWidth));
+ }
+
+ private static Intent getWallpaperIntent(android.app.WallpaperInfo info) {
+ return new Intent(WallpaperService.SERVICE_INTERFACE)
+ .setClassName(info.getPackageName(), info.getServiceName());
+ }
+
private class WallpaperSurfaceCallback implements SurfaceHolder.Callback {
private Surface mLastSurface;
@@ -262,10 +278,5 @@
mHost = null;
}
}
- };
-
- private static Intent getWallpaperIntent(android.app.WallpaperInfo info) {
- return new Intent(WallpaperService.SERVICE_INTERFACE)
- .setClassName(info.getPackageName(), info.getServiceName());
}
}
diff --git a/src/com/android/customization/picker/grid/GridFragment.java b/src/com/android/customization/picker/grid/GridFragment.java
index 98c7515..ad37fbf 100644
--- a/src/com/android/customization/picker/grid/GridFragment.java
+++ b/src/com/android/customization/picker/grid/GridFragment.java
@@ -150,15 +150,6 @@
mGridOptionPreviewer = new GridOptionPreviewer(mGridManager,
view.findViewById(R.id.grid_preview_container));
- view.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
- @Override
- public void onLayoutChange(View v, int left, int top, int right, int bottom,
- int oldLeft, int oldTop, int oldRight, int oldBottom) {
- wallpaperPreviewer.updatePreviewCardRadius();
- view.removeOnLayoutChangeListener(this);
- }
- });
-
view.findViewById(R.id.grid_preview_card).setOnClickListener(v -> showFullPreview());
return view;
}
diff --git a/src/com/android/customization/picker/grid/GridFullPreviewFragment.java b/src/com/android/customization/picker/grid/GridFullPreviewFragment.java
index ae3370c..69105df 100644
--- a/src/com/android/customization/picker/grid/GridFullPreviewFragment.java
+++ b/src/com/android/customization/picker/grid/GridFullPreviewFragment.java
@@ -104,15 +104,6 @@
mGridOptionPreviewer = new GridOptionPreviewer(gridManager,
view.findViewById(R.id.grid_preview_container));
-
- view.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
- @Override
- public void onLayoutChange(View v, int left, int top, int right, int bottom,
- int oldLeft, int oldTop, int oldRight, int oldBottom) {
- mWallpaperPreviewer.updatePreviewCardRadius();
- view.removeOnLayoutChangeListener(this);
- }
- });
return view;
}
diff --git a/src/com/android/customization/picker/theme/CustomThemeNameFragment.java b/src/com/android/customization/picker/theme/CustomThemeNameFragment.java
index 750c405..f36c80b 100644
--- a/src/com/android/customization/picker/theme/CustomThemeNameFragment.java
+++ b/src/com/android/customization/picker/theme/CustomThemeNameFragment.java
@@ -106,15 +106,6 @@
// Set theme default name.
mNameEditor = view.findViewById(R.id.custom_theme_name);
mNameEditor.setText(getOriginalThemeName());
-
- view.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
- @Override
- public void onLayoutChange(View v, int left, int top, int right, int bottom,
- int oldLeft, int oldTop, int oldRight, int oldBottom) {
- wallpaperPreviewer.updatePreviewCardRadius();
- view.removeOnLayoutChangeListener(this);
- }
- });
return view;
}
diff --git a/src/com/android/customization/picker/theme/ThemeFragment.java b/src/com/android/customization/picker/theme/ThemeFragment.java
index 4b77214..de8aa69 100644
--- a/src/com/android/customization/picker/theme/ThemeFragment.java
+++ b/src/com/android/customization/picker/theme/ThemeFragment.java
@@ -143,15 +143,6 @@
mThemeOptionPreviewer::updateColorForLauncherWidgets);
}, false);
- view.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
- @Override
- public void onLayoutChange(View v, int left, int top, int right, int bottom,
- int oldLeft, int oldTop, int oldRight, int oldBottom) {
- mWallpaperPreviewer.updatePreviewCardRadius();
- view.removeOnLayoutChangeListener(this);
- }
- });
-
view.findViewById(R.id.theme_preview_card).setOnClickListener(v -> showFullPreview());
return view;
}
diff --git a/src/com/android/customization/picker/theme/ThemeFullPreviewFragment.java b/src/com/android/customization/picker/theme/ThemeFullPreviewFragment.java
index c96c3ac..7cbeab9 100644
--- a/src/com/android/customization/picker/theme/ThemeFullPreviewFragment.java
+++ b/src/com/android/customization/picker/theme/ThemeFullPreviewFragment.java
@@ -120,15 +120,6 @@
view.findViewById(R.id.wallpaper_preview_surface));
wallpaperPreviewer.setWallpaper(mWallpaper,
themeOptionPreviewer::updateColorForLauncherWidgets);
-
- view.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
- @Override
- public void onLayoutChange(View v, int left, int top, int right, int bottom,
- int oldLeft, int oldTop, int oldRight, int oldBottom) {
- wallpaperPreviewer.updatePreviewCardRadius();
- view.removeOnLayoutChangeListener(this);
- }
- });
return view;
}