diff --git a/app/src/main/java/de/sebse/fuplanner/MainActivity.java b/app/src/main/java/de/sebse/fuplanner/MainActivity.java index 407ebc8..c429dce 100644 --- a/app/src/main/java/de/sebse/fuplanner/MainActivity.java +++ b/app/src/main/java/de/sebse/fuplanner/MainActivity.java @@ -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 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 diff --git a/app/src/main/java/de/sebse/fuplanner/services/KVV/KVVModuleList.java b/app/src/main/java/de/sebse/fuplanner/services/KVV/KVVModuleList.java index da5a7fb..a3f4179 100644 --- a/app/src/main/java/de/sebse/fuplanner/services/KVV/KVVModuleList.java +++ b/app/src/main/java/de/sebse/fuplanner/services/KVV/KVVModuleList.java @@ -59,9 +59,7 @@ public class KVVModuleList extends HTTPService { public void getModuleList(final NetworkCallback 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");