Now we save expansion settings

pull/14/head
Tim Su 14 years ago
parent 4c6d2edf48
commit 6689788047

@ -182,14 +182,19 @@ public final class LocaleEditAlerts extends ExpandableListActivity {
@Override @Override
public void onGroupExpand(int groupPosition) { public void onGroupExpand(int groupPosition) {
FilterListItem item = (FilterListItem) adapter.getGroup(groupPosition); FilterListItem item = (FilterListItem) adapter.getGroup(groupPosition);
if(item instanceof Filter) { if(item instanceof Filter)
adapter.setSelection(item); adapter.setSelection(item);
} else if(item instanceof FilterCategory)
adapter.saveExpansionSetting((FilterCategory) item, true);
} }
@Override @Override
public void onGroupCollapse(int groupPosition) { public void onGroupCollapse(int groupPosition) {
onGroupExpand(groupPosition); FilterListItem item = (FilterListItem) adapter.getGroup(groupPosition);
if(item instanceof Filter)
adapter.setSelection(item);
else if(item instanceof FilterCategory)
adapter.saveExpansionSetting((FilterCategory) item, false);
} }
/** /**

@ -15,19 +15,19 @@ import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle; import android.os.Bundle;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
import android.view.ContextMenu; import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ExpandableListView; import android.widget.ExpandableListView;
import android.widget.ExpandableListView.ExpandableListContextMenuInfo;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.TextView; import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener;
import android.widget.Toast; import android.widget.Toast;
import android.widget.ExpandableListView.ExpandableListContextMenuInfo;
import android.widget.TextView.OnEditorActionListener;
import com.flurry.android.FlurryAgent; import com.flurry.android.FlurryAgent;
import com.timsu.astrid.R; import com.timsu.astrid.R;
@ -39,6 +39,7 @@ import com.todoroo.andlib.sql.QueryTemplate;
import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.adapter.FilterAdapter; import com.todoroo.astrid.adapter.FilterAdapter;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterCategory;
import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.api.FilterListItem;
import com.todoroo.astrid.api.SearchFilter; import com.todoroo.astrid.api.SearchFilter;
import com.todoroo.astrid.model.Task; import com.todoroo.astrid.model.Task;
@ -215,12 +216,16 @@ public class FilterListActivity extends ExpandableListActivity {
public void onGroupExpand(int groupPosition) { public void onGroupExpand(int groupPosition) {
FilterListItem item = (FilterListItem) adapter.getGroup(groupPosition); FilterListItem item = (FilterListItem) adapter.getGroup(groupPosition);
onItemClicked(item); onItemClicked(item);
if(item instanceof FilterCategory)
adapter.saveExpansionSetting((FilterCategory) item, true);
} }
@Override @Override
public void onGroupCollapse(int groupPosition) { public void onGroupCollapse(int groupPosition) {
FilterListItem item = (FilterListItem) adapter.getGroup(groupPosition); FilterListItem item = (FilterListItem) adapter.getGroup(groupPosition);
onItemClicked(item); onItemClicked(item);
if(item instanceof FilterCategory)
adapter.saveExpansionSetting((FilterCategory) item, false);
} }
@Override @Override

@ -27,6 +27,7 @@ import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.FilterCategory; import com.todoroo.astrid.api.FilterCategory;
import com.todoroo.astrid.api.FilterListHeader; import com.todoroo.astrid.api.FilterListHeader;
import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.api.FilterListItem;
import com.todoroo.astrid.utility.Preferences;
public class FilterAdapter extends BaseExpandableListAdapter { public class FilterAdapter extends BaseExpandableListAdapter {
@ -200,6 +201,10 @@ public class FilterAdapter extends BaseExpandableListAdapter {
* ============================================================= receiver * ============================================================= receiver
* ====================================================================== */ * ====================================================================== */
private static final String createExpansionPreference(FilterCategory category) {
return "Expansion:" + category.listingTitle; //$NON-NLS-1$
}
/** /**
* Receiver which receives intents to add items to the filter list * Receiver which receives intents to add items to the filter list
* *
@ -233,21 +238,36 @@ public class FilterAdapter extends BaseExpandableListAdapter {
} }
/** /**
* Expand the first category filter in this group * Expand the category filters in this group according to preference
* @param filters * @param filters
*/ */
protected void expandList(Parcelable[] filters) { protected void expandList(Parcelable[] filters) {
for(Parcelable filter : filters) { for(Parcelable filter : filters) {
if(filter instanceof FilterCategory) { if(filter instanceof FilterCategory) {
for(int i = 0; i < getGroupCount(); i++) String preference = createExpansionPreference((FilterCategory) filter);
if(!Preferences.getBoolean(preference, true))
continue;
int count = getGroupCount();
for(int i = 0; i < count; i++)
if(getGroup(i) == filter) { if(getGroup(i) == filter) {
listView.expandGroup(i); listView.expandGroup(i);
return; break;
} }
} }
} }
} }
/**
* Call to save user preference for whether a node is expanded
* @param category
* @param expanded
*/
public void saveExpansionSetting(FilterCategory category, boolean expanded) {
String preference = createExpansionPreference(category);
Preferences.setBoolean(preference, expanded);
}
/** /**
* Broadcast a request for lists. The request is sent to every * Broadcast a request for lists. The request is sent to every
* application registered to listen for this broadcast. Each application * application registered to listen for this broadcast. Each application

Loading…
Cancel
Save