diff options
-rw-r--r-- | core/java/android/app/Profile.java | 66 | ||||
-rw-r--r-- | core/java/android/widget/SearchView.java | 3 | ||||
-rw-r--r-- | core/res/res/values-it/strings.xml | 2 | ||||
-rwxr-xr-x | core/res/res/values/config.xml | 5 | ||||
-rwxr-xr-x | core/res/res/values/strings.xml | 2 | ||||
-rw-r--r-- | packages/SystemUI/res/values-it/strings.xml | 5 | ||||
-rwxr-xr-x | policy/src/com/android/internal/policy/impl/LockScreen.java | 30 | ||||
-rwxr-xr-x | policy/src/com/android/internal/policy/impl/PhoneWindowManager.java | 12 | ||||
-rw-r--r-- | services/java/com/android/server/ProfileManagerService.java | 17 | ||||
-rw-r--r-- | telephony/java/com/android/internal/telephony/CallManager.java | 20 | ||||
-rw-r--r-- | telephony/java/com/android/internal/telephony/LGEQualcommUiccRIL.java | 16 |
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; } } |