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 { dependencies {
compile 'com.simplemobiletools:commons:2.5.13' compile 'com.simplemobiletools:commons:2.5.16'
compile 'joda-time:joda-time:2.9.1' compile 'joda-time:joda-time:2.9.1'
compile 'com.facebook.stetho:stetho:1.4.1' compile 'com.facebook.stetho:stetho:1.4.1'
compile 'com.bignerdranch.android:recyclerview-multiselect:0.2' 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.R
import com.simplemobiletools.calendar.dialogs.EventReminderDialog import com.simplemobiletools.calendar.dialogs.EventReminderDialog
import com.simplemobiletools.calendar.dialogs.EventRepeatIntervalDialog import com.simplemobiletools.calendar.dialogs.EventRepeatIntervalDialog
import com.simplemobiletools.calendar.dialogs.SelectEventTypeDialog
import com.simplemobiletools.calendar.extensions.config import com.simplemobiletools.calendar.extensions.config
import com.simplemobiletools.calendar.extensions.getAppropriateTheme import com.simplemobiletools.calendar.extensions.getAppropriateTheme
import com.simplemobiletools.calendar.extensions.getReminderText import com.simplemobiletools.calendar.extensions.getReminderText
@@ -66,7 +67,7 @@ class EventActivity : SimpleActivity(), DBHelper.EventUpdateListener {
updateStartTime() updateStartTime()
updateEndDate() updateEndDate()
updateEndTime() updateEndTime()
updateEventType() updateEventTypeText()
mWasEndDateSet = event != null mWasEndDateSet = event != null
mWasEndTimeSet = event != null mWasEndTimeSet = event != null
@@ -84,7 +85,7 @@ class EventActivity : SimpleActivity(), DBHelper.EventUpdateListener {
event_reminder_2.setOnClickListener { showReminder2Dialog() } event_reminder_2.setOnClickListener { showReminder2Dialog() }
event_reminder_3.setOnClickListener { showReminder3Dialog() } event_reminder_3.setOnClickListener { showReminder3Dialog() }
event_type.setOnClickListener { } event_type.setOnClickListener { showEventTypeDialog() }
if (mEvent.flags and FLAG_ALL_DAY != 0) if (mEvent.flags and FLAG_ALL_DAY != 0)
event_all_day.toggle() 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() { private fun checkReminderTexts() {
updateReminder1Text() updateReminder1Text()
updateReminder2Text() updateReminder2Text()
@@ -224,7 +232,7 @@ class EventActivity : SimpleActivity(), DBHelper.EventUpdateListener {
event_repetition.text = getRepetitionToString(mRepeatInterval) event_repetition.text = getRepetitionToString(mRepeatInterval)
} }
private fun updateEventType() { private fun updateEventTypeText() {
event_type.text = DBHelper.newInstance(applicationContext).getEventTypeTitle(mEventType) event_type.text = DBHelper.newInstance(applicationContext).getEventTypeTitle(mEventType)
} }
@@ -297,6 +305,7 @@ class EventActivity : SimpleActivity(), DBHelper.EventUpdateListener {
repeatInterval = mRepeatInterval repeatInterval = mRepeatInterval
flags = if (event_all_day.isChecked) (mEvent.flags or FLAG_ALL_DAY) else (mEvent.flags.removeFlag(FLAG_ALL_DAY)) 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 repeatLimit = if (repeatInterval == 0) 0 else mRepeatLimit
eventType = mEventType
} }
if (mEvent.id == 0) { 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) { 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, " + 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_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) createMetaTable(db)
createTypesTable(db) createTypesTable(db)
@@ -95,7 +95,7 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
if (oldVersion < 7) { if (oldVersion < 7) {
createTypesTable(db) 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_REMINDER_MINUTES_3, event.reminder3Minutes)
put(COL_IMPORT_ID, event.importId) put(COL_IMPORT_ID, event.importId)
put(COL_FLAGS, event.flags) 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 return events
} }
fun getEventTypes(callback: (types: List<EventType>) -> Unit) { fun getEventTypes(callback: (types: ArrayList<EventType>) -> Unit) {
Thread({ Thread({
fetchEventTypes(callback) fetchEventTypes(callback)
}).start() }).start()
} }
fun fetchEventTypes(callback: (types: List<EventType>) -> Unit) { fun fetchEventTypes(callback: (types: ArrayList<EventType>) -> Unit) {
val eventTypes = ArrayList<EventType>(3) val eventTypes = ArrayList<EventType>(3)
val cols = arrayOf(COL_TYPE_ID, COL_TYPE_TITLE, COL_TYPE_COLOR) val cols = arrayOf(COL_TYPE_ID, COL_TYPE_TITLE, COL_TYPE_COLOR)
var cursor: Cursor? = null var cursor: Cursor? = null

View File

@@ -88,6 +88,7 @@
<string name="color">Color</string> <string name="color">Color</string>
<string name="regular_event">Regular event</string> <string name="regular_event">Regular event</string>
<string name="cannot_delete_default_type">Default event type cannot be deleted</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 --> <!-- Settings -->
<string name="manage_event_types">Manage event types</string> <string name="manage_event_types">Manage event types</string>

View File

@@ -88,6 +88,7 @@
<string name="color">Color</string> <string name="color">Color</string>
<string name="regular_event">Regular event</string> <string name="regular_event">Regular event</string>
<string name="cannot_delete_default_type">Default event type cannot be deleted</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 --> <!-- Settings -->
<string name="manage_event_types">Manage event types</string> <string name="manage_event_types">Manage event types</string>

View File

@@ -88,6 +88,7 @@
<string name="color">Color</string> <string name="color">Color</string>
<string name="regular_event">Regular event</string> <string name="regular_event">Regular event</string>
<string name="cannot_delete_default_type">Default event type cannot be deleted</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 --> <!-- Settings -->
<string name="manage_event_types">Manage event types</string> <string name="manage_event_types">Manage event types</string>

View File

@@ -88,6 +88,7 @@
<string name="color">Color</string> <string name="color">Color</string>
<string name="regular_event">Regular event</string> <string name="regular_event">Regular event</string>
<string name="cannot_delete_default_type">Default event type cannot be deleted</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 --> <!-- Settings -->
<string name="manage_event_types">Manage event types</string> <string name="manage_event_types">Manage event types</string>

View File

@@ -88,6 +88,7 @@
<string name="color">Color</string> <string name="color">Color</string>
<string name="regular_event">Regular event</string> <string name="regular_event">Regular event</string>
<string name="cannot_delete_default_type">Default event type cannot be deleted</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 --> <!-- Settings -->
<string name="manage_event_types">Manage event types</string> <string name="manage_event_types">Manage event types</string>

View File

@@ -88,6 +88,7 @@
<string name="color">Color</string> <string name="color">Color</string>
<string name="regular_event">Regular event</string> <string name="regular_event">Regular event</string>
<string name="cannot_delete_default_type">Default event type cannot be deleted</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 --> <!-- Settings -->
<string name="manage_event_types">Manage event types</string> <string name="manage_event_types">Manage event types</string>

View File

@@ -88,6 +88,7 @@
<string name="color">Color</string> <string name="color">Color</string>
<string name="regular_event">Regular event</string> <string name="regular_event">Regular event</string>
<string name="cannot_delete_default_type">Default event type cannot be deleted</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 --> <!-- Settings -->
<string name="manage_event_types">Manage event types</string> <string name="manage_event_types">Manage event types</string>

View File

@@ -88,6 +88,7 @@
<string name="color">Color</string> <string name="color">Color</string>
<string name="regular_event">Regular event</string> <string name="regular_event">Regular event</string>
<string name="cannot_delete_default_type">Default event type cannot be deleted</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 --> <!-- Settings -->
<string name="manage_event_types">Manage event types</string> <string name="manage_event_types">Manage event types</string>

View File

@@ -88,6 +88,7 @@
<string name="color">Color</string> <string name="color">Color</string>
<string name="regular_event">Regular event</string> <string name="regular_event">Regular event</string>
<string name="cannot_delete_default_type">Default event type cannot be deleted</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 --> <!-- Settings -->
<string name="manage_event_types">Manage event types</string> <string name="manage_event_types">Manage event types</string>

View File

@@ -88,6 +88,7 @@
<string name="color">Color</string> <string name="color">Color</string>
<string name="regular_event">Regular event</string> <string name="regular_event">Regular event</string>
<string name="cannot_delete_default_type">Default event type cannot be deleted</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 --> <!-- Settings -->
<string name="manage_event_types">Manage event types</string> <string name="manage_event_types">Manage event types</string>

View File

@@ -88,6 +88,7 @@
<string name="color">Farba</string> <string name="color">Farba</string>
<string name="regular_event">Bežná udalosť</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="cannot_delete_default_type">Predvolený typ nie je možné vymazať</string>
<string name="select_event_type">Zvoľte typ udalosti</string>
<!-- Settings --> <!-- Settings -->
<string name="manage_event_types">Manage event types</string> <string name="manage_event_types">Manage event types</string>

View File

@@ -88,6 +88,7 @@
<string name="color">Color</string> <string name="color">Color</string>
<string name="regular_event">Regular event</string> <string name="regular_event">Regular event</string>
<string name="cannot_delete_default_type">Default event type cannot be deleted</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 --> <!-- Settings -->
<string name="manage_event_types">Manage event types</string> <string name="manage_event_types">Manage event types</string>

View File

@@ -88,6 +88,7 @@
<string name="color">Color</string> <string name="color">Color</string>
<string name="regular_event">Regular event</string> <string name="regular_event">Regular event</string>
<string name="cannot_delete_default_type">Default event type cannot be deleted</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 --> <!-- Settings -->
<string name="manage_event_types">Manage event types</string> <string name="manage_event_types">Manage event types</string>