Loading res/drawable/expanding_entry_card_collapse_white_24.xmldeleted 100644 → 0 +0 −20 Original line number Diff line number Diff line <?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. --> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/expanding_entry_card_expand_white_24" android:fromDegrees="180" android:toDegrees="0"/> No newline at end of file res/layout/quickcontact_expanding_entry_card_button.xml +11 −2 Original line number Diff line number Diff line Loading @@ -30,15 +30,24 @@ android:layout_height="wrap_content" android:orientation="horizontal" > <ImageView android:id="@+id/arrow" android:src="@drawable/expanding_entry_card_expand_white_24" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="@dimen/expanding_entry_card_item_padding_start" android:paddingBottom="@dimen/expanding_entry_card_button_padding_vertical" android:paddingTop="@dimen/expanding_entry_card_button_padding_vertical" android:layout_weight="0" /> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawablePadding="@dimen/expanding_entry_card_item_image_spacing" android:paddingStart="@dimen/expanding_entry_card_item_image_spacing" android:gravity="center_vertical" android:layout_weight="0" android:paddingBottom="@dimen/expanding_entry_card_button_padding_vertical" android:paddingStart="@dimen/expanding_entry_card_item_padding_start" android:paddingTop="@dimen/expanding_entry_card_button_padding_vertical" android:textColor="@color/expanding_entry_card_button_text_color" android:textSize="@dimen/expanding_entry_card_title_text_size" /> Loading src/com/android/contacts/quickcontact/ExpandingEntryCardView.java +22 −20 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ package com.android.contacts.quickcontact; import android.animation.ObjectAnimator; import android.content.Context; import android.content.Intent; import android.content.res.Resources; Loading Loading @@ -177,8 +178,7 @@ public class ExpandingEntryCardView extends CardView { private boolean mAllEntriesInflated = false; private List<List<View>> mEntryViews; private LinearLayout mEntriesViewGroup; private final Drawable mCollapseArrowDrawable; private final Drawable mExpandArrowDrawable; private final ImageView mExpandCollapseArrow; private int mThemeColor; private ColorFilter mThemeColorFilter; private boolean mIsAlwaysExpanded; Loading Loading @@ -211,14 +211,11 @@ public class ExpandingEntryCardView extends CardView { expandingEntryCardView.findViewById(R.id.content_area_linear_layout); mTitleTextView = (TextView) expandingEntryCardView.findViewById(R.id.title); mContainer = (LinearLayout) expandingEntryCardView.findViewById(R.id.container); mCollapseArrowDrawable = getResources().getDrawable(R.drawable.expanding_entry_card_collapse_white_24); mExpandArrowDrawable = getResources().getDrawable(R.drawable.expanding_entry_card_expand_white_24); mExpandCollapseButton = inflater.inflate( R.layout.quickcontact_expanding_entry_card_button, this, false); mExpandCollapseTextView = (TextView) mExpandCollapseButton.findViewById(R.id.text); mExpandCollapseArrow = (ImageView) mExpandCollapseButton.findViewById(R.id.arrow); mExpandCollapseButton.setOnClickListener(mExpandCollapseButtonListener); mBadgeContainer = (LinearLayout) mExpandCollapseButton.findViewById(R.id.badge_container); Loading Loading @@ -256,10 +253,10 @@ public class ExpandingEntryCardView extends CardView { mAnimationViewGroup = animationViewGroup; if (mIsExpanded) { updateExpandCollapseButton(getCollapseButtonText()); updateExpandCollapseButton(getCollapseButtonText(), /* duration = */ 0); inflateAllEntries(layoutInflater); } else { updateExpandCollapseButton(getExpandButtonText()); updateExpandCollapseButton(getExpandButtonText(), /* duration = */ 0); inflateInitialEntries(layoutInflater); } insertEntriesIntoViewGroup(); Loading Loading @@ -468,8 +465,7 @@ public class ExpandingEntryCardView extends CardView { // Expand/Collapse mExpandCollapseTextView.setTextColor(mThemeColor); mCollapseArrowDrawable.setColorFilter(mThemeColorFilter); mExpandArrowDrawable.setColorFilter(mThemeColorFilter); mExpandCollapseArrow.setColorFilter(mThemeColorFilter); } } Loading Loading @@ -577,16 +573,20 @@ public class ExpandingEntryCardView extends CardView { return view; } private void updateExpandCollapseButton(CharSequence buttonText) { final Drawable arrow = mIsExpanded ? mCollapseArrowDrawable : mExpandArrowDrawable; updateBadges(); if (getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) { mExpandCollapseTextView.setCompoundDrawablesWithIntrinsicBounds(null, null, arrow, null); private void updateExpandCollapseButton(CharSequence buttonText, long duration) { if (mIsExpanded) { final ObjectAnimator animator = ObjectAnimator.ofFloat(mExpandCollapseArrow, "rotation", 180); animator.setDuration(duration); animator.start(); } else { mExpandCollapseTextView.setCompoundDrawablesWithIntrinsicBounds(arrow, null, null, null); final ObjectAnimator animator = ObjectAnimator.ofFloat(mExpandCollapseArrow, "rotation", 0); animator.setDuration(duration); animator.start(); } updateBadges(); mExpandCollapseTextView.setText(buttonText); } Loading Loading @@ -665,13 +665,15 @@ public class ExpandingEntryCardView extends CardView { // In order to insert new entries, we may need to inflate them for the first time inflateAllEntries(LayoutInflater.from(getContext())); insertEntriesIntoViewGroup(); updateExpandCollapseButton(getCollapseButtonText()); updateExpandCollapseButton(getCollapseButtonText(), DURATION_EXPAND_ANIMATION_CHANGE_BOUNDS); } private void collapse() { final int startingHeight = mEntriesViewGroup.getMeasuredHeight(); mIsExpanded = false; updateExpandCollapseButton(getExpandButtonText()); updateExpandCollapseButton(getExpandButtonText(), DURATION_COLLAPSE_ANIMATION_CHANGE_BOUNDS); final ChangeBounds boundsTransition = new ChangeBounds(); boundsTransition.setDuration(DURATION_COLLAPSE_ANIMATION_CHANGE_BOUNDS); Loading Loading
res/drawable/expanding_entry_card_collapse_white_24.xmldeleted 100644 → 0 +0 −20 Original line number Diff line number Diff line <?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. --> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/expanding_entry_card_expand_white_24" android:fromDegrees="180" android:toDegrees="0"/> No newline at end of file
res/layout/quickcontact_expanding_entry_card_button.xml +11 −2 Original line number Diff line number Diff line Loading @@ -30,15 +30,24 @@ android:layout_height="wrap_content" android:orientation="horizontal" > <ImageView android:id="@+id/arrow" android:src="@drawable/expanding_entry_card_expand_white_24" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="@dimen/expanding_entry_card_item_padding_start" android:paddingBottom="@dimen/expanding_entry_card_button_padding_vertical" android:paddingTop="@dimen/expanding_entry_card_button_padding_vertical" android:layout_weight="0" /> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawablePadding="@dimen/expanding_entry_card_item_image_spacing" android:paddingStart="@dimen/expanding_entry_card_item_image_spacing" android:gravity="center_vertical" android:layout_weight="0" android:paddingBottom="@dimen/expanding_entry_card_button_padding_vertical" android:paddingStart="@dimen/expanding_entry_card_item_padding_start" android:paddingTop="@dimen/expanding_entry_card_button_padding_vertical" android:textColor="@color/expanding_entry_card_button_text_color" android:textSize="@dimen/expanding_entry_card_title_text_size" /> Loading
src/com/android/contacts/quickcontact/ExpandingEntryCardView.java +22 −20 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ package com.android.contacts.quickcontact; import android.animation.ObjectAnimator; import android.content.Context; import android.content.Intent; import android.content.res.Resources; Loading Loading @@ -177,8 +178,7 @@ public class ExpandingEntryCardView extends CardView { private boolean mAllEntriesInflated = false; private List<List<View>> mEntryViews; private LinearLayout mEntriesViewGroup; private final Drawable mCollapseArrowDrawable; private final Drawable mExpandArrowDrawable; private final ImageView mExpandCollapseArrow; private int mThemeColor; private ColorFilter mThemeColorFilter; private boolean mIsAlwaysExpanded; Loading Loading @@ -211,14 +211,11 @@ public class ExpandingEntryCardView extends CardView { expandingEntryCardView.findViewById(R.id.content_area_linear_layout); mTitleTextView = (TextView) expandingEntryCardView.findViewById(R.id.title); mContainer = (LinearLayout) expandingEntryCardView.findViewById(R.id.container); mCollapseArrowDrawable = getResources().getDrawable(R.drawable.expanding_entry_card_collapse_white_24); mExpandArrowDrawable = getResources().getDrawable(R.drawable.expanding_entry_card_expand_white_24); mExpandCollapseButton = inflater.inflate( R.layout.quickcontact_expanding_entry_card_button, this, false); mExpandCollapseTextView = (TextView) mExpandCollapseButton.findViewById(R.id.text); mExpandCollapseArrow = (ImageView) mExpandCollapseButton.findViewById(R.id.arrow); mExpandCollapseButton.setOnClickListener(mExpandCollapseButtonListener); mBadgeContainer = (LinearLayout) mExpandCollapseButton.findViewById(R.id.badge_container); Loading Loading @@ -256,10 +253,10 @@ public class ExpandingEntryCardView extends CardView { mAnimationViewGroup = animationViewGroup; if (mIsExpanded) { updateExpandCollapseButton(getCollapseButtonText()); updateExpandCollapseButton(getCollapseButtonText(), /* duration = */ 0); inflateAllEntries(layoutInflater); } else { updateExpandCollapseButton(getExpandButtonText()); updateExpandCollapseButton(getExpandButtonText(), /* duration = */ 0); inflateInitialEntries(layoutInflater); } insertEntriesIntoViewGroup(); Loading Loading @@ -468,8 +465,7 @@ public class ExpandingEntryCardView extends CardView { // Expand/Collapse mExpandCollapseTextView.setTextColor(mThemeColor); mCollapseArrowDrawable.setColorFilter(mThemeColorFilter); mExpandArrowDrawable.setColorFilter(mThemeColorFilter); mExpandCollapseArrow.setColorFilter(mThemeColorFilter); } } Loading Loading @@ -577,16 +573,20 @@ public class ExpandingEntryCardView extends CardView { return view; } private void updateExpandCollapseButton(CharSequence buttonText) { final Drawable arrow = mIsExpanded ? mCollapseArrowDrawable : mExpandArrowDrawable; updateBadges(); if (getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) { mExpandCollapseTextView.setCompoundDrawablesWithIntrinsicBounds(null, null, arrow, null); private void updateExpandCollapseButton(CharSequence buttonText, long duration) { if (mIsExpanded) { final ObjectAnimator animator = ObjectAnimator.ofFloat(mExpandCollapseArrow, "rotation", 180); animator.setDuration(duration); animator.start(); } else { mExpandCollapseTextView.setCompoundDrawablesWithIntrinsicBounds(arrow, null, null, null); final ObjectAnimator animator = ObjectAnimator.ofFloat(mExpandCollapseArrow, "rotation", 0); animator.setDuration(duration); animator.start(); } updateBadges(); mExpandCollapseTextView.setText(buttonText); } Loading Loading @@ -665,13 +665,15 @@ public class ExpandingEntryCardView extends CardView { // In order to insert new entries, we may need to inflate them for the first time inflateAllEntries(LayoutInflater.from(getContext())); insertEntriesIntoViewGroup(); updateExpandCollapseButton(getCollapseButtonText()); updateExpandCollapseButton(getCollapseButtonText(), DURATION_EXPAND_ANIMATION_CHANGE_BOUNDS); } private void collapse() { final int startingHeight = mEntriesViewGroup.getMeasuredHeight(); mIsExpanded = false; updateExpandCollapseButton(getExpandButtonText()); updateExpandCollapseButton(getExpandButtonText(), DURATION_COLLAPSE_ANIMATION_CHANGE_BOUNDS); final ChangeBounds boundsTransition = new ChangeBounds(); boundsTransition.setDuration(DURATION_COLLAPSE_ANIMATION_CHANGE_BOUNDS); Loading