Skip to content

Commit

Permalink
refactor: 重构代码逻辑
Browse files Browse the repository at this point in the history
  • Loading branch information
jixiaoyong committed Mar 29, 2024
1 parent 8748754 commit 463c905
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 19 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package io.github.jixiaoyong.pages.settings

import ApkSigner
import io.github.jixiaoyong.base.BaseViewModel
import io.github.jixiaoyong.utils.SettingsTool
import io.github.jixiaoyong.utils.StorageKeys
Expand Down Expand Up @@ -59,12 +60,13 @@ class SettingInfoViewModel(private val settings: SettingsTool) : BaseViewModel()
resetSignTypes: Boolean? = null,
resetSignedDirectory: Boolean? = null,
) {
val oldResetInfo = uiStateFlow.value.resetInfo
uiStateFlow.value = uiStateFlow.value.copy(
resetInfo = uiStateFlow.value.resetInfo.copy(
resetSignInfo = resetSignInfo ?: uiStateFlow.value.resetInfo.resetSignInfo,
resetApkTools = resetApkTools ?: uiStateFlow.value.resetInfo.resetApkTools,
resetSignTypes = resetSignTypes ?: uiStateFlow.value.resetInfo.resetSignTypes,
resetSignedDirectory = resetSignedDirectory ?: uiStateFlow.value.resetInfo.resetSignedDirectory
resetInfo = oldResetInfo.copy(
resetSignInfo = resetSignInfo ?: oldResetInfo.resetSignInfo,
resetApkTools = resetApkTools ?: oldResetInfo.resetApkTools,
resetSignTypes = resetSignTypes ?: oldResetInfo.resetSignTypes,
resetSignedDirectory = resetSignedDirectory ?: oldResetInfo.resetSignedDirectory
)
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,22 +31,21 @@ class SignAppViewModel(private val settings: SettingsTool) : BaseViewModel() {
settings.signInfoBeans,
settings.apkSignatureMap,
settings.signedDirectory,
) { signTypeList, selectedSignInfoBean, signInfoBeans, apkSignatureMap, signedDirectory ->
settings.isZipAlign,
settings.isAutoMatchSignature
) { params ->
uiStateFlow.value.copy(
apkSignType = signTypeList,
globalSelectedSignInfo = selectedSignInfoBean,
allSignInfoBeans = signInfoBeans,
apkSignatureMap = apkSignatureMap,
signedOutputDirectory = signedDirectory
apkSignType = params[0] as Set<Int>,
globalSelectedSignInfo = params[1] as SignInfoBean?,
allSignInfoBeans = params[2] as List<SignInfoBean>?,
apkSignatureMap = params[3] as Map<String, Long>,
signedOutputDirectory = params[4] as String?,
isZipAlign = params[5] as Boolean,
isAutoMatchSignature = params[6] as Boolean
)
}
.combine(settings.isZipAlign) { state, isZipAlign -> state.copy(isZipAlign = isZipAlign) }
.combine(settings.isAutoMatchSignature) { state, isAutoMatchSignature ->
state.copy(isAutoMatchSignature = isAutoMatchSignature)
}
.onEach {
uiStateFlow.value = it
}.launchIn(viewModelScope)
}.onEach {
uiStateFlow.value = it
}.launchIn(viewModelScope)

// 监听并更新当前apk对应的签名信息
uiStateFlow.distinctUntilChanged { old, new ->
Expand Down

0 comments on commit 463c905

Please sign in to comment.