Fix SettingsScreen auto-install after download
This commit is contained in:
BIN
Screenshot_20260306_213814_ .jpg
Normal file
BIN
Screenshot_20260306_213814_ .jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 213 KiB |
@@ -45,6 +45,7 @@ import com.hotdeal.alarm.presentation.components.PermissionDialog
|
|||||||
import com.hotdeal.alarm.presentation.main.MainUiState
|
import com.hotdeal.alarm.presentation.main.MainUiState
|
||||||
import com.hotdeal.alarm.presentation.main.MainViewModel
|
import com.hotdeal.alarm.presentation.main.MainViewModel
|
||||||
import com.hotdeal.alarm.ui.theme.getSiteColor
|
import com.hotdeal.alarm.ui.theme.getSiteColor
|
||||||
|
import com.hotdeal.alarm.util.ApkDownloadManager
|
||||||
import com.hotdeal.alarm.util.PermissionHelper
|
import com.hotdeal.alarm.util.PermissionHelper
|
||||||
import com.hotdeal.alarm.util.VersionManager
|
import com.hotdeal.alarm.util.VersionManager
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
@@ -477,17 +478,20 @@ private fun MoreTab(viewModel: MainViewModel) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun downloadAndInstallApk(context: Context, updateInfo: com.hotdeal.alarm.util.UpdateInfo) {
|
private fun downloadAndInstallApk(context: Context, updateInfo: com.hotdeal.alarm.util.UpdateInfo) {
|
||||||
val downloadManager = context.getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager
|
// ApkDownloadManager를 사용하여 다운로드 시작 및 자동 설치
|
||||||
val request = DownloadManager.Request(Uri.parse(updateInfo.updateUrl))
|
val downloadId = ApkDownloadManager.downloadApk(context, updateInfo)
|
||||||
.setTitle("핫딜 알람 업데이트")
|
|
||||||
.setDescription("버전 ${updateInfo.version} 다운로드 중...")
|
// 다운로드 완료 리시버 등록 - 완료 시 자동 설치
|
||||||
.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED)
|
ApkDownloadManager.registerDownloadCompleteReceiver(
|
||||||
.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "hotdeal_alarm_${updateInfo.version}.apk")
|
context = context,
|
||||||
.setAllowedOverMetered(true)
|
downloadId = downloadId,
|
||||||
.setAllowedOverRoaming(true)
|
onComplete = {
|
||||||
|
ApkDownloadManager.installApk(context)
|
||||||
downloadManager.enqueue(request)
|
},
|
||||||
Toast.makeText(context, "다운로드가 시작되었습니다", Toast.LENGTH_SHORT).show()
|
onFailed = {
|
||||||
|
Toast.makeText(context, "다운로드 실패. 다시 시도해주세요.", Toast.LENGTH_SHORT).show()
|
||||||
|
}
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ==================== 공통 컴포넌트 ====================
|
// ==================== 공통 컴포넌트 ====================
|
||||||
|
|||||||
1155
index.html
Normal file
1155
index.html
Normal file
File diff suppressed because it is too large
Load Diff
BIN
index.html:Zone.Identifier
Normal file
BIN
index.html:Zone.Identifier
Normal file
Binary file not shown.
Reference in New Issue
Block a user