Commit Graph

1423 Commits

Author SHA1 Message Date
andrew
033eabbc53 Utilise dialog dsl in SettingsDialog 2023-06-02 19:19:43 +09:30
andrew
4641512644 Utilise dialog dsl in RationaleDialog 2023-06-02 19:11:58 +09:30
Morgan Pretty
2b7bd7417e [SES-567] Fixed a couple of issues where the Group poller would be stopped during creation 2023-06-02 17:00:20 +10:00
andrew
cbe90e7bfc Cleanup ConversationReactionOverlay 2023-06-02 15:46:28 +09:30
andrew
6d528d0e92 Fix long message not visible on react 2023-06-02 15:35:35 +09:30
andrew
72c07f4b99 Utilise dialog dsl in PrivacySettingsPreferenceFragment 2023-06-01 00:07:15 +09:30
andrew
80f21aeb41 Convert PrivacySettingsPreferenceFragment to Kotlin 2023-05-31 22:23:46 +09:30
andrew
c5f821add0 Utilise dialog dsl in ExpirationDialog 2023-05-31 21:58:38 +09:30
andrew
50271685af Utilise dialog dsl in MuteDialog 2023-05-31 18:05:23 +09:30
andrew
623cfde8b1 Utilise dialog dsl in CallToggleListener 2023-05-31 13:07:28 +09:30
andrew
391735dc28 Convert CallToggleListener to Kotlin 2023-05-31 13:02:33 +09:30
andrew
4e92c40210 Remove BaseDialog and utilise dialog DSL 2023-05-31 12:43:51 +09:30
andrew
1d8d678047 Make kotlin code use dialog dsl 2023-05-30 21:39:03 +09:30
andrew
4ee68cbbb1 Utilise dialog dsl 2023-05-30 16:49:07 +09:30
andrew
1b88d4f950 Utilise dialog dsl 2023-05-30 16:49:01 +09:30
Morgan Pretty
9b7fb3dd86 Removed the JobDatabase since it's no longer used 2023-05-30 13:31:36 +10:00
Morgan Pretty
b7744f4f2d Addressed PR feedback 2023-05-30 12:43:51 +10:00
Morgan Pretty
c77d465438 Merge remote-tracking branch 'upstream/dev' into bluetooth-manager-crash
# Conflicts:
#	app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupExporter.kt
#	app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupImporter.kt
2023-05-30 12:25:13 +10:00
Morgan Pretty
0c2a635d03 Merge remote-tracking branch 'upstream/dev' into bluetooth-manager-crash 2023-05-30 12:24:32 +10:00
Morgan Pretty
10af2815ac
Merge pull request #1176 from bemusementpark/sync-everything
Synchronize usage of Cipher
2023-05-30 12:22:28 +10:00
Andrew
e8d26222b9
Fix scroll to bottom button visibility (#1219) 2023-05-30 11:44:20 +09:30
andrew
0af713317a Merge branch 'dev' into sync-everything 2023-05-30 11:34:34 +09:30
Morgan Pretty
22ed2dd8aa
Merge pull request #1205 from bemusementpark/disable-unblock
Disable unblock button
2023-05-30 10:30:51 +10:00
Morgan Pretty
d541f395a5
Merge pull request #1213 from bemusementpark/fix-id-divider-color
Fix ID divider color
2023-05-30 10:29:57 +10:00
andrew
03aa19aae4 . 2023-05-29 18:02:20 +09:30
Andrew
5519f17775
Truncate session id when displayed as username (#1215) 2023-05-25 10:58:52 +09:30
Andrew
331d523c45
Improve notification content dialog (#1211) 2023-05-24 18:03:27 +09:30
Andrew
945df19aef
Fix radio button selection transition (#1209) 2023-05-24 11:23:57 +09:30
andrew
ff124b8edc Fix ID divider color 2023-05-23 18:41:04 +09:30
andrew
a295dfb248 Cleanup 2023-05-23 14:56:03 +09:30
andrew
8b39c4e56a polish 2023-05-22 22:20:52 +09:30
andrew
4f2ef7f2af Add SelectableItem<> 2023-05-22 15:46:12 +09:30
andrew
8ef6ec2125 . 2023-05-22 14:57:36 +09:30
Andrew
d505109aa3
Merge branch 'dev' into disable-unblock 2023-05-22 14:55:55 +09:30
Andrew
a8e77659b3
Add remove avatar 2023-05-22 14:53:58 +09:30
andrew
30d748e147 Disable unblock button 2023-05-19 23:44:07 +09:30
Andrew
ab3caf8ab5
Fix message entrance coordinates 2023-05-12 09:44:14 +09:30
Andrew
44cb8fec2c
Remove reply from context menu when you can't write 2023-05-11 22:59:53 +09:30
Andrew
e6dc5f2128
Fix links not working when message is partially offscreen 2023-05-11 22:58:12 +09:30
Andrew
57476cd56e
Fix scroll to bottom button always visible if last item is taller than RecyclerView 2023-05-11 19:48:10 +09:30
Andrew
ba9dab33c5
Synchronize Cipher in KeystoreHelper 2023-05-11 19:47:49 +09:30
Andrew
aadba75038
Add sync status message 2023-05-11 19:46:09 +09:30
Andrew
84004d2fdb
Swallow exceptions in ScreenshotObserver 2023-05-11 19:45:43 +09:30
Andrew
910ab8874e
Remove laid out check before drawToBitmap 2023-05-11 19:45:10 +09:30
ryanzhao
a7e0bd5366 Merge branch 'dev' into bluetooth-manager-crash 2023-05-11 12:16:52 +10:00
ryanzhao
88e788a406 clean 2023-05-11 12:16:37 +10:00
Andrew
8dbabec4e7
Fix send after approval message (#1178)
* Fix send after approval message

* Fix logic

* Utilise isLocalNumber
2023-05-11 10:02:38 +10:00
ryanzhao
89545f0406 further clean up 2023-05-10 15:36:10 +10:00
andrew
d20c27d6d3 Remove laid out check before drawToBitmap 2023-05-09 22:26:36 +09:30
andrew
4469d9754a Fix bubble entrance coordinates 2023-05-09 15:10:03 +09:30
andrew
c8fa2d8d6e Remove reply from context menu when you can't write 2023-05-09 14:51:28 +09:30
ryanzhao
fa71ea1850 make RetrieveProfileAvatarJob work 2023-05-09 14:14:49 +10:00
andrew
8d38d1c0fb Fix links not working when message is partially offscreen 2023-05-09 13:29:25 +09:30
Ryan Zhao
b494088c3d WIP: further refactor on old jobs 2023-05-08 17:12:20 +10:00
andrew
f0715f16e0 Fix scroll to bottom button always visible if last item is taller than RecyclerView 2023-05-08 14:09:01 +09:30
Ryan Zhao
2ceb9e2bf4 clean up old job manager 2023-05-08 12:29:21 +10:00
Ryan Zhao
2b48b52df0 remove unused jobs and wrap up old job refactoring 2023-05-08 11:18:33 +10:00
andrew
ec2abffdcc Remove logs 2023-05-08 10:33:39 +09:30
andrew
e9a15941ae Fix colors 2023-05-05 17:47:36 +09:30
ryanzhao
375815c719 WIP: refactor on jobs using old job table 2023-05-05 16:51:44 +10:00
andrew
6a5d97a0f0 Fix something 2023-05-05 12:37:46 +09:30
andrew
a9078c8d08 ...and the rest 2023-05-05 12:32:54 +09:30
andrew
a152250a60 Add comments 2023-05-05 12:18:39 +09:30
andrew
24741fcc22 Synchronize Cipher in KeystoreHelper 2023-05-05 12:10:46 +09:30
andrew
d3ce899a80 Synchronize all Cipher#doFinal 2023-05-05 12:07:19 +09:30
andrew
45eb3549f6 Add sync status message 2023-05-04 17:01:45 +09:30
ryanzhao
d868021f0a move job running status from database to memory 2023-05-04 15:30:09 +10:00
ryanzhao
7a14c3f8be Merge branch 'dev' into bluetooth-manager-crash 2023-05-02 09:20:41 +10:00
Andrew
99cb10f5be
Add send approval message (#1157) 2023-05-01 17:19:19 +10:00
Andrew
83b6002a27
Fix emoji misalignment (#1155) 2023-05-01 17:19:13 +10:00
Andrew
a934c5c2e2
Fix missing media progress (#1151) 2023-05-01 17:19:01 +10:00
Andrew
70aab2994b
Refactor MmsDatabase (#1169) 2023-05-01 17:16:48 +10:00
Ryan Zhao
2630c97a4e add where clause for marking all jobs pending to reduce the time for writing to db 2023-05-01 17:01:57 +10:00
ryanzhao
bd4f451513 Merge branch 'dev' into bluetooth-manager-crash 2023-04-27 14:38:09 +10:00
andrew
58e532f0ec Swallow screenshot exceptions 2023-04-26 16:31:28 +09:30
Andrew Gallasch
5d552a7f93
Remove unnecessary api version checks in WindowUtil (#1163) 2023-04-26 14:56:00 +10:00
Andrew Gallasch
716fc1f4fa
Add SafeViewPager to fix touch exception in MediaPreviewActivity (#1166) 2023-04-26 14:54:54 +10:00
Andrew Gallasch
7d33177e06
Fix status and nav bar colors (#1165) 2023-04-26 14:48:34 +10:00
Ryan Zhao
c7bbdb778b minor refactor 2023-04-24 15:50:53 +10:00
Ryan Zhao
51856138e3 refactor on SignalAudioManager 2023-04-24 15:38:06 +10:00
Andrew Gallasch
63d442584c
Fix empty message behind media message (#1150) 2023-04-13 16:54:03 +10:00
wafflesvsfrankie
9ad73139b6
Add accessibility tags (#1054)
* adding accessibility id to new conversation button

* adding accessibility ids and strings for testing

* updating id tags for new conversation buttons

* accessibility tags for create contact test

* adding ids for message requests, config message, requests banner and conversation view

* adding more tags to settings page

* adding tags to different resolutions for landing page

* updating display name in settings to include accessibility id

* found some stashed changes which i forgot about

* more stashed changes

* adding tags to layout sw400dp

* closed group testing, delete/unsend message testing and selecting contacts tag

* adding tags for message body, selecting contacts for group creation, deleted message config, unsend message modal, and trash icon

* added tags for disappearing messages menu option, time selector, clock icon, confirm of change (ok)and control message

* add test for block user

* docs: Adding in accessibility ID's for Appium testing

* accessibility tags for conversation options, profile picture/settings and block options

* Add content descriptions for better accessibility

* Add more content descriptions

* Add timer icon content description

* Update profile picture content description

* Adding accessibility ids to new conversation creation screen and to message notification settings

* fix: content descriptions in their correct places and prevent a crash

* build: update build number

* build: update build number

* Adding back in FrameLayout, making changes as request

* Fixed viewPager move

* Fixing changes as requested by Jubb

* Adding content descriptions to mentions list, voice message settings, link preview permissions, closed group menu and slow mode notifications option

* Adds content descriptions to blocked contacts heading in conversations settings, individual contacts in blocked contacts page and to empty message requests folder

* Adds content descriptions to empty message request folder and text input box for username on settings page

---------

Co-authored-by: charles <charles@oxen.io>
Co-authored-by: hjubb <hjubb@users.noreply.github.com>
2023-04-04 11:33:17 +10:00
Morgan Pretty
eb739bdc9b
ANR Defensive Coding (#1132)
* Made a number of changes to try and improve background ANRs

Added some more logs to the BatchMessageReceiveJob (to make it easier to track a specific job)
Shifted the ConversationActivity adapter initialisation to run on a background thread to reduce the hang when opening a conversation
Updated the ConversationViewModel to cache the recipient and openGroup values to avoid accessing the database unnecessarily
Updated the code to just stop all current closed group pollers instead of fetching a list to stop
Updated the PN registration to be triggered in an AsyncTask
Updated the call code to unregister a couple of additional receivers
Updated the background poller so it waits for 15 mins before running and doesn't replace the existing scheduler (allows for PNs to trigger explicit background polling)
Fixed an issue where we were sending push notifications which were too large and likely to fail as a result (non-pre-offer call messages)
Fixed an issue where a failing Open Group poller could prevent the background poller from receiving and processing DMs

* Updated to a more coroutine-y convention
2023-03-31 13:24:36 +11:00
Morgan Pretty
5e28af2be4
Updated the code to use the network offset time everywhere relevant (#1111)
* Updated the code to use the network offset time everywhere relevant

* Updated the SnodeAPI.nowWithOffset to use @JvmStatic
2023-03-31 10:11:30 +11:00
Morgan Pretty
391418ae1e
Merge pull request #1107 from mpretty-cyro/fix/group-avatar-download-job-duplication
Fixed a few issues related to the GroupAvatarDownloadJob
2023-02-17 10:16:22 +11:00
Morgan Pretty
c8846bc31a
Merge pull request #1118 from mpretty-cyro/feature/add-copy-to-long-press-menu
Add ‘Copy community URL’ to the long-press menu
2023-02-15 15:40:47 +11:00
Morgan Pretty
5bd188387b
Merge pull request #1112 from mpretty-cyro/fix/link-preview-layout-issues
Fixed a few layout issues with the LinkPreviewView
2023-02-15 15:39:37 +11:00
Morgan Pretty
cc7a80900f Added copy session id and community url to the conversation long press menu 2023-02-14 16:43:55 +11:00
Morgan Pretty
da0d38f389 Updated the copy for the Giphy warning prompt 2023-02-14 16:17:25 +11:00
Morgan Pretty
4df530d341 Code review changes 2023-02-14 14:10:47 +11:00
Morgan Pretty
bbedad5ebb Fixed a few layout issues with the LinkPreviewView 2023-02-10 14:33:19 +11:00
Morgan Pretty
9fd68d27f8 Fixed a few issues with the GroupAvatarDownloadJob
Added a method to remove the Group avatar
Fixed an issue where the recipient diffing on the HomeActivity wasn't working properly
Fixed an issue where the GroupAvatarDownloadJob could be scheduled even when there was already one scheduled
2023-02-10 10:05:28 +11:00
Morgan Pretty
cd3b8f3571 Fixed a few issues related to the GroupAvatarDownloadJob
Added logic to avoid scheduling a GroupAvatarDownloadJob if there is already an existing one with the same parameters
Added logic to avoid trying to download an old avatar for a group if there is a new one
Added logic to prevent an old GroupAvatarDownloadJob from overriding a valid avatar with an old one
2023-02-08 13:42:35 +11:00
Morgan Pretty
50989cb2ee Increased file upload limits to 10Mb 2023-02-06 14:22:26 +11:00
Morgan Pretty
0256735135 Fixed a few bugs, added logging and removed some old code
Added the ability to copy the sessionId of open group URL from the conversation menu
Added additional logging to the BatchMessageReceiveJob to make future debugging easier
Removed the OpenGroupMigrator
Updated the JobQueue logging to provide more insight
Fixed an issue where the database migrations weren't blocking which could result in failing/crashing SQL queries
Fixed an issue where the new database file wouldn't be removed if a migration error was thrown
Fixed an issue where the new database could exist in an invalid state and the app wouldn't attempt to remigrate
Fixed an incorrectly throw exception in the PassphrasePromptActivity
2023-02-03 13:33:52 +11:00
Morgan Pretty
7ffe48b5ed Fixed an issue where the message bubble could be sized incorrectly 2023-01-27 15:19:02 +11:00
Morgan Pretty
5d7d141d0c Added a missing parameter to the SMS & MSS projections 2023-01-25 17:19:23 +11:00
Morgan Pretty
30615be029 Fixed a build error in the MockDataGenerator 2023-01-24 15:56:14 +11:00
Morgan Pretty
87f1d708b1 Merge remote-tracking branch 'upstream/dev' into feature/unread-mention-indicator
# Conflicts:
#	app/src/main/res/values/themes.xml
2023-01-24 15:44:22 +11:00
Morgan Pretty
2711a6dd5f
Merge pull request #994 from ceokot/message-request-response
Add profile data to message request responses
2023-01-24 14:53:09 +11:00
Morgan Pretty
1ce9e47c51
Merge pull request #991 from ceokot/groups-push-message-sender-name
fix: Show message sender in push notifications for groups
2023-01-24 14:52:50 +11:00
Morgan Pretty
ce3aa980aa Merge remote-tracking branch 'upstream/dev' into message-request-fixes
# Conflicts:
#	app/src/main/java/org/thoughtcrime/securesms/groups/OpenGroupManager.kt
#	libsession/src/main/java/org/session/libsession/messaging/open_groups/OpenGroup.kt
#	libsession/src/main/java/org/session/libsession/messaging/sending_receiving/pollers/OpenGroupPoller.kt
2023-01-24 14:48:54 +11:00
Morgan Pretty
251df065f8 Merge remote-tracking branch 'upstream/dev' into message-request-response
# Conflicts:
#	app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt
#	libsession/src/main/java/org/session/libsession/messaging/sending_receiving/MessageSender.kt
2023-01-24 14:44:56 +11:00
Morgan Pretty
e44ae140e0 Merge remote-tracking branch 'upstream/dev' into feature/unread-mention-indicator
# Conflicts:
#	app/src/main/res/values/themes.xml
2023-01-24 14:24:33 +11:00
Morgan Pretty
bc20811431 Merge remote-tracking branch 'upstream/dev' into feature/read_status_updates
# Conflicts:
#	app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageView.kt
#	app/src/main/res/values/strings.xml
2023-01-24 14:10:14 +11:00
Morgan Pretty
dc9458f313 Merge remote-tracking branch 'upstream/dev' into feature/unread-mention-indicator
# Conflicts:
#	app/src/main/java/org/thoughtcrime/securesms/attachments/DatabaseAttachmentProvider.kt
#	libsession/src/main/java/org/session/libsession/database/MessageDataProvider.kt
2023-01-24 14:02:08 +11:00
Morgan Pretty
025989f928
Merge pull request #1069 from mpretty-cyro/feature/performance-improvements
Performance improvements
2023-01-24 13:59:32 +11:00
Morgan Pretty
e0785c4854 Added in fixes and defensive coding for the most frequent crashes
Fixed a crash which could occur when dealing will calls in the background on Android 12 and newer
Fixed a crash when we don't have permission to check the current call state
Fixed a crash when the ScreenshotObserver receives an invalid Uri (just prevent the specific case)
2023-01-24 13:31:56 +11:00
0x330a
86b065203f
fix: prevent very old messages (15 minutes ago) being processed to prevent endless crashes in some cases 2023-01-23 15:43:43 +11:00
Morgan Pretty
a6f09c6fef Added some defensive coding to help prevent incorrect message statuses 2023-01-23 12:42:10 +11:00
Morgan Pretty
8a4a9623cc Fixed an edge case where an OpenGroup might not download it's image 2023-01-20 17:42:46 +11:00
Morgan Pretty
0ed5c5825d Cleaned up some of the error logging 2023-01-20 15:24:14 +11:00
Morgan Pretty
afa42daab1 Updated the 'scrollToBottom' behaviour to be more efficient 2023-01-20 09:19:29 +11:00
Morgan Pretty
810430e806 Fixed a couple of issues with the OpenGroupDeleteJob
Updated the OpenGroupDispatcher to have a thread limit of 8 (was previously unlimited which could result in the app getting flooded with threads under certain conditions)
Updated the OpenGroupDeleteJob to do bulk deletions (instead of individual message deletions)
Updated the OpenGroupDeleteJob to catch and report failures (wasn't previously happening)
2023-01-20 09:02:59 +11:00
Morgan Pretty
ce8e5c596e Fixed the message sorting for a couple of database queries 2023-01-19 15:24:50 +11:00
Morgan Pretty
694ca79958 Added the unread mention indicator to the conversation list
Fixed the unread indicator colours to match correct theming designs
Fixed a bug where the unread count could be incorrect when receiving UnsendRequests within the same poll
Added a couple missing theme colours
2023-01-19 15:24:50 +11:00
Morgan Pretty
cae15a200d Added temporary support for downgrading and notify the user upon failure 2023-01-19 15:24:09 +11:00
0x330a
ba87cbc070
fix: standardise call menu recipient function to share with the new action bar to center better. issue with closed group creation on multi device potentially 2023-01-16 16:54:16 +11:00
Morgan Pretty
a2fcb3195d General cleanup
Fixed a bug where open groups were incorrectly displaying closed group avatar images
Removed some commented out code
2023-01-16 16:46:24 +11:00
Morgan Pretty
f4fdfd7410 Added the updated delivery status UI 2023-01-16 14:48:38 +11:00
0x330a
f0aba3a973
fix: look at early expiring incoming messages for delete after read 2023-01-13 16:38:37 +11:00
Morgan Pretty
cc5c63b211 Fixed a couple of issues from the rebase, removed an unneeded text clear 2023-01-13 16:16:52 +11:00
Morgan Pretty
70f0dad36e Fixed a few bugs and some optimisations
Updated a number of nested layout components to be included instead of inflated
Added a couple of optimisations to the EmojiTextView
Fixed an issue where long conversation titles could squish the unread count
Fixed an issue where the typing indicator wasn't working on the home screen
2023-01-13 15:56:14 +11:00
Morgan Pretty
693c3a9656 Fixed a few cases where we were using the write access for read operations 2023-01-13 15:56:14 +11:00
Morgan Pretty
f9ff3feb29 Refactored code to avoid passing lifecycleCoroutineScope as a parameter 2023-01-13 15:56:14 +11:00
Morgan Pretty
afdf730eaa Added a couple of minor UI optimisations 2023-01-13 15:56:14 +11:00
Morgan Pretty
3e68bdc2f8 Fixed an issue introduced by the last commit with OpenGroup initialisation 2023-01-13 15:56:14 +11:00
Morgan Pretty
5afd647686 Tweaked some open group handling and a couple of onboarding issues
Updated the OpenGroup adding and polling logic to reduce duplicate API calls
Updated the BackgroundGroupAddJob to start a GroupAvatarDownloadJob instead of running the download itself (to appear to run faster)
Defaulted OpenGroups to use blinded auth when no server capabilities are present
Fixed an issue where the background poller could be started even though the onboarding hadn't been completed
Fixed an issue where the database could get into an invalid state if the app was restarted during onboarding
2023-01-13 15:56:14 +11:00
Morgan Pretty
d0a4bac83e Shifted the creation of AttachmentDownloadJobs to the IO thread 2023-01-13 15:56:14 +11:00
Morgan Pretty
a1b052ef82 Added indexes to the Reactions database 2023-01-13 15:56:13 +11:00
Morgan Pretty
e7b6ddacbb Shifted a number of db writes when opening conversations to the IO thread so they don't block 2023-01-13 15:55:31 +11:00
Morgan Pretty
c0bef51fe0 Fixed a couple of bugs where the HomeDiffUtil could incorrectly detect differences 2023-01-13 15:55:31 +11:00
0x330a
2048e08c86
fix: legacy message deletions working better now 2023-01-11 17:25:38 +11:00
0x330a
b6a4fb9024
refactor: fix star imports 2023-01-11 13:37:55 +11:00
0x330a
06947b63fb
fix: handle the correct legacy setting of expiring config based on thread not message sender (incorrectly attributing to 1o1 instead of groups 2023-01-11 12:06:43 +11:00
Morgan Pretty
d68d26cd5d Added the MockDataGenerator to simplify db testing 2023-01-10 10:41:53 +11:00
Morgan Pretty
5abc3119cb Fixed an issue where clearing device data would create an invalid DB state 2023-01-06 15:41:26 +11:00
Morgan Pretty
e6fe38587b Fixed an issue where database migrations were broken 2023-01-06 10:36:56 +11:00
Morgan Pretty
1a28fd2a9e Added code to migrate from SQLCipher 3 to 4 2023-01-05 16:56:52 +11:00
charles
0f4e18fe93 Update group admin check 2022-12-23 11:58:49 +11:00
charles
cdbf76c0f1 Only allow admins to change disappearing messages config 2022-12-22 18:20:13 +11:00
charles
1f0a0760ba Cleanup refactor 2022-12-22 17:23:05 +11:00
charles
6769789e9c Fix call info expiry 2022-12-22 15:05:33 +11:00
charles
03766d57ee Disappear after read info refactor 2022-12-22 14:18:40 +11:00
charles
f600e4d343 Add accessibility id's 2022-12-22 12:07:45 +11:00
charles
7c6e4679fe Expire data extraction messages 2022-12-22 11:07:57 +11:00
charles
03c95f1ba7 Expire group update info and call messages 2022-12-22 10:42:09 +11:00
charles
e460e086e6 Cleanup 2022-12-21 18:33:48 +11:00
charles
18ff597811 Fix outdated client banner display 2022-12-21 17:47:00 +11:00
charles
2228bfc8f2 Fix expiry start 2022-12-21 15:48:56 +11:00