diff options
22 files changed, 147 insertions, 29 deletions
diff --git a/Android.mk b/Android.mk index 0649be286..f0fdce291 100644 --- a/Android.mk +++ b/Android.mk @@ -13,11 +13,9 @@ support_library_root_dir := prebuilts/sdk/current/support endif src_dirs := src $(contacts_common_dir)/src $(phone_common_dir)/src -res_dirs := res $(contacts_common_dir)/res $(phone_common_dir)/res +res_dirs := res res-aosp $(contacts_common_dir)/res $(contacts_common_dir)/icons/res $(phone_common_dir)/res asset_dirs := $(contacts_common_dir)/assets -src_dirs += src-N $(contacts_common_dir)/src-N $(phone_common_dir)/src-N - LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs)) LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs)) \ $(support_library_root_dir)/v7/cardview/res diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 21f6812d3..54e83167a 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -16,10 +16,10 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.contacts" - android:versionCode="10417" - android:versionName="1.4.17"> + android:versionCode="10422" + android:versionName="1.4.22"> - <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="24" /> + <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="25" /> <original-package android:name="com.android.contacts" /> <uses-permission android:name="android.permission.CALL_PHONE" /> @@ -55,6 +55,7 @@ android:name="com.android.contacts.ContactsApplication" android:label="@string/applicationLabel" android:icon="@mipmap/ic_contacts_launcher" + android:roundIcon="@mipmap/ic_contacts_launcher" android:taskAffinity="android.task.contacts" android:hardwareAccelerated="true" android:supportsRtl="true" @@ -139,6 +140,11 @@ <meta-data android:name="android.app.searchable" android:resource="@xml/searchable" /> + + <meta-data android:name="android.app.shortcuts" + android:resource="@xml/shortcuts" + /> + </activity> <activity android:name=".activities.ContactSelectionActivity" diff --git a/res-aosp/xml/shortcuts.xml b/res-aosp/xml/shortcuts.xml new file mode 100644 index 000000000..35d15e7d2 --- /dev/null +++ b/res-aosp/xml/shortcuts.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- 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. +--> + +<shortcuts xmlns:android="http://schemas.android.com/apk/res/android"> + <shortcut + android:enabled="true" + android:icon="@drawable/ic_add_circle_24dp" + android:shortcutId="shortcut-add-contact" + android:shortcutShortLabel="@string/menu_new_contact_action_bar"> + <intent + android:action="android.intent.action.INSERT" + android:data="content://com.android.contacts/contacts" + android:targetPackage="com.android.contacts" + android:targetClass="com.android.contacts.activities.CompactContactEditorActivity"/> + </shortcut> +</shortcuts> diff --git a/res/drawable-hdpi/ic_message_24dp.png b/res/drawable-hdpi/ic_message_24dp.png Binary files differdeleted file mode 100644 index 48f008a5e..000000000 --- a/res/drawable-hdpi/ic_message_24dp.png +++ /dev/null diff --git a/res/drawable-mdpi/ic_message_24dp.png b/res/drawable-mdpi/ic_message_24dp.png Binary files differdeleted file mode 100644 index c18f225fa..000000000 --- a/res/drawable-mdpi/ic_message_24dp.png +++ /dev/null diff --git a/res/drawable-xhdpi/ic_message_24dp.png b/res/drawable-xhdpi/ic_message_24dp.png Binary files differdeleted file mode 100644 index ee5021c55..000000000 --- a/res/drawable-xhdpi/ic_message_24dp.png +++ /dev/null diff --git a/res/drawable-xxhdpi/ic_message_24dp.png b/res/drawable-xxhdpi/ic_message_24dp.png Binary files differdeleted file mode 100644 index e7ca6bdfb..000000000 --- a/res/drawable-xxhdpi/ic_message_24dp.png +++ /dev/null diff --git a/res/drawable-xxxhdpi/ic_message_24dp.png b/res/drawable-xxxhdpi/ic_message_24dp.png Binary files differdeleted file mode 100644 index f917193bd..000000000 --- a/res/drawable-xxxhdpi/ic_message_24dp.png +++ /dev/null diff --git a/res/drawable/ic_add_circle_24dp.xml b/res/drawable/ic_add_circle_24dp.xml new file mode 100644 index 000000000..ae37470ee --- /dev/null +++ b/res/drawable/ic_add_circle_24dp.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- 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. +--> + +<!-- Customized ic_add_circle material asset. See b/30018040#comment12 --> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:height="24dp" + android:width="24dp" + android:viewportHeight="192.0" + android:viewportWidth="192.0"> + <path android:fillColor="#F5F5F5" + android:pathData="M96,8C47.38,8 8,47.38 8,96s39.38,88 88,88s88,-39.38 88,-88S144.62,8 96,8z"/> + <path android:fillColor="#039BE5" + android:pathData="M124,100h-24v24h-8v-24H68v-8h24V68h8v24h24V100z"/> +</vector> diff --git a/res/layout-land/quickcontact_activity.xml b/res/layout-w500dp-land/quickcontact_activity.xml index af622dc3a..63cab3c65 100644 --- a/res/layout-land/quickcontact_activity.xml +++ b/res/layout-w500dp-land/quickcontact_activity.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2014 The Android Open Source Project +<!-- 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. diff --git a/res/layout/expanding_entry_card_item.xml b/res/layout/expanding_entry_card_item.xml index 7c7337ebc..99f91744d 100644 --- a/res/layout/expanding_entry_card_item.xml +++ b/res/layout/expanding_entry_card_item.xml @@ -43,7 +43,7 @@ android:layout_alignParentTop="true" android:paddingTop="5dp" android:layout_toEndOf="@+id/icon" - android:layout_toStartOf="@+id/icon_alternate" + android:layout_toStartOf="@+id/third_icon" android:textColor="@color/quickcontact_entry_header_text_color" android:textAlignment="viewStart" android:layout_marginBottom="@dimen/expanding_entry_card_header_margin_bottom" /> @@ -54,7 +54,7 @@ android:layout_height="wrap_content" android:layout_below="@+id/header" android:layout_toEndOf="@+id/icon_sub_header" - android:layout_toStartOf="@+id/icon_alternate" + android:layout_toStartOf="@+id/third_icon" android:textAlignment="viewStart" android:textColor="@color/quickcontact_entry_sub_header_text_color" /> @@ -73,7 +73,7 @@ android:id="@+id/text" android:layout_below="@+id/sub_header" android:layout_toEndOf="@+id/icon_text" - android:layout_toStartOf="@+id/icon_alternate" + android:layout_toStartOf="@+id/third_icon" android:textAlignment="viewStart" android:textColor="@color/quickcontact_entry_sub_header_text_color" /> diff --git a/res/values-land/bools.xml b/res/values-land/bools.xml index bd0650fa4..beaa96087 100644 --- a/res/values-land/bools.xml +++ b/res/values-land/bools.xml @@ -15,6 +15,7 @@ --> <resources> - <bool name="quickcontact_two_panel">true</bool> + <bool name="quickcontact_two_panel">false</bool> + <bool name="contacteditor_two_panel">true</bool> </resources> diff --git a/res/values-w500dp-land/bools.xml b/res/values-w500dp-land/bools.xml new file mode 100644 index 000000000..65174ba60 --- /dev/null +++ b/res/values-w500dp-land/bools.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- 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. +--> +<resources> + + <bool name="quickcontact_two_panel">true</bool> + +</resources> diff --git a/res/values/bools.xml b/res/values/bools.xml index b94cc8568..eef380805 100644 --- a/res/values/bools.xml +++ b/res/values/bools.xml @@ -17,5 +17,6 @@ <bool name="quickcontact_two_panel">false</bool> <bool name="contact_all_list_show_card_frame">false</bool> + <bool name="contacteditor_two_panel">false</bool> </resources> diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java index 0e212ef13..a6c7b8b49 100644 --- a/src/com/android/contacts/activities/PeopleActivity.java +++ b/src/com/android/contacts/activities/PeopleActivity.java @@ -29,6 +29,7 @@ import android.graphics.Rect; import android.net.Uri; import android.os.Bundle; import android.os.Parcelable; +import android.provider.BlockedNumberContract; import android.provider.ContactsContract; import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.ProviderStatus; @@ -58,7 +59,6 @@ import com.android.contacts.activities.ActionBarAdapter.TabState; import com.android.contacts.common.ContactsUtils; import com.android.contacts.common.activity.RequestPermissionsActivity; import com.android.contacts.common.compat.TelecomManagerUtil; -import com.android.contacts.common.compat.BlockedNumberContractCompat; import com.android.contacts.common.dialog.ClearFrequentsDialog; import com.android.contacts.common.interactions.ImportExportDialogFragment; import com.android.contacts.common.list.ContactEntryListFragment; @@ -1103,7 +1103,7 @@ public class PeopleActivity extends ContactsActivity implements final boolean showMiscOptions = !isSearchOrSelectionMode; final boolean showBlockedNumbers = PhoneCapabilityTester.isPhone(this) && ContactsUtils.FLAG_N_FEATURE - && BlockedNumberContractCompat.canCurrentUserBlockNumbers(this); + && BlockedNumberContract.canCurrentUserBlockNumbers(this); makeMenuItemVisible(menu, R.id.menu_search, showMiscOptions); makeMenuItemVisible(menu, R.id.menu_import_export, showMiscOptions); makeMenuItemVisible(menu, R.id.menu_accounts, showMiscOptions); diff --git a/src/com/android/contacts/editor/AggregationSuggestionView.java b/src/com/android/contacts/editor/AggregationSuggestionView.java index e3bab7e8c..5a3da0017 100644 --- a/src/com/android/contacts/editor/AggregationSuggestionView.java +++ b/src/com/android/contacts/editor/AggregationSuggestionView.java @@ -22,6 +22,7 @@ import android.net.Uri; import android.provider.ContactsContract.Contacts; import android.text.TextUtils; import android.util.AttributeSet; +import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; @@ -104,6 +105,8 @@ public class AggregationSuggestionView extends LinearLayout { dataText = suggestion.emailAddress; } else if (suggestion.phoneNumber != null) { dataText = suggestion.phoneNumber; + // Phone numbers should always be in LTR mode. + data.setTextDirection(View.TEXT_DIRECTION_LTR); } data.setText(dataText); } diff --git a/src/com/android/contacts/editor/CompactPhotoEditorView.java b/src/com/android/contacts/editor/CompactPhotoEditorView.java index 1696a12f2..899e22aff 100644 --- a/src/com/android/contacts/editor/CompactPhotoEditorView.java +++ b/src/com/android/contacts/editor/CompactPhotoEditorView.java @@ -78,7 +78,7 @@ public class CompactPhotoEditorView extends RelativeLayout implements View.OnCli mLandscapePhotoRatio = getTypedFloat(R.dimen.quickcontact_landscape_photo_ratio); mPortraitPhotoRatio = getTypedFloat(R.dimen.editor_portrait_photo_ratio); - mIsTwoPanel = getResources().getBoolean(R.bool.quickcontact_two_panel); + mIsTwoPanel = getResources().getBoolean(R.bool.contacteditor_two_panel); final TypedArray styledAttributes = getContext().getTheme().obtainStyledAttributes( new int[] { android.R.attr.actionBarSize }); diff --git a/src/com/android/contacts/editor/TextFieldsEditorView.java b/src/com/android/contacts/editor/TextFieldsEditorView.java index f705819ec..df201e166 100644 --- a/src/com/android/contacts/editor/TextFieldsEditorView.java +++ b/src/com/android/contacts/editor/TextFieldsEditorView.java @@ -244,7 +244,7 @@ public class TextFieldsEditorView extends LabeledEditorView { // Show the "next" button in IME to navigate between text fields // TODO: Still need to properly navigate to/from sections without text fields, // See Bug: 5713510 - fieldView.setImeOptions(EditorInfo.IME_ACTION_NEXT); + fieldView.setImeOptions(EditorInfo.IME_ACTION_NEXT | EditorInfo.IME_FLAG_NO_FULLSCREEN); // Read current value from state final String column = field.column; diff --git a/src/com/android/contacts/interactions/SmsInteraction.java b/src/com/android/contacts/interactions/SmsInteraction.java index 7d26401ee..ba0070c2c 100644 --- a/src/com/android/contacts/interactions/SmsInteraction.java +++ b/src/com/android/contacts/interactions/SmsInteraction.java @@ -35,7 +35,7 @@ import android.text.TextDirectionHeuristics; public class SmsInteraction implements ContactInteraction { private static final String URI_TARGET_PREFIX = "smsto:"; - private static final int SMS_ICON_RES = R.drawable.ic_message_24dp; + private static final int SMS_ICON_RES = R.drawable.ic_message_24dp_mirrored; private static BidiFormatter sBidiFormatter = BidiFormatter.getInstance(); private ContentValues mValues; diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java index 5469c2e37..c63c989a4 100644 --- a/src/com/android/contacts/quickcontact/QuickContactActivity.java +++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java @@ -32,6 +32,7 @@ import android.content.Loader; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.res.ColorStateList; +import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; @@ -113,6 +114,7 @@ import com.android.contacts.common.activity.RequestDesiredPermissionsActivity; import com.android.contacts.common.activity.RequestPermissionsActivity; import com.android.contacts.common.compat.CompatUtils; import com.android.contacts.common.compat.EventCompat; +import com.android.contacts.common.compat.MultiWindowCompat; import com.android.contacts.common.dialog.CallSubjectDialog; import com.android.contacts.common.editor.SelectAccountDialogFragment; import com.android.contacts.common.interactions.TouchPointManager; @@ -1039,7 +1041,9 @@ public class QuickContactActivity extends ContactsActivity mWindowScrim.setAlpha(0); getWindow().setBackgroundDrawable(mWindowScrim); - mScroller.initialize(mMultiShrinkScrollerListener, mExtraMode == MODE_FULLY_EXPANDED); + mScroller.initialize(mMultiShrinkScrollerListener, mExtraMode == MODE_FULLY_EXPANDED, + /* maximumHeaderTextSize */ -1, + /* shouldUpdateNameViewHeight */ true); // mScroller needs to perform asynchronous measurements after initalize(), therefore // we can't mark this as GONE. mScroller.setVisibility(View.INVISIBLE); @@ -1152,7 +1156,11 @@ public class QuickContactActivity extends ContactsActivity ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId)); } mExtraMode = getIntent().getIntExtra(QuickContact.EXTRA_MODE, QuickContact.MODE_LARGE); - mExtraPrioritizedMimeType = getIntent().getStringExtra(QuickContact.EXTRA_PRIORITIZED_MIMETYPE); + if (isMultiWindowOnPhone()) { + mExtraMode = QuickContact.MODE_LARGE; + } + mExtraPrioritizedMimeType = + getIntent().getStringExtra(QuickContact.EXTRA_PRIORITIZED_MIMETYPE); final Uri oldLookupUri = mLookupUri; if (lookupUri == null) { @@ -1189,7 +1197,12 @@ public class QuickContactActivity extends ContactsActivity return; } mHasAlreadyBeenOpened = true; - mScroller.scrollUpForEntranceAnimation(mExtraMode != MODE_FULLY_EXPANDED); + mScroller.scrollUpForEntranceAnimation(/* scrollToCurrentPosition */ !isMultiWindowOnPhone() + && (mExtraMode != MODE_FULLY_EXPANDED)); + } + + private boolean isMultiWindowOnPhone() { + return MultiWindowCompat.isInMultiWindowMode(this) && PhoneCapabilityTester.isPhone(this); } /** Assign this string to the view if it is not empty. */ @@ -1868,7 +1881,7 @@ public class QuickContactActivity extends ContactsActivity alternateIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(ContactsUtils.SCHEME_SMSTO, phone.getNumber(), null)); - alternateIcon = res.getDrawable(R.drawable.ic_message_24dp); + alternateIcon = res.getDrawable(R.drawable.ic_message_24dp_mirrored); alternateContentDescription.append(res.getString(R.string.sms_custom, header)); smsContentDescription = com.android.contacts.common.util.ContactDisplayUtils .getTelephoneTtsSpannable(alternateContentDescription.toString(), header); diff --git a/src/com/android/contacts/widget/MultiShrinkScroller.java b/src/com/android/contacts/widget/MultiShrinkScroller.java index eb3283f51..b1deb9014 100644 --- a/src/com/android/contacts/widget/MultiShrinkScroller.java +++ b/src/com/android/contacts/widget/MultiShrinkScroller.java @@ -66,7 +66,7 @@ import android.widget.Toolbar; public class MultiShrinkScroller extends FrameLayout { /** - * 1000 pixels per millisecond. Ie, 1 pixel per second. + * 1000 pixels per second. Ie, 1 pixel per millisecond. */ private static final int PIXELS_PER_SECOND = 1000; @@ -135,6 +135,8 @@ public class MultiShrinkScroller extends FrameLayout { */ private boolean mIsOpenContactSquare; private int mMaximumHeaderTextSize; + private int mMaximumPhoneticNameViewHeight; + private int mMaximumFullNameViewHeight; private int mCollapsedTitleBottomMargin; private int mCollapsedTitleStartMargin; private int mMinimumPortraitHeaderHeight; @@ -287,7 +289,8 @@ public class MultiShrinkScroller extends FrameLayout { /** * This method must be called inside the Activity's OnCreate. */ - public void initialize(MultiShrinkScrollerListener listener, boolean isOpenContactSquare) { + public void initialize(MultiShrinkScrollerListener listener, boolean isOpenContactSquare, + final int maximumHeaderTextSize, final boolean shouldUpdateNameViewHeight) { mScrollView = (ScrollView) findViewById(R.id.content_scroller); mScrollViewChild = findViewById(R.id.card_container); mToolbar = findViewById(R.id.toolbar_parent); @@ -346,7 +349,20 @@ public class MultiShrinkScroller extends FrameLayout { mMaximumPortraitHeaderHeight = mIsTwoPanel ? getHeight() : mPhotoViewContainer.getWidth(); setHeaderHeight(getMaximumScrollableHeaderHeight()); - mMaximumHeaderTextSize = mTitleAndPhoneticNameView.getHeight(); + if (shouldUpdateNameViewHeight) { + mMaximumHeaderTextSize = mTitleAndPhoneticNameView.getHeight(); + mMaximumFullNameViewHeight = mLargeTextView.getHeight(); + // We cannot rely on mPhoneticNameView.getHeight() since it could be 0 + final int phoneticNameSize = getResources().getDimensionPixelSize( + R.dimen.quickcontact_maximum_phonetic_name_size); + final int fullNameSize = getResources().getDimensionPixelSize( + R.dimen.quickcontact_maximum_title_size); + mMaximumPhoneticNameViewHeight = + mMaximumFullNameViewHeight * phoneticNameSize / fullNameSize; + } + if (maximumHeaderTextSize > 0) { + mMaximumHeaderTextSize = maximumHeaderTextSize; + } if (mIsTwoPanel) { mMaximumHeaderHeight = getHeight(); mMinimumHeaderHeight = mMaximumHeaderHeight; @@ -393,7 +409,7 @@ public class MultiShrinkScroller extends FrameLayout { final float TITLE_GRADIENT_SIZE_COEFFICIENT = 1.25f; final FrameLayout.LayoutParams largeTextLayoutParms = (FrameLayout.LayoutParams) mTitleAndPhoneticNameView.getLayoutParams(); - titleGradientLayoutParams.height = (int) ((mTitleAndPhoneticNameView.getHeight() + titleGradientLayoutParams.height = (int) ((mMaximumHeaderTextSize + largeTextLayoutParms.bottomMargin) * TITLE_GRADIENT_SIZE_COEFFICIENT); mTitleGradientView.setLayoutParams(titleGradientLayoutParams); } @@ -418,7 +434,9 @@ public class MultiShrinkScroller extends FrameLayout { // in case it just changed from Visibility=GONE. mPhoneticNameView.setVisibility(View.VISIBLE); // TODO try not using initialize() to refresh phonetic name view: b/27410518 - initialize(mListener, mIsOpenContactSquare); + initialize(mListener, mIsOpenContactSquare, /* maximumHeaderTextSize */ + (mMaximumFullNameViewHeight + mMaximumPhoneticNameViewHeight), + /* shouldUpdateNameViewHeight */ false); } public void setPhoneticNameGone() { @@ -429,7 +447,9 @@ public class MultiShrinkScroller extends FrameLayout { mPhoneticNameView.setVisibility(View.GONE); // Initialize to make Visibility work. // TODO try not using initialize() to refresh phonetic name view: b/27410518 - initialize(mListener, mIsOpenContactSquare); + initialize(mListener, mIsOpenContactSquare, + /* maximumHeaderTextSize */ mMaximumFullNameViewHeight, + /* shouldUpdateNameViewHeight */ false); } @Override @@ -1039,7 +1059,7 @@ public class MultiShrinkScroller extends FrameLayout { } else { mTitleAndPhoneticNameView.setPivotX(0); } - mTitleAndPhoneticNameView.setPivotY(mTitleAndPhoneticNameView.getHeight() / 2); + mTitleAndPhoneticNameView.setPivotY(mMaximumHeaderTextSize / 2); final int toolbarHeight = mToolbar.getLayoutParams().height; mPhotoTouchInterceptOverlay.setClickable(toolbarHeight != mMaximumHeaderHeight); @@ -1085,7 +1105,7 @@ public class MultiShrinkScroller extends FrameLayout { // Padding needed on the mTitleAndPhoneticNameView so that it has the same amount of // padding as the target rectangle. mCollapsedTitleBottomMargin = - desiredTopToCenter - mTitleAndPhoneticNameView.getHeight() / 2; + desiredTopToCenter - mMaximumHeaderTextSize / 2; } /** diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml index e82cea8a9..65c04bc21 100644 --- a/tests/AndroidManifest.xml +++ b/tests/AndroidManifest.xml @@ -19,7 +19,7 @@ <uses-sdk android:minSdkVersion="21" - android:targetSdkVersion="24" /> + android:targetSdkVersion="25" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> |