Commit Graph

80 Commits

Author SHA1 Message Date
Michael W
c4bbba9441 Messaging: We don't need to check for verbose logging everywhere
We can just do this in the actual method

Change-Id: I80e89b0ab97926749851628b1bd34e8cd9dc82f2
2025-05-18 09:18:48 +00:00
Michael W
9fd4fa6bb9 Messaging: Explicitly specify Locale where needed
Change-Id: I636e9cceed0e73bcf957ebbda5e239982e681fd7
2025-05-18 09:18:48 +00:00
Michael W
3c107a2161 Messaging: Migrate attachments to MediaStore
* Saving them doesn't work otherwise
* We don't have to care about MediaScanner and DownloadManager
  anymore that way, either

Fixes: https://gitlab.com/LineageOS/issues/android/-/issues/8573
Change-Id: I7a3b1dc6916feff4849bdfa2b8937460c32bc5a2
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
(cherry picked from commit 93bd39838d4a395dd710796b0e71ada1ec1f5ff2)
2025-04-04 16:33:58 +00:00
Michael W
53eb598b63 Messaging: Good news: we can tint the status bar properly!
* 80% opacity is not what we want anymore
* The status bar in the conversation list is also supposed to be
  tinted properly - so why not do it?

Change-Id: I03c05595cd7f5a3f8f7dea120e14f3f3e0fff0b5
2025-03-04 18:52:05 +01:00
Michael W
4009b68386 Messaging: Heavily reduce the exif interface
* The only thing we need is reading one Tag, which the androidx
  implementation can do just fine.
* Apart from that there is so much unused code there...

Change-Id: I248a9e5450f1823e3eca589b8e17610940b26d01
2025-03-04 18:52:05 +01:00
Michael W
b2f5e3190e Messaging: Further code improvements
* Remove redundant casts
* getParcelable(ArrayList|Exra) without class argument is deprecated
* ViewPager.setOnPageChangeListener -> addOnPageChangeListener
* RecyclerView.setOnScrollListener -> addOnScrollListener
* Remove unused initializations
* Remove unused code

Change-Id: I21beb6c90c675a4f2cfd7e3d5ebbd18b745f5911
2025-03-04 18:52:05 +01:00
Michael W
47f5533a73 Messaging: Remove duplicate code
* mmslib contains basically the same code as android.support.v7.mms.pdu
  does, so align them code-wise and remove the mmslib duplicates
* Since mmslib contains a few usages that are now not accessible
  anymore, make the classes or methods public where it complains

Change-Id: I10b8716c0e45079e4795fda4489dc1a9535026f3
2025-03-04 18:52:05 +01:00
Michael W
f83b05ea0a Messages: Replace (Safe)AsyncTask
* AsyncTask is deprecated
* Executors and Handlers can achieve the same thing and
  are not deprecated

Change-Id: I5271bb73b848ce885eeaf5632c1da27853c56c4a
2025-03-04 18:52:05 +01:00
Michael W
66d57e98a3 Messaging: Handle geo uri scheme
Change-Id: I19f1039d18441cb2bd013577c41e279327f806e6
2025-01-01 18:56:09 +01:00
Michael W
edb268697c Messaging: Get rid of storage permissions
Since these have no effect on sdk 33 and up and everything works without
them we can get rid of those

Change-Id: I0482d8b8772dc2c64bb1930fbc6ba4852f4b4c61
2024-12-26 16:13:52 +01:00
Michael W
161c3e9fd9 Messaging: Remove VisibleForTesting
Since we removed all tests, no need to keep those flags around either

Change-Id: Icaf71832c459cecbcbddc75f552c60e48ae95189
2024-12-26 15:54:38 +01:00
Michael W
6e9a803f1c Messaging: Handle default SMS app setting properly
* We don't need two settings basically doing the same
* Handling the change needs to happen via RoleIntent, not
  ACTION_CHANGE_DEFAULT
* Our own name sometimes can't be retrieved from package manager (?) -
  just use it from strings

