VancedManager/app/src/main/java/com/vanced/manager/ui/dialogs/AppVersionSelectorDialog.kt

94 lines
3.1 KiB
Kotlin
Raw Normal View History

package com.vanced.manager.ui.dialogs
2020-11-08 12:46:17 +00:00
import android.content.DialogInterface
import android.os.Bundle
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.core.content.edit
import com.google.android.material.radiobutton.MaterialRadioButton
import com.vanced.manager.R
import com.vanced.manager.core.ui.base.BindingBottomSheetDialogFragment
import com.vanced.manager.core.ui.ext.showDialog
import com.vanced.manager.databinding.DialogBottomRadioButtonBinding
2020-12-14 21:18:58 +00:00
import com.vanced.manager.ui.core.ThemedMaterialRadioButton
Vanced Manager 2.6.0 (#516) * updated app card UI * bug fixes * fixed grammar * removed unnoticable animation to improve performance * removed useless attribute * kotlin extensions are stonks * reference accent color variable instead of getting preference value every time * updated old stuff * removed useless check inside 'when' statement * optimised lifecycleOwner getter * property access syntax goes brrrrr * small accent update * added progress indicators to download dialogs * fixed changelog not appearing when pressing card in about menu * bumped up kotlin to 1.4.31 * fixed #437 * fixed #435 * fixed viewpager navigation on RTL layout * added a check for session id in root installer * updated strings * always notify about miui error * only run 1 animation at once * require external storage * sorted strings xml * improved layouts to look more close to each other * bumped up dependencies * updated version * fixed crash on manager update * New Crowdin updates (#489) * New translations strings.xml (Romanian) * New translations strings.xml (Bengali) * New translations strings.xml (Serbian (Cyrillic)) * New translations strings.xml (Swedish) * New translations strings.xml (Turkish) * New translations strings.xml (Ukrainian) * New translations strings.xml (Chinese Simplified) * New translations strings.xml (Chinese Traditional) * New translations strings.xml (Vietnamese) * New translations strings.xml (Portuguese, Brazilian) * New translations strings.xml (Indonesian) * New translations strings.xml (Tamil) * New translations strings.xml (Marathi) * New translations strings.xml (Portuguese) * New translations strings.xml (Thai) * New translations strings.xml (Croatian) * New translations strings.xml (Azerbaijani) * New translations strings.xml (Hindi) * New translations strings.xml (Filipino) * New translations strings.xml (Sinhala) * New translations strings.xml (Bengali, India) * New translations strings.xml (Sorani (Kurdish)) * New translations strings.xml (Pashto) * New translations strings.xml (Somali) * New translations strings.xml (Russian) * New translations strings.xml (Polish) * New translations strings.xml (Arabic) * New translations strings.xml (Spanish) * New translations strings.xml (Slovak) * New translations strings.xml (Malayalam) * New translations strings.xml (Japanese) * New translations strings.xml (Estonian) * New translations strings.xml (French) * New translations strings.xml (Kurdish) * New translations strings.xml (Kurmanji (Kurdish)) * New translations strings.xml (Hungarian) * New translations strings.xml (Finnish) * New translations strings.xml (Korean) * New translations strings.xml (Afrikaans) * New translations strings.xml (Punjabi) * New translations strings.xml (Bulgarian) * New translations strings.xml (Catalan) * New translations strings.xml (Czech) * New translations strings.xml (Danish) * New translations strings.xml (German) * New translations strings.xml (Greek) * New translations strings.xml (Hebrew) * New translations strings.xml (Italian) * New translations strings.xml (Georgian) * New translations strings.xml (Dutch) * New translations strings.xml (Norwegian) * New translations strings.xml (Punjabi, Pakistan) * Added button info on long press * preview adjustments to navigation xml * moved splash screen activity to parent dir * fixed buttontag getter * updated readme * fixed readme * Added build section to readme * Updated build instructions * prevent stacktrace from obfuscating * Added an option to switch between internal and external storage * removed warning for music vanced * added back a fix for split installer * added -r option for root music installer * Revert "prevent stacktrace from obfuscating" This reverts commit 2d30eb60af11f2d854c826953c025702c2e161ce. * Revert "added back a fix for split installer" This reverts commit aeaa0d445ec7cd6d2c318bf3f3751f8759d89801. * Revert "Added an option to switch between internal and external storage" This reverts commit 98c4b88961d14f36acf908bcee2376c1f79af86e. * reverted all storage-related commits * prevent stacktrace ovfuscation * updated readme * updated base url * use storage perms only on android 5 * cleanup * removed unused event file * fixed dark overlay not disappearing after bottom dialog has been dismissed * removed unecessary path from file_provider * fixed lint for core-ui * improved layout flexibility * updated icons in expandable app item * removed path prefix for api urls * removed microg bug dialog * fixed version code comparison * New translations strings.xml (Romanian) * New translations strings.xml (Croatian) * New translations strings.xml (Ukrainian) * New translations strings.xml (Chinese Simplified) * New translations strings.xml (Chinese Traditional) * New translations strings.xml (Vietnamese) * New translations strings.xml (Portuguese, Brazilian) * New translations strings.xml (Indonesian) * New translations strings.xml (Tamil) * New translations strings.xml (Bengali) * New translations strings.xml (Marathi) * New translations strings.xml (Thai) * New translations strings.xml (Estonian) * New translations strings.xml (Swedish) * New translations strings.xml (Azerbaijani) * New translations strings.xml (Hindi) * New translations strings.xml (Filipino) * New translations strings.xml (Malayalam) * New translations strings.xml (Sinhala) * New translations strings.xml (Bengali, India) * New translations strings.xml (Kurmanji (Kurdish)) * New translations strings.xml (Sorani (Kurdish)) * New translations strings.xml (Pashto) * New translations strings.xml (Somali) * New translations strings.xml (Punjabi, Pakistan) * New translations strings.xml (Turkish) * New translations strings.xml (Serbian (Cyrillic)) * New translations strings.xml (French) * New translations strings.xml (Hebrew) * New translations strings.xml (Spanish) * New translations strings.xml (Afrikaans) * New translations strings.xml (Arabic) * New translations strings.xml (Bulgarian) * New translations strings.xml (Catalan) * New translations strings.xml (Czech) * New translations strings.xml (Danish) * New translations strings.xml (German) * New translations strings.xml (Greek) * New translations strings.xml (Finnish) * New translations strings.xml (Hungarian) * New translations strings.xml (Slovak) * New translations strings.xml (Italian) * New translations strings.xml (Japanese) * New translations strings.xml (Georgian) * New translations strings.xml (Korean) * New translations strings.xml (Kurdish) * New translations strings.xml (Dutch) * New translations strings.xml (Norwegian) * New translations strings.xml (Punjabi) * New translations strings.xml (Polish) * New translations strings.xml (Portuguese) * New translations strings.xml (Russian) * New translations strings.xml (Lithuanian) * New translations strings.xml (Portuguese, Brazilian) * New translations strings.xml (Arabic) * New translations strings.xml (Slovak) * New translations strings.xml (Korean) * New translations strings.xml (Polish) * New Crowdin updates (#515) * New translations strings.xml (Arabic) * New translations strings.xml (Greek) * New translations strings.xml (Dutch) * New translations strings.xml (Turkish) * New translations strings.xml (Chinese Traditional) * New translations strings.xml (Indonesian) Co-authored-by: X1nto <burtkni@yandex.ru> Co-authored-by: Tornike Khintibidze <48173186+X1nto@users.noreply.github.com>
2021-04-27 12:16:14 +00:00
import com.vanced.manager.utils.checkedButtonTag
import com.vanced.manager.utils.defPrefs
import com.vanced.manager.utils.formatVersion
Vanced Manager 2.6.0 (#516) * updated app card UI * bug fixes * fixed grammar * removed unnoticable animation to improve performance * removed useless attribute * kotlin extensions are stonks * reference accent color variable instead of getting preference value every time * updated old stuff * removed useless check inside 'when' statement * optimised lifecycleOwner getter * property access syntax goes brrrrr * small accent update * added progress indicators to download dialogs * fixed changelog not appearing when pressing card in about menu * bumped up kotlin to 1.4.31 * fixed #437 * fixed #435 * fixed viewpager navigation on RTL layout * added a check for session id in root installer * updated strings * always notify about miui error * only run 1 animation at once * require external storage * sorted strings xml * improved layouts to look more close to each other * bumped up dependencies * updated version * fixed crash on manager update * New Crowdin updates (#489) * New translations strings.xml (Romanian) * New translations strings.xml (Bengali) * New translations strings.xml (Serbian (Cyrillic)) * New translations strings.xml (Swedish) * New translations strings.xml (Turkish) * New translations strings.xml (Ukrainian) * New translations strings.xml (Chinese Simplified) * New translations strings.xml (Chinese Traditional) * New translations strings.xml (Vietnamese) * New translations strings.xml (Portuguese, Brazilian) * New translations strings.xml (Indonesian) * New translations strings.xml (Tamil) * New translations strings.xml (Marathi) * New translations strings.xml (Portuguese) * New translations strings.xml (Thai) * New translations strings.xml (Croatian) * New translations strings.xml (Azerbaijani) * New translations strings.xml (Hindi) * New translations strings.xml (Filipino) * New translations strings.xml (Sinhala) * New translations strings.xml (Bengali, India) * New translations strings.xml (Sorani (Kurdish)) * New translations strings.xml (Pashto) * New translations strings.xml (Somali) * New translations strings.xml (Russian) * New translations strings.xml (Polish) * New translations strings.xml (Arabic) * New translations strings.xml (Spanish) * New translations strings.xml (Slovak) * New translations strings.xml (Malayalam) * New translations strings.xml (Japanese) * New translations strings.xml (Estonian) * New translations strings.xml (French) * New translations strings.xml (Kurdish) * New translations strings.xml (Kurmanji (Kurdish)) * New translations strings.xml (Hungarian) * New translations strings.xml (Finnish) * New translations strings.xml (Korean) * New translations strings.xml (Afrikaans) * New translations strings.xml (Punjabi) * New translations strings.xml (Bulgarian) * New translations strings.xml (Catalan) * New translations strings.xml (Czech) * New translations strings.xml (Danish) * New translations strings.xml (German) * New translations strings.xml (Greek) * New translations strings.xml (Hebrew) * New translations strings.xml (Italian) * New translations strings.xml (Georgian) * New translations strings.xml (Dutch) * New translations strings.xml (Norwegian) * New translations strings.xml (Punjabi, Pakistan) * Added button info on long press * preview adjustments to navigation xml * moved splash screen activity to parent dir * fixed buttontag getter * updated readme * fixed readme * Added build section to readme * Updated build instructions * prevent stacktrace from obfuscating * Added an option to switch between internal and external storage * removed warning for music vanced * added back a fix for split installer * added -r option for root music installer * Revert "prevent stacktrace from obfuscating" This reverts commit 2d30eb60af11f2d854c826953c025702c2e161ce. * Revert "added back a fix for split installer" This reverts commit aeaa0d445ec7cd6d2c318bf3f3751f8759d89801. * Revert "Added an option to switch between internal and external storage" This reverts commit 98c4b88961d14f36acf908bcee2376c1f79af86e. * reverted all storage-related commits * prevent stacktrace ovfuscation * updated readme * updated base url * use storage perms only on android 5 * cleanup * removed unused event file * fixed dark overlay not disappearing after bottom dialog has been dismissed * removed unecessary path from file_provider * fixed lint for core-ui * improved layout flexibility * updated icons in expandable app item * removed path prefix for api urls * removed microg bug dialog * fixed version code comparison * New translations strings.xml (Romanian) * New translations strings.xml (Croatian) * New translations strings.xml (Ukrainian) * New translations strings.xml (Chinese Simplified) * New translations strings.xml (Chinese Traditional) * New translations strings.xml (Vietnamese) * New translations strings.xml (Portuguese, Brazilian) * New translations strings.xml (Indonesian) * New translations strings.xml (Tamil) * New translations strings.xml (Bengali) * New translations strings.xml (Marathi) * New translations strings.xml (Thai) * New translations strings.xml (Estonian) * New translations strings.xml (Swedish) * New translations strings.xml (Azerbaijani) * New translations strings.xml (Hindi) * New translations strings.xml (Filipino) * New translations strings.xml (Malayalam) * New translations strings.xml (Sinhala) * New translations strings.xml (Bengali, India) * New translations strings.xml (Kurmanji (Kurdish)) * New translations strings.xml (Sorani (Kurdish)) * New translations strings.xml (Pashto) * New translations strings.xml (Somali) * New translations strings.xml (Punjabi, Pakistan) * New translations strings.xml (Turkish) * New translations strings.xml (Serbian (Cyrillic)) * New translations strings.xml (French) * New translations strings.xml (Hebrew) * New translations strings.xml (Spanish) * New translations strings.xml (Afrikaans) * New translations strings.xml (Arabic) * New translations strings.xml (Bulgarian) * New translations strings.xml (Catalan) * New translations strings.xml (Czech) * New translations strings.xml (Danish) * New translations strings.xml (German) * New translations strings.xml (Greek) * New translations strings.xml (Finnish) * New translations strings.xml (Hungarian) * New translations strings.xml (Slovak) * New translations strings.xml (Italian) * New translations strings.xml (Japanese) * New translations strings.xml (Georgian) * New translations strings.xml (Korean) * New translations strings.xml (Kurdish) * New translations strings.xml (Dutch) * New translations strings.xml (Norwegian) * New translations strings.xml (Punjabi) * New translations strings.xml (Polish) * New translations strings.xml (Portuguese) * New translations strings.xml (Russian) * New translations strings.xml (Lithuanian) * New translations strings.xml (Portuguese, Brazilian) * New translations strings.xml (Arabic) * New translations strings.xml (Slovak) * New translations strings.xml (Korean) * New translations strings.xml (Polish) * New Crowdin updates (#515) * New translations strings.xml (Arabic) * New translations strings.xml (Greek) * New translations strings.xml (Dutch) * New translations strings.xml (Turkish) * New translations strings.xml (Chinese Traditional) * New translations strings.xml (Indonesian) Co-authored-by: X1nto <burtkni@yandex.ru> Co-authored-by: Tornike Khintibidze <48173186+X1nto@users.noreply.github.com>
2021-04-27 12:16:14 +00:00
class AppVersionSelectorDialog :
BindingBottomSheetDialogFragment<DialogBottomRadioButtonBinding>() {
private val prefs by lazy { requireActivity().defPrefs }
companion object {
private const val TAG_VERSIONS = "TAG_VERSIONS"
private const val TAG_APP = "TAG_APP"
fun newInstance(
versions: List<String>?,
app: String
): AppVersionSelectorDialog = AppVersionSelectorDialog().apply {
arguments = Bundle().apply {
val arrayList = arrayListOf<String>()
versions?.let { arrayList.addAll(it) }
putStringArrayList(TAG_VERSIONS, arrayList)
putString(TAG_APP, app)
}
}
}
override fun binding(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
) = DialogBottomRadioButtonBinding.inflate(inflater, container, false)
2020-11-15 15:39:33 +00:00
override fun otherSetups() {
bindData()
}
private fun bindData() {
with(binding) {
loadBoxes()?.forEach { mrb ->
dialogRadiogroup.addView(
mrb,
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT
)
}
val tag = root.findViewWithTag<MaterialRadioButton>(
prefs.getString("${arguments?.getString(TAG_APP)}_version", "latest")
)
if (tag != null) {
tag.isChecked = true
}
dialogTitle.text = getString(R.string.version)
dialogSave.setOnClickListener {
Vanced Manager 2.6.0 (#516) * updated app card UI * bug fixes * fixed grammar * removed unnoticable animation to improve performance * removed useless attribute * kotlin extensions are stonks * reference accent color variable instead of getting preference value every time * updated old stuff * removed useless check inside 'when' statement * optimised lifecycleOwner getter * property access syntax goes brrrrr * small accent update * added progress indicators to download dialogs * fixed changelog not appearing when pressing card in about menu * bumped up kotlin to 1.4.31 * fixed #437 * fixed #435 * fixed viewpager navigation on RTL layout * added a check for session id in root installer * updated strings * always notify about miui error * only run 1 animation at once * require external storage * sorted strings xml * improved layouts to look more close to each other * bumped up dependencies * updated version * fixed crash on manager update * New Crowdin updates (#489) * New translations strings.xml (Romanian) * New translations strings.xml (Bengali) * New translations strings.xml (Serbian (Cyrillic)) * New translations strings.xml (Swedish) * New translations strings.xml (Turkish) * New translations strings.xml (Ukrainian) * New translations strings.xml (Chinese Simplified) * New translations strings.xml (Chinese Traditional) * New translations strings.xml (Vietnamese) * New translations strings.xml (Portuguese, Brazilian) * New translations strings.xml (Indonesian) * New translations strings.xml (Tamil) * New translations strings.xml (Marathi) * New translations strings.xml (Portuguese) * New translations strings.xml (Thai) * New translations strings.xml (Croatian) * New translations strings.xml (Azerbaijani) * New translations strings.xml (Hindi) * New translations strings.xml (Filipino) * New translations strings.xml (Sinhala) * New translations strings.xml (Bengali, India) * New translations strings.xml (Sorani (Kurdish)) * New translations strings.xml (Pashto) * New translations strings.xml (Somali) * New translations strings.xml (Russian) * New translations strings.xml (Polish) * New translations strings.xml (Arabic) * New translations strings.xml (Spanish) * New translations strings.xml (Slovak) * New translations strings.xml (Malayalam) * New translations strings.xml (Japanese) * New translations strings.xml (Estonian) * New translations strings.xml (French) * New translations strings.xml (Kurdish) * New translations strings.xml (Kurmanji (Kurdish)) * New translations strings.xml (Hungarian) * New translations strings.xml (Finnish) * New translations strings.xml (Korean) * New translations strings.xml (Afrikaans) * New translations strings.xml (Punjabi) * New translations strings.xml (Bulgarian) * New translations strings.xml (Catalan) * New translations strings.xml (Czech) * New translations strings.xml (Danish) * New translations strings.xml (German) * New translations strings.xml (Greek) * New translations strings.xml (Hebrew) * New translations strings.xml (Italian) * New translations strings.xml (Georgian) * New translations strings.xml (Dutch) * New translations strings.xml (Norwegian) * New translations strings.xml (Punjabi, Pakistan) * Added button info on long press * preview adjustments to navigation xml * moved splash screen activity to parent dir * fixed buttontag getter * updated readme * fixed readme * Added build section to readme * Updated build instructions * prevent stacktrace from obfuscating * Added an option to switch between internal and external storage * removed warning for music vanced * added back a fix for split installer * added -r option for root music installer * Revert "prevent stacktrace from obfuscating" This reverts commit 2d30eb60af11f2d854c826953c025702c2e161ce. * Revert "added back a fix for split installer" This reverts commit aeaa0d445ec7cd6d2c318bf3f3751f8759d89801. * Revert "Added an option to switch between internal and external storage" This reverts commit 98c4b88961d14f36acf908bcee2376c1f79af86e. * reverted all storage-related commits * prevent stacktrace ovfuscation * updated readme * updated base url * use storage perms only on android 5 * cleanup * removed unused event file * fixed dark overlay not disappearing after bottom dialog has been dismissed * removed unecessary path from file_provider * fixed lint for core-ui * improved layout flexibility * updated icons in expandable app item * removed path prefix for api urls * removed microg bug dialog * fixed version code comparison * New translations strings.xml (Romanian) * New translations strings.xml (Croatian) * New translations strings.xml (Ukrainian) * New translations strings.xml (Chinese Simplified) * New translations strings.xml (Chinese Traditional) * New translations strings.xml (Vietnamese) * New translations strings.xml (Portuguese, Brazilian) * New translations strings.xml (Indonesian) * New translations strings.xml (Tamil) * New translations strings.xml (Bengali) * New translations strings.xml (Marathi) * New translations strings.xml (Thai) * New translations strings.xml (Estonian) * New translations strings.xml (Swedish) * New translations strings.xml (Azerbaijani) * New translations strings.xml (Hindi) * New translations strings.xml (Filipino) * New translations strings.xml (Malayalam) * New translations strings.xml (Sinhala) * New translations strings.xml (Bengali, India) * New translations strings.xml (Kurmanji (Kurdish)) * New translations strings.xml (Sorani (Kurdish)) * New translations strings.xml (Pashto) * New translations strings.xml (Somali) * New translations strings.xml (Punjabi, Pakistan) * New translations strings.xml (Turkish) * New translations strings.xml (Serbian (Cyrillic)) * New translations strings.xml (French) * New translations strings.xml (Hebrew) * New translations strings.xml (Spanish) * New translations strings.xml (Afrikaans) * New translations strings.xml (Arabic) * New translations strings.xml (Bulgarian) * New translations strings.xml (Catalan) * New translations strings.xml (Czech) * New translations strings.xml (Danish) * New translations strings.xml (German) * New translations strings.xml (Greek) * New translations strings.xml (Finnish) * New translations strings.xml (Hungarian) * New translations strings.xml (Slovak) * New translations strings.xml (Italian) * New translations strings.xml (Japanese) * New translations strings.xml (Georgian) * New translations strings.xml (Korean) * New translations strings.xml (Kurdish) * New translations strings.xml (Dutch) * New translations strings.xml (Norwegian) * New translations strings.xml (Punjabi) * New translations strings.xml (Polish) * New translations strings.xml (Portuguese) * New translations strings.xml (Russian) * New translations strings.xml (Lithuanian) * New translations strings.xml (Portuguese, Brazilian) * New translations strings.xml (Arabic) * New translations strings.xml (Slovak) * New translations strings.xml (Korean) * New translations strings.xml (Polish) * New Crowdin updates (#515) * New translations strings.xml (Arabic) * New translations strings.xml (Greek) * New translations strings.xml (Dutch) * New translations strings.xml (Turkish) * New translations strings.xml (Chinese Traditional) * New translations strings.xml (Indonesian) Co-authored-by: X1nto <burtkni@yandex.ru> Co-authored-by: Tornike Khintibidze <48173186+X1nto@users.noreply.github.com>
2021-04-27 12:16:14 +00:00
val checkedTag = dialogRadiogroup.checkedButtonTag
if (checkedTag != null) {
prefs.edit { putString("${arguments?.getString(TAG_APP)}_version", checkedTag) }
}
dismiss()
}
}
}
private fun loadBoxes() =
arguments?.getStringArrayList(TAG_VERSIONS)?.map { version ->
2020-12-14 21:18:58 +00:00
ThemedMaterialRadioButton(requireActivity()).apply {
text = version.formatVersion(requireActivity())
tag = version
textSize = 18f
}
}
2020-11-08 12:46:17 +00:00
override fun onDismiss(dialog: DialogInterface) {
super.onDismiss(dialog)
if (arguments?.getString(TAG_APP) == "vanced") {
showDialog(VancedPreferencesDialog())
} else {
showDialog(MusicPreferencesDialog())
}
2020-11-08 12:46:17 +00:00
}
}