Creating ConnectivityUtil instances after checking the minimum set of
permissions since SubscriptionManager#getActiveSubscriptionInfoList()
requires READ_PHONE_STATE and users can revoke the permission.
On P and beyond, the subscription list will be filtered instead when no
permission.
Bug: 159421050
Test: Manual
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Change-Id: Iafc3c57060e1893a91e629b1b3e3ba9ad78967cb
Call onRequiredPermissionsAcquired() before calling redirect() so that
BugleApplication initialization can be done completed always even
PermissionCheckActivity#onResume() case.
Test: Manual
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Change-Id: I01bb681442e0b391238bc162ce139ff40d947eaf
Remove a Lambda Exp and replace ConcurrentHashMap#computeIfAbsent() with
containsKey() and put() so that this app can be built using JAVA 7.
Test: Build
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Change-Id: I7ff8a3b5fc4673dfe05c5ecc9418d377f3ed4f2e
Use SmsMessage#createFromPdu(pdu, format) at least on M and replace
SmsMessage#FORMAT_3GPP2 with "3gpp2".
- SmsMessage#createFromPdu(pdu, format) is added in API level 23.
- SmsMessage#FORMAT_3GPP2 is added in API level 28.
Test: Manual
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Change-Id: Icab2c6c3c86ee8b6597881bfac6066fed60db4d2
After this CL, ConnectivityUtil for default subId is used again on pre
N because TelephonyManager has createForSubscriptionId() for a specific
subId from N.
Nevertheless, listen() uses the default subId on PhoneStateListener
instead of the subId on the manager still even N. On O and beyond,
ConnectivityUtil works correctly on multi-sim devices.
Revert "Fix missing computeIfAbsent() method in L_MR1 and M"
This reverts commit f0ccb76d8d.
Reason for revert: Manage ConnectivityUtil instances for subIds at least
on N instead.
Test: Manual
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Change-Id: I2f08928a6798a2ce275c5c75569ad379999d274c
Replace ConcurrentHashMap#computeIfAbsent() with containsKey() and put()
since computeIfAbsent() is added in API level 24.
Bug: 158846265
Test: Build
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Change-Id: I3c43f0d7b1f289f0442c9359de4f099217244387
Same methods in PhoneUtils are used everywhere instead.
Test: Build
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Change-Id: Ia17c1f17511c53a9235af462fa0809146726e89f
It allows to call to well-formatted phone numbers or carrier specific
phone numbers starting with star sign such as *20 so that user can make
a call directly in a conversation for voice mail SMSs.
Revert "Check whether dialable only"
This reverts commit dbc43316cf.
Reason for revert: a call icon is disappeared for well-formatted phone
number with parentheses, dash and etc.
Test: Check the call icon in conversations for phone numbers and voice
mail numbers.
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Change-Id: I1b279f8a5372b00a5a0c572f9969731f1e633389
Check CONFIG_SEND_MULTIPART_SMS_AS_SEPARATE_MESSAGES directly for each
sending messages always so that the correct config can be used for each
SIM cards in multi-sim devices.
Test: Manual
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Change-Id: Iff80d093f43014ff2fe97caf6929aefe43911192
ConcurrentModificationException could be happened during iterating if
parts are added newly.
Test: Select several images on Gallery app and attach them to a message
via Sharing
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Change-Id: Idb96239ef2c05a08fc0727797b97739aa89f12a4
UriUtil#parseRecipientsFromSmsMmsUri() will returns a comma-separated
recipients for common use so that InsertNewMessageAction#createMessage()
can create or get a conversation correctly for RESPOND_VIA_MESSAGE.
In addition, mms/mmsto schemes are added. And it includes small cleanup
intent-filters for LaunchConversationActivity.
Test: adb shell am startservice
-a android.intent.action.RESPOND_VIA_MESSAGE -d "sms:12345678,87654321"
-e android.intent.extra.TEXT "Text"
Change-Id: I291dc765a46846982d059016d44f90873c687867
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
No need code to handle any retry case after downloading MMS.
Test: No behavior change
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Change-Id: I053f85e0260f7c4cd76d52114077d220ac0b25ba
Show an error toast instead since ACTION_CALL intent cannot be used to
call emergency numbers.
Test: Make a call to an emergency number.
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Change-Id: Ia42c588848b643def068dec1d73e2e917a4b8214
It allows to call to any sender such as *20(Voice Mail Number for
Chile Claro).
Test: Manual
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Change-Id: Ifca83c5f05018de627fa38318fd4b6db20370910
All the transient failures should be treated as same even reserved
values for future purposes.
(OMA-MMS-ENC-V1_2, 7.2.37. X-Mms-Response-Status field)
Test: Manual
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Change-Id: Ia2739baebbf156b6fadee0fee71956b044c14234
No more rescheduling for pending messages after DownloadMmsAction is
failed caused by outside window. Any pending download messages will be
remained as the DOWNLOADING state without actual downloading operations
and sending a DEFERRED M-NotifyResp.ind even.
It will reschedule pending messages whenever sending or downloading is
failed including outside window failure case. And it also removes dup
scheduling and fix some typo.
Test: Manual
Change-Id: Ie37088347c69f25d838875830fc65ce7727fefe6
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Use the most recent notification's state to print out log because
mContent is null in case of a notification for multiple messages in at
least 2 different conversations.
And no need sanitizePII() since this log is only for VERBOSE already.
Test: 1) adb shell setprop log.tag.MessagingAppNotif VERBOSE
2) Receive SMS from different senders
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Change-Id: Ie300620f0014577ca65b9a7e3a4c397a39717992
The APN prefs is available if legacy APIs are used with local APN db
only.
Test: Manual
Change-Id: I5883dcb2c406acc601787edd02e0d3272732e6d7
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Test: Check "New APN" icon in ApnSettingsActivity.
Change-Id: I0fc29384e0714a780842652178e3e88ff311456a
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Check whether SMS delivery report preference is available first because
it could be removed if carriers don't support it.
Test: Manual
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Change-Id: I9e0049dd61713f7a9638fb19a37aaa261f35d768
Delivered messages could be forwarded and sent time can be shown on
MessageDetailsDialog.
Test: Manual
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Change-Id: I6e24bdfe6a037ab588914327dbd8abf3f30512ea
SnackBarManager state is not cleared when SnackBar is detached from a
window without dismiss(). After then it is remained as dismissing state
forever.
Test: 1) Long-press a conversation and click archive action.
2) Press back key before the snackbar is dismissed.
3) Repeat 1) and check the snackbar is shown or not.
Change-Id: Icf2cdcd30aea42685db68e5ac36436a34c9c94ae
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Selected attachment from GalleryGridView will be destroyed when same
attachment is already existed in DraftMessageData. It will make assert
fail during onSaveInstanceState() because mDestroyed in MessagePartData
is true already.
It destroys existing attachment and replaces with new attachment instead
so that selected attachments could be maintained correctly.
Test: 1) Select one image in GalleryMediaChooser.
2) Reopen the chooser and long-press same image again to enter to
the multi-selection mode.
3) Long-press the attachment on draft message to open
AttachmentChooser.
4) Check Assert fail.
Change-Id: I029d778779260d0097ce30bf5338fceba05e1f77
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Stop attaching animation before removal attachment views and hiding the
AttachmentPreview.
Test: Long-press to attach a media from GalleryGridView and uncheck the
media to detach immediately.
Change-Id: Ia1014609c056c9f35e428f8968b58dc2c1b704f9
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Set focusableInTouchMode = ture for workaround.
Test: Long-press a media and release it on GalleryGridView, check
whether there is any undesirable ripple effect or not.
Change-Id: I076c47338d11b396210648a68ae393761d334c03
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
New ContactMediaChooser allows the user to pick a contact from contacts
apps as attachment.
Test: Manual
Change-Id: Idb00cd8a3164a3cac859947affd5cbcc7e41b8c2
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
PorcessPendingMessagesAction queues one message for sending/downloading
associated with a subscription triggering current action at a time. And
the ConnectivityUtil also works based on subscriptions so that pending
messages can be processed regardless of other phones' state in multi-sim
case.
It includes cleanup code as well.
Test: Manual
Change-Id: Id6b4f4a0aa6a3291e7a4d8a5d3f0fbb9db3c5b86
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
GalleryMediaChooser supports audio types also. It displays simple audio
icon and file info for audio files on grid views.
Test: Manual
Change-Id: I98b605156af3c1909c0141a2b99380b5da11c1e2
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
GalleryMediaChooser supports video types and more image types also. And
video thumbnails are overlaid with the play button image to distinguish
between images and videos.
Note:
1. EXTRA_ALLOW_MULTIPLE is not specified for ACTION_GET_CONTENT.
2. Files, methods and variables' name are still including "image".
3. Content descriptions are not updated.
Test: Manual
Change-Id: I961928f150e4ae8ee80a1fba2f20c37fb5426669
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
It shows attachments size during composing MMS.
Note: Images could be resized before sending.
Test: Manual
Change-Id: I63eafe0d57259a7742ab839c4d96d595675e70e9
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Only images can be compressed before sending. Actual size got from a
content uri is used for computing the minimum size for others.
Test: Manual
Change-Id: Id8d6ec24f80fe0eae70b6b1686ca7b199c70e313
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
It resolves Broadcast Limitations issue if target API level is changed
as 26 or higher later.
It includes fixing code style also.
Test: Check messaging widgets' changes.
Change-Id: I6e08027b1d6a5a19cfd17f8ec3e9a895dbb3c44a
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Use match_parent instead.
Test: Check grid views for a vcard on AttachmentChooserFragment.
Change-Id: I60acc77d9c0cd9608187d86f71fc4d2c7e78afb7
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Use ic_video_play_light.png having background transparent to show the
video thumbnails correctly.
Test: Check a widget for conversations including a video attachment.
Change-Id: I1333a3be41e53ce7e8ad1a64849e726c73cda153
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Change layout_marginTop as -2dp to enclose message_list between top_line
and bottom_line.
Test: Check a widget for conversations.
Change-Id: I097303134e8ea079de39ac18746a51e1937b92c3
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
ACTION_SEND and ACTION_SEND_MULTIPLE support image, video, audio, text
and vcard files.
Test: Manual
Change-Id: I1c08070f89877140aba9087717bb663ee2990467
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
It uses the most common extension for the given MIME type.
Test: Manual
Change-Id: I3d4aea85fcd42088ed19898054db7225954d3401
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Set mDetachedRequestDescriptor as null for document picker to prevent
calling setImageResourceId() in onAttachedToWindow().
Test: Manual
Change-Id: Ied5ca200cac350ef4b2420269763dfc240fc97c4
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
dispatchAddFinished() must be called by subclasses when done, either
immediately(if no animation will occur) or after the animation actually
finishes.
Test: Manual
Change-Id: I72b9da41f52b381e3531842aa1fb07e573c120cb
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
NPE occurs when current IFD0 offset is smaller than default IFD offset.
Just skip invalid tag instead.
Test: Manual
Change-Id: I184794e7ee227849da7d2ecf3cf647e69dc91610
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Added new "Translucent" style for SmsStorageLowWarningActivity instead.
Test: am start com.android.messaging/.ui.SmsStorageLowWarningActivity
Change-Id: Ie8b0df64ac046343c93ca8b4ffa93c5e49cc73ad
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Unexpected ACTION_DOWN raises setColorFilter() for SIM avatar icons in
the SIM switcher. However, other actions to clear the filter cannot be
received due to no clickable attribute.
Test: Click SIM icon in SimSelectorView.
Change-Id: Ic5972522a3442e3087c474b65add38a6d00511a5
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
getSelfParticipants() returns the ParticipantData list arranged in
ascending order of the slot id to show SIM UIs from lowest to highest id
consistently.
Test: Verify SettingsFragment and SimSelector order in multi-sim device
Change-Id: I0f5f27c6467cb21a6d11271d1a0a6beef36630a6
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Use '-1' for no error instead of '0' since the '0' has been one of the
valid error codes in 3GPP2.
Test: Manual
Change-Id: I02ba391a5cd178491868565c10bb3a35ba88e19a
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
The X-Mms-Transaction-ID of the M-Notification.ind identifies each
M-Notification.ind message. New duplication detection logic compares
the new X-Mms-Transaction-ID with the stored value to identify the
Network duplicate M-Notification.ind message when it receives a new
M-Notification.ind message.
Following SQL WHERE clause is used to query from the DB.
((m_type=NOTIFICATION_IND) OR (m_type=RETRIEVE_CONF)) AND (exp>NOW))
AND (t_id=xxxxxx)
For this, when the M-Retrieve.conf is received, updates the t_id and the
exp from the corresponding M-Notification.ind so that new logic would
work even after the M-Notification.ind is deleted.
Test: Manual
Change-Id: I86e1eee62ea612d96ca16e5384b044cb6541ff6a
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>