Use the filterlist fragment view directly in the popover on phones

pull/14/head
Sam Bosley 13 years ago
parent 50eebc46b8
commit a99a484cbb

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- See the file "LICENSE" for the full license governing this code. -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/list_popover_bg"
android:orientation="vertical">
<!-- List -->
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="200dip"
android:layout_alignParentTop="true"
android:scrollbars="vertical"
android:cacheColorHint="#00000000"/>
<!-- Footer -->
<LinearLayout
android:id="@+id/lists_footer"
android:layout_width="fill_parent"
android:layout_height="50dip"
android:padding="5dip"
android:orientation="horizontal"
android:layout_alignParentBottom="true">
<Button
android:id="@+id/new_list_button"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/footer_editbutton"
android:gravity="center"
android:text="@string/FLA_new_list"
android:textStyle="bold"
style="@style/TextAppearance.TEA_action"/>
</LinearLayout>
</LinearLayout>

@ -3,8 +3,7 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
style="@style/Content"
android:orientation="vertical">
android:background="@drawable/list_popover_bg">
<!-- Footer -->
<LinearLayout
@ -14,6 +13,7 @@
android:layout_weight="1"
android:padding="5dip"
android:orientation="horizontal"
android:background="@android:color/transparent"
android:layout_alignParentBottom="true">
<Button

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- See the file "LICENSE" for the full license governing this code. -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/list_popover_bg">
<!-- Footer -->
<LinearLayout
android:id="@+id/lists_footer"
android:layout_width="fill_parent"
android:layout_height="50dip"
android:layout_weight="1"
android:padding="5dip"
android:orientation="horizontal"
android:background="@android:color/transparent"
android:layout_alignParentBottom="true">
<Button
android:id="@+id/new_list_button"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/footer_editbutton"
android:gravity="center"
android:text="@string/FLA_new_list"
android:textStyle="bold"
style="@style/TextAppearance.TEA_action"/>
</LinearLayout>
<!-- List -->
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="100"
android:layout_alignParentTop="true"
android:layout_above="@id/lists_footer"
android:scrollbars="vertical"
android:cacheColorHint="#00000000"/>
</RelativeLayout>

@ -1,17 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- See the file "LICENSE" for the full license governing this code. -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
style="@style/Content"
android:layout_height="wrap_content"
android:background="@drawable/list_popover_bg"
android:orientation="vertical">
<!-- List -->
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="300dip"
android:layout_alignParentTop="true"
android:scrollbars="vertical"
android:cacheColorHint="#00000000"/>
<!-- Footer -->
<LinearLayout
android:id="@+id/lists_footer"
android:layout_width="fill_parent"
android:layout_height="50dip"
android:layout_weight="1"
android:padding="5dip"
android:orientation="horizontal"
android:layout_alignParentBottom="true">
@ -28,16 +36,5 @@
</LinearLayout>
<!-- List -->
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="100"
android:layout_alignParentTop="true"
android:layout_above="@id/lists_footer"
android:scrollbars="vertical"
android:cacheColorHint="#00000000"/>
</RelativeLayout>
</LinearLayout>

@ -4,14 +4,11 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ListView
android:id="@android:id/list"
<FrameLayout
android:id="@+id/content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/gdi_arrow_up"
android:gravity="center"
android:background="@drawable/list_popover_bg"
android:fadingEdgeLength="0dp"/>
android:layout_below="@+id/gdi_arrow_up"/>
<ImageView
android:id="@+id/gdi_arrow_up"

