remove the Undo option of deleting at viewpager, as there is a confirmation box

This commit is contained in:
tibbi 2016-12-04 18:57:58 +01:00
parent bbdafef491
commit c4644c73a5
7 changed files with 25 additions and 96 deletions

View file

@ -10,7 +10,6 @@ import android.support.v4.view.ViewPager
import android.view.Menu import android.view.Menu
import android.view.MenuItem import android.view.MenuItem
import android.view.View import android.view.View
import android.widget.RelativeLayout
import com.simplemobiletools.filepicker.asynctasks.CopyMoveTask import com.simplemobiletools.filepicker.asynctasks.CopyMoveTask
import com.simplemobiletools.filepicker.dialogs.ConfirmationDialog import com.simplemobiletools.filepicker.dialogs.ConfirmationDialog
import com.simplemobiletools.filepicker.extensions.* import com.simplemobiletools.filepicker.extensions.*
@ -33,11 +32,8 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
private var mMedia: MutableList<Medium>? = null private var mMedia: MutableList<Medium>? = null
private var mPath = "" private var mPath = ""
private var mDirectory = "" private var mDirectory = ""
private var mToBeDeleted = ""
private var mBeingDeleted = ""
private var mIsFullScreen = false private var mIsFullScreen = false
private var mIsUndoShown = false
private var mPos = 0 private var mPos = 0
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
@ -75,11 +71,8 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
mPos = 0 mPos = 0
mIsFullScreen = false mIsFullScreen = false
mToBeDeleted = ""
mBeingDeleted = ""
scanPath(mPath) {} scanPath(mPath) {}
addUndoMargin()
mDirectory = File(mPath).parent mDirectory = File(mPath).parent
mMedia = getMedia() mMedia = getMedia()
if (isDirEmpty()) if (isDirEmpty())
@ -88,7 +81,6 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
updatePagerItems() updatePagerItems()
window.decorView.setOnSystemUiVisibilityChangeListener(this) window.decorView.setOnSystemUiVisibilityChangeListener(this)
updateActionbarTitle() updateActionbarTitle()
undo_delete.setOnClickListener { undoDeletion() }
} }
override fun onResume() { override fun onResume() {
@ -98,14 +90,6 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
} }
} }
fun undoDeletion() {
mIsUndoShown = false
mToBeDeleted = ""
mBeingDeleted = ""
undo_delete.visibility = View.GONE
reloadViewPager()
}
override fun onCreateOptionsMenu(menu: Menu): Boolean { override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.viewpager_menu, menu) menuInflater.inflate(R.menu.viewpager_menu, menu)
menu.findItem(R.id.menu_set_as_wallpaper).isVisible = getCurrentMedium().isImage() menu.findItem(R.id.menu_set_as_wallpaper).isVisible = getCurrentMedium().isImage()
@ -206,59 +190,35 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
private fun askConfirmDelete() { private fun askConfirmDelete() {
ConfirmationDialog(this) { ConfirmationDialog(this) {
notifyDeletion()
}
}
private fun notifyDeletion() {
if (isShowingPermDialog(File(mPath)))
return
mToBeDeleted = getCurrentFile().absolutePath
if (mMedia!!.size <= 1) {
deleteFile() deleteFile()
} else {
toast(R.string.file_deleted)
undo_delete.visibility = View.VISIBLE
mIsUndoShown = true
reloadViewPager()
} }
} }
private fun deleteFile() { private fun deleteFile() {
if (mToBeDeleted.isEmpty()) val file = File(mPath)
if (isShowingPermDialog(file))
return return
mIsUndoShown = false if (needsStupidWritePermissions(mPath)) {
mBeingDeleted = ""
var mWasFileDeleted = false
val file = File(mToBeDeleted)
if (needsStupidWritePermissions(mToBeDeleted)) {
if (!isShowingPermDialog(file)) { if (!isShowingPermDialog(file)) {
val document = getFileDocument(mToBeDeleted, mConfig.treeUri) val document = getFileDocument(mPath, mConfig.treeUri)
if (document.uri.toString().endsWith(file.absolutePath.getFilenameFromPath()) && !document.isDirectory) if (document.uri.toString().endsWith(file.absolutePath.getFilenameFromPath()) && !document.isDirectory)
mWasFileDeleted = document.delete() document.delete()
} }
} else { } else {
mWasFileDeleted = file.delete() file.delete()
} }
if (!mWasFileDeleted) { try {
try { if (file.exists())
mWasFileDeleted = file.delete() file.delete()
} catch (ignored: Exception) { } catch (ignored: Exception) {
}
} }
if (mWasFileDeleted) { scanFile(file) {
mBeingDeleted = mToBeDeleted reloadViewPager()
scanPath(mToBeDeleted) { scanCompleted() }
} }
mToBeDeleted = ""
undo_delete.visibility = View.GONE
} }
private fun isDirEmpty(): Boolean { private fun isDirEmpty(): Boolean {
@ -323,23 +283,21 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
val pathIndex = cursor.getColumnIndex(MediaStore.Images.Media.DATA) val pathIndex = cursor.getColumnIndex(MediaStore.Images.Media.DATA)
do { do {
val curPath = cursor.getString(pathIndex) ?: continue val curPath = cursor.getString(pathIndex) ?: continue
if (curPath != mToBeDeleted && curPath != mBeingDeleted) { val file = File(curPath)
val file = File(curPath) val size = cursor.getLongValue(MediaStore.Images.Media.SIZE)
val size = cursor.getLongValue(MediaStore.Images.Media.SIZE)
if (size == 0L) { if (size == 0L) {
invalidFiles.add(file) invalidFiles.add(file)
continue continue
}
// exclude images of subdirectories
if (file.parent != mDirectory)
continue
val name = cursor.getStringValue(MediaStore.Images.Media.DISPLAY_NAME)
val timestamp = cursor.getLongValue(MediaStore.Images.Media.DATE_MODIFIED)
media.add(Medium(name, curPath, i == 1, timestamp, size))
} }
// exclude images of subdirectories
if (file.parent != mDirectory)
continue
val name = cursor.getStringValue(MediaStore.Images.Media.DISPLAY_NAME)
val timestamp = cursor.getLongValue(MediaStore.Images.Media.DATE_MODIFIED)
media.add(Medium(name, curPath, i == 1, timestamp, size))
} while (cursor.moveToNext()) } while (cursor.moveToNext())
} }
} finally { } finally {
@ -383,19 +341,6 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
private fun getCurrentFile() = File(getCurrentMedium().path) private fun getCurrentFile() = File(getCurrentMedium().path)
private fun addUndoMargin() {
val res = resources
val params = undo_delete.layoutParams as RelativeLayout.LayoutParams
val topMargin = res.getStatusBarHeight() + res.getActionBarHeight(applicationContext)
var rightMargin = params.rightMargin
if (res.configuration.orientation != Configuration.ORIENTATION_PORTRAIT) {
rightMargin += res.getNavBarHeight()
}
params.setMargins(params.leftMargin, topMargin, rightMargin, params.bottomMargin)
}
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) { override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
} }
@ -423,16 +368,10 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
} }
private fun scanCompleted() { private fun scanCompleted() {
mBeingDeleted = ""
runOnUiThread { runOnUiThread {
if (mMedia != null && mMedia!!.size <= 1) { if (mMedia != null && mMedia!!.size <= 1) {
reloadViewPager() reloadViewPager()
} }
} }
} }
override fun onPause() {
super.onPause()
deleteFile()
}
} }

View file

@ -10,14 +10,4 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"/> android:layout_height="match_parent"/>
<ImageView
android:id="@+id/undo_delete"
android:layout_width="@dimen/undo_size"
android:layout_height="@dimen/undo_size"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:padding="@dimen/undo_padding"
android:src="@mipmap/undo"
android:visibility="gone"/>
</RelativeLayout> </RelativeLayout>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 477 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 339 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 606 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 894 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB