Theoretical fix for networked file import

This commit is contained in:
Kelvin 2025-06-26 15:01:18 +02:00
commit d0644d39da

View file

@ -12,6 +12,9 @@ import com.futo.platformplayer.readBytes
import com.futo.platformplayer.states.StateApp import com.futo.platformplayer.states.StateApp
import com.futo.platformplayer.states.StateBackup import com.futo.platformplayer.states.StateBackup
import com.futo.platformplayer.views.buttons.BigButton import com.futo.platformplayer.views.buttons.BigButton
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
class ImportOptionsDialog: AlertDialog { class ImportOptionsDialog: AlertDialog {
private val _context: MainActivity; private val _context: MainActivity;
@ -41,8 +44,12 @@ class ImportOptionsDialog: AlertDialog {
_button_import_zip.onClick.subscribe { _button_import_zip.onClick.subscribe {
dismiss(); dismiss();
StateApp.instance.requestFileReadAccess(_context, null, "application/zip") { StateApp.instance.requestFileReadAccess(_context, null, "application/zip") {
val zipBytes = it?.readBytes(context) ?: return@requestFileReadAccess; StateApp.instance.scopeOrNull?.launch(Dispatchers.IO) {
StateBackup.importZipBytes(_context, StateApp.instance.scope, zipBytes); val zipBytes = it?.readBytes(context) ?: return@launch;
withContext(Dispatchers.Main) {
StateBackup.importZipBytes(_context, StateApp.instance.scope, zipBytes);
}
}
}; };
} }
_button_import_ezip.setOnClickListener { _button_import_ezip.setOnClickListener {
@ -51,17 +58,25 @@ class ImportOptionsDialog: AlertDialog {
_button_import_txt.onClick.subscribe { _button_import_txt.onClick.subscribe {
dismiss(); dismiss();
StateApp.instance.requestFileReadAccess(_context, null, "text/plain") { StateApp.instance.requestFileReadAccess(_context, null, "text/plain") {
val txtBytes = it?.readBytes(context) ?: return@requestFileReadAccess; StateApp.instance.scopeOrNull?.launch(Dispatchers.IO) {
val txt = String(txtBytes); val txtBytes = it?.readBytes(context) ?: return@launch;
StateBackup.importTxt(_context, txt); val txt = String(txtBytes);
withContext(Dispatchers.Main) {
StateBackup.importTxt(_context, txt);
}
}
}; };
} }
_button_import_newpipe_subs.onClick.subscribe { _button_import_newpipe_subs.onClick.subscribe {
dismiss(); dismiss();
StateApp.instance.requestFileReadAccess(_context, null, "application/json") { StateApp.instance.requestFileReadAccess(_context, null, "application/json") {
val jsonBytes = it?.readBytes(context) ?: return@requestFileReadAccess; StateApp.instance.scopeOrNull?.launch(Dispatchers.IO) {
val json = String(jsonBytes); val jsonBytes = it?.readBytes(context) ?: return@launch;
StateBackup.importNewPipeSubs(_context, json); val json = String(jsonBytes);
withContext(Dispatchers.Main) {
StateBackup.importNewPipeSubs(_context, json);
}
}
}; };
}; };
_button_import_platform.onClick.subscribe { _button_import_platform.onClick.subscribe {