diff --git a/arch/src/main/java/com/qmuiteam/qmui/arch/QMUIFragmentPagerAdapter.java b/arch/src/main/java/com/qmuiteam/qmui/arch/QMUIFragmentPagerAdapter.java index d4eea7a2..311c8286 100644 --- a/arch/src/main/java/com/qmuiteam/qmui/arch/QMUIFragmentPagerAdapter.java +++ b/arch/src/main/java/com/qmuiteam/qmui/arch/QMUIFragmentPagerAdapter.java @@ -28,11 +28,15 @@ import androidx.lifecycle.Lifecycle; import com.qmuiteam.qmui.widget.QMUIPagerAdapter; +import java.util.HashMap; +import java.util.Map; + public abstract class QMUIFragmentPagerAdapter extends QMUIPagerAdapter { private final FragmentManager mFragmentManager; private FragmentTransaction mCurrentTransaction; private Fragment mCurrentPrimaryItem = null; + private Map map = new HashMap(); public QMUIFragmentPagerAdapter(@NonNull FragmentManager fm) { mFragmentManager = fm; @@ -48,16 +52,17 @@ public abstract class QMUIFragmentPagerAdapter extends QMUIPagerAdapter { @SuppressLint("CommitTransaction") @Override @NonNull - protected Object hydrate(@NonNull ViewGroup container, int position) { + public Object hydrate(@NonNull ViewGroup container, int position) { String name = makeFragmentName(container.getId(), position); if (mCurrentTransaction == null) { mCurrentTransaction = mFragmentManager.beginTransaction(); } Fragment fragment = mFragmentManager.findFragmentByTag(name); - if (fragment != null) { - return fragment; + if (fragment == null) { + fragment = createFragment(position); } - return createFragment(position); + map.put(position, fragment); + return fragment; } @SuppressLint("CommitTransaction") @@ -135,4 +140,8 @@ public abstract class QMUIFragmentPagerAdapter extends QMUIPagerAdapter { private String makeFragmentName(int viewId, long id) { return "QMUIFragmentPagerAdapter:" + viewId + ":" + id; } + + public QMUIFragment getFragment(int position) { + return (QMUIFragment) map.get(position); + } } \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 193fadb4..afe9ea45 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,7 +8,7 @@ buildscript { } dependencies { classpath("com.android.tools.build:gradle:7.1.3") - classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.20") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21") } } diff --git a/photo/src/main/java/com/qmuiteam/photo/activity/QMUIPhotoPickerActivity.kt b/photo/src/main/java/com/qmuiteam/photo/activity/QMUIPhotoPickerActivity.kt index cae5df52..35ce261b 100644 --- a/photo/src/main/java/com/qmuiteam/photo/activity/QMUIPhotoPickerActivity.kt +++ b/photo/src/main/java/com/qmuiteam/photo/activity/QMUIPhotoPickerActivity.kt @@ -191,10 +191,10 @@ open class QMUIPhotoPickerActivity : AppCompatActivity() { override fun handleOnBackPressed() { when (viewModel.photoPickerSceneFlow.value) { is QMUIPhotoPickerEditScene -> { - viewModel.updateScene(viewModel.prevScene ?: QMUIPhotoPickerGridScene) + viewModel.updateScene(viewModel.prevScene ?: QMUIPhotoPickerGridScene()) } is QMUIPhotoPickerPreviewScene -> { - viewModel.updateScene(QMUIPhotoPickerGridScene) + viewModel.updateScene(viewModel.prevScene ?: QMUIPhotoPickerGridScene()) } else -> { isEnabled = false @@ -223,7 +223,10 @@ open class QMUIPhotoPickerActivity : AppCompatActivity() { } @Composable - protected open fun BoxScope.PhotoPicker(viewModel: QMUIPhotoPickerViewModel) { + protected open fun BoxScope.PhotoPicker( + viewModel: QMUIPhotoPickerViewModel, + onPickItemBeyondLimit: () -> Unit = {} + ) { val data by viewModel.photoPickerDataFlow.collectAsState() when (data.state) { QMUIPhotoPickerLoadState.dataLoading, @@ -241,7 +244,7 @@ open class QMUIPhotoPickerActivity : AppCompatActivity() { } else if (list == null || list.isEmpty()) { PageEmpty() } else { - PhotoPickerContent(viewModel, list) + PhotoPickerContent(viewModel, list, onPickItemBeyondLimit) } } } @@ -251,7 +254,8 @@ open class QMUIPhotoPickerActivity : AppCompatActivity() { @Composable protected open fun BoxScope.PhotoPickerContent( viewModel: QMUIPhotoPickerViewModel, - data: List + data: List, + onPickItemBeyondLimit: () -> Unit ) { val pickedItems by viewModel.pickedListFlow.collectAsState() val sceneState = viewModel.photoPickerSceneFlow.collectAsState() @@ -262,7 +266,14 @@ open class QMUIPhotoPickerActivity : AppCompatActivity() { enter = fadeIn(), exit = fadeOut() ) { - PhotoPickerGridScene(viewModel, data, pickedItems) + val previewSceneHolder = remember { + SceneHolder(scene as? QMUIPhotoPickerGridScene) + } + if(scene is QMUIPhotoPickerGridScene){ + previewSceneHolder.scene = scene + } + val previewScene = previewSceneHolder.scene + PhotoPickerGridScene(viewModel, previewScene ?: QMUIPhotoPickerGridScene(), data, pickedItems, onPickItemBeyondLimit) } AnimatedVisibility( visible = scene is QMUIPhotoPickerPreviewScene, @@ -302,8 +313,10 @@ open class QMUIPhotoPickerActivity : AppCompatActivity() { @Composable protected open fun BoxScope.PhotoPickerGridScene( viewModel: QMUIPhotoPickerViewModel, + scene: QMUIPhotoPickerGridScene, data: List, pickedItems: List, + onPickItemBeyondLimit: () -> Unit, topBarBackItem: QMUITopBarItem = remember { QMUITopBarBackIconItem { finish() @@ -316,7 +329,7 @@ open class QMUIPhotoPickerActivity : AppCompatActivity() { } var currentBucket by remember { - mutableStateOf(data.first()) + mutableStateOf(scene.buckedId?.let { buckedId -> data.first { it.id == buckedId } } ?: data.first()) } val scrollState = viewModel.gridSceneScrollState @@ -380,10 +393,12 @@ open class QMUIPhotoPickerActivity : AppCompatActivity() { bottom.linkTo(toolbar.top) }, state = scrollState, + pickLimitCount = viewModel.pickLimitCount, pickedItems = pickedItems, onPickItem = { _, model -> viewModel.togglePick(model) }, + onPickItemBeyondLimit = onPickItemBeyondLimit, onPreview = { viewModel.updateScene(QMUIPhotoPickerPreviewScene(currentBucket.id, false, it.id)) } @@ -412,6 +427,7 @@ open class QMUIPhotoPickerActivity : AppCompatActivity() { onBucketClick = { currentBucket = it isFocusBucketFlow.value = false + viewModel.updateScene(QMUIPhotoPickerGridScene(currentBucket.id)) }) { isFocusBucketFlow.value = false } @@ -466,7 +482,7 @@ open class QMUIPhotoPickerActivity : AppCompatActivity() { val topBarLeftItems = remember { arrayListOf(QMUITopBarBackIconItem { - viewModel.updateScene(QMUIPhotoPickerGridScene) + viewModel.updateScene(viewModel.prevScene ?: QMUIPhotoPickerGridScene()) }) } @@ -567,7 +583,7 @@ open class QMUIPhotoPickerActivity : AppCompatActivity() { WindowCompat.getInsetsController(window, window.decorView)?.hide(WindowInsetsCompat.Type.statusBars()) } QMUIPhotoPickerEdit(onBackPressedDispatcher, scene.current) { - viewModel.updateScene(viewModel.prevScene ?: QMUIPhotoPickerGridScene) + viewModel.updateScene(viewModel.prevScene ?: QMUIPhotoPickerGridScene()) } } diff --git a/photo/src/main/java/com/qmuiteam/photo/compose/picker/Config.kt b/photo/src/main/java/com/qmuiteam/photo/compose/picker/Config.kt index 3f7ee2bf..a5405355 100644 --- a/photo/src/main/java/com/qmuiteam/photo/compose/picker/Config.kt +++ b/photo/src/main/java/com/qmuiteam/photo/compose/picker/Config.kt @@ -1,5 +1,6 @@ package com.qmuiteam.photo.compose.picker +import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.staticCompositionLocalOf @@ -12,26 +13,26 @@ import com.qmuiteam.compose.core.ui.QMUITopBarItem import com.qmuiteam.compose.core.ui.qmuiPrimaryColor import kotlinx.coroutines.flow.StateFlow -class QMUIPhotoPickerConfig( - val editable: Boolean = true, - val primaryColor: Color = qmuiPrimaryColor, - val commonTextButtonTextColor: Color = Color.White, - val commonSeparatorColor: Color = Color.White.copy(alpha = 0.3f), - val commonIconNormalTintColor: Color = Color.White.copy(0.9f), - val commonIconCheckedTintColor: Color = primaryColor, - val commonIconCheckedTextColor: Color = Color.White.copy(alpha = 0.6f), +data class QMUIPhotoPickerConfig( + var editable: Boolean = true, + var primaryColor: Color = qmuiPrimaryColor, + var commonTextButtonTextColor: Color = Color.White, + var commonSeparatorColor: Color = Color.White.copy(alpha = 0.3f), + var commonIconNormalTintColor: Color = Color.White.copy(0.9f), + var commonIconCheckedTintColor: Color = primaryColor, + var commonIconCheckedTextColor: Color = Color.White.copy(alpha = 0.6f), - val commonButtonNormalTextColor: Color = Color.White, - val commonButtonNormalBgColor: Color = primaryColor, - val commonButtonDisabledTextColor: Color = Color.White.copy(alpha = 0.3f), - val commonButtonDisableBgColor: Color = Color.White.copy(alpha = 0.15f), - val commonButtonPressBgColor: Color = primaryColor.copy(alpha = 0.8f), - val commonButtonPressedTextColor: Color = commonButtonNormalTextColor, + var commonButtonNormalTextColor: Color = Color.White, + var commonButtonNormalBgColor: Color = primaryColor, + var commonButtonDisabledTextColor: Color = Color.White.copy(alpha = 0.3f), + var commonButtonDisableBgColor: Color = Color.White.copy(alpha = 0.15f), + var commonButtonPressBgColor: Color = primaryColor.copy(alpha = 0.8f), + var commonButtonPressedTextColor: Color = commonButtonNormalTextColor, - val topBarBgColor: Color = Color(0xFF222222), - val toolBarBgColor: Color = topBarBgColor, + var topBarBgColor: Color = Color(0xFF222222), + var toolBarBgColor: Color = topBarBgColor, - val topBarBucketFactory: ( + var topBarBucketFactory: ( textFlow: StateFlow, isFocusFlow: StateFlow, onClick: () -> Unit @@ -46,7 +47,7 @@ class QMUIPhotoPickerConfig( onClick = onClick ) }, - val topBarSendFactory: ( + var topBarSendFactory: ( canSendSelf: Boolean, maxSelectCount: Int, selectCountFlow: StateFlow, @@ -61,21 +62,21 @@ class QMUIPhotoPickerConfig( ) }, - val screenBgColor: Color = Color(0xFF333333), - val loadingColor: Color = Color.White, - val tipTextColor: Color = Color.White, + var screenBgColor: Color = Color(0xFF333333), + var loadingColor: Color = Color.White, + var tipTextColor: Color = Color.White, - val gridPreferredSize: Dp = 80.dp, - val gridGap: Dp = 2.dp, - val gridBorderColor: Color = Color.White.copy(alpha = 0.15f), + var gridPreferredSize: Dp = 80.dp, + var gridGap: Dp = 2.dp, + var gridBorderColor: Color = Color.White.copy(alpha = 0.15f), - val bucketChooserMaskColor: Color = Color.Black.copy(alpha = 0.36f), - val bucketChooserBgColor: Color = topBarBgColor, - val bucketChooserIndicationColor: Color = Color.White.copy(alpha = 0.2f), - val bucketChooserMainTextColor: Color = Color.White, - val bucketChooserCountTextColor: Color = Color.White.copy(alpha = 0.64f), + var bucketChooserMaskColor: Color = Color.Black.copy(alpha = 0.36f), + var bucketChooserBgColor: Color = topBarBgColor, + var bucketChooserIndicationColor: Color = Color.White.copy(alpha = 0.2f), + var bucketChooserMainTextColor: Color = Color.White, + var bucketChooserCountTextColor: Color = Color.White.copy(alpha = 0.64f), - val editPaintOptions: List = listOf( + var editPaintOptions: List = listOf( MosaicEditPaint(16), MosaicEditPaint(50), ColorEditPaint(Color.White), @@ -86,11 +87,11 @@ class QMUIPhotoPickerConfig( ColorEditPaint(Color.Blue), ColorEditPaint(Color.Magenta) ), - val graffitiPaintStrokeWidth: Dp = 5.dp, - val mosaicPaintStrokeWidth: Dp = 20.dp, + var graffitiPaintStrokeWidth: Dp = 5.dp, + var mosaicPaintStrokeWidth: Dp = 20.dp, - val textEditMaskColor:Color = Color.Black.copy(0.5f), - val textEditColorOptions: List = listOf( + var textEditMaskColor:Color = Color.Black.copy(0.5f), + var textEditColorOptions: List = listOf( ColorEditPaint(Color.White), ColorEditPaint(Color.Black), ColorEditPaint(Color.Red), @@ -99,20 +100,37 @@ class QMUIPhotoPickerConfig( ColorEditPaint(Color.Blue), ColorEditPaint(Color.Magenta) ), - val textEditFontSize: TextUnit = 30.sp, - val textEditLineSpace: TextUnit = 3.sp, - val textCursorColor: Color = primaryColor, + var textEditFontSize: TextUnit = 30.sp, + var textEditLineSpace: TextUnit = 3.sp, + var textCursorColor: Color = primaryColor, - val editLayerDeleteAreaNormalBgColor: Color = Color.Black.copy(alpha = 0.3f), - val editLayerDeleteAreaNormalFocusColor: Color = Color.Red.copy(alpha = 0.6f), + var editLayerDeleteAreaNormalBgColor: Color = Color.Black.copy(alpha = 0.3f), + var editLayerDeleteAreaNormalFocusColor: Color = Color.Red.copy(alpha = 0.6f), + var photoNotPickMaskColor: Color, ) -val qmuiPhotoPickerDefaultConfig by lazy { QMUIPhotoPickerConfig() } +val lightConfig by lazy { QMUIPhotoPickerConfig(photoNotPickMaskColor = Color(0x80FFFFFF)) } +val darkConfig by lazy { QMUIPhotoPickerConfig(photoNotPickMaskColor = Color(0x80000000)) } + +val qmuiPhotoPickerDefaultConfig by lazy { lightConfig } + val QMUILocalPickerConfig = staticCompositionLocalOf { qmuiPhotoPickerDefaultConfig } @Composable -fun QMUIDefaultPickerConfigProvider(content: @Composable () -> Unit) { - CompositionLocalProvider(QMUILocalPickerConfig provides qmuiPhotoPickerDefaultConfig) { +fun QMUIDefaultPickerConfigProvider( + darkTheme: Boolean = isSystemInDarkTheme(), + configSet: (QMUIPhotoPickerConfig) -> Unit = {}, + content: @Composable () -> Unit +) { + val config = if (darkTheme) { + darkConfig + } else { + lightConfig + }.apply { + configSet(this) + } + + CompositionLocalProvider(QMUILocalPickerConfig provides config) { content() } } \ No newline at end of file diff --git a/photo/src/main/java/com/qmuiteam/photo/compose/picker/Grid.kt b/photo/src/main/java/com/qmuiteam/photo/compose/picker/Grid.kt index 95f81ec1..bc4852ee 100644 --- a/photo/src/main/java/com/qmuiteam/photo/compose/picker/Grid.kt +++ b/photo/src/main/java/com/qmuiteam/photo/compose/picker/Grid.kt @@ -55,8 +55,10 @@ fun QMUIPhotoPickerGrid( data: List, modifier: Modifier = Modifier, state: LazyListState = rememberLazyListState(), + pickLimitCount: Int, pickedItems: List, onPickItem: (toPick: Boolean, model: QMUIMediaPhotoVO) -> Unit, + onPickItemBeyondLimit: () -> Unit, onPreview: (model: QMUIMediaModel) -> Unit ) { BoxWithConstraints(modifier = modifier) { @@ -79,7 +81,7 @@ fun QMUIPhotoPickerGrid( verticalArrangement = Arrangement.Absolute.spacedBy(gap) ) { items(rowData, key = { it.key }){ item -> - QMUIPhotoPickerGridRow(item, cellSize, gap, pickedItems, onPickItem, onPreview) + QMUIPhotoPickerGridRow(item, cellSize, gap, pickLimitCount, pickedItems, onPickItem, onPickItemBeyondLimit, onPreview) } } } @@ -90,8 +92,10 @@ private fun QMUIPhotoPickerGridRow( data: QMUIPhotoPickerGridRowData, cellSize: Dp, gap: Dp, + pickLimitCount: Int, pickedItems: List, onPickItem: (toPick: Boolean, model: QMUIMediaPhotoVO) -> Unit, + onPickItemBeyondLimit: () -> Unit, onPreview: (model: QMUIMediaModel) -> Unit ) { Row( @@ -103,8 +107,10 @@ private fun QMUIPhotoPickerGridRow( QMUIPhotoPickerGridCell( data = data.list[i], cellSize = cellSize, + pickLimitCount = pickLimitCount, pickedItems = pickedItems, onPickItem = onPickItem, + onPickItemBeyondLimit = onPickItemBeyondLimit, onPreview = onPreview ) } @@ -115,8 +121,10 @@ private fun QMUIPhotoPickerGridRow( private fun QMUIPhotoPickerGridCell( data: QMUIMediaPhotoVO, cellSize: Dp, + pickLimitCount: Int, pickedItems: List, onPickItem: (toPick: Boolean, model: QMUIMediaPhotoVO) -> Unit, + onPickItemBeyondLimit: () -> Unit, onPreview: (model: QMUIMediaModel) -> Unit ) { val pickedIndex = remember(pickedItems) { @@ -124,6 +132,9 @@ private fun QMUIPhotoPickerGridCell( it == data.model.id } } + val pickedSize = remember(pickedItems) { + pickedItems.size + } Box( modifier = Modifier .size(cellSize) @@ -135,7 +146,9 @@ private fun QMUIPhotoPickerGridCell( indication = null, enabled = true ) { - onPreview.invoke(data.model) + if (!(pickedSize >= pickLimitCount && (pickedIndex < 0))) { + onPreview.invoke(data.model) + } } ) { val thumbnail = remember(data) { @@ -148,13 +161,17 @@ private fun QMUIPhotoPickerGridCell( onError = null ) - QMUIPhotoPickerGridCellMask(pickedIndex) + QMUIPhotoPickerGridCellMask(pickedIndex, pickedSize, pickLimitCount) Box( modifier = Modifier .align(Alignment.TopEnd) .clickable { - onPickItem(pickedIndex < 0, data) + if (pickedIndex < 0 && pickedSize >= pickLimitCount) { + onPickItemBeyondLimit() + } else { + onPickItem(pickedIndex < 0, data) + } } .padding(4.dp) .size(24.dp), @@ -166,12 +183,19 @@ private fun QMUIPhotoPickerGridCell( } @Composable -fun QMUIPhotoPickerGridCellMask(pickedIndex: Int){ - val maskAlpha = animateFloatAsState(targetValue = if(pickedIndex >= 0) 0.36f else 0.15f) +fun QMUIPhotoPickerGridCellMask(pickedIndex: Int, pickedSize: Int, pickLimitCount: Int) { + val photoNotPickMaskColor = QMUILocalPickerConfig.current.photoNotPickMaskColor + val maskAlpha = animateFloatAsState(targetValue = if (pickedIndex >= 0) 0.36f else 0.15f) + val maskPickedAlpha = animateFloatAsState(targetValue = if (pickedSize >= pickLimitCount) photoNotPickMaskColor.alpha else 0.15f) + val bgColor = if (pickedSize >= pickLimitCount && (pickedIndex < 0)) { + photoNotPickMaskColor.copy(alpha = maskPickedAlpha.value) + } else { + Color.Black.copy(alpha = maskAlpha.value) + } Box( modifier = Modifier .fillMaxSize() - .background(Color.Black.copy(alpha = maskAlpha.value)) + .background(bgColor) ) } diff --git a/photo/src/main/java/com/qmuiteam/photo/vm/QMUIPhotoPickerViewModel.kt b/photo/src/main/java/com/qmuiteam/photo/vm/QMUIPhotoPickerViewModel.kt index 2d95fc07..77f4cc86 100644 --- a/photo/src/main/java/com/qmuiteam/photo/vm/QMUIPhotoPickerViewModel.kt +++ b/photo/src/main/java/com/qmuiteam/photo/vm/QMUIPhotoPickerViewModel.kt @@ -31,7 +31,7 @@ class QMUIPhotoPickerViewModel @Keep constructor( private val photoProviderFactory: QMUIMediaPhotoProviderFactory - private val _photoPickerSceneFlow = MutableStateFlow(QMUIPhotoPickerGridScene) + private val _photoPickerSceneFlow = MutableStateFlow(QMUIPhotoPickerGridScene()) val photoPickerSceneFlow = _photoPickerSceneFlow.asStateFlow() val gridSceneScrollState = LazyListState() @@ -155,7 +155,7 @@ class QMUIPhotoPickerViewModel @Keep constructor( open class QMUIPhotoPickerScene -object QMUIPhotoPickerGridScene : QMUIPhotoPickerScene() +class QMUIPhotoPickerGridScene(val buckedId: String? = null) : QMUIPhotoPickerScene() class QMUIPhotoPickerPreviewScene( val buckedId: String, diff --git a/plugin/build.gradle.kts b/plugin/build.gradle.kts index f468c8af..533259b9 100644 --- a/plugin/build.gradle.kts +++ b/plugin/build.gradle.kts @@ -3,7 +3,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { `java-gradle-plugin` idea - kotlin("jvm") version "1.6.20" + kotlin("jvm") version "1.6.21" `kotlin-dsl` } @@ -15,7 +15,7 @@ buildscript { } dependencies { classpath("com.android.tools.build:gradle:7.1.3") - classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.20") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21") } } @@ -45,8 +45,8 @@ repositories { dependencies { api(gradleApi()) api(gradleKotlinDsl()) - api(kotlin("gradle-plugin", version = "1.6.20")) - api(kotlin("gradle-plugin-api", version = "1.6.20")) + api(kotlin("gradle-plugin", version = "1.6.21")) + api(kotlin("gradle-plugin-api", version = "1.6.21")) api("com.android.tools.build:gradle-api:7.1.3") api("com.android.tools.build:gradle:7.1.3") } diff --git a/plugin/src/main/java/com/qmuiteam/plugin/Dep.kt b/plugin/src/main/java/com/qmuiteam/plugin/Dep.kt index 4dc23905..0afe08ef 100644 --- a/plugin/src/main/java/com/qmuiteam/plugin/Dep.kt +++ b/plugin/src/main/java/com/qmuiteam/plugin/Dep.kt @@ -14,13 +14,13 @@ object Dep { object QMUI { const val group = "com.qmuiteam" const val qmuiVer = "2.1.0.11" - const val archVer = "2.1.0.3" + const val archVer = "2.1.0.4" const val typeVer = "0.1.0.6" // composeMajor.composeMinor.qmuiReleaseNumber - const val composeCoreVer = "1.1.1" + const val composeCoreVer = "1.1.1.1" const val composeVer = "1.1.1.1" - const val photoVer = "1.1.1.1" + const val photoVer = "1.1.1.6" const val editorVer = "1.1.1" } @@ -42,7 +42,7 @@ object Dep { } object Compose { - val version = "1.2.0-alpha08" + val version = "1.2.0-beta02" val animation = "androidx.compose.animation:animation:$version" val ui = "androidx.compose.ui:ui:$version" val material = "androidx.compose.material:material:$version" diff --git a/qmui/src/main/res/values/config_colors.xml b/qmui/src/main/res/values/config_colors.xml index 32909a9d..214b3f1e 100644 --- a/qmui/src/main/res/values/config_colors.xml +++ b/qmui/src/main/res/values/config_colors.xml @@ -28,5 +28,4 @@ #243f55 #80416f96 - diff --git a/qmuidemo/src/main/res/values/theme.xml b/qmuidemo/src/main/res/values/theme.xml index e3d4cb04..d8759447 100644 --- a/qmuidemo/src/main/res/values/theme.xml +++ b/qmuidemo/src/main/res/values/theme.xml @@ -32,6 +32,7 @@ + @@ -161,6 +162,7 @@ @color/qmui_config_color_50_white @color/qmui_config_color_gray_4 @color/qmui_config_color_gray_2 + @color/qmui_config_color_50_pure_black 0.5 @@ -193,6 +195,7 @@ ?attr/qmui_config_color_gray_1 @color/qmui_config_color_gray_8 @color/qmui_config_color_gray_1 + @color/qmui_config_color_50_white \ No newline at end of file