Skip to content

Commit

Permalink
Improve App's Stability (#254)
Browse files Browse the repository at this point in the history
  • Loading branch information
jakobkoerber authored May 6, 2024
1 parent 11c6e27 commit 6c25519
Show file tree
Hide file tree
Showing 125 changed files with 1,589 additions and 1,535 deletions.
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,6 @@ To ensure that campus_flutter runs on every supported platform, we need to make
| Package | Reason | Link |
|-------------------------|-------------------------------------------|----------------------------------------------|
| gRPC | Caching | https://github.com/jakobkoerber/grpc-dart |
| Google Maps Flutter iOS | Enable usage of SDK in ARM iOS Simulators | https://github.com/jakobkoerber/packages |
| Xml2Json | Fix Parsing of XML to JSON | https://github.com/jakobkoerber/xml2json |


Expand Down
2 changes: 1 addition & 1 deletion android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ android {
applicationId "de.tum.in.tumcampus"
minSdkVersion 26
targetSdkVersion flutter.targetSdkVersion
ndkVersion "25.1.8937393"
ndkVersion "26.1.10909125"
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
multiDexEnabled true
Expand Down
1 change: 0 additions & 1 deletion android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@
android:exported="true"
android:hardwareAccelerated="true"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/LaunchTheme"
android:windowSoftInputMode="adjustResize">

Expand Down
25 changes: 24 additions & 1 deletion android/app/src/main/kotlin/de/tum/in/tumcampus/MainActivity.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,28 @@
package de.tum.`in`.tumcampus

import android.annotation.SuppressLint
import android.content.Context
import android.content.pm.ActivityInfo
import android.os.Bundle
import io.flutter.embedding.android.FlutterActivity

class MainActivity : FlutterActivity()

class MainActivity : FlutterActivity() {
@SuppressLint("SourceLockedOrientationActivity")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

requestedOrientation = if (isTablet(this)) {
ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
} else {
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
}
}
}

