From f529f7aca54cc82451f44bced76baf2aae7cebcd Mon Sep 17 00:00:00 2001 From: Caesar2011 Date: Fri, 27 Jul 2018 18:24:00 +0200 Subject: [PATCH] Canteen NAvigation Menu and Google Auth fix --- .../java/de/sebse/fuplanner/MainActivity.java | 31 +++++++++++-------- .../services/GoogleAuth/GoogleAuth.java | 12 +++++-- .../main/res/menu/activity_main_drawer.xml | 6 ++-- 3 files changed, 31 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/de/sebse/fuplanner/MainActivity.java b/app/src/main/java/de/sebse/fuplanner/MainActivity.java index df448e0..be22567 100644 --- a/app/src/main/java/de/sebse/fuplanner/MainActivity.java +++ b/app/src/main/java/de/sebse/fuplanner/MainActivity.java @@ -247,7 +247,7 @@ public class MainActivity extends AppCompatActivity private void checkAndDoLogin() { changeFragment(FRAGMENT_STARTUP); - this.getGoogleAuth().connect(() -> getGoogleAuth().getLoginState(credentials -> { + getGoogleAuth().getLoginState(credentials -> { if (credentials == null || credentials.getUsername() == null || credentials.getPassword() == null) { toLogoutState(); return; @@ -258,7 +258,7 @@ public class MainActivity extends AppCompatActivity log.e(error); toLogoutState(); }); - })); + }); } private void changeFragment(int newFragment) { @@ -288,17 +288,6 @@ public class MainActivity extends AppCompatActivity findViewById(R.id.app_bar_layout).setVisibility(View.GONE); } else { findViewById(R.id.app_bar_layout).setVisibility(View.VISIBLE); - getCanteenBrowser().getCanteens(success -> { - int i = 0; - for (Canteen module : success) { - MenuItem menuItem = mNavigationView.getMenu().add(Menu.NONE, Menu.NONE, 101 + i, module.getName()); - menuItem.setOnMenuItemClickListener(item -> { - log.d("canteen click", module.getId()); - return false; - }); - i++; - } - }, log::e); } // switch to logout if ((fragmentPage != FRAGMENT_STARTUP && fragmentPage != FRAGMENT_LOGIN) && (newFragment == FRAGMENT_STARTUP || newFragment == FRAGMENT_LOGIN)) { @@ -315,6 +304,7 @@ public class MainActivity extends AppCompatActivity }); mNavigationView.getMenu().clear(); mNavigationView.inflateMenu(R.menu.activity_main_drawer); + afterAnyMenuInflate(); } // switch to login else if ((fragmentPage == FRAGMENT_STARTUP || fragmentPage == FRAGMENT_LOGIN || fragmentPage == FRAGMENT_NONE) && (newFragment != FRAGMENT_STARTUP && newFragment != FRAGMENT_LOGIN)) { View header = mNavigationView.getHeaderView(0); @@ -325,6 +315,7 @@ public class MainActivity extends AppCompatActivity mNavigationView.getMenu().clear(); mNavigationView.inflateMenu(R.menu.activity_main_drawer_login); mNavigationView.setCheckedItem(R.id.nav_modules); + afterAnyMenuInflate(); getKVV().getModuleList(success -> { int i = 0; for (Iterator it = success.latestSemesterIterator(); it.hasNext(); ) { @@ -354,6 +345,20 @@ public class MainActivity extends AppCompatActivity } + private void afterAnyMenuInflate() { + getCanteenBrowser().getCanteens(success -> { + int i = 0; + for (Canteen module : success) { + MenuItem menuItem = mNavigationView.getMenu().add(Menu.NONE, Menu.NONE, 201 + i, module.getName()); + menuItem.setOnMenuItemClickListener(item -> { + log.d("canteen click", module.getId()); + return false; + }); + i++; + } + }, log::e); + } + diff --git a/app/src/main/java/de/sebse/fuplanner/services/GoogleAuth/GoogleAuth.java b/app/src/main/java/de/sebse/fuplanner/services/GoogleAuth/GoogleAuth.java index dd6f801..a4f78b1 100644 --- a/app/src/main/java/de/sebse/fuplanner/services/GoogleAuth/GoogleAuth.java +++ b/app/src/main/java/de/sebse/fuplanner/services/GoogleAuth/GoogleAuth.java @@ -32,19 +32,19 @@ public class GoogleAuth { private boolean mIsResolving; @Nullable private CredentialsListener mCredentialsListener; + private boolean isConnected = false; public GoogleAuth(FragmentActivity activity) { this.activity = activity; } - public void connect(final ConnectedListener listener) { + private void connect() { if (this.isUnavailable()) { Log.d(TAG, "STATUS: Google auth not available!"); - listener.connected(); return; } this.mCredentialsClient = getClient(); - listener.connected(); + this.isConnected = true; } @@ -56,6 +56,8 @@ public class GoogleAuth { credentialsListener.onCredentials(null); return; } + if (!this.isConnected) + connect(); CredentialRequest request = new CredentialRequest.Builder() .setPasswordLoginSupported(true) .build(); @@ -101,6 +103,8 @@ public class GoogleAuth { Toast.makeText(activity, "Google auth not available!", Toast.LENGTH_SHORT).show(); return; } + if (!this.isConnected) + connect(); Credential credential = new Credential.Builder(username) .setPassword(password) .build(); @@ -129,6 +133,8 @@ public class GoogleAuth { Log.d(TAG, "STATUS: Google auth not available!"); return; } + if (!this.isConnected) + connect(); Credential credential = new Credential.Builder(username) .setPassword(password) .build(); diff --git a/app/src/main/res/menu/activity_main_drawer.xml b/app/src/main/res/menu/activity_main_drawer.xml index 822175e..7f3a81c 100644 --- a/app/src/main/res/menu/activity_main_drawer.xml +++ b/app/src/main/res/menu/activity_main_drawer.xml @@ -5,7 +5,8 @@ + android:title="@string/canteen_plan" + android:orderInCategory="200" /> @@ -13,7 +14,8 @@ + android:title="@string/share" + android:orderInCategory="600"/>