mirror of
https://github.com/SimpleMobileTools/Simple-File-Manager.git
synced 2025-02-17 04:10:39 +01:00
move some helper functions in SimpleActivity
This commit is contained in:
parent
7d30c4ec9a
commit
065de047b3
@ -9,4 +9,7 @@ public class Constants {
|
|||||||
public static final String IS_DARK_THEME = "is_dark_theme";
|
public static final String IS_DARK_THEME = "is_dark_theme";
|
||||||
public static final String SHOW_HIDDEN = "show_hidden";
|
public static final String SHOW_HIDDEN = "show_hidden";
|
||||||
public static final String TREE_URI = "tree_uri";
|
public static final String TREE_URI = "tree_uri";
|
||||||
|
|
||||||
|
// global intents
|
||||||
|
public static final int OPEN_DOCUMENT_TREE = 1000;
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,8 @@
|
|||||||
package com.simplemobiletools.filemanager.activities
|
package com.simplemobiletools.filemanager.activities
|
||||||
|
|
||||||
import android.Manifest
|
import android.Manifest
|
||||||
import android.annotation.TargetApi
|
|
||||||
import android.app.Activity
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
import android.os.Build
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
import android.support.v4.app.ActivityCompat
|
import android.support.v4.app.ActivityCompat
|
||||||
@ -15,11 +12,13 @@ import com.simplemobiletools.filemanager.Constants
|
|||||||
import com.simplemobiletools.filemanager.R
|
import com.simplemobiletools.filemanager.R
|
||||||
import com.simplemobiletools.filemanager.fragments.ItemsFragment
|
import com.simplemobiletools.filemanager.fragments.ItemsFragment
|
||||||
import com.simplemobiletools.filepicker.dialogs.StoragePickerDialog
|
import com.simplemobiletools.filepicker.dialogs.StoragePickerDialog
|
||||||
import com.simplemobiletools.filepicker.dialogs.WritePermissionDialog
|
import com.simplemobiletools.filepicker.extensions.getInternalStoragePath
|
||||||
import com.simplemobiletools.filepicker.extensions.*
|
import com.simplemobiletools.filepicker.extensions.hasStoragePermission
|
||||||
|
import com.simplemobiletools.filepicker.extensions.toast
|
||||||
import com.simplemobiletools.filepicker.models.FileDirItem
|
import com.simplemobiletools.filepicker.models.FileDirItem
|
||||||
import com.simplemobiletools.filepicker.views.Breadcrumbs
|
import com.simplemobiletools.filepicker.views.Breadcrumbs
|
||||||
import kotlinx.android.synthetic.main.activity_main.*
|
import kotlinx.android.synthetic.main.activity_main.*
|
||||||
|
import java.io.File
|
||||||
|
|
||||||
class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Breadcrumbs.BreadcrumbsListener {
|
class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Breadcrumbs.BreadcrumbsListener {
|
||||||
var mBasePath = getInternalStoragePath()
|
var mBasePath = getInternalStoragePath()
|
||||||
@ -125,55 +124,16 @@ class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Br
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun changePath(pickedPath: String) {
|
fun changePath(pickedPath: String) {
|
||||||
if (checkStupidAndroidFiveSDCardWritePermission(pickedPath)) {
|
if (!isShowingPermDialog(File(pickedPath))) {
|
||||||
mBasePath = pickedPath
|
mBasePath = pickedPath
|
||||||
openPath(pickedPath)
|
openPath(pickedPath)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun checkStupidAndroidFiveSDCardWritePermission(pickedPath: String): Boolean {
|
|
||||||
return if (applicationContext.needsStupidWritePermissions(pickedPath) && mConfig.treeUri.isEmpty()) {
|
|
||||||
WritePermissionDialog(this, object : WritePermissionDialog.OnConfirmedListener {
|
|
||||||
override fun onConfirmed() {
|
|
||||||
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
|
|
||||||
startActivityForResult(intent, OPEN_DOCUMENT_TREE_AND_CHANGE_PATH)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
false
|
|
||||||
} else
|
|
||||||
true
|
|
||||||
}
|
|
||||||
|
|
||||||
public override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) {
|
|
||||||
super.onActivityResult(requestCode, resultCode, resultData)
|
|
||||||
if (requestCode == OPEN_DOCUMENT_TREE_AND_CHANGE_PATH) {
|
|
||||||
if (resultCode == Activity.RESULT_OK && resultData != null) {
|
|
||||||
saveTreeUri(resultData)
|
|
||||||
changePath(getSDCardPath())
|
|
||||||
} else {
|
|
||||||
changePath(getInternalStoragePath())
|
|
||||||
}
|
|
||||||
} else if (requestCode == OPEN_DOCUMENT_TREE && resultCode == Activity.RESULT_OK && resultData != null) {
|
|
||||||
saveTreeUri(resultData)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@TargetApi(Build.VERSION_CODES.KITKAT)
|
|
||||||
private fun saveTreeUri(resultData: Intent) {
|
|
||||||
val treeUri = resultData.data
|
|
||||||
mConfig.treeUri = treeUri.toString()
|
|
||||||
|
|
||||||
val takeFlags = Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION
|
|
||||||
contentResolver.takePersistableUriPermission(treeUri, takeFlags)
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val STORAGE_PERMISSION = 1
|
private val STORAGE_PERMISSION = 1
|
||||||
private val BACK_PRESS_TIMEOUT = 5000
|
private val BACK_PRESS_TIMEOUT = 5000
|
||||||
|
|
||||||
val OPEN_DOCUMENT_TREE_AND_CHANGE_PATH = 1
|
|
||||||
val OPEN_DOCUMENT_TREE = 2
|
|
||||||
|
|
||||||
private var mWasBackJustPressed: Boolean = false
|
private var mWasBackJustPressed: Boolean = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,18 @@
|
|||||||
package com.simplemobiletools.filemanager.activities
|
package com.simplemobiletools.filemanager.activities
|
||||||
|
|
||||||
|
import android.annotation.TargetApi
|
||||||
|
import android.app.Activity
|
||||||
|
import android.content.Intent
|
||||||
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.support.v7.app.AppCompatActivity
|
import android.support.v7.app.AppCompatActivity
|
||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
|
|
||||||
import com.simplemobiletools.filemanager.Config
|
import com.simplemobiletools.filemanager.Config
|
||||||
|
import com.simplemobiletools.filemanager.Constants
|
||||||
import com.simplemobiletools.filemanager.R
|
import com.simplemobiletools.filemanager.R
|
||||||
|
import com.simplemobiletools.filepicker.extensions.isShowingWritePermissions
|
||||||
|
import java.io.File
|
||||||
|
|
||||||
open class SimpleActivity : AppCompatActivity() {
|
open class SimpleActivity : AppCompatActivity() {
|
||||||
lateinit var mConfig: Config
|
lateinit var mConfig: Config
|
||||||
@ -25,4 +32,22 @@ open class SimpleActivity : AppCompatActivity() {
|
|||||||
else -> super.onOptionsItemSelected(item)
|
else -> super.onOptionsItemSelected(item)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) {
|
||||||
|
super.onActivityResult(requestCode, resultCode, resultData)
|
||||||
|
if (requestCode == Constants.OPEN_DOCUMENT_TREE && resultCode == Activity.RESULT_OK && resultData != null) {
|
||||||
|
saveTreeUri(resultData)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@TargetApi(Build.VERSION_CODES.KITKAT)
|
||||||
|
fun saveTreeUri(resultData: Intent) {
|
||||||
|
val treeUri = resultData.data
|
||||||
|
mConfig.treeUri = treeUri.toString()
|
||||||
|
|
||||||
|
val takeFlags = Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION
|
||||||
|
contentResolver.takePersistableUriPermission(treeUri, takeFlags)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun isShowingPermDialog(file: File) = isShowingWritePermissions(file, mConfig.treeUri, Constants.OPEN_DOCUMENT_TREE)
|
||||||
}
|
}
|
||||||
|
@ -7,8 +7,8 @@ import android.support.v7.app.AlertDialog
|
|||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
import com.simplemobiletools.filemanager.Config
|
import com.simplemobiletools.filemanager.Config
|
||||||
|
import com.simplemobiletools.filemanager.Constants
|
||||||
import com.simplemobiletools.filemanager.R
|
import com.simplemobiletools.filemanager.R
|
||||||
import com.simplemobiletools.filemanager.activities.MainActivity
|
|
||||||
import com.simplemobiletools.filemanager.asynctasks.CopyTask
|
import com.simplemobiletools.filemanager.asynctasks.CopyTask
|
||||||
import com.simplemobiletools.filepicker.dialogs.FilePickerDialog
|
import com.simplemobiletools.filepicker.dialogs.FilePickerDialog
|
||||||
import com.simplemobiletools.filepicker.dialogs.WritePermissionDialog
|
import com.simplemobiletools.filepicker.dialogs.WritePermissionDialog
|
||||||
@ -76,7 +76,7 @@ class CopyDialog(val activity: Activity, val files: ArrayList<File>, val copyLis
|
|||||||
WritePermissionDialog(activity, object : WritePermissionDialog.OnConfirmedListener {
|
WritePermissionDialog(activity, object : WritePermissionDialog.OnConfirmedListener {
|
||||||
override fun onConfirmed() {
|
override fun onConfirmed() {
|
||||||
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
|
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
|
||||||
activity.startActivityForResult(intent, MainActivity.OPEN_DOCUMENT_TREE)
|
activity.startActivityForResult(intent, Constants.OPEN_DOCUMENT_TREE)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
|
Loading…
x
Reference in New Issue
Block a user