cb9e1a106a
rename API
2022-10-25 16:52:04 +02:00
40bbfd23b6
rename to org.matomocamp.companion
2022-10-25 16:48:49 +02:00
Christophe Beyls
016a768d05
update Gradle plugin, various libraries and change compileSdkVersion to 33
2022-09-24 13:16:23 +02:00
Christophe Beyls
53d9d5e60a
fix: properly handle the case of missing "schedule exact alarm" permission on Android 12+
2022-09-07 17:00:46 +02:00
Christophe Beyls
7b4dd70b41
update Gradle plugin, Hilt, Desugar libs and various libraries to their latest stable version
...
change compile and target SDK version to 32
2022-09-06 22:44:06 +02:00
Christophe Beyls
ad9ff4fc83
new implementation of tickerFlow and synchronizedTickerFlow based on kotlin.time.Duration and TimeSource
2022-07-22 12:50:11 +02:00
Christophe Beyls
8949b4764d
update Gradle plugin, Kotlin and misc libraries
2022-07-15 16:39:06 +02:00
Christophe Beyls
523f6812b5
make stateFlow() inline
2022-02-17 18:55:06 +01:00
Christophe Beyls
57c50f280a
use a different item view type for the event in progress in TrackScheduleAdapter
...
this also enables a new crossfade animation
2022-02-10 23:32:36 +01:00
Christophe Beyls
2b35ce3c77
simplify the implementation of createSimpleItemCallback()
2022-02-06 17:37:49 +01:00
Christophe Beyls
c025ee9f29
Add support for device timezone display ( #79 )
...
Change code to allow observing the ZoneId and update display on changes. The ZoneId is selected according to user settings, it's either the conference timezone like before or the local timezone which is monitored in real time.
fixes #66
2022-02-06 17:27:15 +01:00
Christophe Beyls
fd02ba5fde
use the MenuProvider API to populate ActionBar menus from Fragments
2022-02-03 18:52:09 +01:00
Christophe Beyls
3f6c9d6219
Migrate from LiveData to Kotlin Flow ( #77 )
...
- Replace all usages of LiveData with Flow and StateFlow
- Replace Paging 2 with Flow-based Paging 3
- Inject custom ViewModel arguments directly through custom ViewModel Factories.
2022-02-03 17:30:55 +01:00
Christophe Beyls
eecb37186a
Enable non-transitive R class, allowing further optimizations
2022-01-28 13:58:00 +01:00
Christophe Beyls
bfddd11991
Don't share the ViewModel between PersonInfoActivity and PersonInfoListFragment; get the year from ScheduleDao directly
2022-01-22 16:01:56 +01:00
Christophe Beyls
a6e65aee19
Remove SavedStateHandle implementation
...
Restore ViewModel state manually from View state instead
+ upgrade various libraries.
2022-01-21 10:32:47 +01:00
Christophe Beyls
61f8e2fca3
Refactor AppAlarmManager ( #75 )
...
Remove AlarmIntentService (which was based on deprecated JobIntentService) and use use simple coroutines queued using a Mutex instead.
The execution time is so quick that there is no need to create expedited background Jobs for the alarm scheduling tasks.
Use BroadcastReceiver.goAsync() to build the notification asynchronously from a coroutine without the need to launch a Service or acquiring a special wake lock.
2022-01-08 22:58:26 +01:00
Christophe Beyls
fb58598937
bump minSdkVersion to 19 and remove deprecated code
2022-01-01 18:03:15 +01:00
Christophe Beyls
5440860340
Replace Date and Calendar classes with Java 8 time APIs ( #74 )
...
Enable multidex and Java 8 APIs desugaring in the project.
Also bump minSDK version to 18 to allow calling DateFormat.getBestDateTimePattern().
2021-12-31 18:01:18 +01:00
Christophe Beyls
d35d8257ec
use .orEmpty() where applicable
2021-12-26 16:05:00 +01:00
Christophe Beyls
f011e0a2b4
use a conflated channel for SharedPreferences.getAsFlow()
2021-12-26 15:55:12 +01:00
Christophe Beyls
1ad67a4c3b
update database version to 3, change fulltext indexes from FTS3 to FTS4
2021-11-27 15:06:37 +01:00
Christophe Beyls
a9184e62aa
Refactor UI State SharedPreferences and add Datastore to the database ( #73 )
...
- change database to use destructive migration and properly clear the extra data on each migration
- store database extra data using the datastore-preferences library instead of SharedPreferences
- move ScheduleDao access from TracksFragment to TracksViewModel and rename previous TracksViewModel to TracksListViewModel
- centralize all UI State preferences in the same SharedPreferences file and inject it. It is loaded asynchronously on application startup to minimize blocking the main thread
- change days cache in ScheduleDao from LiveData to a hot Flow.
2021-11-22 19:44:02 +01:00
Christophe Beyls
6df1aa68b9
enable multidex for debug mode
2021-11-06 19:31:02 +01:00
Christophe Beyls
58550b8f92
Update target SDK to 31 (Android 12) ( #72 )
...
- update target SDK to 31 and libraries to their latest version
- enable back PhotoViewDrawerLayout
- add PendingIntent flags and manifest entries required by target SDK 31
- update Travis config to API 31 build tools
- add missing experimental Kotlin API annotation.
2021-11-06 17:04:36 +01:00
Christophe Beyls
a5b9aca2e7
Inject user preferences using UserSettingsProvider ( #71 )
...
Encapsulate all user settings in UserSettingsProvider singleton and inject it where required.
The services injected in the main application class will now be auto-started.
2021-11-03 00:52:23 +01:00
Christophe Beyls
6fde0a2c56
remove SearchView and search suggestions provider, replace it with an EditText and sample its updates
2021-10-10 16:16:08 +02:00
Christophe Beyls
07b6bc16a0
upgrade Kotlin, Coroutines, Hilt, Fragment, AppCompat
2021-07-23 12:19:54 +02:00
Christophe Beyls
7531b22a0a
update Gradle plugin, Core, Material Components
2021-07-10 12:03:49 +02:00
Christophe Beyls
71b1bcaf37
update Hilt to 2.37, inject HttpClient in FosdemApi, inject Call.Factory in HttpClient
2021-07-10 11:45:54 +02:00
Christophe Beyls
684131fb51
Add dependency injection using Hilt ( #68 )
...
Configure Hilt to inject FosdemApi, FosdemAlarmManager, BookmarksDao and ScheduleDao
2021-05-14 21:47:10 +02:00
Christophe Beyls
d5e246ef20
cleanup methods deprecated since Kotlin 1.5
2021-05-14 02:01:42 +02:00
Christophe Beyls
3a90a1ed79
remove custom enum type conversion. Room now supports enums since version 2.3.0
2021-05-14 01:53:48 +02:00
Christophe Beyls
0b707b5872
update Gradle Plugin to 4.2.0, Kotlin to 1.5.0, fragment-ktx to 1.3.3 and Room to 2.3.0
2021-05-07 22:35:18 +02:00
Christophe Beyls
44e9e69a5d
upgrade various libraries and replace custom ConcatAdapter implementation with RecyclerView's ConcatAdapter
2021-04-09 19:01:58 +02:00
Christophe Beyls
51d25112bc
update Material Components library to 1.3.0 and replace custom MaterialHorizontalProgressBar with LinearProgressIndicator
2021-02-16 18:46:27 +01:00
Christophe Beyls
389af5475c
update fragments to 1.3.0 and use the new Activity Result and Fragment Result APIs
2021-02-15 22:03:36 +01:00
Christophe Beyls
cf91dcc0f8
allow alarms to go off while the device is in low-power idle mode
2021-02-07 16:57:54 +01:00
Christophe Beyls
258598e730
Import bookmarks feature ( #65 )
...
- move ICalendarWriter to ical package
- create ICalendarReader and share CRLF constant with ICalendarWriter
- add import icon
- implement bookmarks parser and add file picker to send parsed bookmark ids to ExternalBookmarksActivity
- add feature to import all bookmarks shown in the external bookmarks list at once, with confirmation dialog.
2021-02-06 01:33:41 +01:00
Christophe Beyls
b7484e406c
always expect non-null body in case of successful http response
2021-01-27 19:56:59 +01:00
Jaime Soriano Pastor
3518208b3a
Ignore duplicated person in event ( #64 )
2021-01-26 18:48:33 +01:00
Christophe Beyls
7e63735a7d
replace "more info" menu item with floating action button in PersonInfoActivity
...
use a single ViewModel in the Activity as data source for both Activity and Fragment.
2020-12-21 18:01:57 +01:00
Christophe Beyls
5a0b641b61
replace deprecated method call setToolbarColor() with setDefaultColorSchemeParams() in CustomTabsIntent.Builder
2020-12-19 19:13:20 +01:00
Christophe Beyls
9386b9c107
refresh the list of libraries used in the project
2020-12-19 19:04:29 +01:00
Christophe Beyls
2771cea3a4
only display the room name instead of "(Building Unknown)" in case of unknown building
2020-12-12 14:19:37 +01:00
Christophe Beyls
72734576db
replace android's JsonReader with Moshi's JsonReader to parse room statuses more efficiently
2020-12-12 00:34:39 +01:00
Christophe Beyls
241ff25398
move overridden library resources to a separate resources folder for clarity
2020-11-29 12:57:08 +01:00
Christophe Beyls
d1a336c1e0
upgrade Kotlin to 1.4.20 and coroutines to 1.4.1
...
replace java.util.* imports with individual imports
2020-11-25 14:57:50 +01:00
Christophe Beyls
475ce1a451
defer initialization of OkHttpClient on a background thread
2020-11-11 19:26:18 +01:00
Christophe Beyls
9578ca949e
use okhttp-tls library to build custom SSLSocketFactory and TrustManager instances
2020-11-11 13:02:35 +01:00