Make ContactSelectionActivity useable
This fixes the glaring bugs with ContactSelectionActivity.
It doesn't attempt to unify the ContactSelectionActivity
styling with the search styling in PeopleActivity.
Also fix a FAB RTL issue
Bug: 16164583
Bug: 15596131
Change-Id: I4d5b2cc8c5d20ae5cc2caa3e26550a51acc2d966
diff --git a/res/layout-sw600dp/contact_picker.xml b/res/layout-sw600dp/contact_picker.xml
deleted file mode 100644
index 558c604..0000000
--- a/res/layout-sw600dp/contact_picker.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- style="@style/ContactPickerLayout"
- android:orientation="vertical"
- android:layout_height="match_parent">
- <!-- Right bound should be aligned to ListView's right edge. -->
- <!--
- The SearchView should have a max width to prevent the dialog from resizing to the
- full screen width of the device. The precise value of the max width is not as important
- because the SearchView can take on a smaller width than the max width, so in some cases it
- will take on the automatically computed width of a dialog (based on the dialog contents)
- from the framework.
- -->
- <view
- class="android.widget.SearchView"
- android:id="@+id/search_view"
- android:layout_width="match_parent"
- android:maxWidth="@dimen/contact_picker_search_view_max_width"
- android:layout_height="wrap_content"
- android:layout_marginLeft="0dip"
- android:layout_marginRight="@dimen/list_visible_scrollbar_padding"
- android:layout_marginStart="0dip"
- android:layout_marginEnd="@dimen/list_visible_scrollbar_padding"
- android:paddingRight="0dip"
- android:paddingEnd="0dip"
- android:iconifiedByDefault="false" />
- <!--
- This will contain an appropriate contacts list. Add a min height to prevent
- the dialog from resizing too much when the search results change. The activity dialog
- is wrap content for height in the framework, so there is no way around this.
- -->
- <FrameLayout
- android:id="@+id/list_container"
- android:layout_width="match_parent"
- android:minHeight="@dimen/contact_picker_contact_list_min_height"
- android:layout_height="0dip"
- android:layout_weight="1" />
-
- <!-- This should look like a menu on the split action bar. -->
- <LinearLayout
- android:id="@+id/new_contact"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:minHeight="48dip"
- android:background="@drawable/gray_action_bar_background"
- android:paddingLeft="16dip"
- android:paddingRight="16dip"
- android:paddingStart="16dip"
- android:paddingEnd="16dip">
- <TextView
- android:id="@android:id/title"
- android:layout_width="0dip"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:layout_gravity="center"
- android:gravity="center"
- android:duplicateParentState="true"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:textColor="@color/action_bar_button_text_color"
- style="@android:style/Widget.Holo.Light.ActionBar.TabText"
- android:text="@string/pickerNewContactText"/>
- </LinearLayout>
-</LinearLayout>
diff --git a/res/layout/contact_picker.xml b/res/layout/contact_picker.xml
index 2752b0c..b6741cf 100644
--- a/res/layout/contact_picker.xml
+++ b/res/layout/contact_picker.xml
@@ -14,26 +14,16 @@
limitations under the License.
-->
-<view
+<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
- class="com.android.contacts.widget.FullHeightLinearLayout"
style="@style/ContactPickerLayout"
- android:orientation="vertical"
- android:layout_height="match_parent">
- <view
- class="android.widget.SearchView"
- android:id="@+id/search_view"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginLeft="0dip"
- android:layout_marginRight="32dip"
- android:layout_marginStart="0dip"
- android:layout_marginEnd="32dip"
- android:iconifiedByDefault="false" />
- <!-- will contain an appropriate contacts list -->
+ android:layout_height="match_parent"
+ android:layout_width="match_parent">
+
<FrameLayout
android:id="@+id/list_container"
android:layout_width="match_parent"
- android:layout_height="0dip"
- android:layout_weight="1" />
-</view>
+ android:layout_height="match_parent" />
+
+ <include layout="@layout/floating_action_button" />
+</RelativeLayout>
diff --git a/res/layout/floating_action_button.xml b/res/layout/floating_action_button.xml
new file mode 100644
index 0000000..dd41dbe
--- /dev/null
+++ b/res/layout/floating_action_button.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<!-- This expects to be included inside a RelativeLayout -->
+<FrameLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/floating_action_button_container"
+ android:layout_width="@dimen/floating_action_button_width"
+ android:layout_height="@dimen/floating_action_button_height"
+ android:layout_marginEnd="@dimen/floating_action_button_margin_right"
+ android:layout_marginBottom="@dimen/floating_action_button_margin_bottom"
+ android:layout_alignParentEnd="true"
+ android:layout_alignParentBottom="true">
+
+ <ImageButton
+ android:id="@+id/floating_action_button"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@drawable/floating_action_button"
+ android:contentDescription="@string/action_menu_add_new_contact_button"
+ android:src="@drawable/ic_person_add_24dp"/>
+</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/people_activity.xml b/res/layout/people_activity.xml
index bcdf08f..6b65945 100644
--- a/res/layout/people_activity.xml
+++ b/res/layout/people_activity.xml
@@ -43,21 +43,5 @@
android:layout_width="match_parent" />
</FrameLayout>
- <FrameLayout
- android:id="@+id/floating_action_button_container"
- android:layout_width="@dimen/floating_action_button_width"
- android:layout_height="@dimen/floating_action_button_height"
- android:layout_marginRight="@dimen/floating_action_button_margin_right"
- android:layout_marginBottom="@dimen/floating_action_button_margin_bottom"
- android:layout_alignParentRight="true"
- android:layout_alignParentBottom="true">
-
- <ImageButton
- android:id="@+id/floating_action_button"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@drawable/floating_action_button"
- android:contentDescription="@string/action_menu_add_new_contact_button"
- android:src="@drawable/ic_person_add_24dp"/>
- </FrameLayout>
+ <include layout="@layout/floating_action_button" />
</RelativeLayout>
diff --git a/res/menu/contact_picker_options.xml b/res/menu/contact_picker_options.xml
deleted file mode 100644
index 89196ba..0000000
--- a/res/menu/contact_picker_options.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<!-- Used with DialtactsActivity's search mode. -->
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:id="@+id/create_new_contact"
- android:title="@string/pickerNewContactText"
- android:showAsAction="ifRoom" />
-</menu>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 5823ed7..57c9358 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -111,6 +111,11 @@
<item name="android:icon">@android:color/transparent</item>
</style>
+ <style name="ContactsPickerActionBarStyle" parent="@style/ContactsActionBarStyle">
+ <!-- when first loading, don't show title or up button -->
+ <item name="android:displayOptions"></item>
+ </style>
+
<!-- Styling for tabs. -->
<style name="ContactsActionBarTabStyle" parent="@android:style/Widget.Material.Light.ActionBar.TabView">
<item name="android:background">@drawable/action_bar_tab</item>
@@ -163,7 +168,9 @@
<item name="android:listSelector">?android:attr/listChoiceBackgroundIndicator</item>
</style>
- <style name="ContactPickerTheme" parent="@style/PeopleTheme" />
+ <style name="ContactPickerTheme" parent="@style/PeopleTheme" >
+ <item name="android:actionBarStyle">@style/ContactsPickerActionBarStyle</item>
+ </style>
<style name="ContactPickerLayout" parent="ContactPickerTheme">
<item name="android:layout_width">match_parent</item>