Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit adcc7a6d authored by Catherine Liang's avatar Catherine Liang
Browse files

Rename themed icon repository to icon style repository (1/2)

Rename and move themed icon classes so it can be repurposed for general
icon theming.

Flag: com.android.systemui.shared.extendible_theme_manager
Bug: 397782741
Test: manually verified with flag on and off
Change-Id: I494c0efe0b0ac0a89d504ed4f0ca1a0e104d2524
parent ce62a17f
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -73,7 +73,7 @@ import com.android.customization.module.logging.ThemesUserEventLogger.ColorSourc
import com.android.customization.picker.clock.data.repository.ClockPickerRepository
import com.android.customization.picker.clock.shared.ClockSize.DYNAMIC
import com.android.customization.picker.clock.shared.ClockSize.SMALL
import com.android.customization.picker.themedicon.data.repository.ThemedIconRepository
import com.android.customization.picker.icon.data.repository.IconStyleRepository
import com.android.systemui.shared.customization.data.content.CustomizationProviderClient
import com.android.wallpaper.customization.ui.util.ThemePickerCustomizationOptionUtil.ThemePickerHomeCustomizationOption.APP_ICONS
import com.android.wallpaper.customization.ui.util.ThemePickerCustomizationOptionUtil.ThemePickerHomeCustomizationOption.COLORS
@@ -102,7 +102,7 @@ constructor(
    private val preferences: WallpaperPreferences,
    private val colorManager: ColorCustomizationManager,
    private val shapeGridManager: ShapeGridManager,
    private val themedIconRepository: ThemedIconRepository,
    private val iconStyleRepository: IconStyleRepository,
    private val clockPickerRepository: ClockPickerRepository,
    private val customizationProviderClient: CustomizationProviderClient,
    private val appSessionId: AppSessionId,
@@ -124,7 +124,7 @@ constructor(
            .setColorVariant(colorManager.currentStyleForLogging)
            .setSeedColor(colorManager.currentSeedColorForLogging)
            .setShapePackageHash(shapeGridManager.getSelectedShapeIdHash())
            .setAppIconStyle(themedIconRepository.getAppIconStyle())
            .setAppIconStyle(iconStyleRepository.getAppIconStyle())
            .setLauncherGrid(shapeGridManager.getSelectedGridInt())
            .setClockPackageHash(selectedClockLoggingData.clockIdHash)
            .setClockSeedColor(selectedClockLoggingData.clockSeedColor)
@@ -435,9 +435,9 @@ constructor(
        return selectedGrid?.getLauncherGridInt() ?: 0
    }

    private suspend fun ThemedIconRepository.getAppIconStyle(): Int {
    private suspend fun IconStyleRepository.getAppIconStyle(): Int {
        val isThemedIconActivated =
            withTimeoutOrNull(TIMEOUT_MILLIS) { isActivated.first() } ?: false
            withTimeoutOrNull(TIMEOUT_MILLIS) { isThemedIconActivated.first() } ?: false
        return if (isThemedIconActivated) APP_ICON_STYLE_THEMED else APP_ICON_STYLE_UNSPECIFIED
    }

+4 −4
Original line number Diff line number Diff line
@@ -14,15 +14,15 @@
 * limitations under the License.
 */

package com.android.customization.picker.themedicon.data.repository
package com.android.customization.picker.icon.data.repository

import kotlinx.coroutines.flow.Flow

interface ThemedIconRepository {
interface IconStyleRepository {

    val isAvailable: Flow<Boolean>
    val isThemedIconAvailable: Flow<Boolean>

    val isActivated: Flow<Boolean>
    val isThemedIconActivated: Flow<Boolean>

    suspend fun setThemedIconEnabled(enabled: Boolean)
}
+5 −5
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@
 * limitations under the License.
 */

package com.android.customization.picker.themedicon.data.repository
package com.android.customization.picker.icon.data.repository

import android.content.ContentResolver
import android.content.ContentValues
@@ -44,13 +44,13 @@ import kotlinx.coroutines.flow.stateIn

@OptIn(ExperimentalCoroutinesApi::class)
@Singleton
class ThemedIconRepositoryImpl
class ThemePickerIconStyleRepository
@Inject
constructor(
    @ApplicationContext private val appContext: Context,
    private val contentResolver: ContentResolver,
    @BackgroundDispatcher private val backgroundScope: CoroutineScope,
) : ThemedIconRepository {
) : IconStyleRepository {
    private val metadataKey = appContext.getString(R.string.themed_icon_metadata_key)
    private var previewUtils: PreviewUtils? = null
    private val previewUtilsFlow = flow {
@@ -70,9 +70,9 @@ constructor(
    private val uriFlow: Flow<Uri?> =
        previewUtilsFlow.map { uri ?: it?.getUri(ICON_THEMED)?.also { result -> uri = result } }

    override val isAvailable: Flow<Boolean> = previewUtilsFlow.map { it != null }
    override val isThemedIconAvailable: Flow<Boolean> = previewUtilsFlow.map { it != null }

    override val isActivated: Flow<Boolean> =
    override val isThemedIconActivated: Flow<Boolean> =
        uriFlow
            .flatMapLatest {
                callbackFlow {
+5 −5
Original line number Diff line number Diff line
@@ -18,8 +18,8 @@ package com.android.customization.picker.icon.domain.interactor

import com.android.customization.model.grid.ShapeOptionModel
import com.android.customization.picker.grid.data.repository.ShapeRepository
import com.android.customization.picker.icon.data.repository.IconStyleRepository
import com.android.customization.picker.icon.shared.model.IconStyle
import com.android.customization.picker.themedicon.data.repository.ThemedIconRepository
import javax.inject.Inject
import javax.inject.Singleton
import kotlinx.coroutines.flow.Flow
@@ -30,7 +30,7 @@ class AppIconInteractor
@Inject
constructor(
    private val shapeRepository: ShapeRepository,
    private val themedIconRepository: ThemedIconRepository,
    private val iconStyleRepository: IconStyleRepository,
) {

    val shapeOptions = shapeRepository.shapeOptions
@@ -41,9 +41,9 @@ constructor(
    val selectedShapeOption =
        shapeRepository.selectedShapeOption.map { shapeOption -> shapeOption ?: defaultShape }

    val isThemedIconAvailable: Flow<Boolean> = themedIconRepository.isAvailable
    val isThemedIconAvailable: Flow<Boolean> = iconStyleRepository.isThemedIconAvailable

    val isThemedIconEnabled: Flow<Boolean> = themedIconRepository.isActivated
    val isThemedIconEnabled: Flow<Boolean> = iconStyleRepository.isThemedIconActivated

    val iconStyles =
        isThemedIconAvailable.map { isThemedIconAvailable ->
@@ -62,7 +62,7 @@ constructor(
        }

    suspend fun applyThemedIconEnabled(enabled: Boolean) =
        themedIconRepository.setThemedIconEnabled(enabled)
        iconStyleRepository.setThemedIconEnabled(enabled)

    suspend fun applyShape(shapeKey: String) = shapeRepository.applyShape(shapeKey)
}
+4 −4
Original line number Diff line number Diff line
@@ -16,15 +16,15 @@

package com.android.customization.picker.themedicon.domain.interactor

import com.android.customization.picker.themedicon.data.repository.ThemedIconRepository
import com.android.customization.picker.icon.data.repository.IconStyleRepository
import javax.inject.Inject
import javax.inject.Singleton
import kotlinx.coroutines.flow.Flow

@Singleton
class ThemedIconInteractor @Inject constructor(private val repository: ThemedIconRepository) {
    val isAvailable: Flow<Boolean> = repository.isAvailable
    val isActivated: Flow<Boolean> = repository.isActivated
class ThemedIconInteractor @Inject constructor(private val repository: IconStyleRepository) {
    val isAvailable: Flow<Boolean> = repository.isThemedIconAvailable
    val isActivated: Flow<Boolean> = repository.isThemedIconActivated

    suspend fun setThemedIconEnabled(enabled: Boolean) = repository.setThemedIconEnabled(enabled)
}
Loading