mirror of
https://github.com/SimpleMobileTools/Simple-File-Manager.git
synced 2025-02-23 07:07:48 +01:00
adding Commons library + initial changes just to make it compilable
This commit is contained in:
parent
3e4eba3c9c
commit
c9de559fac
@ -3,8 +3,8 @@ apply plugin: 'kotlin-android'
|
||||
apply plugin: 'kotlin-android-extensions'
|
||||
|
||||
android {
|
||||
compileSdkVersion 23
|
||||
buildToolsVersion "23.0.3"
|
||||
compileSdkVersion 25
|
||||
buildToolsVersion "25.0.2"
|
||||
|
||||
defaultConfig {
|
||||
applicationId "com.simplemobiletools.filemanager"
|
||||
@ -26,28 +26,19 @@ android {
|
||||
}
|
||||
}
|
||||
|
||||
packagingOptions {
|
||||
exclude 'META-INF/library-compileDebugKotlin.kotlin_module'
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main.java.srcDirs += 'src/main/kotlin'
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile 'com.android.support:appcompat-v7:23.4.0'
|
||||
compile 'com.android.support:design:23.4.0'
|
||||
compile 'com.github.bumptech.glide:glide:3.7.0'
|
||||
compile 'com.simplemobiletools:filepicker:1.5.6@aar'
|
||||
compile 'com.simplemobiletools:fileproperties:1.0.7@aar'
|
||||
compile 'com.simplemobiletools:commons:2.9.8'
|
||||
compile 'com.bignerdranch.android:recyclerview-multiselect:0.2'
|
||||
|
||||
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
||||
}
|
||||
|
||||
buildscript {
|
||||
ext.kotlin_version = '1.0.5-2'
|
||||
ext.kotlin_version = '1.1.0'
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
@ -63,12 +54,11 @@ def propFile = new File('signing.properties')
|
||||
if (propFile.canRead()) {
|
||||
props.load(new FileInputStream(propFile))
|
||||
|
||||
if (props != null && props.containsKey('STORE_FILE') && props.containsKey('STORE_PASSWORD') &&
|
||||
props.containsKey('KEY_ALIAS') && props.containsKey('KEY_PASSWORD')) {
|
||||
if (props != null && props.containsKey('STORE_FILE') && props.containsKey('KEY_ALIAS') && props.containsKey('PASSWORD')) {
|
||||
android.signingConfigs.release.storeFile = file(props['STORE_FILE'])
|
||||
android.signingConfigs.release.storePassword = props['STORE_PASSWORD']
|
||||
android.signingConfigs.release.storePassword = props['PASSWORD']
|
||||
android.signingConfigs.release.keyAlias = props['KEY_ALIAS']
|
||||
android.signingConfigs.release.keyPassword = props['KEY_PASSWORD']
|
||||
android.signingConfigs.release.keyPassword = props['PASSWORD']
|
||||
} else {
|
||||
println 'signing.properties found but some entries are missing'
|
||||
android.buildTypes.release.signingConfig = null
|
||||
|
@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest package="com.simplemobiletools.filemanager"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<manifest
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.simplemobiletools.filemanager">
|
||||
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
|
||||
|
@ -1,32 +1,14 @@
|
||||
package com.simplemobiletools.filemanager
|
||||
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
|
||||
class Config(context: Context) {
|
||||
private val mPrefs: SharedPreferences
|
||||
import com.simplemobiletools.commons.helpers.BaseConfig
|
||||
|
||||
class Config(context: Context) : BaseConfig(context) {
|
||||
companion object {
|
||||
fun newInstance(context: Context) = Config(context)
|
||||
}
|
||||
|
||||
init {
|
||||
mPrefs = context.getSharedPreferences(PREFS_KEY, Context.MODE_PRIVATE)
|
||||
}
|
||||
|
||||
var isFirstRun: Boolean
|
||||
get() = mPrefs.getBoolean(IS_FIRST_RUN, true)
|
||||
set(firstRun) = mPrefs.edit().putBoolean(IS_FIRST_RUN, firstRun).apply()
|
||||
|
||||
var isDarkTheme: Boolean
|
||||
get() = mPrefs.getBoolean(IS_DARK_THEME, false)
|
||||
set(isDarkTheme) = mPrefs.edit().putBoolean(IS_DARK_THEME, isDarkTheme).apply()
|
||||
|
||||
var showHidden: Boolean
|
||||
get() = mPrefs.getBoolean(SHOW_HIDDEN, false)
|
||||
set(show) = mPrefs.edit().putBoolean(SHOW_HIDDEN, show).apply()
|
||||
|
||||
var treeUri: String
|
||||
get() = mPrefs.getString(TREE_URI, "")
|
||||
set(uri) = mPrefs.edit().putString(TREE_URI, uri).apply()
|
||||
get() = prefs.getBoolean(SHOW_HIDDEN, false)
|
||||
set(show) = prefs.edit().putBoolean(SHOW_HIDDEN, show).apply()
|
||||
}
|
||||
|
@ -4,11 +4,4 @@ val PATH = "path"
|
||||
val SCROLL_STATE = "scroll_state"
|
||||
|
||||
// shared preferences
|
||||
val PREFS_KEY = "File Manager"
|
||||
val IS_FIRST_RUN = "is_first_run"
|
||||
val IS_DARK_THEME = "is_dark_theme"
|
||||
val SHOW_HIDDEN = "show_hidden"
|
||||
val TREE_URI = "tree_uri"
|
||||
|
||||
// global intents
|
||||
val OPEN_DOCUMENT_TREE = 1000
|
||||
|
@ -9,6 +9,7 @@ import android.text.method.LinkMovementMethod
|
||||
import android.view.View
|
||||
import com.simplemobiletools.filemanager.BuildConfig
|
||||
import com.simplemobiletools.filemanager.R
|
||||
import com.simplemobiletools.filemanager.extensions.config
|
||||
import kotlinx.android.synthetic.main.activity_about.*
|
||||
import java.util.*
|
||||
|
||||
@ -42,7 +43,7 @@ class AboutActivity : SimpleActivity() {
|
||||
}
|
||||
|
||||
private fun setupRateUs() {
|
||||
if (mConfig.isFirstRun) {
|
||||
if (config.isFirstRun) {
|
||||
about_rate_us.visibility = View.GONE
|
||||
} else {
|
||||
about_rate_us.setOnClickListener {
|
||||
|
@ -4,22 +4,22 @@ import android.Manifest
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.os.Bundle
|
||||
import android.os.Handler
|
||||
import android.os.Parcelable
|
||||
import android.support.v4.app.ActivityCompat
|
||||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import com.simplemobiletools.commons.dialogs.StoragePickerDialog
|
||||
import com.simplemobiletools.commons.extensions.getInternalStoragePath
|
||||
import com.simplemobiletools.commons.extensions.hasWriteStoragePermission
|
||||
import com.simplemobiletools.commons.extensions.storeStoragePaths
|
||||
import com.simplemobiletools.commons.extensions.toast
|
||||
import com.simplemobiletools.commons.models.FileDirItem
|
||||
import com.simplemobiletools.commons.views.Breadcrumbs
|
||||
import com.simplemobiletools.filemanager.PATH
|
||||
import com.simplemobiletools.filemanager.R
|
||||
import com.simplemobiletools.filemanager.SCROLL_STATE
|
||||
import com.simplemobiletools.filemanager.extensions.config
|
||||
import com.simplemobiletools.filemanager.fragments.ItemsFragment
|
||||
import com.simplemobiletools.filepicker.dialogs.StoragePickerDialog
|
||||
import com.simplemobiletools.filepicker.extensions.getInternalStoragePath
|
||||
import com.simplemobiletools.filepicker.extensions.hasStoragePermission
|
||||
import com.simplemobiletools.filepicker.extensions.toast
|
||||
import com.simplemobiletools.filepicker.models.FileDirItem
|
||||
import com.simplemobiletools.filepicker.views.Breadcrumbs
|
||||
import kotlinx.android.synthetic.main.activity_main.*
|
||||
import java.io.File
|
||||
import java.util.*
|
||||
|
||||
@ -38,17 +38,18 @@ class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Br
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_main)
|
||||
breadcrumbs.setListener(this)
|
||||
//breadcrumbs.setListener(this)
|
||||
tryInitFileManager()
|
||||
storeStoragePaths()
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
mConfig.isFirstRun = false
|
||||
config.isFirstRun = false
|
||||
}
|
||||
|
||||
private fun tryInitFileManager() {
|
||||
if (hasStoragePermission()) {
|
||||
if (hasWriteStoragePermission()) {
|
||||
initRootFileManager()
|
||||
} else {
|
||||
ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), STORAGE_PERMISSION)
|
||||
@ -60,7 +61,7 @@ class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Br
|
||||
}
|
||||
|
||||
private fun openPath(path: String) {
|
||||
breadcrumbs.setBreadcrumb(path)
|
||||
//breadcrumbs.setBreadcrumb(path)
|
||||
val bundle = Bundle()
|
||||
bundle.putString(PATH, path)
|
||||
|
||||
@ -97,7 +98,7 @@ class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Br
|
||||
}
|
||||
}
|
||||
|
||||
override fun onBackPressed() {
|
||||
/*override fun onBackPressed() {
|
||||
if (breadcrumbs.childCount <= 1) {
|
||||
if (!mWasBackJustPressed) {
|
||||
mWasBackJustPressed = true
|
||||
@ -111,7 +112,7 @@ class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Br
|
||||
val item = breadcrumbs.lastItem
|
||||
openPath(item.path)
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
|
||||
@ -136,8 +137,8 @@ class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Br
|
||||
changePath(it)
|
||||
}
|
||||
} else {
|
||||
val item = breadcrumbs.getChildAt(id).tag as FileDirItem
|
||||
openPath(item.path)
|
||||
/*val item = breadcrumbs.getChildAt(id).tag as FileDirItem
|
||||
openPath(item.path)*/
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
package com.simplemobiletools.filemanager.activities
|
||||
|
||||
import android.os.Bundle
|
||||
import android.support.v4.app.TaskStackBuilder
|
||||
import com.simplemobiletools.filemanager.R
|
||||
import com.simplemobiletools.filemanager.extensions.config
|
||||
import kotlinx.android.synthetic.main.activity_settings.*
|
||||
|
||||
class SettingsActivity : SimpleActivity() {
|
||||
@ -10,28 +10,14 @@ class SettingsActivity : SimpleActivity() {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_settings)
|
||||
|
||||
setupDarkTheme()
|
||||
setupShowHidden()
|
||||
}
|
||||
|
||||
private fun setupDarkTheme() {
|
||||
settings_dark_theme.isChecked = mConfig.isDarkTheme
|
||||
settings_dark_theme_holder.setOnClickListener {
|
||||
settings_dark_theme.toggle()
|
||||
mConfig.isDarkTheme = settings_dark_theme.isChecked
|
||||
restartActivity()
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupShowHidden() {
|
||||
settings_show_hidden.isChecked = mConfig.showHidden
|
||||
settings_show_hidden.isChecked = config.showHidden
|
||||
settings_show_hidden_holder.setOnClickListener {
|
||||
settings_show_hidden.toggle()
|
||||
mConfig.showHidden = settings_show_hidden.isChecked
|
||||
config.showHidden = settings_show_hidden.isChecked
|
||||
}
|
||||
}
|
||||
|
||||
private fun restartActivity() {
|
||||
TaskStackBuilder.create(applicationContext).addNextIntentWithParentStack(intent).startActivities()
|
||||
}
|
||||
}
|
||||
|
@ -1,52 +1,10 @@
|
||||
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.support.v7.app.AppCompatActivity
|
||||
import android.view.MenuItem
|
||||
import com.simplemobiletools.filemanager.Config
|
||||
import com.simplemobiletools.filemanager.OPEN_DOCUMENT_TREE
|
||||
import com.simplemobiletools.filemanager.R
|
||||
import com.simplemobiletools.filepicker.extensions.isShowingWritePermissions
|
||||
import java.io.File
|
||||
|
||||
open class SimpleActivity : AppCompatActivity() {
|
||||
lateinit var mConfig: Config
|
||||
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
||||
|
||||
open class SimpleActivity : BaseSimpleActivity() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
mConfig = Config.newInstance(applicationContext)
|
||||
setTheme(if (mConfig.isDarkTheme) R.style.AppTheme_Dark else R.style.AppTheme)
|
||||
super.onCreate(savedInstanceState)
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
return when (item.itemId) {
|
||||
android.R.id.home -> {
|
||||
finish()
|
||||
true
|
||||
}
|
||||
else -> super.onOptionsItemSelected(item)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) {
|
||||
super.onActivityResult(requestCode, resultCode, resultData)
|
||||
if (requestCode == 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, OPEN_DOCUMENT_TREE)
|
||||
}
|
||||
|
@ -10,18 +10,18 @@ import com.bignerdranch.android.multiselector.MultiSelector
|
||||
import com.bignerdranch.android.multiselector.SwappingHolder
|
||||
import com.bumptech.glide.Glide
|
||||
import com.bumptech.glide.load.engine.DiskCacheStrategy
|
||||
import com.simplemobiletools.commons.asynctasks.CopyMoveTask
|
||||
import com.simplemobiletools.commons.dialogs.ConfirmationDialog
|
||||
import com.simplemobiletools.commons.dialogs.PropertiesDialog
|
||||
import com.simplemobiletools.commons.extensions.formatSize
|
||||
import com.simplemobiletools.commons.extensions.isGif
|
||||
import com.simplemobiletools.commons.extensions.toast
|
||||
import com.simplemobiletools.commons.models.FileDirItem
|
||||
import com.simplemobiletools.filemanager.Config
|
||||
import com.simplemobiletools.filemanager.R
|
||||
import com.simplemobiletools.filemanager.activities.SimpleActivity
|
||||
import com.simplemobiletools.filemanager.dialogs.CopyDialog
|
||||
import com.simplemobiletools.filemanager.dialogs.RenameItemDialog
|
||||
import com.simplemobiletools.filepicker.asynctasks.CopyMoveTask
|
||||
import com.simplemobiletools.filepicker.dialogs.ConfirmationDialog
|
||||
import com.simplemobiletools.filepicker.extensions.formatSize
|
||||
import com.simplemobiletools.filepicker.extensions.isGif
|
||||
import com.simplemobiletools.filepicker.extensions.toast
|
||||
import com.simplemobiletools.filepicker.models.FileDirItem
|
||||
import com.simplemobiletools.fileproperties.dialogs.PropertiesDialog
|
||||
import kotlinx.android.synthetic.main.list_item.view.*
|
||||
import java.io.File
|
||||
import java.util.*
|
||||
|
@ -4,15 +4,14 @@ import android.app.AlertDialog
|
||||
import android.support.v4.util.Pair
|
||||
import android.view.LayoutInflater
|
||||
import android.view.WindowManager
|
||||
import com.simplemobiletools.commons.asynctasks.CopyMoveTask
|
||||
import com.simplemobiletools.commons.extensions.humanizePath
|
||||
import com.simplemobiletools.commons.extensions.isPathOnSD
|
||||
import com.simplemobiletools.commons.extensions.scanFiles
|
||||
import com.simplemobiletools.commons.extensions.toast
|
||||
import com.simplemobiletools.filemanager.Config
|
||||
import com.simplemobiletools.filemanager.R
|
||||
import com.simplemobiletools.filemanager.activities.SimpleActivity
|
||||
import com.simplemobiletools.filepicker.asynctasks.CopyMoveTask
|
||||
import com.simplemobiletools.filepicker.dialogs.FilePickerDialog
|
||||
import com.simplemobiletools.filepicker.extensions.humanizePath
|
||||
import com.simplemobiletools.filepicker.extensions.isPathOnSD
|
||||
import com.simplemobiletools.filepicker.extensions.scanFiles
|
||||
import com.simplemobiletools.filepicker.extensions.toast
|
||||
import kotlinx.android.synthetic.main.copy_item.view.*
|
||||
import java.io.File
|
||||
import java.util.*
|
||||
@ -27,7 +26,7 @@ class CopyDialog(val activity: SimpleActivity, val files: ArrayList<File>, val c
|
||||
view.source.text = "${context.humanizePath(sourcePath)}/"
|
||||
|
||||
val config = Config.newInstance(context)
|
||||
view.destination.setOnClickListener {
|
||||
/*view.destination.setOnClickListener {
|
||||
FilePickerDialog(activity, destinationPath, false, config.showHidden, object : FilePickerDialog.OnFilePickerListener {
|
||||
override fun onFail(error: FilePickerDialog.FilePickerResult) {
|
||||
}
|
||||
@ -37,7 +36,7 @@ class CopyDialog(val activity: SimpleActivity, val files: ArrayList<File>, val c
|
||||
view.destination.text = context.humanizePath(pickedPath)
|
||||
}
|
||||
})
|
||||
}
|
||||
}*/
|
||||
|
||||
AlertDialog.Builder(context)
|
||||
.setTitle(context.resources.getString(if (files.size == 1) R.string.copy_item else R.string.copy_items))
|
||||
|
@ -5,9 +5,9 @@ import android.content.Context
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.WindowManager
|
||||
import com.simplemobiletools.commons.extensions.*
|
||||
import com.simplemobiletools.filemanager.Config
|
||||
import com.simplemobiletools.filemanager.R
|
||||
import com.simplemobiletools.filepicker.extensions.*
|
||||
import kotlinx.android.synthetic.main.create_new.view.*
|
||||
import java.io.File
|
||||
import java.io.IOException
|
||||
@ -54,7 +54,7 @@ class CreateNewItemDialog(val context: Context, val path: String, val listener:
|
||||
|
||||
private fun createDirectory(file: File, alertDialog: AlertDialog): Boolean {
|
||||
return if (context.needsStupidWritePermissions(path)) {
|
||||
val documentFile = context.getFileDocument(file.absolutePath, Config.newInstance(context).treeUri)
|
||||
val documentFile = context.getFileDocument(file.absolutePath, Config.newInstance(context).treeUri) ?: return false
|
||||
documentFile.createDirectory(file.name)
|
||||
success(alertDialog)
|
||||
true
|
||||
@ -72,7 +72,7 @@ class CreateNewItemDialog(val context: Context, val path: String, val listener:
|
||||
private fun createFile(file: File, alertDialog: AlertDialog): Boolean {
|
||||
try {
|
||||
if (context.needsStupidWritePermissions(path)) {
|
||||
val documentFile = context.getFileDocument(file.absolutePath, Config.newInstance(context).treeUri)
|
||||
val documentFile = context.getFileDocument(file.absolutePath, Config.newInstance(context).treeUri) ?: return false
|
||||
documentFile.createFile("", file.name)
|
||||
success(alertDialog)
|
||||
return true
|
||||
|
@ -4,10 +4,10 @@ import android.app.AlertDialog
|
||||
import android.content.Context
|
||||
import android.view.LayoutInflater
|
||||
import android.view.WindowManager
|
||||
import com.simplemobiletools.commons.extensions.*
|
||||
import com.simplemobiletools.commons.models.FileDirItem
|
||||
import com.simplemobiletools.filemanager.Config
|
||||
import com.simplemobiletools.filemanager.R
|
||||
import com.simplemobiletools.filepicker.extensions.*
|
||||
import com.simplemobiletools.filepicker.models.FileDirItem
|
||||
import kotlinx.android.synthetic.main.rename_item.view.*
|
||||
import java.io.File
|
||||
|
||||
@ -44,7 +44,7 @@ class RenameItemDialog(val context: Context, val item: FileDirItem, val listener
|
||||
}
|
||||
|
||||
if (context.needsStupidWritePermissions(path)) {
|
||||
val document = context.getFileDocument(currFile.absolutePath, Config.newInstance(context).treeUri)
|
||||
val document = context.getFileDocument(currFile.absolutePath, Config.newInstance(context).treeUri) ?: return@setOnClickListener
|
||||
if (document.canWrite())
|
||||
document.renameTo(newName)
|
||||
sendSuccess(newFile)
|
||||
|
@ -0,0 +1,6 @@
|
||||
package com.simplemobiletools.filemanager.extensions
|
||||
|
||||
import android.content.Context
|
||||
import com.simplemobiletools.filemanager.Config
|
||||
|
||||
val Context.config: Config get() = Config.newInstance(this)
|
@ -12,6 +12,9 @@ import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.webkit.MimeTypeMap
|
||||
import com.simplemobiletools.commons.extensions.*
|
||||
import com.simplemobiletools.commons.models.FileDirItem
|
||||
import com.simplemobiletools.commons.views.RecyclerViewDivider
|
||||
import com.simplemobiletools.filemanager.Config
|
||||
import com.simplemobiletools.filemanager.PATH
|
||||
import com.simplemobiletools.filemanager.R
|
||||
@ -19,9 +22,6 @@ import com.simplemobiletools.filemanager.SCROLL_STATE
|
||||
import com.simplemobiletools.filemanager.activities.SimpleActivity
|
||||
import com.simplemobiletools.filemanager.adapters.ItemsAdapter
|
||||
import com.simplemobiletools.filemanager.dialogs.CreateNewItemDialog
|
||||
import com.simplemobiletools.filepicker.extensions.*
|
||||
import com.simplemobiletools.filepicker.models.FileDirItem
|
||||
import com.simplemobiletools.filepicker.views.RecyclerViewDivider
|
||||
import kotlinx.android.synthetic.main.items_fragment.*
|
||||
import java.io.File
|
||||
import java.util.*
|
||||
@ -241,7 +241,7 @@ class ItemsFragment : android.support.v4.app.Fragment(), ItemsAdapter.ItemOperat
|
||||
}
|
||||
|
||||
if (context.needsStupidWritePermissions(item.absolutePath)) {
|
||||
val document = context.getFileDocument(item.absolutePath, mConfig.treeUri)
|
||||
val document = context.getFileDocument(item.absolutePath, mConfig.treeUri) ?: return
|
||||
|
||||
// double check we have the uri to the proper file path, not some parent folder
|
||||
if (document.uri.toString().endsWith(item.absolutePath.getFilenameFromPath()))
|
||||
|
@ -1,33 +0,0 @@
|
||||
package com.simplemobiletools.filemanager.views
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Canvas
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.support.v7.widget.RecyclerView
|
||||
import com.simplemobiletools.filemanager.R
|
||||
|
||||
class RecyclerViewDivider(context: Context) : RecyclerView.ItemDecoration() {
|
||||
private val mDivider: Drawable
|
||||
|
||||
init {
|
||||
mDivider = context.resources.getDrawable(R.drawable.divider)
|
||||
}
|
||||
|
||||
override fun onDrawOver(c: Canvas, parent: RecyclerView, state: RecyclerView.State) {
|
||||
val left = parent.paddingLeft
|
||||
val right = parent.width - parent.paddingRight
|
||||
|
||||
val childCount = parent.childCount
|
||||
for (i in 0..childCount - 1) {
|
||||
val child = parent.getChildAt(i)
|
||||
|
||||
val params = child.layoutParams as RecyclerView.LayoutParams
|
||||
|
||||
val top = child.bottom + params.bottomMargin
|
||||
val bottom = top + mDivider.intrinsicHeight
|
||||
|
||||
mDivider.setBounds(left, top, right, bottom)
|
||||
mDivider.draw(c)
|
||||
}
|
||||
}
|
||||
}
|
@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout
|
||||
android:id="@+id/main_screen"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/main_screen"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<com.simplemobiletools.filepicker.views.Breadcrumbs
|
||||
<com.simplemobiletools.commons.views.Breadcrumbs
|
||||
android:id="@+id/breadcrumbs"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
@ -13,7 +13,6 @@
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/fragment_holder"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_below="@+id/breadcrumbs"/>
|
||||
|
@ -11,32 +11,6 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/settings_dark_theme_holder"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/settings_padding"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:padding="@dimen/activity_margin">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/settings_dark_theme_label"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerVertical="true"
|
||||
android:paddingLeft="@dimen/settings_padding"
|
||||
android:text="@string/dark_theme"/>
|
||||
|
||||
<android.support.v7.widget.SwitchCompat
|
||||
android:id="@+id/settings_dark_theme"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentRight="true"
|
||||
android:background="@null"
|
||||
android:clickable="false"/>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/settings_show_hidden_holder"
|
||||
android:layout_width="match_parent"
|
||||
|
@ -6,7 +6,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<com.simplemobiletools.filepicker.views.Breadcrumbs
|
||||
<com.simplemobiletools.commons.views.Breadcrumbs
|
||||
android:id="@+id/directory_picker_breadcrumbs"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -5,7 +5,7 @@ buildscript {
|
||||
jcenter()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:2.2.3'
|
||||
classpath 'com.android.tools.build:gradle:2.3.0'
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
|
4
gradle/wrapper/gradle-wrapper.properties
vendored
4
gradle/wrapper/gradle-wrapper.properties
vendored
@ -1,6 +1,6 @@
|
||||
#Mon Aug 22 21:44:03 CEST 2016
|
||||
#Fri Mar 10 22:27:02 CET 2017
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
|
||||
|
@ -1,4 +1,3 @@
|
||||
STORE_FILE=/path/to/your.keystore
|
||||
STORE_PASSWORD=yourkeypass
|
||||
KEY_ALIAS=projectkeyalias
|
||||
KEY_PASSWORD=yourkeypass
|
||||
PASSWORD=yourkeypass
|
||||
|
Loading…
x
Reference in New Issue
Block a user