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