merge in lmp-mr1-release history after reset to lmp-mr1-dev
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 4fd97fd..3d0eba6 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -28,6 +28,7 @@
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
+ <uses-permission android:name="android.permission.MANAGE_USERS" />
<application android:name="CellBroadcastReceiverApp"
android:label="@string/app_label"
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java
index ebb706c..fa78a27 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java
@@ -21,11 +21,13 @@
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
+import android.app.ActivityManagerNative;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.IBinder;
+import android.os.RemoteException;
import android.os.UserHandle;
import android.preference.PreferenceManager;
import android.provider.Telephony;
@@ -117,7 +119,16 @@
Telephony.Sms.Intents.SMS_CB_RECEIVED_ACTION.equals(action)) {
handleCellBroadcastIntent(intent);
} else if (SHOW_NEW_ALERT_ACTION.equals(action)) {
- showNewAlert(intent);
+ try {
+ if (UserHandle.myUserId() ==
+ ActivityManagerNative.getDefault().getCurrentUser().id) {
+ showNewAlert(intent);
+ } else {
+ Log.d(TAG,"Not active user, ignore the alert display");
+ }
+ } catch (RemoteException e) {
+ e.printStackTrace();
+ }
} else {
Log.e(TAG, "Unrecognized intent action: " + action);
}
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastListActivity.java b/src/com/android/cellbroadcastreceiver/CellBroadcastListActivity.java
index cb7fb8c..5e71a24 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastListActivity.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastListActivity.java
@@ -30,6 +30,7 @@
import android.content.Loader;
import android.database.Cursor;
import android.os.Bundle;
+import android.os.UserHandle;
import android.provider.Telephony;
import android.telephony.CellBroadcastMessage;
import android.view.ContextMenu;
@@ -121,8 +122,10 @@
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
menu.add(0, MENU_DELETE_ALL, 0, R.string.menu_delete_all).setIcon(
android.R.drawable.ic_menu_delete);
- menu.add(0, MENU_PREFERENCES, 0, R.string.menu_preferences).setIcon(
- android.R.drawable.ic_menu_preferences);
+ if (UserHandle.myUserId() == UserHandle.USER_OWNER) {
+ menu.add(0, MENU_PREFERENCES, 0, R.string.menu_preferences).setIcon(
+ android.R.drawable.ic_menu_preferences);
+ }
}
@Override
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastReceiver.java b/src/com/android/cellbroadcastreceiver/CellBroadcastReceiver.java
index a04cc2c..29a8842 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastReceiver.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastReceiver.java
@@ -61,17 +61,12 @@
Log.d(TAG, "Service state changed! " + newState + " Full: " + serviceState +
" Current state=" + mServiceState);
mServiceState = newState;
- if (newState == ServiceState.STATE_IN_SERVICE ||
- newState == ServiceState.STATE_EMERGENCY_ONLY) {
+ if (((newState == ServiceState.STATE_IN_SERVICE) ||
+ (newState == ServiceState.STATE_EMERGENCY_ONLY)) &&
+ (UserHandle.myUserId() == UserHandle.USER_OWNER)) {
startConfigService(context.getApplicationContext());
}
}
- } else if (Intent.ACTION_AIRPLANE_MODE_CHANGED.equals(action)) {
- boolean airplaneModeOn = intent.getBooleanExtra("state", false);
- if (DBG) log("airplaneModeOn: " + airplaneModeOn);
- if (!airplaneModeOn) {
- startConfigService(context);
- }
} else if (Telephony.Sms.Intents.SMS_EMERGENCY_CB_RECEIVED_ACTION.equals(action) ||
Telephony.Sms.Intents.SMS_CB_RECEIVED_ACTION.equals(action)) {
// If 'privileged' is false, it means that the intent was delivered to the base
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
index 751e7ef..f3bfd86 100644
--- a/tests/AndroidManifest.xml
+++ b/tests/AndroidManifest.xml
@@ -20,6 +20,7 @@
<!-- Test Apk is signed with platform key in order to use this permission. -->
<uses-permission android:name="android.permission.BROADCAST_SMS"/>
+ <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/>
<!-- We add an application tag here just so that we can indicate that
this package needs to link against the android.test library,
diff --git a/tests/src/com/android/cellbroadcastreceiver/tests/SendCdmaCmasMessages.java b/tests/src/com/android/cellbroadcastreceiver/tests/SendCdmaCmasMessages.java
index f7bee6e..8aa7106 100644
--- a/tests/src/com/android/cellbroadcastreceiver/tests/SendCdmaCmasMessages.java
+++ b/tests/src/com/android/cellbroadcastreceiver/tests/SendCdmaCmasMessages.java
@@ -16,9 +16,12 @@
package com.android.cellbroadcastreceiver.tests;
+import android.Manifest;
import android.app.Activity;
+import android.app.AppOpsManager;
import android.content.Intent;
import android.os.Parcel;
+import android.os.UserHandle;
import android.provider.Telephony;
import android.telephony.SmsCbCmasInfo;
import android.telephony.SmsCbLocation;
@@ -70,7 +73,9 @@
Intent intent = new Intent(Telephony.Sms.Intents.SMS_EMERGENCY_CB_RECEIVED_ACTION);
intent.putExtra("message", cbMessage);
- activity.sendOrderedBroadcast(intent, "android.permission.RECEIVE_SMS");
+ activity.sendOrderedBroadcastAsUser(intent, UserHandle.ALL,
+ Manifest.permission.RECEIVE_EMERGENCY_BROADCAST,
+ AppOpsManager.OP_RECEIVE_EMERGECY_SMS, null, null, Activity.RESULT_OK, null, null);
}
public static void testSendCmasExtremeAlert(Activity activity, int messageId) {
@@ -82,7 +87,9 @@
Intent intent = new Intent(Telephony.Sms.Intents.SMS_EMERGENCY_CB_RECEIVED_ACTION);
intent.putExtra("message", cbMessage);
- activity.sendOrderedBroadcast(intent, "android.permission.RECEIVE_SMS");
+ activity.sendOrderedBroadcastAsUser(intent, UserHandle.ALL,
+ Manifest.permission.RECEIVE_EMERGENCY_BROADCAST,
+ AppOpsManager.OP_RECEIVE_EMERGECY_SMS, null, null, Activity.RESULT_OK, null, null);
}
public static void testSendCmasSevereAlert(Activity activity, int messageId) {
@@ -94,7 +101,9 @@
Intent intent = new Intent(Telephony.Sms.Intents.SMS_EMERGENCY_CB_RECEIVED_ACTION);
intent.putExtra("message", cbMessage);
- activity.sendOrderedBroadcast(intent, "android.permission.RECEIVE_SMS");
+ activity.sendOrderedBroadcastAsUser(intent, UserHandle.ALL,
+ Manifest.permission.RECEIVE_EMERGENCY_BROADCAST,
+ AppOpsManager.OP_RECEIVE_EMERGECY_SMS, null, null, Activity.RESULT_OK, null, null);
}
public static void testSendCmasAmberAlert(Activity activity, int messageId) {
@@ -106,7 +115,9 @@
Intent intent = new Intent(Telephony.Sms.Intents.SMS_EMERGENCY_CB_RECEIVED_ACTION);
intent.putExtra("message", cbMessage);
- activity.sendOrderedBroadcast(intent, "android.permission.RECEIVE_SMS");
+ activity.sendOrderedBroadcastAsUser(intent, UserHandle.ALL,
+ Manifest.permission.RECEIVE_EMERGENCY_BROADCAST,
+ AppOpsManager.OP_RECEIVE_EMERGECY_SMS, null, null, Activity.RESULT_OK, null, null);
}
public static void testSendCmasMonthlyTest(Activity activity, int messageId) {
@@ -118,7 +129,9 @@
Intent intent = new Intent(Telephony.Sms.Intents.SMS_EMERGENCY_CB_RECEIVED_ACTION);
intent.putExtra("message", cbMessage);
- activity.sendOrderedBroadcast(intent, "android.permission.RECEIVE_SMS");
+ activity.sendOrderedBroadcastAsUser(intent, UserHandle.ALL,
+ Manifest.permission.RECEIVE_EMERGENCY_BROADCAST,
+ AppOpsManager.OP_RECEIVE_EMERGECY_SMS, null, null, Activity.RESULT_OK, null, null);
}
/**
diff --git a/tests/src/com/android/cellbroadcastreceiver/tests/SendTestMessages.java b/tests/src/com/android/cellbroadcastreceiver/tests/SendTestMessages.java
index e85299d..11d562b 100644
--- a/tests/src/com/android/cellbroadcastreceiver/tests/SendTestMessages.java
+++ b/tests/src/com/android/cellbroadcastreceiver/tests/SendTestMessages.java
@@ -16,8 +16,11 @@
package com.android.cellbroadcastreceiver.tests;
+import android.Manifest;
import android.app.Activity;
+import android.app.AppOpsManager;
import android.content.Intent;
+import android.os.UserHandle;
import android.provider.Telephony.Sms.Intents;
import android.telephony.SmsCbLocation;
import android.telephony.SmsCbMessage;
@@ -425,27 +428,31 @@
public static void testSendMessage7bit(Activity activity, int serialNumber, int category) {
Intent intent = new Intent(Intents.SMS_CB_RECEIVED_ACTION);
intent.putExtra("message", createFromPdu(gsm7BitTest, serialNumber, category));
- activity.sendOrderedBroadcast(intent, "android.permission.RECEIVE_SMS");
+ activity.sendOrderedBroadcastAsUser(intent, UserHandle.ALL, Manifest.permission.RECEIVE_SMS,
+ AppOpsManager.OP_RECEIVE_SMS, null, null, Activity.RESULT_OK, null, null);
}
public static void testSendMessage7bitUmts(Activity activity, int serialNumber, int category) {
Intent intent = new Intent(Intents.SMS_CB_RECEIVED_ACTION);
intent.putExtra("message", createFromPdu(gsm7BitTestUmts, serialNumber, category));
- activity.sendOrderedBroadcast(intent, "android.permission.RECEIVE_SMS");
+ activity.sendOrderedBroadcastAsUser(intent, UserHandle.ALL, Manifest.permission.RECEIVE_SMS,
+ AppOpsManager.OP_RECEIVE_SMS, null, null, Activity.RESULT_OK, null, null);
}
public static void testSendMessage7bitNoPadding(Activity activity, int serialNumber,
int category) {
Intent intent = new Intent(Intents.SMS_CB_RECEIVED_ACTION);
intent.putExtra("message", createFromPdu(gsm7BitTestNoPadding, serialNumber, category));
- activity.sendOrderedBroadcast(intent, "android.permission.RECEIVE_SMS");
+ activity.sendOrderedBroadcastAsUser(intent, UserHandle.ALL, Manifest.permission.RECEIVE_SMS,
+ AppOpsManager.OP_RECEIVE_SMS, null, null, Activity.RESULT_OK, null, null);
}
public static void testSendMessage7bitNoPaddingUmts(Activity activity, int serialNumber,
int category) {
Intent intent = new Intent(Intents.SMS_CB_RECEIVED_ACTION);
intent.putExtra("message", createFromPdu(gsm7BitTestNoPaddingUmts, serialNumber, category));
- activity.sendOrderedBroadcast(intent, "android.permission.RECEIVE_SMS");
+ activity.sendOrderedBroadcastAsUser(intent, UserHandle.ALL, Manifest.permission.RECEIVE_SMS,
+ AppOpsManager.OP_RECEIVE_SMS, null, null, Activity.RESULT_OK, null, null);
}
public static void testSendMessage7bitMultipageGsm(Activity activity, int serialNumber,
@@ -455,21 +462,24 @@
pdus[0] = gsm7BitTestMultipage1;
pdus[1] = gsm7BitTestMultipage2;
intent.putExtra("message", createFromPdus(pdus, serialNumber, category));
- activity.sendOrderedBroadcast(intent, "android.permission.RECEIVE_SMS");
+ activity.sendOrderedBroadcastAsUser(intent, UserHandle.ALL, Manifest.permission.RECEIVE_SMS,
+ AppOpsManager.OP_RECEIVE_SMS, null, null, Activity.RESULT_OK, null, null);
}
public static void testSendMessage7bitMultipageUmts(Activity activity, int serialNumber,
int category) {
Intent intent = new Intent(Intents.SMS_CB_RECEIVED_ACTION);
intent.putExtra("message", createFromPdu(gsm7BitTestMultipageUmts, serialNumber, category));
- activity.sendOrderedBroadcast(intent, "android.permission.RECEIVE_SMS");
+ activity.sendOrderedBroadcastAsUser(intent, UserHandle.ALL, Manifest.permission.RECEIVE_SMS,
+ AppOpsManager.OP_RECEIVE_SMS, null, null, Activity.RESULT_OK, null, null);
}
public static void testSendMessage7bitWithLanguage(Activity activity, int serialNumber,
int category) {
Intent intent = new Intent(Intents.SMS_CB_RECEIVED_ACTION);
intent.putExtra("message", createFromPdu(gsm7BitTestWithLanguage, serialNumber, category));
- activity.sendOrderedBroadcast(intent, "android.permission.RECEIVE_SMS");
+ activity.sendOrderedBroadcastAsUser(intent, UserHandle.ALL, Manifest.permission.RECEIVE_SMS,
+ AppOpsManager.OP_RECEIVE_SMS, null, null, Activity.RESULT_OK, null, null);
}
public static void testSendMessage7bitWithLanguageInBody(Activity activity, int serialNumber,
@@ -477,7 +487,8 @@
Intent intent = new Intent(Intents.SMS_CB_RECEIVED_ACTION);
intent.putExtra("message", createFromPdu(gsm7BitTestWithLanguageInBody, serialNumber,
category));
- activity.sendOrderedBroadcast(intent, "android.permission.RECEIVE_SMS");
+ activity.sendOrderedBroadcastAsUser(intent, UserHandle.ALL, Manifest.permission.RECEIVE_SMS,
+ AppOpsManager.OP_RECEIVE_SMS, null, null, Activity.RESULT_OK, null, null);
}
public static void testSendMessage7bitWithLanguageInBodyUmts(Activity activity,
@@ -485,26 +496,30 @@
Intent intent = new Intent(Intents.SMS_CB_RECEIVED_ACTION);
intent.putExtra("message", createFromPdu(gsm7BitTestWithLanguageInBodyUmts, serialNumber,
category));
- activity.sendOrderedBroadcast(intent, "android.permission.RECEIVE_SMS");
+ activity.sendOrderedBroadcastAsUser(intent, UserHandle.ALL, Manifest.permission.RECEIVE_SMS,
+ AppOpsManager.OP_RECEIVE_SMS, null, null, Activity.RESULT_OK, null, null);
}
public static void testSendMessageUcs2(Activity activity, int serialNumber, int category) {
Intent intent = new Intent(Intents.SMS_CB_RECEIVED_ACTION);
intent.putExtra("message", createFromPdu(gsmUcs2Test, serialNumber, category));
- activity.sendOrderedBroadcast(intent, "android.permission.RECEIVE_SMS");
+ activity.sendOrderedBroadcastAsUser(intent, UserHandle.ALL, Manifest.permission.RECEIVE_SMS,
+ AppOpsManager.OP_RECEIVE_SMS, null, null, Activity.RESULT_OK, null, null);
}
public static void testSendMessageUcs2Umts(Activity activity, int serialNumber, int category) {
Intent intent = new Intent(Intents.SMS_CB_RECEIVED_ACTION);
intent.putExtra("message", createFromPdu(gsmUcs2TestUmts, serialNumber, category));
- activity.sendOrderedBroadcast(intent, "android.permission.RECEIVE_SMS");
+ activity.sendOrderedBroadcastAsUser(intent, UserHandle.ALL, Manifest.permission.RECEIVE_SMS,
+ AppOpsManager.OP_RECEIVE_SMS, null, null, Activity.RESULT_OK, null, null);
}
public static void testSendMessageUcs2MultipageUmts(Activity activity, int serialNumber,
int category) {
Intent intent = new Intent(Intents.SMS_CB_RECEIVED_ACTION);
intent.putExtra("message", createFromPdu(gsmUcs2TestMultipageUmts, serialNumber, category));
- activity.sendOrderedBroadcast(intent, "android.permission.RECEIVE_SMS");
+ activity.sendOrderedBroadcastAsUser(intent, UserHandle.ALL, Manifest.permission.RECEIVE_SMS,
+ AppOpsManager.OP_RECEIVE_SMS, null, null, Activity.RESULT_OK, null, null);
}
public static void testSendMessageUcs2WithLanguageInBody(Activity activity, int serialNumber,
@@ -512,7 +527,8 @@
Intent intent = new Intent(Intents.SMS_CB_RECEIVED_ACTION);
intent.putExtra("message", createFromPdu(gsmUcs2TestWithLanguageInBody, serialNumber,
category));
- activity.sendOrderedBroadcast(intent, "android.permission.RECEIVE_SMS");
+ activity.sendOrderedBroadcastAsUser(intent, UserHandle.ALL, Manifest.permission.RECEIVE_SMS,
+ AppOpsManager.OP_RECEIVE_SMS, null, null, Activity.RESULT_OK, null, null);
}
public static void testSendMessageUcs2WithLanguageUmts(Activity activity, int serialNumber,
@@ -520,27 +536,31 @@
Intent intent = new Intent(Intents.SMS_CB_RECEIVED_ACTION);
intent.putExtra("message", createFromPdu(gsmUcs2TestWithLanguageInBodyUmts, serialNumber,
category));
- activity.sendOrderedBroadcast(intent, "android.permission.RECEIVE_SMS");
+ activity.sendOrderedBroadcastAsUser(intent, UserHandle.ALL, Manifest.permission.RECEIVE_SMS,
+ AppOpsManager.OP_RECEIVE_SMS, null, null, Activity.RESULT_OK, null, null);
}
public static void testSendEtwsMessageNormal(Activity activity, int serialNumber) {
Intent intent = new Intent(Intents.SMS_EMERGENCY_CB_RECEIVED_ACTION);
intent.putExtra("message", createFromPdu(etwsMessageNormal, serialNumber, 0));
- activity.sendOrderedBroadcast(intent,
- "android.permission.RECEIVE_EMERGENCY_BROADCAST");
+ activity.sendOrderedBroadcastAsUser(intent, UserHandle.ALL,
+ Manifest.permission.RECEIVE_EMERGENCY_BROADCAST,
+ AppOpsManager.OP_RECEIVE_EMERGECY_SMS, null, null, Activity.RESULT_OK, null, null);
}
public static void testSendEtwsMessageCancel(Activity activity, int serialNumber) {
Intent intent = new Intent(Intents.SMS_EMERGENCY_CB_RECEIVED_ACTION);
intent.putExtra("message", createFromPdu(etwsMessageCancel, serialNumber, 0));
- activity.sendOrderedBroadcast(intent,
- "android.permission.RECEIVE_EMERGENCY_BROADCAST");
+ activity.sendOrderedBroadcastAsUser(intent, UserHandle.ALL,
+ Manifest.permission.RECEIVE_EMERGENCY_BROADCAST,
+ AppOpsManager.OP_RECEIVE_EMERGECY_SMS, null, null, Activity.RESULT_OK, null, null);
}
public static void testSendEtwsMessageTest(Activity activity, int serialNumber) {
Intent intent = new Intent(Intents.SMS_EMERGENCY_CB_RECEIVED_ACTION);
intent.putExtra("message", createFromPdu(etwsMessageTest, serialNumber, 0));
- activity.sendOrderedBroadcast(intent,
- "android.permission.RECEIVE_EMERGENCY_BROADCAST");
+ activity.sendOrderedBroadcastAsUser(intent, UserHandle.ALL,
+ Manifest.permission.RECEIVE_EMERGENCY_BROADCAST,
+ AppOpsManager.OP_RECEIVE_EMERGECY_SMS, null, null, Activity.RESULT_OK, null, null);
}
}