Remove AppCompat library from Contacts (1/3)
This will reduce size of GoogleContacts-N.apk by 0.7 MB (8.4 MB --> 7.7 MB)
* CL was prepared by running the following:
git revert --no-commit e7fd1ad19023a0b79b232462bcb988676c605b9a # https://googleplex-android-review.git.corp.google.com/#/c/841451/
git revert --no-commit 3d53e233beb1742d3274fb27576d4d1420e4aac2 # https://googleplex-android-review.git.corp.google.com/#/c/841473/
git revert --no-commit 903fbfc4fb63ceaccddb722217a5d5e9d80f88b3 # https://googleplex-android-review.git.corp.google.com/#/c/839578/
Also:
- added import view.Window back to PeopleActivity;
- removed an AppCompat style
Bug 27257097
Change-Id: I21653376c78ef0a435f90b565b6c40dd5b747317
diff --git a/Android.mk b/Android.mk
index ad13292..566e27e 100644
--- a/Android.mk
+++ b/Android.mk
@@ -20,7 +20,6 @@
LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs)) \
- $(support_library_root_dir)/v7/appcompat/res \
$(support_library_root_dir)/v7/cardview/res
LOCAL_ASSET_DIR := $(addprefix $(LOCAL_PATH)/, $(asset_dirs))
@@ -28,7 +27,6 @@
--auto-add-overlay \
--extra-packages com.android.contacts.common \
--extra-packages com.android.phone.common \
- --extra-packages android.support.v7.appcompat \
--extra-packages android.support.v7.cardview
LOCAL_STATIC_JAVA_LIBRARIES := \
@@ -36,7 +34,6 @@
android-common \
guava \
android-support-v13 \
- android-support-v7-appcompat \
android-support-v7-cardview \
android-support-v7-palette \
android-support-v4 \
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 45826d1..f415d88 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -64,7 +64,7 @@
<!-- The main Contacts activity with the contact list, favorites, and groups. -->
<activity android:name=".activities.PeopleActivity"
android:label="@string/launcherActivityLabel"
- android:theme="@style/PeopleActivityTheme"
+ android:theme="@style/PeopleTheme"
android:clearTaskOnLaunch="true"
android:launchMode="singleTop"
android:resizeableActivity="true"
diff --git a/res/layout-land/contacts_unavailable_fragment_content.xml b/res/layout-land/contacts_unavailable_fragment_content.xml
index 3d5a0b0..4f26db6 100644
--- a/res/layout-land/contacts_unavailable_fragment_content.xml
+++ b/res/layout-land/contacts_unavailable_fragment_content.xml
@@ -69,7 +69,6 @@
android:layout_gravity="center_horizontal">
<Button
- style="@style/ContactsUnavailableButtonStyle"
android:id="@+id/add_account_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -79,7 +78,6 @@
android:text="@string/contacts_unavailable_add_account" />
<Button
- style="@style/ContactsUnavailableButtonStyle"
android:id="@+id/import_contacts_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
diff --git a/res/layout-land/people_activity_toolbar.xml b/res/layout-land/people_activity_toolbar.xml
index c110133..d33a96c 100644
--- a/res/layout-land/people_activity_toolbar.xml
+++ b/res/layout-land/people_activity_toolbar.xml
@@ -28,15 +28,13 @@
<FrameLayout
android:id="@+id/toolbar_frame"
android:layout_width="match_parent"
- android:layout_height="?attr/actionBarSize"
+ android:layout_height="?android:attr/actionBarSize"
android:background="@color/actionbar_background_color">
- <!-- the attribute padding removes the gap between this Toolbar and its parent FrameLayout on tablet -->
- <android.support.v7.widget.Toolbar
+ <Toolbar
android:layout_width="match_parent"
- android:layout_height="?attr/actionBarSize"
+ android:layout_height="?android:attr/actionBarSize"
android:id="@+id/toolbar"
- android:padding="0dp"
style="@style/ContactsToolbarStyle" />
</FrameLayout>
diff --git a/res/layout/contacts_unavailable_fragment_content.xml b/res/layout/contacts_unavailable_fragment_content.xml
index 765e453..9482273 100644
--- a/res/layout/contacts_unavailable_fragment_content.xml
+++ b/res/layout/contacts_unavailable_fragment_content.xml
@@ -58,7 +58,6 @@
android:layout_height="wrap_content">
<Button
- style="@style/ContactsUnavailableButtonStyle"
android:id="@+id/add_account_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -68,7 +67,6 @@
android:text="@string/contacts_unavailable_add_account" />
<Button
- style="@style/ContactsUnavailableButtonStyle"
android:id="@+id/import_contacts_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
diff --git a/res/layout/custom_action_bar.xml b/res/layout/custom_action_bar.xml
index 9604849..5b930ea 100644
--- a/res/layout/custom_action_bar.xml
+++ b/res/layout/custom_action_bar.xml
@@ -28,7 +28,7 @@
android:layout_height="1px" >
<requestFocus />
</View>
- <android.support.v7.widget.SearchView
+ <SearchView
android:id="@+id/search_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
diff --git a/res/layout/people_activity_toolbar.xml b/res/layout/people_activity_toolbar.xml
index da1dae4..cbb4d91 100644
--- a/res/layout/people_activity_toolbar.xml
+++ b/res/layout/people_activity_toolbar.xml
@@ -24,15 +24,13 @@
<FrameLayout
android:id="@+id/toolbar_frame"
android:layout_width="match_parent"
- android:layout_height="?attr/actionBarSize"
+ android:layout_height="?android:attr/actionBarSize"
android:background="@color/actionbar_background_color">
- <!-- the attribute padding removes the gap between this Toolbar and its parent FrameLayout on tablet -->
- <android.support.v7.widget.Toolbar
+ <Toolbar
android:layout_width="match_parent"
- android:layout_height="?attr/actionBarSize"
+ android:layout_height="?android:attr/actionBarSize"
android:id="@+id/toolbar"
- android:padding="0dp"
style="@style/ContactsToolbarStyle" />
</FrameLayout>
@@ -40,7 +38,7 @@
<com.android.contacts.common.list.ViewPagerTabs
android:id="@+id/lists_pager_header"
android:layout_width="match_parent"
- android:layout_height="?attr/actionBarSize"
+ android:layout_height="?android:attr/actionBarSize"
android:textAllCaps="true"
android:orientation="horizontal"
android:layout_gravity="top"
diff --git a/res/layout/selection_bar.xml b/res/layout/selection_bar.xml
index f91c2b8..34cdd60 100644
--- a/res/layout/selection_bar.xml
+++ b/res/layout/selection_bar.xml
@@ -25,7 +25,7 @@
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/ic_back_arrow"
- android:background="?attr/selectableItemBackgroundBorderless"
+ android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/action_menu_back_from_search"
android:layout_gravity="center_vertical|start"
android:tint="@android:color/white" />
@@ -37,6 +37,6 @@
android:layout_height="wrap_content"
android:visibility="gone"
android:layout_gravity="center_vertical|start"
- style="@style/ContactsActionBarTitleTextAppCompat" />
+ style="@style/ContactsActionBarTitleText" />
</FrameLayout>
diff --git a/res/menu/people_options.xml b/res/menu/people_options.xml
index af98f9d..dde404c 100644
--- a/res/menu/people_options.xml
+++ b/res/menu/people_options.xml
@@ -13,13 +13,12 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<menu xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:contacts="http://schemas.android.com/apk/res-auto">
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_search"
android:icon="@drawable/ic_ab_search"
android:title="@string/menu_search"
- contacts:showAsAction="ifRoom" />
+ android:showAsAction="ifRoom" />
<item
android:id="@+id/menu_contacts_filter"
diff --git a/res/menu/search_menu.xml b/res/menu/search_menu.xml
index c890f20..355442e 100644
--- a/res/menu/search_menu.xml
+++ b/res/menu/search_menu.xml
@@ -13,11 +13,10 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<menu xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:contacts="http://schemas.android.com/apk/res-auto">
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_search"
android:icon="@drawable/ic_ab_search"
android:title="@string/menu_search"
- contacts:showAsAction="always" />
+ android:showAsAction="always" />
</menu>
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index 86c46fc..6da3b94 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -20,6 +20,8 @@
<attr name="mimeType" format="string"/>
<!-- RemoteViews XML that should be used to format this data -->
<attr name="remoteViews" format="reference"/>
+ <!-- Icon that should be used to represent this data -->
+ <attr name="icon" format="reference"/>
<!-- Column in data table to summarize this data -->
<attr name="summaryColumn" format="string"/>
<!-- Column in data table to show details of this data -->
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 708675b..a8dbe0c 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -108,83 +108,6 @@
<item name="favorites_padding_bottom">0dip</item>
</style>
- <style name="PeopleActivityTheme" parent="@style/PeopleThemeAppCompat">
- <item name="windowActionBar">false</item>
- <item name="windowNoTitle">true</item>
- <item name="android:listSelector">?android:attr/listChoiceBackgroundIndicator</item>
- </style>
-
- <style name="ContactsUnavailableButtonStyle" parent="@style/Widget.AppCompat.Button.Colored">
- </style>
-
- <style name="PeopleThemeAppCompat" parent="Theme.AppCompat.Light">
- <!-- Styles that require AppCompat compatibility, remember to update both sets -->
- <item name="android:actionBarStyle">@style/ContactsActionBarStyleAppCompat</item>
- <item name="actionBarStyle">@style/ContactsActionBarStyleAppCompat</item>
- <!-- Style for the tab bar (for the divider between tabs) -->
- <item name="android:actionBarTabBarStyle">@style/ContactsActionBarTabBarStyle</item>
- <item name="actionBarTabBarStyle">@style/ContactsActionBarTabBarStyle</item>
- <!-- Style for the tab bar text (for text on tabs) -->
- <item name="android:actionBarTabTextStyle">@style/ContactsActionBarTabTextStyle</item>
- <item name="actionBarTabTextStyle">@style/ContactsActionBarTabTextStyle</item>
- <!-- Drawable for the back button -->
- <item name="android:homeAsUpIndicator">@drawable/ic_back_arrow</item>
- <item name="homeAsUpIndicator">@drawable/ic_back_arrow</item>
- <!-- Style for the overflow button in the actionbar. -->
- <item name="android:actionOverflowButtonStyle">@style/ContactsActionBarOverflowQP</item>
- <item name="actionOverflowButtonStyle">@style/ContactsActionBarOverflowQP</item>
- <item name="android:actionModeCloseDrawable">@drawable/ic_close_lt</item>
- <item name="android:fastScrollThumbDrawable">@drawable/fastscroll_thumb</item>
- <item name="android:fastScrollTrackDrawable">@null</item>
- <item name="android:textColorPrimary">@color/primary_text_color</item>
- <item name="android:textColorSecondary">@color/secondary_text_color</item>
- <item name="android:icon">@android:color/transparent</item>
- <item name="android:listViewStyle">@style/ListViewStyle</item>
- <item name="android:windowBackground">@color/background_primary</item>
- <item name="android:colorPrimaryDark">@color/primary_color_dark</item>
- <item name="colorPrimaryDark">@color/primary_color_dark</item>
- <item name="android:colorPrimary">@color/primary_color</item>
- <item name="colorPrimary">@color/primary_color</item>
- <item name="android:colorAccent">@color/primary_color</item>
- <item name="colorAccent">@color/primary_color</item>
- <item name="android:alertDialogTheme">@style/ContactsAlertDialogTheme</item>
- <item name="alertDialogTheme">@style/ContactsAlertDialogTheme</item>
- <item name="list_item_height">?android:attr/listPreferredItemHeight</item>
- <item name="activated_background">@drawable/list_item_activated_background</item>
- <item name="section_header_background">@drawable/list_title_holo</item>
- <item name="list_section_header_height">24dip</item>
- <item name="list_item_padding_top">
- @dimen/contact_browser_list_item_padding_top_or_bottom
- </item>
- <item name="list_item_padding_right">32dp</item>
- <item name="list_item_padding_bottom">
- @dimen/contact_browser_list_item_padding_top_or_bottom
- </item>
- <item name="list_item_padding_left">16dip</item>
- <item name="list_item_gap_between_image_and_text">
- @dimen/contact_browser_list_item_gap_between_image_and_text
- </item>
- <item name="list_item_gap_between_label_and_data">5dip</item>
- <item name="list_item_presence_icon_margin">4dip</item>
- <item name="list_item_presence_icon_size">16dip</item>
- <item name="list_item_photo_size">@dimen/contact_browser_list_item_photo_size</item>
- <item name="list_item_profile_photo_size">70dip</item>
- <item name="list_item_prefix_highlight_color">@color/people_app_theme_color</item>
- <item name="list_item_background_color">@color/list_item_pinned_header_color</item>
- <item name="list_item_header_text_color">@color/people_app_theme_color</item>
- <item name="list_item_header_text_size">14sp</item>
- <item name="list_item_header_height">30dip</item>
- <item name="list_item_data_width_weight">5</item>
- <item name="list_item_label_width_weight">3</item>
- <item name="list_item_header_text_indent">8dip</item>
- <item name="contact_browser_list_padding_left">0dip</item>
- <item name="contact_browser_list_padding_right">0dip</item>
- <item name="contact_browser_background">@color/background_primary</item>
- <item name="list_item_text_indent">@dimen/contact_browser_list_item_text_indent</item>
- <!-- Favorites -->
- <item name="favorites_padding_bottom">0dip</item>
- </style>
-
<style name="ContactsActionBarOverflow" parent="@android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/ic_overflow_menu</item>
</style>
@@ -199,45 +122,26 @@
<item name="android:icon">@android:color/transparent</item>
</style>
- <style name="ContactsActionBarStyleAppCompat"
- parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
- <!-- Styles that require AppCompat compatibility, remember to update both sets -->
- <item name="android:background">@color/actionbar_background_color</item>
- <item name="background">@color/actionbar_background_color</item>
- <item name="android:titleTextStyle">@style/ContactsActionBarTitleTextAppCompat</item>
- <item name="titleTextStyle">@style/ContactsActionBarTitleTextAppCompat</item>
- <item name="android:backgroundStacked">@color/actionbar_background_color</item>
- <item name="backgroundStacked">@color/actionbar_background_color</item>
- <!-- Empty icon -->
- <item name="android:icon">@android:color/transparent</item>
- <item name="icon">@android:color/transparent</item>
- </style>
-
<style name="EditorActionBarStyle" parent="@style/ContactsActionBarStyle">
<item name="android:contentInsetStart">72dp</item>
</style>
<!-- When this style was added, android:toolbarStyle was private. Therefore, this style
must be directly applied to every toolbar -->
- <style name="ContactsToolbarStyle" parent="@style/Widget.AppCompat.Toolbar">
- <!-- Styles that require AppCompat compatibility, remember to update both sets -->
- <item name="android:titleTextAppearance">@style/ContactsActionBarTitleTextAppCompat</item>
- <item name="titleTextAppearance">@style/ContactsActionBarTitleTextAppCompat</item>
+ <style name="ContactsToolbarStyle" parent="@android:style/Widget.Toolbar">
+ <item name="android:titleTextAppearance">@style/ContactsActionBarTitleText</item>
</style>
- <style name="ContactsPickerActionBarStyle" parent="@style/ContactsActionBarStyleAppCompat">
+ <style name="ContactsPickerActionBarStyle" parent="@style/ContactsActionBarStyle">
<!-- when first loading, don't show title or up button -->
<item name="android:displayOptions"></item>
</style>
- <style name="ContactPickerSearchTheme" parent="@style/PeopleThemeAppCompat">
+ <style name="ContactPickerSearchTheme" parent="@style/PeopleTheme">
<item name="android:textColorPrimary">@android:color/white</item>
<item name="android:textColorHint">?android:textColorHintInverse</item>
- <!-- Styles that require AppCompat compatibility, remember to update both sets -->
<item name="android:colorControlActivated">?android:textColorHintInverse</item>
- <item name="colorControlActivated">?android:textColorHintInverse</item>
<item name="android:colorControlNormal">@android:color/white</item>
- <item name="colorControlNormal">@android:color/white</item>
</style>
<!-- Text in the action bar at the top of the screen -->
@@ -246,10 +150,6 @@
<item name="android:textColor">@color/actionbar_text_color</item>
</style>
- <style name="ContactsActionBarTitleTextAppCompat" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
- <item name="android:textColor">@color/actionbar_text_color</item>
- </style>
-
<!-- Styling for the tab bar; handles styling of the divider line. -->
<style name="ContactsActionBarTabBarStyle"
parent="@android:style/Widget.Material.ActionBar.TabBar">
@@ -268,7 +168,7 @@
<!-- Action bar overflow menu icon. -->
<style name="ContactsActionBarOverflowQP"
- parent="Widget.AppCompat.Light.ActionButton.Overflow">
+ parent="@android:style/Widget.Material.Light.ActionButton.Overflow">
<item name="android:src">@drawable/ic_menu_overflow_lt</item>
</style>
@@ -287,11 +187,8 @@
<item name="android:listSelector">?android:attr/listChoiceBackgroundIndicator</item>
</style>
- <style name="ContactPickerTheme" parent="@style/PeopleThemeAppCompat">
- <!-- Styles that require AppCompat compatibility, remember to update both sets -->
+ <style name="ContactPickerTheme" parent="@style/PeopleTheme" >
<item name="android:actionBarStyle">@style/ContactsPickerActionBarStyle</item>
- <item name="actionBarStyle">@style/ContactsPickerActionBarStyle</item>
- <item name="android:listSelector">?android:attr/listChoiceBackgroundIndicator</item>
</style>
<style name="ContactPickerLayout" parent="ContactPickerTheme">
@@ -303,9 +200,8 @@
<item name="android:listViewStyle">@style/ListViewStyle</item>
</style>
- <style name="ContactListFilterTheme" parent="@style/PeopleThemeAppCompat">
- <!-- Make the shadow when pressing a list item transparent rather than yellow. -->
- <item name="android:listSelector">?android:attr/listChoiceBackgroundIndicator</item>
+ <style name="ContactListFilterTheme" parent="@style/PeopleTheme">
+ <item name="android:listViewStyle">@style/ListViewStyle</item>
</style>
<style name="NonPhoneActivityTheme" parent="@android:Theme.Translucent.NoTitleBar">
@@ -314,17 +210,16 @@
<style name="NonPhoneDialogTheme" parent="@android:Theme.Material.Light.Dialog">
</style>
- <style name="ConfirmAddDetailDialogTheme" parent="Theme.AppCompat.Light.Dialog">
+ <style name="ConfirmAddDetailDialogTheme" parent="@android:style/Theme.Material.Light.Dialog.MinWidth">
<item name="android:windowCloseOnTouchOutside">true</item>
</style>
- <style name="ContactEditorAccountsChangedActivityTheme" parent="Theme.AppCompat.Light.Dialog">
+ <style name="ContactEditorAccountsChangedActivityTheme" parent="@android:style/Theme.Material.Light.Dialog.NoActionBar.MinWidth">
<item name="android:windowCloseOnTouchOutside">true</item>
<item name="android:textColorPrimary">@color/primary_text_color</item>
<item name="android:textColorSecondary">@color/secondary_text_color</item>
<item name="android:listViewStyle">@style/ListViewStyle</item>
<item name="android:colorAccent">@color/primary_color</item>
- <item name="colorAccent">@color/primary_color</item>
</style>
<style name="SectionDivider">
@@ -420,11 +315,6 @@
<item name="android:colorAccent">@color/primary_color</item>
</style>
- <style name="ContactsAlertDialogThemeAppCompat" parent="Theme.AppCompat.Light.Dialog">
- <item name="android:colorAccent">@color/primary_color</item>
- <item name="colorAccent">@color/primary_color</item>
- </style>
-
<style name="EditKindIconStyle">
<item name="android:layout_width">24dp</item>
<item name="android:layout_height">24dp</item>
diff --git a/src/com/android/contacts/AppCompatContactsActivity.java b/src/com/android/contacts/AppCompatContactsActivity.java
deleted file mode 100644
index cd5a79f..0000000
--- a/src/com/android/contacts/AppCompatContactsActivity.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright (C) 2016 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.
- */
-
-package com.android.contacts;
-
-import android.app.Fragment;
-import android.app.FragmentManager;
-import android.app.FragmentTransaction;
-import android.content.ContentResolver;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.os.Bundle;
-import android.view.View;
-
-import com.android.contacts.common.activity.AppCompatTransactionSafeActivity;
-import com.android.contacts.common.testing.InjectedServices;
-
-/**
- * A common superclass for Contacts activities that handles application-wide services, copied from
- * {@link com.android.contacts.ContactsActivity}, which will be deprecated after Kitkat backporting
- * is done.
- */
-public abstract class AppCompatContactsActivity extends AppCompatTransactionSafeActivity
- implements ContactSaveService.Listener {
-
- private ContentResolver mContentResolver;
-
- @Override
- public ContentResolver getContentResolver() {
- if (mContentResolver == null) {
- InjectedServices services = ContactsApplication.getInjectedServices();
- if (services != null) {
- mContentResolver = services.getContentResolver();
- }
- if (mContentResolver == null) {
- mContentResolver = super.getContentResolver();
- }
- }
- return mContentResolver;
- }
-
- @Override
- public SharedPreferences getSharedPreferences(String name, int mode) {
- InjectedServices services = ContactsApplication.getInjectedServices();
- if (services != null) {
- SharedPreferences prefs = services.getSharedPreferences();
- if (prefs != null) {
- return prefs;
- }
- }
-
- return super.getSharedPreferences(name, mode);
- }
-
- @Override
- public Object getSystemService(String name) {
- Object service = super.getSystemService(name);
- if (service != null) {
- return service;
- }
-
- return getApplicationContext().getSystemService(name);
- }
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ContactSaveService.registerListener(this);
- super.onCreate(savedInstanceState);
- }
-
- @Override
- protected void onDestroy() {
- ContactSaveService.unregisterListener(this);
- super.onDestroy();
- }
-
- @Override
- public void onServiceCompleted(Intent callbackIntent) {
- onNewIntent(callbackIntent);
- }
-
- /**
- * Convenient version of {@link FragmentManager#findFragmentById(int)}, which throws
- * an exception if the fragment doesn't exist.
- */
- @SuppressWarnings("unchecked")
- public <T extends Fragment> T getFragment(int id) {
- T result = (T)getFragmentManager().findFragmentById(id);
- if (result == null) {
- throw new IllegalArgumentException("fragment 0x" + Integer.toHexString(id)
- + " doesn't exist");
- }
- return result;
- }
-
- /**
- * Convenient version of {@link #findViewById(int)}, which throws
- * an exception if the view doesn't exist.
- */
- @SuppressWarnings("unchecked")
- public <T extends View> T getView(int id) {
- T result = (T)findViewById(id);
- if (result == null) {
- throw new IllegalArgumentException("view 0x" + Integer.toHexString(id)
- + " doesn't exist");
- }
- return result;
- }
-
- protected static void showFragment(FragmentTransaction ft, Fragment f) {
- if ((f != null) && f.isHidden()) ft.show(f);
- }
-
- protected static void hideFragment(FragmentTransaction ft, Fragment f) {
- if ((f != null) && !f.isHidden()) ft.hide(f);
- }
-}
diff --git a/src/com/android/contacts/activities/ActionBarAdapter.java b/src/com/android/contacts/activities/ActionBarAdapter.java
index ad70d92..9862b6f 100644
--- a/src/com/android/contacts/activities/ActionBarAdapter.java
+++ b/src/com/android/contacts/activities/ActionBarAdapter.java
@@ -17,6 +17,7 @@
package com.android.contacts.activities;
import android.animation.ValueAnimator;
+import android.app.ActionBar;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
@@ -24,8 +25,6 @@
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.content.ContextCompat;
-import android.support.v7.app.ActionBar;
-import android.support.v7.widget.Toolbar;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
@@ -40,6 +39,7 @@
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.TextView;
+import android.widget.Toolbar;
import com.android.contacts.R;
import com.android.contacts.activities.ActionBarAdapter.Listener.Action;
diff --git a/src/com/android/contacts/activities/ConfirmAddDetailActivity.java b/src/com/android/contacts/activities/ConfirmAddDetailActivity.java
index f9a9735..f4e8c78 100644
--- a/src/com/android/contacts/activities/ConfirmAddDetailActivity.java
+++ b/src/com/android/contacts/activities/ConfirmAddDetailActivity.java
@@ -16,6 +16,7 @@
package com.android.contacts.activities;
+import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.AsyncQueryHandler;
@@ -46,7 +47,6 @@
import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.RawContacts;
import android.provider.ContactsContract.RawContactsEntity;
-import android.support.v7.app.AppCompatActivity;
import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;
import android.util.Log;
@@ -102,7 +102,7 @@
* Note when there's no accounts, it *is* okay to show the picker / dialog, because the local-only
* contacts are writable.
*/
-public class ConfirmAddDetailActivity extends AppCompatActivity implements
+public class ConfirmAddDetailActivity extends Activity implements
DialogManager.DialogShowingViewActivity {
private static final String TAG = "ConfirmAdd"; // The class name is too long to be a tag.
diff --git a/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java b/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
index 9748e46..78b0a3b 100644
--- a/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
+++ b/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
@@ -16,12 +16,12 @@
package com.android.contacts.activities;
+import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.provider.ContactsContract.Intents;
-import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
@@ -48,7 +48,7 @@
* the new contact in. If the activity result doesn't contain intent data, then there is no
* account for this contact.
*/
-public class ContactEditorAccountsChangedActivity extends AppCompatActivity {
+public class ContactEditorAccountsChangedActivity extends Activity {
private static final String TAG = ContactEditorAccountsChangedActivity.class.getSimpleName();
diff --git a/src/com/android/contacts/activities/ContactSelectionActivity.java b/src/com/android/contacts/activities/ContactSelectionActivity.java
index 4235fe0..ba1e0dd 100644
--- a/src/com/android/contacts/activities/ContactSelectionActivity.java
+++ b/src/com/android/contacts/activities/ContactSelectionActivity.java
@@ -16,6 +16,9 @@
package com.android.contacts.activities;
+import android.app.ActionBar;
+import android.app.ActionBar.LayoutParams;
+import android.app.Activity;
import android.app.Fragment;
import android.content.ActivityNotFoundException;
import android.content.Context;
@@ -24,8 +27,6 @@
import android.os.Bundle;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.Intents.Insert;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.ActionBar.LayoutParams;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
@@ -36,12 +37,12 @@
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.view.inputmethod.InputMethodManager;
-import android.support.v7.widget.SearchView;
-import android.support.v7.widget.SearchView.OnCloseListener;
-import android.support.v7.widget.SearchView.OnQueryTextListener;
+import android.widget.SearchView;
+import android.widget.SearchView.OnCloseListener;
+import android.widget.SearchView.OnQueryTextListener;
import android.widget.Toast;
-import com.android.contacts.AppCompatContactsActivity;
+import com.android.contacts.ContactsActivity;
import com.android.contacts.R;
import com.android.contacts.common.activity.RequestPermissionsActivity;
import com.android.contacts.common.list.ContactEntryListFragment;
@@ -67,7 +68,7 @@
* Displays a list of contacts (or phone numbers or postal addresses) for the
* purposes of selecting one.
*/
-public class ContactSelectionActivity extends AppCompatContactsActivity
+public class ContactSelectionActivity extends ContactsActivity
implements View.OnCreateContextMenuListener, OnQueryTextListener, OnClickListener,
OnCloseListener, OnFocusChangeListener {
private static final String TAG = "ContactSelectionActivity";
@@ -133,7 +134,7 @@
}
private void prepareSearchViewAndActionBar() {
- final ActionBar actionBar = getSupportActionBar();
+ final ActionBar actionBar = getActionBar();
mSearchViewContainer = LayoutInflater.from(actionBar.getThemedContext())
.inflate(R.layout.custom_action_bar, null);
mSearchView = (SearchView) mSearchViewContainer.findViewById(R.id.search_view);
@@ -176,7 +177,7 @@
}
private void configureSearchMode() {
- final ActionBar actionBar = getSupportActionBar();
+ final ActionBar actionBar = getActionBar();
if (mIsSearchMode) {
actionBar.setDisplayShowTitleEnabled(false);
mSearchViewContainer.setVisibility(View.VISIBLE);
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index 8c3d227..5aab771 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -40,7 +40,6 @@
import android.support.v13.app.FragmentPagerAdapter;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
-import android.support.v7.widget.Toolbar;
import android.telecom.TelecomManager;
import android.text.TextUtils;
import android.util.Log;
@@ -51,10 +50,12 @@
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
+import android.view.Window;
import android.widget.ImageButton;
import android.widget.Toast;
+import android.widget.Toolbar;
-import com.android.contacts.AppCompatContactsActivity;
+import com.android.contacts.ContactsActivity;
import com.android.contacts.R;
import com.android.contacts.activities.ActionBarAdapter.TabState;
import com.android.contacts.common.ContactsUtils;
@@ -105,7 +106,7 @@
/**
* Displays a list to browse contacts.
*/
-public class PeopleActivity extends AppCompatContactsActivity implements
+public class PeopleActivity extends ContactsActivity implements
View.OnCreateContextMenuListener,
View.OnClickListener,
ActionBarAdapter.Listener,
@@ -299,6 +300,10 @@
}
private void createViewsAndFragments(Bundle savedState) {
+ // Disable the ActionBar so that we can use a Toolbar. This needs to be called before
+ // setContentView().
+ getWindow().requestFeature(Window.FEATURE_NO_TITLE);
+
setContentView(R.layout.people_activity);
final FragmentManager fragmentManager = getFragmentManager();
@@ -314,9 +319,9 @@
mTabPager.setAdapter(mTabPagerAdapter);
mTabPager.setOnPageChangeListener(mTabPagerListener);
- // Configure toolbar and toolbar tabs. If in landscape mode, we configure tabs differently.
+ // Configure toolbar and toolbar tabs. If in landscape mode, we configure tabs differntly.
final Toolbar toolbar = getView(R.id.toolbar);
- setSupportActionBar(toolbar);
+ setActionBar(toolbar);
final ViewPagerTabs portraitViewPagerTabs
= (ViewPagerTabs) findViewById(R.id.lists_pager_header);
ViewPagerTabs landscapeViewPagerTabs = null;
@@ -367,7 +372,7 @@
// Setting Properties after fragment is created
mFavoritesFragment.setDisplayType(DisplayType.STREQUENT);
- mActionBarAdapter = new ActionBarAdapter(this, this, getSupportActionBar(),
+ mActionBarAdapter = new ActionBarAdapter(this, this, getActionBar(),
portraitViewPagerTabs, landscapeViewPagerTabs, toolbar);
mActionBarAdapter.initialize(savedState, mRequest);