Merge "Added DownloadableWallpaperData (1/2)" into main
diff --git a/src/com/android/wallpaper/model/wallpaper/DownloadableWallpaperData.kt b/src/com/android/wallpaper/model/wallpaper/DownloadableWallpaperData.kt
new file mode 100644
index 0000000..04ff8c6
--- /dev/null
+++ b/src/com/android/wallpaper/model/wallpaper/DownloadableWallpaperData.kt
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.wallpaper.model.wallpaper
+
+import android.app.WallpaperInfo
+
+/** Represents set of attributes that are needed for a wallpaper that is downloadable. */
+data class DownloadableWallpaperData(
+ val groupName: String,
+ val systemWallpaperInfo: WallpaperInfo,
+ val isTitleVisible: Boolean,
+ val isApplied: Boolean,
+ val effectNames: String?,
+)
diff --git a/src/com/android/wallpaper/model/wallpaper/WallpaperModel.kt b/src/com/android/wallpaper/model/wallpaper/WallpaperModel.kt
index 2d09da3..ac33dd7 100644
--- a/src/com/android/wallpaper/model/wallpaper/WallpaperModel.kt
+++ b/src/com/android/wallpaper/model/wallpaper/WallpaperModel.kt
@@ -40,6 +40,7 @@
override val commonWallpaperData: CommonWallpaperData,
val staticWallpaperData: StaticWallpaperData,
val imageWallpaperData: ImageWallpaperData?,
- val networkWallpaperData: NetworkWallpaperData?
+ val networkWallpaperData: NetworkWallpaperData?,
+ val downloadableWallpaperData: DownloadableWallpaperData?,
) : WallpaperModel()
}
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 dc20fbe..baff813 100644
--- a/src/com/android/wallpaper/picker/preview/ui/viewmodel/PreviewActionsViewModel.kt
+++ b/src/com/android/wallpaper/picker/preview/ui/viewmodel/PreviewActionsViewModel.kt
@@ -60,8 +60,10 @@
/** Action's isVisible state */
val isInformationVisible: Flow<Boolean> = _informationFloatingSheetViewModel.map { it != null }
- private val _isDownloadVisible: MutableStateFlow<Boolean> = MutableStateFlow(false)
- val isDownloadVisible: Flow<Boolean> = _isDownloadVisible.asStateFlow()
+ val isDownloadVisible: Flow<Boolean> =
+ interactor.wallpaperModel.map {
+ (it as? WallpaperModel.StaticWallpaperModel)?.downloadableWallpaperData != null
+ }
private val _isDeleteVisible: MutableStateFlow<Boolean> = MutableStateFlow(false)
val isDeleteVisible: Flow<Boolean> = _isDeleteVisible.asStateFlow()
diff --git a/src/com/android/wallpaper/util/converter/DefaultWallpaperModelFactory.kt b/src/com/android/wallpaper/util/converter/DefaultWallpaperModelFactory.kt
index 09599fb..b5e2ae4 100644
--- a/src/com/android/wallpaper/util/converter/DefaultWallpaperModelFactory.kt
+++ b/src/com/android/wallpaper/util/converter/DefaultWallpaperModelFactory.kt
@@ -48,7 +48,8 @@
staticWallpaperData = StaticWallpaperData(asset = wallpaperInfo.getAsset(context)),
imageWallpaperData =
(wallpaperInfo as? ImageWallpaperInfo)?.getImageWallpaperData(),
- networkWallpaperData = null
+ networkWallpaperData = null,
+ downloadableWallpaperData = null,
)
}
}