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

@@ -20,23 +20,22 @@ import android.annotation.UserIdInt;
import android.content.Context;
import android.provider.Settings;
import android.support.v7.preference.Preference;
import android.support.v7.preference.TwoStatePreference;
import com.android.internal.hardware.AmbientDisplayConfiguration;
import com.android.settings.core.PreferenceController;
import com.android.settings.core.lifecycle.Lifecycle;
public class DoubleTapScreenPreferenceController extends PreferenceController
implements Preference.OnPreferenceChangeListener {
public class DoubleTapScreenPreferenceController extends GesturePreferenceController {
private static final String PREF_KEY_VIDEO = "gesture_double_tap_screen_video";
private static final String PREF_KEY_DOUBLE_TAP_SCREEN = "gesture_double_tap_screen";
private final AmbientDisplayConfiguration mAmbientConfig;
@UserIdInt
private final int mUserId;
public DoubleTapScreenPreferenceController(Context context, AmbientDisplayConfiguration config,
@UserIdInt int userId) {
super(context);
public DoubleTapScreenPreferenceController(Context context, Lifecycle lifecycle,
AmbientDisplayConfiguration config, @UserIdInt int userId) {
super(context, lifecycle);
mAmbientConfig = config;
mUserId = userId;
}
@@ -46,25 +45,6 @@ public class DoubleTapScreenPreferenceController extends PreferenceController
return mAmbientConfig.pulseOnDoubleTapAvailable();
}
@Override
public boolean handlePreferenceTreeClick(Preference preference) {
return false;
}
@Override
public void updateState(Preference preference) {
final boolean isEnabled = mAmbientConfig.pulseOnDoubleTapEnabled(mUserId);
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 String getPreferenceKey() {
return PREF_KEY_DOUBLE_TAP_SCREEN;
@@ -77,4 +57,14 @@ public class DoubleTapScreenPreferenceController extends PreferenceController
Settings.Secure.DOZE_PULSE_ON_DOUBLE_TAP, enabled ? 1 : 0);
return true;
}
@Override
protected String getVideoPrefKey() {
return PREF_KEY_VIDEO;
}
@Override
protected boolean isSwitchPrefEnabled() {
return mAmbientConfig.pulseOnDoubleTapEnabled(mUserId);
}
}