Add Android Pie bug warning dialog
This commit is contained in:
parent
23eec4ceb1
commit
474dbad1a8
3 changed files with 39 additions and 2 deletions
|
@ -4,12 +4,14 @@ import android.Manifest
|
|||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.net.Uri
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.os.Environment
|
||||
import android.view.View
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.codekidlabs.storagechooser.StorageChooser
|
||||
import eu.depau.etchdroid.R
|
||||
import eu.depau.etchdroid.StateKeeper
|
||||
import eu.depau.etchdroid.enums.FlashMethod
|
||||
|
@ -38,6 +40,19 @@ class StartActivity : ActivityBase() {
|
|||
editor.apply()
|
||||
}
|
||||
|
||||
var shouldShowAndroidPieAlertDialog: Boolean
|
||||
get() {
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.P)
|
||||
return false
|
||||
val settings = getSharedPreferences(DISMISSED_DIALOGS_PREFS, 0)
|
||||
return !settings.getBoolean("Android_Pie_alert", false)
|
||||
}
|
||||
set(value) {
|
||||
val settings = getSharedPreferences(DISMISSED_DIALOGS_PREFS, 0)
|
||||
val editor = settings.edit()
|
||||
editor.putBoolean("Android_Pie_alert", !value)
|
||||
editor.apply()
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
@ -75,7 +90,26 @@ class StartActivity : ActivityBase() {
|
|||
dialogFragment.show(supportFragmentManager, "DMGBetaAlertDialogFragment")
|
||||
}
|
||||
|
||||
fun showFilePicker() {
|
||||
fun showAndroidPieAlertDialog() {
|
||||
val dialogFragment = DoNotShowAgainDialogFragment(nightModeHelper.nightMode)
|
||||
dialogFragment.title = getString(R.string.android_pie_bug)
|
||||
dialogFragment.message = getString(R.string.android_pie_bug_dialog_text)
|
||||
dialogFragment.positiveButton = getString(R.string.i_understand)
|
||||
dialogFragment.listener = object : DoNotShowAgainDialogFragment.DialogListener {
|
||||
override fun onDialogNegative(dialog: DoNotShowAgainDialogFragment, showAgain: Boolean) {}
|
||||
override fun onDialogPositive(dialog: DoNotShowAgainDialogFragment, showAgain: Boolean) {
|
||||
shouldShowAndroidPieAlertDialog = showAgain
|
||||
showFilePicker(false)
|
||||
}
|
||||
}
|
||||
dialogFragment.show(supportFragmentManager, "DMGBetaAlertDialogFragment")
|
||||
}
|
||||
|
||||
fun showFilePicker(showDialog: Boolean = true) {
|
||||
if (showDialog && shouldShowAndroidPieAlertDialog) {
|
||||
showAndroidPieAlertDialog()
|
||||
return
|
||||
}
|
||||
when (StateKeeper.flashMethod) {
|
||||
FlashMethod.FLASH_API -> {
|
||||
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT)
|
||||
|
@ -159,7 +193,6 @@ class StartActivity : ActivityBase() {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
fun nextStep() {
|
||||
val intent = Intent(this, UsbDrivePickerActivity::class.java)
|
||||
startActivity(intent)
|
||||
|
|
|
@ -104,4 +104,6 @@
|
|||
<string name="unknown_error">Errore sconosciuto. Prova a ricollegare il dispositivo USB o a riavviare il dispositivo. Per favore, segnala il problema su GitHub.</string>
|
||||
<string name="uncompressed">(decompresso)</string>
|
||||
<string name="nightmode">Attiva modalità notturna</string>
|
||||
<string name="android_pie_bug">Bug di Android Pie</string>
|
||||
<string name="android_pie_bug_dialog_text">A causa di un bug di Android 9, alcune scritture potrebbero fallire.\nSe appare un messaggio di errore \"Scrittura fallita\", riavvia il dispositivo e prova di nuovo.</string>
|
||||
</resources>
|
|
@ -103,4 +103,6 @@
|
|||
<string name="unknown_error">Unknown error. Try to reattach the USB drive or reboot the device. Please file an issue on GitHub.</string>
|
||||
<string name="uncompressed">(uncompressed)</string>
|
||||
<string name="nightmode">Enable night mode</string>
|
||||
<string name="android_pie_bug">Android Pie bug</string>
|
||||
<string name="android_pie_bug_dialog_text">There is a bug on Android 9 which causes some writes to fail.\nIf it says \"Write failed\", reboot your device and try again.</string>
|
||||
</resources>
|
||||
|
|
Loading…
Reference in a new issue