Skip to content

Commit 56cd0bb

Browse files
committed
reuse some file operations from the shared lib
1 parent 6854890 commit 56cd0bb

File tree

5 files changed

+42
-85
lines changed

5 files changed

+42
-85
lines changed

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ android {
3232
}
3333

3434
dependencies {
35-
compile 'com.simplemobiletools:commons:2.9.9'
35+
compile 'com.simplemobiletools:commons:2.11.5'
3636
compile 'com.bignerdranch.android:recyclerview-multiselect:0.2'
3737
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
3838
}

app/src/main/kotlin/com/simplemobiletools/filemanager/activities/MainActivity.kt

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import com.simplemobiletools.filemanager.SCROLL_STATE
2222
import com.simplemobiletools.filemanager.extensions.config
2323
import com.simplemobiletools.filemanager.fragments.ItemsFragment
2424
import kotlinx.android.synthetic.main.activity_main.*
25-
import java.io.File
2625
import java.util.*
2726

2827
class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Breadcrumbs.BreadcrumbsListener {
@@ -128,7 +127,7 @@ class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Br
128127
if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
129128
initRootFileManager()
130129
} else {
131-
toast(R.string.no_permissions)
130+
toast(R.string.no_storage_permissions)
132131
finish()
133132
}
134133
}
@@ -150,9 +149,7 @@ class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Br
150149
}
151150

152151
fun changePath(pickedPath: String) {
153-
if (!isShowingPermDialog(File(pickedPath))) {
154-
mBasePath = pickedPath
155-
openPath(pickedPath)
156-
}
152+
mBasePath = pickedPath
153+
openPath(pickedPath)
157154
}
158155
}

