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