Skip to content

Commit 4475b46

Browse files
author
Fastace
committed
Fix:修复本地快照APP恢复逻辑之后APK安装恢复逻辑,BUG:目前会扫描恢复路径下所有包名,预期应该恢复本次APP,待修复
1 parent 7476ec8 commit 4475b46

1 file changed

Lines changed: 17 additions & 1 deletion

File tree

source/core/service/src/main/kotlin/com/xayah/core/service/packages/restore/RestoreServiceLocalImpl.kt

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.xayah.core.service.packages.restore
22

3+
import android.util.Log
34
import com.xayah.core.data.repository.PackageRepository
45
import com.xayah.core.data.repository.TaskRepository
56
import com.xayah.core.database.dao.PackageDao
@@ -17,6 +18,7 @@ import com.xayah.core.util.PathUtil
1718
import com.xayah.core.util.localBackupSaveDir
1819
import dagger.hilt.android.AndroidEntryPoint
1920
import javax.inject.Inject
21+
import java.io.File
2022

2123
@AndroidEntryPoint
2224
internal class RestoreServiceLocalImpl @Inject constructor() : AbstractRestoreService() {
@@ -50,7 +52,21 @@ internal class RestoreServiceLocalImpl @Inject constructor() : AbstractRestoreSe
5052
}
5153

5254
override suspend fun getPackages(): List<PackageEntity> {
53-
return mPackageRepo.queryActivated(OpType.RESTORE, "", mRootDir)
55+
// 检查是否为 Restic 恢复场景
56+
val restoreDir = File("${mRootDir}/restore")
57+
val backupDir = if (restoreDir.exists()) {
58+
Log.d(mTAG, "检测到 Restic 恢复场景,使用 restore 子目录")
59+
"${mRootDir}/restore/"
60+
} else {
61+
Log.d(mTAG, "使用标准恢复路径")
62+
mRootDir
63+
}
64+
65+
Log.d(mTAG, "查询参数: cloud=, backupDir=$backupDir")
66+
val packages = mPackageRepo.queryActivated(OpType.RESTORE, "", backupDir)
67+
Log.d(mTAG, "查询到 ${packages.size} 个激活的应用")
68+
69+
return packages
5470
}
5571

5672
override suspend fun restore(type: DataType, userId: Int, p: PackageEntity, t: TaskDetailPackageEntity, srcDir: String) {

0 commit comments

Comments
 (0)