summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/java/android/app/Profile.java66
-rw-r--r--core/java/android/widget/SearchView.java3
-rw-r--r--core/res/res/values-it/strings.xml2
-rwxr-xr-xcore/res/res/values/config.xml5
-rwxr-xr-xcore/res/res/values/strings.xml2
-rw-r--r--packages/SystemUI/res/values-it/strings.xml5
-rwxr-xr-xpolicy/src/com/android/internal/policy/impl/LockScreen.java30
-rwxr-xr-xpolicy/src/com/android/internal/policy/impl/PhoneWindowManager.java12
-rw-r--r--services/java/com/android/server/ProfileManagerService.java17
-rw-r--r--telephony/java/com/android/internal/telephony/CallManager.java20
-rw-r--r--telephony/java/com/android/internal/telephony/LGEQualcommUiccRIL.java16
11 files changed, 158 insertions, 20 deletions
diff --git a/core/java/android/app/Profile.java b/core/java/android/app/Profile.java
index 4d29a03..54e187d 100644
--- a/core/java/android/app/Profile.java
+++ b/core/java/android/app/Profile.java
@@ -30,8 +30,10 @@ import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.UUID;
@@ -46,6 +48,8 @@ public final class Profile implements Parcelable, Comparable {
private UUID mUuid;
+ private ArrayList<UUID> mSecondaryUuids = new ArrayList<UUID>();
+
private Map<UUID, ProfileGroup> profileGroups = new HashMap<UUID, ProfileGroup>();
private ProfileGroup mDefaultGroup;
@@ -172,6 +176,11 @@ public final class Profile implements Parcelable, Comparable {
dest.writeString(mName);
dest.writeInt(mNameResId);
new ParcelUuid(mUuid).writeToParcel(dest, 0);
+ ArrayList<ParcelUuid> uuids = new ArrayList<ParcelUuid>(mSecondaryUuids.size());
+ for (UUID u : mSecondaryUuids) {
+ uuids.add(new ParcelUuid(u));
+ }
+ dest.writeParcelableArray(uuids.toArray(new Parcelable[uuids.size()]), flags);
dest.writeInt(mStatusBarIndicator ? 1 : 0);
dest.writeInt(mProfileType);
dest.writeInt(mDirty ? 1 : 0);
@@ -191,6 +200,10 @@ public final class Profile implements Parcelable, Comparable {
mName = in.readString();
mNameResId = in.readInt();
mUuid = ParcelUuid.CREATOR.createFromParcel(in).getUuid();
+ for (Parcelable parcel : in.readParcelableArray(null)) {
+ ParcelUuid u = (ParcelUuid) parcel;
+ mSecondaryUuids.add(u.getUuid());
+ }
mStatusBarIndicator = (in.readInt() == 1);
mProfileType = in.readInt();
mDirty = (in.readInt() == 1);
@@ -243,6 +256,25 @@ public final class Profile implements Parcelable, Comparable {
return this.mUuid;
}
+ public UUID[] getSecondaryUuids() {
+ return mSecondaryUuids.toArray(new UUID[mSecondaryUuids.size()]);
+ }
+
+ public void setSecondaryUuids(List<UUID> uuids) {
+ mSecondaryUuids.clear();
+ if (uuids != null) {
+ mSecondaryUuids.addAll(uuids);
+ mDirty = true;
+ }
+ }
+
+ public void addSecondaryUuid(UUID uuid) {
+ if (uuid != null) {
+ mSecondaryUuids.add(uuid);
+ mDirty = true;
+ }
+ }
+
public boolean getStatusBarIndicator() {
return mStatusBarIndicator;
}
@@ -329,6 +361,14 @@ public final class Profile implements Parcelable, Comparable {
builder.append(TextUtils.htmlEncode(getUuid().toString()));
builder.append("\">\n");
+ builder.append("<uuids>");
+ for (UUID u : mSecondaryUuids) {
+ builder.append("<uuid>");
+ builder.append(TextUtils.htmlEncode(u.toString()));
+ builder.append("</uuid>");
+ }
+ builder.append("</uuids>\n");
+
builder.append("<profiletype>");
builder.append(getProfileType() == TOGGLE_TYPE ? "toggle" : "conditional");
builder.append("</profiletype>\n");
@@ -361,6 +401,29 @@ public final class Profile implements Parcelable, Comparable {
mDirty = false;
}
+ private static List<UUID> readSecondaryUuidsFromXml(XmlPullParser xpp, Context context)
+ throws XmlPullParserException,
+ IOException {
+ ArrayList<UUID> uuids = new ArrayList<UUID>();
+ int event = xpp.next();
+ while (event != XmlPullParser.END_TAG || !xpp.getName().equals("uuids")) {
+ if (event == XmlPullParser.START_TAG) {
+ String name = xpp.getName();
+ if (name.equals("uuid")) {
+ try {
+ uuids.add(UUID.fromString(xpp.nextText()));
+ } catch (NullPointerException e) {
+ Log.w(TAG, "Null Pointer - invalid UUID");
+ } catch (IllegalArgumentException e) {
+ Log.w(TAG, "UUID not recognized");
+ }
+ }
+ }
+ event = xpp.next();
+ }
+ return uuids;
+ }
+
/** @hide */
public static Profile fromXml(XmlPullParser xpp, Context context)
throws XmlPullParserException, IOException {
@@ -403,6 +466,9 @@ public final class Profile implements Parcelable, Comparable {
while (event != XmlPullParser.END_TAG) {
if (event == XmlPullParser.START_TAG) {
String name = xpp.getName();
+ if (name.equals("uuids")) {
+ profile.setSecondaryUuids(readSecondaryUuidsFromXml(xpp, context));
+ }
if (name.equals("statusbar")) {
profile.setStatusBarIndicator(xpp.nextText().equals("yes"));
}
diff --git a/core/java/android/widget/SearchView.java b/core/java/android/widget/SearchView.java
index 9d2ff2e..3e7cb77 100644
--- a/core/java/android/widget/SearchView.java
+++ b/core/java/android/widget/SearchView.java
@@ -1432,6 +1432,9 @@ public class SearchView extends LinearLayout implements CollapsibleActionView {
// because the voice search activity will always need to insert "QUERY" into
// it anyway.
Bundle queryExtras = new Bundle();
+ if(this.mAppSearchData != null) {
+ queryExtras.putParcelable(SearchManager.APP_DATA, this.mAppSearchData);
+ }
// Now build the intent to launch the voice search. Add all necessary
// extras to launch the voice recognizer, and then all the necessary extras
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index b8666bb..e8409ca 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -1312,5 +1312,7 @@
<string name="weather_SW">SW</string>
<string name="weather_W">W</string>
<string name="weather_NW">NW</string>
+ <string name="weather_no_data">Nessun dato</string>
<string name="weather_tap_to_refresh">Tocca per aggiornare</string>
+ <string name="weather_refreshing">In aggiornamento</string>
</resources>
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index caa1be1..479f81a 100755
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -658,8 +658,9 @@
<!-- The VoiceMail default value is displayed to my own number if it is true -->
<bool name="config_telephony_use_own_number_for_voicemail">false</bool>
- <!-- Set additional audio parameters for incall audio -->
- <!-- Examples: <item>realcall</item> <item>dualmic_enabled</item> <item>mic_boost</item> -->
+ <!-- Set additional audio parameters for incall audio
+ Usage: parameter=onstring=offstring
+ Examples: <item>realcall=on=off</item> <item>dualmic_enabled=true=false</item> <item>mic_boost=yes=no</item> -->
<string-array name="config_telephony_set_audioparameters" translatable="false">
</string-array>
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 7a49539..087aeb3 100755
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -3441,7 +3441,7 @@
<!-- STK setup Call -->
<string name="SetupCallDefault">Accept Call?</string>
- <!--Application killed toast -->
+ <!-- Long-press back kill application -->
<string name="app_killed_message">Application killed</string>
<!-- Lock screen Weather - Weather codes -->
diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml
index 433f135..b392d76 100644
--- a/packages/SystemUI/res/values-it/strings.xml
+++ b/packages/SystemUI/res/values-it/strings.xml
@@ -42,6 +42,11 @@
<string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
<string name="status_bar_settings_bluetooth_button">Bluetooth</string>
<string name="status_bar_settings_airplane" msgid="4879879698500955300">"Modalità aereo"</string>
+ <string name="status_bar_settings_location">GPS</string>
+ <string name="status_bar_settings_flashlight">Torcia LED</string>
+ <string name="status_bar_settings_mobile_data">Dati mobili</string>
+ <string name="status_bar_settings_network_mode">2G/3G</string>
+ <string name="status_bar_settings_sound_mode">Suoneria</string>
<string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Rotazione automatica schermo"</string>
<string name="status_bar_settings_mute_label" msgid="554682549917429396">"MUTE"</string>
<string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string>
diff --git a/policy/src/com/android/internal/policy/impl/LockScreen.java b/policy/src/com/android/internal/policy/impl/LockScreen.java
index c0ddac1..9c0c0b7b 100755
--- a/policy/src/com/android/internal/policy/impl/LockScreen.java
+++ b/policy/src/com/android/internal/policy/impl/LockScreen.java
@@ -45,7 +45,10 @@ import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.view.ViewParent;
import android.widget.*;
+import android.widget.ImageView.ScaleType;
+import android.widget.LinearLayout.LayoutParams;
import android.util.Log;
import android.media.AudioManager;
import android.provider.MediaStore;
@@ -551,10 +554,29 @@ class LockScreen extends LinearLayout implements KeyguardScreen {
}
} else {
try {
- Context settingsContext = context.createPackageContext("com.android.settings", 0);
- String wallpaperFile = settingsContext.getFilesDir() + "/lockwallpaper";
- Bitmap background = BitmapFactory.decodeFile(wallpaperFile);
- layout.setBackgroundDrawable(new BitmapDrawable(background));
+ layout.getParent();
+ ViewParent parent = layout.getParent();
+ if (parent != null) {
+ //change parent to show background correctly on scale
+ RelativeLayout rlout = new RelativeLayout(context);
+ ((ViewGroup) parent).removeView(layout);
+ layout.setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
+ ((ViewGroup) parent).addView(rlout); // change parent to new layout
+ rlout.addView(layout);
+ // create framelayout and add imageview to set background
+ FrameLayout flayout = new FrameLayout(context);
+ flayout.setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
+ ImageView mLockScreenWallpaperImage = new ImageView(flayout.getContext());
+ mLockScreenWallpaperImage.setScaleType(ScaleType.CENTER_CROP);
+ flayout.addView(mLockScreenWallpaperImage, -1, -1);
+ Context settingsContext = context.createPackageContext("com.android.settings", 0);
+ String wallpaperFile = settingsContext.getFilesDir() + "/lockwallpaper";
+ Bitmap background = BitmapFactory.decodeFile(wallpaperFile);
+ Drawable d = new BitmapDrawable(context.getResources(), background);
+ mLockScreenWallpaperImage.setImageDrawable(d);
+ // add background to lock screen.
+ rlout.addView(flayout,0);
+ }
} catch (NameNotFoundException e) {
}
}
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
index cf06fbb..9094f85 100755
--- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -796,8 +796,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
public void run() {
try {
performHapticFeedbackLw(null, HapticFeedbackConstants.LONG_PRESS, false);
- IActivityManager mgr = ActivityManagerNative.getDefault();
- List<RunningAppProcessInfo> apps = mgr.getRunningAppProcesses();
+ IActivityManager am = ActivityManagerNative.getDefault();
+ List<RunningAppProcessInfo> apps = am.getRunningAppProcesses();
for (RunningAppProcessInfo appInfo : apps) {
int uid = appInfo.uid;
// Make sure it's a foreground user application (not system,
@@ -806,9 +806,9 @@ public class PhoneWindowManager implements WindowManagerPolicy {
&& appInfo.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
Toast.makeText(mContext, R.string.app_killed_message, Toast.LENGTH_SHORT).show();
// Kill the entire pid
- if (appInfo.pkgList!=null && (apps.size() > 0)){
- mgr.forceStopPackage(appInfo.pkgList[0]);
- }else{
+ if (appInfo.pkgList != null && (apps.size() > 0)) {
+ am.forceStopPackage(appInfo.pkgList[0]);
+ } else {
Process.killProcess(appInfo.pid);
}
break;
@@ -1894,7 +1894,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
if (Settings.Secure.getInt(mContext.getContentResolver(),
Settings.Secure.KILL_APP_LONGPRESS_BACK, 0) == 1) {
if (down && repeatCount == 0) {
- mHandler.postDelayed(mBackLongPress, ViewConfiguration.getGlobalActionKeyTimeout());
+ mHandler.postDelayed(mBackLongPress, 2000);
}
}
}
diff --git a/services/java/com/android/server/ProfileManagerService.java b/services/java/com/android/server/ProfileManagerService.java
index c99ba8d..aa769a5 100644
--- a/services/java/com/android/server/ProfileManagerService.java
+++ b/services/java/com/android/server/ProfileManagerService.java
@@ -276,11 +276,24 @@ public class ProfileManagerService extends IProfileManager.Stub {
@Override
public Profile getProfile(ParcelUuid profileParcelUuid) {
UUID profileUuid = profileParcelUuid.getUuid();
- return mProfiles.get(profileUuid);
+ return getProfile(profileUuid);
}
public Profile getProfile(UUID profileUuid) {
- return mProfiles.get(profileUuid);
+ // use primary UUID first
+ if (mProfiles.containsKey(profileUuid)) {
+ return mProfiles.get(profileUuid);
+ }
+ // if no match was found: try secondary UUID
+ for (Profile p : mProfiles.values()) {
+ for (UUID uuid : p.getSecondaryUuids()) {
+ if (profileUuid.equals(uuid)) {
+ return p;
+ }
+ }
+ }
+ // nothing found
+ return null;
}
@Override
diff --git a/telephony/java/com/android/internal/telephony/CallManager.java b/telephony/java/com/android/internal/telephony/CallManager.java
index 52c04aa..1f7b8f1 100644
--- a/telephony/java/com/android/internal/telephony/CallManager.java
+++ b/telephony/java/com/android/internal/telephony/CallManager.java
@@ -398,13 +398,25 @@ public final class CallManager {
// Set additional audio parameters needed for incall audio
String[] audioParams = context.getResources().getStringArray(com.android.internal.R.array.config_telephony_set_audioparameters);
+ String[] aPValues;
+
for (String parameter : audioParams) {
+ aPValues = parameter.split("=");
+
+ if(aPValues[1] == null || aPValues[1].length() == 0) {
+ aPValues[1] = "on";
+ }
+
+ if(aPValues[2] == null || aPValues[2].length() == 0) {
+ aPValues[2] = "off";
+ }
+
if (mode == AudioManager.MODE_IN_CALL) {
- Log.d(LOG_TAG, "setAudioMode(): " + parameter + "=on");
- audioManager.setParameters(parameter + "=on");
+ Log.d(LOG_TAG, "setAudioMode(): " + aPValues[0] + "=" + aPValues[1]);
+ audioManager.setParameters(aPValues[0] + "=" + aPValues[1]);
} else if (mode == AudioManager.MODE_NORMAL) {
- Log.d(LOG_TAG, "setAudioMode(): " + parameter + "=off");
- audioManager.setParameters(parameter + "=off");
+ Log.d(LOG_TAG, "setAudioMode(): " + aPValues[0] + "=" + aPValues[2]);
+ audioManager.setParameters(aPValues[0] + "=" + aPValues[2]);
}
}
diff --git a/telephony/java/com/android/internal/telephony/LGEQualcommUiccRIL.java b/telephony/java/com/android/internal/telephony/LGEQualcommUiccRIL.java
index 2e3216e..98fe360 100644
--- a/telephony/java/com/android/internal/telephony/LGEQualcommUiccRIL.java
+++ b/telephony/java/com/android/internal/telephony/LGEQualcommUiccRIL.java
@@ -83,6 +83,20 @@ public class LGEQualcommUiccRIL extends QualcommSharedRIL implements CommandsInt
@Override
protected Object
+ responseSetupDataCall(Parcel p) {
+ DataCallState dataCall;
+
+ boolean oldRil = needsOldRilFeature("datacall");
+
+ if (!oldRil)
+ return super.responseSetupDataCall(p);
+
+ p.readString();
+ return super.responseSetupDataCall(p);
+
+ }
+ @Override
+ protected Object
responseIccCardStatus(Parcel p) {
IccCardApplication ca;
@@ -163,7 +177,7 @@ public class LGEQualcommUiccRIL extends QualcommSharedRIL implements CommandsInt
response[i] = -1;
noLte = true;
}
- if (i == 8 && !noLte) {
+ if (i == 8 && !(noLte || oldRil)) {
response[i] *= -1;
}
}