From fda34a0df4fe785beab4302f3f661d86199a6858 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 7 Feb 2017 23:19:58 +0100 Subject: [PATCH] remove the UNDO function from event list too --- .../calendar/activities/MainActivity.kt | 52 ++----------------- .../calendar/adapters/DayEventsAdapter.kt | 9 ++-- .../calendar/adapters/EventListAdapter.kt | 9 ++-- .../calendar/fragments/DayFragment.kt | 5 +- .../calendar/fragments/EventListFragment.kt | 52 ++++--------------- .../calendar/fragments/WeekFragment.kt | 2 +- .../calendar/helpers/DBHelper.kt | 1 - .../interfaces/DeleteEventsListener.kt | 7 +++ app/src/main/res/values-de/strings.xml | 1 - app/src/main/res/values-es-rES/strings.xml | 1 - app/src/main/res/values-fr/strings.xml | 1 - app/src/main/res/values-hi-rIN/strings.xml | 1 - app/src/main/res/values-hu/strings.xml | 1 - app/src/main/res/values-it/strings.xml | 1 - app/src/main/res/values-iw/strings.xml | 1 - app/src/main/res/values-ja/strings.xml | 1 - app/src/main/res/values-pt-rPT/strings.xml | 1 - app/src/main/res/values-ru/strings.xml | 1 - app/src/main/res/values-sv/strings.xml | 1 - app/src/main/res/values/strings.xml | 1 - 20 files changed, 31 insertions(+), 118 deletions(-) create mode 100644 app/src/main/kotlin/com/simplemobiletools/calendar/interfaces/DeleteEventsListener.kt diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/MainActivity.kt index 78c9f9ab0..843373403 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/MainActivity.kt @@ -3,14 +3,11 @@ package com.simplemobiletools.calendar.activities import android.Manifest import android.content.Intent import android.content.pm.PackageManager -import android.graphics.Color import android.os.Bundle -import android.support.design.widget.Snackbar import android.support.v4.app.ActivityCompat import android.support.v4.view.ViewPager import android.view.Menu import android.view.MenuItem -import android.view.View import android.widget.TextView import com.simplemobiletools.calendar.BuildConfig import com.simplemobiletools.calendar.R @@ -27,6 +24,7 @@ import com.simplemobiletools.calendar.fragments.EventListFragment import com.simplemobiletools.calendar.fragments.WeekFragment import com.simplemobiletools.calendar.helpers.* import com.simplemobiletools.calendar.helpers.Formatter +import com.simplemobiletools.calendar.interfaces.NavigationListener import com.simplemobiletools.calendar.views.MyScrollView import com.simplemobiletools.commons.dialogs.FilePickerDialog import com.simplemobiletools.commons.extensions.* @@ -39,15 +37,13 @@ import org.joda.time.DateTime import org.joda.time.DateTimeZone import java.util.* -class MainActivity : SimpleActivity(), EventListFragment.DeleteListener { +class MainActivity : SimpleActivity(), NavigationListener { private val PREFILLED_MONTHS = 73 private val PREFILLED_YEARS = 21 private val PREFILLED_WEEKS = 41 private val STORAGE_PERMISSION = 1 private var mIsMonthSelected = false - private var mSnackbar: Snackbar? = null - private var mEventListFragment: EventListFragment? = null private var mStoredTextColor = 0 private var mStoredBackgroundColor = 0 private var mStoredPrimaryColor = 0 @@ -83,7 +79,6 @@ class MainActivity : SimpleActivity(), EventListFragment.DeleteListener { override fun onPause() { super.onPause() - checkDeleteEvents() mStoredTextColor = config.textColor mStoredIsSundayFirst = config.isSundayFirst mStoredBackgroundColor = config.backgroundColor @@ -326,37 +321,12 @@ class MainActivity : SimpleActivity(), EventListFragment.DeleteListener { return years } - fun checkDeleteEvents() { - if (mSnackbar != null && mSnackbar!!.isShown) { - deleteEvents() - } else { - undoDeletion() - } - } - - private fun deleteEvents() { - mSnackbar!!.dismiss() - mEventListFragment?.deleteEvents() - } - - private val undoDeletion = View.OnClickListener { undoDeletion() } - - private fun undoDeletion() { - if (mSnackbar != null) { - mSnackbar!!.dismiss() - mEventListFragment?.undoDeletion() - } - } - private fun fillEventsList() { main_view_pager.adapter = null main_view_pager.beGone() main_weekly_scrollview.beGone() calendar_event_list_holder.beVisible() - - if (mEventListFragment == null) - mEventListFragment = EventListFragment() - supportFragmentManager.beginTransaction().replace(R.id.calendar_event_list_holder, mEventListFragment, "").commit() + supportFragmentManager.beginTransaction().replace(R.id.calendar_event_list_holder, EventListFragment(), "").commit() } override fun goLeft() { @@ -382,22 +352,6 @@ class MainActivity : SimpleActivity(), EventListFragment.DeleteListener { } } - override fun notifyDeletion(cnt: Int) { - val msg = resources.getQuantityString(R.plurals.events_deleted, cnt, cnt) - mSnackbar = Snackbar.make(calendar_coordinator, msg, Snackbar.LENGTH_LONG) - mSnackbar!!.apply { - setCallback(object : Snackbar.Callback() { - override fun onDismissed(snackbar: Snackbar?, event: Int) { - super.onDismissed(snackbar, event) - mEventListFragment?.deleteEvents() - } - }) - setAction(resources.getString(R.string.undo), undoDeletion) - setActionTextColor(Color.WHITE) - show() - } - } - private fun checkWhatsNewDialog() { arrayListOf().apply { add(Release(39, R.string.release_39)) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/adapters/DayEventsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/adapters/DayEventsAdapter.kt index bbac22e76..316cf2482 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/adapters/DayEventsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/adapters/DayEventsAdapter.kt @@ -10,6 +10,7 @@ import com.simplemobiletools.calendar.R import com.simplemobiletools.calendar.activities.SimpleActivity import com.simplemobiletools.calendar.extensions.config import com.simplemobiletools.calendar.helpers.Formatter +import com.simplemobiletools.calendar.interfaces.DeleteEventsListener import com.simplemobiletools.calendar.models.Event import com.simplemobiletools.commons.dialogs.ConfirmationDialog import com.simplemobiletools.commons.extensions.beInvisible @@ -17,7 +18,7 @@ import com.simplemobiletools.commons.extensions.beInvisibleIf import kotlinx.android.synthetic.main.event_item_day_view.view.* import java.util.* -class DayEventsAdapter(val activity: SimpleActivity, val mItems: List, val listener: ItemOperationsListener?, val itemClick: (Event) -> Unit) : +class DayEventsAdapter(val activity: SimpleActivity, val mItems: List, val listener: DeleteEventsListener?, val itemClick: (Event) -> Unit) : RecyclerView.Adapter() { val multiSelector = MultiSelector() val views = ArrayList() @@ -81,7 +82,7 @@ class DayEventsAdapter(val activity: SimpleActivity, val mItems: List, va val selections = multiSelector.selectedPositions val ids = ArrayList(selections.size) selections.forEach { ids.add(mItems[it].id) } - listener?.deleteIds(ids) + listener?.deleteEvents(ids) } override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): ViewHolder { @@ -162,8 +163,4 @@ class DayEventsAdapter(val activity: SimpleActivity, val mItems: List, va } } } - - interface ItemOperationsListener { - fun deleteIds(ids: ArrayList) - } } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/adapters/EventListAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/adapters/EventListAdapter.kt index 95703bea1..cad954527 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/adapters/EventListAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/adapters/EventListAdapter.kt @@ -11,6 +11,7 @@ import com.simplemobiletools.calendar.R import com.simplemobiletools.calendar.activities.SimpleActivity import com.simplemobiletools.calendar.extensions.config 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 @@ -20,7 +21,7 @@ import com.simplemobiletools.commons.extensions.beInvisibleIf import kotlinx.android.synthetic.main.event_list_item.view.* import java.util.* -class EventListAdapter(val activity: SimpleActivity, val mItems: List, val listener: EventListAdapter.ItemOperationsListener?, val itemClick: (Int) -> Unit) : +class EventListAdapter(val activity: SimpleActivity, val mItems: List, val listener: DeleteEventsListener?, val itemClick: (Int) -> Unit) : RecyclerView.Adapter() { val multiSelector = MultiSelector() val views = ArrayList() @@ -97,7 +98,7 @@ class EventListAdapter(val activity: SimpleActivity, val mItems: List, val selections = multiSelector.selectedPositions val ids = ArrayList(selections.size) selections.forEach { ids.add((mItems[it] as ListEvent).id) } - listener?.prepareForDeleting(ids) + listener?.deleteEvents(ids) } override fun getItemViewType(position: Int) = if (mItems[position] is ListEvent) ITEM_EVENT else ITEM_HEADER @@ -202,8 +203,4 @@ class EventListAdapter(val activity: SimpleActivity, val mItems: List, return itemView } } - - interface ItemOperationsListener { - fun prepareForDeleting(ids: ArrayList) - } } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/DayFragment.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/DayFragment.kt index 6242fe09a..266ab2b0b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/DayFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/DayFragment.kt @@ -20,6 +20,7 @@ import com.simplemobiletools.calendar.extensions.config import com.simplemobiletools.calendar.extensions.getAppropriateTheme import com.simplemobiletools.calendar.helpers.* import com.simplemobiletools.calendar.helpers.Formatter +import com.simplemobiletools.calendar.interfaces.DeleteEventsListener import com.simplemobiletools.calendar.interfaces.NavigationListener import com.simplemobiletools.calendar.models.Event import com.simplemobiletools.commons.extensions.setupDialogStuff @@ -30,7 +31,7 @@ import org.joda.time.DateTime import java.util.* import kotlin.comparisons.compareBy -class DayFragment : Fragment(), DBHelper.EventUpdateListener, DBHelper.GetEventsListener, DayEventsAdapter.ItemOperationsListener { +class DayFragment : Fragment(), DBHelper.EventUpdateListener, DBHelper.GetEventsListener, DeleteEventsListener { private var mTextColor = 0 private var mDayCode = "" private var mListener: NavigationListener? = null @@ -136,7 +137,7 @@ class DayFragment : Fragment(), DBHelper.EventUpdateListener, DBHelper.GetEvents } } - override fun deleteIds(ids: ArrayList) { + override fun deleteEvents(ids: ArrayList) { val eventIDs = Array(ids.size, { i -> (ids[i].toString()) }) DBHelper(activity.applicationContext, this).deleteEvents(eventIDs) } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/EventListFragment.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/EventListFragment.kt index 33b9d9606..453c943b2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/EventListFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/EventListFragment.kt @@ -8,14 +8,13 @@ import android.view.View import android.view.ViewGroup import com.simplemobiletools.calendar.R import com.simplemobiletools.calendar.activities.EventActivity -import com.simplemobiletools.calendar.activities.MainActivity import com.simplemobiletools.calendar.activities.SimpleActivity import com.simplemobiletools.calendar.adapters.EventListAdapter import com.simplemobiletools.calendar.extensions.seconds import com.simplemobiletools.calendar.helpers.DBHelper import com.simplemobiletools.calendar.helpers.EVENT_ID import com.simplemobiletools.calendar.helpers.Formatter -import com.simplemobiletools.calendar.interfaces.NavigationListener +import com.simplemobiletools.calendar.interfaces.DeleteEventsListener import com.simplemobiletools.calendar.models.Event import com.simplemobiletools.calendar.models.ListEvent import com.simplemobiletools.calendar.models.ListItem @@ -27,17 +26,15 @@ import org.joda.time.DateTime import java.util.* import kotlin.comparisons.compareBy -class EventListFragment : Fragment(), DBHelper.GetEventsListener, DBHelper.EventUpdateListener, EventListAdapter.ItemOperationsListener { - var mAllEvents: MutableList? = null +class EventListFragment : Fragment(), DBHelper.GetEventsListener, DBHelper.EventUpdateListener, DeleteEventsListener { + var mAllEvents: MutableList = ArrayList() var prevEventsHash = 0 - lateinit var mToBeDeleted: MutableList lateinit var mView: View override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { mView = inflater!!.inflate(R.layout.fragment_event_list, container, false) val placeholderText = String.format(getString(R.string.two_string_placeholder), "${getString(R.string.no_upcoming_events)}\n", getString(R.string.add_some_events)) mView.calendar_empty_list_placeholder.text = placeholderText - mToBeDeleted = ArrayList() return mView } @@ -54,13 +51,12 @@ class EventListFragment : Fragment(), DBHelper.GetEventsListener, DBHelper.Event override fun gotEvents(events: MutableList) { val hash = events.hashCode() - if (prevEventsHash == hash) + if (prevEventsHash == hash || context == null) return prevEventsHash = hash - val filtered = getEventsToShow(events) - val listItems = ArrayList(filtered.size) - val sorted = filtered.sortedWith(compareBy({ it.startTS }, { it.endTS }, { it.title }, { it.description })) + val listItems = ArrayList(events.size) + val sorted = events.sortedWith(compareBy({ it.startTS }, { it.endTS }, { it.title }, { it.description })) val sublist = sorted.subList(0, Math.min(sorted.size, 100)) var prevCode = "" sublist.forEach { @@ -75,7 +71,6 @@ class EventListFragment : Fragment(), DBHelper.GetEventsListener, DBHelper.Event mAllEvents = events val eventsAdapter = EventListAdapter(activity as SimpleActivity, listItems, this) { - (activity as MainActivity).checkDeleteEvents() editEvent(it) } activity?.runOnUiThread { @@ -87,16 +82,8 @@ class EventListFragment : Fragment(), DBHelper.GetEventsListener, DBHelper.Event } private fun checkPlaceholderVisibility() { - val events = getEventsToShow(mAllEvents) - mView.calendar_empty_list_placeholder.beVisibleIf(events.isEmpty()) - mView.calendar_events_list.beGoneIf(events.isEmpty()) - } - - private fun getEventsToShow(events: MutableList?) = events?.filter { !mToBeDeleted.contains(it.id) } ?: ArrayList() - - override fun prepareForDeleting(ids: ArrayList) { - mToBeDeleted = ids - notifyDeletion() + mView.calendar_empty_list_placeholder.beVisibleIf(mAllEvents.isEmpty()) + mView.calendar_events_list.beGoneIf(mAllEvents.isEmpty()) } private fun editEvent(eventId: Int) { @@ -106,23 +93,9 @@ class EventListFragment : Fragment(), DBHelper.GetEventsListener, DBHelper.Event } } - private fun notifyDeletion() { - (activity as MainActivity).notifyDeletion(mToBeDeleted.size) - checkEvents() - } - - fun deleteEvents() { - if (activity == null) - return - - val eventIDs = Array(mToBeDeleted.size, { i -> (mToBeDeleted[i].toString()) }) + override fun deleteEvents(ids: ArrayList) { + val eventIDs = Array(ids.size, { i -> (ids[i].toString()) }) DBHelper(activity.applicationContext, this).deleteEvents(eventIDs) - mToBeDeleted.clear() - } - - fun undoDeletion() { - mToBeDeleted.clear() - checkEvents() } override fun eventInserted(event: Event) { @@ -134,10 +107,7 @@ class EventListFragment : Fragment(), DBHelper.GetEventsListener, DBHelper.Event } override fun eventsDeleted(cnt: Int) { + checkEvents() checkPlaceholderVisibility() } - - interface DeleteListener : NavigationListener { - fun notifyDeletion(cnt: Int) - } } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/WeekFragment.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/WeekFragment.kt index 8bd1970ca..4c7cbda1a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/WeekFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/WeekFragment.kt @@ -285,7 +285,7 @@ class WeekFragment : Fragment(), WeeklyCalendar { mView.week_top_holder.viewTreeObserver.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener { override fun onGlobalLayout() { mView.week_top_holder.viewTreeObserver.removeOnGlobalLayoutListener(this) - if (isFragmentVisible) { + if (isFragmentVisible && activity != null) { (activity as MainActivity).updateHoursTopMargin(mView.week_top_holder.height) } } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/DBHelper.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/DBHelper.kt index f33869023..f816f1f10 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/DBHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/DBHelper.kt @@ -220,7 +220,6 @@ class DBHelper(context: Context) : SQLiteOpenHelper(context, DB_NAME, null, DB_V val selectionArgs = arrayOf(toTS.toString(), fromTS.toString()) val cursor = getEventsCursor(selection, selectionArgs) events.addAll(fillEvents(cursor)) - callback?.gotEvents(events) } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/interfaces/DeleteEventsListener.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/interfaces/DeleteEventsListener.kt new file mode 100644 index 000000000..db59a4ddd --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/interfaces/DeleteEventsListener.kt @@ -0,0 +1,7 @@ +package com.simplemobiletools.calendar.interfaces + +import java.util.* + +interface DeleteEventsListener { + fun deleteEvents(ids: ArrayList) +} diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 28819a49b..7f437b250 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -1,7 +1,6 @@ Schlichter Kalender Kalender - Rückgängig Ansicht ändern Wochenansicht Monatsansicht diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index cd280a2eb..beb6c685a 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -1,7 +1,6 @@ Calendario simple Calendario - Deshacer Cambiar vista Weekly view Vista mensual diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 21bdbc910..99e5a6e3e 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -1,7 +1,6 @@ Simple Calendar Calendrier - Annuler Changer de vue Weekly view Vue mensuelle diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index 7bf2716f7..e904de9e7 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -1,7 +1,6 @@ सरल कैलेंडर कैलेंडर - पूर्ववत करें दृश्य बदले Weekly view मासिक दृश्य diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index a0ad6a8d2..eaec492b5 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -1,7 +1,6 @@ Egyszerű naptár Naptár - Visszavonás Nézet megváltoztatása Weekly view Havi nézet diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 03278be1a..5fde2fde7 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -1,7 +1,6 @@ Simple Calendar Calendar - Annulla Change view Weekly view Monthly view diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index 6a704a6a5..afae60979 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -1,7 +1,6 @@ לוח שנה פשוט לוח שנה - בטל פעולה אחרונה שינוי תצפית תצפית שבועית תצפית חודשית diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index b02e9e4dd..ae9fd5802 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -1,7 +1,6 @@  シンプル カレンダー カレンダー - 元に戻す ビューの変更 Weekly view 月ビュー diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index b4e2263a5..b9bec2660 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -1,7 +1,6 @@ Simple Calendar Calendário - Desfazer Mudar vista Vista semanal Vista mensal diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index b92e8ac88..9eb27c998 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -1,7 +1,6 @@ Simple Calendar Календарь - Отменить Отображение На неделю На месяц diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index ce4e240df..c1e606c16 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -1,7 +1,6 @@ Simple Calendar Kalender - Ångra Ändra vy Veckovy Månadsvy diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 63f24ce19..b660b98ac 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,7 +1,6 @@ Simple Calendar Calendar - Undo Change view Weekly view Monthly view