Allow creating tasks as well using the event list widget btn

https://github.com/SimpleMobileTools/Simple-Calendar/issues/1665
This commit is contained in:
Naveen 2022-06-19 19:49:37 +05:30
parent e164298e15
commit 40b070bc57
3 changed files with 53 additions and 1 deletions

View File

@ -194,6 +194,11 @@
android:exported="false" android:exported="false"
android:theme="@style/Theme.Transparent" /> android:theme="@style/Theme.Transparent" />
<activity
android:name=".activities.EventTypePickerActivity"
android:exported="false"
android:theme="@style/Theme.Transparent" />
<receiver <receiver
android:name=".helpers.MyWidgetMonthlyProvider" android:name=".helpers.MyWidgetMonthlyProvider"
android:exported="true" android:exported="true"

View File

@ -0,0 +1,35 @@
package com.simplemobiletools.calendar.pro.activities
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.simplemobiletools.calendar.pro.R
import com.simplemobiletools.calendar.pro.extensions.launchNewEventIntent
import com.simplemobiletools.calendar.pro.extensions.launchNewTaskIntent
import com.simplemobiletools.commons.dialogs.RadioGroupDialog
import com.simplemobiletools.commons.models.RadioItem
class EventTypePickerActivity : AppCompatActivity() {
private val TYPE_EVENT = 0
private val TYPE_TASK = 1
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val items = arrayListOf(
RadioItem(TYPE_EVENT, getString(R.string.event)),
RadioItem(TYPE_TASK, getString(R.string.task))
)
RadioGroupDialog(this, items = items, cancelCallback = { dialogCancelled() }) {
val checkedId = it as Int
if (checkedId == TYPE_EVENT) {
launchNewEventIntent()
} else if (checkedId == TYPE_TASK) {
launchNewTaskIntent()
}
finish()
}
}
private fun dialogCancelled() {
finish()
}
}

View File

@ -9,6 +9,7 @@ import android.content.Intent
import android.net.Uri import android.net.Uri
import android.widget.RemoteViews import android.widget.RemoteViews
import com.simplemobiletools.calendar.pro.R import com.simplemobiletools.calendar.pro.R
import com.simplemobiletools.calendar.pro.activities.EventTypePickerActivity
import com.simplemobiletools.calendar.pro.activities.SplashActivity import com.simplemobiletools.calendar.pro.activities.SplashActivity
import com.simplemobiletools.calendar.pro.extensions.config import com.simplemobiletools.calendar.pro.extensions.config
import com.simplemobiletools.calendar.pro.extensions.getWidgetFontSize import com.simplemobiletools.calendar.pro.extensions.getWidgetFontSize
@ -86,7 +87,7 @@ class MyWidgetListProvider : AppWidgetProvider() {
override fun onReceive(context: Context, intent: Intent) { override fun onReceive(context: Context, intent: Intent) {
when (intent.action) { when (intent.action) {
NEW_EVENT -> context.launchNewEventIntent() NEW_EVENT -> launchNewEventActivity(context)
LAUNCH_CAL -> launchCalenderInDefaultView(context) LAUNCH_CAL -> launchCalenderInDefaultView(context)
GO_TO_TODAY -> goToToday(context) GO_TO_TODAY -> goToToday(context)
else -> super.onReceive(context, intent) else -> super.onReceive(context, intent)
@ -102,6 +103,17 @@ class MyWidgetListProvider : AppWidgetProvider() {
} }
} }
private fun launchNewEventActivity(context: Context) {
if (context.config.allowCreatingTasks) {
Intent(context, EventTypePickerActivity::class.java).apply {
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
context.startActivity(this)
}
} else {
context.launchNewEventIntent()
}
}
private fun launchCalenderInDefaultView(context: Context) { private fun launchCalenderInDefaultView(context: Context) {
(context.getLaunchIntent() ?: Intent(context, SplashActivity::class.java)).apply { (context.getLaunchIntent() ?: Intent(context, SplashActivity::class.java)).apply {
putExtra(DAY_CODE, Formatter.getDayCodeFromDateTime(DateTime())) putExtra(DAY_CODE, Formatter.getDayCodeFromDateTime(DateTime()))