Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- techmik@kragar ~/android/system/frameworks/base $ git checkout gingerbread
- Switched to branch 'gingerbread'
- techmik@kragar ~/android/system/frameworks/base $ git diff danesh
- diff --git a/core/java/android/bluetooth/BluetoothDeviceProfileState.java b/core
- index bac156b..69710d9 100644
- --- a/core/java/android/bluetooth/BluetoothDeviceProfileState.java
- +++ b/core/java/android/bluetooth/BluetoothDeviceProfileState.java
- @@ -16,12 +16,15 @@
- package android.bluetooth;
- +import android.app.AlarmManager;
- +import android.app.PendingIntent;
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- import android.content.IntentFilter;
- import android.os.Message;
- import android.os.PowerManager;
- +import android.os.SystemClock;
- import android.server.BluetoothA2dpService;
- import android.server.BluetoothService;
- import android.util.Log;
- @@ -85,6 +88,9 @@ public final class BluetoothDeviceProfileState extends Hierarc
- private static final long INIT_INCOMING_REJECT_TIMER = 1000; // 1 sec
- private static final long MAX_INCOMING_REJECT_TIMER = 3600 * 1000 * 4; // 4
- + private static final String ACTION_CONNECT = "android.bluetooth.profile_sta
- + private static final String ACTION_CONNECT_TYPE = "android.bluetooth.profil
- +
- private static final String PREFS_NAME = "ConnectionAccess";
- private BondedDevice mBondedDevice = new BondedDevice();
- @@ -165,6 +171,11 @@ public final class BluetoothDeviceProfileState extends Hier
- Message msg = obtainMessage(CONNECTION_ACCESS_REQUEST_REPLY);
- msg.arg1 = val;
- sendMessage(msg);
- + } else if (action.equals(ACTION_CONNECT)) {
- + Message msg = new Message();
- + msg.what = CONNECT_OTHER_PROFILES;
- + msg.arg1 = intent.getIntExtra(ACTION_CONNECT_TYPE, -1);
- + sendMessage(msg);
- }
- }
- };
- @@ -206,6 +217,7 @@ public final class BluetoothDeviceProfileState extends Hiera
- filter.addAction(BluetoothDevice.ACTION_ACL_CONNECTED);
- filter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED);
- filter.addAction(BluetoothDevice.ACTION_CONNECTION_ACCESS_REPLY);
- + filter.addAction(ACTION_CONNECT);
- mContext.registerReceiver(mBroadcastReceiver, filter);
- @@ -806,6 +818,15 @@ public final class BluetoothDeviceProfileState extends Hier
- mContext.sendBroadcast(intent, BLUETOOTH_ADMIN_PERM);
- }
- + private void scheduleConnect(int type) {
- + AlarmManager mgr = (AlarmManager) mContext.getSystemService(Context.ALA
- + Intent i = new Intent(ACTION_CONNECT);
- + i.putExtra(BluetoothDevice.EXTRA_DEVICE, mDevice);
- + i.putExtra(ACTION_CONNECT_TYPE, type);
- + PendingIntent pi = PendingIntent.getBroadcast(mContext, 0, i, 0);
- + mgr.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealti
- + }
- +
- private int getTrust() {
- String address = mDevice.getAddress();
- if (mIncomingConnections != null) return mIncomingConnections.first;
- @@ -999,10 +1020,8 @@ public final class BluetoothDeviceProfileState extends Hie
- if (mA2dpService.getSinkPriority(mDevice) == BluetoothA2dp.PRIO
- mA2dpService.getSinkPriority(mDevice) ==
- BluetoothA2dp.PRIORITY_AUTO_CONNECT) {
- - Message msg = new Message();
- - msg.what = CONNECT_OTHER_PROFILES;
- - msg.arg1 = CONNECT_A2DP_OUTGOING;
- - sendMessageDelayed(msg, CONNECT_OTHER_PROFILES_DELAY);
- + Log.i(TAG, "Queueing CONNECT_A2DP_OUTGOING");
- + scheduleConnect(CONNECT_A2DP_OUTGOING);
- }
- break;
- case CONNECT_A2DP_INCOMING:
- @@ -1012,10 +1031,8 @@ public final class BluetoothDeviceProfileState extends Hi
- if (mHeadsetService.getPriority(mDevice) == BluetoothHeadset.PR
- || mHeadsetService.getPriority(mDevice) ==
- BluetoothHeadset.PRIORITY_AUTO_CONNECT) {
- - Message msg = new Message();
- - msg.what = CONNECT_OTHER_PROFILES;
- - msg.arg1 = CONNECT_HFP_OUTGOING;
- - sendMessageDelayed(msg, CONNECT_OTHER_PROFILES_DELAY);
- + Log.i(TAG, "Queueing CONNECT_HFP_OUTGOING");
- + scheduleConnect(CONNECT_HFP_OUTGOING);
- }
- break;
- default:
- diff --git a/core/java/android/preference/VolumePreference.java b/core/java/andr
- index 970d520..978637b 100644
- --- a/core/java/android/preference/VolumePreference.java
- +++ b/core/java/android/preference/VolumePreference.java
- @@ -312,7 +312,21 @@ public class VolumePreference extends SeekBarPreference imp
- }
- public void run() {
- - mAudioManager.setStreamVolume(mStreamType, mLastProgress, 0);
- + int newStreamVolume = mLastProgress;
- + if (mStreamType == AudioManager.STREAM_RING) {
- + int ringerMode = mAudioManager.getRingerMode();
- + int vibrateSetting = mAudioManager.getVibrateSetting(AudioManag
- +
- + if (mLastProgress == 0) {
- + if (ringerMode == AudioManager.RINGER_MODE_NORMAL) {
- + mAudioManager.setRingerMode(vibrateSetting==AudioManage
- + }
- + } else if (ringerMode != AudioManager.RINGER_MODE_NORMAL) {
- + mAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL
- + }
- +
- + }
- + mAudioManager.setStreamVolume(mStreamType, newStreamVolume, 0);
- }
- private void sample() {
- diff --git a/core/java/android/provider/Settings.java b/core/java/android/provid
- index 5ad87b0..cfe8e44 100644
- --- a/core/java/android/provider/Settings.java
- +++ b/core/java/android/provider/Settings.java
- @@ -2447,6 +2447,14 @@ public final class Settings {
- public static final String STATUS_BAR_BRIGHTNESS_TOGGLE = "status_bar_b
- /**
- + * Whether to display headset icon on status bar when headset is plugge
- + * 0: headset icon is never displayed
- + * 1: headset icon is displayed when headset is plugged in
- + * @hide
- + */
- + public static final String STATUS_BAR_HEADSET = "status_bar_headset";
- +
- + /**
- * Whether to wake the screen with the trackball. The value is boolean
- * @hide
- */
- @@ -2498,12 +2506,6 @@ public final class Settings {
- public static final String LOCKSCREEN_CUSTOM_ICON_STYLE = "lockscreen_c
- /**
- - * Modify lockscreen widgets layout (time,date,carrier,msg,status)
- - * @hide
- - */
- - public static final String LOCKSCREEN_WIDGETS_LAYOUT = "lockscreen_widg
- -
- - /**
- * When enabled, rotary lockscreen switches app starter and unlock, so
- * @hide
- */
- diff --git a/core/java/android/service/wallpaper/WallpaperService.java b/core/ja
- index 9f362d3..fdd8ec7 100644
- --- a/core/java/android/service/wallpaper/WallpaperService.java
- +++ b/core/java/android/service/wallpaper/WallpaperService.java
- @@ -763,6 +763,7 @@ public abstract class WallpaperService extends Service {
- }
- void detach() {
- + synchronized (mLock) {
- if (mDestroyed) {
- return;
- }
- @@ -804,6 +805,7 @@ public abstract class WallpaperService extends Service {
- mInputChannel = null;
- }
- }
- + }
- }
- }
- @@ -874,13 +876,17 @@ public abstract class WallpaperService extends Service {
- }
- Engine engine = onCreateEngine();
- mEngine = engine;
- - mActiveEngines.add(engine);
- + synchronized (mActiveEngines) {
- + mActiveEngines.add(engine);
- + }
- engine.attach(this);
- return;
- }
- case DO_DETACH: {
- - mActiveEngines.remove(mEngine);
- mEngine.detach();
- + synchronized (mActiveEngines) {
- + mActiveEngines.remove(mEngine);
- + }
- return;
- }
- case DO_SET_DESIRED_SIZE: {
- @@ -958,10 +964,12 @@ public abstract class WallpaperService extends Service {
- @Override
- public void onDestroy() {
- super.onDestroy();
- - for (int i=0; i<mActiveEngines.size(); i++) {
- - mActiveEngines.get(i).detach();
- + synchronized (mActiveEngines) {
- + for (int i=0; i<mActiveEngines.size(); i++) {
- + mActiveEngines.get(i).detach();
- + }
- + mActiveEngines.clear();
- }
- - mActiveEngines.clear();
- }
- /**
- diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java
- index c7a88a1..b6ceea6 100644
- --- a/core/java/com/android/internal/os/BatteryStatsImpl.java
- +++ b/core/java/com/android/internal/os/BatteryStatsImpl.java
- @@ -1184,6 +1184,10 @@ public final class BatteryStatsImpl extends BatteryStats
- mBtHeadset = headset;
- }
- + public BluetoothHeadset getBtHeadset() {
- + return mBtHeadset;
- + }
- +
- int mChangedStates = 0;
- void addHistoryRecordLocked(long curTime) {
- diff --git a/core/java/com/android/internal/widget/RotarySelector.java b/core/ja
- index 7c94871..390cdd9 100644
- --- a/core/java/com/android/internal/widget/RotarySelector.java
- +++ b/core/java/com/android/internal/widget/RotarySelector.java
- @@ -188,6 +188,7 @@ public class RotarySelector extends View {
- private VelocityTracker mVelocityTracker;
- private int mMinimumVelocity;
- private int mMaximumVelocity;
- + private long mMaxAnimationDuration;
- /**
- * The number of dimples we are flinging when we do the "spin" animation.
- @@ -269,6 +270,7 @@ public class RotarySelector extends View {
- final ViewConfiguration configuration = ViewConfiguration.get(mContext)
- mMinimumVelocity = configuration.getScaledMinimumFlingVelocity() * 2;
- mMaximumVelocity = configuration.getScaledMaximumFlingVelocity();
- + mMaxAnimationDuration = 1000;
- int marginBottomDIP = context.getResources().getInteger(R.integer.confi
- mMarginBottom = (int)(marginBottomDIP * mDensity * mDensityScaleFactor)
- @@ -881,6 +883,7 @@ public class RotarySelector extends View {
- mAnimating = true;
- mAnimationStartTime = currentAnimationTimeMillis();
- mAnimationDuration = 1000 * (endX - startX) / pixelsPerSecond;
- + mAnimationDuration = Math.min(mAnimationDuration, mMaxAnimationDuration
- mAnimatingDeltaXStart = startX;
- mAnimatingDeltaXEnd = endX;
- setGrabbedState(NOTHING_GRABBED);
- diff --git a/core/jni/android_hardware_fm_si4709.cpp b/core/jni/android_hardware
- index 502f018..ec6aad1 100644
- --- a/core/jni/android_hardware_fm_si4709.cpp
- +++ b/core/jni/android_hardware_fm_si4709.cpp
- @@ -48,6 +48,8 @@
- #define JAVA_FM_CHSPACE_100_KHZ 1
- #define JAVA_FM_CHSPACE_50_KHZ 2
- +#define JAVA_FM_RX_SEARCHDIR_DOWN 0
- +#define JAVA_FM_RX_SEARCHDIR_UP 1
- #define FM_RDS_STD_RBDS 0
- #define FM_RDS_STD_RDS 1
- @@ -56,11 +58,28 @@
- #define FM_DE_EMP75 0
- #define FM_DE_EMP50 1
- -#define V4L2_CID_PRIVATE_BASE 0x8000000
- -#define V4L2_CID_PRIVATE_TAVARUA_REGION V4L2_CID_PRIVATE_BASE + 7
- -#define V4L2_CID_PRIVATE_TAVARUA_EMPHASIS V4L2_CID_PRIVATE_BASE + 12
- -#define V4L2_CID_PRIVATE_TAVARUA_RDS_STD V4L2_CID_PRIVATE_BASE + 13
- -#define V4L2_CID_PRIVATE_TAVARUA_SPACING V4L2_CID_PRIVATE_BASE + 14
- +#define V4L2_CID_PRIVATE_BASE 0x8000000
- +#define V4L2_CID_PRIVATE_TAVARUA_SRCHMODE V4L2_CID_PRIVATE_BASE + 1
- +#define V4L2_CID_PRIVATE_TAVARUA_SCANDWELL V4L2_CID_PRIVATE_BASE + 2
- +#define V4L2_CID_PRIVATE_TAVARUA_SRCHON V4L2_CID_PRIVATE_BASE + 3
- +#define V4L2_CID_PRIVATE_TAVARUA_STATE V4L2_CID_PRIVATE_BASE + 4
- +#define V4L2_CID_PRIVATE_TAVARUA_TRANSMIT_MODE V4L2_CID_PRIVATE_BASE + 5
- +#define V4L2_CID_PRIVATE_TAVARUA_RDSGROUP_MASK V4L2_CID_PRIVATE_BASE + 6
- +#define V4L2_CID_PRIVATE_TAVARUA_REGION V4L2_CID_PRIVATE_BASE + 7
- +#define V4L2_CID_PRIVATE_TAVARUA_SIGNAL_TH V4L2_CID_PRIVATE_BASE + 8
- +#define V4L2_CID_PRIVATE_TAVARUA_SRCH_PTY V4L2_CID_PRIVATE_BASE + 9
- +#define V4L2_CID_PRIVATE_TAVARUA_SRCH_PI V4L2_CID_PRIVATE_BASE + 10
- +#define V4L2_CID_PRIVATE_TAVARUA_SRCH_CNT V4L2_CID_PRIVATE_BASE + 11
- +#define V4L2_CID_PRIVATE_TAVARUA_EMPHASIS V4L2_CID_PRIVATE_BASE + 12
- +#define V4L2_CID_PRIVATE_TAVARUA_RDS_STD V4L2_CID_PRIVATE_BASE + 13
- +#define V4L2_CID_PRIVATE_TAVARUA_SPACING V4L2_CID_PRIVATE_BASE + 14
- +#define V4L2_CID_PRIVATE_TAVARUA_RDSON V4L2_CID_PRIVATE_BASE + 15
- +#define V4L2_CID_PRIVATE_TAVARUA_RDSGROUP_PROC V4L2_CID_PRIVATE_BASE + 16
- +#define V4L2_CID_PRIVATE_TAVARUA_LP_MODE V4L2_CID_PRIVATE_BASE + 17
- +
- +#define V4L2_CTRL_CLASS_USER 0x980000
- +#define V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900)
- +#define V4L2_CID_AUDIO_MUTE V4L2_CID_BASE + 9
- struct dev_state_t
- {
- @@ -279,7 +298,10 @@ int radioOff(int fd)
- int setFreq(int freq, int fd)
- {
- - LOGV("%s", __func__);
- + LOGV("%s %d", __func__, freq);
- +
- + //The driver expects the frequency to be in a different unit
- + freq = freq / 10;
- int ret;
- @@ -332,7 +354,7 @@ int setFreqSpacing(int spacing, int fd)
- int setMute(int mute, int fd)
- {
- - LOGV("%s", __func__);
- + LOGV("%s %d", __func__, mute);
- int ret;
- @@ -412,6 +434,30 @@ static jint android_hardware_fmradio_FmReceiverJNI_setContr
- LOGV("%s : fd = %d id = %d value = %d", __func__, fd, id, value);
- switch(id) {
- + case V4L2_CID_AUDIO_MUTE:
- + if (value == 3) {
- + return setMute(1, fd);
- + }
- + else if (value == 4) {
- + return setMute(0, fd);
- + }
- + else {
- + return FM_JNI_FAILURE;
- + }
- + break;
- +
- + case V4L2_CID_PRIVATE_TAVARUA_STATE:
- + if (value == 1) {
- + return radioOn(fd);
- + }
- + else if (value == 2) {
- + return radioOff(fd);
- + }
- + else {
- + return FM_JNI_FAILURE;
- + }
- + break;
- +
- case V4L2_CID_PRIVATE_TAVARUA_SPACING:
- return setFreqSpacing(value, fd);
- break;
- @@ -425,24 +471,6 @@ static jint android_hardware_fmradio_FmReceiverJNI_setContr
- break;
- default:
- - switch (value) {
- - case 1:
- - return radioOn(fd);
- - break;
- -
- - case 2:
- - return radioOff(fd);
- - break;
- -
- - case 3:
- - return setMute(1, fd);
- - break;
- -
- - case 4:
- - return setMute(0, fd);
- - break;
- -
- - }
- return FM_JNI_SUCCESS;
- }
- }
- @@ -464,6 +492,9 @@ static jint android_hardware_fmradio_FmReceiverJNI_getFreqNa
- return FM_JNI_FAILURE;
- }
- + //convert the frquency to khz units for the application
- + freq = freq * 10;
- +
- return freq;
- }
- @@ -504,7 +535,20 @@ static jint android_hardware_fmradio_FmReceiverJNI_getContr
- static jint android_hardware_fmradio_FmReceiverJNI_startSearchNative
- (JNIEnv * env, jobject thiz, jint fd, jint dir)
- {
- - LOGD("startSearchNative() %d", dir);
- + int freq;
- + int retval;
- + if (dir == JAVA_FM_RX_SEARCHDIR_DOWN) {
- + retval = ioctl(fd, Si4709_IOC_SEEK_DOWN, &freq);
- + }
- + else {
- + retval = ioctl(fd, Si4709_IOC_SEEK_UP, &freq);
- + }
- +
- + if (retval != 0) {
- + LOGE("Search failed");
- + }
- +
- + LOGD("startSearchNative() %d freq=%d", retval, freq);
- return FM_JNI_SUCCESS;
- }
- @@ -513,6 +557,7 @@ static jint android_hardware_fmradio_FmReceiverJNI_cancelSea
- (JNIEnv * env, jobject thiz, jint fd)
- {
- LOGD("cancelSearchNative()");
- + ioctl(fd, Si4709_IOC_SEEK_CANCEL);
- return FM_JNI_SUCCESS;
- }
- diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings
- index 6a56879..e31a6ab 100644
- --- a/core/res/res/values-de/strings.xml
- +++ b/core/res/res/values-de/strings.xml
- @@ -21,12 +21,12 @@
- <resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="byteShort" msgid="8340973892742019101">"B"</string>
- - <string name="kilobyteShort" msgid="5973789783504771878">"KB"</string>
- + <string name="kilobyteShort" msgid="5973789783504771878">"kB"</string>
- <string name="megabyteShort" msgid="6355851576770428922">"MB"</string>
- <string name="gigabyteShort" msgid="3259882455212193214">"GB"</string>
- <string name="terabyteShort" msgid="231613018159186962">"TB"</string>
- <string name="petabyteShort" msgid="5637816680144990219">"PB"</string>
- - <string name="fileSizeSuffix" msgid="7670819340156489359">"<xliff:g id="NUM
- + <string name="fileSizeSuffix" msgid="7670819340156489359">"<xliff:g id="NUM
- <string name="untitled" msgid="6071602020171759109">"<Unbenannt>"</st
- <string name="ellipsis" msgid="7899829516048813237">"…"</string>
- <string name="emptyPhoneNumber" msgid="7694063042079676517">"(Keine Telefon
- @@ -47,7 +47,7 @@
- <string name="profileGroupPhone">Telefon</string>
- <string name="profileGroupCalendar">Kalender</string>
- <string name="profileGroupGmail">Gmail</string>
- - <string name="profileGroupEmail">Email</string>
- + <string name="profileGroupEmail">E-Mail</string>
- <string name="profileGroupSMS">SMS</string>
- <string name="wildcardProfile">Anderes</string>
- @@ -61,9 +61,9 @@
- <string name="mmiComplete" msgid="8232527495411698359">"MMI abgeschlossen."
- <string name="badPin" msgid="5085454289896032547">"Die von Ihnen eingegeben
- <string name="badPuk" msgid="5702522162746042460">"Der von Ihnen eingegeben
- - <string name="mismatchPin" msgid="3695902225843339274">"Die von Ihnen einge
- - <string name="invalidPin" msgid="3850018445187475377">"Geben Sie eine PIN e
- - <string name="needPuk" msgid="919668385956251611">"Ihre SIM-Karte ist mit e
- + <string name="mismatchPin" msgid="3695902225843339274">"Die von Ihnen einge
- + <string name="invalidPin" msgid="3850018445187475377">"Geben Sie eine PIN e
- + <string name="needPuk" msgid="919668385956251611">"Ihre SIM-Karte ist mit e
- <string name="needPuk2" msgid="4526033371987193070">"Geben Sie zum Entsperr
- <string name="ClipMmi" msgid="6952821216480289285">"Anrufer-ID für eingehen
- <string name="ClirMmi" msgid="7784673673446833091">"Anrufer-ID für ausgehen
- @@ -106,12 +106,12 @@
- <string name="roamingText2" msgid="8969929049081268115">"Roaming-Anzeige bl
- <string name="roamingText3" msgid="5148255027043943317">"Außerhalb der Netz
- <string name="roamingText4" msgid="8808456682550796530">"Außerhalb des Gebä
- - <string name="roamingText5" msgid="7604063252850354350">"Roaming - Bevorzug
- - <string name="roamingText6" msgid="2059440825782871513">"Roaming - Verfügba
- - <string name="roamingText7" msgid="7112078724097233605">"Roaming - Allianzp
- - <string name="roamingText8" msgid="5989569778604089291">"Roaming - Premiump
- - <string name="roamingText9" msgid="7969296811355152491">"Roaming - Volle Di
- - <string name="roamingText10" msgid="3992906999815316417">"Roaming - Partiel
- + <string name="roamingText5" msgid="7604063252850354350">"Roaming – B
- + <string name="roamingText6" msgid="2059440825782871513">"Roaming – V
- + <string name="roamingText7" msgid="7112078724097233605">"Roaming – A
- + <string name="roamingText8" msgid="5989569778604089291">"Roaming – P
- + <string name="roamingText9" msgid="7969296811355152491">"Roaming – V
- + <string name="roamingText10" msgid="3992906999815316417">"Roaming –
- <string name="roamingText11" msgid="4154476854426920970">"Roaming-Banner ei
- <string name="roamingText12" msgid="1189071119992726320">"Roaming-Banner au
- <string name="roamingTextSearching" msgid="8360141885972279963">"Suche nach
- @@ -150,13 +150,13 @@
- <string name="turn_off_radio" msgid="8198784949987062346">"Funk ausschalten
- <string name="screen_lock" msgid="799094655496098153">"Display-Sperre"</str
- <string name="power_off" msgid="4266614107412865048">"Ausschalten"</string>
- - <string name="shutdown_progress" msgid="2281079257329981203">"Wird herunter
- + <string name="shutdown_progress" msgid="2281079257329981203">"Wird herunter
- <string name="shutdown_confirm" msgid="649792175242821353">"Telefon wird he
- <!-- Button to reboot the phone, within the Phone Options dialog -->
- <string name="reboot_system">Neu starten</string>
- <!-- Reboot Progress Dialog. This is shown if the user chooses to reboot th
- - <string name="reboot_progress">Neu starten...</string>
- + <string name="reboot_progress">Neu starten…</string>
- <!-- Reboot Confirmation Dialog. When the user chooses to reboot the phone
- <string name="reboot_confirm">Ihr Telefon wird neu gestartet.</string>
- @@ -239,13 +239,13 @@
- <string name="permlab_setDebugApp" msgid="4339730312925176742">"Fehlerbesei
- <string name="permdesc_setDebugApp" msgid="5584310661711990702">"Ermöglicht
- <string name="permlab_changeConfiguration" msgid="8214475779521218295">"UI-
- - <string name="permdesc_changeConfiguration" msgid="3465121501528064399">"Er
- + <string name="permdesc_changeConfiguration" msgid="3465121501528064399">"Er
- <string name="permlab_enableCarMode" msgid="5684504058192921098">"Automodus
- - <string name="permdesc_enableCarMode" msgid="5673461159384850628">"Ermöglic
- + <string name="permdesc_enableCarMode" msgid="5673461159384850628">"Ermöglic
- <string name="permlab_killBackgroundProcesses" msgid="8373714752793061963">
- <string name="permdesc_killBackgroundProcesses" msgid="2908829602869383753"
- <string name="permlab_forceStopPackages" msgid="1447830113260156236">"Beend
- - <string name="permdesc_forceStopPackages" msgid="7263036616161367402">"Ermö
- + <string name="permdesc_forceStopPackages" msgid="7263036616161367402">"Ermö
- <string name="permlab_forceBack" msgid="1804196839880393631">"Schließen von
- <string name="permdesc_forceBack" msgid="6534109744159919013">"Ermöglicht e
- <string name="permlab_dump" msgid="1681799862438954752">"Systeminternen Sta
- @@ -253,7 +253,7 @@
- <string name="permlab_shutdown" msgid="7185747824038909016">"partielles Her
- <string name="permdesc_shutdown" msgid="7046500838746291775">"Versetzt den
- <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"Anwendu
- - <string name="permdesc_stopAppSwitches" msgid="3857886086919033794">"Hinder
- + <string name="permdesc_stopAppSwitches" msgid="3857886086919033794">"Hinder
- <string name="permlab_runSetActivityWatcher" msgid="7811586187574696296">"S
- <string name="permdesc_runSetActivityWatcher" msgid="3228701938345388092">"
- <string name="permlab_broadcastPackageRemoved" msgid="2576333434893532475">
- @@ -261,11 +261,11 @@
- <string name="permlab_broadcastSmsReceived" msgid="5689095009030336593">"pe
- <string name="permdesc_broadcastSmsReceived" msgid="9122419277306740155">"E
- <string name="permlab_broadcastWapPush" msgid="3145347413028582371">"von WA
- - <string name="permdesc_broadcastWapPush" msgid="3955303669461378091">"Ermög
- + <string name="permdesc_broadcastWapPush" msgid="3955303669461378091">"Ermög
- <string name="permlab_setProcessLimit" msgid="2451873664363662666">"Anzahl
- <string name="permdesc_setProcessLimit" msgid="7824786028557379539">"Ermögl
- <string name="permlab_setAlwaysFinish" msgid="5342837862439543783">"alle An
- - <string name="permdesc_setAlwaysFinish" msgid="8773936403987091620">"Überlä
- + <string name="permdesc_setAlwaysFinish" msgid="8773936403987091620">"Überlä
- <string name="permlab_batteryStats" msgid="7863923071360031652">"Akku-Daten
- <string name="permdesc_batteryStats" msgid="5847319823772230560">"Ermöglich
- <string name="permlab_backup" msgid="470013022865453920">"Systemsicherung u
- @@ -275,31 +275,31 @@
- <string name="permlab_systemAlertWindow" msgid="3372321942941168324">"Warnu
- <string name="permdesc_systemAlertWindow" msgid="5109622689323490558">"Ermö
- <string name="permlab_setAnimationScale" msgid="2805103241153907174">"Allge
- - <string name="permdesc_setAnimationScale" msgid="7181522138912391988">"Ermö
- + <string name="permdesc_setAnimationScale" msgid="7181522138912391988">"Ermö
- <string name="permlab_manageAppTokens" msgid="17124341698093865">"Anwendung
- <string name="permdesc_manageAppTokens" msgid="977127907524195988">"Ermögli
- <string name="permlab_injectEvents" msgid="1378746584023586600">"Tasten und
- - <string name="permdesc_injectEvents" msgid="3946098050410874715">"Ermöglich
- + <string name="permdesc_injectEvents" msgid="3946098050410874715">"Ermöglich
- <string name="permlab_readInputState" msgid="469428900041249234">"Tastature
- <string name="permdesc_readInputState" msgid="5132879321450325445">"Ermögli
- <string name="permlab_bindInputMethod" msgid="3360064620230515776">"An eine
- <string name="permdesc_bindInputMethod" msgid="3734838321027317228">"Ermögl
- - <string name="permlab_bindWallpaper" msgid="8716400279937856462">"An einen
- - <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Ermöglic
- + <string name="permlab_bindWallpaper" msgid="8716400279937856462">"An ein Hi
- + <string name="permdesc_bindWallpaper" msgid="5287754520361915347">"Ermöglic
- <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"Interak
- <string name="permdesc_bindDeviceAdmin" msgid="8714424333082216979">"Ermögl
- <string name="permlab_setOrientation" msgid="3365947717163866844">"Bildschi
- <string name="permdesc_setOrientation" msgid="6335814461615851863">"Ermögli
- <string name="permlab_signalPersistentProcesses" msgid="4255467255488653854
- - <string name="permdesc_signalPersistentProcesses" msgid="356553046321501528
- + <string name="permdesc_signalPersistentProcesses" msgid="356553046321501528
- <string name="permlab_persistentActivity" msgid="8659652042401085862">"Anwe
- <string name="permdesc_persistentActivity" msgid="5037199778265006008">"Erm
- <string name="permlab_deletePackages" msgid="3343439331576348805">"Anwendun
- <string name="permdesc_deletePackages" msgid="3634943677518723314">"Ermögli
- <string name="permlab_clearAppUserData" msgid="2192134353540277878">"Daten
- - <string name="permdesc_clearAppUserData" msgid="7546345080434325456">"Ermög
- + <string name="permdesc_clearAppUserData" msgid="7546345080434325456">"Ermög
- <string name="permlab_deleteCacheFiles" msgid="1518556602634276725">"Caches
- - <string name="permdesc_deleteCacheFiles" msgid="2283074077168165971">"Ermög
- + <string name="permdesc_deleteCacheFiles" msgid="2283074077168165971">"Ermög
- <string name="permlab_getPackageSize" msgid="4799785352306641460">"Speicher
- <string name="permdesc_getPackageSize" msgid="5557253039670753437">"Ermögli
- <string name="permlab_installPackages" msgid="335800214119051089">"Anwendun
- @@ -307,11 +307,11 @@
- <string name="permlab_clearAppCache" msgid="4747698311163766540">"Alle Cach
- <string name="permdesc_clearAppCache" msgid="7740465694193671402">"Ermöglic
- <string name="permlab_movePackage" msgid="728454979946503926">"Anwendungsre
- - <string name="permdesc_movePackage" msgid="6323049291923925277">"Ermöglicht
- + <string name="permdesc_movePackage" msgid="6323049291923925277">"Ermöglicht
- <string name="permlab_readLogs" msgid="6615778543198967614">"Lesen vertraul
- <string name="permdesc_readLogs" msgid="8896449437464867766">"Ermöglicht ei
- <string name="permlab_diagnostic" msgid="8076743953908000342">"Lese-/Schrei
- - <string name="permdesc_diagnostic" msgid="3121238373951637049">"Ermöglicht
- + <string name="permdesc_diagnostic" msgid="3121238373951637049">"Ermöglicht
- <string name="permlab_changeComponentState" msgid="79425198834329406">"Anwe
- <string name="permdesc_changeComponentState" msgid="4569107043246700630">"E
- <string name="permlab_setPreferredApplications" msgid="3393305202145172005"
- @@ -341,45 +341,45 @@
- <string name="permlab_installLocationProvider" msgid="6578101199825193873">
- <string name="permdesc_installLocationProvider" msgid="5449175116732002106"
- <string name="permlab_accessFineLocation" msgid="8116127007541369477">"gena
- - <string name="permdesc_accessFineLocation" msgid="7411213317434337331">"Zug
- + <string name="permdesc_accessFineLocation" msgid="7411213317434337331">"Zug
- <string name="permlab_accessCoarseLocation" msgid="4642255009181975828">"un
- - <string name="permdesc_accessCoarseLocation" msgid="8235655958070862293">"G
- + <string name="permdesc_accessCoarseLocation" msgid="8235655958070862293">"G
- <string name="permlab_accessSurfaceFlinger" msgid="2363969641792388947">"Au
- - <string name="permdesc_accessSurfaceFlinger" msgid="6805241830020733025">"E
- - <string name="permlab_readFrameBuffer" msgid="6690504248178498136">"Frame-P
- - <string name="permdesc_readFrameBuffer" msgid="7530020370469942528">"Ermögl
- + <string name="permdesc_accessSurfaceFlinger" msgid="6805241830020733025">"E
- + <string name="permlab_readFrameBuffer" msgid="6690504248178498136">"Framebu
- + <string name="permdesc_readFrameBuffer" msgid="7530020370469942528">"Ermögl
- <string name="permlab_modifyAudioSettings" msgid="6095859937069146086">"Aud
- - <string name="permdesc_modifyAudioSettings" msgid="5793461287365991922">"Er
- + <string name="permdesc_modifyAudioSettings" msgid="5793461287365991922">"Er
- <string name="permlab_recordAudio" msgid="3876049771427466323">"Audio aufne
- - <string name="permdesc_recordAudio" msgid="6493228261176552356">"Ermöglicht
- + <string name="permdesc_recordAudio" msgid="6493228261176552356">"Ermöglicht
- <string name="permlab_camera" msgid="3616391919559751192">"Bilder und Video
- <string name="permdesc_camera" msgid="6004878235852154239">"Ermöglicht der
- <string name="permlab_brick" msgid="8337817093326370537">"Telefon dauerhaft
- <string name="permdesc_brick" msgid="5569526552607599221">"Ermöglicht der A
- <string name="permlab_reboot" msgid="2898560872462638242">"Neustart des Tel
- - <string name="permdesc_reboot" msgid="7914933292815491782">"Ermöglicht der
- + <string name="permdesc_reboot" msgid="7914933292815491782">"Ermöglicht der
- <string name="permlab_mount_unmount_filesystems" msgid="1761023272170956541
- - <string name="permdesc_mount_unmount_filesystems" msgid="625326379253585976
- + <string name="permdesc_mount_unmount_filesystems" msgid="625326379253585976
- <string name="permlab_mount_format_filesystems" msgid="5523285143576718981"
- - <string name="permdesc_mount_format_filesystems" msgid="574060044906047386"
- + <string name="permdesc_mount_format_filesystems" msgid="574060044906047386"
- <string name="permlab_asec_access" msgid="3411338632002193846">"Information
- <string name="permdesc_asec_access" msgid="8820326551687285439">"Ermöglicht
- <string name="permlab_asec_create" msgid="6414757234789336327">"Internen Sp
- <string name="permdesc_asec_create" msgid="2621346764995731250">"Ermöglicht
- <string name="permlab_asec_destroy" msgid="526928328301618022">"Internen Sp
- - <string name="permdesc_asec_destroy" msgid="2746706889208066256">"Ermöglich
- + <string name="permdesc_asec_destroy" msgid="2746706889208066256">"Ermöglich
- <string name="permlab_asec_mount_unmount" msgid="2456287623689029744">"Inte
- <string name="permdesc_asec_mount_unmount" msgid="5934375590189368200">"Erm
- <string name="permlab_asec_rename" msgid="7496633954080472417">"Internen Sp
- - <string name="permdesc_asec_rename" msgid="2152829985238876790">"Ermöglicht
- + <string name="permdesc_asec_rename" msgid="2152829985238876790">"Ermöglicht
- <string name="permlab_vibrate" msgid="7768356019980849603">"Vibrationsalarm
- - <string name="permdesc_vibrate" msgid="2886677177257789187">"Ermöglicht der
- + <string name="permdesc_vibrate" msgid="2886677177257789187">"Ermöglicht der
- <string name="permlab_flashlight" msgid="2155920810121984215">"Lichtanzeige
- - <string name="permdesc_flashlight" msgid="6433045942283802309">"Ermöglicht
- + <string name="permdesc_flashlight" msgid="6433045942283802309">"Ermöglicht
- <string name="permlab_manageUsb" msgid="1113453430645402723">"Einstellungen
- - <string name="permdesc_manageUsb" msgid="6148489202092166164">"Ermöglicht d
- + <string name="permdesc_manageUsb" msgid="6148489202092166164">"Ermöglicht d
- <string name="permlab_hardware_test" msgid="4148290860400659146">"Hardware
- - <string name="permdesc_hardware_test" msgid="3668894686500081699">"Ermöglic
- + <string name="permdesc_hardware_test" msgid="3668894686500081699">"Ermöglic
- <string name="permlab_callPhone" msgid="3925836347681847954">"Telefonnummer
- <string name="permdesc_callPhone" msgid="3369867353692722456">"Ermöglicht d
- <string name="permlab_callPrivileged" msgid="4198349211108497879">"Alle Tel
- @@ -395,85 +395,85 @@
- <string name="permlab_modifyPhoneState" msgid="8423923777659292228">"Telefo
- <string name="permdesc_modifyPhoneState" msgid="3302284561346956587">"Ermög
- <string name="permlab_readPhoneState" msgid="2326172951448691631">"Telefons
- - <string name="permdesc_readPhoneState" msgid="188877305147626781">"Ermöglic
- + <string name="permdesc_readPhoneState" msgid="188877305147626781">"Ermöglic
- <string name="permlab_wakeLock" msgid="573480187941496130">"Standby-Modus d
- - <string name="permdesc_wakeLock" msgid="7584036471227467099">"Ermöglicht ei
- + <string name="permdesc_wakeLock" msgid="7584036471227467099">"Ermöglicht ei
- <string name="permlab_devicePower" msgid="4928622470980943206">"Gerät ein-
- - <string name="permdesc_devicePower" msgid="4577331933252444818">"Ermöglicht
- + <string name="permdesc_devicePower" msgid="4577331933252444818">"Ermöglicht
- <string name="permlab_factoryTest" msgid="3715225492696416187">"In Werkstes
- <string name="permdesc_factoryTest" msgid="8136644990319244802">"Führt eine
- - <string name="permlab_setWallpaper" msgid="6627192333373465143">"Hintergrun
- - <string name="permdesc_setWallpaper" msgid="6417041752170585837">"Ermöglich
- - <string name="permlab_setWallpaperHints" msgid="3600721069353106851">"Größe
- - <string name="permdesc_setWallpaperHints" msgid="6019479164008079626">"Ermö
- + <string name="permlab_setWallpaper" msgid="6627192333373465143">"Hintergrun
- + <string name="permdesc_setWallpaper" msgid="6417041752170585837">"Ermöglich
- + <string name="permlab_setWallpaperHints" msgid="3600721069353106851">"Größe
- + <string name="permdesc_setWallpaperHints" msgid="6019479164008079626">"Ermö
- <string name="permlab_masterClear" msgid="2315750423139697397">"System auf
- <string name="permdesc_masterClear" msgid="5033465107545174514">"Ermöglicht
- <string name="permlab_setTime" msgid="2021614829591775646">"Zeit einstellen
- - <string name="permdesc_setTime" msgid="667294309287080045">"Ermöglicht eine
- + <string name="permdesc_setTime" msgid="667294309287080045">"Ermöglicht eine
- <string name="permlab_setTimeZone" msgid="2945079801013077340">"Zeitzone fe
- - <string name="permdesc_setTimeZone" msgid="1902540227418179364">"Ermöglicht
- + <string name="permdesc_setTimeZone" msgid="1902540227418179364">"Ermöglicht
- <string name="permlab_accountManagerService" msgid="4829262349691386986">"A
- - <string name="permdesc_accountManagerService" msgid="6056903274106394752">"
- + <string name="permdesc_accountManagerService" msgid="6056903274106394752">"
- <string name="permlab_getAccounts" msgid="4549918644233460103">"bekannte Ko
- - <string name="permdesc_getAccounts" msgid="6839262446413155394">"Ermöglicht
- + <string name="permdesc_getAccounts" msgid="6839262446413155394">"Ermöglicht
- <string name="permlab_authenticateAccounts" msgid="3940505577982882450">"Al
- - <string name="permdesc_authenticateAccounts" msgid="4006839406474208874">"E
- + <string name="permdesc_authenticateAccounts" msgid="4006839406474208874">"E
- <string name="permlab_manageAccounts" msgid="4440380488312204365">"Kontolis
- - <string name="permdesc_manageAccounts" msgid="8804114016661104517">"Ermögli
- + <string name="permdesc_manageAccounts" msgid="8804114016661104517">"Ermögli
- <string name="permlab_useCredentials" msgid="6401886092818819856">"Authenti
- - <string name="permdesc_useCredentials" msgid="7416570544619546974">"Ermögli
- + <string name="permdesc_useCredentials" msgid="7416570544619546974">"Ermögli
- <string name="permlab_accessNetworkState" msgid="6865575199464405769">"Netz
- - <string name="permdesc_accessNetworkState" msgid="558721128707712766">"Ermö
- + <string name="permdesc_accessNetworkState" msgid="558721128707712766">"Ermö
- <string name="permlab_createNetworkSockets" msgid="9121633680349549585">"un
- - <string name="permdesc_createNetworkSockets" msgid="4593339106921772192">"E
- - <string name="permlab_writeApnSettings" msgid="7823599210086622545">"Einste
- - <string name="permdesc_writeApnSettings" msgid="7443433457842966680">"Ermög
- + <string name="permdesc_createNetworkSockets" msgid="4593339106921772192">"E
- + <string name="permlab_writeApnSettings" msgid="7823599210086622545">"Einste
- + <string name="permdesc_writeApnSettings" msgid="7443433457842966680">"Ermög
- <string name="permlab_changeNetworkState" msgid="958884291454327309">"Netzw
- - <string name="permdesc_changeNetworkState" msgid="4199958910396387075">"Erm
- + <string name="permdesc_changeNetworkState" msgid="4199958910396387075">"Erm
- <string name="permlab_changeTetherState" msgid="2702121155761140799">"Tethe
- - <string name="permdesc_changeTetherState" msgid="8905815579146349568">"Ermö
- + <string name="permdesc_changeTetherState" msgid="8905815579146349568">"Ermö
- <string name="permlab_changeBackgroundDataSetting" msgid="14006660126716487
- - <string name="permdesc_changeBackgroundDataSetting" msgid="1001482853266638
- + <string name="permdesc_changeBackgroundDataSetting" msgid="1001482853266638
- <string name="permlab_accessWifiState" msgid="8100926650211034400">"WLAN-St
- - <string name="permdesc_accessWifiState" msgid="485796529139236346">"Ermögli
- + <string name="permdesc_accessWifiState" msgid="485796529139236346">"Ermögli
- <string name="permlab_changeWifiState" msgid="7280632711057112137">"WLAN-St
- - <string name="permdesc_changeWifiState" msgid="2950383153656873267">"Ermögl
- + <string name="permdesc_changeWifiState" msgid="2950383153656873267">"Ermögl
- <string name="permlab_changeWifiMulticastState" msgid="1368253871483254784"
- <string name="permdesc_changeWifiMulticastState" msgid="8199464507656067553
- <string name="permlab_accessWimaxState" msgid="2800410363171809280">"WiMAX-
- - <string name="permdesc_accessWimaxState" msgid="8298035866227524023">"Ermög
- + <string name="permdesc_accessWimaxState" msgid="8298035866227524023">"Ermög
- <string name="permlab_changeWimaxState" msgid="340465839241528618">"WiMAX-S
- - <string name="permdesc_changeWimaxState" msgid="474918005058989421">"Ermögl
- + <string name="permdesc_changeWimaxState" msgid="474918005058989421">"Ermögl
- <string name="permlab_bluetoothAdmin" msgid="1092209628459341292">"Bluetoot
- - <string name="permdesc_bluetoothAdmin" msgid="7256289774667054555">"Ermögli
- + <string name="permdesc_bluetoothAdmin" msgid="7256289774667054555">"Ermögli
- <string name="permlab_bluetooth" msgid="8361038707857018732">"Bluetooth-Ver
- - <string name="permdesc_bluetooth" msgid="762515380679392945">"Ermöglicht ei
- + <string name="permdesc_bluetooth" msgid="762515380679392945">"Ermöglicht ei
- <string name="permlab_nfc" msgid="4423351274757876953">"Nahfeldkommunikatio
- - <string name="permdesc_nfc" msgid="9171401851954407226">"Ermöglicht einer A
- + <string name="permdesc_nfc" msgid="9171401851954407226">"Ermöglicht einer A
- <string name="permlab_disableKeyguard" msgid="4977406164311535092">"Tastens
- - <string name="permdesc_disableKeyguard" msgid="3189763479326302017">"Ermögl
- + <string name="permdesc_disableKeyguard" msgid="3189763479326302017">"Ermögl
- <string name="permlab_readSyncSettings" msgid="6201810008230503052">"Synchr
- - <string name="permdesc_readSyncSettings" msgid="5315925706353341823">"Ermög
- + <string name="permdesc_readSyncSettings" msgid="5315925706353341823">"Ermög
- <string name="permlab_writeSyncSettings" msgid="6297138566442486462">"Synch
- - <string name="permdesc_writeSyncSettings" msgid="2498201614431360044">"Ermö
- + <string name="permdesc_writeSyncSettings" msgid="2498201614431360044">"Ermö
- <string name="permlab_readSyncStats" msgid="7396577451360202448">"Synchroni
- - <string name="permdesc_readSyncStats" msgid="7511448343374465000">"Ermöglic
- + <string name="permdesc_readSyncStats" msgid="7511448343374465000">"Ermöglic
- <string name="permlab_subscribedFeedsRead" msgid="4756609637053353318">"abo
- - <string name="permdesc_subscribedFeedsRead" msgid="3622200625634207660">"Er
- + <string name="permdesc_subscribedFeedsRead" msgid="3622200625634207660">"Er
- <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"ab
- <string name="permdesc_subscribedFeedsWrite" msgid="8121607099326533878">"E
- <string name="permlab_readDictionary" msgid="432535716804748781">"nutzerdef
- - <string name="permdesc_readDictionary" msgid="1082972603576360690">"Ermögli
- + <string name="permdesc_readDictionary" msgid="1082972603576360690">"Ermögli
- <string name="permlab_writeDictionary" msgid="6703109511836343341">"in nutz
- - <string name="permdesc_writeDictionary" msgid="2241256206524082880">"Ermögl
- + <string name="permdesc_writeDictionary" msgid="2241256206524082880">"Ermögl
- <string name="permlab_sdcardWrite" product="nosdcard" msgid="85430876310764
- <string name="permlab_sdcardWrite" product="default" msgid="807940375900177
- - <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785
- - <string name="permdesc_sdcardWrite" product="default" msgid="66439632049764
- + <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785
- + <string name="permdesc_sdcardWrite" product="default" msgid="66439632049764
- <string name="permlab_cache_filesystem" msgid="5656487264819669824">"Zugrif
- <string name="permdesc_cache_filesystem" msgid="1624734528435659906">"Gewäh
- <string name="permlab_use_sip" msgid="5986952362795870502">"Internetanrufe
- - <string name="permdesc_use_sip" msgid="6320376185606661843">"Ermöglicht ein
- + <string name="permdesc_use_sip" msgid="6320376185606661843">"Ermöglicht ein
- <string name="policylab_limitPassword" msgid="4497420728857585791">"Passwor
- <string name="policydesc_limitPassword" msgid="9083400080861728056">"Zuläss
- <string name="policylab_watchLogin" msgid="914130646942199503">"Versuche zu
- @@ -586,7 +586,7 @@
- <string name="keyguard_password_enter_pin_code" msgid="3731488827218876115"
- <string name="keyguard_password_enter_password_code" msgid="913815834481321
- <string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718"
- - <string name="keyguard_label_text" msgid="861796461028298424">"Drücken Sie
- + <string name="keyguard_label_text" msgid="861796461028298424">"Drücken Sie
- <string name="emergency_call_dialog_number_for_display" msgid="696192103195
- <string name="lockscreen_carrier_default" msgid="8812714795156374435">"(kei
- <string name="lockscreen_screen_locked" msgid="7288443074806832904">"Displa
- @@ -597,20 +597,20 @@
- <string name="lockscreen_return_to_call" msgid="5244259785500040021">"Zurüc
- <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Korr
- <string name="lockscreen_pattern_wrong" msgid="4817583279053112312">"Bitte
- - <string name="lockscreen_plugged_in" msgid="613343852842944435">"Wird gelad
- - <string name="lockscreen_discharging">Entladen (<xliff:g id="number">%d</xl
- + <string name="lockscreen_plugged_in" msgid="613343852842944435">"Wird gelad
- + <string name="lockscreen_discharging">Entladen (<xliff:g id="number">%d</xl
- <string name="lockscreen_charged" msgid="4938930459620989972">"Aufgeladen"<
- - <string name="lockscreen_battery_short" msgid="3617549178603354656">"<xliff
- - <string name="lockscreen_low_battery" msgid="1482873981919249740">"Bitte La
- - <string name="lockscreen_missing_sim_message_short" msgid="7381499217732227
- - <string name="lockscreen_missing_sim_message" msgid="2186920585695169078">"
- + <string name="lockscreen_battery_short" msgid="3617549178603354656">"<xliff
- + <string name="lockscreen_low_battery" msgid="1482873981919249740">"Bitte La
- + <string name="lockscreen_missing_sim_message_short" msgid="7381499217732227
- + <string name="lockscreen_missing_sim_message" msgid="2186920585695169078">"
- <string name="lockscreen_missing_sim_instructions" msgid="88746208189377190
- <string name="emergency_calls_only" msgid="6733978304386365407">"Nur Notruf
- <string name="lockscreen_network_locked_message" msgid="143389224986028501"
- <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"
- <string name="lockscreen_sim_puk_locked_instructions" msgid="63596753499239
- <string name="lockscreen_sim_locked_message" msgid="8066660129206001039">"B
- - <string name="lockscreen_sim_unlock_progress_dialog_message" msgid="5953232
- + <string name="lockscreen_sim_unlock_progress_dialog_message" msgid="5953232
- <string name="lockscreen_too_many_failed_attempts_dialog_message" msgid="35
- <string name="lockscreen_failed_attempts_almost_glogin" msgid="335101384232
- <string name="lockscreen_too_many_failed_attempts_countdown" msgid="6251480
- @@ -621,8 +621,8 @@
- <string name="lockscreen_glogin_username_hint" msgid="8846881424106484447">
- <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">
- <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">
- - <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">
- - <string name="lockscreen_glogin_checking_password" msgid="67588905363323633
- + <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">
- + <string name="lockscreen_glogin_checking_password" msgid="67588905363323633
- <string name="lockscreen_unlock_label" msgid="737440483220667054">"Entsperr
- <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Ton e
- <string name="lockscreen_sound_off_label" msgid="996822825154319026">"Ton a
- @@ -632,16 +632,16 @@
- <string name="hour_ampm" msgid="4329881288269772723">"<xliff:g id="HOUR">%-
- <string name="hour_cap_ampm" msgid="1829009197680861107">"<xliff:g id="HOUR
- <string name="factorytest_failed" msgid="5410270329114212041">"Werkstest fe
- - <string name="factorytest_not_system" msgid="4435201656767276723">"Die Akti
- - <string name="factorytest_no_action" msgid="872991874799998561">"Es wurden
- + <string name="factorytest_not_system" msgid="4435201656767276723">"Die Akti
- + <string name="factorytest_no_action" msgid="872991874799998561">"Es wurden
- <string name="factorytest_reboot" msgid="6320168203050791643">"Neustart"</s
- - <string name="js_dialog_title" msgid="8143918455087008109">"Die Seite auf \
- + <string name="js_dialog_title" msgid="8143918455087008109">"Die Seite auf „
- <string name="js_dialog_title_default" msgid="6961903213729667573">"JavaScr
- - <string name="js_dialog_before_unload" msgid="1901675448179653089">"Von die
- + <string name="js_dialog_before_unload" msgid="1901675448179653089">"Diese S
- <string name="save_password_label" msgid="6860261758665825069">"Bestätigen"
- <string name="double_tap_toast" msgid="1068216937244567247">"Tipp: Zum Hera
- <string name="permlab_readHistoryBookmarks" msgid="1284843728203412135">"Br
- - <string name="permdesc_readHistoryBookmarks" msgid="4981489815467617191">"E
- + <string name="permdesc_readHistoryBookmarks" msgid="4981489815467617191">"E
- <string name="permlab_writeHistoryBookmarks" msgid="9009434109836280374">"B
- <string name="permdesc_writeHistoryBookmarks" msgid="945571990357114950">"E
- <string name="permlab_setAlarm" msgid="5924401328803615165">"Alarm im Wecke
- @@ -656,9 +656,9 @@
- <string name="text_copied" msgid="4985729524670131385">"Text in Zwischenabl
- <string name="more_item_label" msgid="4650918923083320495">"Mehr"</string>
- <string name="prepend_shortcut_label" msgid="2572214461676015642">"Menü+"</
- - <string name="menu_space_shortcut_label" msgid="2410328639272162537">"Leerz
- + <string name="menu_space_shortcut_label" msgid="2410328639272162537">"Leert
- <string name="menu_enter_shortcut_label" msgid="2743362785111309668">"Enter
- - <string name="menu_delete_shortcut_label" msgid="3658178007202748164">"lösc
- + <string name="menu_delete_shortcut_label" msgid="3658178007202748164">"Lösc
- <string name="search_go" msgid="8298016669822141719">"Suchen"</string>
- <string name="oneMonthDurationPast" msgid="7396384508953779925">"Vor 1 Mona
- <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"Vor m
- @@ -733,15 +733,15 @@
- </plurals>
- <string name="preposition_for_date" msgid="9093949757757445117">"am <xliff:
- <string name="preposition_for_time" msgid="5506831244263083793">"um <xliff:
- - <string name="preposition_for_year" msgid="5040395640711867177">"im Jahr <x
- + <string name="preposition_for_year" msgid="5040395640711867177">"<xliff:g i
- <string name="day" msgid="8144195776058119424">"Tag"</string>
- <string name="days" msgid="4774547661021344602">"Tage"</string>
- <string name="hour" msgid="2126771916426189481">"Stunde"</string>
- <string name="hours" msgid="894424005266852993">"Stunden"</string>
- - <string name="minute" msgid="9148878657703769868">"Min"</string>
- + <string name="minute" msgid="9148878657703769868">"Minute"</string>
- <string name="minutes" msgid="5646001005827034509">"Minuten"</string>
- - <string name="second" msgid="3184235808021478">"Sek"</string>
- - <string name="seconds" msgid="3161515347216589235">"s"</string>
- + <string name="second" msgid="3184235808021478">"Sekunde"</string>
- + <string name="seconds" msgid="3161515347216589235">"Sekunden"</string>
- <string name="week" msgid="5617961537173061583">"Woche"</string>
- <string name="weeks" msgid="6509623834583944518">"Wochen"</string>
- <string name="year" msgid="4001118221013892076">"Jahr"</string>
- @@ -765,7 +765,7 @@
- <string name="paste" msgid="5629880836805036433">"Einfügen"</string>
- <string name="copyUrl" msgid="2538211579596067402">"URL kopieren"</string>
- <string name="inputMethod" msgid="1653630062304567879">"Eingabemethode"</st
- - <string name="addToDictionary" msgid="8793624991686948709">"\"<xliff:g id="
- + <string name="addToDictionary" msgid="8793624991686948709">"„<xliff:g id="W
- <string name="editTextMenuTitle" msgid="1672989176958581452">"Text bearbeit
- <string name="low_internal_storage_view_title" msgid="1399732408701697546">
- <string name="low_internal_storage_view_text" msgid="635106544616378836">"K
- @@ -778,7 +778,7 @@
- <string name="capital_off" msgid="6815870386972805832">"AUS"</string>
- <string name="whichApplication" msgid="4533185947064773386">"Aktion durchfü
- <string name="alwaysUse" msgid="4583018368000610438">"Standardmäßig für die
- - <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Standardein
- + <string name="clearDefaultHintMsg" msgid="4815455344600932173">"Standardein
- <string name="chooseActivity" msgid="1009246475582238425">"Aktion auswählen
- <string name="chooseUsbActivity" msgid="7892597146032121735">"Anwendung für
- <string name="noApplications" msgid="1691104391758345586">"Diese Aktion kan
- @@ -826,13 +826,13 @@
- <item quantity="other" msgid="4192424489168397386">"WLAN-Netzwerke verfügba
- </plurals>
- <plurals name="wifi_available_detailed">
- - <item quantity="one" msgid="1634101450343277345">"Verfügbares WLAN-Netzwerk
- - <item quantity="other" msgid="7915895323644292768">"Verfügbare WLAN-Netzwer
- + <item quantity="one" msgid="1634101450343277345">"Verfügbares WLAN-Netzwerk
- + <item quantity="other" msgid="7915895323644292768">"Verfügbare WLAN-Netzwer
- </plurals>
- <string name="select_character" msgid="3365550120617701745">"Zeichen einfüg
- <string name="sms_control_default_app_name" msgid="7630529934366549163">"Un
- <string name="sms_control_title" msgid="7296612781128917719">"Kurznachricht
- - <string name="sms_control_message" msgid="1289331457999236205">"Es werden e
- + <string name="sms_control_message" msgid="1289331457999236205">"Es wird ein
- <string name="sms_control_yes" msgid="2532062172402615953">"OK"</string>
- <string name="sms_control_no" msgid="1715320703137199869">"Abbrechen"</stri
- <string name="date_time_set" msgid="5777075614321087758">"Speichern"</strin
- @@ -842,18 +842,18 @@
- <string name="perms_show_all" msgid="2671791163933091180"><b>"Alle anzeigen
- <string name="usb_storage_activity_title" msgid="2399289999608900443">"USB-
- <string name="usb_storage_title" msgid="5901459041398751495">"USB-Verbindun
- - <string name="usb_storage_message" product="nosdcard" msgid="11577932455150
- - <string name="usb_storage_message" product="default" msgid="479675964616724
- + <string name="usb_storage_message" product="nosdcard" msgid="11577932455150
- + <string name="usb_storage_message" product="default" msgid="479675964616724
- <string name="usb_storage_button_mount" msgid="1052259930369508235">"USB-Sp
- <string name="usb_storage_error_message" product="nosdcard" msgid="32764137
- <string name="usb_storage_error_message" product="default" msgid="120810397
- <string name="usb_storage_notification_title" msgid="8175892554757216525">"
- - <string name="usb_storage_notification_message" msgid="7380082404288219341"
- + <string name="usb_storage_notification_message" msgid="7380082404288219341"
- <string name="usb_storage_stop_notification_title" msgid="23360583966635160
- - <string name="usb_storage_stop_notification_message" msgid="259181349026984
- + <string name="usb_storage_stop_notification_message" msgid="259181349026984
- <string name="usb_storage_stop_title" msgid="660129851708775853">"USB-Speic
- - <string name="usb_storage_stop_message" product="nosdcard" msgid="136884226
- - <string name="usb_storage_stop_message" product="default" msgid="3613713396
- + <string name="usb_storage_stop_message" product="nosdcard" msgid="136884226
- + <string name="usb_storage_stop_message" product="default" msgid="3613713396
- <string name="usb_storage_stop_button_mount" msgid="7060218034900696029">"U
- <string name="usb_storage_stop_error_message" msgid="143881914840412108">"B
- <string name="dlg_confirm_kill_storage_users_title" msgid="9630390334704786
- @@ -864,15 +864,15 @@
- <string name="extmedia_format_title" product="default" msgid="8663247929551
- <string name="extmedia_format_message" product="nosdcard" msgid="8296908079
- <string name="extmedia_format_message" product="default" msgid="36213699624
- - <string name="extmedia_format_button_format" msgid="4131064560127478695">"F
- + <string name="extmedia_format_button_format" msgid="4131064560127478695">"F
- <string name="adb_active_notification_title" msgid="6729044778949189918">"U
- - <string name="adb_active_notification_message" msgid="8470296818270110396">
- + <string name="adb_active_notification_message" msgid="8470296818270110396">
- <string name="select_input_method" msgid="6865512749462072765">"Eingabemeth
- <string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHI
- <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0
- <string name="candidates_style" msgid="4333913089637062257"><u>"Kandidaten"
- - <string name="ext_media_checking_notification_title" product="nosdcard" msg
- - <string name="ext_media_checking_notification_title" product="default" msgi
- + <string name="ext_media_checking_notification_title" product="nosdcard" msg
- + <string name="ext_media_checking_notification_title" product="default" msgi
- <string name="ext_media_checking_notification_message" msgid="8287319882926
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="
- <string name="ext_media_nofs_notification_title" product="default" msgid="7
- @@ -885,20 +885,20 @@
- <string name="ext_media_badremoval_notification_title" product="nosdcard" m
- <string name="ext_media_badremoval_notification_title" product="default" ms
- <string name="ext_media_badremoval_notification_message" product="nosdcard"
- - <string name="ext_media_badremoval_notification_message" product="default"
- + <string name="ext_media_badremoval_notification_message" product="default"
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard"
- <string name="ext_media_safe_unmount_notification_title" product="default"
- - <string name="ext_media_safe_unmount_notification_message" product="nosdcar
- - <string name="ext_media_safe_unmount_notification_message" product="default
- + <string name="ext_media_safe_unmount_notification_message" product="nosdcar
- + <string name="ext_media_safe_unmount_notification_message" product="default
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgi
- <string name="ext_media_nomedia_notification_title" product="default" msgid
- - <string name="ext_media_nomedia_notification_message" product="nosdcard" ms
- - <string name="ext_media_nomedia_notification_message" product="default" msg
- + <string name="ext_media_nomedia_notification_message" product="nosdcard" ms
- + <string name="ext_media_nomedia_notification_message" product="default" msg
- <string name="activity_list_empty" msgid="4168820609403385789">"Keine passe
- <string name="permlab_pkgUsageStats" msgid="8787352074326748892">"Nutzungss
- <string name="permdesc_pkgUsageStats" msgid="891553695716752835">"Ermöglich
- - <string name="permlab_copyProtectedData" msgid="1660908117394854464">"Ermög
- - <string name="permdesc_copyProtectedData" msgid="537780957633976401">"Ermög
- + <string name="permlab_copyProtectedData" msgid="1660908117394854464">"Ermög
- + <string name="permdesc_copyProtectedData" msgid="537780957633976401">"Ermög
- <string name="tutorial_double_tap_to_zoom_message_short" msgid="13118100059
- <string name="gadget_host_error_inflating" msgid="2613287218853846830">"Feh
- <string name="ime_action_go" msgid="8320845651737369027">"Los"</string>
- @@ -907,11 +907,11 @@
- <string name="ime_action_next" msgid="3138843904009813834">"Weiter"</string
- <string name="ime_action_done" msgid="8971516117910934605">"Fertig"</string
- <string name="ime_action_default" msgid="2840921885558045721">"Ausführen"</
- - <string name="dial_number_using" msgid="5789176425167573586">"Nummer"\n"mit
- - <string name="create_contact_using" msgid="4947405226788104538">"Neuer Kont
- + <string name="dial_number_using" msgid="5789176425167573586">"Nummer"\n"<xl
- + <string name="create_contact_using" msgid="4947405226788104538">"Neuen Kont
- <string name="accessibility_compound_button_selected" msgid="56127769460362
- <string name="accessibility_compound_button_unselected" msgid="886451289567
- - <string name="grant_credentials_permission_message_header" msgid="682453873
- + <string name="grant_credentials_permission_message_header" msgid="682453873
- <string name="grant_credentials_permission_message_footer" msgid="312521134
- <string name="grant_permissions_header_text" msgid="2722567482180797717">"Z
- <string name="allow" msgid="7225948811296386551">"Zulassen"</string>
- @@ -921,8 +921,8 @@
- <string name="input_method_binding_label" msgid="1283557179944992649">"Eing
- <string name="sync_binding_label" msgid="3687969138375092423">"Synchronisie
- <string name="accessibility_binding_label" msgid="4148120742096474641">"Ein
- - <string name="wallpaper_binding_label" msgid="1240087844304687662">"Hinterg
- - <string name="chooser_wallpaper" msgid="7873476199295190279">"Hintergrund ä
- + <string name="wallpaper_binding_label" msgid="1240087844304687662">"Hinterg
- + <string name="chooser_wallpaper" msgid="7873476199295190279">"Hintergrundbi
- <string name="pptp_vpn_description" msgid="2688045385181439401">"Point-to-P
- <string name="l2tp_vpn_description" msgid="3750692169378923304">"Layer-2-Tu
- <string name="l2tp_ipsec_psk_vpn_description" msgid="3945043564008303239">"
- @@ -939,10 +939,10 @@
- <string name="throttle_warning_notification_message" msgid="260973476384570
- <string name="throttled_notification_title" msgid="6269541897729781332">"Mo
- <string name="throttled_notification_message" msgid="4712369856601275146">"
- - <string name="progress_unmounting" product="nosdcard" msgid="53586355431879
- - <string name="progress_unmounting" product="default" msgid="555681397895878
- - <string name="progress_erasing" product="nosdcard" msgid="41836646262030569
- - <string name="progress_erasing" product="default" msgid="211521472436753409
- + <string name="progress_unmounting" product="nosdcard" msgid="53586355431879
- + <string name="progress_unmounting" product="default" msgid="555681397895878
- + <string name="progress_erasing" product="nosdcard" msgid="41836646262030569
- + <string name="progress_erasing" product="default" msgid="211521472436753409
- <string name="format_error" product="nosdcard" msgid="4320339096529911637">
- <string name="format_error" product="default" msgid="1343380371925238343">"
- <string name="media_bad_removal" msgid="7960864061016603281">"SD-Karte wurd
- @@ -957,10 +957,25 @@
- <string name="app_killed_message">Anwendung beendet</string>
- <!-- Phone goggles -->
- - <string name="phone_goggles_problem_count">Problem #%1$d: </string>
- - <string name="phone_goggles_description">Löse die %1$d folgenden Aufgaben i
- + <string name="phone_goggles_problem_count">Aufgabe #%1$d: </string>
- + <string name="phone_goggles_description">Lösen Sie die folgenden %1$d Aufga
- <plurals name="phone_goggles_countdown">
- - <item quantity="one">%d Sekunde übrig</item>
- - <item quantity="other">%d Sekunden übrig</item>
- + <item quantity="one">%d Sekunde verbleibend</item>
- + <item quantity="other">%d Sekunden verbleibend</item>
- </plurals>
- +
- + <string name="permlab_receiveEmergencyBroadcast">Notfall-Broadcasts empfang
- + <string name="permdesc_receiveEmergencyBroadcast">Erlaubt es einer Anwendun
- +
- + <string name="permlab_revokePermissions">Lesen und Ändern entzogener Berech
- + <string name="permdesc_revokePermissions">Erlaubt das Lesen und Schreiben e
- +
- + <string name="permlab_preventpower">Ausschaltknopf abfangen</string>
- + <string name="permdesc_preventpower">Erlaubt einer Anwendung, die Funktion
- +
- + <string name="lockscreen_phone_label">Telefon</string>
- + <string name="aerr_revoked_application">Die Anwendung <xliff:g id="applicat
- + <string name="aerr_revoked_process">Der Prozess <xliff:g id="process">%1$s<
- + <string name="reset_perms">Berechtigungen zurücksetzen</string>
- + <string name="openvpn_vpn_description">OpenVPN</string>
- </resources>
- diff --git a/include/camera/Camera.h b/include/camera/Camera.h
- index 52b992f..2660138 100644
- --- a/include/camera/Camera.h
- +++ b/include/camera/Camera.h
- @@ -210,9 +210,19 @@ public:
- // set preview/capture parameters - key/value pairs
- status_t setParameters(const String8& params);
- + #ifdef MOTO_CUSTOM_PARAMETERS
- + // set preview/capture parameters - key/value pairs
- + status_t setCustomParameters(const String8& params);
- + #endif
- +
- // get preview/capture parameters - key/value pairs
- String8 getParameters() const;
- + #ifdef MOTO_CUSTOM_PARAMETERS
- + // get preview/capture parameters - key/value pairs
- + String8 getCustomParameters() const;
- + #endif
- +
- // send command to camera driver
- status_t sendCommand(int32_t cmd, int32_t arg1, int32_t arg2);
- diff --git a/include/camera/CameraParameters.h b/include/camera/CameraParameters
- index 040d4de..a0c495a 100644
- --- a/include/camera/CameraParameters.h
- +++ b/include/camera/CameraParameters.h
- @@ -59,6 +59,21 @@ public:
- void setPreviewSize(int width, int height);
- void getPreviewSize(int *width, int *height) const;
- void getSupportedPreviewSizes(Vector<Size> &sizes) const;
- +
- + // Set the dimensions in pixels to the given width and height
- + // for video frames. The given width and height must be one
- + // of the supported dimensions returned from
- + // getSupportedVideoSizes(). Must not be called if
- + // getSupportedVideoSizes() returns an empty Vector of Size.
- + void setVideoSize(int width, int height);
- +
- + // Retrieve the current dimensions (width and height)
- + // in pixels for video frames, which must be one of the
- + // supported dimensions returned from getSupportedVideoSizes().
- + // Must not be called if getSupportedVideoSizes() returns an
- + // empty Vector of Size.
- + void getVideoSize(int *width, int *height) const;
- +
- void setPreviewFrameRate(int fps);
- int getPreviewFrameRate() const;
- void getPreviewFpsRange(int *min_fps, int *max_fps) const;
- @@ -333,6 +348,12 @@ public:
- // Example value: "0.95,1.9,Infinity" or "0.049,0.05,0.051". Read only.
- static const char KEY_FOCUS_DISTANCES[];
- + // The current dimensions in pixels (width x height) for video frames.
- + // The width and height must be one of the supported sizes retrieved
- + // via KEY_SUPPORTED_VIDEO_SIZES.
- + // Example value: "1280x720". Read/write.
- + static const char KEY_VIDEO_SIZE[];
- +
- // The image format for video frames. See CAMERA_MSG_VIDEO_FRAME in
- // frameworks/base/include/camera/Camera.h.
- // Example value: "yuv420sp" or PIXEL_FORMAT_XXX constants. Read only.
- @@ -419,6 +440,7 @@ public:
- // Formats for setPreviewFormat and setPictureFormat.
- static const char PIXEL_FORMAT_YUV422SP[];
- static const char PIXEL_FORMAT_YUV420SP[]; // NV21
- + static const char PIXEL_FORMAT_YUV420P[];
- static const char PIXEL_FORMAT_YUV422I[]; // YUY2
- static const char PIXEL_FORMAT_RGB565[];
- static const char PIXEL_FORMAT_JPEG[];
- diff --git a/include/camera/ICamera.h b/include/camera/ICamera.h
- index efa4282..f4c0282 100644
- --- a/include/camera/ICamera.h
- +++ b/include/camera/ICamera.h
- @@ -94,6 +94,14 @@ public:
- // get preview/capture parameters - key/value pairs
- virtual String8 getParameters() const = 0;
- + #ifdef MOTO_CUSTOM_PARAMETERS
- + // set preview/capture custom parameters - key/value pairs
- + virtual status_t setCustomParameters(const String8& params) = 0;
- +
- + // get preview/capture custom parameters - key/value pairs
- + virtual String8 getCustomParameters() const = 0;
- + #endif
- +
- // send command to camera driver
- virtual status_t sendCommand(int32_t cmd, int32_t arg1, int32_t arg2
- diff --git a/libs/camera/Android.mk b/libs/camera/Android.mk
- index ad71714..df27cb1 100644
- --- a/libs/camera/Android.mk
- +++ b/libs/camera/Android.mk
- @@ -22,6 +22,10 @@ ifeq ($(BOARD_CAMERA_USE_GETBUFFERINFO),true)
- LOCAL_CFLAGS += -DUSE_GETBUFFERINFO
- endif
- +ifeq ($(TARGET_USE_MOTO_CUSTOM_CAMERA_PARAMETERS),true)
- + LOCAL_CFLAGS += -DMOTO_CUSTOM_PARAMETERS
- +endif
- +
- ifeq ($(TARGET_SIMULATOR),true)
- LOCAL_LDLIBS += -lpthread
- endif
- diff --git a/libs/camera/Camera.cpp b/libs/camera/Camera.cpp
- index 96c0b57..061edd5 100644
- --- a/libs/camera/Camera.cpp
- +++ b/libs/camera/Camera.cpp
- @@ -305,7 +305,18 @@ status_t Camera::setParameters(const String8& params)
- return c->setParameters(params);
- }
- -// get preview/capture parameters - key/value pairs
- +#ifdef MOTO_CUSTOM_PARAMETERS
- +// set preview/capture custom parameters - key/value pairs
- +status_t Camera::setCustomParameters(const String8& params)
- +{
- + LOGV("setCustomParameters");
- + sp <ICamera> c = mCamera;
- + if (c == 0) return NO_INIT;
- + return c->setCustomParameters(params);
- +}
- +#endif
- +
- +// get preview/capture custom parameters - key/value pairs
- String8 Camera::getParameters() const
- {
- LOGV("getParameters");
- @@ -315,6 +326,18 @@ String8 Camera::getParameters() const
- return params;
- }
- +#ifdef MOTO_CUSTOM_PARAMETERS
- +// get preview/capture parameters - key/value pairs
- +String8 Camera::getCustomParameters() const
- +{
- + LOGV("getCustomParameters");
- + String8 params;
- + sp <ICamera> c = mCamera;
- + if (c != 0) params = mCamera->getCustomParameters();
- + return params;
- +}
- +#endif
- +
- // send command to camera driver
- status_t Camera::sendCommand(int32_t cmd, int32_t arg1, int32_t arg2)
- {
- diff --git a/libs/camera/CameraParameters.cpp b/libs/camera/CameraParameters.cpp
- index 4a86edd..0c03743 100644
- --- a/libs/camera/CameraParameters.cpp
- +++ b/libs/camera/CameraParameters.cpp
- @@ -85,6 +85,7 @@ const char CameraParameters::KEY_CAF[] = "continuous-af";
- const char CameraParameters::KEY_CONTINUOUS_AF[] = "continuous-af";
- const char CameraParameters::KEY_SUPPORTED_CAF[] = "continuous-af-values";
- const char CameraParameters::KEY_SUPPORTED_CONTINUOUS_AF[] = "continuous-af-val
- +const char CameraParameters::KEY_VIDEO_SIZE[] = "video-size";
- const char CameraParameters::TRUE[] = "true";
- const char CameraParameters::FOCUS_DISTANCE_INFINITY[] = "Infinity";
- @@ -148,6 +149,7 @@ const char CameraParameters::SCENE_MODE_BARCODE[] = "barcode
- // Formats for setPreviewFormat and setPictureFormat.
- const char CameraParameters::PIXEL_FORMAT_YUV422SP[] = "yuv422sp";
- const char CameraParameters::PIXEL_FORMAT_YUV420SP[] = "yuv420sp";
- +const char CameraParameters::PIXEL_FORMAT_YUV420P[] = "yuv420p";
- const char CameraParameters::PIXEL_FORMAT_YUV422I[] = "yuv422i-yuyv";
- const char CameraParameters::PIXEL_FORMAT_RGB565[] = "rgb565";
- const char CameraParameters::PIXEL_FORMAT_JPEG[] = "jpeg";
- @@ -403,6 +405,21 @@ void CameraParameters::getSupportedPreviewSizes(Vector<Size
- parseSizesList(previewSizesStr, sizes);
- }
- +void CameraParameters::setVideoSize(int width, int height)
- +{
- + char str[32];
- + sprintf(str, "%dx%d", width, height);
- + set(KEY_VIDEO_SIZE, str);
- +}
- +
- +void CameraParameters::getVideoSize(int *width, int *height) const
- +{
- + *width = *height = -1;
- + const char *p = get(KEY_VIDEO_SIZE);
- + if (p == 0) return;
- + parse_pair(p, width, height, 'x');
- +}
- +
- void CameraParameters::setPreviewFrameRate(int fps)
- {
- set(KEY_PREVIEW_FRAME_RATE, fps);
- diff --git a/libs/camera/ICamera.cpp b/libs/camera/ICamera.cpp
- index 451be45..cc39d39 100644
- --- a/libs/camera/ICamera.cpp
- +++ b/libs/camera/ICamera.cpp
- @@ -49,6 +49,10 @@ enum {
- #ifdef USE_GETBUFFERINFO
- GET_BUFFER_INFO,
- #endif
- +#ifdef MOTO_CUSTOM_PARAMETERS
- + GET_CUSTOM_PARAMETERS,
- + SET_CUSTOM_PARAMETERS,
- +#endif
- };
- class BpCamera: public BpInterface<ICamera>
- @@ -226,6 +230,30 @@ public:
- remote()->transact(GET_PARAMETERS, data, &reply);
- return reply.readString8();
- }
- +
- + #ifdef MOTO_CUSTOM_PARAMETERS
- + // set preview/capture custom parameters - key/value pairs
- + status_t setCustomParameters(const String8& params)
- + {
- + LOGV("setCustomParameters");
- + Parcel data, reply;
- + data.writeInterfaceToken(ICamera::getInterfaceDescriptor());
- + data.writeString8(params);
- + remote()->transact(SET_CUSTOM_PARAMETERS, data, &reply);
- + return reply.readInt32();
- + }
- +
- + // get preview/capture custom parameters - key/value pairs
- + String8 getCustomParameters() const
- + {
- + LOGV("getCustomParameters");
- + Parcel data, reply;
- + data.writeInterfaceToken(ICamera::getInterfaceDescriptor());
- + remote()->transact(GET_CUSTOM_PARAMETERS, data, &reply);
- + return reply.readString8();
- + }
- + #endif
- +
- virtual status_t sendCommand(int32_t cmd, int32_t arg1, int32_t arg2)
- {
- LOGV("sendCommand");
- @@ -374,6 +402,21 @@ status_t BnCamera::onTransact(
- reply->writeString8(getParameters());
- return NO_ERROR;
- } break;
- + #ifdef MOTO_CUSTOM_PARAMETERS
- + case SET_CUSTOM_PARAMETERS: {
- + LOGV("SET_CUSTOM_PARAMETERS");
- + CHECK_INTERFACE(ICamera, data, reply);
- + String8 params(data.readString8());
- + reply->writeInt32(setCustomParameters(params));
- + return NO_ERROR;
- + } break;
- + case GET_CUSTOM_PARAMETERS: {
- + LOGV("GET_CUSTOM_PARAMETERS");
- + CHECK_INTERFACE(ICamera, data, reply);
- + reply->writeString8(getCustomParameters());
- + return NO_ERROR;
- + } break;
- + #endif
- case SEND_COMMAND: {
- LOGV("SEND_COMMAND");
- CHECK_INTERFACE(ICamera, data, reply);
- diff --git a/libs/ui/Android.mk b/libs/ui/Android.mk
- index 135da75..6b249ca 100644
- --- a/libs/ui/Android.mk
- +++ b/libs/ui/Android.mk
- @@ -44,6 +44,8 @@ else ifeq ($(TARGET_BOOTLOADER_BOARD_NAME),vision)
- LOCAL_CFLAGS += -DVISION_KEYPAD
- else ifeq ($(TARGET_BOOTLOADER_BOARD_NAME),speedy)
- LOCAL_CFLAGS += -DVISION_KEYPAD
- +else ifeq ($(TARGET_BOOTLOADER_BOARD_NAME),zeus)
- + LOCAL_CFLAGS += -DZEUS_TOUCHPADS
- endif
- ifeq ($(BOARD_NO_RGBX_8888),true)
- diff --git a/libs/ui/InputReader.cpp b/libs/ui/InputReader.cpp
- index 39de754..b6879dd 100644
- --- a/libs/ui/InputReader.cpp
- +++ b/libs/ui/InputReader.cpp
- @@ -342,7 +342,19 @@ InputDevice* InputReader::createDevice(int32_t deviceId, co
- // Touchscreen-like devices.
- if (classes & INPUT_DEVICE_CLASS_TOUCHSCREEN_MT) {
- +#ifdef ZEUS_TOUCHPADS
- + /* According to the Sony Ericsson SDK, the jogdials should be interpret
- + * as an AINPUT_SOURCE_TOUCHPAD. According to getSources() above, a
- + * touchpad is simply a device with a negative associated display id.
- + */
- + if (deviceId == 0x10004) {
- + device->addMapper(new MultiTouchInputMapper(device, -1));
- + } else {
- + device->addMapper(new MultiTouchInputMapper(device, associatedDispl
- + }
- +#else
- device->addMapper(new MultiTouchInputMapper(device, associatedDisplayId
- +#endif
- } else if (classes & INPUT_DEVICE_CLASS_TOUCHSCREEN) {
- device->addMapper(new SingleTouchInputMapper(device, associatedDisplayI
- }
- diff --git a/media/libeffects/cyanogen-dsp/EffectEqualizer.cpp b/media/libeffect
- index 76a7103..16b978d 100644
- --- a/media/libeffects/cyanogen-dsp/EffectEqualizer.cpp
- +++ b/media/libeffects/cyanogen-dsp/EffectEqualizer.cpp
- @@ -63,7 +63,7 @@ static int64_t toFixedPoint(float in) {
- EffectEqualizer::EffectEqualizer()
- : mLoudnessAdjustment(10000.f), mLoudness(50.f), mNextUpdate(0), mNextUpdat
- {
- - for (int32_t i = 0; i < 5; i ++) {
- + for (int32_t i = 0; i < 6; i ++) {
- mBand[i] = 0;
- }
- }
- @@ -95,7 +95,7 @@ int32_t EffectEqualizer::command(uint32_t cmdCode, uint32_t cm
- reply1x4_1x2_t *replyData = (reply1x4_1x2_t *) p
- replyData->status = 0;
- replyData->vsize = 2;
- - replyData->data = 5;
- + replyData->data = 6;
- *replySize = sizeof(reply1x4_1x2_t);
- LOGI("EQ_PARAM_NUM_BANDS OK");
- return 0;
- @@ -121,7 +121,7 @@ int32_t EffectEqualizer::command(uint32_t cmdCode, uint32_t
- } else if (cep->psize == 8) {
- int32_t cmd = ((int32_t *) cep)[3];
- int32_t arg = ((int32_t *) cep)[4];
- - if (cmd == EQ_PARAM_BAND_LEVEL && arg >= 0 && arg < 5) {
- + if (cmd == EQ_PARAM_BAND_LEVEL && arg >= 0 && arg < 6) {
- reply2x4_1x2_t *replyData = (reply2x4_1x2_t *) p
- replyData->status = 0;
- replyData->vsize = 2;
- @@ -129,8 +129,8 @@ int32_t EffectEqualizer::command(uint32_t cmdCode, uint32_t
- *replySize = sizeof(reply2x4_1x2_t);
- return 0;
- }
- - if (cmd == EQ_PARAM_CENTER_FREQ && arg >= 0 && arg < 5)
- - float centerFrequency = 62.5f * powf(4, arg);
- + if (cmd == EQ_PARAM_CENTER_FREQ && arg >= 0 && arg < 6)
- + float centerFrequency = 15.625f * powf(4, arg);
- reply2x4_1x4_t *replyData = (reply2x4_1x4_t *) p
- replyData->status = 0;
- replyData->vsize = 4;//from 2 to 4 bytes to do 3
- @@ -168,7 +168,7 @@ int32_t EffectEqualizer::command(uint32_t cmdCode, uint32_t
- int32_t cmd = ((int32_t *) cep)[3];
- int32_t arg = ((int32_t *) cep)[4];
- - if (cmd == EQ_PARAM_BAND_LEVEL && arg >= 0 && arg < 5) {
- + if (cmd == EQ_PARAM_BAND_LEVEL && arg >= 0 && arg < 6) {
- LOGI("Setting band %d to %d", cmd, arg);
- *replyData = 0;
- int16_t value = ((int16_t *) cep)[10];
- @@ -194,12 +194,12 @@ int32_t EffectEqualizer::command(uint32_t cmdCode, uint32_
- * sound pressure level.
- *
- * The boost can be calculated as linear scaling of the following adjustment:
- - * 20 Hz +45 dB (unmodeled)
- - * 62.5 Hz +24 dB
- + * 20 Hz +41 dB
- + * 62.5 Hz +28 dB
- * 250 Hz +10 dB
- * 1000 Hz 0 dB
- * 4000 Hz -3 dB
- - * 16000 Hz +6 dB
- + * 16000 Hz +8 dB
- *
- * The boost will be applied maximally for signals of 20 dB and less,
- * and linearly decreased for signals 20 dB ... 100 dB, and no adjustment is
- @@ -207,8 +207,10 @@ int32_t EffectEqualizer::command(uint32_t cmdCode, uint32_t
- * digital sound level against the audio.
- */
- float EffectEqualizer::getAdjustedBand(int32_t band) {
- - const float adj[5] = { 24.0, 10.0, 0.0, -3.0, 6.0 };
- + /* 1st derived by linear extrapolation from (62.5, 28) to (20, 41) */
- + const float adj[6] = { 42.3, 28.0, 10.0, 0.0, -3.0, 8.0 };
- + /* The 15.625 band is not exposed externally, so first point is duplicated.
- float f = mBand[band];
- /* Add loudness adjustment */
- @@ -220,7 +222,7 @@ float EffectEqualizer::getAdjustedBand(int32_t band) {
- loudnessLevel = 20.f;
- }
- /* Maximum loudness = no adj (reference behavior at 100 dB) */
- - loudnessLevel = (loudnessLevel - 20) / (100.0 - 20.0);
- + loudnessLevel = (loudnessLevel - 20) / (100 - 20);
- f += adj[band] * (1. - loudnessLevel);
- return f * (mFade / 100.f);
- @@ -229,9 +231,10 @@ float EffectEqualizer::getAdjustedBand(int32_t band) {
- void EffectEqualizer::refreshBands()
- {
- mGain = toFixedPoint(powf(10.0f, getAdjustedBand(0) / 20.0f));
- - for (int32_t band = 0; band < 4; band ++) {
- - float centerFrequency = 62.5f * powf(4, band);
- - float dB = getAdjustedBand(band+1) - getAdjustedBand(band);
- + for (int32_t band = 0; band < 5; band ++) {
- + /* 15.625, 62.5, 250, 1000, 4000, 16000 */
- + float centerFrequency = 15.625f * powf(4, band);
- + float dB = getAdjustedBand(band + 1) - getAdjustedBand(band);
- mFilterL[band].setHighShelf(centerFrequency * 2.0f, mSamplingRate, dB,
- mFilterR[band].setHighShelf(centerFrequency * 2.0f, mSamplingRate, dB,
- @@ -285,7 +288,7 @@ int32_t EffectEqualizer::process(audio_buffer_t *in, audio_b
- tmpR = tmpR * mGain >> 32;
- /* evaluate the other filters. */
- - for (int32_t j = 0; j < 4; j ++) {
- + for (int32_t j = 0; j < 5; j ++) {
- tmpL = mFilterL[j].process(tmpL);
- tmpR = mFilterR[j].process(tmpR);
- }
- diff --git a/media/libeffects/cyanogen-dsp/EffectEqualizer.h b/media/libeffects/
- index cb5ee1c..4ac6f57 100644
- --- a/media/libeffects/cyanogen-dsp/EffectEqualizer.h
- +++ b/media/libeffects/cyanogen-dsp/EffectEqualizer.h
- @@ -10,10 +10,10 @@
- class EffectEqualizer : public Effect {
- private:
- /* Equalizer */
- - float mBand[5];
- + float mBand[6];
- int64_t mGain;
- - Biquad mFilterL[4], mFilterR[4];
- + Biquad mFilterL[5], mFilterR[5];
- /* Automatic equalizer */
- float mLoudnessAdjustment;
- @@ -23,6 +23,7 @@ class EffectEqualizer : public Effect {
- int32_t mNextUpdateInterval;
- int64_t mPowerSquared;
- + /* Smooth enable/disable */
- int32_t mFade;
- void setBand(int32_t idx, float dB);
- diff --git a/opengl/include/EGL/eglext.h b/opengl/include/EGL/eglext.h
- index 1ffcd56..b121158 100644
- --- a/opengl/include/EGL/eglext.h
- +++ b/opengl/include/EGL/eglext.h
- @@ -229,6 +229,14 @@ struct android_native_buffer_t;
- #define EGL_NATIVE_BUFFER_ANDROID 0x3140 /* eglCreateImageKHR target */
- #endif
- +#ifndef EGL_ANDROID_get_render_buffer
- +#define EGL_ANDROID_get_render_buffer 1
- +#ifdef EGL_EGLEXT_PROTOTYPES
- +EGLAPI EGLClientBuffer EGLAPIENTRY eglGetRenderBufferANDROID(EGLDisplay dpy, EG
- +#endif
- +typedef EGLClientBuffer (EGLAPIENTRYP PFNEGLGETRENDERBUFFERANDROIDPROC) (EGLDis
- +#endif
- +
- #ifndef EGL_ANDROID_swap_rectangle
- #define EGL_ANDROID_swap_rectangle 1
- #ifdef EGL_EGLEXT_PROTOTYPES
- diff --git a/opengl/libagl/egl.cpp b/opengl/libagl/egl.cpp
- index f2362b9..fd0bb58 100644
- --- a/opengl/libagl/egl.cpp
- +++ b/opengl/libagl/egl.cpp
- @@ -158,6 +158,7 @@ struct egl_surface_t
- virtual EGLint getSwapBehavior() const;
- virtual EGLBoolean swapBuffers();
- virtual EGLBoolean setSwapRectangle(EGLint l, EGLint t, EGLint w, EGLi
- + virtual EGLClientBuffer getRenderBuffer() const;
- protected:
- GGLSurface depth;
- };
- @@ -201,6 +202,9 @@ EGLBoolean egl_surface_t::setSwapRectangle(
- {
- return EGL_FALSE;
- }
- +EGLClientBuffer egl_surface_t::getRenderBuffer() const {
- + return 0;
- +}
- // ----------------------------------------------------------------------------
- @@ -226,7 +230,8 @@ struct egl_window_surface_v2_t : public egl_surface_t
- virtual EGLint getRefreshRate() const;
- virtual EGLint getSwapBehavior() const;
- virtual EGLBoolean setSwapRectangle(EGLint l, EGLint t, EGLint w, EGLi
- -
- + virtual EGLClientBuffer getRenderBuffer() const;
- +
- private:
- status_t lock(android_native_buffer_t* buf, int usage, void** vaddr);
- status_t unlock(android_native_buffer_t* buf);
- @@ -621,6 +626,11 @@ EGLBoolean egl_window_surface_v2_t::setSwapRectangle(
- return EGL_TRUE;
- }
- +EGLClientBuffer egl_window_surface_v2_t::getRenderBuffer() const
- +{
- + return buffer;
- +}
- +
- #ifdef LIBAGL_USE_GRALLOC_COPYBITS
- static bool supportedCopybitsDestinationFormat(int format) {
- @@ -879,6 +889,7 @@ static char const * const gExtensionsString =
- // "KHR_image_pixmap "
- "EGL_ANDROID_image_native_buffer "
- "EGL_ANDROID_swap_rectangle "
- + "EGL_ANDROID_get_render_buffer "
- ;
- // ----------------------------------------------------------------------------
- @@ -931,6 +942,8 @@ static const extention_map_t gExtentionMap[] = {
- (__eglMustCastToProperFunctionPointerType)&eglDestroyImageKHR },
- { "eglSetSwapRectangleANDROID",
- (__eglMustCastToProperFunctionPointerType)&eglSetSwapRectangleANDRO
- + { "eglGetRenderBufferANDROID",
- + (__eglMustCastToProperFunctionPointerType)&eglGetRenderBufferANDROI
- };
- /*
- @@ -2160,3 +2173,18 @@ EGLBoolean eglSetSwapRectangleANDROID(EGLDisplay dpy, EGL
- return EGL_TRUE;
- }
- +
- +EGLClientBuffer eglGetRenderBufferANDROID(EGLDisplay dpy, EGLSurface draw)
- +{
- + if (egl_display_t::is_valid(dpy) == EGL_FALSE)
- + return setError(EGL_BAD_DISPLAY, (EGLClientBuffer)0);
- +
- + egl_surface_t* d = static_cast<egl_surface_t*>(draw);
- + if (!d->isValid())
- + return setError(EGL_BAD_SURFACE, (EGLClientBuffer)0);
- + if (d->dpy != dpy)
- + return setError(EGL_BAD_DISPLAY, (EGLClientBuffer)0);
- +
- + // post the surface
- + return d->getRenderBuffer();
- +}
- diff --git a/opengl/libagl/texture.cpp b/opengl/libagl/texture.cpp
- index 70d8806..d67612e 100644
- --- a/opengl/libagl/texture.cpp
- +++ b/opengl/libagl/texture.cpp
- @@ -763,9 +763,17 @@ static void drawTexxOESImp(GLfixed x, GLfixed y, GLfixed z,
- static void drawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed w, GLfixed h,
- ogles_context_t* c)
- {
- +#ifdef LIBAGL_USE_GRALLOC_COPYBITS
- + if (drawTexiOESWithCopybit(gglFixedToIntRound(x),
- + gglFixedToIntRound(y), gglFixedToIntRound(z),
- + gglFixedToIntRound(w), gglFixedToIntRound(h), c)) {
- + return;
- + }
- +#else
- // quickly reject empty rects
- if ((w|h) <= 0)
- return;
- +#endif
- drawTexxOESImp(x, y, z, w, h, c);
- }
- @@ -777,6 +785,11 @@ static void drawTexiOES(GLint x, GLint y, GLint z, GLint w,
- // which is a lot faster.
- if (ggl_likely(c->rasterizer.state.enabled_tmu == 1)) {
- +#ifdef LIBAGL_USE_GRALLOC_COPYBITS
- + if (drawTexiOESWithCopybit(x, y, z, w, h, c)) {
- + return;
- + }
- +#endif
- const int tmu = 0;
- texture_unit_t& u(c->textures.tmu[tmu]);
- EGLTextureObject* textureObject = u.texture;
- diff --git a/opengl/libs/EGL/egl.cpp b/opengl/libs/EGL/egl.cpp
- index 48f7507..40dca24 100644
- --- a/opengl/libs/EGL/egl.cpp
- +++ b/opengl/libs/EGL/egl.cpp
- @@ -76,6 +76,7 @@ static char const * const gExtensionString =
- #endif
- "EGL_ANDROID_image_native_buffer "
- "EGL_ANDROID_swap_rectangle "
- + "EGL_ANDROID_get_render_buffer "
- ;
- // ----------------------------------------------------------------------------
- @@ -427,6 +428,8 @@ static const extention_map_t gExtentionMap[] = {
- (__eglMustCastToProperFunctionPointerType)NULL },
- { "glEGLImageTargetRenderbufferStorageOES",
- (__eglMustCastToProperFunctionPointerType)NULL },
- + { "eglGetRenderBufferANDROID",
- + (__eglMustCastToProperFunctionPointerType)&eglGetRenderBufferANDROI
- };
- extern const __eglMustCastToProperFunctionPointerType gExtensionForwarders[MAX_
- @@ -1905,3 +1908,19 @@ EGLBoolean eglSetSwapRectangleANDROID(EGLDisplay dpy, EGL
- }
- return setError(EGL_BAD_DISPLAY, NULL);
- }
- +
- +EGLClientBuffer eglGetRenderBufferANDROID(EGLDisplay dpy, EGLSurface draw)
- +{
- + SurfaceRef _s(draw);
- + if (!_s.get()) return setError(EGL_BAD_SURFACE, (EGLClientBuffer*)0);
- +
- + if (!validate_display_surface(dpy, draw))
- + return 0;
- + egl_display_t const * const dp = get_display(dpy);
- + egl_surface_t const * const s = get_surface(draw);
- + if (s->cnx->egl.eglGetRenderBufferANDROID) {
- + return s->cnx->egl.eglGetRenderBufferANDROID(
- + dp->disp[s->impl].dpy, s->surface);
- + }
- + return setError(EGL_BAD_DISPLAY, (EGLClientBuffer*)0);
- +}
- diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res
- index a88244b..556ddff 100644
- --- a/packages/SystemUI/res/values-de/strings.xml
- +++ b/packages/SystemUI/res/values-de/strings.xml
- @@ -26,14 +26,11 @@
- <string name="status_bar_latest_events_title" msgid="6594767438577593172">"
- <string name="battery_low_title" msgid="7923774589611311406">"Ladegerät ans
- <string name="battery_low_subtitle" msgid="7388781709819722764">"Akku ist f
- - <string name="battery_low_percent_format" msgid="696154104579022959">"<xlif
- + <string name="battery_low_percent_format" msgid="696154104579022959">"<xlif
- <string name="battery_low_why" msgid="7279169609518386372">"Akkuverbrauch"<
- - <!-- no translation found for usb_accessory_permission_prompt (396974591353
- - <skip />
- - <!-- no translation found for usb_device_confirm_prompt (272779358141186850
- - <skip />
- - <!-- no translation found for usb_accessory_confirm_prompt (394743040725273
- - <skip />
- + <string name="usb_accessory_permission_prompt">Der Anwendung %1$s Zugriff a
- + <string name="usb_device_confirm_prompt">%1$s öffnen, wenn dieses USB-Gerät
- + <string name="usb_accessory_confirm_prompt">%1$s öffnen, wenn dieses USB-Zu
- <string name="usb_accessory_uri_prompt" msgid="6332150684964235705">"Keine
- <string name="title_usb_accessory" msgid="4966265263465181372">"USB-Zubehör
- <string name="label_view" msgid="6304565553218192990">"Anzeigen"</string>
- diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarPolic
- index 90faad9..d09ab9c 100644
- --- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarPolicy.java
- +++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarPolicy.java
- @@ -92,6 +92,9 @@ public class StatusBarPolicy {
- private final Handler mHandler = new StatusBarHandler();
- private final IBatteryStats mBatteryStats;
- + // headset
- + private boolean mHeadsetPlugged = false;
- +
- // storage
- private StorageManager mStorageManager;
- @@ -604,6 +607,8 @@ public class StatusBarPolicy {
- // need another var that superceding mPhoneSignalHidden
- private boolean mShowCmSignal;
- + private boolean mShowHeadset;
- +
- class SettingsObserver extends ContentObserver {
- SettingsObserver(Handler handler) {
- super(handler);
- @@ -616,6 +621,9 @@ public class StatusBarPolicy {
- resolver.registerContentObserver(Settings.System
- .getUriFor(Settings.System.STATUS_BAR_CM_SIGNAL_TEXT), fals
- +
- + resolver.registerContentObserver(Settings.System
- + .getUriFor(Settings.System.STATUS_BAR_HEADSET), false, this
- }
- @Override public void onChange(boolean selfChange) {
- @@ -1386,16 +1394,16 @@ public class StatusBarPolicy {
- }
- private final void updateHeadset(Intent intent) {
- - final boolean isConnected = intent.getIntExtra("state", 0) == 1;
- + mHeadsetPlugged = intent.getIntExtra("state", 0) == 1;
- - if (isConnected) {
- + if (mHeadsetPlugged) {
- final boolean hasMicrophone = intent.getIntExtra("microphone", 1) =
- final int iconId = hasMicrophone
- ? com.android.internal.R.drawable.stat_sys_headset
- : R.drawable.stat_sys_headset_no_mic;
- mService.setIcon("headset", iconId, 0);
- }
- - mService.setIconVisibility("headset", isConnected);
- + mService.setIconVisibility("headset", mShowHeadset && mHeadsetPlugged);
- }
- private final void updateBluetooth(Intent intent) {
- @@ -1655,10 +1663,13 @@ public class StatusBarPolicy {
- mCmBatteryStatus = !mShowCmBattery;
- mService.setIconVisibility("battery", !mShowCmBattery);
- - //0 will hide the cmsignaltext and show the signal bars
- - mShowCmSignal = Settings.System.getInt(mContext.getContentResolver(),
- - Settings.System.STATUS_BAR_CM_SIGNAL_TEXT, 0) != 0;
- - mService.setIconVisibility("phone_signal", !mShowCmSignal);
- + //0 will hide the cmsignaltext and show the signal bars
- + mShowCmSignal = Settings.System.getInt(mContext.getContentResolver(),
- + Settings.System.STATUS_BAR_CM_SIGNAL_TEXT, 0) != 0;
- + mService.setIconVisibility("phone_signal", !mShowCmSignal);
- + mShowHeadset = (Settings.System.getInt(resolver,
- + Settings.System.STATUS_BAR_HEADSET, 1) == 1);
- + mService.setIconVisibility("headset", mShowHeadset && mHeadsetPlugged);
- }
- }
- diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarServi
- index 687b72e..e4ac0be 100644
- --- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarService.java
- +++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarService.java
- @@ -467,7 +467,7 @@ public class StatusBarService extends Service implements Com
- // Disable compact carrier when bottom bar is enabled for now
- // till we find a better solution (looks ugly alone at the top)
- if (mBottomBar)
- - mCompactCarrierLayout.setVisibility(View.VISIBLE);
- + mCompactCarrierLayout.setVisibility(View.GONE);
- if (mLatest.hasClearableItems())
- mCompactClearButton.setVisibility(View.VISIBLE);
- } else {
- diff --git a/policy/src/com/android/internal/policy/impl/LockScreen.java b/polic
- index 2f62a03..2526945 100644
- --- a/policy/src/com/android/internal/policy/impl/LockScreen.java
- +++ b/policy/src/com/android/internal/policy/impl/LockScreen.java
- @@ -34,7 +34,6 @@ import android.content.res.Resources;
- import android.content.res.ColorStateList;
- import android.net.Uri;
- import android.text.format.DateFormat;
- -import android.view.Gravity;
- import android.view.KeyEvent;
- import android.view.LayoutInflater;
- import android.view.View;
- @@ -180,9 +179,6 @@ class LockScreen extends LinearLayout implements KeyguardScr
- private int mCustomIconStyle = Settings.System.getInt(mContext.getContentRe
- Settings.System.LOCKSCREEN_CUSTOM_ICON_STYLE, 1);
- - private int mWidgetLayout = Settings.System.getInt(mContext.getContentResol
- - Settings.System.LOCKSCREEN_WIDGETS_LAYOUT, 0);
- -
- private boolean mRotaryUnlockDown = (Settings.System.getInt(mContext.getCon
- Settings.System.LOCKSCREEN_ROTARY_UNLOCK_DOWN, 0) == 1);
- @@ -478,7 +474,7 @@ class LockScreen extends LinearLayout implements KeyguardScr
- //hide most items when we are in potrait lense mode
- mLensePortrait=(mUseLenseSquareLockscreen && mCreationOrientation != Co
- - if (mLensePortrait || mWidgetLayout == 1 )
- + if (mLensePortrait)
- setLenseWidgetsVisibility(View.INVISIBLE);
- mTabSelector.setLeftTabResources(
- @@ -574,29 +570,6 @@ class LockScreen extends LinearLayout implements KeyguardSc
- }
- resetStatusInfo(updateMonitor);
- - centerWidgets();
- - }
- -
- - private void centerWidgets() {
- - if (mWidgetLayout == 2) {
- - RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutPa
- - mCarrier.getLayoutParams();
- - layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT;
- - mCarrier.setLayoutParams(layoutParams);
- - mCarrier.setGravity(Gravity.CENTER_HORIZONTAL);
- - layoutParams = (RelativeLayout.LayoutParams)mDate.getLayoutParams()
- - layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL, 1);
- - mDate.setLayoutParams(layoutParams);
- - layoutParams = (RelativeLayout.LayoutParams)mStatus1.getLayoutParam
- - layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL, 1);
- - mStatus1.setLayoutParams(layoutParams);
- - layoutParams = (RelativeLayout.LayoutParams)mStatus2.getLayoutParam
- - layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL, 1);
- - mStatus2.setLayoutParams(layoutParams);
- - layoutParams = (RelativeLayout.LayoutParams)mClock.getLayoutParams(
- - layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL, 1);
- - mClock.setLayoutParams(layoutParams);
- - }
- }
- static void setBackground(Context bcontext, ViewGroup layout){
- @@ -929,7 +902,7 @@ class LockScreen extends LinearLayout implements KeyguardScr
- private void updateStatusLines() {
- if (!mStatus.showStatusLines()
- - || (mCharging == null && mNextAlarm == null) || mLensePortrait
- + || (mCharging == null && mNextAlarm == null) || mLensePortrait)
- mStatus1.setVisibility(View.INVISIBLE);
- mStatus2.setVisibility(View.INVISIBLE);
- } else if (mCharging != null && mNextAlarm == null) {
- diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
- index cd0c242..b52ccb7 100644
- --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
- +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
- @@ -234,6 +234,7 @@ public class PhoneWindowManager implements WindowManagerPoli
- int mLidKeyboardAccessibility;
- int mLidNavigationAccessibility;
- boolean mScreenOn = false;
- + int mScreenOffReason;
- boolean mOrientationSensorEnabled = false;
- int mCurrentAppOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
- static final int DEFAULT_ACCELEROMETER_ROTATION = 0;
- @@ -2066,18 +2067,19 @@ public class PhoneWindowManager implements WindowManager
- || ((keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) && mVolumeWak
- // Don't wake the screen if we have not set the option "wake with v
- + // OR if "wake with volume" is set but screen is off due to proximi
- // regardless if WAKE Flag is set in keylayout
- - if (!isScreenOn
- - && isWakeKey
- - && !mVolumeWakeScreen
- + final boolean isOffByProx = (mScreenOffReason == WindowManagerPolic
- + if (isWakeKey
- + && (!mVolumeWakeScreen || isOffByProx)
- && ((keyCode == KeyEvent.KEYCODE_VOLUME_UP) || (keyCode ==
- isWakeKey = false;
- }
- // make sure keyevent get's handled as power key on volume-wake
- - if(!isScreenOn && mVolumeWakeScreen && isWakeKey && ((keyCode == Ke
- + if(mVolumeWakeScreen && isWakeKey && ((keyCode == KeyEvent.KEYCODE_
- || (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)))
- - keyCode=KeyEvent.KEYCODE_POWER;
- + keyCode = KeyEvent.KEYCODE_POWER;
- if (down && isWakeKey) {
- if (keyguardActive) {
- @@ -2324,6 +2326,7 @@ public class PhoneWindowManager implements WindowManagerPo
- mKeyguardMediator.onScreenTurnedOff(why);
- synchronized (mLock) {
- mScreenOn = false;
- + mScreenOffReason = why;
- updateOrientationListenerLp();
- updateLockScreenTimeout();
- }
- diff --git a/services/camera/libcameraservice/Android.mk b/services/camera/libca
- index 5201055..f3c5dea 100644
- --- a/services/camera/libcameraservice/Android.mk
- +++ b/services/camera/libcameraservice/Android.mk
- @@ -100,4 +100,8 @@ ifeq ($(BOARD_HAS_LGE_FFC), true)
- LOCAL_CFLAGS += -DBOARD_HAS_LGE_FFC
- endif
- +ifeq ($(TARGET_USE_MOTO_CUSTOM_CAMERA_PARAMETERS),true)
- + LOCAL_CFLAGS += -DMOTO_CUSTOM_PARAMETERS
- +endif
- +
- include $(BUILD_SHARED_LIBRARY)
- diff --git a/services/camera/libcameraservice/CameraHardwareStub.cpp b/services/
- index 09b89d1..fff8753 100644
- --- a/services/camera/libcameraservice/CameraHardwareStub.cpp
- +++ b/services/camera/libcameraservice/CameraHardwareStub.cpp
- @@ -371,6 +371,20 @@ CameraParameters CameraHardwareStub::getParameters() const
- return mParameters;
- }
- +#ifdef MOTO_CUSTOM_PARAMETERS
- +status_t CameraHardwareStub::setCustomParameters(const CameraParameters& params
- +{
- + Mutex::Autolock lock(mLock);
- + return NO_ERROR;
- +}
- +
- +CameraParameters CameraHardwareStub::getCustomParameters() const
- +{
- + Mutex::Autolock lock(mLock);
- + return mParameters;
- +}
- +#endif
- +
- status_t CameraHardwareStub::sendCommand(int32_t command, int32_t arg1,
- int32_t arg2)
- {
- diff --git a/services/camera/libcameraservice/CameraHardwareStub.h b/services/ca
- index bd7ed15..1d0ea69 100644
- --- a/services/camera/libcameraservice/CameraHardwareStub.h
- +++ b/services/camera/libcameraservice/CameraHardwareStub.h
- @@ -58,6 +58,10 @@ public:
- virtual status_t dump(int fd, const Vector<String16>& args) const;
- virtual status_t setParameters(const CameraParameters& params);
- virtual CameraParameters getParameters() const;
- +#ifdef MOTO_CUSTOM_PARAMETERS
- + virtual status_t setCustomParameters(const CameraParameters& params);
- + virtual CameraParameters getCustomParameters() const;
- +#endif
- virtual status_t sendCommand(int32_t command, int32_t arg1,
- int32_t arg2);
- virtual void release();
- diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camer
- index 988d5f0..64384da 100644
- --- a/services/camera/libcameraservice/CameraService.cpp
- +++ b/services/camera/libcameraservice/CameraService.cpp
- @@ -350,10 +350,12 @@ void CameraService::loadSound() {
- if (mSoundRef++) return;
- char value[PROPERTY_VALUE_MAX];
- - property_get("persist.camera.shutter.disable", value, "0");
- - int disableSound = atoi(value);
- + property_get("ro.camera.sound.disabled", value, "0");
- + int systemMute = atoi(value);
- + property_get("persist.sys.camera-mute", value, "0");
- + int userMute = atoi(value);
- - if(!disableSound) {
- + if(!systemMute && !userMute) {
- mSoundPlayer[SOUND_SHUTTER] = newMediaPlayer("/system/media/audio/ui/ca
- mSoundPlayer[SOUND_RECORDING] = newMediaPlayer("/system/media/audio/ui/
- }
- @@ -997,6 +999,32 @@ String8 CameraService::Client::getParameters() const {
- return params;
- }
- +#ifdef MOTO_CUSTOM_PARAMETERS
- +// set preview/capture custom parameters - key/value pairs
- +status_t CameraService::Client::setCustomParameters(const String8& params) {
- + LOG1("setCustomParameters (pid %d) (%s)", getCallingPid(), params.string())
- +
- + Mutex::Autolock lock(mLock);
- + status_t result = checkPidAndHardware();
- + if (result != NO_ERROR) return result;
- +
- +
- + CameraParameters p(params);
- +
- + return mHardware->setCustomParameters(p);
- +}
- +
- +// get preview/capture custom parameters - key/value pairs
- +String8 CameraService::Client::getCustomParameters() const {
- + Mutex::Autolock lock(mLock);
- + if (checkPidAndHardware() != NO_ERROR) return String8();
- +
- + String8 params(mHardware->getCustomParameters().flatten());
- + LOG1("getCustomParameters (pid %d) (%s)", getCallingPid(), params.string())
- + return params;
- +}
- +#endif
- +
- status_t CameraService::Client::sendCommand(int32_t cmd, int32_t arg1, int32_t
- LOG1("sendCommand (pid %d)", getCallingPid());
- int orientation;
- diff --git a/services/camera/libcameraservice/CameraService.h b/services/camera/
- index 7b2f9c4..b723dbf 100644
- --- a/services/camera/libcameraservice/CameraService.h
- +++ b/services/camera/libcameraservice/CameraService.h
- @@ -107,6 +107,10 @@ private:
- virtual status_t takePicture();
- virtual status_t setParameters(const String8& params);
- virtual String8 getParameters() const;
- + #ifdef MOTO_CUSTOM_PARAMETERS
- + virtual status_t setCustomParameters(const String8& params);
- + virtual String8 getCustomParameters() const;
- + #endif
- virtual status_t sendCommand(int32_t cmd, int32_t arg1, int32_t
- private:
- friend class CameraService;
- diff --git a/services/java/com/android/server/VibratorService.java b/services/ja
- index 86c30f8..47e6b66 100755
- --- a/services/java/com/android/server/VibratorService.java
- +++ b/services/java/com/android/server/VibratorService.java
- @@ -304,8 +304,8 @@ public class VibratorService extends IVibratorService.Stub {
- private void delay(long duration) {
- if (duration > 0) {
- - long bedtime = SystemClock.uptimeMillis();
- do {
- + long bedtime = SystemClock.uptimeMillis();
- try {
- this.wait(duration);
- }
- @@ -315,7 +315,7 @@ public class VibratorService extends IVibratorService.Stub {
- break;
- }
- duration = duration
- - - SystemClock.uptimeMillis() - bedtime;
- + - (SystemClock.uptimeMillis() - bedtime);
- } while (duration > 0);
- }
- }
- diff --git a/services/java/com/android/server/am/BatteryStatsService.java b/serv
- index 367c4cf..5ac73f6 100644
- --- a/services/java/com/android/server/am/BatteryStatsService.java
- +++ b/services/java/com/android/server/am/BatteryStatsService.java
- @@ -296,8 +296,13 @@ public final class BatteryStatsService extends IBatteryStat
- public void noteBluetoothOff() {
- enforceCallingPermission();
- + BluetoothHeadset headset = null;
- synchronized (mStats) {
- mStats.noteBluetoothOffLocked();
- + headset = mStats.getBtHeadset();
- + }
- + if (headset != null) {
- + headset.close();
- }
- }
- diff --git a/telephony/java/com/android/internal/telephony/LGEStarRIL.java b/tel
- index 28823d3..f9f9919 100644
- --- a/telephony/java/com/android/internal/telephony/LGEStarRIL.java
- +++ b/telephony/java/com/android/internal/telephony/LGEStarRIL.java
- @@ -113,16 +113,6 @@ public class LGEStarRIL extends RIL implements CommandsInte
- protected boolean mPrepSetupPending = true;
- public void
- setRadioPower(boolean on, Message result) {
- - RILRequest rr
- - = RILRequest.obtain(RIL_REQUEST_RADIO_POWER, result);
- -
- - rr.mp.writeInt(1);
- - rr.mp.writeInt(on ? 1 : 0);
- -
- - if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mR
- -
- - send(rr);
- -
- if(mPrepSetupPending) {
- if (SystemProperties.get("ro.build.product").equals("p999")) {
- /* Set radio access tech */
- @@ -133,6 +123,14 @@ public class LGEStarRIL extends RIL implements CommandsInte
- if (RILJ_LOGD) riljLog(rrSPR.serialString() + "> "
- + requestToString(rrSPR.mRequest));
- send(rrSPR);
- + /* Set time zone reporting */
- + rrSPR = RILRequest.obtain(
- + 189, null);
- + rrSPR.mp.writeInt(1);
- + rrSPR.mp.writeInt(1);
- + if (RILJ_LOGD) riljLog(rrSPR.serialString() + "> "
- + + requestToString(rrSPR.mRequest));
- + send(rrSPR);
- } else {
- /* Set GPRS class */
- RILRequest rrCs = RILRequest.obtain(
- @@ -144,12 +142,33 @@ public class LGEStarRIL extends RIL implements CommandsInt
- + requestToString(rrCs.mRequest));
- send(rrCs);
- }
- -
- + /* Get charset */
- + RILRequest rrGCS = RILRequest.obtain(
- + 152, null);
- + if (RILJ_LOGD) riljLog(rrGCS.serialString() + "> "
- + + requestToString(rrGCS.mRequest));
- + send(rrGCS);
- }
- + RILRequest rr
- + = RILRequest.obtain(RIL_REQUEST_RADIO_POWER, result);
- +
- + rr.mp.writeInt(3);
- + rr.mp.writeInt(on ? 1 : 0);
- + rr.mp.writeInt(0);
- + rr.mp.writeInt(0);
- +
- + if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mR
- +
- + send(rr);
- +
- }
- protected void LGEswitchToRadioState(RadioState newState) {
- + if (!mPrepSetupPending && newState == RadioState.RADIO_UNAVAILABLE) {
- + /* We seem to have lost the radio, reset the setup flag */
- + mPrepSetupPending = true;
- + }
- if (newState.isOn() && mPrepSetupPending) {
- RILRequest rrPnt = RILRequest.obtain(
- RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE, null);
- @@ -161,14 +180,6 @@ public class LGEStarRIL extends RIL implements CommandsInte
- send(rrPnt);
- - /* Request service line */
- - RILRequest rrSL = RILRequest.obtain(
- - (SystemProperties.get("ro.build.product").equals("p999") ?
- - rrSL.mp.writeInt(0);
- - if (RILJ_LOGD) riljLog(rrSL.serialString() + "> "
- - + requestToString(rrSL.mRequest));
- - send(rrSL);
- -
- /* Set "ready" */
- RILRequest rrSc = RILRequest.obtain(
- (SystemProperties.get("ro.build.product").equals("p999") ?
- @@ -329,6 +340,45 @@ public class LGEStarRIL extends RIL implements CommandsInte
- send(rr);
- }
- + public void
- + getNetworkSelectionMode(Message response) {
- + RILRequest rr
- + = RILRequest.obtain(RIL_REQUEST_QUERY_NETWORK_SELECTION_MODE,
- + response);
- +
- + if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mR
- +
- + send(rr);
- + /* ADAPTED_NETWORK_NAME */
- + rr
- + = RILRequest.obtain(143, null);
- +
- + rr.mp.writeInt(1);
- + rr.mp.writeInt(6);
- +
- + send(rr);
- + }
- +
- + public void
- + getIMSI(Message result) {
- + RILRequest rr = RILRequest.obtain(RIL_REQUEST_GET_IMSI, result);
- +
- + if (RILJ_LOGD) riljLog(rr.serialString() +
- + "> getIMSI:RIL_REQUEST_GET_IMSI " +
- + RIL_REQUEST_GET_IMSI +
- + " " + requestToString(rr.mRequest));
- +
- + send(rr);
- +
- + /* Request service line */
- + RILRequest rrSL = RILRequest.obtain(
- + (SystemProperties.get("ro.build.product").equals("p999") ? 294
- + rrSL.mp.writeInt(0);
- + if (RILJ_LOGD) riljLog(rrSL.serialString() + "> "
- + + requestToString(rrSL.mRequest));
- + send(rrSL);
- + }
- +
- protected void
- processSolicited (Parcel p) {
- int serial, error;
- @@ -455,7 +505,10 @@ public class LGEStarRIL extends RIL implements CommandsInte
- case RIL_REQUEST_EXIT_EMERGENCY_CALLBACK_MODE: ret = responseVoid(p
- case RIL_REQUEST_REPORT_SMS_MEMORY_STATUS: ret = responseVoid(p); b
- case RIL_REQUEST_REPORT_STK_SERVICE_IS_RUNNING: ret = responseVoid(
- + case 143: ret = responseVoid(p); break; // ADAPTED_NETWORK_NAME
- + case 152: ret = responseString(p); break; // RIL_REQUEST_GET_TE_CH
- case 161: ret = responsePdpAddress(p); break; // SHOW_PDP_ADDRESS
- + case 189: ret = responseVoid(p); break; // RIL_REQUEST_SET_TIME_ZO
- case 273: ret = responseVoid(p); break; // SET_GMM_ATTACH_MODE
- case 286: ret = responseVoid(p); break; // GET_SERVICE_LINE
- case 294: ret = responseVoid(p); break; // GET_SERVICE_LINE
- @@ -1055,7 +1108,10 @@ public class LGEStarRIL extends RIL implements CommandsIn
- case RIL_REQUEST_EXIT_EMERGENCY_CALLBACK_MODE: return "REQUEST_EXIT
- case RIL_REQUEST_REPORT_SMS_MEMORY_STATUS: return "RIL_REQUEST_REPO
- case RIL_REQUEST_REPORT_STK_SERVICE_IS_RUNNING: return "RIL_REQUEST
- + case 152: return "RIL_REQUEST_GET_TE_CHARACTER_SET";
- + case 143: return "ADAPTED_NETWORK_NAME";
- case 161: return "SHOW_PDP_ADDRESS";
- + case 189: return "RIL_REQUEST_SET_TIME_ZONE_REPORTING";
- case 273: return "SET_GMM_ATTACH_MODE";
- case 286: return "GET_SERVICE_LINE"; // p990
- case 294: return "GET_SERVICE_LINE"; // p999
- diff --git a/telephony/java/com/android/internal/telephony/PhoneFactory.java b/t
- index 56ca6c9..3aa1046 100644
- --- a/telephony/java/com/android/internal/telephony/PhoneFactory.java
- +++ b/telephony/java/com/android/internal/telephony/PhoneFactory.java
- @@ -119,6 +119,9 @@ public class PhoneFactory {
- } else if("lgestar".equals(sRILClassname)) {
- Log.i(LOG_TAG, "Using LGE Star RIL");
- sCommandsInterface = new LGEStarRIL(context, networkMode, c
- + } else if ("semc".equals(sRILClassname)) {
- + Log.i(LOG_TAG, "Using Semc RIL");
- + sCommandsInterface = new SemcRIL(context, networkMode, cdma
- } else {
- sCommandsInterface = new RIL(context, networkMode, cdmaSubs
- }
- diff --git a/telephony/java/com/android/internal/telephony/QualcommNoSimReadyRIL
- new file mode 100644
- index 0000000..bdc5ba4
- --- /dev/null
- +++ b/telephony/java/com/android/internal/telephony/QualcommNoSimReadyRIL.java
- @@ -0,0 +1,767 @@
- +/*
- + * Copyright (C) 2011 The CyanogenMod 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.
- + */
- +
- +package com.android.internal.telephony;
- +
- +import static com.android.internal.telephony.RILConstants.*;
- +
- +import android.content.Context;
- +import android.os.AsyncResult;
- +import android.os.Handler;
- +import android.os.HandlerThread;
- +import android.os.Looper;
- +import android.os.Message;
- +import android.os.Parcel;
- +import android.telephony.SmsMessage;
- +import android.util.Log;
- +
- +import com.android.internal.telephony.IccCardApplication;
- +import com.android.internal.telephony.IccCardStatus;
- +import com.android.internal.telephony.IccUtils;
- +import com.android.internal.telephony.RILConstants;
- +import com.android.internal.telephony.cdma.CdmaInformationRecords;
- +
- +import java.util.ArrayList;
- +
- +/**
- + * Qualcomm RIL class for basebands that do not send the SIM status
- + * piggybacked in RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED. Instead,
- + * these radios will send radio state and we have to query for SIM
- + * status separately.
- + *
- + * {@hide}
- + */
- +public class QualcommNoSimReadyRIL extends RIL implements CommandsInterface {
- + protected HandlerThread mIccThread;
- + protected IccHandler mIccHandler;
- +
- + private final int RIL_INT_RADIO_OFF = 0;
- + private final int RIL_INT_RADIO_UNAVALIABLE = 1;
- + private final int RIL_INT_RADIO_ON = 2;
- +
- + public QualcommNoSimReadyRIL(Context context) {
- + super(context);
- + }
- +
- + public QualcommNoSimReadyRIL(Context context, int networkMode, int cdmaSubs
- + super(context, networkMode, cdmaSubscription);
- + }
- +
- + @Override
- + protected void
- + processSolicited (Parcel p) {
- + int serial, error;
- + boolean found = false;
- +
- + serial = p.readInt();
- + error = p.readInt();
- +
- + RILRequest rr;
- +
- + rr = findAndRemoveRequestFromList(serial);
- +
- + if (rr == null) {
- + Log.w(LOG_TAG, "Unexpected solicited response! sn: "
- + + serial + " error: " + error);
- + return;
- + }
- +
- + Object ret = null;
- +
- + if (error == 0 || p.dataAvail() > 0) {
- + // either command succeeds or command fails but with data payload
- + try {switch (rr.mRequest) {
- + /*
- + cat libs/telephony/ril_commands.h \
- + | egrep "^ *{RIL_" \
- + | sed -re 's/\{([^,]+),[^,]+,([^}]+).+/case \1: ret = \2(p); break;/'
- + */
- + case RIL_REQUEST_GET_SIM_STATUS: ret = responseIccCardStatus(p); b
- + case RIL_REQUEST_ENTER_SIM_PIN: ret = responseInts(p); break;
- + case RIL_REQUEST_ENTER_SIM_PUK: ret = responseInts(p); break;
- + case RIL_REQUEST_ENTER_SIM_PIN2: ret = responseInts(p); break;
- + case RIL_REQUEST_ENTER_SIM_PUK2: ret = responseInts(p); break;
- + case RIL_REQUEST_CHANGE_SIM_PIN: ret = responseInts(p); break;
- + case RIL_REQUEST_CHANGE_SIM_PIN2: ret = responseInts(p); break;
- + case RIL_REQUEST_ENTER_NETWORK_DEPERSONALIZATION: ret = responseIn
- + case RIL_REQUEST_GET_CURRENT_CALLS: ret = responseCallList(p); bre
- + case RIL_REQUEST_DIAL: ret = responseVoid(p); break;
- + case RIL_REQUEST_GET_IMSI: ret = responseString(p); break;
- + case RIL_REQUEST_HANGUP: ret = responseVoid(p); break;
- + case RIL_REQUEST_HANGUP_WAITING_OR_BACKGROUND: ret = responseVoid(
- + case RIL_REQUEST_HANGUP_FOREGROUND_RESUME_BACKGROUND: ret = respon
- + case RIL_REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE: ret = respo
- + case RIL_REQUEST_CONFERENCE: ret = responseVoid(p); break;
- + case RIL_REQUEST_UDUB: ret = responseVoid(p); break;
- + case RIL_REQUEST_LAST_CALL_FAIL_CAUSE: ret = responseInts(p); brea
- + case RIL_REQUEST_SIGNAL_STRENGTH: ret = responseSignalStrength(p);
- + case RIL_REQUEST_REGISTRATION_STATE: ret = responseStrings(p); bre
- + case RIL_REQUEST_GPRS_REGISTRATION_STATE: ret = responseStrings(p)
- + case RIL_REQUEST_OPERATOR: ret = responseStrings(p); break;
- + case RIL_REQUEST_RADIO_POWER: ret = responseVoid(p); break;
- + case RIL_REQUEST_DTMF: ret = responseVoid(p); break;
- + case RIL_REQUEST_SEND_SMS: ret = responseSMS(p); break;
- + case RIL_REQUEST_SEND_SMS_EXPECT_MORE: ret = responseSMS(p); break
- + case RIL_REQUEST_SETUP_DATA_CALL: ret = responseStrings(p); break;
- + case RIL_REQUEST_SIM_IO: ret = responseICC_IO(p); break;
- + case RIL_REQUEST_SEND_USSD: ret = responseVoid(p); break;
- + case RIL_REQUEST_CANCEL_USSD: ret = responseVoid(p); break;
- + case RIL_REQUEST_GET_CLIR: ret = responseInts(p); break;
- + case RIL_REQUEST_SET_CLIR: ret = responseVoid(p); break;
- + case RIL_REQUEST_QUERY_CALL_FORWARD_STATUS: ret = responseCallForw
- + case RIL_REQUEST_SET_CALL_FORWARD: ret = responseVoid(p); break;
- + case RIL_REQUEST_QUERY_CALL_WAITING: ret = responseInts(p); break;
- + case RIL_REQUEST_SET_CALL_WAITING: ret = responseVoid(p); break;
- + case RIL_REQUEST_SMS_ACKNOWLEDGE: ret = responseVoid(p); break;
- + case RIL_REQUEST_GET_IMEI: ret = responseString(p); break;
- + case RIL_REQUEST_GET_IMEISV: ret = responseString(p); break;
- + case RIL_REQUEST_ANSWER: ret = responseVoid(p); break;
- + case RIL_REQUEST_DEACTIVATE_DATA_CALL: ret = responseVoid(p); brea
- + case RIL_REQUEST_QUERY_FACILITY_LOCK: ret = responseInts(p); break
- + case RIL_REQUEST_SET_FACILITY_LOCK: ret = responseInts(p); break;
- + case RIL_REQUEST_CHANGE_BARRING_PASSWORD: ret = responseVoid(p); b
- + case RIL_REQUEST_QUERY_NETWORK_SELECTION_MODE: ret = responseInts(
- + case RIL_REQUEST_SET_NETWORK_SELECTION_AUTOMATIC: ret = responseVo
- + case RIL_REQUEST_SET_NETWORK_SELECTION_MANUAL: ret = responseVoid(
- + case RIL_REQUEST_QUERY_AVAILABLE_NETWORKS : ret = responseNetworkI
- + case RIL_REQUEST_DTMF_START: ret = responseVoid(p); break;
- + case RIL_REQUEST_DTMF_STOP: ret = responseVoid(p); break;
- + case RIL_REQUEST_BASEBAND_VERSION: ret = responseString(p); break;
- + case RIL_REQUEST_SEPARATE_CONNECTION: ret = responseVoid(p); break
- + case RIL_REQUEST_SET_MUTE: ret = responseVoid(p); break;
- + case RIL_REQUEST_GET_MUTE: ret = responseInts(p); break;
- + case RIL_REQUEST_QUERY_CLIP: ret = responseInts(p); break;
- + case RIL_REQUEST_LAST_DATA_CALL_FAIL_CAUSE: ret = responseInts(p);
- + case RIL_REQUEST_DATA_CALL_LIST: ret = responseDataCallList(p); br
- + case RIL_REQUEST_RESET_RADIO: ret = responseVoid(p); break;
- + case RIL_REQUEST_OEM_HOOK_RAW: ret = responseRaw(p); break;
- + case RIL_REQUEST_OEM_HOOK_STRINGS: ret = responseStrings(p); break
- + case RIL_REQUEST_SCREEN_STATE: ret = responseVoid(p); break;
- + case RIL_REQUEST_SET_SUPP_SVC_NOTIFICATION: ret = responseVoid(p);
- + case RIL_REQUEST_WRITE_SMS_TO_SIM: ret = responseInts(p); break;
- + case RIL_REQUEST_DELETE_SMS_ON_SIM: ret = responseVoid(p); break;
- + case RIL_REQUEST_SET_BAND_MODE: ret = responseVoid(p); break;
- + case RIL_REQUEST_QUERY_AVAILABLE_BAND_MODE: ret = responseInts(p);
- + case RIL_REQUEST_STK_GET_PROFILE: ret = responseString(p); break;
- + case RIL_REQUEST_STK_SET_PROFILE: ret = responseVoid(p); break;
- + case RIL_REQUEST_STK_SEND_ENVELOPE_COMMAND: ret = responseString(p
- + case RIL_REQUEST_STK_SEND_TERMINAL_RESPONSE: ret = responseVoid(p)
- + case RIL_REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM: ret = r
- + case RIL_REQUEST_EXPLICIT_CALL_TRANSFER: ret = responseVoid(p); br
- + case RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE: ret = responseVoid(p)
- + case RIL_REQUEST_GET_PREFERRED_NETWORK_TYPE: ret = responseInts(p)
- + case RIL_REQUEST_GET_NEIGHBORING_CELL_IDS: ret = responseCellList(p
- + case RIL_REQUEST_SET_LOCATION_UPDATES: ret = responseVoid(p); brea
- + case RIL_REQUEST_CDMA_SET_SUBSCRIPTION: ret = responseVoid(p); bre
- + case RIL_REQUEST_CDMA_SET_ROAMING_PREFERENCE: ret = responseVoid(p
- + case RIL_REQUEST_CDMA_QUERY_ROAMING_PREFERENCE: ret = responseInts
- + case RIL_REQUEST_SET_TTY_MODE: ret = responseVoid(p); break;
- + case RIL_REQUEST_QUERY_TTY_MODE: ret = responseInts(p); break;
- + case RIL_REQUEST_CDMA_SET_PREFERRED_VOICE_PRIVACY_MODE: ret = resp
- + case RIL_REQUEST_CDMA_QUERY_PREFERRED_VOICE_PRIVACY_MODE: ret = re
- + case RIL_REQUEST_CDMA_FLASH: ret = responseVoid(p); break;
- + case RIL_REQUEST_CDMA_BURST_DTMF: ret = responseVoid(p); break;
- + case RIL_REQUEST_CDMA_SEND_SMS: ret = responseSMS(p); break;
- + case RIL_REQUEST_CDMA_SMS_ACKNOWLEDGE: ret = responseVoid(p); brea
- + case RIL_REQUEST_GSM_GET_BROADCAST_CONFIG: ret = responseGmsBroadc
- + case RIL_REQUEST_GSM_SET_BROADCAST_CONFIG: ret = responseVoid(p);
- + case RIL_REQUEST_GSM_BROADCAST_ACTIVATION: ret = responseVoid(p);
- + case RIL_REQUEST_CDMA_GET_BROADCAST_CONFIG: ret = responseCdmaBroa
- + case RIL_REQUEST_CDMA_SET_BROADCAST_CONFIG: ret = responseVoid(p);
- + case RIL_REQUEST_CDMA_BROADCAST_ACTIVATION: ret = responseVoid(p);
- + case RIL_REQUEST_CDMA_VALIDATE_AND_WRITE_AKEY: ret = responseVoid(
- + case RIL_REQUEST_CDMA_SUBSCRIPTION: ret = responseStrings(p); brea
- + case RIL_REQUEST_CDMA_WRITE_SMS_TO_RUIM: ret = responseInts(p); br
- + case RIL_REQUEST_CDMA_DELETE_SMS_ON_RUIM: ret = responseVoid(p); b
- + case RIL_REQUEST_DEVICE_IDENTITY: ret = responseStrings(p); break;
- + case RIL_REQUEST_GET_SMSC_ADDRESS: ret = responseString(p); break;
- + case RIL_REQUEST_SET_SMSC_ADDRESS: ret = responseVoid(p); break;
- + case RIL_REQUEST_EXIT_EMERGENCY_CALLBACK_MODE: ret = responseVoid(p
- + case RIL_REQUEST_REPORT_SMS_MEMORY_STATUS: ret = responseVoid(p); b
- + case RIL_REQUEST_REPORT_STK_SERVICE_IS_RUNNING: ret = responseVoid(
- + case 104: ret = responseInts(p); break; // RIL_REQUEST_VOICE_RADIO_
- + case 105: ret = responseInts(p); break; // RIL_REQUEST_CDMA_GET_SUB
- + case 106: ret = responseStrings(p); break; // RIL_REQUEST_CDMA_PRL_
- + case 107: ret = responseInts(p); break; // RIL_REQUEST_IMS_REGISTR
- + case 108: ret = responseSMS(p); break; // RIL_REQUEST_IMS_SEND_SMS
- +
- + default:
- + throw new RuntimeException("Unrecognized solicited response: "
- + //break;
- + }} catch (Throwable tr) {
- + // Exceptions here usually mean invalid RIL responses
- +
- + Log.w(LOG_TAG, rr.serialString() + "< "
- + + requestToString(rr.mRequest)
- + + " exception, possible invalid RIL response", tr);
- +
- + if (rr.mResult != null) {
- + AsyncResult.forMessage(rr.mResult, null, tr);
- + rr.mResult.sendToTarget();
- + }
- + rr.release();
- + return;
- + }
- + }
- +
- + if (error != 0) {
- + rr.onError(error, ret);
- + rr.release();
- + return;
- + }
- +
- + if (RILJ_LOGD) riljLog(rr.serialString() + "< " + requestToString(rr.mR
- + + " " + retToString(rr.mRequest, ret));
- +
- + if (rr.mResult != null) {
- + AsyncResult.forMessage(rr.mResult, ret, null);
- + rr.mResult.sendToTarget();
- + }
- +
- + rr.release();
- + }
- +
- + @Override
- + protected void
- + processUnsolicited (Parcel p) {
- + int response;
- + Object ret;
- +
- + response = p.readInt();
- +
- + try {switch(response) {
- +/*
- + cat libs/telephony/ril_unsol_commands.h \
- + | egrep "^ *{RIL_" \
- + | sed -re 's/\{([^,]+),[^,]+,([^}]+).+/case \1: \2(rr, p); break;/'
- +*/
- +
- + case RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED: ret = responseVoid(p)
- + case RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED: ret = responseVoid(p);
- + case RIL_UNSOL_RESPONSE_NETWORK_STATE_CHANGED: ret = responseVoid(
- + case RIL_UNSOL_RESPONSE_NEW_SMS: ret = responseString(p); break;
- + case RIL_UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT: ret = responseStrin
- + case RIL_UNSOL_RESPONSE_NEW_SMS_ON_SIM: ret = responseInts(p); bre
- + case RIL_UNSOL_ON_USSD: ret = responseStrings(p); break;
- + case RIL_UNSOL_NITZ_TIME_RECEIVED: ret = responseString(p); break;
- + case RIL_UNSOL_SIGNAL_STRENGTH: ret = responseSignalStrength(p); br
- + case RIL_UNSOL_DATA_CALL_LIST_CHANGED: ret = responseDataCallList(p
- + case RIL_UNSOL_SUPP_SVC_NOTIFICATION: ret = responseSuppServiceNoti
- + case RIL_UNSOL_STK_SESSION_END: ret = responseVoid(p); break;
- + case RIL_UNSOL_STK_PROACTIVE_COMMAND: ret = responseString(p); brea
- + case RIL_UNSOL_STK_EVENT_NOTIFY: ret = responseString(p); break;
- + case RIL_UNSOL_STK_CALL_SETUP: ret = responseInts(p); break;
- + case RIL_UNSOL_SIM_SMS_STORAGE_FULL: ret = responseVoid(p); break;
- + case RIL_UNSOL_SIM_REFRESH: ret = responseInts(p); break;
- + case RIL_UNSOL_CALL_RING: ret = responseCallRing(p); break;
- + case RIL_UNSOL_RESTRICTED_STATE_CHANGED: ret = responseInts(p); bre
- + case RIL_UNSOL_RESPONSE_SIM_STATUS_CHANGED: ret = responseVoid(p)
- + case RIL_UNSOL_RESPONSE_CDMA_NEW_SMS: ret = responseCdmaSms(p); b
- + case RIL_UNSOL_RESPONSE_NEW_BROADCAST_SMS: ret = responseRaw(p);
- + case RIL_UNSOL_CDMA_RUIM_SMS_STORAGE_FULL: ret = responseVoid(p);
- + case RIL_UNSOL_ENTER_EMERGENCY_CALLBACK_MODE: ret = responseVoid(p)
- + case RIL_UNSOL_CDMA_CALL_WAITING: ret = responseCdmaCallWaiting(p);
- + case RIL_UNSOL_CDMA_OTA_PROVISION_STATUS: ret = responseInts(p); br
- + case RIL_UNSOL_CDMA_INFO_REC: ret = responseCdmaInformationRecord(p
- + case RIL_UNSOL_OEM_HOOK_RAW: ret = responseRaw(p); break;
- + case RIL_UNSOL_RINGBACK_TONE: ret = responseInts(p); break;
- + case RIL_UNSOL_RESEND_INCALL_MUTE: ret = responseVoid(p); break;
- + case 1031: ret = responseVoid(p); break; // RIL_UNSOL_VOICE_RADIO_T
- + case 1032: ret = responseInts(p); break; // RIL_UNSOL_TETHERED_MODE
- + case 1033: ret = responseVoid(p); break; // RIL_UNSOL_RESPONSE_DATA
- + case 1034: ret = responseVoid(p); break; // RIL_UNSOL_CDMA_SUBSCRIP
- + case 1035: ret = responseVoid(p); break; // RIL_UNSOL_CDMA_PRL_CHAN
- + case 1036: ret = responseVoid(p); break; // RIL_UNSOL_RESPONSE_IMS_
- + case 1037: ret = responseVoid(p); break; // RIL_UNSOL_EXIT_EMERGENC
- +
- + default:
- + throw new RuntimeException("Unrecognized unsol response: " + re
- + //break; (implied)
- + }} catch (Throwable tr) {
- + Log.e(LOG_TAG, "Exception processing unsol response: " + response +
- + "Exception:" + tr.toString());
- + return;
- + }
- +
- + switch(response) {
- + case RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED:
- + int state = p.readInt();
- + setRadioStateFromRILInt(state);
- + break;
- + case RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED:
- + if (RILJ_LOGD) unsljLog(response);
- +
- + mCallStateRegistrants
- + .notifyRegistrants(new AsyncResult(null, null, null));
- + break;
- + case RIL_UNSOL_RESPONSE_NETWORK_STATE_CHANGED:
- + if (RILJ_LOGD) unsljLog(response);
- +
- + mNetworkStateRegistrants
- + .notifyRegistrants(new AsyncResult(null, null, null));
- + break;
- + case RIL_UNSOL_RESPONSE_NEW_SMS: {
- + if (RILJ_LOGD) unsljLog(response);
- +
- + // FIXME this should move up a layer
- + String a[] = new String[2];
- +
- + a[1] = (String)ret;
- +
- + SmsMessage sms;
- +
- + sms = SmsMessage.newFromCMT(a);
- + if (mSMSRegistrant != null) {
- + mSMSRegistrant
- + .notifyRegistrant(new AsyncResult(null, sms, null));
- + }
- + break;
- + }
- + case RIL_UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT:
- + if (RILJ_LOGD) unsljLogRet(response, ret);
- +
- + if (mSmsStatusRegistrant != null) {
- + mSmsStatusRegistrant.notifyRegistrant(
- + new AsyncResult(null, ret, null));
- + }
- + break;
- + case RIL_UNSOL_RESPONSE_NEW_SMS_ON_SIM:
- + if (RILJ_LOGD) unsljLogRet(response, ret);
- +
- + int[] smsIndex = (int[])ret;
- +
- + if(smsIndex.length == 1) {
- + if (mSmsOnSimRegistrant != null) {
- + mSmsOnSimRegistrant.
- + notifyRegistrant(new AsyncResult(null, smsIndex
- + }
- + } else {
- + if (RILJ_LOGD) riljLog(" NEW_SMS_ON_SIM ERROR with wrong le
- + + smsIndex.length);
- + }
- + break;
- + case RIL_UNSOL_ON_USSD:
- + String[] resp = (String[])ret;
- +
- + if (resp.length < 2) {
- + resp = new String[2];
- + resp[0] = ((String[])ret)[0];
- + resp[1] = null;
- + }
- + if (RILJ_LOGD) unsljLogMore(response, resp[0]);
- + if (mUSSDRegistrant != null) {
- + mUSSDRegistrant.notifyRegistrant(
- + new AsyncResult (null, resp, null));
- + }
- + break;
- + case RIL_UNSOL_NITZ_TIME_RECEIVED:
- + if (RILJ_LOGD) unsljLogRet(response, ret);
- +
- + // has bonus long containing milliseconds since boot that the N
- + // time was received
- + long nitzReceiveTime = p.readLong();
- +
- + Object[] result = new Object[2];
- +
- + result[0] = ret;
- + result[1] = Long.valueOf(nitzReceiveTime);
- +
- + if (mNITZTimeRegistrant != null) {
- +
- + mNITZTimeRegistrant
- + .notifyRegistrant(new AsyncResult (null, result, null))
- + } else {
- + // in case NITZ time registrant isnt registered yet
- + mLastNITZTimeInfo = result;
- + }
- + break;
- +
- + case RIL_UNSOL_SIGNAL_STRENGTH:
- + // Note this is set to "verbose" because it happens
- + // frequently
- + if (RILJ_LOGV) unsljLogvRet(response, ret);
- +
- + if (mSignalStrengthRegistrant != null) {
- + mSignalStrengthRegistrant.notifyRegistrant(
- + new AsyncResult (null, ret, null));
- + }
- + break;
- + case RIL_UNSOL_DATA_CALL_LIST_CHANGED:
- + if (RILJ_LOGD) unsljLogRet(response, ret);
- +
- + mDataConnectionRegistrants.notifyRegistrants(new AsyncResult(nu
- + break;
- +
- + case RIL_UNSOL_SUPP_SVC_NOTIFICATION:
- + if (RILJ_LOGD) unsljLogRet(response, ret);
- +
- + if (mSsnRegistrant != null) {
- + mSsnRegistrant.notifyRegistrant(
- + new AsyncResult (null, ret, null));
- + }
- + break;
- +
- + case RIL_UNSOL_STK_SESSION_END:
- + if (RILJ_LOGD) unsljLog(response);
- +
- + if (mStkSessionEndRegistrant != null) {
- + mStkSessionEndRegistrant.notifyRegistrant(
- + new AsyncResult (null, ret, null));
- + }
- + break;
- +
- + case RIL_UNSOL_STK_PROACTIVE_COMMAND:
- + if (RILJ_LOGD) unsljLogRet(response, ret);
- +
- + if (mStkProCmdRegistrant != null) {
- + mStkProCmdRegistrant.notifyRegistrant(
- + new AsyncResult (null, ret, null));
- + }
- + break;
- +
- + case RIL_UNSOL_STK_EVENT_NOTIFY:
- + if (RILJ_LOGD) unsljLogRet(response, ret);
- +
- + if (mStkEventRegistrant != null) {
- + mStkEventRegistrant.notifyRegistrant(
- + new AsyncResult (null, ret, null));
- + }
- + break;
- +
- + case RIL_UNSOL_STK_CALL_SETUP:
- + if (RILJ_LOGD) unsljLogRet(response, ret);
- +
- + if (mStkCallSetUpRegistrant != null) {
- + mStkCallSetUpRegistrant.notifyRegistrant(
- + new AsyncResult (null, ret, null));
- + }
- + break;
- +
- + case RIL_UNSOL_SIM_SMS_STORAGE_FULL:
- + if (RILJ_LOGD) unsljLog(response);
- +
- + if (mIccSmsFullRegistrant != null) {
- + mIccSmsFullRegistrant.notifyRegistrant();
- + }
- + break;
- +
- + case RIL_UNSOL_SIM_REFRESH:
- + if (RILJ_LOGD) unsljLogRet(response, ret);
- +
- + if (mIccRefreshRegistrant != null) {
- + mIccRefreshRegistrant.notifyRegistrant(
- + new AsyncResult (null, ret, null));
- + }
- + break;
- +
- + case RIL_UNSOL_CALL_RING:
- + if (RILJ_LOGD) unsljLogRet(response, ret);
- +
- + if (mRingRegistrant != null) {
- + mRingRegistrant.notifyRegistrant(
- + new AsyncResult (null, ret, null));
- + }
- + break;
- +
- + case RIL_UNSOL_RESTRICTED_STATE_CHANGED:
- + if (RILJ_LOGD) unsljLogvRet(response, ret);
- + if (mRestrictedStateRegistrant != null) {
- + mRestrictedStateRegistrant.notifyRegistrant(
- + new AsyncResult (null, ret, null));
- + }
- + break;
- +
- + case RIL_UNSOL_RESPONSE_SIM_STATUS_CHANGED:
- + if (RILJ_LOGD) unsljLog(response);
- +
- + if (mIccStatusChangedRegistrants != null) {
- + mIccStatusChangedRegistrants.notifyRegistrants();
- + }
- + break;
- +
- + case RIL_UNSOL_RESPONSE_CDMA_NEW_SMS:
- + if (RILJ_LOGD) unsljLog(response);
- +
- + SmsMessage sms = (SmsMessage) ret;
- +
- + if (mSMSRegistrant != null) {
- + mSMSRegistrant
- + .notifyRegistrant(new AsyncResult(null, sms, null));
- + }
- + break;
- +
- + case RIL_UNSOL_RESPONSE_NEW_BROADCAST_SMS:
- + if (RILJ_LOGD) unsljLog(response);
- +
- + if (mGsmBroadcastSmsRegistrant != null) {
- + mGsmBroadcastSmsRegistrant
- + .notifyRegistrant(new AsyncResult(null, ret, null));
- + }
- + break;
- +
- + case RIL_UNSOL_CDMA_RUIM_SMS_STORAGE_FULL:
- + if (RILJ_LOGD) unsljLog(response);
- +
- + if (mIccSmsFullRegistrant != null) {
- + mIccSmsFullRegistrant.notifyRegistrant();
- + }
- + break;
- +
- + case RIL_UNSOL_ENTER_EMERGENCY_CALLBACK_MODE:
- + if (RILJ_LOGD) unsljLog(response);
- +
- + if (mEmergencyCallbackModeRegistrant != null) {
- + mEmergencyCallbackModeRegistrant.notifyRegistrant();
- + }
- + break;
- +
- + case RIL_UNSOL_CDMA_CALL_WAITING:
- + if (RILJ_LOGD) unsljLogRet(response, ret);
- +
- + if (mCallWaitingInfoRegistrants != null) {
- + mCallWaitingInfoRegistrants.notifyRegistrants(
- + new AsyncResult (null, ret, null));
- + }
- + break;
- +
- + case RIL_UNSOL_CDMA_OTA_PROVISION_STATUS:
- + if (RILJ_LOGD) unsljLogRet(response, ret);
- +
- + if (mOtaProvisionRegistrants != null) {
- + mOtaProvisionRegistrants.notifyRegistrants(
- + new AsyncResult (null, ret, null));
- + }
- + break;
- +
- + case RIL_UNSOL_CDMA_INFO_REC:
- + ArrayList<CdmaInformationRecords> listInfoRecs;
- +
- + try {
- + listInfoRecs = (ArrayList<CdmaInformationRecords>)ret;
- + } catch (ClassCastException e) {
- + Log.e(LOG_TAG, "Unexpected exception casting to listInfoRec
- + break;
- + }
- +
- + for (CdmaInformationRecords rec : listInfoRecs) {
- + if (RILJ_LOGD) unsljLogRet(response, rec);
- + notifyRegistrantsCdmaInfoRec(rec);
- + }
- + break;
- +
- + case RIL_UNSOL_OEM_HOOK_RAW:
- + if (RILJ_LOGD) unsljLogvRet(response, IccUtils.bytesToHexString
- + if (mUnsolOemHookRawRegistrant != null) {
- + mUnsolOemHookRawRegistrant.notifyRegistrant(new AsyncResult
- + }
- + break;
- +
- + case RIL_UNSOL_RINGBACK_TONE:
- + if (RILJ_LOGD) unsljLogvRet(response, ret);
- + if (mRingbackToneRegistrants != null) {
- + boolean playtone = (((int[])ret)[0] == 1);
- + mRingbackToneRegistrants.notifyRegistrants(
- + new AsyncResult (null, playtone, null))
- + }
- + break;
- +
- + case RIL_UNSOL_RESEND_INCALL_MUTE:
- + if (RILJ_LOGD) unsljLogRet(response, ret);
- +
- + if (mResendIncallMuteRegistrants != null) {
- + mResendIncallMuteRegistrants.notifyRegistrants(
- + new AsyncResult (null, ret, null));
- + }
- + break;
- +
- + case 1031:
- + break;
- + case 1032:
- + break;
- + case 1033:
- + break;
- + case 1034:
- + break;
- + case 1035:
- + break;
- + case 1036:
- + break;
- + case 1037:
- + break;
- +
- + }
- + }
- +
- + private void setRadioStateFromRILInt (int stateCode) {
- + CommandsInterface.RadioState radioState;
- + HandlerThread handlerThread;
- + Looper looper;
- + IccHandler iccHandler;
- +
- + switch (stateCode) {
- + case RIL_INT_RADIO_OFF:
- + radioState = CommandsInterface.RadioState.RADIO_OFF;
- + break;
- + case RIL_INT_RADIO_UNAVALIABLE:
- + radioState = CommandsInterface.RadioState.RADIO_UNAVAILABLE;
- + break;
- + case RIL_INT_RADIO_ON:
- + if (mIccHandler == null) {
- + handlerThread = new HandlerThread("IccHandler");
- + mIccThread = handlerThread;
- +
- + mIccThread.start();
- +
- + looper = mIccThread.getLooper();
- + mIccHandler = new IccHandler(this,looper);
- + mIccHandler.run();
- + }
- + if (mPhoneType == RILConstants.CDMA_PHONE) {
- + radioState = CommandsInterface.RadioState.RUIM_NOT_READY;
- + } else {
- + radioState = CommandsInterface.RadioState.SIM_NOT_READY;
- + }
- + setRadioState(radioState);
- + break;
- + default:
- + throw new RuntimeException("Unrecognized RIL_RadioState: " + st
- + }
- +
- + if (mInitialRadioStateChange) {
- + if (radioState.isOn()) {
- + Log.d(LOG_TAG, "Radio ON @ init; reset to OFF");
- + setRadioPower(false, null);
- + }
- + else {
- + setRadioState (radioState);
- + }
- + mInitialRadioStateChange = false;
- + }
- + else {
- + setRadioState (radioState);
- + }
- + }
- + class IccHandler extends Handler implements Runnable {
- + private static final int EVENT_RADIO_ON = 1;
- + private static final int EVENT_ICC_STATUS_CHANGED = 2;
- + private static final int EVENT_GET_ICC_STATUS_DONE = 3;
- + private static final int EVENT_RADIO_OFF_OR_UNAVAILABLE = 4;
- +
- + private RIL mRil;
- + private boolean mRadioOn = false;
- +
- + public IccHandler (RIL ril, Looper looper) {
- + super (looper);
- + mRil = ril;
- + }
- +
- + public void handleMessage (Message paramMessage) {
- + switch (paramMessage.what) {
- + case EVENT_RADIO_ON:
- + mRadioOn = true;
- + Log.d(LOG_TAG, "Radio on -> Forcing sim status update");
- + sendMessage(obtainMessage(EVENT_ICC_STATUS_CHANGED));
- + break;
- + case EVENT_GET_ICC_STATUS_DONE:
- + AsyncResult asyncResult = (AsyncResult) paramMessage.obj;
- + if (asyncResult.exception != null) {
- + Log.e (LOG_TAG, "IccCardStatusDone shouldn't return exc
- + break;
- + }
- + IccCardStatus status = (IccCardStatus) asyncResult.result;
- + if (status.getNumApplications() == 0) {
- + if (!mRil.getRadioState().isOn()) {
- + break;
- + }
- +
- + if (mPhoneType == RILConstants.CDMA_PHONE) {
- + mRil.setRadioState(CommandsInterface.RadioState.RUI
- + } else {
- + mRil.setRadioState(CommandsInterface.RadioState.SIM
- + }
- + } else {
- + int appIndex = -1;
- + if (mPhoneType == RILConstants.CDMA_PHONE) {
- + appIndex = status.getCdmaSubscriptionAppIndex();
- + Log.d(LOG_TAG, "This is a CDMA PHONE " + appIndex);
- + } else {
- + appIndex = status.getGsmUmtsSubscriptionAppIndex();
- + Log.d(LOG_TAG, "This is a GSM PHONE " + appIndex);
- + }
- +
- + IccCardApplication application = status.getApplication(
- + IccCardApplication.AppState app_state = application.app
- + IccCardApplication.AppType app_type = application.app_t
- +
- + switch (app_state) {
- + case APPSTATE_PIN:
- + case APPSTATE_PUK:
- + switch (app_type) {
- + case APPTYPE_SIM:
- + case APPTYPE_USIM:
- + mRil.setRadioState(CommandsInterface.Ra
- + break;
- + case APPTYPE_RUIM:
- + mRil.setRadioState(CommandsInterface.Ra
- + break;
- + default:
- + Log.e(LOG_TAG, "Currently we don't hand
- + return;
- + }
- + break;
- + case APPSTATE_READY:
- + switch (app_type) {
- + case APPTYPE_SIM:
- + case APPTYPE_USIM:
- + mRil.setRadioState(CommandsInterface.Ra
- + break;
- + case APPTYPE_RUIM:
- + mRil.setRadioState(CommandsInterface.Ra
- + break;
- + default:
- + Log.e(LOG_TAG, "Currently we don't hand
- + return;
- + }
- + break;
- + default:
- + return;
- + }
- + }
- + break;
- + case EVENT_ICC_STATUS_CHANGED:
- + if (mRadioOn) {
- + Log.d(LOG_TAG, "Received EVENT_ICC_STATUS_CHANGED, call
- + mRil.getIccCardStatus(obtainMessage(EVENT_GET_ICC_STAT
- + } else {
- + Log.d(LOG_TAG, "Received EVENT_ICC_STATUS_CHANGED whil
- + }
- + break;
- + case EVENT_RADIO_OFF_OR_UNAVAILABLE:
- + mRadioOn = false;
- + // disposeCards(); // to be verified;
- + default:
- + Log.e(LOG_TAG, " Unknown Event " + paramMessage.what);
- + break;
- + }
- + }
- +
- + public void run () {
- + mRil.registerForIccStatusChanged(this, EVENT_ICC_STATUS_CHANGED, nu
- + Message msg = obtainMessage(EVENT_RADIO_ON);
- + mRil.getIccCardStatus(msg);
- + }
- + }
- +}
- diff --git a/telephony/java/com/android/internal/telephony/SemcRIL.java b/teleph
- new file mode 100644
- index 0000000..a907378
- --- /dev/null
- +++ b/telephony/java/com/android/internal/telephony/SemcRIL.java
- @@ -0,0 +1,443 @@
- +/*
- + * Copyright (C) 2011 The CyanogenMod 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.
- + */
- +
- +package com.android.internal.telephony;
- +
- +import static com.android.internal.telephony.RILConstants.*;
- +
- +import android.content.Context;
- +import android.os.Message;
- +import android.os.Parcel;
- +import android.util.Log;
- +
- +import com.android.internal.telephony.DataCallState;
- +import com.android.internal.telephony.gsm.NetworkInfo;
- +import com.android.internal.telephony.IccCardApplication;
- +import com.android.internal.telephony.IccCardStatus;
- +
- +import java.util.ArrayList;
- +
- +
- +/**
- + * Custom SEMC ril
- + *
- + * {@hide}
- + */
- +public class SemcRIL extends QualcommNoSimReadyRIL implements CommandsInterface
- + protected String mAid;
- +
- +
- + public SemcRIL(Context context) {
- + super(context);
- + }
- +
- + public SemcRIL(Context context, int networkMode, int cdmaSubscription) {
- + super(context, networkMode, cdmaSubscription);
- + }
- +
- + @Override
- + public void
- + supplyIccPin(String pin, Message result) {
- + // but this request is also valid for SIM and RUIM
- + RILRequest rr = RILRequest.obtain(RIL_REQUEST_ENTER_SIM_PIN, result);
- +
- +
- + if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mR
- +
- + rr.mp.writeInt(0);
- + rr.mp.writeString(mAid);
- + rr.mp.writeString(pin);
- +
- + send(rr);
- + }
- +
- + @Override
- + public void
- + supplyIccPuk(String puk, String newPin, Message result) {
- + //Note: This RIL request has not been renamed to ICC,
- + // but this request is also valid for SIM and RUIM
- + RILRequest rr = RILRequest.obtain(RIL_REQUEST_ENTER_SIM_PUK, result);
- +
- + if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mR
- +
- + rr.mp.writeInt(0);
- + rr.mp.writeString(mAid);
- + rr.mp.writeString(puk);
- + rr.mp.writeString(newPin);
- +
- + send(rr);
- + }
- +
- + @Override
- + public void
- + supplyIccPin2(String pin, Message result) {
- + //Note: This RIL request has not been renamed to ICC,
- + // but this request is also valid for SIM and RUIM
- + RILRequest rr = RILRequest.obtain(RIL_REQUEST_ENTER_SIM_PIN2, result);
- +
- + if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mR
- +
- + rr.mp.writeInt(0);
- + rr.mp.writeString(mAid);
- + rr.mp.writeString(pin);
- +
- + send(rr);
- + }
- +
- + @Override
- + public void
- + supplyIccPuk2(String puk, String newPin2, Message result) {
- + //Note: This RIL request has not been renamed to ICC,
- + // but this request is also valid for SIM and RUIM
- + RILRequest rr = RILRequest.obtain(RIL_REQUEST_ENTER_SIM_PUK2, result);
- +
- + if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mR
- +
- + rr.mp.writeInt(0);
- + rr.mp.writeString(mAid);
- + rr.mp.writeString(puk);
- + rr.mp.writeString(newPin2);
- +
- + send(rr);
- + }
- +
- + @Override
- + public void
- + changeIccPin(String oldPin, String newPin, Message result) {
- + //Note: This RIL request has not been renamed to ICC,
- + // but this request is also valid for SIM and RUIM
- + RILRequest rr = RILRequest.obtain(RIL_REQUEST_CHANGE_SIM_PIN, result);
- +
- + if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mR
- +
- + rr.mp.writeInt(0);
- + rr.mp.writeString(mAid);
- + rr.mp.writeString(oldPin);
- + rr.mp.writeString(newPin);
- +
- + send(rr);
- + }
- +
- + @Override
- + public void
- + changeIccPin2(String oldPin2, String newPin2, Message result) {
- + //Note: This RIL request has not been renamed to ICC,
- + // but this request is also valid for SIM and RUIM
- + RILRequest rr = RILRequest.obtain(RIL_REQUEST_CHANGE_SIM_PIN2, result);
- +
- + if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mR
- +
- + rr.mp.writeInt(0);
- + rr.mp.writeString(mAid);
- + rr.mp.writeString(oldPin2);
- + rr.mp.writeString(newPin2);
- +
- + send(rr);
- + }
- +
- + @Override
- + public void
- + changeBarringPassword(String facility, String oldPwd, String newPwd, Messag
- + RILRequest rr = RILRequest.obtain(RIL_REQUEST_CHANGE_BARRING_PASSWORD,
- +
- + if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mR
- +
- + rr.mp.writeInt(3);
- + rr.mp.writeString(facility);
- + rr.mp.writeString(oldPwd);
- + rr.mp.writeString(newPwd);
- +
- + send(rr);
- + }
- +
- + @Override
- + public void
- + supplyNetworkDepersonalization(String netpin, Message result) {
- + RILRequest rr = RILRequest.obtain(RIL_REQUEST_ENTER_NETWORK_DEPERSONALI
- +
- + if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mR
- +
- + rr.mp.writeInt(3);
- + rr.mp.writeString(netpin);
- +
- + send(rr);
- + }
- +
- + @Override
- + public void
- + dial(String address, int clirMode, UUSInfo uusInfo, Message result) {
- + RILRequest rr = RILRequest.obtain(RIL_REQUEST_DIAL, result);
- +
- + rr.mp.writeString(address);
- + rr.mp.writeInt(clirMode);
- +
- + if (uusInfo == null) {
- + rr.mp.writeInt(0); // UUS information is absent
- + } else {
- + rr.mp.writeInt(1); // UUS information is present
- + rr.mp.writeInt(uusInfo.getType());
- + rr.mp.writeInt(uusInfo.getDcs());
- + rr.mp.writeByteArray(uusInfo.getUserData());
- + }
- + rr.mp.writeInt(0xff);
- +
- + if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mR
- +
- + send(rr);
- + }
- +
- + @Override
- + public void
- + getIMSI(Message result) {
- + RILRequest rr = RILRequest.obtain(RIL_REQUEST_GET_IMSI, result);
- + rr.mp.writeInt(0);
- + rr.mp.writeString(mAid);
- + if (RILJ_LOGD) riljLog(rr.serialString() +
- + "> getIMSI:RIL_REQUEST_GET_IMSI " +
- + RIL_REQUEST_GET_IMSI +
- + " " + requestToString(rr.mRequest));
- +
- + send(rr);
- + }
- +
- + @Override
- + public void
- + setupDataCall(String radioTechnology, String profile, String apn,
- + String user, String password, String authType, String protocol,
- + Message result) {
- + RILRequest rr
- + = RILRequest.obtain(RIL_REQUEST_SETUP_DATA_CALL, result);
- +
- + rr.mp.writeInt(7);
- +
- + rr.mp.writeString(radioTechnology);
- + rr.mp.writeString(profile);
- + rr.mp.writeString(apn);
- + rr.mp.writeString(user);
- + rr.mp.writeString(password);
- + rr.mp.writeString(authType);
- + rr.mp.writeString("0");
- +
- + if (RILJ_LOGD) riljLog(rr.serialString() + "> "
- + + requestToString(rr.mRequest) + " " + radioTechnology + " "
- + + profile + " " + apn + " " + user + " "
- + + password + " " + authType + " " + protocol);
- +
- + send(rr);
- + }
- +
- + @Override
- + public void
- + iccIO (int command, int fileid, String path, int p1, int p2, int p3,
- + String data, String pin2, Message result) {
- + //Note: This RIL request has not been renamed to ICC,
- + // but this request is also valid for SIM and RUIM
- + RILRequest rr
- + = RILRequest.obtain(RIL_REQUEST_SIM_IO, result);
- +
- + rr.mp.writeInt(0);
- + rr.mp.writeString(mAid);
- + rr.mp.writeInt(command);
- + rr.mp.writeInt(fileid);
- + rr.mp.writeString(path);
- + rr.mp.writeInt(p1);
- + rr.mp.writeInt(p2);
- + rr.mp.writeInt(p3);
- + rr.mp.writeString(data);
- + rr.mp.writeString(pin2);
- +
- + if (RILJ_LOGD) riljLog(rr.serialString() + "> iccIO: " + requestToStrin
- + + " 0x" + Integer.toHexString(command)
- + + " 0x" + Integer.toHexString(fileid) + " "
- + + " path: " + path + ","
- + + p1 + "," + p2 + "," + p3);
- +
- + send(rr);
- + }
- +
- + @Override
- + public void
- + setNetworkSelectionModeAutomatic(Message response) {
- + RILRequest rr
- + = RILRequest.obtain(RIL_REQUEST_SET_NETWORK_SELECTION_AUTOMATIC
- + response);
- +
- + if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mR
- +
- + rr.mp.writeString(null);
- + rr.mp.writeInt(-1);
- + send(rr);
- + }
- +
- + @Override
- + public void
- + setNetworkSelectionModeManual(String operatorNumeric, Message response) {
- + RILRequest rr
- + = RILRequest.obtain(RIL_REQUEST_SET_NETWORK_SELECTION_MANUAL,
- + response);
- +
- + if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mR
- + + " " + operatorNumeric);
- +
- + rr.mp.writeString(operatorNumeric);
- + rr.mp.writeInt(-1);
- +
- + send(rr);
- + }
- +
- + @Override
- + public void
- + queryFacilityLock (String facility, String password, int serviceClass,
- + Message response) {
- + RILRequest rr = RILRequest.obtain(RIL_REQUEST_QUERY_FACILITY_LOCK, resp
- +
- + if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mR
- +
- + // count strings
- + rr.mp.writeInt(5);
- + rr.mp.writeString("0");
- + rr.mp.writeString(mAid);
- + rr.mp.writeString(facility);
- + rr.mp.writeString(password);
- +
- + rr.mp.writeString(Integer.toString(serviceClass));
- +
- + send(rr);
- + }
- +
- + @Override
- + public void
- + setFacilityLock (String facility, boolean lockState, String password,
- + int serviceClass, Message response) {
- + String lockString;
- + RILRequest rr
- + = RILRequest.obtain(RIL_REQUEST_SET_FACILITY_LOCK, response);
- +
- + if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mR
- +
- + // count strings
- + rr.mp.writeInt(6);
- +
- + rr.mp.writeString("0");
- + rr.mp.writeString(mAid);
- + rr.mp.writeString(facility);
- + lockString = (lockState)?"1":"0";
- + rr.mp.writeString(lockString);
- + rr.mp.writeString(password);
- + rr.mp.writeString(Integer.toString(serviceClass));
- +
- + send(rr);
- +
- + }
- +
- + @Override
- + protected Object
- + responseIccCardStatus(Parcel p) {
- + IccCardApplication ca;
- +
- + IccCardStatus status = new IccCardStatus();
- + p.readInt(); // unknown first parameter
- + status.setCardState(p.readInt());
- + status.setUniversalPinState(p.readInt());
- + int gsmUmtsSubscriptionAppCount = p.readInt();
- + int n = 0;
- + for (int i = 0; i < gsmUmtsSubscriptionAppCount; i++) {
- + n = p.readInt();
- + }
- + status.setGsmUmtsSubscriptionAppIndex(n);
- +
- + int cdmaSubscriptionAppCount = p.readInt();
- + for (int i = 0; i < cdmaSubscriptionAppCount; i++) {
- + n = p.readInt();
- + }
- + status.setCdmaSubscriptionAppIndex(n);
- + int numApplications = p.readInt();
- +
- + // limit to maximum allowed applications
- + if (numApplications > IccCardStatus.CARD_MAX_APPS) {
- + numApplications = IccCardStatus.CARD_MAX_APPS;
- + }
- + status.setNumApplications(numApplications);
- +
- + for (int i = 0 ; i < numApplications ; i++) {
- + ca = new IccCardApplication();
- + ca.app_type = ca.AppTypeFromRILInt(p.readInt());
- + ca.app_state = ca.AppStateFromRILInt(p.readInt());
- + ca.perso_substate = ca.PersoSubstateFromRILInt(p.readInt());
- + ca.aid = p.readString();
- + ca.app_label = p.readString();
- + ca.pin1_replaced = p.readInt();
- + ca.pin1 = p.readInt();
- + ca.pin2 = p.readInt();
- + status.addApplication(ca);
- +
- + mAid = ca.aid;
- + }
- +
- + return status;
- + }
- +
- + @Override
- + protected Object
- + responseDataCallList(Parcel p) {
- + int num;
- + ArrayList<DataCallState> response;
- +
- + num = p.readInt();
- + response = new ArrayList<DataCallState>(num);
- +
- + for (int i = 0; i < num; i++) {
- + DataCallState dataCall = new DataCallState();
- +
- + dataCall.cid = p.readInt();
- + dataCall.active = p.readInt();
- + dataCall.type = p.readString();
- + dataCall.apn = p.readString();
- + dataCall.address = p.readString();
- + p.readInt();
- + p.readInt();
- + response.add(dataCall);
- + }
- +
- + return response;
- + }
- +
- + @Override
- + protected Object
- + responseNetworkInfos(Parcel p) {
- + String strings[] = (String [])responseStrings(p);
- + ArrayList<NetworkInfo> ret;
- +
- + if (strings.length % 5 != 0) {
- + throw new RuntimeException(
- + "RIL_REQUEST_QUERY_AVAILABLE_NETWORKS: invalid response. Got "
- + + strings.length + " strings, expected multible of 5");
- + }
- +
- + ret = new ArrayList<NetworkInfo>(strings.length / 5);
- +
- + for (int i = 0 ; i < strings.length ; i += 5) {
- + ret.add (
- + new NetworkInfo(
- + strings[i+0],
- + strings[i+1],
- + strings[i+2],
- + strings[i+3]));
- + }
- +
- + return ret;
- + }
- +}
- diff --git a/telephony/java/com/android/internal/telephony/gsm/SmsMessage.java b
- index 0be9466..136e2ea 100644
- --- a/telephony/java/com/android/internal/telephony/gsm/SmsMessage.java
- +++ b/telephony/java/com/android/internal/telephony/gsm/SmsMessage.java
- @@ -1027,7 +1027,12 @@ public class SmsMessage extends SmsMessageBase{
- case 3: // reserved
- Log.w(LOG_TAG, "1 - Unsupported SMS data coding scheme "
- + (dataCodingScheme & 0xff));
- - encodingType = ENCODING_8BIT;
- + if (SimRegionCache.getRegion() == SimRegionCache.MCC_KOREAN
- + Log.w(LOG_TAG, "Korean SIM, using KSC5601 for decoding.
- + encodingType = ENCODING_KSC5601;
- + } else {
- + encodingType = ENCODING_8BIT;
- + }
- break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement