Add a warning dialog to notify user that call may end by operation.

Flag: EXEMPT bugfix
Fix: 299061626
Test: atest passed
Test: Manual test passed
Change-Id: I09e0186da45b0ccd00ccf0d86d6448a13b363298
diff --git a/src/com/android/settings/system/reset/ResetNetworkConfirm.kt b/src/com/android/settings/system/reset/ResetNetworkConfirm.kt
index 34b9909..e040356 100644
--- a/src/com/android/settings/system/reset/ResetNetworkConfirm.kt
+++ b/src/com/android/settings/system/reset/ResetNetworkConfirm.kt
@@ -18,6 +18,7 @@
 
 import android.app.ProgressDialog
 import android.app.settings.SettingsEnums
+import android.content.DialogInterface
 import android.os.Bundle
 import android.os.Looper
 import android.telephony.SubscriptionManager
@@ -56,7 +57,8 @@
  * This is the confirmation screen.
  */
 class ResetNetworkConfirm : InstrumentedFragment() {
-    @VisibleForTesting lateinit var resetNetworkRequest: ResetNetworkRequest
+    @VisibleForTesting
+    lateinit var resetNetworkRequest: ResetNetworkRequest
     private var progressDialog: ProgressDialog? = null
     private var alertDialog: AlertDialog? = null
     private var resetStarted = false
@@ -87,10 +89,7 @@
     /** Configure the UI for the final confirmation interaction */
     private fun View.establishFinalConfirmationState() {
         requireViewById<View>(R.id.execute_reset_network).setOnClickListener {
-            if (!Utils.isMonkeyRunning() && !resetStarted) {
-                resetStarted = true
-                viewLifecycleOwner.lifecycleScope.launch { onResetClicked() }
-            }
+            showResetInternetDialog();
         }
     }
 
@@ -118,10 +117,10 @@
     private fun invalidSubIdFlow(): Flow<Int> {
         val subIdsInRequest =
             listOf(
-                    resetNetworkRequest.resetTelephonyAndNetworkPolicyManager,
-                    resetNetworkRequest.resetApnSubId,
-                    resetNetworkRequest.resetImsSubId,
-                )
+                resetNetworkRequest.resetTelephonyAndNetworkPolicyManager,
+                resetNetworkRequest.resetApnSubId,
+                resetNetworkRequest.resetImsSubId,
+            )
                 .distinct()
                 .filter(SubscriptionManager::isUsableSubscriptionId)
 
@@ -162,6 +161,24 @@
         }
     }
 
+    private fun showResetInternetDialog() {
+        val builder = AlertDialog.Builder(requireContext())
+        val resetInternetClickListener =
+            DialogInterface.OnClickListener { dialog, which ->
+                if (!Utils.isMonkeyRunning() && !resetStarted) {
+                    resetStarted = true
+                    viewLifecycleOwner.lifecycleScope.launch { onResetClicked() }
+                }
+            }
+
+        builder.setTitle(R.string.reset_your_internet_title)
+            .setMessage(R.string.reset_internet_text)
+            .setPositiveButton(R.string.tts_reset, resetInternetClickListener)
+            .setNegativeButton(android.R.string.cancel, null)
+            .create()
+            .show()
+    }
+
     /**
      * Do all reset task.
      *
@@ -173,7 +190,8 @@
         withContext(Dispatchers.Default) {
             val builder =
                 resetNetworkRequest.toResetNetworkOperationBuilder(
-                    requireContext(), Looper.getMainLooper())
+                    requireContext(), Looper.getMainLooper()
+                )
             resetNetworkRequest.resetEsimPackageName?.let { resetEsimPackageName ->
                 builder.resetEsim(resetEsimPackageName)
                 builder.resetEsimResultCallback { resetEsimSuccess = it }
@@ -199,8 +217,8 @@
         } else {
             Toast.makeText(activity, R.string.reset_network_complete_toast, Toast.LENGTH_SHORT)
                 .show()
+            activity.finish()
         }
-        activity.finish()
     }
 
     override fun onDestroy() {