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