Merge "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 0913105..2b70ba9 100644
--- a/src/com/android/mms/transaction/MmsSystemEventReceiver.java
+++ b/src/com/android/mms/transaction/MmsSystemEventReceiver.java
@@ -83,6 +83,10 @@
// Called on the UI thread so don't block.
MessagingNotification.nonBlockingUpdateNewMessageIndicator(
context, MessagingNotification.THREAD_NONE, false);
+
+ // Scan and send pending Mms once after boot completed since
+ // ACTION_ANY_DATA_CONNECTION_STATE_CHANGED wasn't registered in a whole life cycle
+ wakeUpService(context);
}
}
diff --git a/src/com/android/mms/transaction/SmsReceiverService.java b/src/com/android/mms/transaction/SmsReceiverService.java
index 724e863..642b778 100755
--- a/src/com/android/mms/transaction/SmsReceiverService.java
+++ b/src/com/android/mms/transaction/SmsReceiverService.java
@@ -272,6 +272,12 @@
mSending = false;
messageFailedToSend(msgUri, SmsManager.RESULT_ERROR_GENERIC_FAILURE);
success = false;
+ // Sending current message fails. Try to send more pending messages
+ // if there is any.
+ sendBroadcast(new Intent(SmsReceiverService.ACTION_SEND_MESSAGE,
+ null,
+ this,
+ SmsReceiver.class));
}
}
} finally {
diff --git a/src/com/android/mms/ui/ManageSimMessages.java b/src/com/android/mms/ui/ManageSimMessages.java
index beadb54..e783294 100644
--- a/src/com/android/mms/ui/ManageSimMessages.java
+++ b/src/com/android/mms/ui/ManageSimMessages.java
@@ -150,6 +150,8 @@
// Let user know the SIM is empty
updateState(SHOW_EMPTY);
}
+ // Show option menu when query complete.
+ invalidateOptionsMenu();
}
}
diff --git a/src/com/android/mms/ui/RecipientsEditor.java b/src/com/android/mms/ui/RecipientsEditor.java
index 0baeff8..ae1ae34 100644
--- a/src/com/android/mms/ui/RecipientsEditor.java
+++ b/src/com/android/mms/ui/RecipientsEditor.java
@@ -280,6 +280,13 @@
}
private int pointToPosition(int x, int y) {
+ // Check layout before getExtendedPaddingTop().
+ // mLayout is used in getExtendedPaddingTop().
+ Layout layout = getLayout();
+ if (layout == null) {
+ return -1;
+ }
+
x -= getCompoundPaddingLeft();
y -= getExtendedPaddingTop();
@@ -287,11 +294,6 @@
x += getScrollX();
y += getScrollY();
- Layout layout = getLayout();
- if (layout == null) {
- return -1;
- }
-
int line = layout.getLineForVertical(y);
int off = layout.getOffsetForHorizontal(line, x);