added restart dialog when workmanager concurrent downloads preference is updated

This commit is contained in:
Denis Çerri 2023-03-11 22:39:49 +01:00
parent ba10376835
commit 679e6d040e
No known key found for this signature in database
GPG key ID: 95C43D517D830350
2 changed files with 22 additions and 5 deletions

View file

@ -1,17 +1,14 @@
package com.deniscerri.ytdlnis.ui.more.settings package com.deniscerri.ytdlnis.ui.more.settings
import android.app.Activity import android.app.Activity
import android.content.ClipboardManager
import android.content.Intent import android.content.Intent
import android.net.Uri import android.net.Uri
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.os.Environment import android.os.Environment
import android.provider.Settings import android.provider.Settings
import android.util.Log
import android.widget.Toast import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.app.AppCompatDelegate import androidx.appcompat.app.AppCompatDelegate
import androidx.core.os.LocaleListCompat import androidx.core.os.LocaleListCompat
import androidx.preference.* import androidx.preference.*
@ -19,8 +16,7 @@ import com.deniscerri.ytdlnis.BuildConfig
import com.deniscerri.ytdlnis.R import com.deniscerri.ytdlnis.R
import com.deniscerri.ytdlnis.util.FileUtil import com.deniscerri.ytdlnis.util.FileUtil
import com.deniscerri.ytdlnis.util.UpdateUtil import com.deniscerri.ytdlnis.util.UpdateUtil
import kotlinx.serialization.decodeFromString import com.google.android.material.dialog.MaterialAlertDialogBuilder
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.* import kotlinx.serialization.json.*
import java.util.* import java.util.*
@ -254,6 +250,25 @@ class SettingsFragment : PreferenceFragmentCompat() {
val value = newValue.toString().toInt() val value = newValue.toString().toInt()
editor.putInt("concurrent_downloads", value) editor.putInt("concurrent_downloads", value)
editor.apply() editor.apply()
MaterialAlertDialogBuilder(requireContext())
.setTitle(resources.getString(R.string.warning))
.setMessage(resources.getString(R.string.workmanager_updated))
.setNegativeButton(resources.getString(R.string.cancel)) { dialog, which ->
dialog.cancel()
}
.setPositiveButton(resources.getString(R.string.restart)) { dialog, which ->
val i: Intent =
requireContext().packageManager.getLaunchIntentForPackage(
requireContext().packageName
)!!
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
startActivity(i)
requireActivity().finish()
dialog.cancel()
}
.show()
true true
} }
limitRate!!.onPreferenceChangeListener = limitRate!!.onPreferenceChangeListener =

View file

@ -217,4 +217,6 @@
<string name="items_imported">Items Imported</string> <string name="items_imported">Items Imported</string>
<string name="help_translate">Help Translate</string> <string name="help_translate">Help Translate</string>
<string name="help_translate_summary">Translate this app on your language using Weblate</string> <string name="help_translate_summary">Translate this app on your language using Weblate</string>
<string name="workmanager_updated">You need to restart the app and have no active downloads for this preference to take effect!</string>
<string name="restart">Restart</string>
</resources> </resources>