Skip to content

Commit 6c25519

Browse files
authored
Improve App's Stability (#254)
1 parent 11c6e27 commit 6c25519

File tree

125 files changed

+1589
-1535
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

125 files changed

+1589
-1535
lines changed

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@ To ensure that campus_flutter runs on every supported platform, we need to make
7777
| Package | Reason | Link |
7878
|-------------------------|-------------------------------------------|----------------------------------------------|
7979
| gRPC | Caching | https://github.com/jakobkoerber/grpc-dart |
80-
| Google Maps Flutter iOS | Enable usage of SDK in ARM iOS Simulators | https://github.com/jakobkoerber/packages |
8180
| Xml2Json | Fix Parsing of XML to JSON | https://github.com/jakobkoerber/xml2json |
8281

8382

android/app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ android {
4646
applicationId "de.tum.in.tumcampus"
4747
minSdkVersion 26
4848
targetSdkVersion flutter.targetSdkVersion
49-
ndkVersion "25.1.8937393"
49+
ndkVersion "26.1.10909125"
5050
versionCode flutterVersionCode.toInteger()
5151
versionName flutterVersionName
5252
multiDexEnabled true

android/app/src/main/AndroidManifest.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@
5757
android:exported="true"
5858
android:hardwareAccelerated="true"
5959
android:launchMode="singleTop"
60-
android:screenOrientation="portrait"
6160
android:theme="@style/LaunchTheme"
6261
android:windowSoftInputMode="adjustResize">
6362

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,28 @@
11
package de.tum.`in`.tumcampus
22

3+
import android.annotation.SuppressLint
4+
import android.content.Context
5+
import android.content.pm.ActivityInfo
6+
import android.os.Bundle
37
import io.flutter.embedding.android.FlutterActivity
48

5-
class MainActivity : FlutterActivity()
9+
10+
class MainActivity : FlutterActivity() {
11+
@SuppressLint("SourceLockedOrientationActivity")
12+
override fun onCreate(savedInstanceState: Bundle?) {
13+
super.onCreate(savedInstanceState)
14+
15+
requestedOrientation = if (isTablet(this)) {
16+
ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
17+
} else {
18+
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
19+
}
20+
}
21+
}
22+
23+
fun isTablet(context: Context): Boolean {
24+
val resources = context.resources
25+
val configuration = resources.configuration
26+
val screenWidthDp = configuration.screenWidthDp
27+
return screenWidthDp >= resources.getDimension(R.dimen.min_tablet_width_dp)
28+
}

android/app/src/main/kotlin/de/tum/in/tumcampus/widgets/calendar/WidgetCalendarItem.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,17 @@ data class WidgetCalendarItem(
1414
@SerialName("nr")
1515
val id: String,
1616
val status: String,
17-
val url: String?,
17+
val url: String? = null,
1818
val title: String,
19-
val description: String?,
19+
val description: String? = null,
2020
@Serializable(with = DateTimeSerializer::class)
2121
@SerialName("dtstart")
2222
val startDate: LocalDateTime,
2323
@Serializable(with = DateTimeSerializer::class)
2424
@SerialName("dtend")
2525
val endDate: LocalDateTime,
26-
val location: String?,
27-
val color: Long?,
26+
val location: String? = null,
27+
val color: Long? = null,
2828
var isFirstOnDay: Boolean = false
2929
) {
3030
fun getEventColor(context: Context): Int {

android/app/src/main/res/values/dimens.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@
44
<dimen name="material_small_padding">8dp</dimen>
55
<dimen name="material_tiny_padding">4dp</dimen>
66
<dimen name="card_view_corner_radius">2dp</dimen>
7+
<dimen name="min_tablet_width_dp">600dp</dimen>
78
</resources>

android/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
33
zipStoreBase=GRADLE_USER_HOME
44
zipStorePath=wrapper/dists
5-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip
5+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-all.zip

android/settings.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ pluginManagement {
1818

1919
plugins {
2020
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
21-
id "com.android.application" version '8.3.2' apply false
21+
id "com.android.application" version '8.4.0' apply false
2222
id "org.jetbrains.kotlin.android" version "1.9.20" apply false
2323
id "org.jetbrains.kotlin.plugin.serialization" version "1.9.20" apply false
2424
id "com.google.gms.google-services" version "4.4.0" apply false

assets/translations/de.json

Lines changed: 225 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,225 @@
1+
{
2+
"home": "Start",
3+
"grades": "Noten",
4+
"lectures": "Vorlesungen",
5+
"calendar": "Kalender",
6+
"identification": "Identifikation",
7+
"places": "Orte",
8+
"settings": "Einstellungen",
9+
"settingsAndFeedback": "Einstellungen & Feedback",
10+
"generalSettings": "Allgemeine Einstellungen",
11+
"comingSoon": "Demnächst verfügbar",
12+
"appearance": "Darstellung",
13+
"language": "Sprache",
14+
"theme": "Theme",
15+
"useWebView": "Web-Ansicht verwenden",
16+
"hideFailedGrades": "Durchgefallene Noten ausblenden",
17+
"defaultMapsApplication": "Standard-Kartenanwendung",
18+
"map": "Karte",
19+
"maps": "Karten",
20+
"contactMore": "Kontakt & Mehr",
21+
"tokenPermissions": "Berechtigungen für Token",
22+
"permissionChangePossibleInTUMonline": "Du kannst deine Berechtigungen in TUMOnline ändern",
23+
"login": "Anmelden",
24+
"notLoggedIn": "Nicht angemeldet!",
25+
"profileError": "Profil konnte nicht geladen werden!",
26+
"welcomeToTheApp": "Willkommen in der\n TUM Campus App",
27+
"enterYourIDToStart": "Gib deine TUM ID ein, um zu starten",
28+
"continueWithoutID": "Ohne TUM ID fortfahren",
29+
"unknown": "Unbekannt",
30+
"loading": "Lade",
31+
"loadingName": "Lade {}",
32+
"checkPermissions": "Berechtigungen prüfen",
33+
"done": "Fertig",
34+
"studyRoom": "Lernraum",
35+
"studyRooms": "Lernräume",
36+
"nearestStudyRooms": "Nächste Lernräume",
37+
"noNearFreeStudyRoomsFound": "Keine Lernräume in deiner Nähe gefunden",
38+
"mostSearchedRooms": "Meist gesuchte Räume",
39+
"tuition": "Tuition",
40+
"tuitionFees": "Studiengebühren",
41+
"tuitionPaid": "Bezahlt",
42+
"tuitionDueDate": "Fälligkeitsdatum",
43+
"tuitionOpenAmount": "Offener Betrag",
44+
"versionNumber": "Version {} ({})",
45+
"checkToken": "Token prüfen",
46+
"tryAgain": "Erneut versuchen",
47+
"contactSupport": "Support kontaktieren",
48+
"cafeteria": "Mensa",
49+
"cafeterias": "Mensen",
50+
"latestNews": "Neueste Nachrichten",
51+
"scheduledLectureDates": "Termine",
52+
"lectureExamDate": "Prüfung",
53+
"lectureCurriculum": "Lehrplan",
54+
"basicLectureInformation": "Grundlegende Informationen",
55+
"detailedLectureInformation": "Detaillierte Informationen",
56+
"lectureLinks": "Veranstaltungslinks",
57+
"thisMeeting": "Dieser Termin",
58+
"lectureDetails": "Vorlesungsdetails",
59+
"noLecturesSelected": "Keine Vorlesungen ausgewählt",
60+
"showDirections": "Wegbeschreibung anzeigen",
61+
"notAvailableAbbrev": "n. v.",
62+
"becomeABetaTester": "Werde Beta-Tester",
63+
"usOnGitHub": "TUM-Dev auf GitHub",
64+
"lastUpdatedAt": "zuletzt aktualisiert {}",
65+
"averageGrade": "Durchschnittsnote",
66+
"fullWinter": "Wintersemester {}/{}",
67+
"fullSummer": "Sommersemester {}",
68+
"shortWinter": "WiSe {}/{}",
69+
"shortSummer": "SoSe {}",
70+
"lecture": "Vorlesung",
71+
"courseContents": "Inhalte der Veranstaltung",
72+
"courseObjective": "Ziel der Veranstaltung",
73+
"note": "Anmerkung",
74+
"exercise": "Tutorium",
75+
"seminar": "Übung",
76+
"tutorial": "Praktikum",
77+
"practicalCourse": "Seminar",
78+
"lectureWithIntegratedExcercises": "Vorlesung mit integrierten Übungen",
79+
"written": "Schriftlich",
80+
"graded": "Beurteilt",
81+
"writtenAndOral": "Schriftlich/Mündlich",
82+
"oral": "Mündlich",
83+
"source": "Quelle: {}",
84+
"news": "Nachrichten",
85+
"movies": "Filme",
86+
"personalData": "Persönliche Daten",
87+
"calendarViewToday": "Heute",
88+
"calendarViewDay": "Tag",
89+
"calendarViewWeek": "Woche",
90+
"calendarViewMonth": "Monat",
91+
"events": "Veranstaltungen",
92+
"noUpcomingEvents": "Keine Anstehenden Ereignisse",
93+
"noEventsToday": "Keine Ereignisse heute",
94+
"departures": "Abfahrten",
95+
"departure": "Abfahrt",
96+
"direction": "Richtung",
97+
"station": "Haltestelle: ",
98+
"line": "Linie",
99+
"now": "JETZT",
100+
"free": "Frei",
101+
"occupiedUntil": "Belegt bis {}",
102+
"rooms": "Räume",
103+
"roomDetails": "Raumdetails",
104+
"building": "Gebäude",
105+
"nFreeRooms": {
106+
"zero": "Keine freien Räume",
107+
"one": "1 freier Raum",
108+
"other": "{} freie Räume"
109+
},
110+
"mealPlans": "Essenspläne",
111+
"noEntriesFound": "Keine {} gefunden!",
112+
"enterQueryStart": "Stelle eine Suchanfrage",
113+
"personalLectures": "Persönliche Vorlesungen",
114+
"persons": "Personen",
115+
"search": "Suche",
116+
"today": "Heute",
117+
"tomorrow": "Morgen",
118+
"roomSearch": "Raum Suche",
119+
"personSearch": "Personen Suche",
120+
"badResponse": "Ungültige Antwort",
121+
"pleaseTryAgain": "Bitte versuche es erneut!",
122+
"connectionError": "Verbindungsfehler",
123+
"makeSureInternetConnection": "Stelle sicher, dass du eine\n funktionierende Internetverbindung hast!",
124+
"requestCancelled": "Anfrage abgebrochen",
125+
"pleaseReport": "Bitte melden Sie dies als Fehler \nper E-Mail oder auf GitHub",
126+
"connectionTimeout": "Zeitüberschreitung",
127+
"decodingError": "Dekodierungsfehler",
128+
"unknownError": "Unbekannter Fehler",
129+
"monday": "Montag",
130+
"tuesday": "Dienstag",
131+
"wednesday": "Mittwoch",
132+
"thursday": "Donnerstag",
133+
"friday": "Freitag",
134+
"weekend": "Wochenende",
135+
"openingHours": "Öffnungszeiten",
136+
"open": "{} offen von {} - {}",
137+
"closed": "Geschlossen",
138+
"closedOn": "{} geschlossen",
139+
"closedToday": "Heute geschlossen",
140+
"submitFeedback": "Feedback einreichen",
141+
"name": "Name",
142+
"message": "Nachricht",
143+
"shareLocation": "Aktuellen Standort teilen",
144+
"shareDeviceInformation": "Informationen über das Gerät teilen",
145+
"submit": "Senden",
146+
"yourMessage": "Deine Nachricht...",
147+
"yourName": "Dein Name...",
148+
"yourEmailTitle": "Deine E-Mail-Adresse",
149+
"yourEmail": "deineemail@tum.de",
150+
"invalidName": "Ungültiger Name",
151+
"invalidMessage": "Ungültige Nachricht",
152+
"invalidEmail": "Ungültige E-Mail-Adresse",
153+
"unableToSend": "Nachricht kann nicht gesendet werden!",
154+
"successfullySent": "Nachricht erfolgreich gesendet!\n Danke für Dein Feedback!",
155+
"signInToTumOnline": "1. Melden Dich bei TUMonline an\n",
156+
"selectTokenManagement": "2. Token-Verwaltung auswählen\n",
157+
"activateToken": "3. Aktivieren Sie den neu erstellten Token und\n aktivieren Sie die gewünschten Berechtigungen",
158+
"location": "Standort",
159+
"locationOnboarding": "Aktiviere Standorte, um personalisierte Erlebnisse zu erreichen und Deinen Standort auf Raumfinder-Karten zu sehen.",
160+
"continueOnboarding": "Weiter",
161+
"showMore": "Mehr Anzeigen",
162+
"licenses": "Lizenzen",
163+
"privacyPolicy": "Datenschutzrichtlinie",
164+
"createCalendarEvent": "Kalenderereignis erstellen",
165+
"title": "Titel",
166+
"annotation": "Bemerkung",
167+
"from": "Von",
168+
"to": "Bis",
169+
"timeFrame": "Zeitrahmen",
170+
"delete": "Löschen",
171+
"deviceSettings": "Geräte-Einstellungen",
172+
"edit": "Editieren",
173+
"digitalStudentCard": "Digitale StudentCard",
174+
"currentlyInBeta": "Aktuell in Testphase mit eingeschränkter Funktionalität!",
175+
"validUntil": "Gültig bis",
176+
"libraryBarcode": "Bibliotheks-Barcode",
177+
"libraryNumber": "Bibliotheksnummer",
178+
"birthday": "Geb.",
179+
"studyId": "Matr.Nr.",
180+
"locationServiceDisabled": "Ortungsdienst deaktiviert",
181+
"permissionDenied": "Erlaubnis verweigert",
182+
"onlyLetters": "Achte drauf, nur Buchstaben zu benutzen",
183+
"onlyNumbers": "Achte drauf, nur Zahlen zu benutzen",
184+
"personDetails": "Details zur Person",
185+
"contact": "Kontakt",
186+
"room": "Raum",
187+
"back": "Zurück",
188+
"editHome": "Home Anpassen",
189+
"reorderDisable": "Widgets neu anordnen & deaktivieren",
190+
"reset": "Zurücksetzen",
191+
"selectPreferred": "Wähle deine bevorzugte {}",
192+
"closest": "Näheste",
193+
"noClosestStudyRoom": "Näheste Lernräume nicht ermittelbar!",
194+
"cancel": "Abbrechen",
195+
"selectAction": "Wähle eine Aktion",
196+
"openIn": "In {} öffnen",
197+
"unknownDirection": "Unbekannte Richtung",
198+
"showWeekends": "Wochenenden anzeigen",
199+
"color": "Farbe",
200+
"resetLogin": "Zurücksetzen & Anmelden",
201+
"resetPreferences": "Einstellungen zurücksetzen",
202+
"noPermission": "Keine Berechtigung",
203+
"tokenNotConfirmed": "Token nicht bestätigt",
204+
"loginNeeded": "Login benötigt",
205+
"tokenInvalid": "Token ungültig",
206+
"rateExceeded": "Anfragequote überschritten",
207+
"limitReached": "Token-Limit erreicht, maximal 10 Token pro Benutzer erlaubt",
208+
"noUserSpecified": "Kein Benutzer spezifiziert",
209+
"noUserFound": "Kein Benutzer gefunden",
210+
"personNotFound": "Person nicht gefunden",
211+
"invalidSearch": "Ungültige Suche",
212+
"unknownException": "Unbekannter Fehler",
213+
"noPermissionRecovery": "Stelle sicher, dass du die richtigen Berechtigungen für deinen Token aktivierst!",
214+
"tokenNotConfirmedRecovery": "Gehe zu TumOnline und bestätige deinen Token!",
215+
"loginNeededRecovery": "Diese Funktion kann nur genutzt werden, wenn du dich anmeldest!",
216+
"tokenInvalidRecovery": "Bitte versuch einen neuen Token zu erstellen!",
217+
"rateExceededRecovery": "Bitte versuche es später noch einmal!",
218+
"limitReachedRecovery": "Bitte lösche einen deiner Token!",
219+
"noUserSpecifiedRecovery": "Bitte gib deine Tum ID ein!",
220+
"noUserFoundRecovery": "Überprüfe, ob du deine Tum ID richtig eingegeben hast!",
221+
"personNotFoundRecovery": "Überprüfe, ob du den Namen richtig eingegeben hast!",
222+
"invalidSearchRecovery": "Ein Suchbegriff mit weniger als 4 Zeichen darf keine Wildcards oder Sonderzeichen enthalten!",
223+
"tumOnlineDegraded": "TUMonline Services sind derzeit beeinträchtigt!",
224+
"tumOnlineMaintenance": "TUMonline Services werden derzeit gewartet!"
225+
}

0 commit comments

Comments
 (0)