From a950b0eae214cba4010ab3dad42d2e5d491ab57f Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Fri, 13 Jan 2012 17:25:18 -0800 Subject: [PATCH] Highlight list picker when pressed, don't allow popover in landscape mode --- astrid/res/layout/header_nav_views.xml | 11 ++-- .../activity/TaskListWrapperActivity.java | 60 ++++++++++++------- 2 files changed, 44 insertions(+), 27 deletions(-) diff --git a/astrid/res/layout/header_nav_views.xml b/astrid/res/layout/header_nav_views.xml index 42689ecd9..42c510e76 100644 --- a/astrid/res/layout/header_nav_views.xml +++ b/astrid/res/layout/header_nav_views.xml @@ -1,14 +1,15 @@ + android:orientation="horizontal"> diff --git a/astrid/src/com/todoroo/astrid/activity/TaskListWrapperActivity.java b/astrid/src/com/todoroo/astrid/activity/TaskListWrapperActivity.java index a1fe34a3c..26a0cbc55 100644 --- a/astrid/src/com/todoroo/astrid/activity/TaskListWrapperActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskListWrapperActivity.java @@ -1,13 +1,14 @@ package com.todoroo.astrid.activity; +import android.graphics.Color; import android.os.Bundle; import android.support.v4.app.ActionBar; -import android.support.v4.app.Fragment; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; +import android.widget.PopupWindow.OnDismissListener; import android.widget.TextView; import com.timsu.astrid.R; @@ -20,6 +21,7 @@ public class TaskListWrapperActivity extends AstridWrapperActivity { public static final String TOKEN_SELECTED_FILTER = "selectedFilter"; private int currSelection; + private View listsNav; private TextView lists; private ArrayAdapter listDropdownAdapter; @@ -35,6 +37,14 @@ public class TaskListWrapperActivity extends AstridWrapperActivity { 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) */ @@ -44,29 +54,38 @@ public class TaskListWrapperActivity extends AstridWrapperActivity { super.onCreate(savedInstanceState); setContentView(R.layout.task_list_wrapper_activity); - getSupportActionBar().setDisplayHomeAsUpEnabled(true); - - Filter savedFilter = getIntent().getParcelableExtra(TaskListActivity.TOKEN_FILTER); - setupTasklistFragmentWithFilter(savedFilter); - setupFilterlistFragment(); - ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE); - actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); actionBar.setCustomView(R.layout.header_nav_views); popover = new ListDropdownPopover(TaskListWrapperActivity.this, R.layout.list_dropdown_popover); - - lists = (TextView) actionBar.getCustomView().findViewById(R.id.lists_nav); - lists.setOnClickListener(new OnClickListener() { + popover.setOnDismissListener(new OnDismissListener() { @Override - public void onClick(View v) { - popover.show(v); + public void onDismiss() { + listsNav.setBackgroundColor(Color.TRANSPARENT); } }); + + listsNav = actionBar.getCustomView().findViewById(R.id.lists_nav); + lists = (TextView) actionBar.getCustomView().findViewById(R.id.list_title); 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) { currSelection = savedInstanceState.getInt(TOKEN_SELECTED_FILTER); } @@ -79,15 +98,6 @@ public class TaskListWrapperActivity extends AstridWrapperActivity { @Override protected void onResume() { super.onResume(); - - Fragment frag = getFilterListFragment(); - if (frag != null) { - mMultipleFragments = true; - getSupportActionBar().setDisplayHomeAsUpEnabled(false); - } else { - mMultipleFragments = false; - getSupportActionBar().setDisplayHomeAsUpEnabled(true); - } } public void updateDropdownNav(ArrayAdapter arrayAdapter) { @@ -98,6 +108,12 @@ public class TaskListWrapperActivity extends AstridWrapperActivity { } } + @Override + protected void onPause() { + super.onPause(); + popover.dismiss(); + } + @Override protected void onSaveInstanceState(Bundle icicle) { icicle.putInt(TOKEN_SELECTED_FILTER, currSelection);