mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-02-17 04:10:45 +01:00
store the selected event type at the event
This commit is contained in:
parent
4d57c3df96
commit
db2deaf1dc
@ -33,7 +33,7 @@ android {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile 'com.simplemobiletools:commons:2.5.13'
|
||||
compile 'com.simplemobiletools:commons:2.5.16'
|
||||
compile 'joda-time:joda-time:2.9.1'
|
||||
compile 'com.facebook.stetho:stetho:1.4.1'
|
||||
compile 'com.bignerdranch.android:recyclerview-multiselect:0.2'
|
||||
|
@ -10,6 +10,7 @@ import android.view.WindowManager
|
||||
import com.simplemobiletools.calendar.R
|
||||
import com.simplemobiletools.calendar.dialogs.EventReminderDialog
|
||||
import com.simplemobiletools.calendar.dialogs.EventRepeatIntervalDialog
|
||||
import com.simplemobiletools.calendar.dialogs.SelectEventTypeDialog
|
||||
import com.simplemobiletools.calendar.extensions.config
|
||||
import com.simplemobiletools.calendar.extensions.getAppropriateTheme
|
||||
import com.simplemobiletools.calendar.extensions.getReminderText
|
||||
@ -66,7 +67,7 @@ class EventActivity : SimpleActivity(), DBHelper.EventUpdateListener {
|
||||
updateStartTime()
|
||||
updateEndDate()
|
||||
updateEndTime()
|
||||
updateEventType()
|
||||
updateEventTypeText()
|
||||
|
||||
mWasEndDateSet = event != null
|
||||
mWasEndTimeSet = event != null
|
||||
@ -84,7 +85,7 @@ class EventActivity : SimpleActivity(), DBHelper.EventUpdateListener {
|
||||
event_reminder_2.setOnClickListener { showReminder2Dialog() }
|
||||
event_reminder_3.setOnClickListener { showReminder3Dialog() }
|
||||
|
||||
event_type.setOnClickListener { }
|
||||
event_type.setOnClickListener { showEventTypeDialog() }
|
||||
|
||||
if (mEvent.flags and FLAG_ALL_DAY != 0)
|
||||
event_all_day.toggle()
|
||||
@ -179,6 +180,13 @@ class EventActivity : SimpleActivity(), DBHelper.EventUpdateListener {
|
||||
}
|
||||
}
|
||||
|
||||
private fun showEventTypeDialog() {
|
||||
SelectEventTypeDialog(this, mEventType) {
|
||||
mEventType = it
|
||||
updateEventTypeText()
|
||||
}
|
||||
}
|
||||
|
||||
private fun checkReminderTexts() {
|
||||
updateReminder1Text()
|
||||
updateReminder2Text()
|
||||
@ -224,7 +232,7 @@ class EventActivity : SimpleActivity(), DBHelper.EventUpdateListener {
|
||||
event_repetition.text = getRepetitionToString(mRepeatInterval)
|
||||
}
|
||||
|
||||
private fun updateEventType() {
|
||||
private fun updateEventTypeText() {
|
||||
event_type.text = DBHelper.newInstance(applicationContext).getEventTypeTitle(mEventType)
|
||||
}
|
||||
|
||||
@ -297,6 +305,7 @@ class EventActivity : SimpleActivity(), DBHelper.EventUpdateListener {
|
||||
repeatInterval = mRepeatInterval
|
||||
flags = if (event_all_day.isChecked) (mEvent.flags or FLAG_ALL_DAY) else (mEvent.flags.removeFlag(FLAG_ALL_DAY))
|
||||
repeatLimit = if (repeatInterval == 0) 0 else mRepeatLimit
|
||||
eventType = mEventType
|
||||
}
|
||||
|
||||
if (mEvent.id == 0) {
|
||||
|
@ -0,0 +1,53 @@
|
||||
package com.simplemobiletools.calendar.dialogs
|
||||
|
||||
import android.app.Activity
|
||||
import android.support.v7.app.AlertDialog
|
||||
import android.view.ViewGroup
|
||||
import android.widget.RadioButton
|
||||
import android.widget.RadioGroup
|
||||
import com.simplemobiletools.calendar.R
|
||||
import com.simplemobiletools.calendar.helpers.DBHelper
|
||||
import com.simplemobiletools.calendar.models.EventType
|
||||
import com.simplemobiletools.commons.extensions.setupDialogStuff
|
||||
import kotlinx.android.synthetic.main.dialog_radio_group.view.*
|
||||
import java.util.*
|
||||
|
||||
class SelectEventTypeDialog(val activity: Activity, val currEventType: Int, val callback: (checkedId: Int) -> Unit) : RadioGroup.OnCheckedChangeListener {
|
||||
val dialog: AlertDialog?
|
||||
var wasInit = false
|
||||
var eventTypes = ArrayList<EventType>()
|
||||
|
||||
init {
|
||||
val view = activity.layoutInflater.inflate(R.layout.dialog_radio_group, null)
|
||||
val radioGroup = view.dialog_radio_group
|
||||
radioGroup.setOnCheckedChangeListener(this)
|
||||
|
||||
DBHelper.newInstance(activity).getEventTypes {
|
||||
activity.runOnUiThread {
|
||||
eventTypes = it
|
||||
eventTypes.forEach {
|
||||
val radioButton = activity.layoutInflater.inflate(R.layout.radio_button, null) as RadioButton
|
||||
radioButton.apply {
|
||||
text = it.title
|
||||
isChecked = it.id == currEventType
|
||||
id = it.id
|
||||
}
|
||||
radioGroup.addView(radioButton, RadioGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT))
|
||||
}
|
||||
wasInit = true
|
||||
}
|
||||
}
|
||||
|
||||
dialog = AlertDialog.Builder(activity)
|
||||
.create().apply {
|
||||
activity.setupDialogStuff(view, this, R.string.select_event_type)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCheckedChanged(group: RadioGroup, checkedId: Int) {
|
||||
if (wasInit) {
|
||||
callback.invoke(checkedId)
|
||||
dialog?.dismiss()
|
||||
}
|
||||
}
|
||||
}
|
@ -64,7 +64,7 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
|
||||
override fun onCreate(db: SQLiteDatabase) {
|
||||
db.execSQL("CREATE TABLE $MAIN_TABLE_NAME ($COL_ID INTEGER PRIMARY KEY, $COL_START_TS INTEGER, $COL_END_TS INTEGER, $COL_TITLE TEXT, " +
|
||||
"$COL_DESCRIPTION TEXT, $COL_REMINDER_MINUTES INTEGER, $COL_REMINDER_MINUTES_2 INTEGER, $COL_REMINDER_MINUTES_3 INTEGER, " +
|
||||
"$COL_IMPORT_ID TEXT, $COL_FLAGS INTEGER, $COL_EVENT_TYPE INTEGER)")
|
||||
"$COL_IMPORT_ID TEXT, $COL_FLAGS INTEGER, $COL_EVENT_TYPE INTEGER NOT NULL DEFAULT $REGULAR_EVENT_ID)")
|
||||
|
||||
createMetaTable(db)
|
||||
createTypesTable(db)
|
||||
@ -95,7 +95,7 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
|
||||
|
||||
if (oldVersion < 7) {
|
||||
createTypesTable(db)
|
||||
db.execSQL("ALTER TABLE $MAIN_TABLE_NAME ADD COLUMN $COL_EVENT_TYPE INTEGER NOT NULL DEFAULT 0")
|
||||
db.execSQL("ALTER TABLE $MAIN_TABLE_NAME ADD COLUMN $COL_EVENT_TYPE INTEGER NOT NULL DEFAULT $REGULAR_EVENT_ID")
|
||||
}
|
||||
}
|
||||
|
||||
@ -164,6 +164,7 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
|
||||
put(COL_REMINDER_MINUTES_3, event.reminder3Minutes)
|
||||
put(COL_IMPORT_ID, event.importId)
|
||||
put(COL_FLAGS, event.flags)
|
||||
put(COL_EVENT_TYPE, event.eventType)
|
||||
}
|
||||
}
|
||||
|
||||
@ -396,13 +397,13 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
|
||||
return events
|
||||
}
|
||||
|
||||
fun getEventTypes(callback: (types: List<EventType>) -> Unit) {
|
||||
fun getEventTypes(callback: (types: ArrayList<EventType>) -> Unit) {
|
||||
Thread({
|
||||
fetchEventTypes(callback)
|
||||
}).start()
|
||||
}
|
||||
|
||||
fun fetchEventTypes(callback: (types: List<EventType>) -> Unit) {
|
||||
fun fetchEventTypes(callback: (types: ArrayList<EventType>) -> Unit) {
|
||||
val eventTypes = ArrayList<EventType>(3)
|
||||
val cols = arrayOf(COL_TYPE_ID, COL_TYPE_TITLE, COL_TYPE_COLOR)
|
||||
var cursor: Cursor? = null
|
||||
|
@ -88,6 +88,7 @@
|
||||
<string name="color">Color</string>
|
||||
<string name="regular_event">Regular event</string>
|
||||
<string name="cannot_delete_default_type">Default event type cannot be deleted</string>
|
||||
<string name="select_event_type">Select an event type</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="manage_event_types">Manage event types</string>
|
||||
|
@ -88,6 +88,7 @@
|
||||
<string name="color">Color</string>
|
||||
<string name="regular_event">Regular event</string>
|
||||
<string name="cannot_delete_default_type">Default event type cannot be deleted</string>
|
||||
<string name="select_event_type">Select an event type</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="manage_event_types">Manage event types</string>
|
||||
|
@ -88,6 +88,7 @@
|
||||
<string name="color">Color</string>
|
||||
<string name="regular_event">Regular event</string>
|
||||
<string name="cannot_delete_default_type">Default event type cannot be deleted</string>
|
||||
<string name="select_event_type">Select an event type</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="manage_event_types">Manage event types</string>
|
||||
|
@ -88,6 +88,7 @@
|
||||
<string name="color">Color</string>
|
||||
<string name="regular_event">Regular event</string>
|
||||
<string name="cannot_delete_default_type">Default event type cannot be deleted</string>
|
||||
<string name="select_event_type">Select an event type</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="manage_event_types">Manage event types</string>
|
||||
|
@ -88,6 +88,7 @@
|
||||
<string name="color">Color</string>
|
||||
<string name="regular_event">Regular event</string>
|
||||
<string name="cannot_delete_default_type">Default event type cannot be deleted</string>
|
||||
<string name="select_event_type">Select an event type</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="manage_event_types">Manage event types</string>
|
||||
|
@ -88,6 +88,7 @@
|
||||
<string name="color">Color</string>
|
||||
<string name="regular_event">Regular event</string>
|
||||
<string name="cannot_delete_default_type">Default event type cannot be deleted</string>
|
||||
<string name="select_event_type">Select an event type</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="manage_event_types">Manage event types</string>
|
||||
|
@ -88,6 +88,7 @@
|
||||
<string name="color">Color</string>
|
||||
<string name="regular_event">Regular event</string>
|
||||
<string name="cannot_delete_default_type">Default event type cannot be deleted</string>
|
||||
<string name="select_event_type">Select an event type</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="manage_event_types">Manage event types</string>
|
||||
|
@ -88,6 +88,7 @@
|
||||
<string name="color">Color</string>
|
||||
<string name="regular_event">Regular event</string>
|
||||
<string name="cannot_delete_default_type">Default event type cannot be deleted</string>
|
||||
<string name="select_event_type">Select an event type</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="manage_event_types">Manage event types</string>
|
||||
|
@ -88,6 +88,7 @@
|
||||
<string name="color">Color</string>
|
||||
<string name="regular_event">Regular event</string>
|
||||
<string name="cannot_delete_default_type">Default event type cannot be deleted</string>
|
||||
<string name="select_event_type">Select an event type</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="manage_event_types">Manage event types</string>
|
||||
|
@ -88,6 +88,7 @@
|
||||
<string name="color">Color</string>
|
||||
<string name="regular_event">Regular event</string>
|
||||
<string name="cannot_delete_default_type">Default event type cannot be deleted</string>
|
||||
<string name="select_event_type">Select an event type</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="manage_event_types">Manage event types</string>
|
||||
|
@ -88,6 +88,7 @@
|
||||
<string name="color">Farba</string>
|
||||
<string name="regular_event">Bežná udalosť</string>
|
||||
<string name="cannot_delete_default_type">Predvolený typ nie je možné vymazať</string>
|
||||
<string name="select_event_type">Zvoľte typ udalosti</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="manage_event_types">Manage event types</string>
|
||||
|
@ -88,6 +88,7 @@
|
||||
<string name="color">Color</string>
|
||||
<string name="regular_event">Regular event</string>
|
||||
<string name="cannot_delete_default_type">Default event type cannot be deleted</string>
|
||||
<string name="select_event_type">Select an event type</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="manage_event_types">Manage event types</string>
|
||||
|
@ -88,6 +88,7 @@
|
||||
<string name="color">Color</string>
|
||||
<string name="regular_event">Regular event</string>
|
||||
<string name="cannot_delete_default_type">Default event type cannot be deleted</string>
|
||||
<string name="select_event_type">Select an event type</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="manage_event_types">Manage event types</string>
|
||||
|
Loading…
x
Reference in New Issue
Block a user