Clean up lint warnings in popup menu presenter classes

Change-Id: I6b4cce1c4788b408615af0c93575e02e75b4c3ca
This commit is contained in:
Alan Viverette
2016-01-13 13:33:17 -05:00
parent 32895546c6
commit 02cd0f9105
4 changed files with 59 additions and 71 deletions

View File

@@ -59,7 +59,6 @@ import java.util.List;
*/
public class ActionMenuPresenter extends BaseMenuPresenter
implements ActionProvider.SubUiVisibilityListener {
private static final String TAG = "ActionMenuPresenter";
private static final int ITEM_ANIMATION_DURATION = 150;
private static final boolean ACTIONBAR_ANIMATIONS_ENABLED = false;
@@ -87,20 +86,16 @@ public class ActionMenuPresenter extends BaseMenuPresenter
private OpenOverflowRunnable mPostedOpenRunnable;
private ActionMenuPopupCallback mPopupCallback;
private final boolean mShowCascadingMenus;
final PopupPresenterCallback mPopupPresenterCallback = new PopupPresenterCallback();
int mOpenSubMenuId;
// These collections are used to store pre- and post-layout information for menu items,
// which is used to determine appropriate animations to run for changed items.
private SparseArray<MenuItemLayoutInfo> mPreLayoutItems =
new SparseArray<MenuItemLayoutInfo>();
private SparseArray<MenuItemLayoutInfo> mPostLayoutItems =
new SparseArray<MenuItemLayoutInfo>();
private SparseArray<MenuItemLayoutInfo> mPreLayoutItems = new SparseArray<>();
private SparseArray<MenuItemLayoutInfo> mPostLayoutItems = new SparseArray<>();
// The list of currently running animations on menu items.
private List<ItemAnimationInfo> mRunningItemAnimations = new ArrayList<ItemAnimationInfo>();
private List<ItemAnimationInfo> mRunningItemAnimations = new ArrayList<>();
private ViewTreeObserver.OnPreDrawListener mItemAnimationPreDrawListener =
new ViewTreeObserver.OnPreDrawListener() {
@Override
@@ -130,9 +125,6 @@ public class ActionMenuPresenter extends BaseMenuPresenter
public ActionMenuPresenter(Context context) {
super(context, com.android.internal.R.layout.action_menu_layout,
com.android.internal.R.layout.action_menu_item_layout);
mShowCascadingMenus = context.getResources().getBoolean(
com.android.internal.R.bool.config_enableCascadingSubmenus);
}
@Override
@@ -845,8 +837,6 @@ public class ActionMenuPresenter extends BaseMenuPresenter
}
private class OverflowMenuButton extends ImageButton implements ActionMenuView.ActionMenuChildView {
private final float[] mTempPts = new float[2];
public OverflowMenuButton(Context context) {
super(context, null, com.android.internal.R.attr.actionOverflowButtonStyle);

View File

@@ -53,12 +53,6 @@ public abstract class ForwardingListener
/** Whether this listener is currently forwarding touch events. */
private boolean mForwarding;
/**
* Whether forwarding was initiated by a long-press. If so, we won't
* force the window to dismiss when the touch stream ends.
*/
private boolean mWasLongPress;
/** The id of the first pointer down in the current event stream. */
private int mActivePointerId;
@@ -172,7 +166,6 @@ public abstract class ForwardingListener
switch (actionMasked) {
case MotionEvent.ACTION_DOWN:
mActivePointerId = srcEvent.getPointerId(0);
mWasLongPress = false;
if (mDisallowIntercept == null) {
mDisallowIntercept = new DisallowIntercept();
@@ -243,7 +236,6 @@ public abstract class ForwardingListener
e.recycle();
mForwarding = true;
mWasLongPress = true;
}
/**

View File

@@ -16,18 +16,20 @@
package android.widget;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import com.android.internal.R;
import com.android.internal.view.menu.ShowableListMenu;
import android.annotation.AttrRes;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.StyleRes;
import android.content.Context;
import android.content.res.TypedArray;
import android.database.DataSetObserver;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.IntProperty;
import android.util.Log;
import android.view.Gravity;
import android.view.KeyEvent;
@@ -38,13 +40,7 @@ import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.view.WindowManager;
import android.view.animation.AccelerateDecelerateInterpolator;
import com.android.internal.R;
import com.android.internal.view.menu.ShowableListMenu;
import com.android.internal.widget.AutoScrollHelper.AbsListViewAutoScroller;
import java.util.Locale;
import android.widget.AdapterView.OnItemSelectedListener;
/**
* A ListPopupWindow anchors itself to a host view and displays a
@@ -109,8 +105,6 @@ public class ListPopupWindow implements ShowableListMenu {
private boolean mModal;
private int mLayoutDirection;
PopupWindow mPopup;
/**
@@ -174,7 +168,7 @@ public class ListPopupWindow implements ShowableListMenu {
*
* @param context Context used for contained views.
*/
public ListPopupWindow(Context context) {
public ListPopupWindow(@NonNull Context context) {
this(context, null, com.android.internal.R.attr.listPopupWindowStyle, 0);
}
@@ -185,7 +179,7 @@ public class ListPopupWindow implements ShowableListMenu {
* @param context Context used for contained views.
* @param attrs Attributes from inflating parent views used to style the popup.
*/
public ListPopupWindow(Context context, AttributeSet attrs) {
public ListPopupWindow(@NonNull Context context, @Nullable AttributeSet attrs) {
this(context, attrs, com.android.internal.R.attr.listPopupWindowStyle, 0);
}
@@ -197,7 +191,8 @@ public class ListPopupWindow implements ShowableListMenu {
* @param attrs Attributes from inflating parent views used to style the popup.
* @param defStyleAttr Default style attribute to use for popup content.
*/
public ListPopupWindow(Context context, AttributeSet attrs, int defStyleAttr) {
public ListPopupWindow(@NonNull Context context, @Nullable AttributeSet attrs,
@AttrRes int defStyleAttr) {
this(context, attrs, defStyleAttr, 0);
}
@@ -210,7 +205,8 @@ public class ListPopupWindow implements ShowableListMenu {
* @param defStyleAttr Style attribute to read for default styling of popup content.
* @param defStyleRes Style resource ID to use for default styling of popup content.
*/
public ListPopupWindow(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
public ListPopupWindow(@NonNull Context context, @Nullable AttributeSet attrs,
@AttrRes int defStyleAttr, @StyleRes int defStyleRes) {
mContext = context;
mHandler = new Handler(context.getMainLooper());
@@ -227,9 +223,6 @@ public class ListPopupWindow implements ShowableListMenu {
mPopup = new PopupWindow(context, attrs, defStyleAttr, defStyleRes);
mPopup.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);
// Set the default layout direction to match the default locale one
final Locale locale = mContext.getResources().getConfiguration().locale;
mLayoutDirection = TextUtils.getLayoutDirectionFromLocale(locale);
}
/**
@@ -238,7 +231,7 @@ public class ListPopupWindow implements ShowableListMenu {
*
* @param adapter The adapter to use to create this window's content.
*/
public void setAdapter(ListAdapter adapter) {
public void setAdapter(@Nullable ListAdapter adapter) {
if (mObserver == null) {
mObserver = new PopupDataSetObserver();
} else if (mAdapter != null) {
@@ -371,7 +364,7 @@ public class ListPopupWindow implements ShowableListMenu {
/**
* @return The background drawable for the popup window.
*/
public Drawable getBackground() {
public @Nullable Drawable getBackground() {
return mPopup.getBackground();
}
@@ -380,7 +373,7 @@ public class ListPopupWindow implements ShowableListMenu {
*
* @param d A drawable to set as the background.
*/
public void setBackgroundDrawable(Drawable d) {
public void setBackgroundDrawable(@Nullable Drawable d) {
mPopup.setBackgroundDrawable(d);
}
@@ -389,7 +382,7 @@ public class ListPopupWindow implements ShowableListMenu {
*
* @param animationStyle Animation style to use.
*/
public void setAnimationStyle(int animationStyle) {
public void setAnimationStyle(@StyleRes int animationStyle) {
mPopup.setAnimationStyle(animationStyle);
}
@@ -399,7 +392,7 @@ public class ListPopupWindow implements ShowableListMenu {
*
* @return Animation style that will be used.
*/
public int getAnimationStyle() {
public @StyleRes int getAnimationStyle() {
return mPopup.getAnimationStyle();
}
@@ -408,7 +401,7 @@ public class ListPopupWindow implements ShowableListMenu {
*
* @return The popup's anchor view
*/
public View getAnchorView() {
public @Nullable View getAnchorView() {
return mDropDownAnchorView;
}
@@ -418,7 +411,7 @@ public class ListPopupWindow implements ShowableListMenu {
*
* @param anchor The view to use as an anchor.
*/
public void setAnchorView(View anchor) {
public void setAnchorView(@Nullable View anchor) {
mDropDownAnchorView = anchor;
}
@@ -537,7 +530,7 @@ public class ListPopupWindow implements ShowableListMenu {
*
* @see ListView#setOnItemClickListener(android.widget.AdapterView.OnItemClickListener)
*/
public void setOnItemClickListener(AdapterView.OnItemClickListener clickListener) {
public void setOnItemClickListener(@Nullable AdapterView.OnItemClickListener clickListener) {
mItemClickListener = clickListener;
}
@@ -546,9 +539,9 @@ public class ListPopupWindow implements ShowableListMenu {
*
* @param selectedListener Listener to register.
*
* @see ListView#setOnItemSelectedListener(android.widget.AdapterView.OnItemSelectedListener)
* @see ListView#setOnItemSelectedListener(OnItemSelectedListener)
*/
public void setOnItemSelectedListener(AdapterView.OnItemSelectedListener selectedListener) {
public void setOnItemSelectedListener(@Nullable OnItemSelectedListener selectedListener) {
mItemSelectedListener = selectedListener;
}
@@ -558,7 +551,7 @@ public class ListPopupWindow implements ShowableListMenu {
*
* @param prompt View to use as an informational prompt.
*/
public void setPromptView(View prompt) {
public void setPromptView(@Nullable View prompt) {
boolean showing = isShowing();
if (showing) {
removePromptView();
@@ -686,7 +679,7 @@ public class ListPopupWindow implements ShowableListMenu {
*
* @param listener Listener that will be notified when the popup is dismissed.
*/
public void setOnDismissListener(PopupWindow.OnDismissListener listener) {
public void setOnDismissListener(@Nullable PopupWindow.OnDismissListener listener) {
mPopup.setOnDismissListener(listener);
}
@@ -795,7 +788,7 @@ public class ListPopupWindow implements ShowableListMenu {
/**
* @return The currently selected item or null if the popup is not showing.
*/
public Object getSelectedItem() {
public @Nullable Object getSelectedItem() {
if (!isShowing()) {
return null;
}
@@ -834,7 +827,7 @@ public class ListPopupWindow implements ShowableListMenu {
*
* @see ListView#getSelectedView()
*/
public View getSelectedView() {
public @Nullable View getSelectedView() {
if (!isShowing()) {
return null;
}
@@ -846,11 +839,11 @@ public class ListPopupWindow implements ShowableListMenu {
* Only valid when {@link #isShowing()} == {@code true}.
*/
@Override
public ListView getListView() {
public @Nullable ListView getListView() {
return mDropDownList;
}
DropDownListView createDropDownListView(Context context, boolean hijackFocus) {
@NonNull DropDownListView createDropDownListView(Context context, boolean hijackFocus) {
return new DropDownListView(context, hijackFocus);
}
@@ -874,7 +867,7 @@ public class ListPopupWindow implements ShowableListMenu {
*
* @see #setModal(boolean)
*/
public boolean onKeyDown(int keyCode, KeyEvent event) {
public boolean onKeyDown(int keyCode, @NonNull KeyEvent event) {
// when the drop down is shown, we drive it directly
if (isShowing()) {
// the key events are forwarded to the list in the drop down view
@@ -969,7 +962,7 @@ public class ListPopupWindow implements ShowableListMenu {
*
* @see #setModal(boolean)
*/
public boolean onKeyUp(int keyCode, KeyEvent event) {
public boolean onKeyUp(int keyCode, @NonNull KeyEvent event) {
if (isShowing() && mDropDownList.getSelectedItemPosition() >= 0) {
boolean consumed = mDropDownList.onKeyUp(keyCode, event);
if (consumed && KeyEvent.isConfirmKey(keyCode)) {
@@ -993,7 +986,7 @@ public class ListPopupWindow implements ShowableListMenu {
*
* @see #setModal(boolean)
*/
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
public boolean onKeyPreIme(int keyCode, @NonNull KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && isShowing()) {
// special case for the back key, we do not even try to send it
// to the drop down list but instead, consume it immediately
@@ -1159,7 +1152,6 @@ public class ListPopupWindow implements ShowableListMenu {
mPopup.setContentView(dropDownView);
} else {
dropDownView = (ViewGroup) mPopup.getContentView();
final View view = mPromptView;
if (view != null) {
LinearLayout.LayoutParams hintParams =

View File

@@ -1,3 +1,19 @@
/*
* 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.internal.view.menu;
import android.content.Context;
@@ -7,7 +23,6 @@ import android.view.Gravity;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnAttachStateChangeListener;
import android.view.View.OnKeyListener;
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
@@ -30,7 +45,7 @@ final class StandardMenuPopup extends MenuPopup implements OnDismissListener, On
MenuPresenter, OnKeyListener {
private final Context mContext;
private final LayoutInflater mInflater;
private final MenuBuilder mMenu;
private final MenuAdapter mAdapter;
private final boolean mOverflowOnly;
@@ -79,8 +94,6 @@ final class StandardMenuPopup extends MenuPopup implements OnDismissListener, On
private Callback mPresenterCallback;
private ViewTreeObserver mTreeObserver;
private ViewGroup mMeasureParent;
/** Whether the popup has been dismissed. Once dismissed, it cannot be opened again. */
private boolean mWasDismissed;
@@ -99,10 +112,10 @@ final class StandardMenuPopup extends MenuPopup implements OnDismissListener, On
public StandardMenuPopup(Context context, MenuBuilder menu, View anchorView, int popupStyleAttr,
int popupStyleRes, boolean overflowOnly) {
mContext = Preconditions.checkNotNull(context);
mInflater = LayoutInflater.from(context);
mMenu = menu;
mOverflowOnly = overflowOnly;
mAdapter = new MenuAdapter(menu, mInflater, mOverflowOnly);
final LayoutInflater inflater = LayoutInflater.from(context);
mAdapter = new MenuAdapter(menu, inflater, mOverflowOnly);
mPopupStyleAttr = popupStyleAttr;
mPopupStyleRes = popupStyleRes;
@@ -155,8 +168,7 @@ final class StandardMenuPopup extends MenuPopup implements OnDismissListener, On
mPopup.setDropDownGravity(mDropDownGravity);
if (!mHasContentWidth) {
mContentWidth = measureIndividualMenuWidth(
mAdapter, mMeasureParent, mContext, mPopupMaxWidth);
mContentWidth = measureIndividualMenuWidth(mAdapter, null, mContext, mPopupMaxWidth);
mHasContentWidth = true;
}
@@ -177,7 +189,9 @@ final class StandardMenuPopup extends MenuPopup implements OnDismissListener, On
false);
TextView titleView = (TextView) titleItemView.findViewById(
com.android.internal.R.id.title);
titleView.setText(mMenu.getHeaderTitle());
if (titleView != null) {
titleView.setText(mMenu.getHeaderTitle());
}
titleItemView.setEnabled(false);
listView.addHeaderView(titleItemView, null, false);