From 662f9bc240181229090e251c917346701e9f3524 Mon Sep 17 00:00:00 2001
From: Joshua <8Joshua@web.de>
Date: Wed, 15 Aug 2018 17:34:48 +0200
Subject: [PATCH] =?UTF-8?q?Nach=20einen=20erneuten=20Login=20wird=20der=20?=
=?UTF-8?q?Nutzer=20nun=20auf=20das=20FRAGMENT=20weitergeleitet,=20das=20e?=
=?UTF-8?q?r=20vor=20der=20Aktualisierung=20gesehen=20hat.=20Allerdings=20?=
=?UTF-8?q?beim=20Kalender=20auf=20das=20Aktuelle=20Datum=20und=20bei=20ei?=
=?UTF-8?q?nem=20Modul=20immer=20zur=20Modul=20=C3=9Cbersicht.=20Deutsche?=
=?UTF-8?q?=20Strings=20f=C3=BCr=20Kantine=20erweitert?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/de/sebse/fuplanner/MainActivity.java | 44 +++++++++++++++++--
app/src/main/res/values-de/strings.xml | 8 ++++
2 files changed, 48 insertions(+), 4 deletions(-)
diff --git a/app/src/main/java/de/sebse/fuplanner/MainActivity.java b/app/src/main/java/de/sebse/fuplanner/MainActivity.java
index b072e7f..e40c04a 100644
--- a/app/src/main/java/de/sebse/fuplanner/MainActivity.java
+++ b/app/src/main/java/de/sebse/fuplanner/MainActivity.java
@@ -54,6 +54,10 @@ public class MainActivity extends AppCompatActivity
private static final int FRAGMENT_CANTEENS_DETAILS = 6;
private static final int FRAGMENT_PREFERENCES = 7;
+ //zum speichern des angezeigten FRAGMENTs bei einem erneuten login (z.B. Cookies abgelaufen)
+ private int last_Fragment = FRAGMENT_NONE;
+ private String last_Fragment_id = "";
+
private static final String ARG_FRAGMENT_PAGE = "fragment_page";
private static final String ARG_FRAGMENT_STATUS = "fragment_status";
@@ -162,7 +166,6 @@ public class MainActivity extends AppCompatActivity
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
-
switch (id) {
case R.id.nav_modules:
changeFragment(FRAGMENT_MODULES);
@@ -192,8 +195,8 @@ public class MainActivity extends AppCompatActivity
this.toLogoutState();
});
break;
- }
+ }
DrawerLayout drawer = findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
@@ -245,7 +248,22 @@ public class MainActivity extends AppCompatActivity
}
private int getDefaultFragmentAfterLogin() {
- return FRAGMENT_MODULES;
+ return getDefaultFragmentAfterLogin(new String[1]);
+ }
+
+ private int getDefaultFragmentAfterLogin(String[] id) {
+ //log.d("Cookies last_Fragment", last_Fragment);
+ if (last_Fragment == FRAGMENT_NONE){
+ id[0]="";
+ return FRAGMENT_MODULES;
+ }
+ else {
+ //log.d("changeFragment last_Fragment_id gesetzt", last_Fragment_id);
+ id[0] = last_Fragment_id;
+ return last_Fragment;
+ }
+
+
}
private void toLogoutState() {
@@ -277,7 +295,12 @@ public class MainActivity extends AppCompatActivity
toLogoutState();
return;
}
- this.getKVV().login(credentials.getUsername(), credentials.getPassword(), success -> toLoginState(success, getDefaultFragmentAfterLogin(), ""),
+ String[] id = new String[1];
+ id[0] = "";
+
+ int fragment = getDefaultFragmentAfterLogin(id);
+ //log.d("changeFragment in checkAndDoLogin:", fragment, id[0]);
+ this.getKVV().login(credentials.getUsername(), credentials.getPassword(), success -> toLoginState(success, fragment , id[0]),
error -> {
log.e(error);
toLogoutState();
@@ -290,32 +313,45 @@ public class MainActivity extends AppCompatActivity
}
private void changeFragment(int newFragment, String newData) {
+ //log.d("changeFragment: ", newFragment, newData);
onTitleTextChange(R.string.courses);
Fragment fragment;
switch (newFragment) {
case FRAGMENT_MODULES:
fragment = ModulesFragment.newInstance();
+ last_Fragment = FRAGMENT_MODULES;
+ last_Fragment_id = "";
break;
case FRAGMENT_MODULES_DETAILS:
fragment = ModDetailFragment.newInstance(newData);
+ last_Fragment = FRAGMENT_MODULES_DETAILS;
+ last_Fragment_id = newData;
break;
case FRAGMENT_LOGIN:
fragment = LoginFragment.newInstance();
break;
case FRAGMENT_SCHEDULE:
fragment = ScheduleFragment.newInstance();
+ last_Fragment = FRAGMENT_SCHEDULE;
+ last_Fragment_id = "";
break;
case FRAGMENT_CANTEENS:
fragment = CanteensFragment.newInstance();
+ last_Fragment = FRAGMENT_CANTEENS;
+ last_Fragment_id = "";
break;
case FRAGMENT_CANTEENS_DETAILS:
fragment = DaySwitcherFragment.newInstance(Integer.parseInt(newData));
+ last_Fragment = FRAGMENT_NONE;
+ last_Fragment_id = newData;
break;
case FRAGMENT_PREFERENCES:
fragment = PrefsFragment.newInstance();
+ //last_Fragment = FRAGMENT_NONE;
break;
default: // FRAGMENT_STARTUP
fragment = StartupFragment.newInstance();
+ //last_Fragment = FRAGMENT_NONE;
break;
}
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 79b57c3..0c14665 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -46,4 +46,12 @@
Kantinenpreisgruppe
Zeige nur Preise einer Gruppe
Preisgruppe
+ Hauptgerichte
+ Spezial Gerichte
+ Beilagen
+ Nachtisch
+ Salate
+ Suppen
+ Vorspeisen
+ Sonstiges
\ No newline at end of file