Change-Id: I28abc52329f00b33a316533f12a54a517cba3514
2024-12-26 15:54:37 +01:00
Michael W
241b4cf833 Messaging: Style even more dialogs properly
Somehow some dialogs use the theme but some need the style set manually

Change-Id: I386a0e43c10d328088066961b75a162bf2c351c1
2024-12-26 15:54:37 +01:00
Michael W
68a3707173 Messaging: Get rid of deprecated PhoneStateListener
TelephonyCallback is the new thing to use

Change-Id: I3c44210bfc02814af5d4110f507b94d0f0e8a4a0
2024-12-26 15:54:37 +01:00
Michael W
d940ab74ad Messaging: Fix a few android related things
* NotificationBuilder.addPerson(String) -> .addPerson(Person)
* Wearableextenter.addPage deprecated without replacement
* Html.fromHtml(String) -> .fromHtml(String, int)
* Handlers need Loopers
* Resource-IDs are not final by default (if-else instead of switch-case)
* call super.onFinishInflate() in override of onFinishInflate()
* Configuration.locale -> configuration.getLocales().get(0)
* SimpleDateFormat needs localization as well
* AudioAttributes instead of setAudioStreamType()
* isDataEnabled() is a public method, no need for reflection anymore

Change-Id: Icd830768b86edca3e0b44f1edc6c57facc9f731a
2024-12-26 15:54:37 +01:00
Michael W
e128bff457 Messaging: Language cleanup
No unnecessary boxing, enhanced for loops, redundant checks and throws,
imports (removal, reordering), possible void returns

Change-Id: I7a8e1b2007e3b0906e01b41785c518d02c2f3fab
2024-12-26 15:54:37 +01:00
Michael W
e335f6bec8 Messaging: Use ActivityResultContracts for media and contacts
Instead of handling showing and picking the media ourselves,
use existing AcitivityResultContracts to pick images, videos
or contacts

Change-Id: I20079ad94882cc6bbfeae8d57ca0e4aa30612c01
2024-12-26 15:54:37 +01:00
Michael W
6d11a6658c Messaging: Fix C-style array declarations
Change-Id: Ie7381dc5280ab4d907000ef551df9ea80553ddb4
2024-12-26 15:54:37 +01:00
Michael W
5403d02b5d Messaging: Fix javadoc
Change-Id: Ia1b0a8fa9a5e74078a68a55ca1953b6f085521b1
2024-12-26 15:54:37 +01:00
Michael W
e29b158fba Messaging: Remove unused code
Change-Id: I8093bb3e305ae323f7069bf42f9e83f8c8647cc7
2024-12-26 15:54:37 +01:00
Michael W
0069df879a Messaging: Replace explicit types
Change-Id: I2165b3dec73973a2a82d8b3c7c364b5f011e597d
2024-12-26 15:54:37 +01:00
Michael W
9538179c75 Messaging: Use try-with-resource
Change-Id: I6649517cbd990502dfcb54f078764cf05f210268
2024-12-26 15:54:37 +01:00
Michael W
1914db5ea4 Messaging: Convert further parts to androidx
CursorLoader, LoaderManager, Preferences, Fragments, ...

Change-Id: I8787b2db365249839547c6d5c21ab7cd5ff42082
2024-12-26 14:55:13 +01:00
Michael W
fd63d5f125 Messaging: Use StandardCharsets where possible
Change-Id: I45a19c47262116d34260e1957145580a7f97168e
2024-12-26 14:55:13 +01:00
Michael W
a2f67b4f7b Messaging: Remove GServices
We don't have an actual implementation returning anything but the
defaults, so apply the defaults directly anywhere we need them

Change-Id: Ic651b4b13977799f2f4d2c702c430798fbff77f8
2024-12-26 14:55:12 +01:00
Michael W
7f22a3eea7 Messaging: Remove low storage handling
* SMS are the least of your storage issues, if you reach the limit
* Both Intent.ACTION_DEVICE_STORAGE_LOW and
  Intent.ACTION_DEVICE_STORAGE_LOW are not delivered to apps after O
