Fixed NavigationView module selection

This commit is contained in:
Caesar2011
2018-07-13 14:54:10 +02:00
parent 3acc27c6f1
commit 6b2b7e623b
2 changed files with 12 additions and 11 deletions

View File

@@ -6,6 +6,7 @@ import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.util.Pair;
import android.view.View;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
@@ -238,12 +239,11 @@ public class MainActivity extends AppCompatActivity
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 = mNavigationView.getMenu().add(Menu.NONE, Menu.NONE, 101 + i, module.title);
final int finalI = i;
for (Iterator<Pair<Modules.Module, Integer>> it = success.latestSemesterIterator(); it.hasNext(); ) {
Pair<Modules.Module, Integer> module = it.next();
MenuItem menuItem = mNavigationView.getMenu().add(Menu.NONE, Menu.NONE, 101 + i, module.first.title);
menuItem.setOnMenuItemClickListener(item -> {
onModulesFragmentInteraction(finalI);
onModulesFragmentInteraction(module.second);
return false;
});
i++;

View File

@@ -2,6 +2,7 @@ package de.sebse.fuplanner.services.KVV.types;
import android.content.Context;
import android.support.annotation.NonNull;
import android.util.Pair;
import java.io.FileInputStream;
import java.io.FileOutputStream;
@@ -27,8 +28,8 @@ import de.sebse.fuplanner.tools.logging.Logger;
public class Modules implements Iterable<Modules.Module>, Serializable {
private final SortedModuleList list;
private String latestSemester = null;
private String username = null;
private transient Logger log = new Logger(this);
private String username;
//private transient Logger log = new Logger(this);
private static final String FILE_NAME = "ModuleListSaving";
public Modules(String username) {
@@ -107,8 +108,8 @@ public class Modules implements Iterable<Modules.Module>, Serializable {
};
}
public Iterator<Module> latestSemesterIterator() {
return new Iterator<Module>() {
public Iterator<Pair<Module, Integer>> latestSemesterIterator() {
return new Iterator<Pair<Module, Integer>>() {
private int index = -1;
private int next = -1;
@Override
@@ -119,13 +120,13 @@ public class Modules implements Iterable<Modules.Module>, Serializable {
}
@Override
public Module next() {
public Pair<Module, Integer> next() {
if (index == next)
predict();
if (next == -1)
return null;
index = next;
return list.get(index);
return new Pair<>(list.get(index), index);
}
@Override