@@ -2,35 +2,29 @@ package com.wrbug.developerhelper.ui.widget.appsettingview
22
33import android.Manifest
44import android.app.Activity
5- import android.app.AlertDialog
65import android.content.Context
7- import android.content.DialogInterface
6+ import android.net.Uri
87import android.util.AttributeSet
98import android.view.LayoutInflater
109import android.widget.ScrollView
10+ import androidx.appcompat.app.AlertDialog
11+ import com.wrbug.developerhelper.BuildConfig
1112import com.wrbug.developerhelper.R
13+ import com.wrbug.developerhelper.basecommon.BaseActivity
14+ import com.wrbug.developerhelper.basecommon.requestStoragePermission
1215import com.wrbug.developerhelper.basecommon.showToast
1316import com.wrbug.developerhelper.commonutil.AppManagerUtils
1417import com.wrbug.developerhelper.commonutil.entity.ApkInfo
15- import com.wrbug.developerhelper.mmkv.ConfigKv
16- import com.wrbug.developerhelper.mmkv.manager.MMKVManager
17- import android.content.Intent
18- import android.net.Uri
19- import androidx.appcompat.widget.AppCompatButton
20- import com.wrbug.developerhelper.BuildConfig
21- import com.wrbug.developerhelper.basecommon.BaseActivity
22- import com.wrbug.developerhelper.commonutil.shell.ShellManager
23- import com.wrbug.developerhelper.commonutil.zip
24- import com.wrbug.developerhelper.util.BackupUtils
2518import com.wrbug.developerhelper.commonutil.toUri
26- import com.wrbug.developerhelper.commonwidget.util.setOnDoubleCheckClickListener
19+ import com.wrbug.developerhelper.commonutil.zip
2720import com.wrbug.developerhelper.commonwidget.util.setOnRootCheckClickListener
2821import com.wrbug.developerhelper.commonwidget.util.visible
2922import com.wrbug.developerhelper.databinding.ViewAppSettingBinding
23+ import com.wrbug.developerhelper.mmkv.ConfigKv
24+ import com.wrbug.developerhelper.mmkv.manager.MMKVManager
25+ import com.wrbug.developerhelper.util.BackupUtils
3026import gdut.bsx.share2.Share2
3127import gdut.bsx.share2.ShareContentType
32- import org.jetbrains.anko.doAsync
33- import org.jetbrains.anko.uiThread
3428import java.io.File
3529
3630class AppSettingView : ScrollView {
@@ -93,7 +87,7 @@ class AppSettingView : ScrollView {
9387 apkInfo?.apply {
9488 showNotice(
9589 context.getString(R .string.confirm_delete_app_data)
96- ) { _, _ ->
90+ ) {
9791 if (AppManagerUtils .clearAppData(applicationInfo.packageName)) {
9892 activityFinish()
9993 showToast(context.getString(R .string.clear_complete))
@@ -108,7 +102,7 @@ class AppSettingView : ScrollView {
108102 return
109103 }
110104 apkInfo?.apply {
111- showNotice(context.getString(R .string.confirm_stop_app)) { _, _ ->
105+ showNotice(context.getString(R .string.confirm_stop_app)) {
112106 if (AppManagerUtils .forceStopApp(applicationInfo.packageName)) {
113107 activityFinish()
114108 }
@@ -121,11 +115,12 @@ class AppSettingView : ScrollView {
121115 return
122116 }
123117 apkInfo?.apply {
124- showNotice(context.getString(R .string.confirm_restart_app),
125- DialogInterface .OnClickListener { _, _ ->
126- AppManagerUtils .restartApp(context, applicationInfo.packageName)
127- activityFinish()
128- })
118+ showNotice(
119+ context.getString(R .string.confirm_restart_app)
120+ ) {
121+ AppManagerUtils .restartApp(context, applicationInfo.packageName)
122+ activityFinish()
123+ }
129124 }
130125 }
131126
@@ -134,8 +129,7 @@ class AppSettingView : ScrollView {
134129 return
135130 }
136131 apkInfo?.apply {
137- val backupAppData =
138- BackupUtils .backupAppData(applicationInfo.packageName, applicationInfo.dataDir)
132+ val backupAppData = BackupUtils .backupAppData(applicationInfo.packageName)
139133 if (backupAppData == null ) {
140134 showToast(context.getString(R .string.backup_failed))
141135 return
@@ -149,68 +143,58 @@ class AppSettingView : ScrollView {
149143 }
150144
151145 private fun showShareDataNotice (backupAppData : File ) {
152- showNotice(context.getString(R .string.backup_success_and_share_msg),
153- DialogInterface .OnClickListener { _, _ ->
154- (context as BaseActivity ).requestPermission(arrayOf(Manifest .permission.READ_EXTERNAL_STORAGE ),
155- object : BaseActivity .PermissionCallback () {
156- override fun granted () {
157- val zipFile = File (
158- context.externalCacheDir, " ${apkInfo?.getAppName() ? : " " } -data.zip"
159- )
160- backupAppData.zip(zipFile)
161- val uri = zipFile.toUri(context)
162- if (uri == null ) {
163- showToast(context.getString(R .string.share_failed))
164- return
165- }
166- activityFinish()
167- Share2 .Builder (context as Activity )
168- .setContentType(ShareContentType .FILE ).setShareFileUri(uri)
169- .setOnActivityResult(10 ).build().shareBySystem()
146+ showNotice(context.getString(R .string.backup_success_and_share_msg)) {
147+ (context as BaseActivity ).requestPermission(arrayOf(Manifest .permission.READ_EXTERNAL_STORAGE ),
148+ object : BaseActivity .PermissionCallback () {
149+ override fun granted () {
150+ val zipFile = File (
151+ context.externalCacheDir, " ${apkInfo?.getAppName() ? : " " } -data.zip"
152+ )
153+ backupAppData.zip(zipFile)
154+ val uri = zipFile.toUri(context)
155+ if (uri == null ) {
156+ showToast(context.getString(R .string.share_failed))
157+ return
170158 }
159+ activityFinish()
160+ Share2 .Builder (context as Activity ).setContentType(ShareContentType .FILE )
161+ .setShareFileUri(uri).setOnActivityResult(10 ).build().shareBySystem()
162+ }
171163
172- })
164+ })
173165
174- })
166+ }
175167 }
176168
177169 private fun doBackupApk () {
178170 if (checkRoot().not ()) {
179171 return
180172 }
181- apkInfo?.apply {
182- val uri = BackupUtils .backupApk(
183- applicationInfo.packageName,
184- applicationInfo.publicSourceDir,
185- " ${getAppName()} _${packageInfo.versionName} .apk"
186- )
187- if (uri == null ) {
188- showToast(context.getString(R .string.backup_failed))
189- return
190- }
191- if (context !is BaseActivity ) {
192- showToast(context.getString(R .string.backup_success_msg))
193- return
173+ context.requestStoragePermission {
174+ apkInfo?.apply {
175+ val uri = BackupUtils .backupApk(
176+ applicationInfo.packageName,
177+ applicationInfo.publicSourceDir,
178+ " ${getAppName()} _${packageInfo.versionName} .apk"
179+ )
180+ if (uri == null ) {
181+ showToast(context.getString(R .string.backup_failed))
182+ return @apply
183+ }
184+ if (context !is BaseActivity ) {
185+ showToast(context.getString(R .string.backup_success_msg))
186+ return @apply
187+ }
188+ showShareApkDialog(uri)
194189 }
195- showShareApkDialog(uri)
196-
197190 }
198191 }
199192
200193 private fun showShareApkDialog (uri : Uri ) {
201- showNotice(context.getString(R .string.backup_success_and_share_msg)) { _, _ ->
202- (context as BaseActivity ).requestPermission(arrayOf(
203- Manifest .permission.READ_EXTERNAL_STORAGE ,
204- Manifest .permission.WRITE_EXTERNAL_STORAGE
205- ), object : BaseActivity .PermissionCallback () {
206- override fun granted () {
207- activityFinish()
208- Share2 .Builder (context as Activity ).setContentType(ShareContentType .FILE )
209- .setShareFileUri(uri).setOnActivityResult(10 ).build().shareBySystem()
210- }
211-
212- })
213-
194+ showNotice(context.getString(R .string.backup_success_and_share_msg)) {
195+ activityFinish()
196+ Share2 .Builder (context as Activity ).setContentType(ShareContentType .FILE )
197+ .setShareFileUri(uri).setOnActivityResult(10 ).build().shareBySystem()
214198 }
215199 }
216200
@@ -228,9 +212,11 @@ class AppSettingView : ScrollView {
228212 }
229213 }
230214
231- private fun showNotice (msg : String , listener : DialogInterface . OnClickListener ) {
215+ private fun showNotice (msg : String , listener : () -> Unit ) {
232216 AlertDialog .Builder (context).setTitle(R .string.notice).setMessage(msg)
233- .setNegativeButton(R .string.cancel, null ).setPositiveButton(R .string.ok, listener)
234- .create().show()
217+ .setNegativeButton(R .string.cancel, null ).setPositiveButton(
218+ R .string.ok
219+ ) { _, _ -> listener() }.create().show()
235220 }
221+
236222}
0 commit comments