Add longclick Drawer Preference dialog
This commit is contained in:
parent
ea628037ca
commit
ded0006913
|
@ -160,6 +160,7 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity
|
||||||
navAdapter = new NavListAdapter(itemAccess, this);
|
navAdapter = new NavListAdapter(itemAccess, this);
|
||||||
navList.setAdapter(navAdapter);
|
navList.setAdapter(navAdapter);
|
||||||
navList.setOnItemClickListener(navListClickListener);
|
navList.setOnItemClickListener(navListClickListener);
|
||||||
|
navList.setOnItemLongClickListener(newListLongClickListener);
|
||||||
|
|
||||||
findViewById(R.id.nav_settings).setOnClickListener(new View.OnClickListener() {
|
findViewById(R.id.nav_settings).setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -200,6 +201,41 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void showDrawerPreferencesDialog() {
|
||||||
|
final List<String> hiddenDrawerItems = UserPreferences.getHiddenDrawerItems();
|
||||||
|
String[] navLabels = new String[NAV_DRAWER_TAGS.length];
|
||||||
|
final boolean[] checked = new boolean[NAV_DRAWER_TAGS.length];
|
||||||
|
for (int i = 0; i < NAV_DRAWER_TAGS.length; i++) {
|
||||||
|
String tag = NAV_DRAWER_TAGS[i];
|
||||||
|
navLabels[i] = navAdapter.getLabel(tag);
|
||||||
|
if (!hiddenDrawerItems.contains(tag)) {
|
||||||
|
checked[i] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
||||||
|
builder.setTitle(R.string.drawer_preferences);
|
||||||
|
builder.setMultiChoiceItems(navLabels, checked, new DialogInterface.OnMultiChoiceClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
|
||||||
|
if (isChecked) {
|
||||||
|
hiddenDrawerItems.remove(NAV_DRAWER_TAGS[which]);
|
||||||
|
} else {
|
||||||
|
hiddenDrawerItems.add(NAV_DRAWER_TAGS[which]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
builder.setPositiveButton(R.string.confirm_label, new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
UserPreferences.setHiddenDrawerItems(MainActivity.this, hiddenDrawerItems);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
builder.setNegativeButton(R.string.cancel_label, null);
|
||||||
|
builder.create().show();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public ActionBar getMainActivtyActionBar() {
|
public ActionBar getMainActivtyActionBar() {
|
||||||
return getSupportActionBar();
|
return getSupportActionBar();
|
||||||
}
|
}
|
||||||
|
@ -314,6 +350,19 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private AdapterView.OnItemLongClickListener newListLongClickListener = new AdapterView.OnItemLongClickListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
|
||||||
|
if(position < navAdapter.getTags().size()) {
|
||||||
|
showDrawerPreferencesDialog();
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPostCreate(Bundle savedInstanceState) {
|
protected void onPostCreate(Bundle savedInstanceState) {
|
||||||
super.onPostCreate(savedInstanceState);
|
super.onPostCreate(savedInstanceState);
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
<!-- Main activity -->
|
<!-- Main activity -->
|
||||||
<string name="drawer_open">Open menu</string>
|
<string name="drawer_open">Open menu</string>
|
||||||
<string name="drawer_close">Close menu</string>
|
<string name="drawer_close">Close menu</string>
|
||||||
|
<string name="drawer_preferences">Drawer Preferences</string>
|
||||||
|
|
||||||
<!-- Webview actions -->
|
<!-- Webview actions -->
|
||||||
<string name="open_in_browser_label">Open in browser</string>
|
<string name="open_in_browser_label">Open in browser</string>
|
||||||
|
|
Loading…
Reference in New Issue