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