mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-02-18 12:50:34 +01:00
add a share menu button to some screens
This commit is contained in:
parent
3c45e960ad
commit
1e70eb1cd8
@ -306,19 +306,25 @@ class EventActivity : SimpleActivity(), DBHelper.EventUpdateListener {
|
|||||||
|
|
||||||
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
||||||
menuInflater.inflate(R.menu.menu_event, menu)
|
menuInflater.inflate(R.menu.menu_event, menu)
|
||||||
menu.findItem(R.id.cab_delete).isVisible = mEvent.id != 0
|
menu.findItem(R.id.delete).isVisible = mEvent.id != 0
|
||||||
|
menu.findItem(R.id.share).isVisible = mEvent.id != 0
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||||
when (item.itemId) {
|
when (item.itemId) {
|
||||||
R.id.cab_delete -> deleteEvent()
|
R.id.share -> shareEvent()
|
||||||
|
R.id.delete -> deleteEvent()
|
||||||
R.id.save -> saveEvent()
|
R.id.save -> saveEvent()
|
||||||
else -> return super.onOptionsItemSelected(item)
|
else -> return super.onOptionsItemSelected(item)
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun shareEvent() {
|
||||||
|
shareEvents(arrayListOf(mEvent.id))
|
||||||
|
}
|
||||||
|
|
||||||
private fun deleteEvent() {
|
private fun deleteEvent() {
|
||||||
DeleteEventDialog(this, arrayListOf(mEvent.id)) {
|
DeleteEventDialog(this, arrayListOf(mEvent.id)) {
|
||||||
if (it) {
|
if (it) {
|
||||||
|
@ -10,6 +10,7 @@ import com.simplemobiletools.calendar.R
|
|||||||
import com.simplemobiletools.calendar.activities.SimpleActivity
|
import com.simplemobiletools.calendar.activities.SimpleActivity
|
||||||
import com.simplemobiletools.calendar.dialogs.DeleteEventDialog
|
import com.simplemobiletools.calendar.dialogs.DeleteEventDialog
|
||||||
import com.simplemobiletools.calendar.extensions.config
|
import com.simplemobiletools.calendar.extensions.config
|
||||||
|
import com.simplemobiletools.calendar.extensions.shareEvents
|
||||||
import com.simplemobiletools.calendar.helpers.Formatter
|
import com.simplemobiletools.calendar.helpers.Formatter
|
||||||
import com.simplemobiletools.calendar.interfaces.DeleteEventsListener
|
import com.simplemobiletools.calendar.interfaces.DeleteEventsListener
|
||||||
import com.simplemobiletools.calendar.models.Event
|
import com.simplemobiletools.calendar.models.Event
|
||||||
@ -49,6 +50,7 @@ class DayEventsAdapter(val activity: SimpleActivity, val mItems: List<Event>, va
|
|||||||
val multiSelectorMode = object : ModalMultiSelectorCallback(multiSelector) {
|
val multiSelectorMode = object : ModalMultiSelectorCallback(multiSelector) {
|
||||||
override fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean {
|
override fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean {
|
||||||
when (item.itemId) {
|
when (item.itemId) {
|
||||||
|
R.id.cab_share -> shareEvents()
|
||||||
R.id.cab_delete -> askConfirmDelete()
|
R.id.cab_delete -> askConfirmDelete()
|
||||||
else -> return false
|
else -> return false
|
||||||
}
|
}
|
||||||
@ -71,6 +73,15 @@ class DayEventsAdapter(val activity: SimpleActivity, val mItems: List<Event>, va
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun shareEvents() {
|
||||||
|
val selections = multiSelector.selectedPositions
|
||||||
|
val eventIds = ArrayList<Int>(selections.size)
|
||||||
|
selections.forEach {
|
||||||
|
eventIds.add(mItems[it].id)
|
||||||
|
}
|
||||||
|
activity.shareEvents(eventIds.distinct())
|
||||||
|
}
|
||||||
|
|
||||||
private fun askConfirmDelete() {
|
private fun askConfirmDelete() {
|
||||||
val selections = multiSelector.selectedPositions
|
val selections = multiSelector.selectedPositions
|
||||||
val eventIds = ArrayList<Int>(selections.size)
|
val eventIds = ArrayList<Int>(selections.size)
|
||||||
|
@ -11,6 +11,7 @@ import com.simplemobiletools.calendar.R
|
|||||||
import com.simplemobiletools.calendar.activities.SimpleActivity
|
import com.simplemobiletools.calendar.activities.SimpleActivity
|
||||||
import com.simplemobiletools.calendar.dialogs.DeleteEventDialog
|
import com.simplemobiletools.calendar.dialogs.DeleteEventDialog
|
||||||
import com.simplemobiletools.calendar.extensions.config
|
import com.simplemobiletools.calendar.extensions.config
|
||||||
|
import com.simplemobiletools.calendar.extensions.shareEvents
|
||||||
import com.simplemobiletools.calendar.helpers.Formatter
|
import com.simplemobiletools.calendar.helpers.Formatter
|
||||||
import com.simplemobiletools.calendar.interfaces.DeleteEventsListener
|
import com.simplemobiletools.calendar.interfaces.DeleteEventsListener
|
||||||
import com.simplemobiletools.calendar.models.ListEvent
|
import com.simplemobiletools.calendar.models.ListEvent
|
||||||
@ -65,6 +66,7 @@ class EventListAdapter(val activity: SimpleActivity, val mItems: List<ListItem>,
|
|||||||
val multiSelectorMode = object : ModalMultiSelectorCallback(multiSelector) {
|
val multiSelectorMode = object : ModalMultiSelectorCallback(multiSelector) {
|
||||||
override fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean {
|
override fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean {
|
||||||
when (item.itemId) {
|
when (item.itemId) {
|
||||||
|
R.id.cab_share -> shareEvents()
|
||||||
R.id.cab_delete -> askConfirmDelete()
|
R.id.cab_delete -> askConfirmDelete()
|
||||||
else -> return false
|
else -> return false
|
||||||
}
|
}
|
||||||
@ -87,6 +89,15 @@ class EventListAdapter(val activity: SimpleActivity, val mItems: List<ListItem>,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun shareEvents() {
|
||||||
|
val selections = multiSelector.selectedPositions
|
||||||
|
val eventIds = ArrayList<Int>(selections.size)
|
||||||
|
selections.forEach {
|
||||||
|
eventIds.add((mItems[it] as ListEvent).id)
|
||||||
|
}
|
||||||
|
activity.shareEvents(eventIds.distinct())
|
||||||
|
}
|
||||||
|
|
||||||
private fun askConfirmDelete() {
|
private fun askConfirmDelete() {
|
||||||
val selections = multiSelector.selectedPositions
|
val selections = multiSelector.selectedPositions
|
||||||
val eventIds = ArrayList<Int>(selections.size)
|
val eventIds = ArrayList<Int>(selections.size)
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
package com.simplemobiletools.calendar.extensions
|
||||||
|
|
||||||
|
import android.app.Activity
|
||||||
|
|
||||||
|
fun Activity.shareEvents(ids: List<Int>) {
|
||||||
|
|
||||||
|
}
|
@ -1,6 +1,11 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
<item
|
||||||
|
android:id="@+id/cab_share"
|
||||||
|
android:icon="@drawable/ic_share"
|
||||||
|
android:title="@string/share"
|
||||||
|
app:showAsAction="ifRoom"/>
|
||||||
<item
|
<item
|
||||||
android:id="@+id/cab_delete"
|
android:id="@+id/cab_delete"
|
||||||
android:icon="@drawable/ic_delete"
|
android:icon="@drawable/ic_delete"
|
||||||
|
@ -1,6 +1,11 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
<item
|
||||||
|
android:id="@+id/cab_share"
|
||||||
|
android:icon="@drawable/ic_share"
|
||||||
|
android:title="@string/share"
|
||||||
|
app:showAsAction="ifRoom"/>
|
||||||
<item
|
<item
|
||||||
android:id="@+id/cab_delete"
|
android:id="@+id/cab_delete"
|
||||||
android:icon="@drawable/ic_delete"
|
android:icon="@drawable/ic_delete"
|
||||||
|
@ -2,15 +2,18 @@
|
|||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
<item
|
<item
|
||||||
android:id="@+id/cab_delete"
|
android:id="@+id/share"
|
||||||
|
android:icon="@drawable/ic_share"
|
||||||
|
android:title="@string/share"
|
||||||
|
app:showAsAction="ifRoom"/>
|
||||||
|
<item
|
||||||
|
android:id="@+id/delete"
|
||||||
android:icon="@drawable/ic_delete"
|
android:icon="@drawable/ic_delete"
|
||||||
android:title="@string/delete"
|
android:title="@string/delete"
|
||||||
app:showAsAction="ifRoom"/>
|
app:showAsAction="ifRoom"/>
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/save"
|
android:id="@+id/save"
|
||||||
android:icon="@drawable/ic_check"
|
android:icon="@drawable/ic_check"
|
||||||
android:title="@string/save"
|
android:title="@string/save"
|
||||||
app:showAsAction="ifRoom"/>
|
app:showAsAction="ifRoom"/>
|
||||||
|
|
||||||
</menu>
|
</menu>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user