@ -33,7 +33,6 @@ import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.Button;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener;
@ -141,7 +140,8 @@ public class FilterListActivity extends ListFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
ViewGroup parent = (ViewGroup) getActivity().getLayoutInflater().inflate(R.layout.filter_list_activity, container, false);
Activity activity = getActivity();
ViewGroup parent = (ViewGroup) activity.getLayoutInflater().inflate(R.layout.filter_list_activity, container, false);
return parent;
}
@ -259,8 +259,15 @@ public class FilterListActivity extends ListFragment {
adapter.registerRecevier();
// also load sync actions
Activity activity = getActivity();
Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_REQUEST_SYNC_ACTIONS);
getActivity().sendOrderedBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ);
activity.sendOrderedBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ);
if (activity instanceof TaskListWrapperActivity) {
((TaskListWrapperActivity) activity).setupPopoverWithFilterList(this);
}
}
@Override
@ -284,15 +291,6 @@ public class FilterListActivity extends ListFragment {
registerForContextMenu(getListView());
}
@Override
public void setListAdapter(ListAdapter adapter) {
super.setListAdapter(adapter);
Activity activity = getActivity();
if (activity instanceof TaskListWrapperActivity && adapter instanceof FilterAdapter) {
((TaskListWrapperActivity) activity).setPopoverAdapter((FilterAdapter) adapter);
}
}
/* ======================================================================
* ============================================================== actions

@ -6,6 +6,7 @@ import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.FrameLayout;
import android.widget.PopupWindow.OnDismissListener;
import android.widget.TextView;
@ -13,6 +14,7 @@ import com.timsu.astrid.R;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.astrid.adapter.FilterAdapter;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterListItem;
import com.todoroo.astrid.service.ThemeService;
import com.todoroo.astrid.ui.ListDropdownPopover;
@ -56,14 +58,6 @@ public class TaskListWrapperActivity extends AstridWrapperActivity {
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
actionBar.setCustomView(R.layout.header_nav_views);
popover = new ListDropdownPopover(TaskListWrapperActivity.this, R.layout.list_dropdown_popover);
popover.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss() {
setListsDropdownSelected(false);
}
});
listsNav = actionBar.getCustomView().findViewById(R.id.lists_nav);
lists = (TextView) actionBar.getCustomView().findViewById(R.id.list_title);
@ -77,6 +71,7 @@ public class TaskListWrapperActivity extends AstridWrapperActivity {
mMultipleFragments = false;
actionBar.setDisplayHomeAsUpEnabled(true);
listsNav.setOnClickListener(popupMenuClickListener);
createPopover();
}
Filter savedFilter = getIntent().getParcelableExtra(TaskListActivity.TOKEN_FILTER);
@ -84,7 +79,35 @@ public class TaskListWrapperActivity extends AstridWrapperActivity {
if (savedFilter != null)
lists.setText(savedFilter.title);
setupFilterlistFragment();
}
private void createPopover() {
popover = new ListDropdownPopover(TaskListWrapperActivity.this);
popover.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss() {
setListsDropdownSelected(false);
}
});
}
public void setupPopoverWithFilterList(FilterListActivity fla) {
if (popover != null) {
View view = fla.getView();
if (view != null) {
FrameLayout parent = (FrameLayout) view.getParent();
if (parent != null)
parent.removeView(view);
popover.setContent(view);
}
}
}
@Override
public boolean onFilterItemClicked(FilterListItem item) {
if (popover != null)
popover.dismiss();
return super.onFilterItemClicked(item);
}
private void setListsDropdownSelected(boolean selected) {
@ -102,15 +125,11 @@ public class TaskListWrapperActivity extends AstridWrapperActivity {
super.onResume();
}
public void setPopoverAdapter(FilterAdapter arrayAdapter) {
listDropdownAdapter = arrayAdapter;
popover.setAdapter(listDropdownAdapter, listClickListener);
}
@Override
protected void onPause() {
super.onPause();
popover.dismiss();
if (popover != null)
popover.dismiss();
}
@Override

@ -5,35 +5,29 @@ import greendroid.widget.QuickActionWidget;
import java.util.List;
import android.R;
import android.content.Context;
import android.graphics.Rect;
import android.view.View;
import android.view.View.MeasureSpec;
import android.view.ViewGroup;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.FrameLayout;
import android.widget.ListAdapter;
import android.widget.ListView;
import com.timsu.astrid.R;
public class ListDropdownPopover extends QuickActionWidget {
private final ListView listView;
public class ListDropdownPopover extends QuickActionWidget {
public ListDropdownPopover(Context context, int layout) {
public ListDropdownPopover(Context context) {
super(context);
setContentView(layout);
listView = (ListView) getContentView().findViewById(R.id.list);
setContentView(R.layout.list_dropdown_popover);
setFocusable(true);
setTouchable(true);
}
public void setAdapter(ListAdapter adapter, OnItemClickListener listener) {
listView.setAdapter(adapter);
listView.setOnItemClickListener(listener);
public void setContent(View content) {
FrameLayout contentContainer = (FrameLayout) getContentView().findViewById(R.id.content);
contentContainer.addView(content);
}
@Override

Loading…
Cancel
Save