Fix event tap ui

This commit is contained in:
Tommaso Berlose 2020-05-04 19:28:06 +02:00
parent 6279846cea
commit dd450443c8
18 changed files with 102 additions and 105 deletions

View File

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

View File

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

View File

@ -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,26 +75,47 @@ 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)
}
}
}
fun getClockIntent(context: Context): Intent {

View File

@ -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<Boolean>(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 {

View File

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

View File

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

View File

@ -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"/>
<LinearLayout
android:layout_width="match_parent"
@ -371,6 +371,43 @@
style="@style/AnotherWidget.Settings.Subtitle"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="16dp"
android:paddingBottom="16dp"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:clickable="true"
android:focusable="true"
android:background="?android:attr/selectableItemBackground"
android:gravity="center_vertical"
android:id="@+id/action_open_event_details"
android:orientation="horizontal">
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:padding="12dp"
android:src="@drawable/round_event_note"
android:tint="@color/colorPrimaryText"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/AnotherWidget.Settings.Title"
android:text="@string/settings_event_app_title"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/open_event_details_label"
style="@style/AnotherWidget.Settings.Subtitle"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
@ -408,43 +445,6 @@
style="@style/AnotherWidget.Settings.Subtitle"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="16dp"
android:paddingBottom="16dp"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:clickable="true"
android:focusable="true"
android:background="?android:attr/selectableItemBackground"
android:gravity="center_vertical"
android:id="@+id/action_event_app"
android:orientation="horizontal">
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:padding="12dp"
android:src="@drawable/round_add_to_home_screen"
android:tint="@color/colorPrimaryText"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/AnotherWidget.Settings.Title"
android:text="@string/settings_event_app_title"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/event_app_label"
style="@style/AnotherWidget.Settings.Subtitle"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>

View File

@ -66,7 +66,7 @@
<string name="error_opening_uri">Fehler beim Öffnen der URL: Link in die Zwischenablage kopiert.</string>
<string name="loading_text">Daten werden geladen...</string>
<string name="error_opening_app">Fehler beim Öffnen der App.</string>
<string name="settings_calendar_app_title">Beim Klick auf\'s Datum öffnet sich</string>
<string name="settings_calendar_app_title">Standard Kalender-App</string>
<string name="settings_weather_app_title">Beim Klick auf\'s Wetter öffnet sich</string>
<string name="default_name">Standardapp</string>
<string name="action_choose_application">App wählen</string>
@ -136,7 +136,7 @@
<string name="settings_not_visible">Nicht sichtbar</string>
<string name="settings_show_declined_events_title">Abgelehnte Ereignisse</string>
<string name="default_weather_app">Google Wetter</string>
<string name="default_event_app">Google Kalender Veranstalungsdetails</string>
<string name="default_event_app">Veranstalungsdetails</string>
<string name="default_calendar_app">Standard Kalender-App</string>
<string name="default_clock_app">Standard Uhr-App</string>
<string name="settings_show_until_subtitle_7">1 Stunde später</string>

View File

@ -60,7 +60,7 @@
<string name="error_opening_uri">Erreur lors de l\'ouverture de l\'URL : Lien copié dans le presse-papiers.</string>
<string name="loading_text">Chargement des données…</string>
<string name="error_opening_app">Erreur lors de l\'ouverture de l\'app.</string>
<string name="settings_calendar_app_title">Taper sur la date ouvre</string>
<string name="settings_calendar_app_title">App calendrier par défaut</string>
<string name="settings_weather_app_title">Taper sur la météo ouvre</string>
<string name="default_name">App par défaut</string>
<string name="action_choose_application">Choisir une application</string>
@ -120,7 +120,7 @@
<string name="settings_not_visible">Non visible</string>
<string name="settings_show_declined_events_title">Événements refusés</string>
<string name="default_weather_app">Google Weather</string>
<string name="default_event_app">Détails de l\'événement dans Google Agenda</string>
<string name="default_event_app">Détails de l\'événement</string>
<string name="default_calendar_app">App calendrier par défaut</string>
<string name="default_clock_app">App horloge par défaut</string>
<string name="settings_show_until_subtitle_7">1 heure après</string>

View File

@ -61,7 +61,7 @@
<string name="error_opening_uri">Errore apertura URL: Link copiato negli appunti.</string>
<string name="loading_text">Caricamento…</string>
<string name="error_opening_app">Errore apertura App.</string>
<string name="settings_calendar_app_title">La data apre</string>
<string name="settings_calendar_app_title">Applicazione predefinita calendario</string>
<string name="settings_weather_app_title">Il meteo apre</string>
<string name="default_name">App Predefinita</string>
<string name="action_choose_application">Scegli Applicazione</string>
@ -120,7 +120,7 @@
<string name="settings_show_declined_events_title">Event Rifiutati</string>
<string name="settings_visible">Visibile</string>
<string name="settings_not_visible">Non Visibile</string>
<string name="default_event_app">Dettagli Evento Google Calendar</string>
<string name="default_event_app">Dettagli evento</string>
<string name="default_calendar_app">App Calendario di Default</string>
<string name="default_weather_app">Meteo Google</string>
<string name="default_clock_app">App Orologio di Default</string>

View File

@ -66,7 +66,7 @@
<string name="error_opening_uri">Error opening URL: Link copied to clipboard.</string>
<string name="loading_text">Loading Data…</string>
<string name="error_opening_app">Error opening app.</string>
<string name="settings_calendar_app_title">Tap on date opens</string>
<string name="settings_calendar_app_title">Calendar default application</string>
<string name="settings_weather_app_title">Tap on weather opens</string>
<string name="default_name">Default app</string>
<string name="action_choose_application">Choose application</string>
@ -130,7 +130,7 @@
<string name="settings_not_visible">Hidden</string>
<string name="settings_show_declined_events_title">Declined events</string>
<string name="default_weather_app">Google Weather</string>
<string name="default_event_app">Google Calendar event details</string>
<string name="default_event_app">Event details</string>
<string name="default_calendar_app">Default calendar app</string>
<string name="default_clock_app">Default clock app</string>
<string name="settings_show_until_subtitle_7">1 hour later</string>

View File

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

View File

@ -1,4 +1,4 @@
#Mon May 04 18:04:57 CEST 2020
#Mon May 04 18:47:09 CEST 2020
base.0=/Users/tommaso/Documents/MyCode/another-widget/tasksintegration/build/intermediates/dex/debug/mergeProjectDexDebug/out/classes.dex
path.0=classes.dex
renamed.0=classes.dex

View File

@ -4,7 +4,7 @@
featureSplit="tasksintegration"
package="com.tommasoberlose.anotherwidget"
android:targetSandboxVersion="2"
android:versionCode="59"
android:versionCode="60"
android:versionName="2.0.5" >
<uses-sdk

View File

@ -3,7 +3,7 @@
3 xmlns:dist="http://schemas.android.com/apk/distribution"
4 featureSplit="tasksintegration"
5 package="com.tommasoberlose.anotherwidget"
6 android:versionCode="59"
6 android:versionCode="60"
7 android:versionName="2.0.5" >
8
9 <uses-sdk

View File

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

View File

@ -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" >
<uses-sdk android:targetSdkVersion="29" />