Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ import android.view.ViewGroup
import android.widget.CheckBox
import android.widget.LinearLayout
import android.widget.TextView
import androidx.appcompat.app.AlertDialog
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar
import androidx.recyclerview.widget.RecyclerView
Expand Down Expand Up @@ -244,7 +244,7 @@ class CalendarsActivity : AppCompatActivity() {
}

private fun showCalendarSyncHelp() {
AlertDialog.Builder(this)
MaterialAlertDialogBuilder(this)
.setTitle(R.string.calendar_sync_help_title)
.setMessage(R.string.calendar_sync_help_message)
.setPositiveButton(android.R.string.ok, null)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

package com.github.quarck.calnotify.prefs

import android.app.AlertDialog
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import android.content.Context
import android.widget.ArrayAdapter
import com.github.quarck.calnotify.R
Expand All @@ -35,7 +35,7 @@ class ListPreference<T>(

fun create() {

val builder = AlertDialog.Builder(context)
val builder = MaterialAlertDialogBuilder(context)
builder.setIcon(R.drawable.ic_launcher)
builder.setTitle(context.resources.getString(titleId))

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ package com.github.quarck.calnotify.prefs
import android.app.Activity
import android.content.Intent
import android.os.Bundle
import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AlertDialog
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.android.material.snackbar.Snackbar
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import com.github.quarck.calnotify.R
Expand Down Expand Up @@ -123,7 +123,7 @@ class MiscSettingsFragmentX : PreferenceFragmentCompat() {
}

private fun showImportConfirmation(uri: android.net.Uri) {
AlertDialog.Builder(requireContext())
MaterialAlertDialogBuilder(requireContext())
.setTitle(R.string.import_confirm_title)
.setMessage(R.string.import_confirm_message)
.setPositiveButton(android.R.string.ok) { _, _ ->
Expand Down Expand Up @@ -191,14 +191,14 @@ class MiscSettingsFragmentX : PreferenceFragmentCompat() {
append(getString(R.string.import_summary_restart_note))
}

AlertDialog.Builder(requireContext())
MaterialAlertDialogBuilder(requireContext())
.setTitle(R.string.import_summary_title)
.setMessage(message)
.setPositiveButton(android.R.string.ok, null)
.show()
}

private fun showToast(messageResId: Int) {
Toast.makeText(requireContext(), messageResId, Toast.LENGTH_LONG).show()
view?.let { Snackbar.make(it, messageResId, Snackbar.LENGTH_LONG).show() }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import com.github.quarck.calnotify.R
Expand Down Expand Up @@ -61,7 +61,7 @@ class NavigationSettingsFragmentX : PreferenceFragmentCompat() {

private fun showSwitchToClassicViewDialog() {
val ctx = context ?: return
AlertDialog.Builder(ctx)
MaterialAlertDialogBuilder(ctx)
.setMessage(R.string.switch_to_classic_view_confirm)
.setPositiveButton(android.R.string.ok) { _, _ ->
switchToClassicView()
Expand All @@ -72,7 +72,7 @@ class NavigationSettingsFragmentX : PreferenceFragmentCompat() {

private fun showSwitchToNewViewDialog() {
val ctx = context ?: return
AlertDialog.Builder(ctx)
MaterialAlertDialogBuilder(ctx)
.setMessage(R.string.switch_to_new_view_confirm)
.setPositiveButton(android.R.string.ok) { _, _ ->
switchToNewView()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,15 @@ import android.content.Context
import android.os.Bundle
import android.util.AttributeSet
import android.view.View
import android.widget.*
import android.widget.ArrayAdapter
import android.widget.AutoCompleteTextView
import android.widget.CheckBox
import android.widget.EditText
import android.widget.LinearLayout
import android.widget.NumberPicker
import androidx.preference.DialogPreference
import androidx.preference.PreferenceDialogFragmentCompat
import com.google.android.material.snackbar.Snackbar
import com.github.quarck.calnotify.Consts
import com.github.quarck.calnotify.R
import com.github.quarck.calnotify.utils.findOrThrow
Expand Down Expand Up @@ -60,17 +66,19 @@ class ReminderPatternPreferenceX @JvmOverloads constructor(
return a.getString(index) ?: "10m"
}

class Dialog : PreferenceDialogFragmentCompat(), AdapterView.OnItemSelectedListener {
class Dialog : PreferenceDialogFragmentCompat() {
private val SecondsIndex = 0
private val MinutesIndex = 1
private val HoursIndex = 2
private val DaysIndex = 3

private var reminderPatternMillis = longArrayOf(0)
private var simpleIntervalMode = true
private var selectedPosition: Int = MinutesIndex

private lateinit var numberPicker: NumberPicker
private lateinit var timeUnitsSpinners: Spinner
private lateinit var timeUnitsDropdown: AutoCompleteTextView
private lateinit var timeUnitsArray: Array<String>
private lateinit var checkboxCustomPattern: CheckBox
private lateinit var editTextCustomPattern: EditText
private lateinit var layoutSimpleInterval: LinearLayout
Expand All @@ -80,20 +88,25 @@ class ReminderPatternPreferenceX @JvmOverloads constructor(
super.onBindDialogView(view)

numberPicker = view.findOrThrow(R.id.numberPickerTimeInterval)
timeUnitsSpinners = view.findOrThrow(R.id.spinnerTimeIntervalUnit)
timeUnitsDropdown = view.findOrThrow(R.id.spinnerTimeIntervalUnit)
checkboxCustomPattern = view.findOrThrow(R.id.checkbox_custom_reminder_pattern)
editTextCustomPattern = view.findOrThrow(R.id.edittext_custom_reminder_pattern)
layoutSimpleInterval = view.findOrThrow(R.id.layout_reminder_interval_simple)
layoutCustomPattern = view.findOrThrow(R.id.layout_reminder_interval_custom)

timeUnitsSpinners.adapter = ArrayAdapter(
timeUnitsArray = view.context.resources.getStringArray(R.array.time_units_plurals_with_seconds)
val adapter = ArrayAdapter(
view.context,
android.R.layout.simple_list_item_1,
view.context.resources.getStringArray(R.array.time_units_plurals_with_seconds)
android.R.layout.simple_dropdown_item_1line,
timeUnitsArray
)
timeUnitsDropdown.setAdapter(adapter)

timeUnitsSpinners.onItemSelectedListener = this
timeUnitsSpinners.setSelection(MinutesIndex)
timeUnitsDropdown.setOnItemClickListener { _, _, position, _ ->
selectedPosition = position
onItemSelected(position)
}
setSelection(MinutesIndex)

numberPicker.minValue = 1
numberPicker.maxValue = 100
Expand All @@ -113,6 +126,13 @@ class ReminderPatternPreferenceX @JvmOverloads constructor(
updateLayout()
}
}

private fun setSelection(position: Int) {
selectedPosition = position
if (position >= 0 && position < timeUnitsArray.size) {
timeUnitsDropdown.setText(timeUnitsArray[position], false)
}
}

private fun updateLayout() {
if (simpleIntervalMode) {
Expand All @@ -128,7 +148,7 @@ class ReminderPatternPreferenceX @JvmOverloads constructor(

private fun clearFocus() {
numberPicker.clearFocus()
timeUnitsSpinners.clearFocus()
timeUnitsDropdown.clearFocus()
}

override fun onDialogClosed(positiveResult: Boolean) {
Expand All @@ -142,7 +162,7 @@ class ReminderPatternPreferenceX @JvmOverloads constructor(
var simpleIntervalMillis = simpleIntervalSeconds * 1000L
if (simpleIntervalMillis == 0L) {
simpleIntervalMillis = 60 * 1000L
Toast.makeText(context, R.string.invalid_reminder_interval, Toast.LENGTH_LONG).show()
view?.let { Snackbar.make(it, R.string.invalid_reminder_interval, Snackbar.LENGTH_LONG).show() }
}
reminderPatternMillis = longArrayOf(simpleIntervalMillis)
newPattern = PreferenceUtils.formatPattern(reminderPatternMillis)
Expand All @@ -156,7 +176,7 @@ class ReminderPatternPreferenceX @JvmOverloads constructor(
}.toLongArray()
newPattern = PreferenceUtils.formatPattern(reminderPatternMillis)
} else {
Toast.makeText(context, R.string.error_cannot_parse_pattern, Toast.LENGTH_LONG).show()
view?.let { Snackbar.make(it, R.string.error_cannot_parse_pattern, Snackbar.LENGTH_LONG).show() }
return
}
}
Expand All @@ -167,7 +187,7 @@ class ReminderPatternPreferenceX @JvmOverloads constructor(
}
}

override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
private fun onItemSelected(position: Int) {
if (position == SecondsIndex) {
numberPicker.minValue = Consts.MIN_REMINDER_INTERVAL_SECONDS
numberPicker.maxValue = 60
Expand All @@ -177,13 +197,11 @@ class ReminderPatternPreferenceX @JvmOverloads constructor(
}
}

override fun onNothingSelected(parent: AdapterView<*>?) {}

private var simpleIntervalSeconds: Int
get() {
clearFocus()
val number = numberPicker.value
val multiplier = when (timeUnitsSpinners.selectedItemPosition) {
val multiplier = when (selectedPosition) {
SecondsIndex -> 1
MinutesIndex -> 60
HoursIndex -> 60 * 60
Expand All @@ -209,7 +227,7 @@ class ReminderPatternPreferenceX @JvmOverloads constructor(
number /= 24
}

timeUnitsSpinners.setSelection(units)
setSelection(units)
numberPicker.value = number
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

package com.github.quarck.calnotify.prefs

import android.app.AlertDialog
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import android.content.Context
import android.os.Bundle
import android.util.AttributeSet
Expand Down Expand Up @@ -106,7 +106,7 @@ class SnoozePresetPreferenceX @JvmOverloads constructor(

private fun showMessage(id: Int) {
val context = requireContext()
AlertDialog.Builder(context)
MaterialAlertDialogBuilder(context)
.setMessage(context.getString(id))
.setCancelable(false)
.setPositiveButton(android.R.string.ok) { _, _ -> }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import android.widget.ImageButton
import android.widget.LinearLayout
import com.google.android.material.button.MaterialButton
import android.widget.TextView
import androidx.activity.OnBackPressedCallback
import androidx.fragment.app.Fragment
Expand Down Expand Up @@ -121,7 +121,7 @@ class ActiveEventsFragment : Fragment(), EventListCallback, SearchableFragment,
private fun setupNewUIBanner(view: View) {
newUIBanner = view.findViewById(R.id.new_ui_banner)
val bannerText = view.findViewById<TextView>(R.id.new_ui_banner_text)
val dismissButton = view.findViewById<ImageButton>(R.id.new_ui_banner_dismiss)
val dismissButton = view.findViewById<MaterialButton>(R.id.new_ui_banner_dismiss)

// Show banner if enabled in settings
if (settings.showNewUIBanner) {
Expand All @@ -146,7 +146,7 @@ class ActiveEventsFragment : Fragment(), EventListCallback, SearchableFragment,
selectionCountText = view.findViewById(R.id.selection_count_text)

// Close selection button
view.findViewById<ImageButton>(R.id.btn_close_selection)?.setOnClickListener {
view.findViewById<MaterialButton>(R.id.btn_close_selection)?.setOnClickListener {
adapter.exitSelectionMode()
}

Expand All @@ -156,7 +156,7 @@ class ActiveEventsFragment : Fragment(), EventListCallback, SearchableFragment,
}

// Snooze selected button
view.findViewById<Button>(R.id.btn_snooze_selected)?.setOnClickListener {
view.findViewById<Button>( R.id.btn_snooze_selected)?.setOnClickListener {
showSnoozeSelectedDialog()
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ class DismissedEventListAdapter(
//var eventId: Long = 0;
var entry: DismissedEventAlertRecord? = null

var eventHolder: RelativeLayout?
var eventHolder: View?
var eventTitleText: TextView
//var eventTitleLayout: RelativeLayout?
var eventDateText: TextView
Expand All @@ -89,23 +89,23 @@ class DismissedEventListAdapter(
var snoozedUntilText: TextView?
val compactViewCalendarColor: View?

val compactViewContentLayout: RelativeLayout?
var undoLayout: RelativeLayout?
val compactViewContentLayout: ViewGroup?
var undoLayout: ViewGroup?

var calendarColor: ColorDrawable

init {
eventHolder = itemView.find<RelativeLayout>(R.id.card_view_main_holder)
eventHolder = itemView.find<View>(R.id.card_view_main_holder)
eventTitleText = itemView.findOrThrow<TextView>(R.id.card_view_event_name)
//eventTitleLayout = itemView.findOrThrow<RelativeLayout?>(R.id.card_view_event_title_layout)

eventDateText = itemView.findOrThrow<TextView>(R.id.card_view_event_date)
eventTimeText = itemView.findOrThrow<TextView>(R.id.card_view_event_time)
snoozedUntilText = itemView.find<TextView>(R.id.card_view_snoozed_until)

undoLayout = itemView.find<RelativeLayout?>(R.id.event_card_undo_layout)
undoLayout = itemView.find<ViewGroup?>(R.id.event_card_undo_layout)

compactViewContentLayout = itemView.find<RelativeLayout?>(R.id.compact_view_content_layout)
compactViewContentLayout = itemView.find<ViewGroup?>(R.id.compact_view_content_layout)
compactViewCalendarColor = itemView.find<View?>(R.id.compact_view_calendar_color)

calendarColor = ColorDrawable(0)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.github.quarck.calnotify.ui

import android.app.AlertDialog
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.PopupMenu
Expand Down Expand Up @@ -117,7 +117,7 @@ class DismissedEventsActivity : AppCompatActivity(), DismissedEventListCallback
when (item.itemId) {
R.id.action_remove_all -> {

AlertDialog.Builder(this)
MaterialAlertDialogBuilder(this)
.setMessage(resources.getString(R.string.remove_all_confirmation))
.setCancelable(false)
.setPositiveButton(android.R.string.ok) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

package com.github.quarck.calnotify.ui

import android.app.AlertDialog
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
Expand Down Expand Up @@ -120,7 +120,7 @@ class DismissedEventsFragment : Fragment(), DismissedEventListCallback, Searchab

private fun showRemoveAllConfirmation() {
val ctx = context ?: return
AlertDialog.Builder(ctx)
MaterialAlertDialogBuilder(ctx)
.setMessage(getString(R.string.remove_all_confirmation))
.setCancelable(false)
.setPositiveButton(android.R.string.ok) { _, _ ->
Expand Down
Loading
Loading