* Remove all now unused strings from all languages - we don't sync those
  with crowdin (yet)

Change-Id: If01f937acdafbb34d5a9e792db54de4761ec4cc5
2024-12-26 14:55:12 +01:00
Michael W
d43b6ff1c4 Messaging: Let there be lambdas
Change-Id: Iee1fc46c92ea9159abb10d92d34baee937bdee0c
2024-12-26 14:55:12 +01:00
Michael W
c1b4aa4dfe Messaging: Nullability
Change-Id: I8bcde2a868a9c8989971d056be24ff4986e4f8f3
2024-12-26 14:55:12 +01:00
Michael W
e35d385149 Messaging: Remove unnecessary toString() and String.valueOf() calls
Change-Id: I5d5624386ba72b9e7074a7da909f78baaee73f75
2024-12-26 14:55:12 +01:00
Michael W
21cb2b6289 Messaging: Fix modifiers
We either have too few or too many

Change-Id: I09a9a38b859c68526fcbcdbc7862afe1d693f6c0
2024-12-26 14:55:12 +01:00
Michael W
3b7f05ba67 Messaging: Replace ExifInterface with its androidx counterpart
Change-Id: I35ba14886b9f837d576f1cd385869614454c921f
2024-12-26 14:55:12 +01:00
Michael W
7c55a6d56a Messaging: Remove compatibility for old android versions
Change-Id: Id9065d60525a509271a0e64c0e349e857cb998e2
2024-12-26 14:55:12 +01:00
Pranav Vashi
e0a037c09e Messaging: Improve letter render decisioning for avatar
Change-Id: I263e617cf6fc058301537a6f2dc7d052bed6487a
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
2024-12-22 17:04:27 +01:00
LibXZR
d53a425244 Messaging: Do not check preferred sim if conversation sim exist
Fix unable to send message when preferred sms sim is set to
"Ask every time".

Change-Id: I0406985e29ded8157ae5252db2dd814856a93376
2024-12-22 17:04:27 +01:00
Chris Talbot
87cd6873d7 Add support for text/vCard and text/vCalendar MIME type
A vcf file can alias to both "text/vCard" and "text/x-vCard" MIME
types and an ics file can alias to "text/vCalendar" as well as
"text/x-vCalendar". However, if LineageOS does not get the "x-"
MIME type, it will incorrectly display an empty MMS.

Change-Id: I0b63767092c0e7422ff3592983d94b903d9e8cc5
2024-12-22 17:04:27 +01:00
Ido Ben-Hur
96ef363da8 Messaging: Fix handling of default SMS app
Use RoleManager to Launch the correct activity and check the default app
Get rid of deprecated methods used here to do the same
Also add queries in manifest to allow the former method to work as well

Change-Id: I4702aaa4b35a994e225e63534da8fb4975b9717a
2024-10-20 01:36:57 +03:00
Michael W
b11039ed8c Messaging: Allow deletion of messages without a sim inserted
* Currently there is a check in place checking for the presence of a
  preferred sim card
* For deletion of a conversation and message this is unnecessary and
  deleting a conversation from the main view does also not have that check
  already, so replace the check with just checking for being the default
  messaging app

Fixes: https://gitlab.com/LineageOS/issues/android/-/issues/5974
Test: Try deleting a single message or conversation from within
 conversation before and after
Change-Id: Icd47882eb29e16a17ad57a79ea5e0c0f7855ffc6
2024-09-09 05:47:00 +03:00
Luca Stefani
4246987beb Messaging: Implement per conversation channels. Update API level to 28.
* 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
2024-09-09 05:46:38 +03:00
Adnan Begovic
086bb5c3f5 Messaging: Implement option for swipe right to delete.
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
2024-09-09 05:45:11 +03:00
Jake Klinker
f1b8f9a226 Fix exposing private messages files through attachments with a content URI.
Change-Id: I30b2a06c67af4a347d03c7504d13b9b9365acafd
Tested: Was no longer able to repro b/275552292.
Bug: 275552292
2023-05-09 14:00:51 +00:00
Chaohui Wang
79481ab146 Update DrawableWrapper to DrawableWrapperCompat
Api changed in aosp/2120177

