Merge "Fix the problem that the autofill could be searched." into tm-dev
This commit is contained in:
@@ -648,7 +648,7 @@
|
|||||||
android:title="@string/reset_shortcut_manager_throttling" />
|
android:title="@string/reset_shortcut_manager_throttling" />
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
<com.android.settings.development.autofill.AutofillPreferenceCategory
|
<PreferenceCategory
|
||||||
android:key="debug_autofill_category"
|
android:key="debug_autofill_category"
|
||||||
android:title="@string/debug_autofill_category"
|
android:title="@string/debug_autofill_category"
|
||||||
settings:searchable="false"
|
settings:searchable="false"
|
||||||
@@ -672,7 +672,7 @@
|
|||||||
android:key="autofill_reset_developer_options"
|
android:key="autofill_reset_developer_options"
|
||||||
android:title="@string/autofill_reset_developer_options" />
|
android:title="@string/autofill_reset_developer_options" />
|
||||||
|
|
||||||
</com.android.settings.development.autofill.AutofillPreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:key="storage_category"
|
android:key="storage_category"
|
||||||
|
@@ -47,6 +47,7 @@ import com.android.settings.SettingsActivity;
|
|||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.core.SubSettingLauncher;
|
import com.android.settings.core.SubSettingLauncher;
|
||||||
import com.android.settings.dashboard.RestrictedDashboardFragment;
|
import com.android.settings.dashboard.RestrictedDashboardFragment;
|
||||||
|
import com.android.settings.development.autofill.AutofillCategoryController;
|
||||||
import com.android.settings.development.autofill.AutofillLoggingLevelPreferenceController;
|
import com.android.settings.development.autofill.AutofillLoggingLevelPreferenceController;
|
||||||
import com.android.settings.development.autofill.AutofillResetOptionsPreferenceController;
|
import com.android.settings.development.autofill.AutofillResetOptionsPreferenceController;
|
||||||
import com.android.settings.development.bluetooth.AbstractBluetoothDialogPreferenceController;
|
import com.android.settings.development.bluetooth.AbstractBluetoothDialogPreferenceController;
|
||||||
@@ -566,6 +567,7 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra
|
|||||||
controllers.add(new DefaultLaunchPreferenceController(context, "density"));
|
controllers.add(new DefaultLaunchPreferenceController(context, "density"));
|
||||||
controllers.add(new DefaultLaunchPreferenceController(context, "background_check"));
|
controllers.add(new DefaultLaunchPreferenceController(context, "background_check"));
|
||||||
controllers.add(new DefaultLaunchPreferenceController(context, "inactive_apps"));
|
controllers.add(new DefaultLaunchPreferenceController(context, "inactive_apps"));
|
||||||
|
controllers.add(new AutofillCategoryController(context, lifecycle));
|
||||||
controllers.add(new AutofillLoggingLevelPreferenceController(context, lifecycle));
|
controllers.add(new AutofillLoggingLevelPreferenceController(context, lifecycle));
|
||||||
controllers.add(new AutofillResetOptionsPreferenceController(context));
|
controllers.add(new AutofillResetOptionsPreferenceController(context));
|
||||||
controllers.add(new BluetoothCodecDialogPreferenceController(context, lifecycle,
|
controllers.add(new BluetoothCodecDialogPreferenceController(context, lifecycle,
|
||||||
|
@@ -1,15 +1,17 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2018 The Android Open Source Project
|
* Copyright (C) 2022 The Android Open Source Project
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* except in compliance with the License. You may obtain a copy of the License at
|
* 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
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software distributed under the
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* KIND, either express or implied. See the License for the specific language governing
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
* permissions and limitations under the License.
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.development.autofill;
|
package com.android.settings.development.autofill;
|
||||||
@@ -21,23 +23,36 @@ import android.net.Uri;
|
|||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.util.AttributeSet;
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.autofill.AutofillManager;
|
import android.view.autofill.AutofillManager;
|
||||||
|
|
||||||
import androidx.preference.PreferenceCategory;
|
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||||
|
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||||
|
import com.android.settingslib.core.lifecycle.events.OnStart;
|
||||||
|
import com.android.settingslib.core.lifecycle.events.OnStop;
|
||||||
|
import com.android.settingslib.development.DeveloperOptionsPreferenceController;
|
||||||
|
|
||||||
public final class AutofillPreferenceCategory extends PreferenceCategory {
|
/**
|
||||||
|
* Controller class for observing the state of AutofillManager.
|
||||||
|
*/
|
||||||
|
public class AutofillCategoryController extends DeveloperOptionsPreferenceController implements
|
||||||
|
LifecycleObserver, OnStart, OnStop {
|
||||||
|
|
||||||
private static final String TAG = "AutofillPreferenceCategory";
|
private static final String TAG = "AutofillCategoryController";
|
||||||
|
|
||||||
|
private static final String CATEGORY_KEY = "debug_autofill_category";
|
||||||
private static final long DELAYED_MESSAGE_TIME_MS = 2000;
|
private static final long DELAYED_MESSAGE_TIME_MS = 2000;
|
||||||
|
|
||||||
private final ContentResolver mContentResolver;
|
private ContentResolver mContentResolver;
|
||||||
private final ContentObserver mSettingsObserver;
|
private ContentObserver mSettingsObserver;
|
||||||
private final Handler mHandler = new Handler(Looper.getMainLooper());
|
private final Handler mHandler = new Handler(Looper.getMainLooper());
|
||||||
|
|
||||||
public AutofillPreferenceCategory(Context context, AttributeSet attrs) {
|
public AutofillCategoryController(Context context, Lifecycle lifecycle) {
|
||||||
super(context, attrs);
|
super(context);
|
||||||
|
|
||||||
|
if (lifecycle != null) {
|
||||||
|
lifecycle.addObserver(this);
|
||||||
|
}
|
||||||
|
|
||||||
mSettingsObserver = new ContentObserver(mHandler) {
|
mSettingsObserver = new ContentObserver(mHandler) {
|
||||||
@Override
|
@Override
|
||||||
@@ -45,7 +60,8 @@ public final class AutofillPreferenceCategory extends PreferenceCategory {
|
|||||||
// We cannot apply the change yet because AutofillManager.isEnabled() state is
|
// We cannot apply the change yet because AutofillManager.isEnabled() state is
|
||||||
// updated by a ContentObserver as well and there's no guarantee of which observer
|
// updated by a ContentObserver as well and there's no guarantee of which observer
|
||||||
// is called first - hence, it's possible that the state didn't change here yet.
|
// is called first - hence, it's possible that the state didn't change here yet.
|
||||||
mHandler.postDelayed(() -> notifyDependencyChange(shouldDisableDependents()),
|
mHandler.postDelayed(
|
||||||
|
() -> mPreference.notifyDependencyChange(shouldDisableDependents()),
|
||||||
DELAYED_MESSAGE_TIME_MS);
|
DELAYED_MESSAGE_TIME_MS);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -53,32 +69,33 @@ public final class AutofillPreferenceCategory extends PreferenceCategory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttached() {
|
public String getPreferenceKey() {
|
||||||
super.onAttached();
|
return CATEGORY_KEY;
|
||||||
|
|
||||||
mContentResolver.registerContentObserver(
|
|
||||||
Settings.Secure.getUriFor(Settings.Secure.AUTOFILL_SERVICE), false,
|
|
||||||
mSettingsObserver);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDetached() {
|
public void onStart() {
|
||||||
mContentResolver.unregisterContentObserver(mSettingsObserver);
|
mContentResolver.registerContentObserver(
|
||||||
|
Settings.Secure.getUriFor(Settings.Secure.AUTOFILL_SERVICE), false,
|
||||||
|
mSettingsObserver);
|
||||||
|
|
||||||
super.onDetached();
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStop() {
|
||||||
|
mContentResolver.unregisterContentObserver(mSettingsObserver);
|
||||||
}
|
}
|
||||||
|
|
||||||
// PreferenceCategory.isEnabled() always return false, so we rather not change that logic
|
// PreferenceCategory.isEnabled() always return false, so we rather not change that logic
|
||||||
// decide whether the children should be shown using isAutofillEnabled() instead.
|
// decide whether the children should be shown using isAutofillEnabled() instead.
|
||||||
private boolean isAutofillEnabled() {
|
private boolean isAutofillEnabled() {
|
||||||
final AutofillManager afm = getContext().getSystemService(AutofillManager.class);
|
final AutofillManager afm = mContext.getSystemService(AutofillManager.class);
|
||||||
final boolean enabled = afm != null && afm.isEnabled();
|
final boolean enabled = afm != null && afm.isEnabled();
|
||||||
Log.v(TAG, "isAutofillEnabled(): " + enabled);
|
Log.v(TAG, "isAutofillEnabled(): " + enabled);
|
||||||
return enabled;
|
return enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
private boolean shouldDisableDependents() {
|
||||||
public boolean shouldDisableDependents() {
|
|
||||||
final boolean shouldIt = !isAutofillEnabled();
|
final boolean shouldIt = !isAutofillEnabled();
|
||||||
Log.v(TAG, "shouldDisableDependents(): " + shouldIt);
|
Log.v(TAG, "shouldDisableDependents(): " + shouldIt);
|
||||||
return shouldIt;
|
return shouldIt;
|
Reference in New Issue
Block a user