Merge changes I32ba2b6b,I3f473d28,I717eb2a2 into main

* changes:
  Touchpad: add @NonNull annotations to controller constructors
  Touchpad: mark MetricsFeatureProviders final
  Touchpad: fix some NullAway warnings
This commit is contained in:
Harry Cutts
2025-01-09 02:38:54 -08:00
committed by Android (Google) Code Review
11 changed files with 64 additions and 46 deletions

View File

@@ -29,6 +29,7 @@ import android.provider.SettingsSlicesContract;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
@@ -194,7 +195,7 @@ public abstract class BasePreferenceController extends AbstractPreferenceControl
} }
} }
public BasePreferenceController(Context context, String preferenceKey) { public BasePreferenceController(@NonNull Context context, @NonNull String preferenceKey) {
super(context); super(context);
mPreferenceKey = preferenceKey; mPreferenceKey = preferenceKey;
mPrefVisibility = true; mPrefVisibility = true;

View File

@@ -16,6 +16,7 @@ package com.android.settings.core;
import android.content.Context; import android.content.Context;
import androidx.annotation.NonNull;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.slice.builders.SliceAction; import androidx.slice.builders.SliceAction;
@@ -24,7 +25,7 @@ import com.android.settings.slices.SliceData;
public abstract class SliderPreferenceController extends BasePreferenceController implements public abstract class SliderPreferenceController extends BasePreferenceController implements
Preference.OnPreferenceChangeListener { Preference.OnPreferenceChangeListener {
public SliderPreferenceController(Context context, String preferenceKey) { public SliderPreferenceController(@NonNull Context context, @NonNull String preferenceKey) {
super(context, preferenceKey); super(context, preferenceKey);
} }

View File

@@ -15,13 +15,14 @@ package com.android.settings.core;
import android.content.Context; import android.content.Context;
import androidx.annotation.NonNull;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import androidx.preference.TwoStatePreference; import androidx.preference.TwoStatePreference;
import com.android.settings.onboarding.OnboardingFeatureProvider;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settings.slices.SliceData; import com.android.settings.slices.SliceData;
import com.android.settings.onboarding.OnboardingFeatureProvider;
import com.android.settings.widget.TwoStateButtonPreference; import com.android.settings.widget.TwoStateButtonPreference;
import com.android.settingslib.PrimarySwitchPreference; import com.android.settingslib.PrimarySwitchPreference;
import com.android.settingslib.core.instrumentation.SettingsJankMonitor; import com.android.settingslib.core.instrumentation.SettingsJankMonitor;
@@ -37,7 +38,7 @@ public abstract class TogglePreferenceController extends BasePreferenceControlle
private static final String TAG = "TogglePrefController"; private static final String TAG = "TogglePrefController";
public TogglePreferenceController(Context context, String preferenceKey) { public TogglePreferenceController(@NonNull Context context, @NonNull String preferenceKey) {
super(context, preferenceKey); super(context, preferenceKey);
} }

View File

@@ -37,6 +37,7 @@ import android.widget.Button;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.ImageView; import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.viewpager.widget.PagerAdapter; import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager; import androidx.viewpager.widget.ViewPager;
@@ -51,10 +52,6 @@ import java.util.Arrays;
public class TouchpadGestureDialogFragment extends BottomSheetDialogFragment { public class TouchpadGestureDialogFragment extends BottomSheetDialogFragment {
private Context mContext; private Context mContext;
private LayoutInflater mInflater;
private View mViewArrowPrevious;
private View mViewArrowNext;
private ViewPager mViewPager;
private ArrayList<View> mPageList; private ArrayList<View> mPageList;
private ImageView[] mDotIndicators; private ImageView[] mDotIndicators;
private View[] mViewPagerItems; private View[] mViewPagerItems;
@@ -68,7 +65,7 @@ public class TouchpadGestureDialogFragment extends BottomSheetDialogFragment {
private static final int DOT_INDICATOR_RIGHT_PADDING = 6; private static final int DOT_INDICATOR_RIGHT_PADDING = 6;
@Override @Override
public void onAttach(Context context) { public void onAttach(@NonNull Context context) {
super.onAttach(context); super.onAttach(context);
mContext = context; mContext = context;
} }
@@ -111,13 +108,14 @@ public class TouchpadGestureDialogFragment extends BottomSheetDialogFragment {
window.setNavigationBarColor(Color.TRANSPARENT); window.setNavigationBarColor(Color.TRANSPARENT);
} }
@NonNull
@Override @Override
public Dialog onCreateDialog(final Bundle savedInstanceState) { public Dialog onCreateDialog(final Bundle savedInstanceState) {
Dialog dialog = super.onCreateDialog(savedInstanceState); Dialog dialog = super.onCreateDialog(savedInstanceState);
mInflater = mContext.getSystemService(LayoutInflater.class); LayoutInflater inflater = mContext.getSystemService(LayoutInflater.class);
View contentView = mInflater.inflate(R.layout.touchpad_gesture_preview, null); View contentView = inflater.inflate(R.layout.touchpad_gesture_preview, null);
addViewPager(contentView); addViewPager(contentView, inflater);
dialog.setContentView(contentView); dialog.setContentView(contentView);
Window gestureDialogWindow = dialog.getWindow(); Window gestureDialogWindow = dialog.getWindow();
gestureDialogWindow.setType(TYPE_SYSTEM_DIALOG); gestureDialogWindow.setType(TYPE_SYSTEM_DIALOG);
@@ -145,7 +143,7 @@ public class TouchpadGestureDialogFragment extends BottomSheetDialogFragment {
// The gesture education view shouldn't be draggable." // The gesture education view shouldn't be draggable."
behavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() { behavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
@Override @Override
public void onStateChanged(View bottomSheet, int newState) { public void onStateChanged(@NonNull View bottomSheet, int newState) {
if (newState == BottomSheetBehavior.STATE_DRAGGING) { if (newState == BottomSheetBehavior.STATE_DRAGGING) {
if (isGestureNavigationEnabled()) { if (isGestureNavigationEnabled()) {
behavior.setState(BottomSheetBehavior.STATE_COLLAPSED); behavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
@@ -156,7 +154,7 @@ public class TouchpadGestureDialogFragment extends BottomSheetDialogFragment {
} }
@Override @Override
public void onSlide(View bottomSheet, float slideOffset) { public void onSlide(@NonNull View bottomSheet, float slideOffset) {
// Do nothing. // Do nothing.
} }
}); });
@@ -174,13 +172,12 @@ public class TouchpadGestureDialogFragment extends BottomSheetDialogFragment {
R.layout.gesture_tip5_switch_apps)); R.layout.gesture_tip5_switch_apps));
} }
private void addViewPager(View preview) { private void addViewPager(View preview, LayoutInflater inflater) {
mViewPager = preview.findViewById(R.id.viewpager); ViewPager viewPager = preview.findViewById(R.id.viewpager);
int viewPagerResourceSize = getViewPagerResource().size(); int viewPagerResourceSize = getViewPagerResource().size();
mViewPagerItems = new View[viewPagerResourceSize]; mViewPagerItems = new View[viewPagerResourceSize];
for (int i = 0; i < viewPagerResourceSize; i++) { for (int i = 0; i < viewPagerResourceSize; i++) {
mViewPagerItems[i] = mViewPagerItems[i] = inflater.inflate(getViewPagerResource().get(i), null /* root */);
mInflater.inflate(getViewPagerResource().get(i), null /* root */);
} }
mPageList = new ArrayList<View>(); mPageList = new ArrayList<View>();
@@ -188,12 +185,12 @@ public class TouchpadGestureDialogFragment extends BottomSheetDialogFragment {
mPageList.add(mViewPagerItems[i]); mPageList.add(mViewPagerItems[i]);
} }
mViewPager.setAdapter(new GesturePagerAdapter(mPageList)); viewPager.setAdapter(new GesturePagerAdapter(mPageList));
mButtonStartRestart = (Button) preview.findViewById(R.id.button_restart); mButtonStartRestart = (Button) preview.findViewById(R.id.button_restart);
mButtonStartRestart.setOnClickListener(v -> { mButtonStartRestart.setOnClickListener(v -> {
final int firstPos = mViewPager.getCurrentItem() - mViewPagerItems.length; final int firstPos = viewPager.getCurrentItem() - mViewPagerItems.length;
mViewPager.setCurrentItem(firstPos, true); viewPager.setCurrentItem(firstPos, true);
}); });
mButtonEndDone = (Button) preview.findViewById(R.id.button_done); mButtonEndDone = (Button) preview.findViewById(R.id.button_done);
@@ -208,11 +205,11 @@ public class TouchpadGestureDialogFragment extends BottomSheetDialogFragment {
mButtonEndNext = (Button) preview.findViewById(R.id.button_next); mButtonEndNext = (Button) preview.findViewById(R.id.button_next);
mButtonEndNext.setOnClickListener(v -> { mButtonEndNext.setOnClickListener(v -> {
final int nextPos = mViewPager.getCurrentItem() + 1; final int nextPos = viewPager.getCurrentItem() + 1;
mViewPager.setCurrentItem(nextPos, true); viewPager.setCurrentItem(nextPos, true);
}); });
mViewPager.addOnPageChangeListener(createPageListener()); viewPager.addOnPageChangeListener(createPageListener());
final ViewGroup viewGroup = (ViewGroup) preview.findViewById(R.id.viewGroup); final ViewGroup viewGroup = (ViewGroup) preview.findViewById(R.id.viewGroup);
mDotIndicators = new ImageView[mPageList.size()]; mDotIndicators = new ImageView[mPageList.size()];
for (int i = 0; i < mPageList.size(); i++) { for (int i = 0; i < mPageList.size(); i++) {
@@ -234,12 +231,14 @@ public class TouchpadGestureDialogFragment extends BottomSheetDialogFragment {
} }
@Override @Override
public void destroyItem(ViewGroup container, int position, Object object) { public void destroyItem(@NonNull ViewGroup container, int position,
@NonNull Object object) {
if (mPageViewList.get(position) != null) { if (mPageViewList.get(position) != null) {
container.removeView(mPageViewList.get(position)); container.removeView(mPageViewList.get(position));
} }
} }
@NonNull
@Override @Override
public Object instantiateItem(ViewGroup container, int position) { public Object instantiateItem(ViewGroup container, int position) {
container.addView(mPageViewList.get(position)); container.addView(mPageViewList.get(position));
@@ -252,7 +251,7 @@ public class TouchpadGestureDialogFragment extends BottomSheetDialogFragment {
} }
@Override @Override
public boolean isViewFromObject(View view, Object object) { public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return object == view; return object == view;
} }
} }

View File

@@ -19,11 +19,14 @@ package com.android.settings.inputmethod;
import android.content.Context; import android.content.Context;
import android.hardware.input.InputSettings; import android.hardware.input.InputSettings;
import androidx.annotation.NonNull;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
public class TouchpadGesturesDisabledFooterPreferenceController extends BasePreferenceController { public class TouchpadGesturesDisabledFooterPreferenceController extends BasePreferenceController {
public TouchpadGesturesDisabledFooterPreferenceController(Context context, String key) { public TouchpadGesturesDisabledFooterPreferenceController(@NonNull Context context,
@NonNull String key) {
super(context, key); super(context, key);
} }

View File

@@ -24,6 +24,8 @@ import android.content.Intent;
import android.hardware.input.InputSettings; import android.hardware.input.InputSettings;
import android.os.UserHandle; import android.os.UserHandle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
@@ -40,10 +42,11 @@ public class TouchpadGesturesTutorialButtonPreferenceController extends BasePref
private static final String GESTURE_DIALOG_TAG = "GESTURE_DIALOG_TAG"; private static final String GESTURE_DIALOG_TAG = "GESTURE_DIALOG_TAG";
private static final String TUTORIAL_ACTION = "com.android.systemui.action.TOUCHPAD_TUTORIAL"; private static final String TUTORIAL_ACTION = "com.android.systemui.action.TOUCHPAD_TUTORIAL";
private Fragment mParent; private @Nullable Fragment mParent;
private MetricsFeatureProvider mMetricsFeatureProvider; private final MetricsFeatureProvider mMetricsFeatureProvider;
public TouchpadGesturesTutorialButtonPreferenceController(Context context, String key) { public TouchpadGesturesTutorialButtonPreferenceController(@NonNull Context context,
@NonNull String key) {
super(context, key); super(context, key);
mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider(); mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
} }

View File

@@ -20,6 +20,7 @@ import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.hardware.input.InputSettings; import android.hardware.input.InputSettings;
import androidx.annotation.NonNull;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import com.android.settings.core.SliderPreferenceController; import com.android.settings.core.SliderPreferenceController;
@@ -29,10 +30,9 @@ import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class TouchpadPointerSpeedPreferenceController extends SliderPreferenceController { public class TouchpadPointerSpeedPreferenceController extends SliderPreferenceController {
private SeekBarPreference mPreference; private final MetricsFeatureProvider mMetricsFeatureProvider;
private MetricsFeatureProvider mMetricsFeatureProvider;
public TouchpadPointerSpeedPreferenceController(Context context, String key) { public TouchpadPointerSpeedPreferenceController(@NonNull Context context, @NonNull String key) {
super(context, key); super(context, key);
mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider(); mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
} }
@@ -40,11 +40,11 @@ public class TouchpadPointerSpeedPreferenceController extends SliderPreferenceCo
@Override @Override
public void displayPreference(PreferenceScreen screen) { public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen); super.displayPreference(screen);
mPreference = screen.findPreference(getPreferenceKey()); SeekBarPreference preference = screen.findPreference(getPreferenceKey());
mPreference.setMax(getMax()); preference.setMax(getMax());
mPreference.setMin(getMin()); preference.setMin(getMin());
mPreference.setProgress(getSliderPosition()); preference.setProgress(getSliderPosition());
updateState(mPreference); updateState(preference);
} }
@Override @Override

View File

@@ -20,6 +20,8 @@ import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.hardware.input.InputSettings; import android.hardware.input.InputSettings;
import androidx.annotation.NonNull;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.TogglePreferenceController;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
@@ -27,9 +29,10 @@ import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class TouchpadReverseScrollingPreferenceController extends TogglePreferenceController { public class TouchpadReverseScrollingPreferenceController extends TogglePreferenceController {
private MetricsFeatureProvider mMetricsFeatureProvider; private final MetricsFeatureProvider mMetricsFeatureProvider;
public TouchpadReverseScrollingPreferenceController(Context context, String key) { public TouchpadReverseScrollingPreferenceController(@NonNull Context context,
@NonNull String key) {
super(context, key); super(context, key);
mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider(); mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
} }

View File

@@ -20,6 +20,8 @@ import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.hardware.input.InputSettings; import android.hardware.input.InputSettings;
import androidx.annotation.NonNull;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.TogglePreferenceController;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
@@ -27,9 +29,10 @@ import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class TouchpadRightClickZonePreferenceController extends TogglePreferenceController { public class TouchpadRightClickZonePreferenceController extends TogglePreferenceController {
private MetricsFeatureProvider mMetricsFeatureProvider; private final MetricsFeatureProvider mMetricsFeatureProvider;
public TouchpadRightClickZonePreferenceController(Context context, String key) { public TouchpadRightClickZonePreferenceController(@NonNull Context context,
@NonNull String key) {
super(context, key); super(context, key);
mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider(); mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
} }

View File

@@ -20,6 +20,8 @@ import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.hardware.input.InputSettings; import android.hardware.input.InputSettings;
import androidx.annotation.NonNull;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.TogglePreferenceController;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
@@ -27,9 +29,9 @@ import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class TouchpadTapDraggingPreferenceController extends TogglePreferenceController { public class TouchpadTapDraggingPreferenceController extends TogglePreferenceController {
private MetricsFeatureProvider mMetricsFeatureProvider; private final MetricsFeatureProvider mMetricsFeatureProvider;
public TouchpadTapDraggingPreferenceController(Context context, String key) { public TouchpadTapDraggingPreferenceController(@NonNull Context context, @NonNull String key) {
super(context, key); super(context, key);
mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider(); mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
} }

View File

@@ -20,6 +20,8 @@ import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.hardware.input.InputSettings; import android.hardware.input.InputSettings;
import androidx.annotation.NonNull;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.TogglePreferenceController;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
@@ -27,9 +29,9 @@ import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class TouchpadTapToClickPreferenceController extends TogglePreferenceController { public class TouchpadTapToClickPreferenceController extends TogglePreferenceController {
private MetricsFeatureProvider mMetricsFeatureProvider; private final MetricsFeatureProvider mMetricsFeatureProvider;
public TouchpadTapToClickPreferenceController(Context context, String key) { public TouchpadTapToClickPreferenceController(@NonNull Context context, @NonNull String key) {
super(context, key); super(context, key);
mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider(); mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
} }