Add video to each gesture preference screen.

- Refactor GesturePreference to a generic VideoPreference.
- The old video_preference.xml is only for magnification video, so
  renamed.
- And use VideoPreference in gesture setting pages.
- Refactor common logic into GesturePreferenceController.

Bug: 32637613
Test: RunSettingsRoboTests

Change-Id: I58580b01a32873cb32c5dc5bf2ec021d5b1400cc
This commit is contained in:
Fan Zhang
2016-11-09 11:35:10 -08:00
parent 0d38cea6c9
commit 33b0d91d74
31 changed files with 724 additions and 466 deletions

View File

@@ -19,17 +19,16 @@ package com.android.settings.gestures;
import android.content.Context;
import android.provider.Settings;
import android.support.v7.preference.Preference;
import android.support.v7.preference.TwoStatePreference;
import com.android.settings.core.PreferenceController;
import com.android.settings.core.lifecycle.Lifecycle;
public class DoubleTapPowerPreferenceController extends PreferenceController
implements Preference.OnPreferenceChangeListener {
public class DoubleTapPowerPreferenceController extends GesturePreferenceController {
private static final String PREF_KEY_VIDEO = "gesture_double_tap_power_video";
private static final String PREF_KEY_DOUBLE_TAP_POWER = "gesture_double_tap_power";
public DoubleTapPowerPreferenceController(Context context) {
super(context);
public DoubleTapPowerPreferenceController(Context context, Lifecycle lifecycle) {
super(context, lifecycle);
}
@Override
@@ -39,8 +38,8 @@ public class DoubleTapPowerPreferenceController extends PreferenceController
}
@Override
public boolean handlePreferenceTreeClick(Preference preference) {
return false;
protected String getVideoPrefKey() {
return PREF_KEY_VIDEO;
}
@Override
@@ -48,20 +47,6 @@ public class DoubleTapPowerPreferenceController extends PreferenceController
return PREF_KEY_DOUBLE_TAP_POWER;
}
@Override
public void updateState(Preference preference) {
final boolean isEnabled = isDoubleTapEnabled();
if (preference != null) {
if (preference instanceof TwoStatePreference) {
((TwoStatePreference) preference).setChecked(isEnabled);
} else {
preference.setSummary(isEnabled
? com.android.settings.R.string.gesture_setting_on
: com.android.settings.R.string.gesture_setting_off);
}
}
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
boolean enabled = (boolean) newValue;
@@ -70,7 +55,8 @@ public class DoubleTapPowerPreferenceController extends PreferenceController
return true;
}
private boolean isDoubleTapEnabled() {
@Override
protected boolean isSwitchPrefEnabled() {
final int cameraDisabled = Settings.Secure.getInt(mContext.getContentResolver(),
Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 0);
return cameraDisabled == 0;