diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/MainActivity.kt index f540c61d3..1b4ce662f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/MainActivity.kt @@ -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 diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/views/dialogs/ChangeViewDialog.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/views/dialogs/ChangeViewDialog.kt new file mode 100644 index 000000000..248a1875b --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/views/dialogs/ChangeViewDialog.kt @@ -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) + } +} diff --git a/app/src/main/res/layout/dialog_change_views.xml b/app/src/main/res/layout/dialog_change_views.xml new file mode 100644 index 000000000..a00cb943f --- /dev/null +++ b/app/src/main/res/layout/dialog_change_views.xml @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/app/src/main/res/menu/menu.xml b/app/src/main/res/menu/menu.xml index ff0df53fa..5f7beb77a 100644 --- a/app/src/main/res/menu/menu.xml +++ b/app/src/main/res/menu/menu.xml @@ -2,12 +2,8 @@ - Rückgängig OK Abbrechen + Change view Monthly view Yearly view diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 31f9179b4..a102ade14 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -4,6 +4,7 @@ Annulla OK Cancel + Change view Monthly view Yearly view diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 720bc4d6c..717e53c33 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -4,6 +4,7 @@ 元に戻す OK Cancel + Change view Monthly view Yearly view diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 93f735a0c..364c8adcd 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -4,6 +4,7 @@ Desfazer OK Cancelar + Change view Monthly view Yearly view diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 3f3cbd97c..ecdd2f112 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -4,6 +4,7 @@ Ångra OK Cancel + Change view Monthly view Yearly view diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index e40d5e35e..d2eecdb0c 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -1,5 +1,6 @@ 16dp + 8dp 8dp 40dp 8dp diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 288b03cab..84dbe3e3e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -4,6 +4,7 @@ Undo OK Cancel + Change view Monthly view Yearly view