Fix data import/export DocumentFile error when sdk < q

This commit is contained in:
Tlaster 2020-04-21 16:05:56 +08:00
parent cdc5a24102
commit cd6250b647
2 changed files with 22 additions and 3 deletions

View File

@ -4,6 +4,7 @@ import android.app.Activity
import android.content.Intent
import android.net.Uri
import android.os.AsyncTask
import android.os.Build
import android.os.Bundle
import android.util.Log
import androidx.documentfile.provider.DocumentFile
@ -15,6 +16,7 @@ import org.mariotaku.twidere.constant.IntentConstants
import org.mariotaku.twidere.fragment.DataExportImportTypeSelectorDialogFragment
import org.mariotaku.twidere.fragment.ProgressDialogFragment
import org.mariotaku.twidere.util.DataImportExportUtils
import java.io.File
import java.io.IOException
import java.text.SimpleDateFormat
import java.util.*
@ -65,7 +67,12 @@ class DataExportActivity : BaseActivity(), DataExportImportTypeSelectorDialogFra
return
}
if (task == null || task!!.status != AsyncTask.Status.RUNNING) {
task = ExportSettingsTask(this, DocumentFile.fromTreeUri(this, path), flags)
val folder = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
DocumentFile.fromTreeUri(this, path)
} else {
DocumentFile.fromFile(File(path.path))
}
task = ExportSettingsTask(this, folder, flags)
task!!.execute()
}
}

View File

@ -3,6 +3,7 @@ package org.mariotaku.twidere.activity
import android.content.Intent
import android.net.Uri
import android.os.AsyncTask
import android.os.Build
import android.os.Bundle
import android.util.Log
import androidx.documentfile.provider.DocumentFile
@ -13,6 +14,7 @@ import org.mariotaku.twidere.TwidereConstants.*
import org.mariotaku.twidere.fragment.DataExportImportTypeSelectorDialogFragment
import org.mariotaku.twidere.fragment.ProgressDialogFragment
import org.mariotaku.twidere.util.DataImportExportUtils
import java.io.File
import java.io.IOException
class DataImportActivity : BaseActivity(), DataExportImportTypeSelectorDialogFragment.Callback {
@ -40,7 +42,12 @@ class DataImportActivity : BaseActivity(), DataExportImportTypeSelectorDialogFra
if (resultCode == RESULT_OK && data != null) {
val path = data.data!!
if (openImportTypeTask == null || openImportTypeTask!!.status != AsyncTask.Status.RUNNING) {
openImportTypeTask = OpenImportTypeTask(this@DataImportActivity, DocumentFile.fromSingleUri(this, path))
val file = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
DocumentFile.fromSingleUri(this, path)
} else {
DocumentFile.fromFile(File(path.path))
}
openImportTypeTask = OpenImportTypeTask(this@DataImportActivity, file)
openImportTypeTask!!.execute()
}
} else {
@ -69,7 +76,12 @@ class DataImportActivity : BaseActivity(), DataExportImportTypeSelectorDialogFra
return
}
if (importSettingsTask == null || importSettingsTask!!.status != AsyncTask.Status.RUNNING) {
importSettingsTask = ImportSettingsTask(this, DocumentFile.fromSingleUri(this, path), flags)
val file = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
DocumentFile.fromSingleUri(this, path)
} else {
DocumentFile.fromFile(File(path.path))
}
importSettingsTask = ImportSettingsTask(this, file, flags)
importSettingsTask!!.execute()
}
}