diff --git a/app/build.gradle b/app/build.gradle index de48a61..9a835e7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,8 +8,8 @@ android { applicationId "io.github.domi04151309.powerapp" minSdkVersion 23 targetSdkVersion 29 - versionCode 185 - versionName "1.8.5" + versionCode 186 + versionName "1.8.6" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { diff --git a/app/src/main/java/io/github/domi04151309/powerapp/MainActivity.kt b/app/src/main/java/io/github/domi04151309/powerapp/MainActivity.kt index 5312b68..62f6dec 100644 --- a/app/src/main/java/io/github/domi04151309/powerapp/MainActivity.kt +++ b/app/src/main/java/io/github/domi04151309/powerapp/MainActivity.kt @@ -1,5 +1,6 @@ package io.github.domi04151309.powerapp +import android.app.AlertDialog import android.content.Intent import androidx.appcompat.app.ActionBar import androidx.appcompat.app.AppCompatActivity @@ -30,31 +31,31 @@ class MainActivity : AppCompatActivity() { actionBar.elevation = 0f } - val po = PowerOptions(this) + val po = PowerOptions(this, true) findViewById(R.id.shutdown).setOnClickListener { - po.shutdown() + askBefore { po.shutdown() } } findViewById(R.id.reboot).setOnClickListener { - po.reboot() + askBefore { po.reboot() } } findViewById(R.id.recovery).setOnClickListener { - po.rebootIntoRecovery() + askBefore { po.rebootIntoRecovery() } } findViewById(R.id.bootloader).setOnClickListener { - po.rebootIntoBootloader() + askBefore { po.rebootIntoBootloader() } } findViewById(R.id.edl).setOnClickListener { - po.rebootIntoEDL() + askBefore { po.rebootIntoEDL() } } findViewById(R.id.soft_reboot).setOnClickListener { - po.softReboot() + askBefore { po.softReboot() } } findViewById(R.id.system_ui).setOnClickListener { - po.restartSystemUI() + askBefore { po.restartSystemUI() } } findViewById(R.id.screen_off).setOnClickListener { - po.turnOffScreen() + askBefore { po.turnOffScreen() } } findViewById(R.id.root).setOnClickListener { val p: Process @@ -82,4 +83,15 @@ class MainActivity : AppCompatActivity() { override fun onBackPressed() { startActivity(Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)) } + + private fun askBefore(function : () -> Unit) { + AlertDialog.Builder(this) + .setTitle(R.string.confirm_dialog) + .setMessage(R.string.confirm_dialog_summary) + .setPositiveButton(android.R.string.ok) { _, _ -> + function() + } + .setNegativeButton(android.R.string.cancel) { _, _ -> } + .show() + } } diff --git a/app/src/main/java/io/github/domi04151309/powerapp/PowerOptions.kt b/app/src/main/java/io/github/domi04151309/powerapp/PowerOptions.kt index c301da2..06f4972 100644 --- a/app/src/main/java/io/github/domi04151309/powerapp/PowerOptions.kt +++ b/app/src/main/java/io/github/domi04151309/powerapp/PowerOptions.kt @@ -5,30 +5,19 @@ import android.content.Context import android.util.Log import android.widget.Toast -class PowerOptions(private val context: Context) { +class PowerOptions(private val context: Context, private val dialog: Boolean = false) { private fun shell(command: String) { try { - try { - AlertDialog.Builder(context) - .setTitle(R.string.confirm_dialog) - .setMessage(R.string.confirm_dialog_summary) - .setPositiveButton(android.R.string.ok) { _, _ -> - Runtime.getRuntime().exec(arrayOf("su", "-c", command)).waitFor() - } - .setNegativeButton(android.R.string.cancel) { _, _ -> } - .show() - } catch (e: Exception) { - Runtime.getRuntime().exec(arrayOf("su", "-c", command)).waitFor() - } + Runtime.getRuntime().exec(arrayOf("su", "-c", command)).waitFor() } catch (e: Exception) { - try { + if (dialog) { AlertDialog.Builder(context) .setTitle(R.string.action_failed) .setMessage(R.string.action_failed_summary) .setPositiveButton(android.R.string.ok) { _, _ -> } .show() - } catch (e: Exception) { + } else { Toast.makeText(context,R.string.action_failed_summary,Toast.LENGTH_LONG).show() } Log.e("Superuser", e.toString()) diff --git a/app/src/main/java/io/github/domi04151309/powerapp/shortcuts/ShutdownActivity.kt b/app/src/main/java/io/github/domi04151309/powerapp/shortcuts/ShutdownActivity.kt index 0ad7d15..f94ffe9 100644 --- a/app/src/main/java/io/github/domi04151309/powerapp/shortcuts/ShutdownActivity.kt +++ b/app/src/main/java/io/github/domi04151309/powerapp/shortcuts/ShutdownActivity.kt @@ -9,6 +9,7 @@ class ShutdownActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) PowerOptions(this).shutdown() + finish() } } diff --git a/app/src/main/java/io/github/domi04151309/powerapp/shortcuts/SoftRebootActivity.kt b/app/src/main/java/io/github/domi04151309/powerapp/shortcuts/SoftRebootActivity.kt index 1cfb89d..e0e129c 100644 --- a/app/src/main/java/io/github/domi04151309/powerapp/shortcuts/SoftRebootActivity.kt +++ b/app/src/main/java/io/github/domi04151309/powerapp/shortcuts/SoftRebootActivity.kt @@ -9,6 +9,7 @@ class SoftRebootActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) PowerOptions(this).softReboot() + finish() } } diff --git a/fastlane/metadata/android/en-US/changelogs/186.txt b/fastlane/metadata/android/en-US/changelogs/186.txt new file mode 100644 index 0000000..df59d0d --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/186.txt @@ -0,0 +1,5 @@ +- Add confirmation dialogs +- Add shortcuts +- Fix about screen +- Add EDL shortcut +- Fix crash on not rooted devices