Loading java/com/android/dialer/speeddial/SpeedDialFragment.java +11 −12 Original line number Diff line number Diff line Loading @@ -148,13 +148,7 @@ public class SpeedDialFragment extends Fragment { speedDialLoaderListener.listen( getContext(), UiItemLoaderComponent.get(getContext()).speedDialUiItemLoader().loadSpeedDialUiItems(), speedDialUiItems -> { adapter.setSpeedDialUiItems( UiItemLoaderComponent.get(getContext()) .speedDialUiItemLoader() .insertDuoChannels(getContext(), speedDialUiItems)); adapter.notifyDataSetChanged(); }, this::onSpeedDialUiItemListLoaded, throwable -> { throw new RuntimeException(throwable); }); Loading @@ -170,11 +164,7 @@ public class SpeedDialFragment extends Fragment { UiItemLoaderComponent.get(getContext()) .speedDialUiItemLoader() .starContact(data.getData()), speedDialUiItems -> { adapter.setSpeedDialUiItems(speedDialUiItems); // TODO(calderwoodra): Use DiffUtil to properly update and animate the change adapter.notifyDataSetChanged(); }, this::onSpeedDialUiItemListLoaded, throwable -> { throw new RuntimeException(throwable); }); Loading @@ -182,6 +172,15 @@ public class SpeedDialFragment extends Fragment { } } private void onSpeedDialUiItemListLoaded(ImmutableList<SpeedDialUiItem> speedDialUiItems) { // TODO(calderwoodra): Use DiffUtil to properly update and animate the change adapter.setSpeedDialUiItems( UiItemLoaderComponent.get(getContext()) .speedDialUiItemLoader() .insertDuoChannels(getContext(), speedDialUiItems)); adapter.notifyDataSetChanged(); } @Override public void onPause() { super.onPause(); Loading java/com/android/dialer/speeddial/loader/SpeedDialUiItemLoader.java +4 −1 Original line number Diff line number Diff line Loading @@ -445,7 +445,10 @@ public final class SpeedDialUiItemLoader { } else if (item.defaultChannel() == null) { // If the contact is starred and doesn't have a default channel, insert duo channels newSpeedDialItemList.add(insertDuoChannelsToStarredContact(context, item)); } // if starred and has a default channel, leave it as is, the user knows what they want. } else { // if starred and has a default channel, leave it as is, the user knows what they want. newSpeedDialItemList.add(item); } } return newSpeedDialItemList.build(); } Loading java/com/android/dialer/speeddial/res/layout/disambig_dialog_layout.xml +6 −5 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> Loading @@ -35,17 +36,18 @@ android:fontFamily="sans-serif-medium" android:background="@android:color/white"/> <ScrollView <com.android.dialer.widget.MaxHeightScrollView android:id="@+id/disambig_scrollview" android:layout_width="match_parent" android:layout_height="wrap_content"> android:layout_height="wrap_content" app:maxHeight="240dp"> <LinearLayout android:id="@+id/communication_avenue_container" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"/> </ScrollView> </com.android.dialer.widget.MaxHeightScrollView> <FrameLayout android:id="@+id/remember_this_choice_container" Loading @@ -60,8 +62,7 @@ <CheckBox android:id="@+id/remember_this_choice_checkbox" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="48dp" android:layout_height="48dp" android:text="@string/speed_dial_remember_this_choice"/> </FrameLayout> </LinearLayout> No newline at end of file java/com/android/dialer/widget/MaxHeightScrollView.java 0 → 100644 +64 −0 Original line number Diff line number Diff line /* * Copyright (C) 2018 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.dialer.widget; import android.content.Context; import android.content.res.TypedArray; import android.support.annotation.Nullable; import android.util.AttributeSet; import android.widget.ScrollView; /** {@link ScrollView} with a max height attribute. */ public class MaxHeightScrollView extends ScrollView { private final int maxHeight; public MaxHeightScrollView(Context context, @Nullable AttributeSet attrs) { this(context, attrs, 0); } public MaxHeightScrollView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { this(context, attrs, defStyleAttr, 0); } public MaxHeightScrollView( Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); if (isInEditMode()) { maxHeight = -1; return; } TypedArray array = context.getTheme().obtainStyledAttributes(attrs, R.styleable.MaxHeightScrollView, 0, 0); try { maxHeight = array.getDimensionPixelSize(R.styleable.MaxHeightScrollView_maxHeight, -1); } finally { array.recycle(); } } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { if (maxHeight < 0) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); } else { super.onMeasure( widthMeasureSpec, MeasureSpec.makeMeasureSpec(maxHeight, MeasureSpec.AT_MOST)); } } } java/com/android/dialer/widget/res/values/attrs.xml +3 −0 Original line number Diff line number Diff line Loading @@ -20,4 +20,7 @@ <attr format="dimension" name="resizing_text_min_size"/> </declare-styleable> <declare-styleable name="MaxHeightScrollView"> <attr name="maxHeight" format="dimension"/> </declare-styleable> </resources> Loading
java/com/android/dialer/speeddial/SpeedDialFragment.java +11 −12 Original line number Diff line number Diff line Loading @@ -148,13 +148,7 @@ public class SpeedDialFragment extends Fragment { speedDialLoaderListener.listen( getContext(), UiItemLoaderComponent.get(getContext()).speedDialUiItemLoader().loadSpeedDialUiItems(), speedDialUiItems -> { adapter.setSpeedDialUiItems( UiItemLoaderComponent.get(getContext()) .speedDialUiItemLoader() .insertDuoChannels(getContext(), speedDialUiItems)); adapter.notifyDataSetChanged(); }, this::onSpeedDialUiItemListLoaded, throwable -> { throw new RuntimeException(throwable); }); Loading @@ -170,11 +164,7 @@ public class SpeedDialFragment extends Fragment { UiItemLoaderComponent.get(getContext()) .speedDialUiItemLoader() .starContact(data.getData()), speedDialUiItems -> { adapter.setSpeedDialUiItems(speedDialUiItems); // TODO(calderwoodra): Use DiffUtil to properly update and animate the change adapter.notifyDataSetChanged(); }, this::onSpeedDialUiItemListLoaded, throwable -> { throw new RuntimeException(throwable); }); Loading @@ -182,6 +172,15 @@ public class SpeedDialFragment extends Fragment { } } private void onSpeedDialUiItemListLoaded(ImmutableList<SpeedDialUiItem> speedDialUiItems) { // TODO(calderwoodra): Use DiffUtil to properly update and animate the change adapter.setSpeedDialUiItems( UiItemLoaderComponent.get(getContext()) .speedDialUiItemLoader() .insertDuoChannels(getContext(), speedDialUiItems)); adapter.notifyDataSetChanged(); } @Override public void onPause() { super.onPause(); Loading
java/com/android/dialer/speeddial/loader/SpeedDialUiItemLoader.java +4 −1 Original line number Diff line number Diff line Loading @@ -445,7 +445,10 @@ public final class SpeedDialUiItemLoader { } else if (item.defaultChannel() == null) { // If the contact is starred and doesn't have a default channel, insert duo channels newSpeedDialItemList.add(insertDuoChannelsToStarredContact(context, item)); } // if starred and has a default channel, leave it as is, the user knows what they want. } else { // if starred and has a default channel, leave it as is, the user knows what they want. newSpeedDialItemList.add(item); } } return newSpeedDialItemList.build(); } Loading
java/com/android/dialer/speeddial/res/layout/disambig_dialog_layout.xml +6 −5 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> Loading @@ -35,17 +36,18 @@ android:fontFamily="sans-serif-medium" android:background="@android:color/white"/> <ScrollView <com.android.dialer.widget.MaxHeightScrollView android:id="@+id/disambig_scrollview" android:layout_width="match_parent" android:layout_height="wrap_content"> android:layout_height="wrap_content" app:maxHeight="240dp"> <LinearLayout android:id="@+id/communication_avenue_container" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"/> </ScrollView> </com.android.dialer.widget.MaxHeightScrollView> <FrameLayout android:id="@+id/remember_this_choice_container" Loading @@ -60,8 +62,7 @@ <CheckBox android:id="@+id/remember_this_choice_checkbox" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="48dp" android:layout_height="48dp" android:text="@string/speed_dial_remember_this_choice"/> </FrameLayout> </LinearLayout> No newline at end of file
java/com/android/dialer/widget/MaxHeightScrollView.java 0 → 100644 +64 −0 Original line number Diff line number Diff line /* * Copyright (C) 2018 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.dialer.widget; import android.content.Context; import android.content.res.TypedArray; import android.support.annotation.Nullable; import android.util.AttributeSet; import android.widget.ScrollView; /** {@link ScrollView} with a max height attribute. */ public class MaxHeightScrollView extends ScrollView { private final int maxHeight; public MaxHeightScrollView(Context context, @Nullable AttributeSet attrs) { this(context, attrs, 0); } public MaxHeightScrollView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { this(context, attrs, defStyleAttr, 0); } public MaxHeightScrollView( Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); if (isInEditMode()) { maxHeight = -1; return; } TypedArray array = context.getTheme().obtainStyledAttributes(attrs, R.styleable.MaxHeightScrollView, 0, 0); try { maxHeight = array.getDimensionPixelSize(R.styleable.MaxHeightScrollView_maxHeight, -1); } finally { array.recycle(); } } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { if (maxHeight < 0) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); } else { super.onMeasure( widthMeasureSpec, MeasureSpec.makeMeasureSpec(maxHeight, MeasureSpec.AT_MOST)); } } }
java/com/android/dialer/widget/res/values/attrs.xml +3 −0 Original line number Diff line number Diff line Loading @@ -20,4 +20,7 @@ <attr format="dimension" name="resizing_text_min_size"/> </declare-styleable> <declare-styleable name="MaxHeightScrollView"> <attr name="maxHeight" format="dimension"/> </declare-styleable> </resources>