Merge "Add settings for the assist gesture."
This commit is contained in:
committed by
Android (Google) Code Review
commit
3e0ae4ed90
@@ -29,6 +29,8 @@ import com.android.internal.app.AssistUtils;
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SettingsPreferenceFragment;
|
||||
import com.android.settings.gestures.AssistGestureFeatureProvider;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settings.voice.VoiceInputListPreference;
|
||||
|
||||
/**
|
||||
@@ -38,6 +40,7 @@ public class ManageAssist extends SettingsPreferenceFragment
|
||||
implements Preference.OnPreferenceChangeListener {
|
||||
|
||||
private static final String KEY_DEFAULT_ASSIST = "default_assist";
|
||||
private static final String KEY_ASSIST_GESTURE = "gesture_assist";
|
||||
private static final String KEY_CONTEXT = "context";
|
||||
private static final String KEY_SCREENSHOT = "screenshot";
|
||||
private static final String KEY_VOICE_INPUT = "voice_input_settings";
|
||||
@@ -50,6 +53,9 @@ public class ManageAssist extends SettingsPreferenceFragment
|
||||
private VoiceInputListPreference mVoiceInputPref;
|
||||
private Handler mHandler = new Handler();
|
||||
|
||||
private Preference mAssistGesturePref;
|
||||
private AssistGestureFeatureProvider mAssistGestureFeatureProvider;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle icicle) {
|
||||
super.onCreate(icicle);
|
||||
@@ -58,6 +64,10 @@ public class ManageAssist extends SettingsPreferenceFragment
|
||||
mDefaultAssitPref = (DefaultAssistPreference) findPreference(KEY_DEFAULT_ASSIST);
|
||||
mDefaultAssitPref.setOnPreferenceChangeListener(this);
|
||||
|
||||
mAssistGesturePref = findPreference(KEY_ASSIST_GESTURE);
|
||||
mAssistGestureFeatureProvider =
|
||||
FeatureFactory.getFactory(getContext()).getAssistGestureFeatureProvider();
|
||||
|
||||
mContextPref = (SwitchPreference) findPreference(KEY_CONTEXT);
|
||||
mContextPref.setChecked(Settings.Secure.getInt(getContentResolver(),
|
||||
Settings.Secure.ASSIST_STRUCTURE_ENABLED, 1) != 0);
|
||||
@@ -142,6 +152,12 @@ public class ManageAssist extends SettingsPreferenceFragment
|
||||
getPreferenceScreen().removePreference(mFlashPref);
|
||||
}
|
||||
|
||||
if (hasAssistant && mAssistGestureFeatureProvider.isSupported(getContext())) {
|
||||
getPreferenceScreen().addPreference(mAssistGesturePref);
|
||||
} else {
|
||||
getPreferenceScreen().removePreference(mAssistGesturePref);
|
||||
}
|
||||
|
||||
if (hasAssistant && AssistUtils.allowDisablingAssistDisclosure(getContext())) {
|
||||
getPreferenceScreen().addPreference(mFlashPref);
|
||||
} else {
|
||||
|
@@ -81,6 +81,7 @@ import com.android.settings.enterprise.EnterprisePrivacySettings;
|
||||
import com.android.settings.fuelgauge.BatterySaverSettings;
|
||||
import com.android.settings.fuelgauge.PowerUsageDetail;
|
||||
import com.android.settings.fuelgauge.PowerUsageSummary;
|
||||
import com.android.settings.gestures.AssistGestureSettings;
|
||||
import com.android.settings.gestures.DoubleTapPowerSettings;
|
||||
import com.android.settings.gestures.DoubleTapScreenSettings;
|
||||
import com.android.settings.gestures.DoubleTwistGestureSettings;
|
||||
@@ -182,6 +183,7 @@ public class SettingsGateway {
|
||||
AccountSyncSettings.class.getName(),
|
||||
AccountSettings.class.getName(),
|
||||
GestureSettings.class.getName(),
|
||||
AssistGestureSettings.class.getName(),
|
||||
SwipeToNotificationSettings.class.getName(),
|
||||
DoubleTapPowerSettings.class.getName(),
|
||||
DoubleTapScreenSettings.class.getName(),
|
||||
|
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
* Copyright (C) 2017 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.settings.gestures;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
/** Feature provider for the assist gesture. */
|
||||
public interface AssistGestureFeatureProvider {
|
||||
|
||||
/** Returns true if the assist gesture is supported. */
|
||||
boolean isSupported(Context context);
|
||||
|
||||
}
|
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Copyright (C) 2017 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.settings.gestures;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
public class AssistGestureFeatureProviderImpl implements AssistGestureFeatureProvider {
|
||||
|
||||
@Override
|
||||
public boolean isSupported(Context context) {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,69 @@
|
||||
/*
|
||||
* Copyright (C) 2017 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.settings.gestures;
|
||||
|
||||
import android.content.Context;
|
||||
import android.provider.Settings;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.util.ArrayMap;
|
||||
|
||||
import com.android.settings.core.lifecycle.Lifecycle;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settings.search2.InlineSwitchPayload;
|
||||
import com.android.settings.search2.ResultPayload;
|
||||
|
||||
public class AssistGesturePreferenceController extends GesturePreferenceController {
|
||||
|
||||
private static final String PREF_KEY_VIDEO = "gesture_assist_video";
|
||||
private static final String PREF_KEY_ASSIST_GESTURE = "gesture_assist";
|
||||
|
||||
public AssistGesturePreferenceController(Context context, Lifecycle lifecycle) {
|
||||
super(context, lifecycle);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAvailable() {
|
||||
AssistGestureFeatureProvider provider =
|
||||
FeatureFactory.getFactory(mContext).getAssistGestureFeatureProvider();
|
||||
return provider.isSupported(mContext);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getVideoPrefKey() {
|
||||
return PREF_KEY_VIDEO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPreferenceKey() {
|
||||
return PREF_KEY_ASSIST_GESTURE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
final boolean enabled = (boolean) newValue;
|
||||
Settings.Secure.putInt(mContext.getContentResolver(),
|
||||
Settings.Secure.ASSIST_GESTURE_ENABLED, enabled ? 1 : 0);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isSwitchPrefEnabled() {
|
||||
final int assistGestureEnabled = Settings.Secure.getInt(mContext.getContentResolver(),
|
||||
Settings.Secure.ASSIST_GESTURE_ENABLED, 1);
|
||||
return assistGestureEnabled != 0;
|
||||
}
|
||||
}
|
74
src/com/android/settings/gestures/AssistGestureSettings.java
Normal file
74
src/com/android/settings/gestures/AssistGestureSettings.java
Normal file
@@ -0,0 +1,74 @@
|
||||
/*
|
||||
* Copyright (C) 2017 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.settings.gestures;
|
||||
|
||||
import android.content.Context;
|
||||
import android.provider.SearchIndexableResource;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.core.PreferenceController;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settings.search.BaseSearchIndexProvider;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class AssistGestureSettings extends DashboardFragment {
|
||||
|
||||
private static final String TAG = "AssistGesture";
|
||||
|
||||
@Override
|
||||
public int getMetricsCategory() {
|
||||
return MetricsProto.MetricsEvent.VIEW_UNKNOWN;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getLogTag() {
|
||||
return TAG;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getPreferenceScreenResId() {
|
||||
return R.xml.assist_gesture_settings;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<PreferenceController> getPreferenceControllers(Context context) {
|
||||
final List<PreferenceController> controllers = new ArrayList<>();
|
||||
controllers.add(new AssistGesturePreferenceController(context, getLifecycle()));
|
||||
return controllers;
|
||||
}
|
||||
|
||||
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
|
||||
new BaseSearchIndexProvider() {
|
||||
@Override
|
||||
public List<SearchIndexableResource> getXmlResourcesToIndex(
|
||||
Context context, boolean enabled) {
|
||||
if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
|
||||
.isEnabled()) {
|
||||
return null;
|
||||
}
|
||||
final SearchIndexableResource sir = new SearchIndexableResource(context);
|
||||
sir.xmlResId = R.xml.assist_gesture_settings;
|
||||
return Arrays.asList(sir);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@@ -58,6 +58,7 @@ public class GestureSettings extends DashboardFragment {
|
||||
final AmbientDisplayConfiguration ambientConfig = new AmbientDisplayConfiguration(context);
|
||||
final List<PreferenceController> controllers = new ArrayList<>();
|
||||
final Lifecycle lifecycle = getLifecycle();
|
||||
controllers.add(new AssistGesturePreferenceController(context, lifecycle));
|
||||
controllers.add(new SwipeToNotificationPreferenceController(context, lifecycle));
|
||||
controllers.add(new DoubleTapPowerPreferenceController(context, lifecycle));
|
||||
controllers.add(new DoubleTwistPreferenceController(context, lifecycle));
|
||||
@@ -72,6 +73,7 @@ public class GestureSettings extends DashboardFragment {
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
super.onCreatePreferences(savedInstanceState, rootKey);
|
||||
mPreferences = new ArrayList();
|
||||
addPreferenceToTrackingList(AssistGesturePreferenceController.class);
|
||||
addPreferenceToTrackingList(SwipeToNotificationPreferenceController.class);
|
||||
addPreferenceToTrackingList(DoubleTapScreenPreferenceController.class);
|
||||
addPreferenceToTrackingList(DoubleTwistPreferenceController.class);
|
||||
|
@@ -28,6 +28,7 @@ import com.android.settings.R;
|
||||
import com.android.settings.core.PreferenceController;
|
||||
import com.android.settings.core.lifecycle.Lifecycle;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
import com.android.settings.gestures.AssistGesturePreferenceController;
|
||||
import com.android.settings.gestures.DoubleTapPowerPreferenceController;
|
||||
import com.android.settings.gestures.DoubleTapScreenPreferenceController;
|
||||
import com.android.settings.gestures.DoubleTwistPreferenceController;
|
||||
@@ -88,7 +89,7 @@ public class LanguageAndInputSettings extends DashboardFragment {
|
||||
}
|
||||
controllers.add(gameControllerPreferenceController);
|
||||
// Gestures
|
||||
|
||||
controllers.add(new AssistGesturePreferenceController(context, lifecycle));
|
||||
controllers.add(new SwipeToNotificationPreferenceController(context, lifecycle));
|
||||
controllers.add(new DoubleTwistPreferenceController(context, lifecycle));
|
||||
controllers.add(new DoubleTapPowerPreferenceController(context, lifecycle));
|
||||
|
@@ -27,6 +27,7 @@ import com.android.settings.dashboard.DashboardFeatureProvider;
|
||||
import com.android.settings.dashboard.SuggestionFeatureProvider;
|
||||
import com.android.settings.enterprise.EnterprisePrivacyFeatureProvider;
|
||||
import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
|
||||
import com.android.settings.gestures.AssistGestureFeatureProvider;
|
||||
import com.android.settings.localepicker.LocaleFeatureProvider;
|
||||
import com.android.settings.security.SecurityFeatureProvider;
|
||||
import com.android.settings.search2.SearchFeatureProvider;
|
||||
@@ -68,6 +69,8 @@ public abstract class FeatureFactory {
|
||||
return sFactory;
|
||||
}
|
||||
|
||||
public abstract AssistGestureFeatureProvider getAssistGestureFeatureProvider();
|
||||
|
||||
public abstract SuggestionFeatureProvider getSuggestionFeatureProvider();
|
||||
|
||||
public abstract SupportFeatureProvider getSupportFeatureProvider(Context context);
|
||||
|
@@ -37,6 +37,8 @@ import com.android.settings.enterprise.EnterprisePrivacyFeatureProvider;
|
||||
import com.android.settings.enterprise.EnterprisePrivacyFeatureProviderImpl;
|
||||
import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
|
||||
import com.android.settings.fuelgauge.PowerUsageFeatureProviderImpl;
|
||||
import com.android.settings.gestures.AssistGestureFeatureProvider;
|
||||
import com.android.settings.gestures.AssistGestureFeatureProviderImpl;
|
||||
import com.android.settings.localepicker.LocaleFeatureProvider;
|
||||
import com.android.settings.localepicker.LocaleFeatureProviderImpl;
|
||||
import com.android.settings.search2.SearchFeatureProvider;
|
||||
@@ -60,6 +62,7 @@ public class FeatureFactoryImpl extends FeatureFactory {
|
||||
private SecurityFeatureProvider mSecurityFeatureProvider;
|
||||
private SuggestionFeatureProvider mSuggestionFeatureProvider;
|
||||
private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
|
||||
private AssistGestureFeatureProvider mAssistGestureFeatureProvider;
|
||||
|
||||
@Override
|
||||
public SupportFeatureProvider getSupportFeatureProvider(Context context) {
|
||||
@@ -153,4 +156,12 @@ public class FeatureFactoryImpl extends FeatureFactory {
|
||||
}
|
||||
return mSuggestionFeatureProvider;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AssistGestureFeatureProvider getAssistGestureFeatureProvider() {
|
||||
if (mAssistGestureFeatureProvider == null) {
|
||||
mAssistGestureFeatureProvider = new AssistGestureFeatureProviderImpl();
|
||||
}
|
||||
return mAssistGestureFeatureProvider;
|
||||
}
|
||||
}
|
||||
|
@@ -50,6 +50,7 @@ import com.android.settings.fuelgauge.BatterySaverSettings;
|
||||
import com.android.settings.fuelgauge.PowerUsageAdvanced;
|
||||
import com.android.settings.fuelgauge.PowerUsageDetail;
|
||||
import com.android.settings.fuelgauge.PowerUsageSummary;
|
||||
import com.android.settings.gestures.AssistGestureSettings;
|
||||
import com.android.settings.gestures.DoubleTapPowerSettings;
|
||||
import com.android.settings.gestures.DoubleTapScreenSettings;
|
||||
import com.android.settings.gestures.DoubleTwistGestureSettings;
|
||||
@@ -136,6 +137,7 @@ public final class SearchIndexableResources {
|
||||
R.xml.special_access, R.drawable.ic_settings_applications);
|
||||
addIndex(UserSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_multiuser);
|
||||
addIndex(GestureSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_gestures);
|
||||
addIndex(AssistGestureSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_gestures);
|
||||
addIndex(PickupGestureSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_gestures);
|
||||
addIndex(DoubleTapScreenSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_gestures);
|
||||
addIndex(DoubleTapPowerSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_gestures);
|
||||
|
Reference in New Issue
Block a user