diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/global/Preferences.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/global/Preferences.kt index 7097044..710d90e 100755 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/global/Preferences.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/global/Preferences.kt @@ -40,6 +40,7 @@ object Preferences : KotprefModel() { var weatherProviderApi by stringPref(key = "PREF_WEATHER_PROVIDER_API_KEY", default = "") var eventAppName by stringPref(key = "PREF_EVENT_APP_NAME", default = "") var eventAppPackage by stringPref(key = "PREF_EVENT_APP_PACKAGE", default = "") + var openEventDetails by booleanPref(default = true) var showEventLocation by stringPref(key = "PREF_SHOW_EVENT_LOCATION", default = "") var textGlobalColor by stringPref(key = "PREF_TEXT_COLOR", default = "#FFFFFF") var textMainSize by floatPref(key = "PREF_TEXT_MAIN_SIZE", default = 26f) @@ -49,7 +50,7 @@ object Preferences : KotprefModel() { var showClock by booleanPref(key = "PREF_SHOW_CLOCK", default = false) var clockAppName by stringPref(key = "PREF_CLOCK_APP_NAME", default = "") var clockAppPackage by stringPref(key = "PREF_CLOCK_APP_PACKAGE", default = "") - var showNextAlarm by booleanPref(default = true) + var showNextAlarm by booleanPref(default = false) var textShadow by intPref(key = "PREF_TEXT_SHADOW", default = 1) var showDiffTime by booleanPref(key = "PREF_SHOW_DIFF_TIME") var showDeclinedEvents by booleanPref(key = "PREF_SHOW_DECLINED_EVENTS", default = true) diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/AlarmHelper.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/AlarmHelper.kt index ab9b253..76ca64c 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/AlarmHelper.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/AlarmHelper.kt @@ -11,7 +11,7 @@ object AlarmHelper { val alarm = nextAlarmClock return if ( alarm != null - && alarm.triggerTime - Calendar.getInstance().timeInMillis > 2 * 60 * 1000 + && alarm.triggerTime - Calendar.getInstance().timeInMillis > 10 * 60 * 1000 && alarm.triggerTime - Calendar.getInstance().timeInMillis < 12 * 60 * 60 * 1000 ) { "%s %s".format( diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/IntentHelper.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/IntentHelper.kt index 624235d..ac6086d 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/IntentHelper.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/IntentHelper.kt @@ -30,35 +30,6 @@ object IntentHelper { } } - fun getCalendarIntent(context: Context): Intent { - return when (Preferences.calendarAppPackage) { - "" -> { - Intent(Intent.ACTION_MAIN).apply { - addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) - addCategory(Intent.CATEGORY_APP_CALENDAR) - } - } - "_" -> { - Intent() - } - else -> { - val pm: PackageManager = context.packageManager - try { - pm.getLaunchIntentForPackage(Preferences.calendarAppPackage)!!.apply { - addCategory(Intent.CATEGORY_LAUNCHER) - addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) - } - } catch (e: Exception) { - e.printStackTrace() - Intent(Intent.ACTION_MAIN).apply { - addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) - addCategory(Intent.CATEGORY_APP_CALENDAR) - } - } - } - } - } - fun getWeatherIntent(context: Context): Intent { return when (Preferences.weatherAppPackage) { "" -> { @@ -91,15 +62,12 @@ object IntentHelper { } } - fun getEventIntent(context: Context, e: Event): Intent { - return when (Preferences.eventAppPackage) { + fun getCalendarIntent(context: Context): Intent { + return when (Preferences.calendarAppPackage) { "" -> { - val uri = ContentUris.withAppendedId(Events.CONTENT_URI, e.eventID) - Intent(Intent.ACTION_VIEW).apply { - data = uri + Intent(Intent.ACTION_MAIN).apply { addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) - putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, e.startDate) - putExtra(CalendarContract.EXTRA_EVENT_END_TIME, e.endDate) + addCategory(Intent.CATEGORY_APP_CALENDAR) } } "_" -> { @@ -107,25 +75,46 @@ object IntentHelper { } else -> { val pm: PackageManager = context.packageManager - val uri = ContentUris.withAppendedId(Events.CONTENT_URI, e.eventID) try { - pm.getLaunchIntentForPackage(Preferences.eventAppPackage)!!.apply { - action = Intent.ACTION_VIEW - data = uri + pm.getLaunchIntentForPackage(Preferences.calendarAppPackage)!!.apply { addCategory(Intent.CATEGORY_LAUNCHER) -// addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) -// putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, e.startDate) -// putExtra(CalendarContract.EXTRA_EVENT_END_TIME, e.endDate) + addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) } - } catch (ex: Exception) { + } catch (e: Exception) { + e.printStackTrace() + Intent(Intent.ACTION_MAIN).apply { + addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + addCategory(Intent.CATEGORY_APP_CALENDAR) + } + } + } + } + } + + fun getEventIntent(context: Context, e: Event, forceEventDetails: Boolean = false): Intent { + return when (Preferences.openEventDetails || forceEventDetails) { + true -> { + val uri = ContentUris.withAppendedId(Events.CONTENT_URI, e.eventID) + + if (Preferences.calendarAppPackage == "") { Intent(Intent.ACTION_VIEW).apply { data = uri addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, e.startDate) putExtra(CalendarContract.EXTRA_EVENT_END_TIME, e.endDate) } + } else { + getCalendarIntent(context).apply { + action = Intent.ACTION_VIEW + data = uri + putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, e.startDate) + putExtra(CalendarContract.EXTRA_EVENT_END_TIME, e.endDate) + } } } + false -> { + getCalendarIntent(context) + } } } diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/CalendarSettingsFragment.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/CalendarSettingsFragment.kt index 6812022..7c247cc 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/CalendarSettingsFragment.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/CalendarSettingsFragment.kt @@ -147,9 +147,9 @@ class CalendarSettingsFragment : Fragment() { } }) - viewModel.eventAppName.observe(viewLifecycleOwner, Observer { + viewModel.openEventDetails.observe(viewLifecycleOwner, Observer { maintainScrollPosition { - event_app_label.text = if (it != "") it else getString(R.string.default_calendar_app) + open_event_details_label.text = if (it) getString(R.string.default_event_app) else getString(R.string.default_calendar_app) } }) @@ -301,8 +301,15 @@ class CalendarSettingsFragment : Fragment() { } } - action_event_app.setOnClickListener { - startActivityForResult(Intent(requireContext(), ChooseApplicationActivity::class.java), RequestCode.EVENT_APP_REQUEST_CODE.code) + action_open_event_details.setOnClickListener { + if (Preferences.showEvents) { + BottomSheetMenu(requireContext(), header = getString(R.string.settings_event_app_title)).setSelectedValue(Preferences.openEventDetails) + .addItem(getString(R.string.default_event_app), true) + .addItem(getString(R.string.default_calendar_app), false) + .addOnSelectItemListener { value -> + Preferences.openEventDetails = value + }.show() + } } action_calendar_app.setOnClickListener { diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/MainViewModel.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/MainViewModel.kt index 8dce8de..8bff75f 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/MainViewModel.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/MainViewModel.kt @@ -21,10 +21,9 @@ class MainViewModel : ViewModel() { val showDiffTime = Preferences.asLiveData(Preferences::showDiffTime) val showDeclinedEvents = Preferences.asLiveData(Preferences::showDeclinedEvents) val showNextEvent = Preferences.asLiveData(Preferences::showNextEvent) - + val openEventDetails = Preferences.asLiveData(Preferences::openEventDetails) val calendarAppName = Preferences.asLiveData(Preferences::calendarAppName) - val eventAppName = Preferences.asLiveData(Preferences::eventAppName) // Clock Settings val showClock = Preferences.asLiveData(Preferences::showClock) diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/MainWidget.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/MainWidget.kt index da58952..92339c6 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/MainWidget.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/MainWidget.kt @@ -156,7 +156,8 @@ class MainWidget : AppWidgetProvider() { val mapIntent = PendingIntent.getActivity(context, widgetID, IntentHelper.getGoogleMapsIntentFromAddress(context, nextEvent.address), 0) views.setOnClickPendingIntent(R.id.second_row_rect, mapIntent) } else { - views.setOnClickPendingIntent(R.id.second_row_rect, pIntent) + val pIntentDetail = PendingIntent.getActivity(context, widgetID, IntentHelper.getEventIntent(context, nextEvent, forceEventDetails = true), 0) + views.setOnClickPendingIntent(R.id.second_row_rect, pIntentDetail) } views.setImageViewBitmap(R.id.next_event_rect, BitmapHelper.getBitmapFromView(v.next_event, draw = false)) diff --git a/app/src/main/res/layout/fragment_calendar_settings.xml b/app/src/main/res/layout/fragment_calendar_settings.xml index 145d41f..dc2a516 100644 --- a/app/src/main/res/layout/fragment_calendar_settings.xml +++ b/app/src/main/res/layout/fragment_calendar_settings.xml @@ -203,7 +203,7 @@ android:layout_width="48dp" android:layout_height="48dp" android:padding="12dp" - android:src="@drawable/round_event_note" + android:src="@drawable/round_code" android:tint="@color/colorPrimaryText"/> + + + + + + + - - - - - - - diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 8d12254..8eda38c 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -66,7 +66,7 @@ Fehler beim Öffnen der URL: Link in die Zwischenablage kopiert. Daten werden geladen... Fehler beim Öffnen der App. - Beim Klick auf\'s Datum öffnet sich + Standard Kalender-App Beim Klick auf\'s Wetter öffnet sich Standardapp App wählen @@ -136,7 +136,7 @@ Nicht sichtbar Abgelehnte Ereignisse Google Wetter - Google Kalender Veranstalungsdetails + Veranstalungsdetails Standard Kalender-App Standard Uhr-App 1 Stunde später diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index ef80c2d..f3d81e5 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -60,7 +60,7 @@ Erreur lors de l\'ouverture de l\'URL : Lien copié dans le presse-papiers. Chargement des données… Erreur lors de l\'ouverture de l\'app. - Taper sur la date ouvre + App calendrier par défaut Taper sur la météo ouvre App par défaut Choisir une application @@ -120,7 +120,7 @@ Non visible Événements refusés Google Weather - Détails de l\'événement dans Google Agenda + Détails de l\'événement App calendrier par défaut App horloge par défaut 1 heure après diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index fd873dc..1b6d4d4 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -61,7 +61,7 @@ Errore apertura URL: Link copiato negli appunti. Caricamento… Errore apertura App. - La data apre + Applicazione predefinita calendario Il meteo apre App Predefinita Scegli Applicazione @@ -120,7 +120,7 @@ Event Rifiutati Visibile Non Visibile - Dettagli Evento Google Calendar + Dettagli evento App Calendario di Default Meteo Google App Orologio di Default diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 77fc1d1..9bc5744 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -66,7 +66,7 @@ Error opening URL: Link copied to clipboard. Loading Data… Error opening app. - Tap on date opens + Calendar default application Tap on weather opens Default app Choose application @@ -130,7 +130,7 @@ Hidden Declined events Google Weather - Google Calendar event details + Event details Default calendar app Default clock app 1 hour later diff --git a/tasksintegration/build/intermediates/bundle_manifest/debug/bundle-manifest/AndroidManifest.xml b/tasksintegration/build/intermediates/bundle_manifest/debug/bundle-manifest/AndroidManifest.xml index 6787927..a0f5166 100644 --- a/tasksintegration/build/intermediates/bundle_manifest/debug/bundle-manifest/AndroidManifest.xml +++ b/tasksintegration/build/intermediates/bundle_manifest/debug/bundle-manifest/AndroidManifest.xml @@ -3,7 +3,7 @@ xmlns:dist="http://schemas.android.com/apk/distribution" featureSplit="tasksintegration" package="com.tommasoberlose.anotherwidget" - android:versionCode="59" + android:versionCode="60" android:versionName="2.0.5" > 8 9