app/src/main/kotlin/com/simplemobiletools/filemanager/adapters/ItemsAdapter.kt

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -166,27 +166,19 @@ class ItemsAdapter(val activity: SimpleActivity, var mItems: MutableList<FileDir
166166
val files = ArrayList<File>(selections.size)
167167
val removeFiles = ArrayList<FileDirItem>(selections.size)
168168

169-
var isShowingPermDialog = false
170-
activity.runOnUiThread {
171-
if (activity.isShowingPermDialog(File(mItems[selections[0]].path))) {
172-
isShowingPermDialog = true
169+
activity.handleSAFDialog(File(mItems[selections[0]].path)) {
170+
selections.reverse()
171+
selections.forEach {
172+
val file = mItems[it]
173+
files.add(File(file.path))
174+
removeFiles.add(file)
175+
notifyItemRemoved(it)
173176
}
174-
}
175-
176-
if (isShowingPermDialog)
177-
return
178177

179-
selections.reverse()
180-
selections.forEach {
181-
val file = mItems[it]
182-
files.add(File(file.path))
183-
removeFiles.add(file)
184-
notifyItemRemoved(it)
178+
mItems.removeAll(removeFiles)
179+
markedItems.clear()
180+
listener?.deleteFiles(files)
185181
}
186-
187-
mItems.removeAll(removeFiles)
188-
markedItems.clear()
189-
listener?.deleteFiles(files)
190182
}
191183

192184
private fun getSelectedMedia(): List<FileDirItem> {

app/src/main/kotlin/com/simplemobiletools/filemanager/dialogs/CopyDialog.kt

Lines changed: 24 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -57,39 +57,35 @@ class CopyDialog(val activity: SimpleActivity, val files: ArrayList<File>, val c
5757
}
5858
}
5959

60-
if (activity.isShowingPermDialog(destinationDir)) {
61-
return@setOnClickListener
62-
}
63-
64-
if (view.dialog_radio_group.checkedRadioButtonId == R.id.dialog_radio_copy) {
65-
context.toast(R.string.copying)
66-
val pair = Pair<ArrayList<File>, File>(files, destinationDir)
67-
CopyMoveTask(context, false, config.treeUri, false, copyMoveListener).execute(pair)
68-
dismiss()
69-
} else {
70-
if (context.isPathOnSD(sourcePath) || context.isPathOnSD(destinationPath)) {
71-
if (activity.isShowingPermDialog(files[0])) {
72-
return@setOnClickListener
73-
}
74-
75-
context.toast(R.string.moving)
60+
activity.handleSAFDialog(destinationDir) {
61+
if (view.dialog_radio_group.checkedRadioButtonId == R.id.dialog_radio_copy) {
62+
context.toast(R.string.copying)
7663
val pair = Pair<ArrayList<File>, File>(files, destinationDir)
77-
CopyMoveTask(context, true, config.treeUri, false, copyMoveListener).execute(pair)
64+
CopyMoveTask(context, false, config.treeUri, false, copyMoveListener).execute(pair)
7865
dismiss()
7966
} else {
80-
val updatedFiles = ArrayList<File>(files.size * 2)
81-
updatedFiles.addAll(files)
82-
for (file in files) {
83-
val destination = File(destinationDir, file.name)
84-
if (file.renameTo(destination))
85-
updatedFiles.add(destination)
86-
}
87-
88-
context.scanFiles(updatedFiles) {
89-
activity.runOnUiThread {
90-
copyMoveListener.copySucceeded(true, files.size * 2 == updatedFiles.size)
67+
if (context.isPathOnSD(sourcePath) || context.isPathOnSD(destinationPath)) {
68+
activity.handleSAFDialog(files[0]) {
69+
context.toast(R.string.moving)
70+
val pair = Pair<ArrayList<File>, File>(files, destinationDir)
71+
CopyMoveTask(context, true, config.treeUri, false, copyMoveListener).execute(pair)
9172
dismiss()
9273
}
74+
} else {
75+
val updatedFiles = ArrayList<File>(files.size * 2)
76+
updatedFiles.addAll(files)
77+
for (file in files) {
78+
val destination = File(destinationDir, file.name)
79+
if (!destination.exists() && file.renameTo(destination))
80+
updatedFiles.add(destination)
81+
}
82+
83+
context.scanFiles(updatedFiles) {
84+
activity.runOnUiThread {
85+
copyMoveListener.copySucceeded(true, files.size * 2 == updatedFiles.size)
86+
dismiss()
87+
}
88+
}
9389
}
9490
}
9591
}

app/src/main/kotlin/com/simplemobiletools/filemanager/fragments/ItemsFragment.kt

Lines changed: 4 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -189,41 +189,13 @@ class ItemsFragment : android.support.v4.app.Fragment(), ItemsAdapter.ItemOperat
189189
}
190190

191191
override fun deleteFiles(files: ArrayList<File>) {
192-
val act = activity as SimpleActivity
193-
if (act.isShowingPermDialog(files[0])) {
194-
return
195-
}
196-
197-
Thread({
198-
var hadSuccess = false
199-
files.forEach {
200-
if (it.isDirectory) {
201-
for (child in it.listFiles()) {
202-
deleteFile(child, act)
203-
}
204-
}
205-
if (deleteFile(it, act)) {
206-
hadSuccess = true
207-
context.deleteFromMediaStore(it)
192+
(activity as SimpleActivity).deleteFiles(files) {
193+
if (!it) {
194+
activity.runOnUiThread {
195+
activity.toast(R.string.unknown_error_occurred)
208196
}
209197
}
210-
if (!hadSuccess)
211-
act.runOnUiThread {
212-
act.toast(R.string.unknown_error_occurred)
213-
}
214-
}).start()
215-
}
216-
217-
private fun deleteFile(file: File, act: SimpleActivity): Boolean {
218-
if (file.delete() || act.tryFastDocumentDelete(file)) {
219-
return true
220-
} else {
221-
val document = act.getFileDocument(file.absolutePath, context.config.treeUri) ?: return false
222-
if (document.isFile && document.delete()) {
223-
return true
224-
}
225198
}
226-
return false
227199
}
228200

229201
override fun refreshItems() {

0 commit comments

Comments
 (0)