Merge "Updates/fixes to memory settings" into mnc-dev
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index dc01c24..12551d0 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1852,7 +1852,6 @@
android:label="@string/wifi_display_settings_title"
android:taskAffinity="">
<intent-filter android:priority="1">
- <action android:name="android.settings.WIFI_DISPLAY_SETTINGS" />
<action android:name="android.settings.CAST_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
@@ -2326,6 +2325,8 @@
android:value="com.android.settings.notification.OtherSoundSettings" />
<meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
android:resource="@id/notification_settings" />
+ <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
+ android:value="true" />
</activity>
<!-- Show apps for which application-level notification settings are applicable -->
diff --git a/res/layout/battery_history_chart.xml b/res/layout/battery_history_chart.xml
index 0e3cf88..c0c37f1 100644
--- a/res/layout/battery_history_chart.xml
+++ b/res/layout/battery_history_chart.xml
@@ -28,7 +28,7 @@
android:gravity="center_vertical"
android:id="@+id/battery_history_chart"
android:textAppearance="?android:attr/textAppearanceSmall"
- android:textColor="#ff000000"
+ android:textColor="?android:attr/textColorPrimary"
app:headerAppearance="?android:attr/textAppearanceMedium"
android:shadowRadius="4"
android:shadowColor="?android:attr/colorBackground"
diff --git a/res/layout/data_usage_summary.xml b/res/layout/data_usage_summary.xml
index 6634105..8875004 100644
--- a/res/layout/data_usage_summary.xml
+++ b/res/layout/data_usage_summary.xml
@@ -26,6 +26,11 @@
android:orientation="vertical"
android:background="@drawable/default_preference_background">
+ <FrameLayout
+ android:id="@+id/pinned_header"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
<include layout="@layout/tab_widget" />
<!-- give an empty content area to make tabhost happy -->
diff --git a/res/layout/manage_applications_apps.xml b/res/layout/manage_applications_apps.xml
index 044cdb4..e4ec871 100644
--- a/res/layout/manage_applications_apps.xml
+++ b/res/layout/manage_applications_apps.xml
@@ -30,6 +30,11 @@
android:orientation="vertical"
android:visibility="gone">
+ <FrameLayout
+ android:id="@+id/pinned_header"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
<FrameLayout android:layout_width="match_parent"
android:layout_height="0px"
android:layout_weight="1">
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 672d4e7..7467248 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -5966,6 +5966,9 @@
<!-- Sound & notification > Other sounds: Title for the option enabling touch sounds for screen locking sounds. [CHAR LIMIT=30] -->
<string name="screen_locking_sounds_title">Screen locking sounds</string>
+ <!-- Sound & notification > Other sounds: Title for the option enabling charging sounds. [CHAR LIMIT=30] -->
+ <string name="charging_sounds_title">Charging sounds</string>
+
<!-- Sound & notification > Other sounds: Title for the option enabling docking sounds. [CHAR LIMIT=30] -->
<string name="docking_sounds_title">Docking sounds</string>
diff --git a/res/xml/other_sound_settings.xml b/res/xml/other_sound_settings.xml
index 88c4130..57a302b 100644
--- a/res/xml/other_sound_settings.xml
+++ b/res/xml/other_sound_settings.xml
@@ -35,6 +35,14 @@
android:switchTextOn=""
android:persistent="false" />
+ <!-- Charging sounds -->
+ <SwitchPreference
+ android:key="charging_sounds"
+ android:title="@string/charging_sounds_title"
+ android:switchTextOff=""
+ android:switchTextOn=""
+ android:persistent="false" />
+
<!-- Docking sounds -->
<SwitchPreference
android:key="docking_sounds"
diff --git a/src/com/android/settings/AppHeader.java b/src/com/android/settings/AppHeader.java
index 2f3678b..71c2255 100644
--- a/src/com/android/settings/AppHeader.java
+++ b/src/com/android/settings/AppHeader.java
@@ -28,18 +28,27 @@
public class AppHeader {
- public static void createAppHeader(final Activity activity, Drawable icon, CharSequence label,
- final Intent settingsIntent) {
- createAppHeader(activity, icon, label, settingsIntent, 0);
+ public static void createAppHeader(SettingsPreferenceFragment fragment, Drawable icon,
+ CharSequence label, final Intent settingsIntent) {
+ createAppHeader(fragment, icon, label, settingsIntent, 0);
}
- public static void createAppHeader(final Activity activity, Drawable icon, CharSequence label,
- final Intent settingsIntent, int tintColorRes) {
- final View content = activity.findViewById(R.id.main_content);
- final ViewGroup contentParent = (ViewGroup) content.getParent();
+ public static void createAppHeader(Activity activity, Drawable icon, CharSequence label,
+ final Intent settingsIntent, ViewGroup pinnedHeader) {
final View bar = activity.getLayoutInflater().inflate(R.layout.app_header,
- contentParent, false);
+ pinnedHeader, false);
+ setupHeaderView(activity, icon, label, settingsIntent, 0, bar);
+ pinnedHeader.addView(bar);
+ }
+ public static void createAppHeader(SettingsPreferenceFragment fragment, Drawable icon,
+ CharSequence label, Intent settingsIntent, int tintColorRes) {
+ View bar = fragment.setPinnedHeaderView(R.layout.app_header);
+ setupHeaderView(fragment.getActivity(), icon, label, settingsIntent, tintColorRes, bar);
+ }
+
+ private static View setupHeaderView(final Activity activity, Drawable icon, CharSequence label,
+ final Intent settingsIntent, int tintColorRes, View bar) {
final ImageView appIcon = (ImageView) bar.findViewById(R.id.app_icon);
appIcon.setImageDrawable(icon);
if (tintColorRes != 0) {
@@ -61,7 +70,8 @@
}
});
}
- contentParent.addView(bar, 0);
+
+ return bar;
}
}
diff --git a/src/com/android/settings/DataUsageSummary.java b/src/com/android/settings/DataUsageSummary.java
index 27a486c..7eec3df 100644
--- a/src/com/android/settings/DataUsageSummary.java
+++ b/src/com/android/settings/DataUsageSummary.java
@@ -112,6 +112,7 @@
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.Button;
+import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
@@ -120,12 +121,12 @@
import android.widget.Spinner;
import android.widget.Switch;
import android.widget.TabHost;
-import android.widget.Toast;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TabHost.TabContentFactory;
import android.widget.TabHost.TabSpec;
import android.widget.TabWidget;
import android.widget.TextView;
+import android.widget.Toast;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.telephony.PhoneConstants;
@@ -464,12 +465,12 @@
mListView.setOnItemClickListener(mListListener);
mListView.setAdapter(mAdapter);
- showRequestedAppIfNeeded();
+ showRequestedAppIfNeeded(view);
return view;
}
- private void showRequestedAppIfNeeded() {
+ private void showRequestedAppIfNeeded(View rootView) {
if (mShowAppImmediatePkg == null) {
return;
}
@@ -482,7 +483,8 @@
final UidDetail detail = mUidDetailProvider.getUidDetail(app.key, true);
// When we are going straight to an app then we are coming from App Info and want
// a header at the top.
- AppHeader.createAppHeader(getActivity(), detail.icon, detail.label, null);
+ FrameLayout pinnedHeader = (FrameLayout) rootView.findViewById(R.id.pinned_header);
+ AppHeader.createAppHeader(getActivity(), detail.icon, detail.label, null, pinnedHeader);
AppDetailsFragment.show(DataUsageSummary.this, app, detail.label, false);
} catch (NameNotFoundException e) {
Log.w(TAG, "Could not find " + mShowAppImmediatePkg, e);
diff --git a/src/com/android/settings/applications/AppInfoBase.java b/src/com/android/settings/applications/AppInfoBase.java
index 2d402e5..e42f246 100644
--- a/src/com/android/settings/applications/AppInfoBase.java
+++ b/src/com/android/settings/applications/AppInfoBase.java
@@ -37,12 +37,13 @@
import com.android.settings.InstrumentedPreferenceFragment;
import com.android.settings.SettingsActivity;
+import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils;
import com.android.settings.applications.ApplicationsState.AppEntry;
import java.util.ArrayList;
-public abstract class AppInfoBase extends InstrumentedPreferenceFragment
+public abstract class AppInfoBase extends SettingsPreferenceFragment
implements ApplicationsState.Callbacks {
public static final String ARG_PACKAGE_NAME = "package";
diff --git a/src/com/android/settings/applications/AppInfoWithHeader.java b/src/com/android/settings/applications/AppInfoWithHeader.java
index f7546f2..f8feaf1 100644
--- a/src/com/android/settings/applications/AppInfoWithHeader.java
+++ b/src/com/android/settings/applications/AppInfoWithHeader.java
@@ -34,7 +34,7 @@
}
mCreated = true;
if (mPackageInfo == null) return;
- AppHeader.createAppHeader(getActivity(), mPackageInfo.applicationInfo.loadIcon(mPm),
- mPackageInfo.applicationInfo.loadLabel(mPm), null);
+ AppHeader.createAppHeader(this, mPackageInfo.applicationInfo.loadIcon(mPm),
+ mPackageInfo.applicationInfo.loadLabel(mPm), null, 0);
}
}
diff --git a/src/com/android/settings/applications/ManageApplications.java b/src/com/android/settings/applications/ManageApplications.java
index b55cc44..aaec5cf 100644
--- a/src/com/android/settings/applications/ManageApplications.java
+++ b/src/com/android/settings/applications/ManageApplications.java
@@ -45,6 +45,7 @@
import android.widget.BaseAdapter;
import android.widget.Filter;
import android.widget.Filterable;
+import android.widget.FrameLayout;
import android.widget.ListView;
import android.widget.Spinner;
@@ -232,8 +233,8 @@
} else {
// No volume selected, display a normal list, sorted by size.
mListType = LIST_TYPE_MAIN;
- mSortOrder = R.id.sort_order_size;
}
+ mSortOrder = R.id.sort_order_size;
} else if (className.equals(UsageAccessSettingsActivity.class.getName())) {
mListType = LIST_TYPE_USAGE_ACCESS;
getActivity().getActionBar().setTitle(R.string.usage_access_title);
@@ -298,15 +299,14 @@
private void createHeader() {
Activity activity = getActivity();
- View content = activity.findViewById(R.id.main_content);
- ViewGroup contentParent = (ViewGroup) content.getParent();
+ FrameLayout pinnedHeader = (FrameLayout) mRootView.findViewById(R.id.pinned_header);
mSpinnerHeader = (ViewGroup) activity.getLayoutInflater()
- .inflate(R.layout.apps_filter_spinner, contentParent, false);
+ .inflate(R.layout.apps_filter_spinner, pinnedHeader, false);
mFilterSpinner = (Spinner) mSpinnerHeader.findViewById(R.id.filter_spinner);
mFilterAdapter = new FilterSpinnerAdapter(this);
mFilterSpinner.setAdapter(mFilterAdapter);
mFilterSpinner.setOnItemSelectedListener(this);
- contentParent.addView(mSpinnerHeader, 0);
+ pinnedHeader.addView(mSpinnerHeader, 0);
mFilterAdapter.enableFilter(getDefaultFilter());
if (mListType == LIST_TYPE_MAIN || mListType == LIST_TYPE_NOTIFICATION) {
@@ -333,7 +333,8 @@
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
if (mListType == LIST_TYPE_STORAGE) {
- AppHeader.createAppHeader(getActivity(), null, mVolumeName, null);
+ FrameLayout pinnedHeader = (FrameLayout) mRootView.findViewById(R.id.pinned_header);
+ AppHeader.createAppHeader(getActivity(), null, mVolumeName, null, pinnedHeader);
}
}
diff --git a/src/com/android/settings/applications/ProcessStatsDetail.java b/src/com/android/settings/applications/ProcessStatsDetail.java
index 317e3b2..7035bf0 100644
--- a/src/com/android/settings/applications/ProcessStatsDetail.java
+++ b/src/com/android/settings/applications/ProcessStatsDetail.java
@@ -113,7 +113,7 @@
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
- AppHeader.createAppHeader(getActivity(),
+ AppHeader.createAppHeader(this,
mApp.mUiTargetApp != null ? mApp.mUiTargetApp.loadIcon(mPm) : new ColorDrawable(0),
mApp.mUiLabel, null);
}
diff --git a/src/com/android/settings/deviceinfo/SimStatus.java b/src/com/android/settings/deviceinfo/SimStatus.java
index 4fa5673..ea4c3e1 100644
--- a/src/com/android/settings/deviceinfo/SimStatus.java
+++ b/src/com/android/settings/deviceinfo/SimStatus.java
@@ -143,24 +143,28 @@
// Note - missing in zaku build, be careful later...
mSignalStrength = findPreference(KEY_SIGNAL_STRENGTH);
- mSir = mSelectableSubInfos.size() > 0 ? mSelectableSubInfos.get(0) : null;
- if (mSelectableSubInfos.size() > 1) {
- setContentView(R.layout.sim_information);
+ if (mSelectableSubInfos == null) {
+ mSir = null;
+ } else {
+ mSir = mSelectableSubInfos.size() > 0 ? mSelectableSubInfos.get(0) : null;
- mTabHost = (TabHost) findViewById(android.R.id.tabhost);
- mTabWidget = (TabWidget) findViewById(android.R.id.tabs);
- mListView = (ListView) findViewById(android.R.id.list);
+ if (mSelectableSubInfos.size() > 1) {
+ setContentView(R.layout.sim_information);
- mTabHost.setup();
- mTabHost.setOnTabChangedListener(mTabListener);
- mTabHost.clearAllTabs();
+ mTabHost = (TabHost) findViewById(android.R.id.tabhost);
+ mTabWidget = (TabWidget) findViewById(android.R.id.tabs);
+ mListView = (ListView) findViewById(android.R.id.list);
- for (int i = 0; i < mSelectableSubInfos.size(); i++) {
- mTabHost.addTab(buildTabSpec(String.valueOf(i),
- String.valueOf(mSelectableSubInfos.get(i).getDisplayName())));
+ mTabHost.setup();
+ mTabHost.setOnTabChangedListener(mTabListener);
+ mTabHost.clearAllTabs();
+
+ for (int i = 0; i < mSelectableSubInfos.size(); i++) {
+ mTabHost.addTab(buildTabSpec(String.valueOf(i),
+ String.valueOf(mSelectableSubInfos.get(i).getDisplayName())));
+ }
}
}
-
updatePhoneInfos();
}
diff --git a/src/com/android/settings/fuelgauge/PowerUsageDetail.java b/src/com/android/settings/fuelgauge/PowerUsageDetail.java
index 4aa935a..bac8202 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageDetail.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageDetail.java
@@ -464,7 +464,7 @@
appIcon = getActivity().getPackageManager().getDefaultActivityIcon();
}
- AppHeader.createAppHeader(getActivity(), appIcon, title, null,
+ AppHeader.createAppHeader(this, appIcon, title, null,
mDrainType != DrainType.APP ? android.R.color.white : 0);
}
diff --git a/src/com/android/settings/notification/AppNotificationSettings.java b/src/com/android/settings/notification/AppNotificationSettings.java
index 883975a..28245c8 100644
--- a/src/com/android/settings/notification/AppNotificationSettings.java
+++ b/src/com/android/settings/notification/AppNotificationSettings.java
@@ -84,7 +84,7 @@
}
mCreated = true;
if (mAppRow == null) return;
- AppHeader.createAppHeader(getActivity(), mAppRow.icon, mAppRow.label,
+ AppHeader.createAppHeader(this, mAppRow.icon, mAppRow.label,
mAppRow.settingsIntent);
}
diff --git a/src/com/android/settings/notification/OtherSoundSettings.java b/src/com/android/settings/notification/OtherSoundSettings.java
index c226906..969ec90 100644
--- a/src/com/android/settings/notification/OtherSoundSettings.java
+++ b/src/com/android/settings/notification/OtherSoundSettings.java
@@ -60,6 +60,7 @@
private static final String KEY_DIAL_PAD_TONES = "dial_pad_tones";
private static final String KEY_SCREEN_LOCKING_SOUNDS = "screen_locking_sounds";
+ private static final String KEY_CHARGING_SOUNDS = "charging_sounds";
private static final String KEY_DOCKING_SOUNDS = "docking_sounds";
private static final String KEY_TOUCH_SOUNDS = "touch_sounds";
private static final String KEY_VIBRATE_ON_TOUCH = "vibrate_on_touch";
@@ -77,6 +78,9 @@
private static final SettingPref PREF_SCREEN_LOCKING_SOUNDS = new SettingPref(
TYPE_SYSTEM, KEY_SCREEN_LOCKING_SOUNDS, System.LOCKSCREEN_SOUNDS_ENABLED, DEFAULT_ON);
+ private static final SettingPref PREF_CHARGING_SOUNDS = new SettingPref(
+ TYPE_GLOBAL, KEY_CHARGING_SOUNDS, Global.CHARGING_SOUNDS_ENABLED, DEFAULT_ON);
+
private static final SettingPref PREF_DOCKING_SOUNDS = new SettingPref(
TYPE_GLOBAL, KEY_DOCKING_SOUNDS, Global.DOCK_SOUNDS_ENABLED, DEFAULT_ON) {
@Override
@@ -155,6 +159,7 @@
private static final SettingPref[] PREFS = {
PREF_DIAL_PAD_TONES,
PREF_SCREEN_LOCKING_SOUNDS,
+ PREF_CHARGING_SOUNDS,
PREF_DOCKING_SOUNDS,
PREF_TOUCH_SOUNDS,
PREF_VIBRATE_ON_TOUCH,
diff --git a/src/com/android/settings/wifi/AccessPointPreference.java b/src/com/android/settings/wifi/AccessPointPreference.java
index 0f702b2..511d88d 100644
--- a/src/com/android/settings/wifi/AccessPointPreference.java
+++ b/src/com/android/settings/wifi/AccessPointPreference.java
@@ -21,7 +21,6 @@
import android.preference.Preference;
import android.view.View;
import android.widget.TextView;
-
import com.android.settings.R;
import com.android.settingslib.wifi.AccessPoint;
@@ -81,7 +80,11 @@
? STATE_SECURED
: STATE_NONE);
drawable = sld.getCurrent();
- setIcon(drawable);
+ if (!mForSavedNetworks) {
+ setIcon(drawable);
+ } else {
+ setIcon(null);
+ }
}
}
diff --git a/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java b/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java
index 04d2107..1444ad5 100644
--- a/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java
+++ b/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java
@@ -41,6 +41,8 @@
import com.android.settings.search.SearchIndexableRaw;
import com.android.settingslib.wifi.AccessPoint;
import com.android.settingslib.wifi.WifiTracker;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.ArrayList;
import java.util.List;
@@ -97,35 +99,22 @@
final List<AccessPoint> accessPoints = WifiTracker.getCurrentAccessPoints(context, true,
false, true);
-
+ Collections.sort(accessPoints, new Comparator<AccessPoint>() {
+ public int compare(AccessPoint ap1, AccessPoint ap2) {
+ if (ap1.getConfigName() != null) {
+ return ap1.getConfigName().compareTo(ap2.getConfigName());
+ } else {
+ return -1;
+ }
+ }
+ });
preferenceScreen.removeAll();
- PackageManager pm = context.getPackageManager();
- String systemName = pm.getNameForUid(android.os.Process.SYSTEM_UID);
-
final int accessPointsSize = accessPoints.size();
for (int i = 0; i < accessPointsSize; ++i){
AccessPointPreference preference = new AccessPointPreference(accessPoints.get(i),
context, true);
- WifiConfiguration config = accessPoints.get(i).getConfig();
- if (config != null) {
- int userId = UserHandle.getUserId(config.creatorUid);
- ApplicationInfo appInfo = null;
- if (config.creatorName != null && config.creatorName.equals(systemName)) {
- appInfo = context.getApplicationInfo();
- } else {
- try {
- IPackageManager ipm = AppGlobals.getPackageManager();
- appInfo = ipm.getApplicationInfo(config.creatorName, 0 /* flags */, userId);
- } catch (RemoteException rex) {
- }
- }
- if (appInfo != null) {
- preference.setSummary(getResources().getString(appInfo.labelRes));
- }
- } else {
- preference.setShowSummary(false);
- }
+ preference.setIcon(null);
preferenceScreen.addPreference(preference);
}