Skip to content

Commit f92ce08

Browse files
Show "restart app" dialog after successfully granting the permission using root
1 parent 3a64440 commit f92ce08

File tree

3 files changed

+39
-5
lines changed

3 files changed

+39
-5
lines changed

app/src/main/java/com/dp/logcatapp/fragments/logcatlive/LogcatLiveFragment.kt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,7 @@ import com.dp.logcatapp.activities.SavedLogsActivity
2828
import com.dp.logcatapp.db.FilterInfo
2929
import com.dp.logcatapp.fragments.base.BaseFragment
3030
import com.dp.logcatapp.fragments.filters.FilterType
31-
import com.dp.logcatapp.fragments.logcatlive.dialogs.AskingForRootAccessDialogFragment
32-
import com.dp.logcatapp.fragments.logcatlive.dialogs.ManualMethodToGrantPermissionDialogFragment
33-
import com.dp.logcatapp.fragments.logcatlive.dialogs.NeedPermissionDialogFragment
34-
import com.dp.logcatapp.fragments.logcatlive.dialogs.OnSavedBottomSheetDialogFragment
31+
import com.dp.logcatapp.fragments.logcatlive.dialogs.*
3532
import com.dp.logcatapp.fragments.shared.dialogs.CopyToClipboardDialogFragment
3633
import com.dp.logcatapp.fragments.shared.dialogs.FilterExclusionDialogFragment
3734
import com.dp.logcatapp.services.LogcatService
@@ -692,7 +689,8 @@ class LogcatLiveFragment : BaseFragment(), ServiceConnection, LogsReceivedListen
692689

693690
dialog.dismissAllowingStateLoss()
694691
if (result == 0) {
695-
activity!!.showToast(getString(R.string.success))
692+
RestartAppMessageDialogFragment.newInstance().show(fragmentManager,
693+
RestartAppMessageDialogFragment.TAG)
696694
} else {
697695
activity!!.showToast(getString(R.string.fail))
698696
ManualMethodToGrantPermissionDialogFragment().show(fragmentManager,
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.dp.logcatapp.fragments.logcatlive.dialogs
2+
3+
import android.app.Dialog
4+
import android.content.Intent
5+
import android.os.Bundle
6+
import android.os.Process
7+
import androidx.appcompat.app.AlertDialog
8+
import com.dp.logcatapp.R
9+
import com.dp.logcatapp.fragments.base.BaseDialogFragment
10+
import com.dp.logcatapp.services.LogcatService
11+
12+
class RestartAppMessageDialogFragment : BaseDialogFragment() {
13+
14+
companion object {
15+
val TAG = RestartAppMessageDialogFragment::class.qualifiedName
16+
17+
fun newInstance(): RestartAppMessageDialogFragment {
18+
return RestartAppMessageDialogFragment()
19+
}
20+
}
21+
22+
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
23+
isCancelable = false
24+
return AlertDialog.Builder(activity!!)
25+
.setTitle(R.string.app_restart_dialog_title)
26+
.setMessage(getString(R.string.app_restart_dialog_msg_body))
27+
.setCancelable(false)
28+
.setPositiveButton(android.R.string.ok) { _, _ ->
29+
context!!.stopService(Intent(context, LogcatService::class.java))
30+
Process.killProcess(Process.myPid())
31+
}
32+
.create()
33+
}
34+
}

app/src/main/res/values/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,4 +110,6 @@
110110
<string name="read_logs_permission_required_msg">"READ_LOGS permission is required.\n\nIf your device is rooted, please select 'Root method', otherwise, to grant the permission manually using ADB, please select 'Manual method'.\n\nThis needs to be done only once!"</string>
111111
<string name="root_method">Root method</string>
112112
<string name="asking_permission_for_root_access">Asking permission for ROOT access…</string>
113+
<string name="app_restart_dialog_title">App restart required</string>
114+
<string name="app_restart_dialog_msg_body">Tapping OK will kill the app. You should see a complete list of logs from now on.</string>
113115
</resources>

0 commit comments

Comments
 (0)