Merge changes Ic5c02548,I9c38e90a into main
* changes:
Remove unnecessary vertical parallax
Add parallax to cropHints for multi-crop
diff --git a/src/com/android/wallpaper/model/StaticWallpaperPrefMetadata.kt b/src/com/android/wallpaper/model/StaticWallpaperPrefMetadata.kt
index 2468b8d..8a29b27 100755
--- a/src/com/android/wallpaper/model/StaticWallpaperPrefMetadata.kt
+++ b/src/com/android/wallpaper/model/StaticWallpaperPrefMetadata.kt
@@ -15,9 +15,6 @@
*/
package com.android.wallpaper.model
-import android.graphics.Point
-import android.graphics.Rect
-
/** Metadata for the static image wallpaper to be saved to the system preferences. */
data class StaticWallpaperPrefMetadata(
val attributions: List<String?>?,
@@ -26,5 +23,4 @@
val hashCode: Long?,
val managerId: Int,
val remoteId: String,
- val cropHints: Map<Point, Rect>?,
)
diff --git a/src/com/android/wallpaper/module/DefaultWallpaperPersister.java b/src/com/android/wallpaper/module/DefaultWallpaperPersister.java
index fc5c40a..6a43253 100755
--- a/src/com/android/wallpaper/module/DefaultWallpaperPersister.java
+++ b/src/com/android/wallpaper/module/DefaultWallpaperPersister.java
@@ -745,9 +745,7 @@
mWallpaper.getCollectionId(mAppContext),
bitmapHash,
wallpaperId,
- mWallpaper.getWallpaperId(),
- // Always null cropHints as this path doesn't support multi-crop
- /* cropHints= */ null));
+ mWallpaper.getWallpaperId()));
if (destination == DEST_HOME_SCREEN || destination == DEST_BOTH) {
mWallpaperPreferences.storeLatestWallpaper(
diff --git a/src/com/android/wallpaper/module/DefaultWallpaperPreferences.kt b/src/com/android/wallpaper/module/DefaultWallpaperPreferences.kt
index 76bd2bf..f6c55f9 100755
--- a/src/com/android/wallpaper/module/DefaultWallpaperPreferences.kt
+++ b/src/com/android/wallpaper/module/DefaultWallpaperPreferences.kt
@@ -26,7 +26,6 @@
import android.graphics.Point
import android.graphics.Rect
import android.util.Log
-import androidx.core.content.edit
import com.android.wallpaper.model.LiveWallpaperInfo
import com.android.wallpaper.model.LiveWallpaperPrefMetadata
import com.android.wallpaper.model.StaticWallpaperPrefMetadata
@@ -282,7 +281,6 @@
.remove(NoBackupKeys.KEY_HOME_WALLPAPER_REMOTE_ID)
.remove(NoBackupKeys.KEY_HOME_WALLPAPER_BASE_IMAGE_URL)
.remove(NoBackupKeys.KEY_HOME_WALLPAPER_BACKING_FILE)
- .remove(NoBackupKeys.KEY_CROP_HINTS)
.apply()
}
@@ -500,7 +498,6 @@
.remove(NoBackupKeys.KEY_LOCK_WALLPAPER_MANAGER_ID)
.remove(NoBackupKeys.KEY_LOCK_WALLPAPER_REMOTE_ID)
.remove(NoBackupKeys.KEY_LOCK_WALLPAPER_BACKING_FILE)
- .remove(NoBackupKeys.KEY_CROP_HINTS)
.apply()
}
@@ -908,31 +905,6 @@
wallpaperModel: LiveWallpaperModel
) {}
- override fun storeWallpaperCropHints(cropHints: Map<Point, Rect?>) {
- noBackupPrefs.edit {
- putStringSet(
- NoBackupKeys.KEY_CROP_HINTS,
- cropHints
- .map { (point, rect) ->
- "${point.flattenToString()}$KEY_VALUE_DIVIDER${rect?.flattenToString()}"
- }
- .toSet()
- )
- }
- }
-
- override fun getWallpaperCropHints(): Map<Point, Rect?> {
- val stringSet = noBackupPrefs.getStringSet(NoBackupKeys.KEY_CROP_HINTS, null)
- val map =
- stringSet?.associate {
- val (key, value) = it.split(KEY_VALUE_DIVIDER)
- val displaySize = Point.unflattenFromString(key)!!
- val cropRect = Rect.unflattenFromString(value)
- displaySize to cropRect
- }
- return map ?: emptyMap()
- }
-
override fun setHasPreviewTooltipBeenShown(hasTooltipBeenShown: Boolean) {
sharedPrefs
.edit()
diff --git a/src/com/android/wallpaper/module/WallpaperPreferenceKeys.java b/src/com/android/wallpaper/module/WallpaperPreferenceKeys.java
index 2a4a021..20e8dee 100755
--- a/src/com/android/wallpaper/module/WallpaperPreferenceKeys.java
+++ b/src/com/android/wallpaper/module/WallpaperPreferenceKeys.java
@@ -78,6 +78,5 @@
String KEY_PREVIEW_WALLPAPER_COLOR_ID = "preview_wallpaper_color_id";
String KEY_HOME_WALLPAPER_EFFECTS = "home_wallpaper_effects";
String KEY_LOCK_WALLPAPER_EFFECTS = "lock_wallpaper_effects";
- String KEY_CROP_HINTS = "crop_hints";
}
}
diff --git a/src/com/android/wallpaper/module/WallpaperPreferences.kt b/src/com/android/wallpaper/module/WallpaperPreferences.kt
index 1acf11f..e45cbf3 100755
--- a/src/com/android/wallpaper/module/WallpaperPreferences.kt
+++ b/src/com/android/wallpaper/module/WallpaperPreferences.kt
@@ -406,12 +406,6 @@
wallpaperModel: LiveWallpaperModel,
)
- /** Stores wallpaper crop hints for each dimensions. */
- fun storeWallpaperCropHints(cropHints: Map<Point, Rect?>)
-
- /** Gets wallpaper crop hints for each dimensions. */
- fun getWallpaperCropHints(): Map<Point, Rect?>
-
/** Sets whether the preview tooltip should be shown. */
fun setHasPreviewTooltipBeenShown(hasTooltipBeenShown: Boolean)
diff --git a/src/com/android/wallpaper/picker/customization/data/content/WallpaperClient.kt b/src/com/android/wallpaper/picker/customization/data/content/WallpaperClient.kt
index 2b241bd..7ca9791 100644
--- a/src/com/android/wallpaper/picker/customization/data/content/WallpaperClient.kt
+++ b/src/com/android/wallpaper/picker/customization/data/content/WallpaperClient.kt
@@ -96,7 +96,7 @@
fun areRecentsAvailable(): Boolean
fun getCurrentCropHints(
- displaySizes: MutableList<Point>,
+ displaySizes: List<Point>,
@WallpaperManager.SetWallpaperFlags which: Int
): Map<Point, Rect>?
}
diff --git a/src/com/android/wallpaper/picker/customization/data/content/WallpaperClientImpl.kt b/src/com/android/wallpaper/picker/customization/data/content/WallpaperClientImpl.kt
index f3b1eee..b40b083 100644
--- a/src/com/android/wallpaper/picker/customization/data/content/WallpaperClientImpl.kt
+++ b/src/com/android/wallpaper/picker/customization/data/content/WallpaperClientImpl.kt
@@ -18,6 +18,9 @@
package com.android.wallpaper.picker.customization.data.content
import android.app.WallpaperManager
+import android.app.WallpaperManager.FLAG_LOCK
+import android.app.WallpaperManager.FLAG_SYSTEM
+import android.app.WallpaperManager.SetWallpaperFlags
import android.content.ComponentName
import android.content.ContentResolver
import android.content.ContentValues
@@ -41,6 +44,9 @@
import com.android.wallpaper.module.WallpaperPreferences
import com.android.wallpaper.module.logging.UserEventLogger.SetWallpaperEntryPoint
import com.android.wallpaper.picker.customization.shared.model.WallpaperDestination
+import com.android.wallpaper.picker.customization.shared.model.WallpaperDestination.BOTH
+import com.android.wallpaper.picker.customization.shared.model.WallpaperDestination.HOME
+import com.android.wallpaper.picker.customization.shared.model.WallpaperDestination.LOCK
import com.android.wallpaper.picker.customization.shared.model.WallpaperModel
import com.android.wallpaper.picker.data.WallpaperModel.LiveWallpaperModel
import com.android.wallpaper.picker.data.WallpaperModel.StaticWallpaperModel
@@ -128,7 +134,7 @@
wallpaperSize: Point,
fullPreviewCropModels: Map<Point, FullPreviewCropModel>?,
) {
- if (destination == WallpaperDestination.HOME || destination == WallpaperDestination.BOTH) {
+ if (destination == HOME || destination == BOTH) {
// Disable rotation wallpaper when setting to home screen. Daily rotation rotates both
// home and lock screen wallpaper when lock screen is not set; otherwise daily rotation
// only rotates home screen while lock screen wallpaper stays as what it's set to.
@@ -201,7 +207,7 @@
private fun StaticWallpaperModel.getMetadata(
bitmap: Bitmap,
- managerId: Int
+ managerId: Int,
): StaticWallpaperPrefMetadata {
val bitmapHash = BitmapUtils.generateHashCode(bitmap)
return StaticWallpaperPrefMetadata(
@@ -211,8 +217,6 @@
bitmapHash,
managerId,
commonWallpaperData.id.uniqueId,
- // TODO (b/309139122): Introduce crop hints to StaticWallpaperMetadata
- cropHints = null,
)
}
@@ -226,15 +230,15 @@
destination: WallpaperDestination
) {
when (destination) {
- WallpaperDestination.HOME -> {
+ HOME -> {
clearHomeWallpaperMetadata()
setHomeStaticImageWallpaperMetadata(metadata)
}
- WallpaperDestination.LOCK -> {
+ LOCK -> {
clearLockWallpaperMetadata()
setLockStaticImageWallpaperMetadata(metadata)
}
- WallpaperDestination.BOTH -> {
+ BOTH -> {
clearHomeWallpaperMetadata()
setHomeStaticImageWallpaperMetadata(metadata)
clearLockWallpaperMetadata()
@@ -248,7 +252,7 @@
destination: WallpaperDestination,
wallpaperModel: LiveWallpaperModel,
) {
- if (destination == WallpaperDestination.HOME || destination == WallpaperDestination.BOTH) {
+ if (destination == HOME || destination == BOTH) {
// Disable rotation wallpaper when setting to home screen. Daily rotation rotates both
// home and lock screen wallpaper when lock screen is not set; otherwise daily rotation
// only rotates home screen while lock screen wallpaper stays as what it's set to.
@@ -317,11 +321,7 @@
// WallpaperManager.FLAG_SYSTEM or WallpaperManager.FLAG_LOCK.
// If destination is BOTH, either flag should return the same wallpaper manager ID.
return getWallpaperId(
- if (
- destination == WallpaperDestination.BOTH || destination == WallpaperDestination.HOME
- )
- WallpaperManager.FLAG_SYSTEM
- else WallpaperManager.FLAG_LOCK
+ if (destination == BOTH || destination == HOME) FLAG_SYSTEM else FLAG_LOCK
)
}
@@ -345,15 +345,15 @@
destination: WallpaperDestination
) {
when (destination) {
- WallpaperDestination.HOME -> {
+ HOME -> {
clearHomeWallpaperMetadata()
setHomeLiveWallpaperMetadata(metadata)
}
- WallpaperDestination.LOCK -> {
+ LOCK -> {
clearLockWallpaperMetadata()
setLockLiveWallpaperMetadata(metadata)
}
- WallpaperDestination.BOTH -> {
+ BOTH -> {
clearHomeWallpaperMetadata()
setHomeLiveWallpaperMetadata(metadata)
clearLockWallpaperMetadata()
@@ -459,7 +459,7 @@
): WallpaperModel {
val currentWallpapers = getCurrentWallpapers()
val wallpaper: WallpaperInfo =
- if (destination == WallpaperDestination.LOCK) {
+ if (destination == LOCK) {
currentWallpapers.second ?: currentWallpapers.first
} else {
currentWallpapers.first
@@ -551,8 +551,8 @@
}
override fun getCurrentCropHints(
- displaySizes: MutableList<Point>,
- @WallpaperManager.SetWallpaperFlags which: Int
+ displaySizes: List<Point>,
+ @SetWallpaperFlags which: Int
): Map<Point, Rect>? {
val flags = InjectorProvider.getInjector().getFlags()
val isMultiCropEnabled = flags.isMultiCropPreviewUiEnabled() && flags.isMultiCropEnabled()
@@ -572,17 +572,17 @@
fun WallpaperDestination.asString(): String {
return when (this) {
- WallpaperDestination.BOTH -> SCREEN_ALL
- WallpaperDestination.HOME -> SCREEN_HOME
- WallpaperDestination.LOCK -> SCREEN_LOCK
+ BOTH -> SCREEN_ALL
+ HOME -> SCREEN_HOME
+ LOCK -> SCREEN_LOCK
}
}
private fun WallpaperDestination.toFlags(): Int {
return when (this) {
- WallpaperDestination.BOTH -> WallpaperManager.FLAG_LOCK or WallpaperManager.FLAG_SYSTEM
- WallpaperDestination.HOME -> WallpaperManager.FLAG_SYSTEM
- WallpaperDestination.LOCK -> WallpaperManager.FLAG_LOCK
+ BOTH -> FLAG_LOCK or FLAG_SYSTEM
+ HOME -> FLAG_SYSTEM
+ LOCK -> FLAG_LOCK
}
}
diff --git a/src/com/android/wallpaper/picker/preview/ui/viewmodel/PreviewActionsViewModel.kt b/src/com/android/wallpaper/picker/preview/ui/viewmodel/PreviewActionsViewModel.kt
index c13f19b..463182f 100644
--- a/src/com/android/wallpaper/picker/preview/ui/viewmodel/PreviewActionsViewModel.kt
+++ b/src/com/android/wallpaper/picker/preview/ui/viewmodel/PreviewActionsViewModel.kt
@@ -46,7 +46,6 @@
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.distinctUntilChanged
-import kotlinx.coroutines.flow.filterNotNull
import kotlinx.coroutines.flow.map
/** View model for the preview action buttons */
@@ -212,12 +211,13 @@
/** [EFFECTS] */
private val _effectFloatingSheetViewModel: Flow<EffectFloatingSheetViewModel?> =
- combine(
- interactor.wallpaperModel,
- interactor.effectsStatus,
- interactor.effect.filterNotNull()
- ) { wallpaper, status, effect ->
+ combine(interactor.wallpaperModel, interactor.effectsStatus, interactor.effect) {
+ wallpaper,
+ status,
+ effect ->
(wallpaper as? WallpaperModel.StaticWallpaperModel)?.imageWallpaperData?.uri
+ ?: return@combine null
+ effect ?: return@combine null
when (status) {
EffectsRepository.EffectStatus.EFFECT_DISABLE -> {
null
diff --git a/src/com/android/wallpaper/util/converter/WallpaperModelFactory.kt b/src/com/android/wallpaper/util/converter/WallpaperModelFactory.kt
index 168fed7..7bd24e2 100644
--- a/src/com/android/wallpaper/util/converter/WallpaperModelFactory.kt
+++ b/src/com/android/wallpaper/util/converter/WallpaperModelFactory.kt
@@ -79,7 +79,8 @@
WallpaperId(
componentName = componentName,
uniqueId =
- if (this is ImageWallpaperInfo && getWallpaperId() == null) uri.toString()
+ if (this is ImageWallpaperInfo && getWallpaperId() == null)
+ "${uri.hashCode()}"
else wallpaperId,
// TODO(b/308800470): Figure out the use of collection ID
collectionId = getCollectionId(context) ?: UNKNOWN_COLLECTION_ID,
diff --git a/tests/common/src/com/android/wallpaper/testing/FakeWallpaperClient.kt b/tests/common/src/com/android/wallpaper/testing/FakeWallpaperClient.kt
index 5994cbb..7999a5c 100644
--- a/tests/common/src/com/android/wallpaper/testing/FakeWallpaperClient.kt
+++ b/tests/common/src/com/android/wallpaper/testing/FakeWallpaperClient.kt
@@ -138,10 +138,7 @@
return true
}
- override fun getCurrentCropHints(
- displaySizes: MutableList<Point>,
- which: Int
- ): Map<Point, Rect>? {
+ override fun getCurrentCropHints(displaySizes: List<Point>, which: Int): Map<Point, Rect>? {
return emptyMap()
}
diff --git a/tests/common/src/com/android/wallpaper/testing/TestStaticWallpaperInfo.java b/tests/common/src/com/android/wallpaper/testing/TestStaticWallpaperInfo.java
index 9a040dc..28ef6d5 100644
--- a/tests/common/src/com/android/wallpaper/testing/TestStaticWallpaperInfo.java
+++ b/tests/common/src/com/android/wallpaper/testing/TestStaticWallpaperInfo.java
@@ -33,6 +33,7 @@
*/
public class TestStaticWallpaperInfo extends WallpaperInfo {
public static final int COLOR_DEFAULT = 0xff000000;
+ public static final int COLOR_2 = 0xffff0000;
public static final Parcelable.Creator<TestStaticWallpaperInfo> CREATOR =
new Parcelable.Creator<TestStaticWallpaperInfo>() {
@Override
diff --git a/tests/common/src/com/android/wallpaper/testing/TestWallpaperPreferences.kt b/tests/common/src/com/android/wallpaper/testing/TestWallpaperPreferences.kt
index 4dca1d6..8d4f91b 100644
--- a/tests/common/src/com/android/wallpaper/testing/TestWallpaperPreferences.kt
+++ b/tests/common/src/com/android/wallpaper/testing/TestWallpaperPreferences.kt
@@ -31,7 +31,6 @@
import com.android.wallpaper.module.WallpaperPreferences.PresentationMode
import com.android.wallpaper.picker.customization.shared.model.WallpaperDestination
import com.android.wallpaper.picker.data.WallpaperModel
-import com.google.common.collect.ImmutableMap
import java.text.SimpleDateFormat
import java.util.Calendar
import java.util.Locale
@@ -85,8 +84,6 @@
private var mLockLiveWallpaperPrefMetadata: LiveWallpaperPrefMetadata? = null
private val mWallStoredColor: HashMap<String, String> = HashMap()
- private val wallpaperCropHints: MutableMap<Point, Rect?>
-
private var hasPreviewTooltipBeenShown = true
init {
@@ -98,7 +95,6 @@
lastDailyLogTimestamp = -1
lastDailyWallpaperRotationStatus = -1
mPendingWallpaperSetStatus = WallpaperPreferences.WALLPAPER_SET_NOT_PENDING
- wallpaperCropHints = mutableMapOf()
}
override fun getWallpaperPresentationMode(): Int {
@@ -489,14 +485,6 @@
wallpaperModel: WallpaperModel.LiveWallpaperModel
) {}
- override fun getWallpaperCropHints(): Map<Point, Rect?> {
- return ImmutableMap.copyOf(wallpaperCropHints)
- }
-
- override fun storeWallpaperCropHints(cropHints: Map<Point, Rect?>) {
- wallpaperCropHints.putAll(cropHints)
- }
-
override fun setHasPreviewTooltipBeenShown(hasTooltipBeenShown: Boolean) {
this.hasPreviewTooltipBeenShown = hasTooltipBeenShown
}
diff --git a/tests/robotests/src/com/android/wallpaper/module/DefaultWallpaperPreferencesTest.kt b/tests/robotests/src/com/android/wallpaper/module/DefaultWallpaperPreferencesTest.kt
index b2e5979..d825d26 100644
--- a/tests/robotests/src/com/android/wallpaper/module/DefaultWallpaperPreferencesTest.kt
+++ b/tests/robotests/src/com/android/wallpaper/module/DefaultWallpaperPreferencesTest.kt
@@ -16,8 +16,6 @@
package com.android.wallpaper.module
import android.content.Context
-import android.graphics.Point
-import android.graphics.Rect
import androidx.test.core.app.ApplicationProvider
import com.android.wallpaper.model.LiveWallpaperPrefMetadata
import com.android.wallpaper.model.StaticWallpaperPrefMetadata
@@ -43,7 +41,6 @@
hashCode = 10013L,
managerId = 3,
remoteId = "ocean",
- cropHints = null,
)
)
@@ -124,7 +121,6 @@
hashCode = 10013L,
managerId = 3,
remoteId = "ocean",
- cropHints = null,
)
)
@@ -194,26 +190,4 @@
.isEqualTo(null)
assertThat(noBackupPref.getInt(NoBackupKeys.KEY_LOCK_WALLPAPER_MANAGER_ID, 0)).isEqualTo(2)
}
-
- @Test
- fun getWallpaperCropHints_noPreferencesStored() {
- assertThat(wallpaperPreferences.getWallpaperCropHints()).isEmpty()
- }
-
- @Test
- fun storeWallpaperCropHints_shouldBeSavedToNoBackupPrefs() {
- val cropHintsMap =
- mapOf(
- Point(100, 200) to Rect(1, 2, 3, 4),
- Point(300, 400) to Rect(5, 6, 7, 8),
- )
- wallpaperPreferences.storeWallpaperCropHints(cropHintsMap)
- val noBackupPref =
- (ApplicationProvider.getApplicationContext() as Context).getSharedPreferences(
- DefaultWallpaperPreferences.NO_BACKUP_PREFS_NAME,
- Context.MODE_PRIVATE
- )
- assertThat(noBackupPref.getStringSet(NoBackupKeys.KEY_CROP_HINTS, null)?.size).isEqualTo(2)
- assertThat(wallpaperPreferences.getWallpaperCropHints()).isEqualTo(cropHintsMap)
- }
}