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

@ -27,6 +27,7 @@ import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.FilterCategory;
import com.todoroo.astrid.api.FilterListHeader;
import com.todoroo.astrid.api.FilterListItem;
import com.todoroo.astrid.utility.Preferences;
public class FilterAdapter extends BaseExpandableListAdapter {
@ -200,6 +201,10 @@ public class FilterAdapter extends BaseExpandableListAdapter {
* ============================================================= 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
*
@ -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
*/
protected void expandList(Parcelable[] filters) {
for(Parcelable filter : filters) {
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) {
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
* application registered to listen for this broadcast. Each application

Loading…
Cancel
Save