Highlight list picker when pressed, don't allow popover in landscape mode

pull/14/head
Sam Bosley 13 years ago
parent 4bf7cbe57c
commit a950b0eae2

@ -1,14 +1,15 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:id="@+id/lists_nav"
android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="horizontal" android:orientation="horizontal">
android:gravity="center_vertical">
<TextView <TextView
android:id="@+id/lists_nav" android:id="@+id/list_title"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="fill_parent"
android:gravity="center_vertical"
style="@style/TextAppearance.GEN_EditLabel" style="@style/TextAppearance.GEN_EditLabel"
android:textSize="20dip"/> android:textSize="20dip"/>

@ -1,13 +1,14 @@
package com.todoroo.astrid.activity; package com.todoroo.astrid.activity;
import android.graphics.Color;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.ActionBar; import android.support.v4.app.ActionBar;
import android.support.v4.app.Fragment;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter; import android.widget.ArrayAdapter;
import android.widget.PopupWindow.OnDismissListener;
import android.widget.TextView; import android.widget.TextView;
import com.timsu.astrid.R; import com.timsu.astrid.R;
@ -20,6 +21,7 @@ public class TaskListWrapperActivity extends AstridWrapperActivity {
public static final String TOKEN_SELECTED_FILTER = "selectedFilter"; public static final String TOKEN_SELECTED_FILTER = "selectedFilter";
private int currSelection; private int currSelection;
private View listsNav;
private TextView lists; private TextView lists;
private ArrayAdapter<Filter> listDropdownAdapter; private ArrayAdapter<Filter> listDropdownAdapter;
@ -35,6 +37,14 @@ public class TaskListWrapperActivity extends AstridWrapperActivity {
lists.setText(item.title); lists.setText(item.title);
} }
}; };
private final OnClickListener popupMenuClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
listsNav.setBackgroundColor(Color.RED);
popover.show(v);
}
};
/** /**
* @see android.app.Activity#onCreate(Bundle) * @see android.app.Activity#onCreate(Bundle)
*/ */
@ -44,29 +54,38 @@ public class TaskListWrapperActivity extends AstridWrapperActivity {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.task_list_wrapper_activity); setContentView(R.layout.task_list_wrapper_activity);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Filter savedFilter = getIntent().getParcelableExtra(TaskListActivity.TOKEN_FILTER);
setupTasklistFragmentWithFilter(savedFilter);
setupFilterlistFragment();
ActionBar actionBar = getSupportActionBar(); ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE); actionBar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
actionBar.setCustomView(R.layout.header_nav_views); actionBar.setCustomView(R.layout.header_nav_views);
popover = new ListDropdownPopover(TaskListWrapperActivity.this, R.layout.list_dropdown_popover); popover = new ListDropdownPopover(TaskListWrapperActivity.this, R.layout.list_dropdown_popover);
popover.setOnDismissListener(new OnDismissListener() {
lists = (TextView) actionBar.getCustomView().findViewById(R.id.lists_nav);
lists.setOnClickListener(new OnClickListener() {
@Override @Override
public void onClick(View v) { public void onDismiss() {
popover.show(v); listsNav.setBackgroundColor(Color.TRANSPARENT);
} }
}); });
listsNav = actionBar.getCustomView().findViewById(R.id.lists_nav);
lists = (TextView) actionBar.getCustomView().findViewById(R.id.list_title);
currSelection = 0; currSelection = 0;
View container = findViewById(R.id.filterlist_fragment_container);
if (container != null) {
mMultipleFragments = true;
actionBar.setDisplayHomeAsUpEnabled(false);
listsNav.setOnClickListener(null);
} else {
mMultipleFragments = false;
actionBar.setDisplayHomeAsUpEnabled(true);
listsNav.setOnClickListener(popupMenuClickListener);
}
Filter savedFilter = getIntent().getParcelableExtra(TaskListActivity.TOKEN_FILTER);
setupTasklistFragmentWithFilter(savedFilter);
setupFilterlistFragment();
if (savedInstanceState != null) { if (savedInstanceState != null) {
currSelection = savedInstanceState.getInt(TOKEN_SELECTED_FILTER); currSelection = savedInstanceState.getInt(TOKEN_SELECTED_FILTER);
} }
@ -79,15 +98,6 @@ public class TaskListWrapperActivity extends AstridWrapperActivity {
@Override @Override
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
Fragment frag = getFilterListFragment();
if (frag != null) {
mMultipleFragments = true;
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
} else {
mMultipleFragments = false;
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
} }
public void updateDropdownNav(ArrayAdapter<Filter> arrayAdapter) { public void updateDropdownNav(ArrayAdapter<Filter> arrayAdapter) {
@ -98,6 +108,12 @@ public class TaskListWrapperActivity extends AstridWrapperActivity {
} }
} }
@Override
protected void onPause() {
super.onPause();
popover.dismiss();
}
@Override @Override
protected void onSaveInstanceState(Bundle icicle) { protected void onSaveInstanceState(Bundle icicle) {
icicle.putInt(TOKEN_SELECTED_FILTER, currSelection); icicle.putInt(TOKEN_SELECTED_FILTER, currSelection);

Loading…
Cancel
Save