1
0
Fork 0
mirror of https://github.com/MatomoCamp/matomocamp-companion-android.git synced 2024-09-19 16:13:46 +02:00

German translation and "open in webbrowser" button

This commit is contained in:
Lukas Winkler 2021-09-22 18:12:50 +02:00
parent 668e0978c3
commit 06ff228253
Signed by: lukas
GPG key ID: 54DE4D798D244853
9 changed files with 173 additions and 34 deletions

View file

@ -14,10 +14,10 @@ android {
applicationId "org.matomocamp.fosdem" applicationId "org.matomocamp.fosdem"
minSdkVersion 17 minSdkVersion 17
targetSdkVersion 31 targetSdkVersion 31
versionCode 1700205 versionCode 1800000
versionName "2.0.5" versionName "3.0.0"
// Supported languages // Supported languages
resConfigs "en" resConfigs "en", "de", "fr"
vectorDrawables.useSupportLibrary = true vectorDrawables.useSupportLibrary = true
javaCompileOptions { javaCompileOptions {
@ -93,8 +93,8 @@ dependencies {
implementation 'androidx.paging:paging-runtime-ktx:2.1.2' implementation 'androidx.paging:paging-runtime-ktx:2.1.2'
implementation "androidx.room:room-ktx:$room_version" implementation "androidx.room:room-ktx:$room_version"
kapt "androidx.room:room-compiler:$room_version" kapt "androidx.room:room-compiler:$room_version"
implementation "com.squareup.okhttp3:okhttp:$okhttp_version" implementation "com.squareup.okhttp3:okhttp:3.12.13"
implementation ("com.squareup.okhttp3:okhttp-tls:$okhttp_version") { implementation ("com.squareup.okhttp3:okhttp-tls:3.12.13") {
exclude group: 'org.bouncycastle', module: 'bcprov-jdk15on' exclude group: 'org.bouncycastle', module: 'bcprov-jdk15on'
} }
implementation 'com.squareup.okio:okio:2.10.0' implementation 'com.squareup.okio:okio:2.10.0'

View file

@ -40,8 +40,6 @@ class PersonInfoActivity : AppCompatActivity(R.layout.person_info) {
try { try {
CustomTabsIntent.Builder() CustomTabsIntent.Builder()
.configureToolbarColors(this, R.color.light_color_primary) .configureToolbarColors(this, R.color.light_color_primary)
.setStartAnimations(this, R.anim.slide_in_right, R.anim.slide_out_left)
.setExitAnimations(this, R.anim.slide_in_left, R.anim.slide_out_right)
.build() .build()
.launchUrl(this, Uri.parse(url)) .launchUrl(this, Uri.parse(url))
} catch (ignore: ActivityNotFoundException) { } catch (ignore: ActivityNotFoundException) {

View file

@ -3,12 +3,14 @@ package org.matomocamp.companion.fragments
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.ActivityNotFoundException import android.content.ActivityNotFoundException
import android.content.Intent import android.content.Intent
import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.provider.CalendarContract import android.provider.CalendarContract
import android.text.SpannableString import android.text.SpannableString
import android.text.TextPaint import android.text.TextPaint
import android.text.method.LinkMovementMethod import android.text.method.LinkMovementMethod
import android.text.style.ClickableSpan import android.text.style.ClickableSpan
import android.util.Log
import android.view.Menu import android.view.Menu
import android.view.MenuInflater import android.view.MenuInflater
import android.view.MenuItem import android.view.MenuItem
@ -45,6 +47,7 @@ import org.matomocamp.companion.utils.stripHtml
import org.matomocamp.companion.viewmodels.EventDetailsViewModel import org.matomocamp.companion.viewmodels.EventDetailsViewModel
import com.google.android.material.snackbar.Snackbar import com.google.android.material.snackbar.Snackbar
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import org.matomocamp.companion.api.MatomoCampUrls
import javax.inject.Inject import javax.inject.Inject
@AndroidEntryPoint @AndroidEntryPoint
@ -197,14 +200,34 @@ class EventDetailsFragment : Fragment(R.layout.fragment_event_details) {
.createChooserIntent() .createChooserIntent()
} }
override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) { override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) {
R.id.add_to_agenda -> { R.id.add_to_agenda -> {
addToAgenda() addToAgenda()
true true
} }
R.id.open_in_webbrowser -> {
openInWebbrowser()
true
}
else -> false else -> false
} }
private fun openInWebbrowser(){
Log.i("Bla","open in web browser")
try {
val context=activity
if (context != null) {
CustomTabsIntent.Builder()
.configureToolbarColors(context, R.color.light_color_primary)
.build()
.launchUrl(context, Uri.parse(event.url))
}
} catch (ignore: ActivityNotFoundException) {
}
}
private fun addToAgenda() { private fun addToAgenda() {
val intent = Intent(Intent.ACTION_EDIT).apply { val intent = Intent(Intent.ACTION_EDIT).apply {
type = "vnd.android.cursor.item/event" type = "vnd.android.cursor.item/event"
@ -304,8 +327,6 @@ class EventDetailsFragment : Fragment(R.layout.fragment_event_details) {
CustomTabsIntent.Builder() CustomTabsIntent.Builder()
.configureToolbarColors(context, event.track.appBarColorResId) .configureToolbarColors(context, event.track.appBarColorResId)
.setShowTitle(true) .setShowTitle(true)
.setStartAnimations(context, R.anim.slide_in_right, R.anim.slide_out_left)
.setExitAnimations(context, R.anim.slide_in_left, R.anim.slide_out_right)
.build() .build()
.launchUrl(context, link.url.toUri()) .launchUrl(context, link.url.toUri())
} catch (ignore: ActivityNotFoundException) { } catch (ignore: ActivityNotFoundException) {

View file

@ -1,6 +1,7 @@
package org.matomocamp.companion.model package org.matomocamp.companion.model
import android.os.Parcelable import android.os.Parcelable
import androidx.core.os.ConfigurationCompat
import androidx.room.Entity import androidx.room.Entity
import androidx.room.PrimaryKey import androidx.room.PrimaryKey
import androidx.room.TypeConverters import androidx.room.TypeConverters
@ -23,7 +24,9 @@ data class Day(
) : Comparable<Day>, Parcelable { ) : Comparable<Day>, Parcelable {
val name: String val name: String
get() = "Day $index (${DAY_DATE_FORMAT.format(date)})" get() {
return "Day $index (${DAY_DATE_FORMAT.format(date)})"
}
val shortName: String val shortName: String
get() = DAY_DATE_FORMAT.format(date) get() = DAY_DATE_FORMAT.format(date)

View file

@ -14,5 +14,11 @@
android:title="@string/add_to_agenda" android:title="@string/add_to_agenda"
app:iconTint="?colorControlNormal" app:iconTint="?colorControlNormal"
app:showAsAction="ifRoom" /> app:showAsAction="ifRoom" />
<item
android:id="@+id/open_in_webbrowser"
android:icon="@drawable/ic_baseline_open_in_browser_24"
android:title="@string/open_in_webbrowser"
app:iconTint="?colorControlNormal"
app:showAsAction="ifRoom" />
</menu> </menu>

View file

@ -0,0 +1,100 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">MatomoCamp Companion</string>
<string name="main_menu">Hauptmenü</string>
<string name="close_menu">Menü schließen</string>
<string name="last_update">DB zuletzt aktualisiert: %1$s</string>
<string name="never">Noch nie</string>
<string name="update_events_db">Eventdatenbank aktualisieren</string>
<string name="events_download_up_to_date">Datenbank ist bereits aktuell</string>
<string name="events_download_empty">Keine neuen Events gefunden</string>
<plurals name="events_download_completed">
<item quantity="one">%1$d Event erfolgreich heruntergeladen</item>
<item quantity="other">%1$d Events erfolgreich heruntergeladen</item>
</plurals>
<string name="menu_tracks">Kategorien</string>
<string name="menu_bookmarks">Vormerkungen</string>
<string name="menu_live">Live</string>
<string name="menu_speakers">Vortragende</string>
<string name="filter">Filter</string>
<string name="upcoming_only">Nur zukünftige</string>
<string name="export_bookmarks">Vormerkungen exportieren</string>
<string name="export_bookmarks_file_name">MatomoCamp %1$d vorgemerkt.ics</string>
<string name="import_bookmarks">Vormerkungen importieren</string>
<string name="import_bookmarks_error">Vormerkungen können von der ausgewählten Datei nicht importiert werden\n\nStellen Sie sicher, dass die Datei mit dieser App erstellt wurde und das Jahr stimmt</string>
<string name="no_bookmark">Keine Vormerkungen</string>
<string name="remove_bookmarks">Vormerkungen löschen</string>
<string name="bookmark_conflict_content_description">%1$s\n Andere Vormerkungen sind zur selben Zeit geplant.</string>
<plurals name="selected">
<item quantity="one">%1$d ausgewählt</item>
<item quantity="other">%1$d ausgewählt</item>
</plurals>
<string name="all">Alle</string>
<string name="next">Nächste</string>
<string name="next_empty">Während MatomoCamp werden hier die Events der nächsten 3 Stunden angezeigt.</string>
<string name="all_empty">Alle Events werden hier angezeigt</string>
<string name="now">Jetzt</string>
<string name="now_empty">Während MatomoCamp werden hier laufende Events angezeigt.</string>
<string name="search_events">Events durchsuchen</string>
<string name="search_settings_description">Events</string>
<string name="search_hint">Event, Kategorie, Person</string>
<string name="no_search_result">Keine Ergebnisse.</string>
<string name="event_not_found_error">Event konnte nicht gefunden werden.\nStellen Sie sicher, dass die Datenbank auf der neuersten Version ist.</string>
<string name="schedule_loading_error">Ein Fehler ist beim Aktualisieren aufgetreten. Bitte überprüfen Sie Ihre Internetverbindung.</string>
<string name="schedule_loading_retry_action">Nochmal versuchen</string>
<string name="search_length_error">Die Mindestlänge für Suchtexte ist 3 Zeichen.</string>
<string name="settings">Einstellungen</string>
<string name="settings_appearance">Aussehen</string>
<string name="settings_appearance_theme_title">Themes</string>
<string name="settings_timezone">Zeitzonen</string>
<string name="settings_timezone_title">Uhrzeiten in der lokalen Zeitzone anzeigen</string>
<string name="settings_timezone_text">MatomoCamp wird in der Mitteleuropäische Zeit organisiert (Europe/Berlin) Wenn Sie in einer anderen Zeitzone sind, achten Sie darauf, wann events für Sie beginnen. Sie können die nächste Option aktivieren um die Uhrzeiten in der App in der lokalen Zeit anzuzueigen. Beachten Sie aber, dass dieses Feature experimentell ist und möglicherweise falsche Daten anzeigt.</string>
<string name="settings_timezone_summary">Dies beeinflusst nur die angezeigten Uhrzeiten. Donnerstag/Freitag werden weiterhin in der MatomoCamp Zeitzone angezeigt.</string>
<string-array name="settings_appearance_theme_entries">
<item>System Theme</item>
<item>Helles Theme</item>
<item>Dunkles Theme</item>
</string-array>
<string name="settings_notifications">Benachrichtigungen</string>
<string name="settings_notifications_enabled_title">Benachrichtigungen aktivieren</string>
<string name="settings_notifications_enabled_summary">Wenn aktiviert, werden Sie über vorgemerkte Events benachrichtigt.</string>
<string name="settings_notifications_channel_title">Anpassen</string>
<string name="settings_notifications_vibrate_title">Vibrieren</string>
<string name="settings_notifications_vibrate_summary">Bei Benachrichtigungen vibrieren</string>
<string name="settings_notifications_led_title">LED blinken</string>
<string name="settings_notifications_led_summary">Bei Benachrichtigungen LED blinken</string>
<string name="settings_notifications_delay_title">Benachrichtigungszeitpunkt</string>
<string-array name="settings_notifications_delay_entries">
<item>5 Minuten vorher</item>
<item>10 Minuten vorher</item>
<item>15 Minuten vorher</item>
<item>30 Minuten vorher</item>
<item>1 Stunde vorher</item>
</string-array>
<string name="settings_info">Informationen</string>
<string name="settings_info_about_title">Über</string>
<string name="settings_info_version_title">Version</string>
<string name="notification_events_channel_name">Über bevorstehende Events benachrichtigen</string>
<string name="in_progress_content_description">%1$s (im Gange)</string>
<string name="event_details">Eventdetails</string>
<string name="track_content_description">Kategorie: %1$s</string>
<string name="time_content_description">Zeit: %1$s</string>
<string name="room_content_description">Raum: %1$s</string>
<string name="details_content_description">Details: %1$s</string>
<string name="in_bookmarks_content_description">Vorgemerkt: %1$s</string>
<string name="related_links_header">Links</string>
<string name="add_bookmark">Vormerken</string>
<string name="remove_bookmark">Von Vormerkungen entfernen</string>
<string name="share">Teilen</string>
<string name="add_to_agenda">Zum Kalender hinzufügen</string>
<string name="calendar_not_found">Kein kompatibler Kalender gefunden.</string>
<plurals name="speakers">
<item quantity="one">Vortragender</item>
<item quantity="other">Vortragende</item>
</plurals>
<string name="talks_header">Vorträge</string>
<string name="more_info">Mehr Informationen</string>
<string name="no_data">Keine Daten Verfügbar.</string>
<string name="website">Webseite</string>
<string name="open_in_webbrowser">Im Webbrowser öffnen</string>
</resources>

View file

@ -21,7 +21,6 @@
<string name="menu_bookmarks">Bookmarks</string> <string name="menu_bookmarks">Bookmarks</string>
<string name="menu_live">Live</string> <string name="menu_live">Live</string>
<string name="menu_speakers">Speakers</string> <string name="menu_speakers">Speakers</string>
<string name="menu_map">Map</string>
<!-- Bookmarks --> <!-- Bookmarks -->
<string name="filter">Filter</string> <string name="filter">Filter</string>
@ -40,24 +39,24 @@
<!-- Live --> <!-- Live -->
<string name="all">All</string> <string name="all">All</string>
<string name="all_empty">During MatomoCamp, the events to come in the next 3 hours will be shown here.</string> <string name="all_empty">All events are shown here.</string>
<string name="next">Next</string> <string name="next">Next</string>
<string name="next_empty">During MatomoCamp, the events to come in the next 3 hours will be shown here.</string> <string name="next_empty">During MatomoCamp, the events to come in the next 3 hours will be shown here.</string>
<string name="now">Now</string> <string name="now">Now</string>
<string name="now_empty">During MatomoCamp, the events in progress will be shown here.</string> <string name="now_empty">During MatomoCamp, the events in progress will be shown here.</string>
<!-- Track types --> <!-- Track types -->
<string name="other">Other</string> <string translatable="false" name="other">Other</string>
<string name="keynote">Keynote</string> <string translatable="false" name="keynote">Keynote</string>
<string name="main_track">Main track</string> <string translatable="false" name="main_track">Main track</string>
<string name="developer_room">Developer room</string> <string translatable="false" name="developer_room">Developer room</string>
<string name="lightning_talk">Lightning talk</string> <string translatable="false" name="lightning_talk">Lightning talk</string>
<string name="certification_exam">Certification Exam</string> <string translatable="false" name="certification_exam">Certification Exam</string>
<!-- Room statuses --> <!-- Room statuses -->
<string name="room_status_open">Open</string> <string translatable="false" name="room_status_open">Open</string>
<string name="room_status_full">Full</string> <string translatable="false" name="room_status_full">Full</string>
<string name="room_status_emergency_evacuation">Emergency evacuation</string> <string translatable="false" name="room_status_emergency_evacuation">Emergency evacuation</string>
<!-- Search --> <!-- Search -->
<string name="search_events">Search events</string> <string name="search_events">Search events</string>
@ -66,10 +65,10 @@
<string name="no_search_result">No result.</string> <string name="no_search_result">No result.</string>
<!-- External bookmarks --> <!-- External bookmarks -->
<string name="external_bookmarks_title">External bookmarks</string> <string translatable="false" name="external_bookmarks_title">External bookmarks</string>
<string name="external_bookmarks_add_all">Add all</string> <string translatable="false" name="external_bookmarks_add_all">Add all</string>
<string name="external_bookmarks_add_all_confirmation_title">Confirmation</string> <string translatable="false" name="external_bookmarks_add_all_confirmation_title">Confirmation</string>
<string name="external_bookmarks_add_all_confirmation_text">Add all events to your local bookmarks?</string> <string translatable="false" name="external_bookmarks_add_all_confirmation_text">Add all events to your local bookmarks?</string>
<!-- Errors --> <!-- Errors -->
<string name="event_not_found_error">Unable to load the session details.\nMake sure the database has been updated to the latest version.</string> <string name="event_not_found_error">Unable to load the session details.\nMake sure the database has been updated to the latest version.</string>
@ -82,7 +81,9 @@
<string name="settings_appearance">Appearance</string> <string name="settings_appearance">Appearance</string>
<string name="settings_appearance_theme_title">Theme</string> <string name="settings_appearance_theme_title">Theme</string>
<string name="settings_timezone">Time Zones</string> <string name="settings_timezone">Time Zones</string>
<string name="settings_timezone_title">AAAAAAAA</string> <string name="settings_timezone_title">Display times in local time zone</string>
<string name="settings_timezone_text">MatomoCamp is organized in Central European Time ("Europe/Berlin"). If you are in another time zone, please pay attention to when events start for you. You can enable the below setting to display times in this app in your local time zone. But keep in mind that this feature is experimental and might show incorrect results.</string>
<string name="settings_timezone_summary">This only influences the times shown. Thursday/Friday are still shown in the MatomoCamp time zone.</string>
<string-array name="settings_appearance_theme_entries"> <string-array name="settings_appearance_theme_entries">
<item>System theme</item> <item>System theme</item>
<item>Light theme</item> <item>Light theme</item>
@ -127,7 +128,7 @@
<!-- Event details --> <!-- Event details -->
<string name="event_details">Event details</string> <string name="event_details">Event details</string>
<string name="room_building">%1$s (Building %2$s)</string> <string translatable="false" name="room_building">%1$s (Building %2$s)</string>
<string name="track_content_description">Track: %1$s</string> <string name="track_content_description">Track: %1$s</string>
<string name="time_content_description">Time: %1$s</string> <string name="time_content_description">Time: %1$s</string>
<string name="room_content_description">Room: %1$s</string> <string name="room_content_description">Room: %1$s</string>
@ -138,24 +139,24 @@
<string name="remove_bookmark">Remove from bookmarks</string> <string name="remove_bookmark">Remove from bookmarks</string>
<string name="share">Share</string> <string name="share">Share</string>
<string name="add_to_agenda">Add to agenda</string> <string name="add_to_agenda">Add to agenda</string>
<string name="open_in_webbrowser">Open in web browser</string>
<string name="calendar_not_found">No compatible calendar application found.</string> <string name="calendar_not_found">No compatible calendar application found.</string>
<plurals name="speakers"> <plurals name="speakers">
<item quantity="one">Speaker</item> <item quantity="one">Speaker</item>
<item quantity="other">Speakers</item> <item quantity="other">Speakers</item>
</plurals> </plurals>
<!-- Speaker info --> <!-- Speaker info -->
<string name="talks_header">Talks</string> <string name="talks_header">Talks</string>
<string name="more_info">More info</string> <string name="more_info">More info</string>
<!-- Others --> <!-- Others -->
<string name="room_map">Room map</string> <string translatable="false" name="room_map">Room map</string>
<string name="directions">Directions to ULB</string> <string translatable="false" name="directions">Directions to ULB</string>
<string name="navigation">On-site navigation</string> <string translatable="false" name="navigation">On-site navigation</string>
<string name="no_data">No data available.</string> <string name="no_data">No data available.</string>
<string name="website">Website</string> <string name="website">Website</string>
<string name="about_text">Programmed by <a href="https://www.digitalia.be/">Christophe Beyls</a>. <string translatable="false" name="about_text">Programmed by <a href="https://www.digitalia.be/">Christophe Beyls</a>.
\nBased on <a href="https://github.com/cbeyls/fosdem-companion-android">FOSDEM Companion</a> \nBased on <a href="https://github.com/cbeyls/fosdem-companion-android">FOSDEM Companion</a>
and adapted to MatomoCamp by <a href="https://lw1.at/">Lukas Winkler</a>. and adapted to MatomoCamp by <a href="https://lw1.at/">Lukas Winkler</a>.
\n \n

View file

@ -12,11 +12,16 @@
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory app:title="@string/settings_timezone"> <PreferenceCategory app:title="@string/settings_timezone">
<Preference
app:key="pref_static_field_key"
app:selectable="false"
app:persistent="false"
app:summary="@string/settings_timezone_text"/>
<SwitchPreferenceCompat <SwitchPreferenceCompat
app:defaultValue="false" app:defaultValue="false"
app:key="use_local_timezone" app:key="use_local_timezone"
app:title="@string/settings_timezone_title" app:title="@string/settings_timezone_title"
app:summary="This only influences the times shown. Thursday/Friday are still shown in the MatomoCamp time zone." /> app:summary="@string/settings_timezone_summary" />
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory app:title="@string/settings_notifications"> <PreferenceCategory app:title="@string/settings_notifications">

View file

@ -12,11 +12,16 @@
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory app:title="@string/settings_timezone"> <PreferenceCategory app:title="@string/settings_timezone">
<Preference
app:key="pref_static_field_key"
app:selectable="false"
app:persistent="false"
app:summary="@string/settings_timezone_text"/>
<SwitchPreferenceCompat <SwitchPreferenceCompat
app:defaultValue="false" app:defaultValue="false"
app:key="use_local_timezone" app:key="use_local_timezone"
app:title="@string/settings_timezone_title" app:title="@string/settings_timezone_title"
app:summary="TEST" /> app:summary="@string/settings_timezone_summary" />
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory app:title="@string/settings_notifications"> <PreferenceCategory app:title="@string/settings_notifications">