store the selected event type at the event

This commit is contained in:
tibbi 2017-02-11 21:03:17 +01:00
parent 4d57c3df96
commit db2deaf1dc
17 changed files with 84 additions and 8 deletions

View File

@ -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'

View File

@ -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) {

View File

@ -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()
}
}
}

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>