mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-02-17 04:10:45 +01:00
move view switching to a dialog
This commit is contained in:
parent
c406a5b40a
commit
978c90e28c
@ -13,12 +13,13 @@ import com.simplemobiletools.calendar.R
|
||||
import com.simplemobiletools.calendar.adapters.MyMonthPagerAdapter
|
||||
import com.simplemobiletools.calendar.adapters.MyYearPagerAdapter
|
||||
import com.simplemobiletools.calendar.extensions.updateWidget
|
||||
import com.simplemobiletools.calendar.views.dialogs.ChangeViewDialog
|
||||
import kotlinx.android.synthetic.main.activity_main.*
|
||||
import org.joda.time.DateTime
|
||||
import org.joda.time.DateTimeZone
|
||||
import java.util.*
|
||||
|
||||
class MainActivity : SimpleActivity(), NavigationListener {
|
||||
class MainActivity : SimpleActivity(), NavigationListener, ChangeViewDialog.ChangeViewListener {
|
||||
private val PREFILLED_MONTHS = 73
|
||||
private val PREFILLED_YEARS = 21
|
||||
|
||||
@ -45,20 +46,13 @@ class MainActivity : SimpleActivity(), NavigationListener {
|
||||
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
||||
menuInflater.inflate(R.menu.menu, menu)
|
||||
|
||||
menu.findItem(R.id.yearly_view).isVisible = mConfig.view == Constants.MONTHLY_VIEW
|
||||
menu.findItem(R.id.monthly_view).isVisible = mConfig.view == Constants.YEARLY_VIEW
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
return when (item.itemId) {
|
||||
R.id.monthly_view -> {
|
||||
updateView(Constants.MONTHLY_VIEW)
|
||||
true
|
||||
}
|
||||
R.id.yearly_view -> {
|
||||
updateView(Constants.YEARLY_VIEW)
|
||||
R.id.change_view -> {
|
||||
showViewDialog()
|
||||
true
|
||||
}
|
||||
R.id.settings -> {
|
||||
@ -81,6 +75,14 @@ class MainActivity : SimpleActivity(), NavigationListener {
|
||||
}
|
||||
}
|
||||
|
||||
private fun showViewDialog() {
|
||||
ChangeViewDialog(this)
|
||||
}
|
||||
|
||||
override fun ViewChanged(newView: Int) {
|
||||
updateView(newView)
|
||||
}
|
||||
|
||||
private fun updateView(view: Int) {
|
||||
mIsMonthSelected = view == Constants.MONTHLY_VIEW
|
||||
mConfig.view = view
|
||||
|
@ -0,0 +1,49 @@
|
||||
package com.simplemobiletools.calendar.views.dialogs
|
||||
|
||||
import android.app.Activity
|
||||
import android.app.AlertDialog
|
||||
import android.widget.RadioGroup
|
||||
import com.simplemobiletools.calendar.Config
|
||||
import com.simplemobiletools.calendar.Constants
|
||||
import com.simplemobiletools.calendar.R
|
||||
import kotlinx.android.synthetic.main.dialog_change_views.view.*
|
||||
|
||||
class ChangeViewDialog(val activity: Activity) : AlertDialog.Builder(activity), RadioGroup.OnCheckedChangeListener {
|
||||
val dialog: AlertDialog?
|
||||
|
||||
init {
|
||||
val view = activity.layoutInflater.inflate(R.layout.dialog_change_views, null)
|
||||
view.dialog_radio_view.check(getSavedItem())
|
||||
view.dialog_radio_view.setOnCheckedChangeListener(this)
|
||||
|
||||
dialog = AlertDialog.Builder(activity)
|
||||
.setTitle(activity.resources.getString(R.string.change_view))
|
||||
.setView(view)
|
||||
.create()
|
||||
|
||||
dialog?.show()
|
||||
}
|
||||
|
||||
override fun onCheckedChanged(group: RadioGroup?, checkedId: Int) {
|
||||
(activity as ChangeViewListener).ViewChanged(getNewView(checkedId))
|
||||
dialog?.dismiss()
|
||||
}
|
||||
|
||||
fun getNewView(id: Int): Int {
|
||||
return when (id) {
|
||||
R.id.dialog_radio_yearly -> Constants.YEARLY_VIEW
|
||||
else -> Constants.MONTHLY_VIEW
|
||||
}
|
||||
}
|
||||
|
||||
fun getSavedItem(): Int {
|
||||
return when (Config.newInstance(activity).view) {
|
||||
Constants.YEARLY_VIEW -> R.id.dialog_radio_yearly
|
||||
else -> R.id.dialog_radio_monthly
|
||||
}
|
||||
}
|
||||
|
||||
interface ChangeViewListener {
|
||||
fun ViewChanged(newView: Int)
|
||||
}
|
||||
}
|
25
app/src/main/res/layout/dialog_change_views.xml
Normal file
25
app/src/main/res/layout/dialog_change_views.xml
Normal file
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RadioGroup
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/dialog_radio_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="@dimen/activity_margin">
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/dialog_radio_monthly"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="@dimen/activity_margin"
|
||||
android:paddingTop="@dimen/activity_margin"
|
||||
android:text="@string/monthly_view"/>
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/dialog_radio_yearly"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="@dimen/activity_margin"
|
||||
android:paddingTop="@dimen/activity_margin"
|
||||
android:text="@string/yearly_view"/>
|
||||
|
||||
</RadioGroup>
|
@ -2,12 +2,8 @@
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item
|
||||
android:id="@+id/monthly_view"
|
||||
android:title="@string/monthly_view"
|
||||
app:showAsAction="never"/>
|
||||
<item
|
||||
android:id="@+id/yearly_view"
|
||||
android:title="@string/yearly_view"
|
||||
android:id="@+id/change_view"
|
||||
android:title="@string/change_view"
|
||||
app:showAsAction="never"/>
|
||||
<item
|
||||
android:id="@+id/settings"
|
||||
|
@ -4,6 +4,7 @@
|
||||
<string name="undo">Rückgängig</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="cancel">Abbrechen</string>
|
||||
<string name="change_view">Change view</string>
|
||||
<string name="monthly_view">Monthly view</string>
|
||||
<string name="yearly_view">Yearly view</string>
|
||||
|
||||
|
@ -4,6 +4,7 @@
|
||||
<string name="undo">Annulla</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="change_view">Change view</string>
|
||||
<string name="monthly_view">Monthly view</string>
|
||||
<string name="yearly_view">Yearly view</string>
|
||||
|
||||
|
@ -4,6 +4,7 @@
|
||||
<string name="undo">元に戻す</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="change_view">Change view</string>
|
||||
<string name="monthly_view">Monthly view</string>
|
||||
<string name="yearly_view">Yearly view</string>
|
||||
|
||||
|
@ -4,6 +4,7 @@
|
||||
<string name="undo">Desfazer</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="cancel">Cancelar</string>
|
||||
<string name="change_view">Change view</string>
|
||||
<string name="monthly_view">Monthly view</string>
|
||||
<string name="yearly_view">Yearly view</string>
|
||||
|
||||
|
@ -4,6 +4,7 @@
|
||||
<string name="undo">Ångra</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="change_view">Change view</string>
|
||||
<string name="monthly_view">Monthly view</string>
|
||||
<string name="yearly_view">Yearly view</string>
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
<resources>
|
||||
<dimen name="activity_margin">16dp</dimen>
|
||||
<dimen name="medium_padding">8dp</dimen>
|
||||
<dimen name="social_padding">8dp</dimen>
|
||||
<dimen name="social_logo">40dp</dimen>
|
||||
<dimen name="event_padding">8dp</dimen>
|
||||
|
@ -4,6 +4,7 @@
|
||||
<string name="undo">Undo</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="change_view">Change view</string>
|
||||
<string name="monthly_view">Monthly view</string>
|
||||
<string name="yearly_view">Yearly view</string>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user