* Get rid of in-app settings for notifications, replaced by channels features
* Remove all the notification plumbing and dead code
Test: m, manual
Signed-off-by: Luca Stefani <luca.stefani.ge1@gmail.com>
Signed-off-by: Joey <joey@lineageos.org>
Signed-off-by: Danny Baumann <dannybaumann@web.de>
Signed-off-by: Arne Coucheron <arco68@gmail.com>
Signed-off-by: Lyubo <lyubodzhamov@gmail.com>
Change-Id: Idb39ca32751d40b3376934775d2119dd6cc7e297
Squashed commit of the following:
Author: Adnan Begovic <adnan@cyngn.com>
Date: Thu Jan 14 17:20:43 2016 -0800
Messaging: Implement option for swipe to delete.
No one wants to swipe to archive, that's stupid.
Change-Id: Ia8f0fc675582ef343311e60b755e284322f25102
Author: chengzhi.hou <chengzhi.hou@ck-telecom.com>
Date: Wed Feb 24 20:01:17 2016 +0800
Messaging: Swipe right to delete conversation
Change "swipe delete" to "swipe right delete", so SwipeArchive and SwipeDelete
can exist at the same time.
Change-Id: Id66167c2e749f8ab0ee917e0138027c7404b8c90
Author: Michael Bestas <mikeioannina@cyanogenmod.org>
Date: Tue Mar 1 02:27:16 2016 +0200
Improve swipe to delete strings
Change-Id: I180d09a6680084d9fd87c6dafd56db18ca5a580a
Author: Joey Rizzoli <joey@cyanogenmoditalia.it>
Date: Mon Oct 17 16:32:25 2016 +0200
Messaging: show snackbar instead of toast when deleting conversation
more consistency with archive action
Change-Id: I06129850860a2a51c10ade65fb87c9f37a0c2bfa
Signed-off-by: Joey Rizzoli <joey@cyanogenmoditalia.it>
Change-Id: Ia8f0fc675582ef343311e60b755e284322f25102
This commit is part of a large scale change to fix errorprone
errors that have been downgraded to warnings in the android
source tree, so that they can be promoted to errors again.
The full list of changes include the following, but not all
will be present in any one individual commit:
BadAnnotationImplementation
BadShiftAmount
BanJNDI
BoxedPrimitiveEquality
ComparableType
ComplexBooleanConstant
CollectionToArraySafeParameter
ConditionalExpressionNumericPromotion
DangerousLiteralNull
DoubleBraceInitialization
DurationFrom
DurationTemporalUnit
EmptyTopLevelDeclaration
EqualsNull
EqualsReference
FormatString
FromTemporalAccessor
GetClassOnAnnotation
GetClassOnClass
HashtableContains
IdentityBinaryExpression
IdentityHashMapBoxing
InstantTemporalUnit
InvalidTimeZoneID
InvalidZoneId
IsInstanceIncompatibleType
JUnitParameterMethodNotFound
LockOnBoxedPrimitive
MathRoundIntLong
MislabeledAndroidString
MisusedDayOfYear
MissingSuperCall
MisusedWeekYear
ModifyingCollectionWithItself
NoCanIgnoreReturnValueOnClasses
NonRuntimeAnnotation
NullableOnContainingClass
NullTernary
OverridesJavaxInjectableMethod
ParcelableCreator
PeriodFrom
PreconditionsInvalidPlaceholder
ProtoBuilderReturnValueIgnored
ProtoFieldNullComparison
RandomModInteger
RectIntersectReturnValueIgnored
ReturnValueIgnored
SelfAssignment
SelfComparison
SelfEquals
SizeGreaterThanOrEqualsZero
StringBuilderInitWithChar
TreeToString
TryFailThrowable
UnnecessaryCheckNotNull
UnusedCollectionModifiedInPlace
XorPower
See https://errorprone.info/bugpatterns for more
information on the checks.
Bug: 253827323
Test: m RUN_ERROR_PRONE=true javac-check
Change-Id: I8b1533cbea835343dcf589cbaa57c63794be58bd
If sync operation is occurred between ResendMessageAction and
SendMessageAction, the pending outgoing messages in local db are deleted
and new messages are added from remote db.
To fix this issue, ResendMessageAction will update RETRY_TIMESTAMP only.
And RECEIVED_TIMESTAMP and SENT_TIMESTAMP will be updated in
SendMessageAction when the message is queued.
Test: manual
Change-Id: I0ffa6f46a7094ec3dfd2954d4313b78dd57d6994
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
If a SIM is inactive, Mark messages corresponding to the SIM as failed
instead of updating selfId as default selfId. The failed messages could
be sent through the SIM manually if the SIM is re-activated.
Test: Manual
Change-Id: I1eee7c12aaedebe8aa3e0c41b4b057758a3b17a2
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
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
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
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
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
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>
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
This reverts commit f19e916a0d.
Reason for revert: Reverting per Taesu Lee's comments, because it doesn't work and has issues.
Change-Id: I778362b628f4c3ae076dd943e77dee415984fba0
This reverts commit dffc4fa578.
Reason for revert: Reverting per Taesu Lee's comments - https://android-review.googlesource.com/c/platform/packages/apps/Messaging/+/1259839
@Raman,
This new feature still doesn't work properly.
As we know Luca has been submitted CL:1271087 and CL:1271088 to fix it. But it still has issues.
Change-Id: I2e8eb1fce302b12f3f30b8163da7e749c08733d9
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
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
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>
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>
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>
The message dispatcher will only queue one message at a time for
both sending and downloading. On multi-sim scenarios this causes
failures in a subscription to delay all messages added after the
one that fails.
This patch changes the pending messages processor to queue one
message per subscription for both sending and received, instead of
one globally.
Test: m
Change-Id: Ia54906089dccbbe694aab7bf995ac08480d3e4f8
Ticket: CRACKLING-877
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>
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>
Simple matching up CDMA status with GSM TP-Status for common handling.
And fix bugleStatusForSMS() for all the permanent error cases.
Note: Need to check SC operation for ERROR_TEMPORARY.
Test: Manual
Change-Id: Ic8136d273dc0c25a4f0690f951d4d8aca20579ff
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Use JobIntentService to start the Backgroundworkerservice and
ActionServiceImpl services.
+ Deleted WakeLock code.
+ Made changes to com.android.messaging.test tests so that all tests
pass with the new JobService. I am not sure if these tests passed
before these changes.
+ CTS tests passed without any changes.
+ Added TEST_MAPPING file for presubmit tests.
Bug: 115499280
Bug: 119503204
Test: manual - Tested the messaging UI. Ran the following CTS tests on Pixel phone.
$ make -j 40
rw-r--r-- 1 rtenneti primarygroup 8624061 Feb 19 12:37 out/target/product/marlin/system/app/messaging/messaging.apk
$ make messagingtests -j
-rw-r--r-- 1 rtenneti primarygroup 729713 Feb 19 12:52 out/target/product/marlin/testcases/messagingtests/messagingtests.apk
$ adb install -r -d out/target/product/marlin/system/app/messaging/messaging.apk
$ adb install -r -d out/target/product/marlin/testcases/messagingtests/messagingtests.apk
$ adb shell am instrument -w com.android.messaging.test
Test results for InstrumentationTestRunner=...........
Time: 13.353
OK (113 tests)
CTS tests for Mesaging app
---------------------------
$ ./development/testrunner/runtest.py --path cts/tests/app/src/android/app/cts/NotificationTest.java
android.app.cts.NotificationTest:...........................
Time: 0.299
OK (27 tests)
atest
-----
$ cd .../packages/apps/Messaging
$ atest
Running Tests...
messagingtests (113 Tests)
-------------------------
...
[113/113] com.android.messaging.util.YouTubeUtilTest#testGetYoutubePreviewImageLink: PASSED (2ms)
Results from tests that require device:
Summary
-------
messagingtests: Passed: 113, Failed: 0, Ignored: 0
All tests passed!
Change-Id: I9494f0750954e6364abb695aa867494669ae54c4
Enable content observer notifications even for default SMS app, when the
build is for Android Auto
Bug: 71633682
Test: tested manually
Change-Id: If91f4f7b2a9b46cba4aa516304f0007a06852c50
* A security researcher crafted a gif that would cause the Android
Bitmap code to throw an NPE. That would cause messaging to crash when
decoding the NPE. The frameworks team is changing the underlying code to
throw an OutOfMemoryError instead of a NullPointerException.
In order to catch both errors, the code needs to catch Throwable.
Test: I added code to GifImageResource.getDrawable to throw a new
OutOfMemoryError and then used the debugger to verify it was caught by the
new catch Throwable statement. I did the same test with NullPointerException.
I tested attaching gif images and sending them to verify the gif path still
worked.
BUG=37742976
Change-Id: If71a7e65f8c0b083fe6c4b79f78358666338d59d
* A security researcher crafted a gif that would cause the Android
Bitmap code to throw an NPE. That would cause messaging to crash when
decoding the NPE. Catch the NPE.
Test: manually tested the "crash.gif" attached to the bug. Stepped
through the debugger to verify we're catching the NPE and logging
the attempt. Verified normal gifs still work.
BUG=37742976
Change-Id: Iab814d5b0b514bed0cecddd9a76f1fc095f90892