mirror of
https://github.com/markusfisch/BinaryEye.git
synced 2024-09-20 20:03:06 +02:00
Add an action to remove a scan from result view
So there's no need for a long tap to remove individual scans.
This commit is contained in:
parent
860e867ad4
commit
7116aa7278
@ -34,8 +34,6 @@ import de.markusfisch.android.binaryeye.widget.DetectorView
|
|||||||
import de.markusfisch.android.binaryeye.widget.toast
|
import de.markusfisch.android.binaryeye.widget.toast
|
||||||
import de.markusfisch.android.binaryeye.zxing.Zxing
|
import de.markusfisch.android.binaryeye.zxing.Zxing
|
||||||
import de.markusfisch.android.cameraview.widget.CameraView
|
import de.markusfisch.android.cameraview.widget.CameraView
|
||||||
import kotlinx.coroutines.GlobalScope
|
|
||||||
import kotlinx.coroutines.launch
|
|
||||||
import kotlin.math.max
|
import kotlin.math.max
|
||||||
import kotlin.math.min
|
import kotlin.math.min
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
@ -679,9 +677,7 @@ fun showResult(
|
|||||||
}
|
}
|
||||||
val scan = Scan(result)
|
val scan = Scan(result)
|
||||||
if (prefs.useHistory) {
|
if (prefs.useHistory) {
|
||||||
GlobalScope.launch {
|
scan.id = db.insertScan(scan)
|
||||||
db.insertScan(scan)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (!bulkMode) {
|
if (!bulkMode) {
|
||||||
activity.startActivity(
|
activity.startActivity(
|
||||||
|
@ -19,7 +19,7 @@ data class Scan(
|
|||||||
val suggestedPrice: String?,
|
val suggestedPrice: String?,
|
||||||
val upcEanExtension: String?,
|
val upcEanExtension: String?,
|
||||||
val timestamp: String = getDateTime(),
|
val timestamp: String = getDateTime(),
|
||||||
val id: Long = 0L
|
var id: Long = 0L
|
||||||
) : Parcelable {
|
) : Parcelable {
|
||||||
constructor(result: Result) : this(
|
constructor(result: Result) : this(
|
||||||
result.text,
|
result.text,
|
||||||
|
@ -31,13 +31,14 @@ class DecodeFragment : Fragment() {
|
|||||||
private lateinit var format: String
|
private lateinit var format: String
|
||||||
private lateinit var fab: FloatingActionButton
|
private lateinit var fab: FloatingActionButton
|
||||||
|
|
||||||
private var action = ActionRegistry.DEFAULT_ACTION
|
private val parentJob = Job()
|
||||||
private var isBinary = false
|
private val scope: CoroutineScope = CoroutineScope(Dispatchers.Main + parentJob)
|
||||||
private val content: String
|
private val content: String
|
||||||
get() = contentView.text.toString()
|
get() = contentView.text.toString()
|
||||||
|
|
||||||
private val parentJob = Job()
|
private var action = ActionRegistry.DEFAULT_ACTION
|
||||||
private val scope: CoroutineScope = CoroutineScope(Dispatchers.Main + parentJob)
|
private var isBinary = false
|
||||||
|
private var id = 0L
|
||||||
|
|
||||||
override fun onCreate(state: Bundle?) {
|
override fun onCreate(state: Bundle?) {
|
||||||
super.onCreate(state)
|
super.onCreate(state)
|
||||||
@ -59,6 +60,7 @@ class DecodeFragment : Fragment() {
|
|||||||
|
|
||||||
val scan = arguments?.getParcelable(SCAN) as Scan?
|
val scan = arguments?.getParcelable(SCAN) as Scan?
|
||||||
?: throw IllegalArgumentException("DecodeFragment needs a Scan")
|
?: throw IllegalArgumentException("DecodeFragment needs a Scan")
|
||||||
|
id = scan.id
|
||||||
|
|
||||||
val inputContent = scan.content
|
val inputContent = scan.content
|
||||||
isBinary = hasNonPrintableCharacters(
|
isBinary = hasNonPrintableCharacters(
|
||||||
@ -196,6 +198,9 @@ class DecodeFragment : Fragment() {
|
|||||||
menu.findItem(R.id.copy_to_clipboard).isVisible = false
|
menu.findItem(R.id.copy_to_clipboard).isVisible = false
|
||||||
menu.findItem(R.id.create).isVisible = false
|
menu.findItem(R.id.create).isVisible = false
|
||||||
}
|
}
|
||||||
|
if (id > 0L) {
|
||||||
|
menu.findItem(R.id.remove).isVisible = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||||
@ -215,6 +220,11 @@ class DecodeFragment : Fragment() {
|
|||||||
)
|
)
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
R.id.remove -> {
|
||||||
|
db.removeScan(id)
|
||||||
|
backOrFinish()
|
||||||
|
true
|
||||||
|
}
|
||||||
else -> super.onOptionsItemSelected(item)
|
else -> super.onOptionsItemSelected(item)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -226,6 +236,15 @@ class DecodeFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun backOrFinish() {
|
||||||
|
val fm = fragmentManager
|
||||||
|
if (fm != null && fm.backStackEntryCount > 0) {
|
||||||
|
fm.popBackStack()
|
||||||
|
} else {
|
||||||
|
activity?.finish()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun executeAction(content: ByteArray) {
|
private fun executeAction(content: ByteArray) {
|
||||||
val ac = activity ?: return
|
val ac = activity ?: return
|
||||||
if (content.isNotEmpty()) {
|
if (content.isNotEmpty()) {
|
||||||
|
@ -1,19 +1,25 @@
|
|||||||
<menu
|
<menu
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:material="http://schemas.android.com/apk/res-auto">
|
xmlns:material="http://schemas.android.com/apk/res-auto">
|
||||||
|
<item
|
||||||
|
android:id="@+id/remove"
|
||||||
|
android:title="@string/remove_scan"
|
||||||
|
android:icon="@drawable/ic_action_remove"
|
||||||
|
android:visible="false"
|
||||||
|
material:showAsAction="always"/>
|
||||||
<item
|
<item
|
||||||
android:id="@+id/copy_to_clipboard"
|
android:id="@+id/copy_to_clipboard"
|
||||||
android:title="@string/copy_to_clipboard"
|
android:title="@string/copy_to_clipboard"
|
||||||
android:icon="@drawable/ic_action_copy"
|
android:icon="@drawable/ic_action_copy"
|
||||||
material:showAsAction="ifRoom"/>
|
material:showAsAction="always"/>
|
||||||
<item
|
<item
|
||||||
android:id="@+id/share"
|
android:id="@+id/share"
|
||||||
android:title="@string/share"
|
android:title="@string/share"
|
||||||
android:icon="@drawable/ic_action_share"
|
android:icon="@drawable/ic_action_share"
|
||||||
material:showAsAction="ifRoom"/>
|
material:showAsAction="always"/>
|
||||||
<item
|
<item
|
||||||
android:id="@+id/create"
|
android:id="@+id/create"
|
||||||
android:title="@string/compose_barcode"
|
android:title="@string/compose_barcode"
|
||||||
android:icon="@drawable/ic_action_create"
|
android:icon="@drawable/ic_action_create"
|
||||||
material:showAsAction="ifRoom"/>
|
material:showAsAction="always"/>
|
||||||
</menu>
|
</menu>
|
||||||
|
Loading…
Reference in New Issue
Block a user