move view switching to a dialog

This commit is contained in:
tibbi 2016-10-22 15:56:05 +02:00
parent c406a5b40a
commit 978c90e28c
11 changed files with 95 additions and 16 deletions

View File

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

View File

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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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