diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SettingActivity.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SettingActivity.kt
index cf03fc0..d065d46 100644
--- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SettingActivity.kt
+++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SettingActivity.kt
@@ -7,9 +7,16 @@ import android.view.View
import com.yinuo.safetywatcher.R
import com.yinuo.safetywatcher.databinding.ActivitySettingBinding
import com.yinuo.safetywatcher.watcher.base.NoOptionsActivity
+import com.yinuo.safetywatcher.watcher.ui.view.ConfirmDialog
class SettingActivity : NoOptionsActivity() {
+ private val resetFactoryDialog by lazy {
+ ConfirmDialog() {
+ resetEverything()
+ }
+ }
+
private val mBinding: ActivitySettingBinding by lazy {
ActivitySettingBinding.inflate(layoutInflater)
}
@@ -49,20 +56,12 @@ class SettingActivity : NoOptionsActivity() {
startActivity(Intent(this@SettingActivity, NetSettingActivity::class.java))
}
itemRecovery.setOnClickListener {
- try {
- val intent = Intent(Intent.ACTION_VIEW)
- intent.component =
- ComponentName("com.android.settings", "com.android.settings.SubSettings")
- intent.putExtra(":settings:show_fragment", "com.android.settings.MasterClear")
- startActivity(intent)
- } catch (e: Exception) {
- Log.w(this@SettingActivity.javaClass.name, "$e.message")
- }
+ resetFactoryDialog.show(supportFragmentManager, "resetDialog")
}
}
}
- fun resetEverything() {
+ private fun resetEverything() {
val intent = Intent("android.intent.action.FACTORY_RESET")
intent.setPackage("android")
intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
@@ -70,4 +69,16 @@ class SettingActivity : NoOptionsActivity() {
intent.putExtra("com.android.internal.intent.extra.WIPE_ESIMS", false)
sendBroadcast(intent);
}
+
+ private fun go2RestPage() {
+ try {
+ val intent = Intent(Intent.ACTION_VIEW)
+ intent.component =
+ ComponentName("com.android.settings", "com.android.settings.SubSettings")
+ intent.putExtra(":settings:show_fragment", "com.android.settings.MasterClear")
+ startActivity(intent)
+ } catch (e: Exception) {
+ Log.w(this@SettingActivity.javaClass.name, "$e.message")
+ }
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/view/ConfirmDialog.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/view/ConfirmDialog.kt
new file mode 100644
index 0000000..f4a80a0
--- /dev/null
+++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/view/ConfirmDialog.kt
@@ -0,0 +1,55 @@
+package com.yinuo.safetywatcher.watcher.ui.view
+
+import android.graphics.Color
+import android.graphics.drawable.ColorDrawable
+import android.os.Bundle
+import android.view.Gravity
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.DialogFragment
+import com.yinuo.safetywatcher.R
+import com.yinuo.safetywatcher.databinding.LayoutConfirmDialogBinding
+
+class ConfirmDialog(
+ private val tipResID: Int = R.string.confirm_clear_data_tip,
+ private val onConfirmClick: (() -> Unit?)? = null
+) :
+ DialogFragment() {
+
+ var dialogBinding: LayoutConfirmDialogBinding? = null
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ dialogBinding = LayoutConfirmDialogBinding.inflate(inflater, container, false)
+ dialogBinding!!.tip.text = getString(tipResID)
+ dialogBinding!!.tvConfirm.setOnClickListener {
+ onConfirmClick?.invoke()
+ }
+ dialogBinding!!.tvCancel.setOnClickListener {
+ this@ConfirmDialog.dismiss()
+ }
+ return dialogBinding!!.root
+ }
+
+ @Deprecated("Deprecated in Java")
+ override fun onActivityCreated(savedInstanceState: Bundle?) {
+ super.onActivityCreated(savedInstanceState)
+ initWindow()
+ }
+
+ private fun initWindow() {
+ //初始化window相关表现
+ val window = dialog?.window
+ //设备背景为透明(默认白色)
+ window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
+ //设置window宽高(单位px)
+ window?.attributes?.width = 480
+ window?.attributes?.height = 320
+ //设置window位置
+ window?.attributes?.gravity = Gravity.CENTER//居中
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/layout_confirm_dialog.xml b/app/src/main/res/layout/layout_confirm_dialog.xml
new file mode 100644
index 0000000..e079976
--- /dev/null
+++ b/app/src/main/res/layout/layout_confirm_dialog.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index af546ca..82c843a 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -58,4 +58,6 @@
正在连接摄像头...
正在同步中,请勿重复点击
+
+ 确定恢复出厂设置?