add a button for managing event types to the event type picker

This commit is contained in:
tibbi 2022-11-27 10:19:56 +01:00
parent 2a261aec18
commit 1ffd9403eb
7 changed files with 68 additions and 8 deletions

View File

@ -70,7 +70,7 @@ android {
} }
dependencies { dependencies {
implementation 'com.github.SimpleMobileTools:Simple-Commons:92e9ea7598' implementation 'com.github.SimpleMobileTools:Simple-Commons:9795366108'
implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.multidex:multidex:2.0.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'

View File

@ -799,7 +799,16 @@ class EventActivity : SimpleActivity() {
private fun showEventTypeDialog() { private fun showEventTypeDialog() {
hideKeyboard() hideKeyboard()
SelectEventTypeDialog(this, mEventTypeId, false, true, false, true) {
SelectEventTypeDialog(
activity = this,
currEventType = mEventTypeId,
showCalDAVCalendars = false,
showNewEventTypeOption = true,
addLastUsedOneAsFirstOption = false,
showOnlyWritable = true,
showManageEventTypes = true
) {
mEventTypeId = it.id!! mEventTypeId = it.id!!
updateEventType() updateEventType()
} }

View File

@ -834,7 +834,7 @@ class SettingsActivity : SimpleActivity() {
updateDefaultEventTypeText() updateDefaultEventTypeText()
settings_default_event_type.text = getString(R.string.last_used_one) settings_default_event_type.text = getString(R.string.last_used_one)
settings_default_event_type_holder.setOnClickListener { settings_default_event_type_holder.setOnClickListener {
SelectEventTypeDialog(this, config.defaultEventTypeId, true, false, true, true) { SelectEventTypeDialog(this, config.defaultEventTypeId, true, false, true, true, false) {
config.defaultEventTypeId = it.id!! config.defaultEventTypeId = it.id!!
updateDefaultEventTypeText() updateDefaultEventTypeText()
} }

View File

@ -705,7 +705,8 @@ class TaskActivity : SimpleActivity() {
showCalDAVCalendars = false, showCalDAVCalendars = false,
showNewEventTypeOption = true, showNewEventTypeOption = true,
addLastUsedOneAsFirstOption = false, addLastUsedOneAsFirstOption = false,
showOnlyWritable = true showOnlyWritable = true,
showManageEventTypes = true
) { ) {
mEventTypeId = it.id!! mEventTypeId = it.id!!
updateEventType() updateEventType()

View File

@ -51,7 +51,7 @@ class ImportEventsDialog(val activity: SimpleActivity, val path: String, val cal
val view = (activity.layoutInflater.inflate(R.layout.dialog_import_events, null) as ViewGroup).apply { val view = (activity.layoutInflater.inflate(R.layout.dialog_import_events, null) as ViewGroup).apply {
updateEventType(this) updateEventType(this)
import_event_type_title.setOnClickListener { import_event_type_title.setOnClickListener {
SelectEventTypeDialog(activity, currEventTypeId, true, true, false, true) { SelectEventTypeDialog(activity, currEventTypeId, true, true, false, true, false) {
currEventTypeId = it.id!! currEventTypeId = it.id!!
currEventTypeCalDAVCalendarId = it.caldavCalendarId currEventTypeCalDAVCalendarId = it.caldavCalendarId

View File

@ -1,21 +1,23 @@
package com.simplemobiletools.calendar.pro.dialogs package com.simplemobiletools.calendar.pro.dialogs
import android.app.Activity import android.app.Activity
import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.RadioGroup import android.widget.RadioGroup
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import com.simplemobiletools.calendar.pro.R import com.simplemobiletools.calendar.pro.R
import com.simplemobiletools.calendar.pro.activities.ManageEventTypesActivity
import com.simplemobiletools.calendar.pro.extensions.eventsHelper import com.simplemobiletools.calendar.pro.extensions.eventsHelper
import com.simplemobiletools.calendar.pro.models.EventType import com.simplemobiletools.calendar.pro.models.EventType
import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.views.MyCompatRadioButton import com.simplemobiletools.commons.views.MyCompatRadioButton
import kotlinx.android.synthetic.main.dialog_select_radio_group.view.* import kotlinx.android.synthetic.main.dialog_select_event_type.view.*
import kotlinx.android.synthetic.main.radio_button_with_color.view.* import kotlinx.android.synthetic.main.radio_button_with_color.view.*
class SelectEventTypeDialog( class SelectEventTypeDialog(
val activity: Activity, val currEventType: Long, val showCalDAVCalendars: Boolean, val showNewEventTypeOption: Boolean, val activity: Activity, val currEventType: Long, val showCalDAVCalendars: Boolean, val showNewEventTypeOption: Boolean,
val addLastUsedOneAsFirstOption: Boolean, val showOnlyWritable: Boolean, val callback: (eventType: EventType) -> Unit val addLastUsedOneAsFirstOption: Boolean, val showOnlyWritable: Boolean, var showManageEventTypes: Boolean, val callback: (eventType: EventType) -> Unit
) { ) {
private val NEW_EVENT_TYPE_ID = -2L private val NEW_EVENT_TYPE_ID = -2L
private val LAST_USED_EVENT_TYPE_ID = -1L private val LAST_USED_EVENT_TYPE_ID = -1L
@ -26,8 +28,15 @@ class SelectEventTypeDialog(
private var eventTypes = ArrayList<EventType>() private var eventTypes = ArrayList<EventType>()
init { init {
val view = activity.layoutInflater.inflate(R.layout.dialog_select_radio_group, null) as ViewGroup val view = activity.layoutInflater.inflate(R.layout.dialog_select_event_type, null) as ViewGroup
radioGroup = view.dialog_radio_group radioGroup = view.dialog_radio_group
view.dialog_manage_event_types.apply {
beVisibleIf(showManageEventTypes)
setOnClickListener {
activity.startActivity(Intent(activity, ManageEventTypesActivity::class.java))
dialog?.dismiss()
}
}
activity.eventsHelper.getEventTypes(activity, showOnlyWritable) { activity.eventsHelper.getEventTypes(activity, showOnlyWritable) {
eventTypes = it eventTypes = it

View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/dialog_radio_holder"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/dialog_wrapper"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RadioGroup
android:id="@+id/dialog_radio_group"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="@dimen/activity_margin"
android:paddingTop="@dimen/normal_margin"
android:paddingEnd="@dimen/activity_margin"
android:paddingBottom="@dimen/normal_margin" />
<ImageView
android:id="@+id/dialog_radio_divider"
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/divider_grey"
android:importantForAccessibility="no" />
<com.simplemobiletools.commons.views.MyTextView
android:id="@+id/dialog_manage_event_types"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/ripple_background"
android:paddingStart="@dimen/big_margin"
android:paddingTop="@dimen/activity_margin"
android:paddingEnd="@dimen/activity_margin"
android:paddingBottom="@dimen/activity_margin"
android:text="@string/manage_event_types" />
</LinearLayout>
</ScrollView>