Use FileSelectorDialogFragment when sdk < Q

This commit is contained in:
Tlaster 2020-04-21 15:33:55 +08:00
parent ecf1776eb1
commit cdc5a24102
1 changed files with 28 additions and 23 deletions

View File

@ -24,14 +24,16 @@ import android.content.Intent
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.os.Environment.getExternalStorageDirectory
import android.widget.Toast
import androidx.core.app.ActivityCompat
import androidx.fragment.app.DialogFragment
import org.mariotaku.ktextension.Bundle
import org.mariotaku.ktextension.checkAllSelfPermissionsGranted
import org.mariotaku.ktextension.set
import org.mariotaku.twidere.R
import org.mariotaku.twidere.TwidereConstants.REQUEST_REQUEST_PERMISSIONS
import org.mariotaku.twidere.constant.IntentConstants.INTENT_ACTION_PICK_DIRECTORY
import org.mariotaku.twidere.constant.IntentConstants.INTENT_ACTION_PICK_FILE
import org.mariotaku.twidere.constant.IntentConstants.*
import org.mariotaku.twidere.fragment.FileSelectorDialogFragment
import java.io.File
import android.Manifest.permission as AndroidPermissions
@ -114,6 +116,7 @@ class FileSelectorActivity : BaseActivity(), FileSelectorDialogFragment.Callback
}
private fun showPickFileDialog() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
Intent().apply {
if (intent.action == INTENT_ACTION_PICK_FILE) {
action = Intent.ACTION_GET_CONTENT
@ -127,15 +130,17 @@ class FileSelectorActivity : BaseActivity(), FileSelectorDialogFragment.Callback
PICKER_REQUEST_CODE
)
}
// val initialDirectory = intent?.data?.path?.let(::File) ?: getExternalStorageDirectory() ?: File("/")
// val f = FileSelectorDialogFragment()
// f.arguments = Bundle {
// this[EXTRA_ACTION] = intent.action
// this[EXTRA_PATH] = initialDirectory.absolutePath
// this[EXTRA_FILE_EXTENSIONS] = intent.getStringArrayExtra(EXTRA_FILE_EXTENSIONS)
// }
// f.show(supportFragmentManager, "select_file")
} else {
val initialDirectory = intent?.data?.path?.let(::File) ?: getExternalStorageDirectory()
?: File("/")
val f = FileSelectorDialogFragment()
f.arguments = Bundle {
this[EXTRA_ACTION] = intent.action
this[EXTRA_PATH] = initialDirectory.absolutePath
this[EXTRA_FILE_EXTENSIONS] = intent.getStringArrayExtra(EXTRA_FILE_EXTENSIONS)
}
f.show(supportFragmentManager, "select_file")
}
}
}