Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0b7b1d51 authored by calderwoodra's avatar calderwoodra Committed by android-build-merger
Browse files

Merge "SpeedDialEntries with default numbers now properly show up." am: 203d5097

am: 5c109c66

Change-Id: I28402eb43656f450512cfec5d55350918df41eac
parents 2287c359 5c109c66
Loading
Loading
Loading
Loading
+11 −12
Original line number Diff line number Diff line
@@ -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);
        });
@@ -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);
            });
@@ -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();
+4 −1
Original line number Diff line number Diff line
@@ -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();
  }
+6 −5
Original line number Diff line number Diff line
@@ -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">
@@ -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"
@@ -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
+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));
    }
  }
}
+3 −0
Original line number Diff line number Diff line
@@ -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>