Canteen NAvigation Menu and Google Auth fix

This commit is contained in:
Caesar2011
2018-07-27 18:24:00 +02:00
parent b34e4d5664
commit f529f7aca5
3 changed files with 31 additions and 18 deletions

View File

@@ -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<Modules.Module> 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);
}

View File

@@ -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();

View File

@@ -5,7 +5,8 @@
<item
android:id="@+id/nav_dining"
android:icon="@drawable/ic_local_dining"
android:title="@string/canteen_plan" />
android:title="@string/canteen_plan"
android:orderInCategory="200" />
</group>
<item android:title="@string/options">
@@ -13,7 +14,8 @@
<item
android:id="@+id/nav_share"
android:icon="@drawable/ic_menu_share"
android:title="@string/share"/>
android:title="@string/share"
android:orderInCategory="600"/>
</menu>
</item>