mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-02-27 17:07:43 +01:00
update to the latest version of MyRecyclerView
This commit is contained in:
parent
6f90e9c030
commit
cd7dcde36f
@ -47,10 +47,9 @@ ext {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile 'com.simplemobiletools:commons:2.39.5'
|
||||
compile 'com.simplemobiletools:commons:2.39.9'
|
||||
compile 'joda-time:joda-time:2.9.9'
|
||||
compile 'com.facebook.stetho:stetho:1.5.0'
|
||||
compile 'com.bignerdranch.android:recyclerview-multiselect:0.2'
|
||||
compile 'com.android.support:multidex:1.0.2'
|
||||
compile 'com.google.code.gson:gson:2.8.2'
|
||||
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
||||
@ -60,7 +59,7 @@ dependencies {
|
||||
}
|
||||
|
||||
buildscript {
|
||||
ext.kotlin_version = '1.1.51'
|
||||
ext.kotlin_version = '1.1.60'
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
@ -33,9 +33,11 @@ class ManageEventTypesActivity : SimpleActivity(), DeleteEventTypesListener {
|
||||
private fun getEventTypes() {
|
||||
dbHelper.getEventTypes {
|
||||
runOnUiThread {
|
||||
manage_event_types_list.adapter = EventTypeAdapter(this, it, this) {
|
||||
val adapter = EventTypeAdapter(this, it, this, manage_event_types_list) {
|
||||
showEventTypeDialog(it as EventType)
|
||||
}
|
||||
adapter.setupDragListener(true)
|
||||
manage_event_types_list.adapter = adapter
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -49,9 +49,7 @@ class WidgetListConfigureActivity : SimpleActivity() {
|
||||
if (mWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID)
|
||||
finish()
|
||||
|
||||
mEventsAdapter = EventListAdapter(this, getListItems(), null) {
|
||||
|
||||
}
|
||||
mEventsAdapter = EventListAdapter(this, getListItems(), false, null, config_events_list) {}
|
||||
mEventsAdapter!!.updateTextColor(mTextColor)
|
||||
config_events_list.adapter = mEventsAdapter
|
||||
|
||||
|
@ -1,14 +1,17 @@
|
||||
package com.simplemobiletools.calendar.adapters
|
||||
|
||||
import android.view.Menu
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import com.simplemobiletools.calendar.R
|
||||
import com.simplemobiletools.calendar.activities.SimpleActivity
|
||||
import com.simplemobiletools.calendar.dialogs.DeleteEventDialog
|
||||
import com.simplemobiletools.calendar.extensions.config
|
||||
import com.simplemobiletools.calendar.extensions.shareEvents
|
||||
import com.simplemobiletools.calendar.helpers.Formatter
|
||||
import com.simplemobiletools.calendar.interfaces.DeleteEventsListener
|
||||
import com.simplemobiletools.calendar.models.Event
|
||||
import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
|
||||
import com.simplemobiletools.commons.extensions.applyColorFilter
|
||||
import com.simplemobiletools.commons.extensions.beInvisible
|
||||
import com.simplemobiletools.commons.extensions.beInvisibleIf
|
||||
@ -16,21 +19,24 @@ import com.simplemobiletools.commons.views.MyRecyclerView
|
||||
import kotlinx.android.synthetic.main.event_item_day_view.view.*
|
||||
|
||||
class DayEventsAdapter(activity: SimpleActivity, val events: List<Event>, val listener: DeleteEventsListener?, recyclerView: MyRecyclerView,
|
||||
itemClick: (Any) -> Unit) : MyAdapter(activity, itemClick) {
|
||||
itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, itemClick) {
|
||||
|
||||
private val config = activity.config
|
||||
private var allDayString = resources.getString(R.string.all_day)
|
||||
private var replaceDescriptionWithLocation = config.replaceDescription
|
||||
|
||||
init {
|
||||
setDragListenerRecyclerView(recyclerView)
|
||||
selectableItemCount = events.count()
|
||||
}
|
||||
|
||||
override fun getActionMenuId() = R.menu.cab_day
|
||||
|
||||
override fun getSelectableItemCount() = events.size
|
||||
override fun prepareActionMode(menu: Menu) {}
|
||||
|
||||
override fun markItemSelection(select: Boolean, pos: Int) {
|
||||
itemViews[pos].event_item_frame.isSelected = select
|
||||
override fun prepareItemSelection(view: View) {}
|
||||
|
||||
override fun markItemSelection(select: Boolean, view: View?) {
|
||||
view?.event_item_frame?.isSelected = select
|
||||
}
|
||||
|
||||
override fun actionItemPressed(id: Int) {
|
||||
@ -40,19 +46,14 @@ class DayEventsAdapter(activity: SimpleActivity, val events: List<Event>, val li
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): ViewHolder {
|
||||
val view = activity.layoutInflater.inflate(R.layout.event_item_day_view, parent, false)
|
||||
return createViewHolder(view)
|
||||
}
|
||||
override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int) = createViewHolder(R.layout.event_item_day_view, parent)
|
||||
|
||||
override fun onBindViewHolder(holder: MyAdapter.ViewHolder, position: Int) {
|
||||
override fun onBindViewHolder(holder: MyRecyclerViewAdapter.ViewHolder, position: Int) {
|
||||
val event = events[position]
|
||||
val view = holder.bindView(event) {
|
||||
setupView(it, event)
|
||||
}
|
||||
itemViews.put(position, view)
|
||||
toggleItemSelection(selectedPositions.contains(position), position)
|
||||
holder.itemView.tag = holder
|
||||
bindViewHolder(holder, position, view)
|
||||
}
|
||||
|
||||
override fun getItemCount() = events.size
|
||||
|
@ -1,25 +1,30 @@
|
||||
package com.simplemobiletools.calendar.adapters
|
||||
|
||||
import android.view.Menu
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import com.simplemobiletools.calendar.R
|
||||
import com.simplemobiletools.calendar.activities.SimpleActivity
|
||||
import com.simplemobiletools.calendar.dialogs.DeleteEventDialog
|
||||
import com.simplemobiletools.calendar.extensions.config
|
||||
import com.simplemobiletools.calendar.extensions.shareEvents
|
||||
import com.simplemobiletools.calendar.helpers.Formatter
|
||||
import com.simplemobiletools.calendar.interfaces.DeleteEventsListener
|
||||
import com.simplemobiletools.calendar.models.ListEvent
|
||||
import com.simplemobiletools.calendar.models.ListItem
|
||||
import com.simplemobiletools.calendar.models.ListSection
|
||||
import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
|
||||
import com.simplemobiletools.commons.extensions.applyColorFilter
|
||||
import com.simplemobiletools.commons.extensions.beInvisible
|
||||
import com.simplemobiletools.commons.extensions.beInvisibleIf
|
||||
import com.simplemobiletools.commons.views.MyRecyclerView
|
||||
import kotlinx.android.synthetic.main.event_list_item.view.*
|
||||
import java.util.*
|
||||
|
||||
class EventListAdapter(activity: SimpleActivity, val listItems: List<ListItem>, val listener: DeleteEventsListener?, itemClick: (Any) -> Unit) :
|
||||
MyAdapter(activity, itemClick) {
|
||||
class EventListAdapter(activity: SimpleActivity, val listItems: List<ListItem>, val allowLongClick: Boolean, val listener: DeleteEventsListener?,
|
||||
recyclerView: MyRecyclerView, itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, itemClick) {
|
||||
|
||||
private val config = activity.config
|
||||
private val ITEM_EVENT = 0
|
||||
private val ITEM_HEADER = 1
|
||||
|
||||
@ -30,12 +35,18 @@ class EventListAdapter(activity: SimpleActivity, val listItems: List<ListItem>,
|
||||
private val now = (System.currentTimeMillis() / 1000).toInt()
|
||||
private val todayDate = Formatter.getDayTitle(activity, Formatter.getDayCodeFromTS(now))
|
||||
|
||||
init {
|
||||
selectableItemCount = listItems.filter { it is ListEvent }.size
|
||||
}
|
||||
|
||||
override fun getActionMenuId() = R.menu.cab_event_list
|
||||
|
||||
override fun getSelectableItemCount() = listItems.filter { it is ListEvent }.size
|
||||
override fun prepareActionMode(menu: Menu) {}
|
||||
|
||||
override fun markItemSelection(select: Boolean, pos: Int) {
|
||||
itemViews[pos]?.event_item_frame?.isSelected = select
|
||||
override fun prepareItemSelection(view: View) {}
|
||||
|
||||
override fun markItemSelection(select: Boolean, view: View?) {
|
||||
view?.event_item_frame?.isSelected = select
|
||||
}
|
||||
|
||||
override fun actionItemPressed(id: Int) {
|
||||
@ -45,23 +56,21 @@ class EventListAdapter(activity: SimpleActivity, val listItems: List<ListItem>,
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): MyAdapter.ViewHolder {
|
||||
override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): MyRecyclerViewAdapter.ViewHolder {
|
||||
val layoutId = if (viewType == ITEM_EVENT) R.layout.event_list_item else R.layout.event_list_section
|
||||
val view = activity.layoutInflater.inflate(layoutId, parent, false)
|
||||
return createViewHolder(view)
|
||||
return createViewHolder(layoutId, parent)
|
||||
}
|
||||
|
||||
override fun onBindViewHolder(holder: MyAdapter.ViewHolder, position: Int) {
|
||||
override fun onBindViewHolder(holder: MyRecyclerViewAdapter.ViewHolder, position: Int) {
|
||||
val listItem = listItems[position]
|
||||
val view = holder.bindView(listItem) {
|
||||
val view = holder.bindView(listItem, allowLongClick) {
|
||||
if (listItem is ListSection) {
|
||||
setupListSection(it, listItem, position)
|
||||
} else if (listItem is ListEvent) {
|
||||
setupListEvent(it, listItem)
|
||||
}
|
||||
}
|
||||
itemViews.put(position, view)
|
||||
toggleItemSelection(selectedPositions.contains(position), position)
|
||||
bindViewHolder(holder, position, view)
|
||||
}
|
||||
|
||||
override fun getItemCount() = listItems.size
|
||||
|
@ -1,28 +1,40 @@
|
||||
package com.simplemobiletools.calendar.adapters
|
||||
|
||||
import android.view.Menu
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import com.simplemobiletools.calendar.R
|
||||
import com.simplemobiletools.calendar.activities.SimpleActivity
|
||||
import com.simplemobiletools.calendar.extensions.config
|
||||
import com.simplemobiletools.calendar.extensions.dbHelper
|
||||
import com.simplemobiletools.calendar.interfaces.DeleteEventTypesListener
|
||||
import com.simplemobiletools.calendar.models.EventType
|
||||
import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
|
||||
import com.simplemobiletools.commons.dialogs.ConfirmationDialog
|
||||
import com.simplemobiletools.commons.dialogs.RadioGroupDialog
|
||||
import com.simplemobiletools.commons.extensions.setBackgroundWithStroke
|
||||
import com.simplemobiletools.commons.models.RadioItem
|
||||
import com.simplemobiletools.commons.views.MyRecyclerView
|
||||
import kotlinx.android.synthetic.main.item_event_type.view.*
|
||||
import java.util.*
|
||||
|
||||
class EventTypeAdapter(activity: SimpleActivity, val eventTypes: List<EventType>, val listener: DeleteEventTypesListener?, itemClick: (Any) -> Unit) :
|
||||
MyAdapter(activity, itemClick) {
|
||||
class EventTypeAdapter(activity: SimpleActivity, val eventTypes: List<EventType>, val listener: DeleteEventTypesListener?, recyclerView: MyRecyclerView,
|
||||
itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, itemClick) {
|
||||
|
||||
private val config = activity.config
|
||||
|
||||
init {
|
||||
selectableItemCount = eventTypes.size
|
||||
}
|
||||
|
||||
override fun getActionMenuId() = R.menu.cab_event_type
|
||||
|
||||
override fun getSelectableItemCount() = eventTypes.size
|
||||
override fun prepareActionMode(menu: Menu) {}
|
||||
|
||||
override fun markItemSelection(select: Boolean, pos: Int) {
|
||||
itemViews[pos].event_item_frame.isSelected = select
|
||||
override fun prepareItemSelection(view: View) {}
|
||||
|
||||
override fun markItemSelection(select: Boolean, view: View?) {
|
||||
view?.event_item_frame?.isSelected = select
|
||||
}
|
||||
|
||||
override fun actionItemPressed(id: Int) {
|
||||
@ -31,18 +43,14 @@ class EventTypeAdapter(activity: SimpleActivity, val eventTypes: List<EventType>
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): MyAdapter.ViewHolder {
|
||||
val view = activity.layoutInflater.inflate(R.layout.item_event_type, parent, false)
|
||||
return createViewHolder(view)
|
||||
}
|
||||
override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int) = createViewHolder(R.layout.item_event_type, parent)
|
||||
|
||||
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
||||
val eventType = eventTypes[position]
|
||||
val view = holder.bindView(eventType) {
|
||||
setupView(it, eventType)
|
||||
}
|
||||
itemViews.put(position, view)
|
||||
toggleItemSelection(selectedPositions.contains(position), position)
|
||||
bindViewHolder(holder, position, view)
|
||||
}
|
||||
|
||||
override fun getItemCount() = eventTypes.size
|
||||
|
@ -1,198 +0,0 @@
|
||||
package com.simplemobiletools.calendar.adapters
|
||||
|
||||
import android.support.v7.view.ActionMode
|
||||
import android.support.v7.widget.RecyclerView
|
||||
import android.util.SparseArray
|
||||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import com.bignerdranch.android.multiselector.ModalMultiSelectorCallback
|
||||
import com.bignerdranch.android.multiselector.MultiSelector
|
||||
import com.bignerdranch.android.multiselector.SwappingHolder
|
||||
import com.simplemobiletools.calendar.activities.SimpleActivity
|
||||
import com.simplemobiletools.calendar.extensions.config
|
||||
import com.simplemobiletools.commons.interfaces.MyAdapterListener
|
||||
import com.simplemobiletools.commons.views.MyRecyclerView
|
||||
import java.util.*
|
||||
|
||||
abstract class MyAdapter(val activity: SimpleActivity, val itemClick: (Any) -> Unit) : RecyclerView.Adapter<MyAdapter.ViewHolder>() {
|
||||
protected val config = activity.config
|
||||
protected val resources = activity.resources!!
|
||||
protected var primaryColor = config.primaryColor
|
||||
protected var textColor = config.textColor
|
||||
protected val itemViews = SparseArray<View>()
|
||||
protected val selectedPositions = HashSet<Int>()
|
||||
|
||||
private val multiSelector = MultiSelector()
|
||||
private var actMode: ActionMode? = null
|
||||
private var myRecyclerView: MyRecyclerView? = null
|
||||
|
||||
abstract fun getActionMenuId(): Int
|
||||
|
||||
abstract fun getSelectableItemCount(): Int
|
||||
|
||||
abstract fun markItemSelection(select: Boolean, pos: Int)
|
||||
|
||||
abstract fun actionItemPressed(id: Int)
|
||||
|
||||
protected fun toggleItemSelection(select: Boolean, pos: Int) {
|
||||
if (select) {
|
||||
if (itemViews[pos] != null) {
|
||||
selectedPositions.add(pos)
|
||||
}
|
||||
} else {
|
||||
selectedPositions.remove(pos)
|
||||
}
|
||||
|
||||
markItemSelection(select, pos)
|
||||
|
||||
if (selectedPositions.isEmpty()) {
|
||||
finishActMode()
|
||||
return
|
||||
}
|
||||
|
||||
updateTitle(selectedPositions.size)
|
||||
}
|
||||
|
||||
private fun updateTitle(cnt: Int) {
|
||||
actMode?.title = "$cnt / ${getSelectableItemCount()}"
|
||||
actMode?.invalidate()
|
||||
}
|
||||
|
||||
protected fun setDragListenerRecyclerView(recyclerView: MyRecyclerView) {
|
||||
myRecyclerView = recyclerView
|
||||
myRecyclerView!!.setupDragListener(object : MyRecyclerView.MyDragListener {
|
||||
override fun selectItem(position: Int) {
|
||||
selectItemPosition(position)
|
||||
}
|
||||
|
||||
override fun selectRange(initialSelection: Int, lastDraggedIndex: Int, minReached: Int, maxReached: Int) {
|
||||
selectItemRange(initialSelection, lastDraggedIndex, minReached, maxReached)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
fun selectItemPosition(pos: Int) {
|
||||
toggleItemSelection(true, pos)
|
||||
}
|
||||
|
||||
fun selectItemRange(from: Int, to: Int, min: Int, max: Int) {
|
||||
if (from == to) {
|
||||
(min..max).filter { it != from }.forEach { toggleItemSelection(false, it) }
|
||||
return
|
||||
}
|
||||
|
||||
if (to < from) {
|
||||
for (i in to..from) {
|
||||
toggleItemSelection(true, i)
|
||||
}
|
||||
|
||||
if (min > -1 && min < to) {
|
||||
(min until to).filter { it != from }.forEach { toggleItemSelection(false, it) }
|
||||
}
|
||||
|
||||
if (max > -1) {
|
||||
for (i in from + 1..max) {
|
||||
toggleItemSelection(false, i)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (i in from..to) {
|
||||
toggleItemSelection(true, i)
|
||||
}
|
||||
|
||||
if (max > -1 && max > to) {
|
||||
(to + 1..max).filter { it != from }.forEach { toggleItemSelection(false, it) }
|
||||
}
|
||||
|
||||
if (min > -1) {
|
||||
for (i in min until from) {
|
||||
toggleItemSelection(false, i)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun finishActMode() {
|
||||
actMode?.finish()
|
||||
}
|
||||
|
||||
fun updateTextColor(textColor: Int) {
|
||||
this.textColor = textColor
|
||||
notifyDataSetChanged()
|
||||
}
|
||||
|
||||
private val adapterListener = object : MyAdapterListener {
|
||||
override fun toggleItemSelectionAdapter(select: Boolean, position: Int) {
|
||||
toggleItemSelection(select, position)
|
||||
}
|
||||
|
||||
override fun getSelectedPositions() = selectedPositions
|
||||
|
||||
override fun itemLongClicked(position: Int) {
|
||||
myRecyclerView?.setDragSelectActive(position)
|
||||
}
|
||||
}
|
||||
|
||||
private val multiSelectorMode = object : ModalMultiSelectorCallback(multiSelector) {
|
||||
override fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean {
|
||||
actionItemPressed(item.itemId)
|
||||
return true
|
||||
}
|
||||
|
||||
override fun onCreateActionMode(actionMode: ActionMode?, menu: Menu?): Boolean {
|
||||
super.onCreateActionMode(actionMode, menu)
|
||||
actMode = actionMode
|
||||
activity.menuInflater.inflate(getActionMenuId(), menu)
|
||||
return true
|
||||
}
|
||||
|
||||
override fun onPrepareActionMode(actionMode: ActionMode?, menu: Menu) = true
|
||||
|
||||
override fun onDestroyActionMode(actionMode: ActionMode?) {
|
||||
super.onDestroyActionMode(actionMode)
|
||||
selectedPositions.forEach {
|
||||
markItemSelection(false, it)
|
||||
}
|
||||
selectedPositions.clear()
|
||||
actMode = null
|
||||
}
|
||||
}
|
||||
|
||||
protected fun createViewHolder(view: View) = ViewHolder(view, adapterListener, activity, multiSelectorMode, multiSelector, itemClick)
|
||||
|
||||
class ViewHolder(view: View, val adapterListener: MyAdapterListener, val activity: SimpleActivity, val multiSelectorCallback: ModalMultiSelectorCallback,
|
||||
val multiSelector: MultiSelector, val itemClick: (Any) -> (Unit)) : SwappingHolder(view, multiSelector) {
|
||||
fun bindView(any: Any, callback: (itemView: View) -> Unit): View {
|
||||
return itemView.apply {
|
||||
callback(this)
|
||||
|
||||
if (isClickable) {
|
||||
setOnClickListener { viewClicked(any) }
|
||||
setOnLongClickListener { viewLongClicked(); true }
|
||||
} else {
|
||||
setOnClickListener(null)
|
||||
setOnLongClickListener(null)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun viewClicked(any: Any) {
|
||||
if (multiSelector.isSelectable) {
|
||||
val isSelected = adapterListener.getSelectedPositions().contains(adapterPosition)
|
||||
adapterListener.toggleItemSelectionAdapter(!isSelected, adapterPosition)
|
||||
} else {
|
||||
itemClick(any)
|
||||
}
|
||||
}
|
||||
|
||||
private fun viewLongClicked() {
|
||||
if (!multiSelector.isSelectable) {
|
||||
activity.startSupportActionMode(multiSelectorCallback)
|
||||
adapterListener.toggleItemSelectionAdapter(true, adapterPosition)
|
||||
}
|
||||
|
||||
adapterListener.itemLongClicked(adapterPosition)
|
||||
}
|
||||
}
|
||||
}
|
@ -1,16 +1,15 @@
|
||||
package com.simplemobiletools.calendar.extensions
|
||||
|
||||
import android.app.Activity
|
||||
import com.simplemobiletools.calendar.BuildConfig
|
||||
import com.simplemobiletools.calendar.R
|
||||
import com.simplemobiletools.calendar.activities.SimpleActivity
|
||||
import com.simplemobiletools.calendar.helpers.IcsExporter
|
||||
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
||||
import com.simplemobiletools.commons.extensions.getFilePublicUri
|
||||
import com.simplemobiletools.commons.extensions.shareUri
|
||||
import com.simplemobiletools.commons.extensions.toast
|
||||
import java.io.File
|
||||
|
||||
fun SimpleActivity.shareEvents(ids: List<Int>) {
|
||||
fun BaseSimpleActivity.shareEvents(ids: List<Int>) {
|
||||
val file = getTempFile()
|
||||
if (file == null) {
|
||||
toast(R.string.unknown_error_occurred)
|
||||
@ -26,7 +25,7 @@ fun SimpleActivity.shareEvents(ids: List<Int>) {
|
||||
}
|
||||
}
|
||||
|
||||
fun Activity.getTempFile(): File? {
|
||||
fun BaseSimpleActivity.getTempFile(): File? {
|
||||
val folder = File(cacheDir, "events")
|
||||
if (!folder.exists()) {
|
||||
if (!folder.mkdir()) {
|
||||
|
@ -141,6 +141,7 @@ class DayFragment : Fragment(), DBHelper.EventUpdateListener, DeleteEventsListen
|
||||
val eventsAdapter = DayEventsAdapter(activity as SimpleActivity, events, this, mHolder.day_events) {
|
||||
editEvent(it as Event)
|
||||
}
|
||||
eventsAdapter.setupDragListener(true)
|
||||
|
||||
mHolder.day_events.adapter = eventsAdapter
|
||||
DividerItemDecoration(context, DividerItemDecoration.VERTICAL).apply {
|
||||
|
@ -91,7 +91,7 @@ class EventListFragment : Fragment(), DBHelper.EventUpdateListener, DeleteEvents
|
||||
listItems.add(ListEvent(it.id, it.startTS, it.endTS, it.title, it.description, it.getIsAllDay(), it.color, it.location))
|
||||
}
|
||||
|
||||
val eventsAdapter = EventListAdapter(activity as SimpleActivity, listItems, this) {
|
||||
val eventsAdapter = EventListAdapter(activity as SimpleActivity, listItems, true, this, mView.calendar_events_list) {
|
||||
if (it is ListEvent) {
|
||||
editEvent(it)
|
||||
}
|
||||
|
@ -1,10 +1,10 @@
|
||||
package com.simplemobiletools.calendar.helpers
|
||||
|
||||
import com.simplemobiletools.calendar.activities.SimpleActivity
|
||||
import com.simplemobiletools.calendar.extensions.dbHelper
|
||||
import com.simplemobiletools.calendar.extensions.writeLn
|
||||
import com.simplemobiletools.calendar.helpers.IcsExporter.ExportResult.*
|
||||
import com.simplemobiletools.calendar.models.Event
|
||||
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
||||
import com.simplemobiletools.commons.extensions.getFileOutputStream
|
||||
import java.io.BufferedWriter
|
||||
import java.io.File
|
||||
@ -17,7 +17,7 @@ class IcsExporter {
|
||||
private var eventsExported = 0
|
||||
private var eventsFailed = 0
|
||||
|
||||
fun exportEvents(activity: SimpleActivity, file: File, events: ArrayList<Event>, callback: (result: ExportResult) -> Unit) {
|
||||
fun exportEvents(activity: BaseSimpleActivity, file: File, events: ArrayList<Event>, callback: (result: ExportResult) -> Unit) {
|
||||
activity.getFileOutputStream(file) {
|
||||
if (it == null) {
|
||||
callback(EXPORT_FAIL)
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.v7.widget.RecyclerView
|
||||
<com.simplemobiletools.commons.views.MyRecyclerView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/manage_event_types_list"
|
||||
|
@ -6,7 +6,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<android.support.v7.widget.RecyclerView
|
||||
<com.simplemobiletools.commons.views.MyRecyclerView
|
||||
android:id="@+id/calendar_events_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
@ -8,7 +8,7 @@
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_margin="@dimen/activity_margin">
|
||||
|
||||
<android.support.v7.widget.RecyclerView
|
||||
<com.simplemobiletools.commons.views.MyRecyclerView
|
||||
android:id="@+id/config_events_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
Loading…
x
Reference in New Issue
Block a user