mirror of
https://github.com/FossifyOrg/Gallery.git
synced 2024-11-30 08:18:00 +01:00
add a dialog for picking the copy destination
This commit is contained in:
parent
3804f3d8f4
commit
2c7d62c863
6 changed files with 75 additions and 66 deletions
|
@ -47,7 +47,7 @@ dependencies {
|
||||||
compile 'com.theartofdev.edmodo:android-image-cropper:2.3.1'
|
compile 'com.theartofdev.edmodo:android-image-cropper:2.3.1'
|
||||||
compile 'com.booking:rtlviewpager:1.0.1'
|
compile 'com.booking:rtlviewpager:1.0.1'
|
||||||
compile 'com.simplemobiletools:fileproperties:1.0.2@aar'
|
compile 'com.simplemobiletools:fileproperties:1.0.2@aar'
|
||||||
compile 'com.simplemobiletools:filepicker:1.3.8@aar'
|
compile 'com.simplemobiletools:filepicker:1.3.9@aar'
|
||||||
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
||||||
|
|
||||||
apt 'com.jakewharton:butterknife-compiler:8.0.1'
|
apt 'com.jakewharton:butterknife-compiler:8.0.1'
|
||||||
|
|
|
@ -47,10 +47,6 @@
|
||||||
android:name=".activities.MediaActivity"
|
android:name=".activities.MediaActivity"
|
||||||
android:parentActivityName=".activities.MainActivity"/>
|
android:parentActivityName=".activities.MainActivity"/>
|
||||||
|
|
||||||
<activity
|
|
||||||
android:name=".activities.PickAlbumActivity"
|
|
||||||
android:parentActivityName=".activities.MainActivity"/>
|
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".activities.ViewPagerActivity"
|
android:name=".activities.ViewPagerActivity"
|
||||||
android:configChanges="orientation|keyboardHidden|screenSize"
|
android:configChanges="orientation|keyboardHidden|screenSize"
|
||||||
|
|
|
@ -1,54 +0,0 @@
|
||||||
package com.simplemobiletools.gallery.activities
|
|
||||||
|
|
||||||
import android.os.Bundle
|
|
||||||
import android.view.View
|
|
||||||
import android.widget.AdapterView
|
|
||||||
import com.simplemobiletools.gallery.R
|
|
||||||
import com.simplemobiletools.gallery.Utils
|
|
||||||
import com.simplemobiletools.gallery.adapters.DirectoryAdapter
|
|
||||||
import com.simplemobiletools.gallery.asynctasks.GetDirectoriesAsynctask
|
|
||||||
import com.simplemobiletools.gallery.extensions.toast
|
|
||||||
import com.simplemobiletools.gallery.models.Directory
|
|
||||||
import kotlinx.android.synthetic.main.activity_main.*
|
|
||||||
import java.util.*
|
|
||||||
|
|
||||||
class PickAlbumActivity : SimpleActivity(), AdapterView.OnItemClickListener, GetDirectoriesAsynctask.GetDirectoriesListener {
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
|
||||||
super.onCreate(savedInstanceState)
|
|
||||||
setContentView(R.layout.activity_main)
|
|
||||||
mDirs = ArrayList<Directory>()
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onResume() {
|
|
||||||
super.onResume()
|
|
||||||
tryloadGallery()
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun tryloadGallery() {
|
|
||||||
if (Utils.hasStoragePermission(applicationContext)) {
|
|
||||||
getDirectories()
|
|
||||||
} else {
|
|
||||||
toast(R.string.no_permissions)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun getDirectories() {
|
|
||||||
GetDirectoriesAsynctask(applicationContext, false, false, ArrayList<String>(), this).execute()
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onItemClick(parent: AdapterView<*>, view: View, position: Int, id: Long) {
|
|
||||||
val path = mDirs!![position].path
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun gotDirectories(dirs: ArrayList<Directory>) {
|
|
||||||
mDirs = dirs
|
|
||||||
|
|
||||||
val adapter = DirectoryAdapter(this, dirs)
|
|
||||||
directories_grid.adapter = adapter
|
|
||||||
directories_grid.onItemClickListener = this
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
private var mDirs: MutableList<Directory>? = null
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -5,8 +5,7 @@ import android.support.v4.util.Pair
|
||||||
import android.support.v7.app.AlertDialog
|
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.filepicker.extensions.getBasePath
|
import com.simplemobiletools.filepicker.extensions.humanizePath
|
||||||
import com.simplemobiletools.filepicker.extensions.getHumanReadablePath
|
|
||||||
import com.simplemobiletools.gallery.R
|
import com.simplemobiletools.gallery.R
|
||||||
import com.simplemobiletools.gallery.Utils
|
import com.simplemobiletools.gallery.Utils
|
||||||
import com.simplemobiletools.gallery.asynctasks.CopyTask
|
import com.simplemobiletools.gallery.asynctasks.CopyTask
|
||||||
|
@ -24,13 +23,14 @@ class CopyDialog(val activity: Activity, val files: List<File>, val copyListener
|
||||||
val view = LayoutInflater.from(context).inflate(R.layout.copy_item, null)
|
val view = LayoutInflater.from(context).inflate(R.layout.copy_item, null)
|
||||||
val path = files[0].parent.trimEnd('/')
|
val path = files[0].parent.trimEnd('/')
|
||||||
|
|
||||||
val basePath = path.getBasePath(context)
|
view.source.text = context.humanizePath(path)
|
||||||
val humanPath = path.replaceFirst(basePath, activity.getHumanReadablePath(basePath))
|
|
||||||
|
|
||||||
view.source.text = humanPath
|
|
||||||
|
|
||||||
view.destination.setOnClickListener {
|
view.destination.setOnClickListener {
|
||||||
|
PickAlbumDialog(activity, object : PickAlbumDialog.OnPickAlbumListener {
|
||||||
|
override fun onSuccess(path: String) {
|
||||||
|
view.destination.text = path
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
AlertDialog.Builder(context)
|
AlertDialog.Builder(context)
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
package com.simplemobiletools.gallery.dialogs
|
||||||
|
|
||||||
|
import android.app.Activity
|
||||||
|
import android.support.v7.app.AlertDialog
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import android.view.View
|
||||||
|
import android.widget.AdapterView
|
||||||
|
import android.widget.GridView
|
||||||
|
import com.simplemobiletools.gallery.R
|
||||||
|
import com.simplemobiletools.gallery.adapters.DirectoryAdapter
|
||||||
|
import com.simplemobiletools.gallery.asynctasks.GetDirectoriesAsynctask
|
||||||
|
import com.simplemobiletools.gallery.models.Directory
|
||||||
|
import kotlinx.android.synthetic.main.activity_main.view.*
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
|
class PickAlbumDialog(val activity: Activity, val listener: OnPickAlbumListener) : AdapterView.OnItemClickListener, GetDirectoriesAsynctask.GetDirectoriesListener {
|
||||||
|
val context = activity.applicationContext
|
||||||
|
var grid: GridView? = null
|
||||||
|
var dirs = ArrayList<Directory>()
|
||||||
|
var dialog: AlertDialog? = null
|
||||||
|
|
||||||
|
init {
|
||||||
|
val view = LayoutInflater.from(context).inflate(R.layout.dialog_album_picker, null)
|
||||||
|
grid = view.directories_grid
|
||||||
|
|
||||||
|
dialog = AlertDialog.Builder(activity)
|
||||||
|
.setTitle(context.resources.getString(R.string.select_destination))
|
||||||
|
.setView(view)
|
||||||
|
.setPositiveButton(R.string.ok, null)
|
||||||
|
.setNegativeButton(R.string.cancel, null)
|
||||||
|
.create().apply {
|
||||||
|
show()
|
||||||
|
}
|
||||||
|
|
||||||
|
GetDirectoriesAsynctask(context, false, false, ArrayList<String>(), this).execute()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onItemClick(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
|
||||||
|
listener.onSuccess(dirs[position].path)
|
||||||
|
dialog?.dismiss()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun gotDirectories(dirs: ArrayList<Directory>) {
|
||||||
|
this.dirs = dirs
|
||||||
|
|
||||||
|
val adapter = DirectoryAdapter(context, dirs)
|
||||||
|
|
||||||
|
grid?.adapter = adapter
|
||||||
|
grid?.onItemClickListener = this
|
||||||
|
}
|
||||||
|
|
||||||
|
interface OnPickAlbumListener {
|
||||||
|
fun onSuccess(path: String)
|
||||||
|
}
|
||||||
|
}
|
12
app/src/main/res/layout/dialog_album_picker.xml
Normal file
12
app/src/main/res/layout/dialog_album_picker.xml
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<GridView
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:id="@+id/directories_grid"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:columnWidth="@dimen/dir_tmb_size"
|
||||||
|
android:horizontalSpacing="1dp"
|
||||||
|
android:numColumns="auto_fit"
|
||||||
|
android:paddingTop="@dimen/activity_margin"
|
||||||
|
android:stretchMode="columnWidth"
|
||||||
|
android:verticalSpacing="1dp"/>
|
Loading…
Reference in a new issue