am 5e508afc: Merge "Wake up TransactService when MMS data is available"
# By Bin Li
# Via Bin Li (1) and Gerrit Code Review (1)
* commit '5e508afc2cb9a889de49a52d1b6dfe1238fb4630':
Wake up TransactService when MMS data is available
diff --git a/src/com/android/mms/transaction/MmsSystemEventReceiver.java b/src/com/android/mms/transaction/MmsSystemEventReceiver.java
index 78b027b..2b70ba9 100644
--- a/src/com/android/mms/transaction/MmsSystemEventReceiver.java
+++ b/src/com/android/mms/transaction/MmsSystemEventReceiver.java
@@ -64,13 +64,17 @@
Uri changed = (Uri) intent.getParcelableExtra(Mms.Intents.DELETED_CONTENTS);
MmsApp.getApplication().getPduLoaderManager().removePdu(changed);
} else if (action.equals(TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED)) {
- String state = intent.getStringExtra(PhoneConstants.STATE_KEY);
+ String apnType = intent.getStringExtra(PhoneConstants.DATA_APN_TYPE_KEY);
+ boolean available = !(intent.getBooleanExtra(
+ PhoneConstants.NETWORK_UNAVAILABLE_KEY, false));
if (Log.isLoggable(LogTag.TRANSACTION, Log.VERBOSE)) {
- Log.v(TAG, "ANY_DATA_STATE event received: " + state);
+ Log.v(TAG, "ANY_DATA_STATE event received: apnType = " + apnType +
+ ", available = " + available);
}
- if (state.equals("CONNECTED")) {
+ // Wake up transact service when MMS data is available.
+ if (apnType.equals(PhoneConstants.APN_TYPE_MMS) && available) {
wakeUpService(context);
}
} else if (action.equals(Intent.ACTION_BOOT_COMPLETED)) {
diff --git a/src/com/android/mms/transaction/TransactionService.java b/src/com/android/mms/transaction/TransactionService.java
index 7fd2715..4230b16 100644
--- a/src/com/android/mms/transaction/TransactionService.java
+++ b/src/com/android/mms/transaction/TransactionService.java
@@ -236,6 +236,10 @@
}
MmsSystemEventReceiver.registerForConnectionStateChanges(
getApplicationContext());
+ } else {
+ // MMS data is available now, do not need listen to state change.
+ MmsSystemEventReceiver.unRegisterForConnectionStateChanges(
+ getApplicationContext());
}
while (cursor.moveToNext()) {