diff options
Diffstat (limited to 'java/com/android/dialer/app/widget')
3 files changed, 15 insertions, 129 deletions
diff --git a/java/com/android/dialer/app/widget/DialpadSearchEmptyContentView.java b/java/com/android/dialer/app/widget/DialpadSearchEmptyContentView.java index 85fd5ec6a..5846b1f73 100644 --- a/java/com/android/dialer/app/widget/DialpadSearchEmptyContentView.java +++ b/java/com/android/dialer/app/widget/DialpadSearchEmptyContentView.java @@ -21,6 +21,7 @@ import android.view.LayoutInflater; import android.widget.LinearLayout; import com.android.dialer.app.R; import com.android.dialer.util.OrientationUtil; +import com.android.dialer.widget.EmptyContentView; /** Empty content view to be shown when dialpad is visible. */ public class DialpadSearchEmptyContentView extends EmptyContentView { diff --git a/java/com/android/dialer/app/widget/EmptyContentView.java b/java/com/android/dialer/app/widget/EmptyContentView.java deleted file mode 100644 index cfc8665a2..000000000 --- a/java/com/android/dialer/app/widget/EmptyContentView.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright (C) 2015 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.app.widget; - -import android.content.Context; -import android.util.AttributeSet; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.TextView; -import com.android.dialer.app.R; - -public class EmptyContentView extends LinearLayout implements View.OnClickListener { - - /** Listener to call when action button is clicked. */ - public interface OnEmptyViewActionButtonClickedListener { - void onEmptyViewActionButtonClicked(); - } - - public static final int NO_LABEL = 0; - public static final int NO_IMAGE = 0; - - private ImageView mImageView; - private TextView mDescriptionView; - private TextView mActionView; - private OnEmptyViewActionButtonClickedListener mOnActionButtonClickedListener; - - public EmptyContentView(Context context) { - this(context, null); - } - - public EmptyContentView(Context context, AttributeSet attrs) { - this(context, attrs, 0); - } - - public EmptyContentView(Context context, AttributeSet attrs, int defStyleAttr) { - this(context, attrs, defStyleAttr, 0); - } - - public EmptyContentView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - inflateLayout(); - - // Don't let touches fall through the empty view. - setClickable(true); - mImageView = (ImageView) findViewById(R.id.emptyListViewImage); - mDescriptionView = (TextView) findViewById(R.id.emptyListViewMessage); - mActionView = (TextView) findViewById(R.id.emptyListViewAction); - mActionView.setOnClickListener(this); - } - - public void setDescription(int resourceId) { - if (resourceId == NO_LABEL) { - mDescriptionView.setText(null); - mDescriptionView.setVisibility(View.GONE); - } else { - mDescriptionView.setText(resourceId); - mDescriptionView.setVisibility(View.VISIBLE); - } - } - - public void setImage(int resourceId) { - if (resourceId == NO_LABEL) { - mImageView.setImageDrawable(null); - mImageView.setVisibility(View.GONE); - } else { - mImageView.setImageResource(resourceId); - mImageView.setVisibility(View.VISIBLE); - } - } - - public void setActionLabel(int resourceId) { - if (resourceId == NO_LABEL) { - mActionView.setText(null); - mActionView.setVisibility(View.GONE); - } else { - mActionView.setText(resourceId); - mActionView.setVisibility(View.VISIBLE); - } - } - - public boolean isShowingContent() { - return mImageView.getVisibility() == View.VISIBLE - || mDescriptionView.getVisibility() == View.VISIBLE - || mActionView.getVisibility() == View.VISIBLE; - } - - public void setActionClickedListener(OnEmptyViewActionButtonClickedListener listener) { - mOnActionButtonClickedListener = listener; - } - - @Override - public void onClick(View v) { - if (mOnActionButtonClickedListener != null) { - mOnActionButtonClickedListener.onEmptyViewActionButtonClicked(); - } - } - - protected void inflateLayout() { - setOrientation(LinearLayout.VERTICAL); - final LayoutInflater inflater = - (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); - inflater.inflate(R.layout.empty_content_view, this); - } - -} diff --git a/java/com/android/dialer/app/widget/SearchEditTextLayout.java b/java/com/android/dialer/app/widget/SearchEditTextLayout.java index f83c48288..d67fd9eff 100644 --- a/java/com/android/dialer/app/widget/SearchEditTextLayout.java +++ b/java/com/android/dialer/app/widget/SearchEditTextLayout.java @@ -52,7 +52,6 @@ public class SearchEditTextLayout extends FrameLayout { private View mVoiceSearchButtonView; private View mOverflowButtonView; private View mBackButtonView; - private View mExpandedSearchBox; private View mClearButtonView; private ValueAnimator mAnimator; @@ -90,20 +89,27 @@ public class SearchEditTextLayout extends FrameLayout { mVoiceSearchButtonView = findViewById(R.id.voice_search_button); mOverflowButtonView = findViewById(R.id.dialtacts_options_menu_button); mBackButtonView = findViewById(R.id.search_back_button); - mExpandedSearchBox = findViewById(R.id.search_box_expanded); + mBackButtonView + .getResources() + .getDrawable(R.drawable.quantum_ic_arrow_back_vd_theme_24) + .setAutoMirrored(true); mClearButtonView = findViewById(R.id.search_close_button); - // Convert a long click into a click to expand the search box, and then long click on the - // search view. This accelerates the long-press scenario for copy/paste. + // Convert a long click into a click to expand the search box. Touch events are also + // forwarded to the searchView. This accelerates the long-press scenario for copy/paste. mCollapsed.setOnLongClickListener( new OnLongClickListener() { @Override public boolean onLongClick(View view) { mCollapsed.performClick(); - mSearchView.performLongClick(); return false; } }); + mCollapsed.setOnTouchListener( + (v, event) -> { + mSearchView.onTouchEvent(event); + return false; + }); mSearchView.setOnFocusChangeListener( new OnFocusChangeListener() { @@ -212,7 +218,7 @@ public class SearchEditTextLayout extends FrameLayout { AnimUtils.crossFadeViews(mExpanded, mCollapsed, ANIMATION_DURATION); mAnimator = ValueAnimator.ofFloat(EXPAND_MARGIN_FRACTION_START, 0f); setMargins(EXPAND_MARGIN_FRACTION_START); - prepareAnimator(true); + prepareAnimator(); } else { mExpanded.setVisibility(View.VISIBLE); mExpanded.setAlpha(1); @@ -241,7 +247,7 @@ public class SearchEditTextLayout extends FrameLayout { if (animate) { AnimUtils.crossFadeViews(mCollapsed, mExpanded, ANIMATION_DURATION); mAnimator = ValueAnimator.ofFloat(0f, 1f); - prepareAnimator(false); + prepareAnimator(); } else { mCollapsed.setVisibility(View.VISIBLE); mCollapsed.setAlpha(1); @@ -279,7 +285,7 @@ public class SearchEditTextLayout extends FrameLayout { } } - private void prepareAnimator(final boolean expand) { + private void prepareAnimator() { if (mAnimator != null) { mAnimator.cancel(); } |