fun isTablet(context: Context): Boolean {
val resources = context.resources
val configuration = resources.configuration
val screenWidthDp = configuration.screenWidthDp
return screenWidthDp >= resources.getDimension(R.dimen.min_tablet_width_dp)
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,17 @@ data class WidgetCalendarItem(
@SerialName("nr")
val id: String,
val status: String,
val url: String?,
val url: String? = null,
val title: String,
val description: String?,
val description: String? = null,
@Serializable(with = DateTimeSerializer::class)
@SerialName("dtstart")
val startDate: LocalDateTime,
@Serializable(with = DateTimeSerializer::class)
@SerialName("dtend")
val endDate: LocalDateTime,
val location: String?,
val color: Long?,
val location: String? = null,
val color: Long? = null,
var isFirstOnDay: Boolean = false
) {
fun getEventColor(context: Context): Int {
Expand Down
1 change: 1 addition & 0 deletions android/app/src/main/res/values/dimens.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@
<dimen name="material_small_padding">8dp</dimen>
<dimen name="material_tiny_padding">4dp</dimen>
<dimen name="card_view_corner_radius">2dp</dimen>
<dimen name="min_tablet_width_dp">600dp</dimen>
</resources>
2 changes: 1 addition & 1 deletion android/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-all.zip
2 changes: 1 addition & 1 deletion android/settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ pluginManagement {

plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version '8.3.2' apply false
id "com.android.application" version '8.4.0' apply false
id "org.jetbrains.kotlin.android" version "1.9.20" apply false
id "org.jetbrains.kotlin.plugin.serialization" version "1.9.20" apply false
id "com.google.gms.google-services" version "4.4.0" apply false
Expand Down
225 changes: 225 additions & 0 deletions assets/translations/de.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,225 @@
{
"home": "Start",
"grades": "Noten",
"lectures": "Vorlesungen",
"calendar": "Kalender",
"identification": "Identifikation",
"places": "Orte",
"settings": "Einstellungen",
"settingsAndFeedback": "Einstellungen & Feedback",
"generalSettings": "Allgemeine Einstellungen",
"comingSoon": "Demnächst verfügbar",
"appearance": "Darstellung",
"language": "Sprache",
"theme": "Theme",
"useWebView": "Web-Ansicht verwenden",
"hideFailedGrades": "Durchgefallene Noten ausblenden",
"defaultMapsApplication": "Standard-Kartenanwendung",
"map": "Karte",
"maps": "Karten",
"contactMore": "Kontakt & Mehr",
"tokenPermissions": "Berechtigungen für Token",
"permissionChangePossibleInTUMonline": "Du kannst deine Berechtigungen in TUMOnline ändern",
"login": "Anmelden",
"notLoggedIn": "Nicht angemeldet!",
"profileError": "Profil konnte nicht geladen werden!",
"welcomeToTheApp": "Willkommen in der\n TUM Campus App",
"enterYourIDToStart": "Gib deine TUM ID ein, um zu starten",
"continueWithoutID": "Ohne TUM ID fortfahren",
"unknown": "Unbekannt",
"loading": "Lade",
"loadingName": "Lade {}",
"checkPermissions": "Berechtigungen prüfen",
"done": "Fertig",
"studyRoom": "Lernraum",
"studyRooms": "Lernräume",
"nearestStudyRooms": "Nächste Lernräume",
"noNearFreeStudyRoomsFound": "Keine Lernräume in deiner Nähe gefunden",
"mostSearchedRooms": "Meist gesuchte Räume",
"tuition": "Tuition",
"tuitionFees": "Studiengebühren",
"tuitionPaid": "Bezahlt",
"tuitionDueDate": "Fälligkeitsdatum",
"tuitionOpenAmount": "Offener Betrag",
"versionNumber": "Version {} ({})",
"checkToken": "Token prüfen",
"tryAgain": "Erneut versuchen",
"contactSupport": "Support kontaktieren",
"cafeteria": "Mensa",
"cafeterias": "Mensen",
"latestNews": "Neueste Nachrichten",
"scheduledLectureDates": "Termine",
"lectureExamDate": "Prüfung",
"lectureCurriculum": "Lehrplan",
"basicLectureInformation": "Grundlegende Informationen",
"detailedLectureInformation": "Detaillierte Informationen",
"lectureLinks": "Veranstaltungslinks",
"thisMeeting": "Dieser Termin",
"lectureDetails": "Vorlesungsdetails",
"noLecturesSelected": "Keine Vorlesungen ausgewählt",
"showDirections": "Wegbeschreibung anzeigen",
"notAvailableAbbrev": "n. v.",
"becomeABetaTester": "Werde Beta-Tester",
"usOnGitHub": "TUM-Dev auf GitHub",
"lastUpdatedAt": "zuletzt aktualisiert {}",
"averageGrade": "Durchschnittsnote",
"fullWinter": "Wintersemester {}/{}",
"fullSummer": "Sommersemester {}",
"shortWinter": "WiSe {}/{}",
"shortSummer": "SoSe {}",
"lecture": "Vorlesung",
"courseContents": "Inhalte der Veranstaltung",
"courseObjective": "Ziel der Veranstaltung",
"note": "Anmerkung",
"exercise": "Tutorium",
"seminar": "Übung",
"tutorial": "Praktikum",
"practicalCourse": "Seminar",
"lectureWithIntegratedExcercises": "Vorlesung mit integrierten Übungen",
"written": "Schriftlich",
"graded": "Beurteilt",
"writtenAndOral": "Schriftlich/Mündlich",
"oral": "Mündlich",
"source": "Quelle: {}",
"news": "Nachrichten",
"movies": "Filme",
"personalData": "Persönliche Daten",
"calendarViewToday": "Heute",
"calendarViewDay": "Tag",
"calendarViewWeek": "Woche",
"calendarViewMonth": "Monat",
"events": "Veranstaltungen",
"noUpcomingEvents": "Keine Anstehenden Ereignisse",
"noEventsToday": "Keine Ereignisse heute",
"departures": "Abfahrten",
"departure": "Abfahrt",
"direction": "Richtung",
"station": "Haltestelle: ",
"line": "Linie",
"now": "JETZT",
"free": "Frei",
"occupiedUntil": "Belegt bis {}",
"rooms": "Räume",
"roomDetails": "Raumdetails",
"building": "Gebäude",
"nFreeRooms": {
"zero": "Keine freien Räume",
"one": "1 freier Raum",
"other": "{} freie Räume"
},
"mealPlans": "Essenspläne",
"noEntriesFound": "Keine {} gefunden!",
"enterQueryStart": "Stelle eine Suchanfrage",
"personalLectures": "Persönliche Vorlesungen",
"persons": "Personen",
"search": "Suche",
"today": "Heute",
"tomorrow": "Morgen",
"roomSearch": "Raum Suche",
"personSearch": "Personen Suche",
"badResponse": "Ungültige Antwort",
"pleaseTryAgain": "Bitte versuche es erneut!",
"connectionError": "Verbindungsfehler",
"makeSureInternetConnection": "Stelle sicher, dass du eine\n funktionierende Internetverbindung hast!",
"requestCancelled": "Anfrage abgebrochen",
"pleaseReport": "Bitte melden Sie dies als Fehler \nper E-Mail oder auf GitHub",
"connectionTimeout": "Zeitüberschreitung",
"decodingError": "Dekodierungsfehler",
"unknownError": "Unbekannter Fehler",
"monday": "Montag",
"tuesday": "Dienstag",
"wednesday": "Mittwoch",
"thursday": "Donnerstag",
"friday": "Freitag",
"weekend": "Wochenende",
"openingHours": "Öffnungszeiten",
"open": "{} offen von {} - {}",
"closed": "Geschlossen",
"closedOn": "{} geschlossen",
"closedToday": "Heute geschlossen",
"submitFeedback": "Feedback einreichen",
"name": "Name",
"message": "Nachricht",
"shareLocation": "Aktuellen Standort teilen",
"shareDeviceInformation": "Informationen über das Gerät teilen",
"submit": "Senden",
"yourMessage": "Deine Nachricht...",
"yourName": "Dein Name...",
"yourEmailTitle": "Deine E-Mail-Adresse",
"yourEmail": "[email protected]",
"invalidName": "Ungültiger Name",
"invalidMessage": "Ungültige Nachricht",
"invalidEmail": "Ungültige E-Mail-Adresse",
"unableToSend": "Nachricht kann nicht gesendet werden!",
"successfullySent": "Nachricht erfolgreich gesendet!\n Danke für Dein Feedback!",
"signInToTumOnline": "1. Melden Dich bei TUMonline an\n",
"selectTokenManagement": "2. Token-Verwaltung auswählen\n",
"activateToken": "3. Aktivieren Sie den neu erstellten Token und\n aktivieren Sie die gewünschten Berechtigungen",
"location": "Standort",
"locationOnboarding": "Aktiviere Standorte, um personalisierte Erlebnisse zu erreichen und Deinen Standort auf Raumfinder-Karten zu sehen.",
"continueOnboarding": "Weiter",
"showMore": "Mehr Anzeigen",
"licenses": "Lizenzen",
"privacyPolicy": "Datenschutzrichtlinie",
"createCalendarEvent": "Kalenderereignis erstellen",
"title": "Titel",
"annotation": "Bemerkung",
"from": "Von",
"to": "Bis",
"timeFrame": "Zeitrahmen",
"delete": "Löschen",
"deviceSettings": "Geräte-Einstellungen",
"edit": "Editieren",
"digitalStudentCard": "Digitale StudentCard",
"currentlyInBeta": "Aktuell in Testphase mit eingeschränkter Funktionalität!",
"validUntil": "Gültig bis",
"libraryBarcode": "Bibliotheks-Barcode",
"libraryNumber": "Bibliotheksnummer",
"birthday": "Geb.",
"studyId": "Matr.Nr.",
"locationServiceDisabled": "Ortungsdienst deaktiviert",
"permissionDenied": "Erlaubnis verweigert",
"onlyLetters": "Achte drauf, nur Buchstaben zu benutzen",
"onlyNumbers": "Achte drauf, nur Zahlen zu benutzen",
"personDetails": "Details zur Person",
"contact": "Kontakt",
"room": "Raum",
"back": "Zurück",
"editHome": "Home Anpassen",
"reorderDisable": "Widgets neu anordnen & deaktivieren",
"reset": "Zurücksetzen",
"selectPreferred": "Wähle deine bevorzugte {}",
"closest": "Näheste",
"noClosestStudyRoom": "Näheste Lernräume nicht ermittelbar!",
"cancel": "Abbrechen",
"selectAction": "Wähle eine Aktion",
"openIn": "In {} öffnen",
"unknownDirection": "Unbekannte Richtung",
"showWeekends": "Wochenenden anzeigen",
"color": "Farbe",
"resetLogin": "Zurücksetzen & Anmelden",
"resetPreferences": "Einstellungen zurücksetzen",
"noPermission": "Keine Berechtigung",
"tokenNotConfirmed": "Token nicht bestätigt",
"loginNeeded": "Login benötigt",
"tokenInvalid": "Token ungültig",
"rateExceeded": "Anfragequote überschritten",
"limitReached": "Token-Limit erreicht, maximal 10 Token pro Benutzer erlaubt",
"noUserSpecified": "Kein Benutzer spezifiziert",
"noUserFound": "Kein Benutzer gefunden",
"personNotFound": "Person nicht gefunden",
"invalidSearch": "Ungültige Suche",
"unknownException": "Unbekannter Fehler",
"noPermissionRecovery": "Stelle sicher, dass du die richtigen Berechtigungen für deinen Token aktivierst!",
"tokenNotConfirmedRecovery": "Gehe zu TumOnline und bestätige deinen Token!",
"loginNeededRecovery": "Diese Funktion kann nur genutzt werden, wenn du dich anmeldest!",
"tokenInvalidRecovery": "Bitte versuch einen neuen Token zu erstellen!",
"rateExceededRecovery": "Bitte versuche es später noch einmal!",
"limitReachedRecovery": "Bitte lösche einen deiner Token!",
"noUserSpecifiedRecovery": "Bitte gib deine Tum ID ein!",
"noUserFoundRecovery": "Überprüfe, ob du deine Tum ID richtig eingegeben hast!",
"personNotFoundRecovery": "Überprüfe, ob du den Namen richtig eingegeben hast!",
"invalidSearchRecovery": "Ein Suchbegriff mit weniger als 4 Zeichen darf keine Wildcards oder Sonderzeichen enthalten!",
"tumOnlineDegraded": "TUMonline Services sind derzeit beeinträchtigt!",
"tumOnlineMaintenance": "TUMonline Services werden derzeit gewartet!"
}
Loading

0 comments on commit 6c25519

Please sign in to comment.