Fixed item selection in menu when selecting a course
This commit is contained in:
@@ -40,6 +40,7 @@ public class MainActivity extends AppCompatActivity
|
||||
private GoogleAuth mGoogleAuth;
|
||||
private KVV mKVV;
|
||||
private Logger log = new Logger(this);
|
||||
private NavigationView mNavigationView;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
@@ -54,8 +55,8 @@ public class MainActivity extends AppCompatActivity
|
||||
drawer.addDrawerListener(toggle);
|
||||
toggle.syncState();
|
||||
|
||||
NavigationView navigationView = findViewById(R.id.nav_view);
|
||||
navigationView.setNavigationItemSelectedListener(this);
|
||||
mNavigationView = findViewById(R.id.nav_view);
|
||||
mNavigationView.setNavigationItemSelectedListener(this);
|
||||
|
||||
/*try {
|
||||
(new MensaPlan(getApplicationContext())).request(0, new Date());
|
||||
@@ -125,6 +126,8 @@ public class MainActivity extends AppCompatActivity
|
||||
@SuppressWarnings("StatementWithEmptyBody")
|
||||
@Override
|
||||
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
|
||||
//log.d("ITEM SELECTED", item.getTitle());
|
||||
|
||||
// Handle navigation view item clicks here.
|
||||
int id = item.getItemId();
|
||||
|
||||
@@ -156,6 +159,14 @@ public class MainActivity extends AppCompatActivity
|
||||
|
||||
DrawerLayout drawer = findViewById(R.id.drawer_layout);
|
||||
drawer.closeDrawer(GravityCompat.START);
|
||||
|
||||
int size = mNavigationView.getMenu().size();
|
||||
for (int k = 0; k < size; k++) {
|
||||
//mNavigationView.getMenu().getItem(k).setChecked(mNavigationView.getMenu().getItem(k).getOrder() == 101+itemPosition);
|
||||
mNavigationView.getMenu().getItem(k).setChecked(false);
|
||||
}
|
||||
item.setChecked(true);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -201,13 +212,12 @@ public class MainActivity extends AppCompatActivity
|
||||
fragmentTransaction.commit();
|
||||
findViewById(R.id.app_bar_layout).setVisibility(View.VISIBLE);
|
||||
|
||||
NavigationView navigationView = findViewById(R.id.nav_view);
|
||||
View header = navigationView.getHeaderView(0);
|
||||
View header = mNavigationView.getHeaderView(0);
|
||||
header.findViewById(R.id.imageView).setVisibility(View.GONE);
|
||||
header.findViewById(R.id.login_name).setVisibility(View.GONE);
|
||||
header.findViewById(R.id.login_page).setVisibility(View.VISIBLE);
|
||||
navigationView.getMenu().clear();
|
||||
navigationView.inflateMenu(R.menu.activity_main_drawer);
|
||||
mNavigationView.getMenu().clear();
|
||||
mNavigationView.inflateMenu(R.menu.activity_main_drawer);
|
||||
}
|
||||
|
||||
private void toLoginState(String username) {
|
||||
@@ -216,21 +226,20 @@ public class MainActivity extends AppCompatActivity
|
||||
fragmentTransaction.commit();
|
||||
findViewById(R.id.app_bar_layout).setVisibility(View.VISIBLE);
|
||||
|
||||
final NavigationView navigationView = findViewById(R.id.nav_view);
|
||||
View header = navigationView.getHeaderView(0);
|
||||
View header = mNavigationView.getHeaderView(0);
|
||||
header.findViewById(R.id.imageView).setVisibility(View.VISIBLE);
|
||||
header.findViewById(R.id.login_name).setVisibility(View.VISIBLE);
|
||||
header.findViewById(R.id.login_page).setVisibility(View.GONE);
|
||||
navigationView.getMenu().clear();
|
||||
navigationView.inflateMenu(R.menu.activity_main_drawer_login);
|
||||
navigationView.setCheckedItem(R.id.nav_modules);
|
||||
mNavigationView.getMenu().clear();
|
||||
mNavigationView.inflateMenu(R.menu.activity_main_drawer_login);
|
||||
mNavigationView.setCheckedItem(R.id.nav_modules);
|
||||
getKVV().getModuleList(success -> {
|
||||
log.d("Modules.get", success.size());
|
||||
//SubMenu moduleMenu = navigationView.getMenu().findItem(R.id.nav_modules).getSubMenu();
|
||||
int i = 0;
|
||||
for (Iterator<Modules.Module> it = success.latestSemesterIterator(); it.hasNext(); ) {
|
||||
Modules.Module module = it.next();
|
||||
MenuItem menuItem = navigationView.getMenu().add(Menu.NONE, Menu.NONE, 101 + i, module.title);
|
||||
MenuItem menuItem = mNavigationView.getMenu().add(Menu.NONE, Menu.NONE, 101 + i, module.title);
|
||||
final int finalI = i;
|
||||
menuItem.setOnMenuItemClickListener(item -> {
|
||||
onModulesFragmentInteraction(finalI);
|
||||
@@ -259,11 +268,17 @@ public class MainActivity extends AppCompatActivity
|
||||
@Override
|
||||
public void onModulesFragmentInteraction(final int itemPosition) {
|
||||
log.d("Item clicked", itemPosition);
|
||||
getKVV().getModuleList(success -> log.d(success.get(itemPosition).title), error -> log.e(error));
|
||||
//getKVV().getModuleList(success -> log.d(success.get(itemPosition).title), error -> log.e(error));
|
||||
|
||||
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
|
||||
fragmentTransaction.replace(R.id.fragcontainer, ModDetailFragment.newInstance(itemPosition));
|
||||
fragmentTransaction.commit();
|
||||
|
||||
int size = mNavigationView.getMenu().size();
|
||||
for (int k = 0; k < size; k++) {
|
||||
mNavigationView.getMenu().getItem(k).setChecked(mNavigationView.getMenu().getItem(k).getOrder() == 101+itemPosition);
|
||||
//mNavigationView.getMenu().getItem(k).setChecked(false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -59,9 +59,7 @@ public class KVVModuleList extends HTTPService {
|
||||
|
||||
|
||||
public void getModuleList(final NetworkCallback<Modules> callback, final NetworkErrorCallback errorCallback, boolean forceRefresh) {
|
||||
log.d("getModuleList");
|
||||
queueModuleDetails.add("list", () -> {
|
||||
log.d("getModuleList start", forceRefresh);
|
||||
if (this.moduleList != null && !forceRefresh) {
|
||||
callback.onResponse(this.moduleList);
|
||||
queueModuleDetails.next("list");
|
||||
|
||||
Reference in New Issue
Block a user