Bug: 235727273
Test: TAP
Change-Id: I1645dab6000dc760b4de2bb625e0af8df014c8c8
2022-08-26 20:58:50 +08:00
Almaz Mingaleev
8edea90f7f Remove uses of Time. am: 909a0763c6
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Messaging/+/2149693

Change-Id: Ifb1497b8c212866284a9c138e58612aa7bde3f28
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-07-13 09:03:17 +00:00
Almaz Mingaleev
909a0763c6 Remove uses of Time.
android.text.format.Time is deprecated since 2014 and there are
better alternatives.

Bug: 16550209
Test: presubmit
Change-Id: Ibbc4fb11e96b5179ff5dec906e74c9d582b6fb97
2022-07-11 11:10:18 +01:00
Jake Klinker
c8e4ab2b22 Fix url:file:// style URIs from not being detected in UriUtil.
Change-Id: I81c01202306d856f6f8f8b74a5a28d7c1011fcec
Tested: Was no longer able to repro b/222091734.
Bug: 222091734
(cherry picked from commit 2283165c23)
2022-04-26 16:38:11 +00:00
Aman Gupta
f62c3cd35a Updating the DATA_ROAMING flag acceess from Settings to TelephonyManager
API.

Bug: 172467621
Test: Build
Change-Id: Ide0db6ecacaabc29b5c4c53a2868d4a2ae27c646
2022-03-24 07:03:10 +00:00
Jake Klinker
27e27d944b Use UriUtil when checking if a URI is a file.
UriUtil.isFileUri contains several additional fixes, so this ensure that existing instances where we check for the file scheme use this method as well. This covers all existing instances in the app of SCHEME_FILE.

Change-Id: I1f3131b33823eae3e620aa9608be8e72b2e84aa2
Bug: 215212561
2022-01-31 20:30:24 +00:00
Jake Klinker
ebc64c5bae Use UriUtil when checking if a URI is a file.
UriUtil.isFileUri contains several additional fixes, so this ensure that existing instances where we check for the file scheme use this method as well. This covers all existing instances in the app of SCHEME_FILE.

Change-Id: I1f3131b33823eae3e620aa9608be8e72b2e84aa2
Bug: 215212561
2022-01-31 20:29:42 +00:00
Jake Klinker
6e0ca56095 Fix isFileUri to recognize URIs with spaces.
The underlying framework recognizes " file://..." as a valid URI and fetches the file, allowing for a possible exploit (see b/209965112). This trims the URI so that we can properly recognize it as a file from within our code.

Bug: 209965112
Change-Id: I8d9d9100e9a8c3bd64d19015d2177a14ec2306f3
Test: See repro steps on http://b/209965112, was no longer able to repro.
2022-01-11 00:41:38 +00:00
Jake Klinker
0b258f030a Fix isFileUri to recognize URIs with spaces.
The underlying framework recognizes " file://..." as a valid URI and fetches the file, allowing for a possible exploit (see b/209965112). This trims the URI so that we can properly recognize it as a file from within our code.

Bug: 209965112
Change-Id: I8d9d9100e9a8c3bd64d19015d2177a14ec2306f3
Test: See repro steps on http://b/209965112, was no longer able to repro.
2022-01-11 00:38:25 +00:00
Jake Klinker
56bacbcb13 Convert URI scheme to lower case before checking if it is a file.
This fixes an edge case where a "File://" style URI could be passed in
but not pass this check, even though the underlying framework recognizes
this as a legitimate file.

Bug: 197328178
Test: See repro steps on http://b/197328178, was no longer able to
repro.

Change-Id: Id837744a79d1aca91b41d24207dc9b98f2b5b5e9
(cherry picked from commit 9607c95e71)
2021-10-06 22:38:45 +00:00