Skip to content

Commit 205a6d2

Browse files
committed
add deleting
1 parent 037d010 commit 205a6d2

File tree

9 files changed

+46
-49
lines changed

9 files changed

+46
-49
lines changed

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import com.simplemobiletools.filemanager.Config
1414
import com.simplemobiletools.filemanager.R
1515
import com.simplemobiletools.filemanager.activities.SimpleActivity
1616
import com.simplemobiletools.filemanager.dialogs.RenameItemDialog
17+
import com.simplemobiletools.filepicker.dialogs.ConfirmationDialog
1718
import com.simplemobiletools.filepicker.extensions.formatSize
1819
import com.simplemobiletools.filepicker.extensions.isGif
1920
import com.simplemobiletools.filepicker.extensions.toast
@@ -60,6 +61,10 @@ class ItemsAdapter(val activity: SimpleActivity, val mItems: List<FileDirItem>,
6061
shareFiles()
6162
true
6263
}
64+
R.id.cab_delete -> {
65+
askConfirmDelete()
66+
true
67+
}
6368
else -> false
6469
}
6570
}
@@ -125,6 +130,23 @@ class ItemsAdapter(val activity: SimpleActivity, val mItems: List<FileDirItem>,
125130
}
126131
}
127132

133+
private fun askConfirmDelete() {
134+
ConfirmationDialog(activity, listener = object : ConfirmationDialog.OnConfirmedListener {
135+
override fun onConfirmed() {
136+
actMode?.finish()
137+
prepareForDeleting()
138+
}
139+
})
140+
}
141+
142+
private fun prepareForDeleting() {
143+
val selections = multiSelector.selectedPositions
144+
val paths = ArrayList<String>(selections.size)
145+
selections.forEach { paths.add(mItems[it].path) }
146+
listener?.prepareForDeleting(paths)
147+
}
148+
149+
128150
private fun getSelectedMedia(): List<FileDirItem> {
129151
val positions = multiSelector.selectedPositions
130152
val selectedMedia = ArrayList<FileDirItem>(positions.size)
@@ -199,5 +221,7 @@ class ItemsAdapter(val activity: SimpleActivity, val mItems: List<FileDirItem>,
199221

200222
interface ItemOperationsListener {
201223
fun refreshItems()
224+
225+
fun prepareForDeleting(paths: ArrayList<String>)
202226
}
203227
}

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

Lines changed: 15 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,9 @@ import android.net.Uri
77
import android.os.Bundle
88
import android.support.design.widget.Snackbar
99
import android.view.LayoutInflater
10-
import android.view.MotionEvent
1110
import android.view.View
1211
import android.view.ViewGroup
1312
import android.webkit.MimeTypeMap
14-
import android.widget.AdapterView
1513
import com.simplemobiletools.filemanager.Config
1614
import com.simplemobiletools.filemanager.PATH
1715
import com.simplemobiletools.filemanager.R
@@ -27,7 +25,7 @@ import kotlinx.android.synthetic.main.items_fragment.*
2725
import java.io.File
2826
import java.util.*
2927

30-
class ItemsFragment : android.support.v4.app.Fragment(), AdapterView.OnItemClickListener, ItemsAdapter.ItemOperationsListener, View.OnTouchListener {
28+
class ItemsFragment : android.support.v4.app.Fragment(), ItemsAdapter.ItemOperationsListener {
3129
private var mListener: ItemInteractionListener? = null
3230
private var mSnackbar: Snackbar? = null
3331

@@ -78,11 +76,11 @@ class ItemsFragment : android.support.v4.app.Fragment(), AdapterView.OnItemClick
7876
mItems = newItems
7977

8078
val adapter = ItemsAdapter(activity as SimpleActivity, mItems, this) {
81-
79+
itemClicked(it)
8280
}
8381
items_list.adapter = adapter
8482
items_list.addItemDecoration(RecyclerViewDivider(context))
85-
items_list.setOnTouchListener(this)
83+
items_list.setOnTouchListener { view, motionEvent -> checkDelete(); true }
8684
}
8785

8886
fun setListener(listener: ItemInteractionListener) {
@@ -125,8 +123,7 @@ class ItemsFragment : android.support.v4.app.Fragment(), AdapterView.OnItemClick
125123
return 0
126124
}
127125

128-
override fun onItemClick(parent: AdapterView<*>, view: View, position: Int, id: Long) {
129-
val item = mItems[position]
126+
fun itemClicked(item: FileDirItem) {
130127
if (item.isDirectory) {
131128
mListener?.itemClicked(item)
132129
} else {
@@ -177,26 +174,12 @@ class ItemsFragment : android.support.v4.app.Fragment(), AdapterView.OnItemClick
177174
return type + "/*"
178175
}
179176

180-
/*override fun onPrepareActionMode(mode: ActionMode, menu: Menu): Boolean {
181-
val menuItem = menu.findItem(R.id.cab_rename)
182-
menuItem.isVisible = mSelectedItemsCnt == 1
183-
return true
184-
}
185-
186-
override fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean {
177+
/*override fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean {
187178
when (item.itemId) {
188-
R.id.cab_rename -> {
189-
displayRenameDialog()
190-
mode.finish()
191-
}
192179
R.id.cab_copy -> {
193180
displayCopyDialog()
194181
mode.finish()
195182
}
196-
R.id.cab_delete -> {
197-
prepareForDeleting()
198-
mode.finish()
199-
}
200183
else -> return false
201184
}
202185
@@ -227,15 +210,6 @@ class ItemsFragment : android.support.v4.app.Fragment(), AdapterView.OnItemClick
227210
})
228211
}
229212

230-
private fun getSelectedItem(): FileDirItem? {
231-
val itemIndexes = getSelectedItemIndexes()
232-
if (itemIndexes.isEmpty())
233-
return null
234-
235-
val itemIndex = itemIndexes[0]
236-
return mItems[itemIndex]
237-
}
238-
239213
private fun getSelectedItemIndexes(): List<Int> {
240214
/*val items = items_list.checkedItemPositions
241215
val cnt = items.size()
@@ -246,21 +220,15 @@ class ItemsFragment : android.support.v4.app.Fragment(), AdapterView.OnItemClick
246220
return ArrayList()
247221
}
248222

249-
private fun prepareForDeleting() {
250-
mToBeDeleted.clear()
251-
/*val items = items_list.checkedItemPositions
252-
val cnt = items.size()
253-
var deletedCnt = 0
254-
for (i in 0..cnt - 1) {
255-
if (items.valueAt(i)) {
256-
val id = items.keyAt(i)
257-
val path = mItems[id].path
258-
mToBeDeleted.add(path)
259-
deletedCnt++
260-
}
261-
}
223+
override fun prepareForDeleting(paths: ArrayList<String>) {
224+
activity.toast(R.string.deleting)
225+
mToBeDeleted = paths
226+
val deletedCnt = mToBeDeleted.size
227+
228+
if ((activity as SimpleActivity).isShowingPermDialog(File(mToBeDeleted[0])))
229+
return
262230

263-
notifyDeletion(deletedCnt)*/
231+
notifyDeletion(deletedCnt)
264232
}
265233

266234
private fun notifyDeletion(cnt: Int) {
@@ -275,12 +243,10 @@ class ItemsFragment : android.support.v4.app.Fragment(), AdapterView.OnItemClick
275243
fillItems()
276244
}
277245

278-
override fun onTouch(v: View, event: MotionEvent): Boolean {
279-
if (mSnackbar != null && mSnackbar!!.isShown) {
246+
fun checkDelete() {
247+
if (mSnackbar?.isShown == true) {
280248
deleteItems()
281249
}
282-
283-
return false
284250
}
285251

286252
private fun deleteItems() {

app/src/main/res/values-de/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<string name="empty_name">Please enter a name</string>
1414
<string name="error_occurred">Ein unbekannter Fehler ist aufgetreten</string>
1515
<string name="delete">Löschen</string>
16+
<string name="deleting">Lösche</string>
1617
<string name="undo">Rückgängig</string>
1718
<string name="rename">Umbenennen</string>
1819
<string name="properties">Eigenschaften</string>

app/src/main/res/values-es/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<string name="empty_name">Por favor, introduce un nombre</string>
1414
<string name="error_occurred">Se ha producido un error inesperado</string>
1515
<string name="delete">Eliminar</string>
16+
<string name="deleting">Eliminando</string>
1617
<string name="undo">Deshacer</string>
1718
<string name="rename">Renombrar</string>
1819
<string name="properties">Propiedades</string>

app/src/main/res/values-it/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<string name="empty_name">Inserisci un nome</string>
1414
<string name="error_occurred">Riscontrato un errore sconosciuto</string>
1515
<string name="delete">Elimina</string>
16+
<string name="deleting">Eliminazione</string>
1617
<string name="undo">Annulla</string>
1718
<string name="rename">Rinomina</string>
1819
<string name="properties">Proprietà</string>

app/src/main/res/values-ja/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<string name="empty_name">Please enter a name</string>
1414
<string name="error_occurred">不明なエラーが発生しました</string>
1515
<string name="delete">削除</string>
16+
<string name="deleting">削除中</string>
1617
<string name="undo">元に戻す</string>
1718
<string name="rename">名前を変更</string>
1819
<string name="properties">Properties</string>

app/src/main/res/values-pt-rPT/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<string name="empty_name">Por favor digite o nome</string>
1414
<string name="error_occurred">Ocorreu um erro desconhecido</string>
1515
<string name="delete">Apagar</string>
16+
<string name="deleting">A apagar</string>
1617
<string name="undo">Desfazer</string>
1718
<string name="rename">Renomear</string>
1819
<string name="properties">Propriedades</string>

app/src/main/res/values-sv/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<string name="empty_name">Please enter a name</string>
1414
<string name="error_occurred">Ett okänt fel har uppstått</string>
1515
<string name="delete">Ta bort</string>
16+
<string name="deleting">Tar bort</string>
1617
<string name="undo">Ångra</string>
1718
<string name="rename">Döp om</string>
1819
<string name="properties">Properties</string>

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<string name="empty_name">Please enter a name</string>
1414
<string name="error_occurred">An unknown error occurred</string>
1515
<string name="delete">Delete</string>
16+
<string name="deleting">Deleting</string>
1617
<string name="undo">Undo</string>
1718
<string name="rename">Rename</string>
1819
<string name="properties">Properties</string>

0 commit comments

Comments
 (0)