Merge "Use user-specific PackageManager." into jb-mr1-dev
diff --git a/res/layout/manage_applications_content.xml b/res/layout/manage_applications_content.xml
index 96ddeb3..32d6378 100644
--- a/res/layout/manage_applications_content.xml
+++ b/res/layout/manage_applications_content.xml
@@ -35,7 +35,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
- android:textAppearance="@style/TextAppearance.PagerTabs">
+ android:textAppearance="@style/TextAppearance.PagerTabs"
+ android:paddingLeft="@dimen/pager_tabs_padding"
+ android:paddingRight="@dimen/pager_tabs_padding">
</android.support.v4.view.PagerTabStrip>
</android.support.v4.view.ViewPager>
diff --git a/res/values-sw720dp/dimens.xml b/res/values-sw720dp/dimens.xml
new file mode 100644
index 0000000..5a58609
--- /dev/null
+++ b/res/values-sw720dp/dimens.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+
+<resources>
+ <dimen name="pager_tabs_padding">@*android:dimen/preference_fragment_padding_side</dimen>
+</resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 9335788..34b2d86 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -51,4 +51,7 @@
<dimen name="header_icon_width">28dp</dimen>
<dimen name="appwidget_min_width">260dip</dimen>
<dimen name="appwidget_min_height">40dip</dimen>
+
+ <dimen name="pager_tabs_padding">0dp</dimen>
+
</resources>
diff --git a/src/com/android/settings/AccessibilitySettings.java b/src/com/android/settings/AccessibilitySettings.java
index d055345..b6556a9 100644
--- a/src/com/android/settings/AccessibilitySettings.java
+++ b/src/com/android/settings/AccessibilitySettings.java
@@ -23,6 +23,7 @@
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.ComponentName;
+import android.content.ContentResolver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
@@ -125,6 +126,7 @@
private static final String EXTRA_DISABLE_WARNING_MESSAGE = "disable_warning_message";
private static final String EXTRA_SETTINGS_TITLE = "settings_title";
private static final String EXTRA_SETTINGS_COMPONENT_NAME = "settings_component_name";
+ private static final String EXTRA_SERVICE_COMPONENT_NAME = "service_component_name";
// Dialog IDs.
private static final int DIALOG_ID_NO_ACCESSIBILITY_SERVICES = 1;
@@ -152,7 +154,13 @@
};
private final SettingsContentObserver mSettingsContentObserver =
- new SettingsContentObserver(mHandler);
+ new SettingsContentObserver(mHandler) {
+ @Override
+ public void onChange(boolean selfChange, Uri uri) {
+ loadInstalledServices();
+ updateServicesPreferences();
+ }
+ };
private final RotationPolicy.RotationPolicyListener mRotationPolicyListener =
new RotationPolicy.RotationPolicyListener() {
@@ -194,7 +202,7 @@
offerInstallAccessibilitySerivceOnce();
mSettingsPackageMonitor.register(getActivity(), getActivity().getMainLooper(), false);
- mSettingsContentObserver.register();
+ mSettingsContentObserver.register(getContentResolver());
RotationPolicy.registerRotationPolicyListener(getActivity(),
mRotationPolicyListener);
}
@@ -204,7 +212,7 @@
mSettingsPackageMonitor.unregister();
RotationPolicy.unregisterRotationPolicyListener(getActivity(),
mRotationPolicyListener);
- mSettingsContentObserver.unregister();
+ mSettingsContentObserver.unregister(getContentResolver());
super.onPause();
}
@@ -431,6 +439,8 @@
settingsClassName).flattenToString());
}
+ extras.putString(EXTRA_SERVICE_COMPONENT_NAME, componentName.flattenToString());
+
mServicesCategory.addPreference(preference);
}
@@ -689,14 +699,39 @@
private static final int DIALOG_ID_ENABLE_WARNING = 1;
private static final int DIALOG_ID_DISABLE_WARNING = 2;
+ private final SettingsContentObserver mSettingsContentObserver =
+ new SettingsContentObserver(new Handler()) {
+ @Override
+ public void onChange(boolean selfChange, Uri uri) {
+ String settingValue = Settings.Secure.getString(getContentResolver(),
+ Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES);
+ final boolean enabled = settingValue.contains(mComponentName);
+ mToggleSwitch.setCheckedInternal(enabled);
+ }
+ };
+
private CharSequence mEnableWarningTitle;
private CharSequence mEnableWarningMessage;
private CharSequence mDisableWarningTitle;
private CharSequence mDisableWarningMessage;
+ private String mComponentName;
+
private int mShownDialogId;
@Override
+ public void onResume() {
+ mSettingsContentObserver.register(getContentResolver());
+ super.onResume();
+ }
+
+ @Override
+ public void onPause() {
+ mSettingsContentObserver.unregister(getContentResolver());
+ super.onPause();
+ }
+
+ @Override
public void onPreferenceToggled(String preferenceKey, boolean enabled) {
// Parse the enabled services.
Set<ComponentName> enabledServices = getEnabledServicesFromSettings(getActivity());
@@ -851,6 +886,8 @@
// Disable warning message.
mDisableWarningMessage = arguments.getString(
AccessibilitySettings.EXTRA_DISABLE_WARNING_MESSAGE);
+ // Component name.
+ mComponentName = arguments.getString(EXTRA_SERVICE_COMPONENT_NAME);
}
}
@@ -1016,27 +1053,24 @@
}
}
- private final class SettingsContentObserver extends ContentObserver {
+ private static abstract class SettingsContentObserver extends ContentObserver {
public SettingsContentObserver(Handler handler) {
super(handler);
}
- public void register() {
- getContentResolver().registerContentObserver(Settings.Secure.getUriFor(
+ public void register(ContentResolver contentResolver) {
+ contentResolver.registerContentObserver(Settings.Secure.getUriFor(
Settings.Secure.ACCESSIBILITY_ENABLED), false, this);
- getContentResolver().registerContentObserver(Settings.Secure.getUriFor(
+ contentResolver.registerContentObserver(Settings.Secure.getUriFor(
Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES), false, this);
}
- public void unregister() {
- getContentResolver().unregisterContentObserver(this);
+ public void unregister(ContentResolver contentResolver) {
+ contentResolver.unregisterContentObserver(this);
}
@Override
- public void onChange(boolean selfChange, Uri uri) {
- loadInstalledServices();
- updateServicesPreferences();
- }
+ public abstract void onChange(boolean selfChange, Uri uri);
}
}