Merge "Update the button layouts and colors of StkInputActivity"
diff --git a/Android.mk b/Android.mk
index a9e2d1d..135fcf9 100644
--- a/Android.mk
+++ b/Android.mk
@@ -10,6 +10,7 @@
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := Stk
+LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_CERTIFICATE := platform
include $(BUILD_PACKAGE)
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index f4652da..935c920 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -109,7 +109,6 @@
<action android:name= "com.android.internal.stk.session_end" />
<action android:name= "com.android.internal.stk.icc_status_change" />
<action android:name= "com.android.internal.stk.alpha_notify" />
- <action android:name= "android.intent.action.LOCALE_CHANGED" />
</intent-filter>
</receiver>
diff --git a/src/com/android/stk/StkAppService.java b/src/com/android/stk/StkAppService.java
index a85402c..b618ca1 100644
--- a/src/com/android/stk/StkAppService.java
+++ b/src/com/android/stk/StkAppService.java
@@ -160,6 +160,7 @@
private StkContext[] mStkContext = null;
private int mSimCount = 0;
private IProcessObserver.Stub mProcessObserver = null;
+ private BroadcastReceiver mLocaleChangeReceiver = null;
private TonePlayer mTonePlayer = null;
private Vibrator mVibrator = null;
@@ -378,6 +379,7 @@
public void onDestroy() {
CatLog.d(LOG_TAG, "onDestroy()");
unregisterProcessObserver();
+ unregisterLocaleChangeReceiver();
sInstance = null;
waitForLooper();
mServiceLooper.quit();
@@ -1616,11 +1618,25 @@
}
private void unregisterEvent(int event, int slotId) {
+ for (int slot = PhoneConstants.SIM_ID_1; slot < mSimCount; slot++) {
+ if (slot != slotId) {
+ if (mStkContext[slot].mSetupEventListSettings != null) {
+ if (findEvent(event, mStkContext[slot].mSetupEventListSettings.eventList)) {
+ // The specified event shall never be canceled
+ // if there is any other SIM card which requests the event.
+ return;
+ }
+ }
+ }
+ }
+
switch (event) {
case IDLE_SCREEN_AVAILABLE_EVENT:
unregisterProcessObserver(AppInterface.CommandType.SET_UP_EVENT_LIST, slotId);
break;
case LANGUAGE_SELECTION_EVENT:
+ unregisterLocaleChangeReceiver();
+ break;
default:
break;
}
@@ -1636,6 +1652,8 @@
registerProcessObserver();
break;
case LANGUAGE_SELECTION_EVENT:
+ registerLocaleChangeReceiver();
+ break;
default:
break;
}
@@ -1705,6 +1723,28 @@
}
}
+ private synchronized void registerLocaleChangeReceiver() {
+ if (mLocaleChangeReceiver == null) {
+ mLocaleChangeReceiver = new BroadcastReceiver() {
+ @Override public void onReceive(Context context, Intent intent) {
+ if (Intent.ACTION_LOCALE_CHANGED.equals(intent.getAction())) {
+ Message message = mServiceHandler.obtainMessage();
+ message.arg1 = OP_LOCALE_CHANGED;
+ mServiceHandler.sendMessage(message);
+ }
+ }
+ };
+ registerReceiver(mLocaleChangeReceiver, new IntentFilter(Intent.ACTION_LOCALE_CHANGED));
+ }
+ }
+
+ private synchronized void unregisterLocaleChangeReceiver() {
+ if (mLocaleChangeReceiver != null) {
+ unregisterReceiver(mLocaleChangeReceiver);
+ mLocaleChangeReceiver = null;
+ }
+ }
+
private void sendSetUpEventResponse(int event, byte[] addedInfo, int slotId) {
CatLog.d(this, "sendSetUpEventResponse: event : " + event + "slotId = " + slotId);
diff --git a/src/com/android/stk/StkCmdReceiver.java b/src/com/android/stk/StkCmdReceiver.java
index d011eee..aeb4e22 100644
--- a/src/com/android/stk/StkCmdReceiver.java
+++ b/src/com/android/stk/StkCmdReceiver.java
@@ -45,8 +45,6 @@
handleAction(context, intent, StkAppService.OP_END_SESSION);
} else if (action.equals(AppInterface.CAT_ICC_STATUS_CHANGE)) {
handleAction(context, intent, StkAppService.OP_CARD_STATUS_CHANGED);
- } else if (action.equals(Intent.ACTION_LOCALE_CHANGED)) {
- handleLocaleChange(context);
} else if (action.equals(AppInterface.CAT_ALPHA_NOTIFY_ACTION)) {
handleAction(context, intent, StkAppService.OP_ALPHA_NOTIFY);
}
@@ -86,11 +84,4 @@
toService.putExtras(args);
context.startService(toService);
}
-
- private void handleLocaleChange(Context context) {
- Bundle args = new Bundle();
- args.putInt(StkAppService.OPCODE, StkAppService.OP_LOCALE_CHANGED);
- context.startService(new Intent(context, StkAppService.class)
- .putExtras(args));
- }
}