* Update the Play Billing Library dependency version
* Update the implementation of the onProductDetailsResponse method.
* Maintain same functionality of enablePendingPurchases
* Enable automatic service reconnection
* Query product details as well when model initializes
* Use activity directly as context
* Warn instead of throwing when unable to acknowledge all purchases
* Show error messages when billing client unavailable
* Fix typo
* Rename method
* Simplify billingResult response code handling
* Add error message on purchase failure
* Move methods around; improve log statements and kdoc
* Return early in onProductDetailsResponse and add comments
* Refactor acknowledge process to use coroutine and notify user on failure. Return early in processPurchases and update log statements.
* Change deprecated URI parse to toUri
* Update kdoc
* Show success message on acknowledged purchase
* Query product details with kotlin extensions
* Minor changes
- rename method
- rearrange
- update comment and kdoc
* Update kdoc
* Use activity directly as context replacement
* Add only distinct new purchases
* Remove descriptive variable
* Use injected io dispatcher
* Add Fastmail OAuth login implementation
* [CI] Run tests on API level 36, too
* Add Fastmail OAuth login support
* Remove logging and move companion object to bottom
* Remove FastmailLogin and GoogleLogin to OAuthLogin and OAuthGoogle
- Remove FastmailLogin class
- Refactor GoogleLogin class to OAuthGoogle object
- Update AndroidManifest.xml to use ${applicationId} for OAuth redirect URI
- Add OAuthFastmail object for Fastmail OAuth integration
- Update GoogleLoginModel and FastmailLoginModel to use OAuthGoogle and OAuthFastmail respectively
- Add OAuthIntegration object for shared OAuth functionality
* Update Fastmail authentication error message and add redirect URI documentation
* Add error handling for refresh token exception
* Add Fastmail OAuth login implementation
* [CI] Run tests on API level 36, too
* Add Fastmail OAuth login support
* Remove logging and move companion object to bottom
* Remove FastmailLogin and GoogleLogin to OAuthLogin and OAuthGoogle
- Remove FastmailLogin class
- Refactor GoogleLogin class to OAuthGoogle object
- Update AndroidManifest.xml to use ${applicationId} for OAuth redirect URI
- Add OAuthFastmail object for Fastmail OAuth integration
- Update GoogleLoginModel and FastmailLoginModel to use OAuthGoogle and OAuthFastmail respectively
- Add OAuthIntegration object for shared OAuth functionality
* Update Fastmail authentication error message and add redirect URI documentation
* Add error handling for refresh token exception
* Move companion object to the end of class
* Skip login type selection when logging in via intent
* Skip login type page if not default login type
* Add test for implicit email intent
* Fix test
* Update KDoc
* Refactor URI handling in LoginActivity and StandardLoginTypesProvider
* Skip login type page if intent is clear, but don't skip when using defaultLoginType
* Log unclear intents
* Use data class instead of pair
---------
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* Migrated badges from XML to ImageVector
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Got rid of unused resources
* Migrated Mastodon icon to ImageVector
* Moved file to managed
* Rollback
---------
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Migrated badges from XML to ImageVector
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Got rid of unused resources
* Migrated Mastodon icon to ImageVector
* Moved file to managed
* Rollback
---------
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Fixed surface color in dark theme
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Account screen: higher contrast for collection cards
* Account screen: use normal instead of elevated cards
* Adapt colors of card lists
---------
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* Fix lint in gplay, too
- Add duplication notice (unfortunately we can't put it to davdroid/AndroidManifest.xml because multiple manifests per build variant are not supported by AGP)
* Add tools NS
* Fix lint in gplay, too
- Add duplication notice (unfortunately we can't put it to davdroid/AndroidManifest.xml because multiple manifests per build variant are not supported by AGP)
* Add tools NS
* [WIP] Colors
* Update navigation drawer
* Update colors
* [WIP] PermissionSwitchRow night mode
* Fix PermissionSwitchRow icon in night mode
* Use more intense colors for FABs
* Select nextcloud login type on nextcloud setup intent
* Fix linting error
* Add documentation
* Move model creation to compose LoginScreen
* Minor changes
- Use boolean to decide on skipping startPage
- Move login type selection logic to login types provider
* Minor changes
---------
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* [WIP] Rewrite login to M3 and better UI states
* Use AccountRepository to create account
* LoginModel is SSOT for page navigation
* Support forced group method
* Show progress bar when account is being created
* Make account name suggestions work again
* Use M3 text field supportText for errors
* Refactor: login by URL, login by email, advanced login
* Refactor Nextcloud login, move login flow logic to separate class
* Refactor Google login, move OAuth logic to separate class
* Fix errors when navigating back after successful resource detection
* Make PasswordTextField M3
* ManagedLogin: M3, UiState
* Updated theme; managed login functionality
* Improve back navigation
* Rename AppTheme to M2Theme, add M3 theme
* Rewrite AboutActivity to M3
* Apply M3 theme; minor optimizations
* Use M3 version of AboutLibraries
* Use material3 instead of material3-android dependency
* Use reversed theme
* Rename AppTheme to M2Theme, add M3 theme
* Rewrite AboutActivity to M3
* Apply M3 theme; minor optimizations
* Use M3 version of AboutLibraries
* Use material3 instead of material3-android dependency
* Use reversed theme
* Added custom Compose theme
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Got rid of accompanist theme adapter
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Removed unused import
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added actionbar to the activities that didn't have one
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Theme now always hides actionbar
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added back string
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Got rid of all color definitions
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Moved color definition to drawable
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Using Compose colors
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Using AppCompat theme
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Removed XML theme
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Moved color definition
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added bars coloring in Compose
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added dark theme
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added custom Compose theme
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Got rid of accompanist theme adapter
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Removed unused import
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added actionbar to the activities that didn't have one
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Theme now always hides actionbar
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added back string
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Got rid of all color definitions
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Moved color definition to drawable
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Using Compose colors
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Using AppCompat theme
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Removed XML theme
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Moved color definition
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added bars coloring in Compose
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added dark theme
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Changed content description
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Using `onSupportNavigateUp`
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Changed color on top of primary green
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added up navigation
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Made `onSupportNavigateUp` optional
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Typo
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Got rid of edge-to-edge
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added back some XML styles
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Simplify TasksCard calling
* Move theme colors to flavor-specific ThemeColors file
* Remove global AppTheme paddings for now
* Optimize imports
---------
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* Added custom Compose theme
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Got rid of accompanist theme adapter
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Removed unused import
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added actionbar to the activities that didn't have one
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Theme now always hides actionbar
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added back string
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Got rid of all color definitions
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Moved color definition to drawable
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Using Compose colors
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Using AppCompat theme
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Removed XML theme
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Moved color definition
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added bars coloring in Compose
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added dark theme
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added custom Compose theme
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Got rid of accompanist theme adapter
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Removed unused import
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added actionbar to the activities that didn't have one
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Theme now always hides actionbar
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added back string
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Got rid of all color definitions
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Moved color definition to drawable
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Using Compose colors
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Using AppCompat theme
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Removed XML theme
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Moved color definition
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added bars coloring in Compose
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added dark theme
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Changed content description
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Using `onSupportNavigateUp`
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Changed color on top of primary green
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added up navigation
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Made `onSupportNavigateUp` optional
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Typo
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Got rid of edge-to-edge
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Added back some XML styles
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
* Simplify TasksCard calling
* Move theme colors to flavor-specific ThemeColors file
* Remove global AppTheme paddings for now
* Optimize imports
---------
Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* Remove adapters
* Remove xml
* Add top bar
* Add text
* Add available badges list
* Add bought badges list
* Add bought badges list
* Drop animations
* Show snackbar on errors
* Optimize imports
* Update uri handler to compose
* Suppress unused warning
* Update indenting
* [WIP] Rewrite navigation drawer to Compose (only standard build variant)
* Rewrite other navigation drawer of all build flavors to Compose
* Shorten StandardAccountsDrawerHandler
* Add previews
* [WIP] Rewrite navigation drawer to Compose (only standard build variant)
* Rewrite other navigation drawer of all build flavors to Compose
* Shorten StandardAccountsDrawerHandler
* Add previews
* Move homepage and other Web URLs to Constants; minor refactoring
* Use AppTheme with built-in safe LocalUriHandler instead of MdcTheme; minor refactoring
* Account settings: add TODO for Compose rewrite
* Use UriHandler instead of UiUtils.launch when possible
* Move homepage and other Web URLs to Constants; minor refactoring
* Use AppTheme with built-in safe LocalUriHandler instead of MdcTheme; minor refactoring
* Account settings: add TODO for Compose rewrite
* Use UriHandler instead of UiUtils.launch when possible
* [CI] Run lint and tests for standard, gplay and managed flavor
* Fix requireViewById minimum SDK problem
* Specify exported for .ui.setup.LoginActivity in Manifest
* Renamed LoginCredentialsFragmentFactory to LoginFragmentFactory
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Fixed fragment name
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Rename LoginInitFragment (managed) to ManagedLoginInitFragment
---------
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* Add login_type choice restriction
* Move NextcloudLoginFlowFragment from davdroid to main
* Start NextcloudLoginFlowFragment when set as login_type
* Remove unused default login type
* Prefill NextcloudLoginFlowFragment with base URL from config
* Update imports
* Make String comparison case-insensitive
* Create fragment with extra instead of constructor argument
* Minor reordering
---------
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* Move all common locales to main and adjust transifex config
* Rename gplay and managed string resource files
---------
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* Move all common locales to main and adjust transifex config
* Rename gplay and managed string resource files
---------
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* Rewrite AboutActivity to Compose (still keeping the tab fragments)
* Replace Translations and Libraries fragments
* [WIP] Rewrite AboutApp
* [WIP] App license info as Composable
* [WIP] Hilt viewModel/Compose
* Fill ManagedAppLicenseInfoProvider with real data
* Simplify setContent, use LazyColumn for translations
* Minor changes
* Rewrite AboutActivity to Compose (still keeping the tab fragments)
* Replace Translations and Libraries fragments
* [WIP] Rewrite AboutApp
* [WIP] App license info as Composable
* [WIP] Hilt viewModel/Compose
* Fill ManagedAppLicenseInfoProvider with real data
* Simplify setContent, use LazyColumn for translations
* Minor changes
* Rewrite AboutActivity to Compose (still keeping the tab fragments)
* Replace Translations and Libraries fragments
* [WIP] Rewrite AboutApp
* [WIP] App license info as Composable
* [WIP] Hilt viewModel/Compose
* Fill ManagedAppLicenseInfoProvider with real data
* Simplify setContent, use LazyColumn for translations
* Minor changes
* LoginActivity: refactor menu to MenuProvider; LoginModel: add contact group type
* Take LoginModel group method into account when creating the account; Nextcloud login: set preferred contact group type
* Replace onActivityResult by contract
* Add Nextcloud option to default login screen
* Decouple NextcloudLoginFlowComposable from model
* UI and model changes
* Single-line URL field
* Add progress indicator and other secondary UI
- use Google Play In-App Review API for private feedback on -gplay (fall back to email)
- start email intent again when "beta feedback" is selected in navigation drawer
* Upgraded AGP
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Enabled automatic locale config generation
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Added fallback language
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Added legacy service
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Added `Accept-Language` header to custom tabs
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
* Nextcloud Login Flow/Google OAuth: also send language tag for default locale
---------
Signed-off-by: Arnau Mora <arnyminerz@proton.me>
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* Move GoogleOAuth members into GoogleLoginFragment
* Require login flow capable browser and notify user if missing
* Receive AppAuth redirects only in standard and gplay flavor
* Set davx5 as user-agent for AppAuth connection builder
* Re-authentication in Account settings
* Catch unauthorized exceptions at collection refresh and notify user to re-authenticate
* Suggest email address on account creation
* Set contact groups default setting as per-contact categories for oauth logins
* Add authentication to debug info, minor other changes
* Better error handling; don't pre-set group type
---------
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* Move GoogleOAuth members into GoogleLoginFragment
* Require login flow capable browser and notify user if missing
* Receive AppAuth redirects only in standard and gplay flavor
* Set davx5 as user-agent for AppAuth connection builder
* Re-authentication in Account settings
* Catch unauthorized exceptions at collection refresh and notify user to re-authenticate
* Suggest email address on account creation
* Set contact groups default setting as per-contact categories for oauth logins
* Add authentication to debug info, minor other changes
* Better error handling; don't pre-set group type
---------
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* Move GoogleOAuth members into GoogleLoginFragment
* Require login flow capable browser and notify user if missing
* Receive AppAuth redirects only in standard and gplay flavor
* Set davx5 as user-agent for AppAuth connection builder
* Re-authentication in Account settings
* Catch unauthorized exceptions at collection refresh and notify user to re-authenticate
* Suggest email address on account creation
* Set contact groups default setting as per-contact categories for oauth logins
* Add authentication to debug info, minor other changes
* Better error handling; don't pre-set group type
---------
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* When renaming show a toast when account with new name exists already
* Replace toasts with snackbars
* Apply code styling hints
* Move lambdas out of parentheses
* Inject application instead of context
* Replace Toast with Snackbar
* Shorten messages shown in snackbars
* Show Toast in UI instead of model; use AndroidViewModel
* Move account name check out of lock; don't close activity if not successful
* Duplicate account name check: only check for our account type
---------
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* SyncManager: remove retry intent
* refactor DavService to RefreshCollectionsWorker now using WorkManager
* move DavResourceFinder to new service detection package
* Optimize imports
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* migrate to gplay billing library v5
* alter handling of purchase state
* complete migration to gpblv5
* fix demo notification showing by using kotlin version of billing lib to block thread
* fix
* [WIP] Use Hilt for DI
* Use Hilt instead of ServiceLoader for intro fragments
* Rewrite from Koin to Hilt
* Tests
* Flavors
* Use more Hilt modules for service loading (account drawer, intro fragments)
* Lint
* WebDAV provider: don't listen to changes in onCreate (causes problems with Hilt and tests)
* Clean before building
* Modify test CI
* Update hilt to fix test error
* OpenSourceFragment may stay in main repo (it's not referenced in the Hilt flavor module definition)
* Test only standard flavor again (seems that testing multiple flavors at the same time causes tests to fail)
* Hilt for tests
* Use Hilt for settings providers
* Use Hilt for login credentials fragment
* Use Hilt for sync validator (was: sync plugin)
* Fix tests
* [WIP] Use Hilt for DI
* Use Hilt instead of ServiceLoader for intro fragments
* Rewrite from Koin to Hilt
* Tests
* Flavors
* Use more Hilt modules for service loading (account drawer, intro fragments)
* Lint
* WebDAV provider: don't listen to changes in onCreate (causes problems with Hilt and tests)
* Clean before building
* Modify test CI
* Update hilt to fix test error
* OpenSourceFragment may stay in main repo (it's not referenced in the Hilt flavor module definition)
* Test only standard flavor again (seems that testing multiple flavors at the same time causes tests to fail)
* Hilt for tests
* Use Hilt for settings providers
* Use Hilt for login credentials fragment
* Use Hilt for sync validator (was: sync plugin)
* Fix tests
* [WIP] Use Hilt for DI
* Use Hilt instead of ServiceLoader for intro fragments
* Rewrite from Koin to Hilt
* Tests
* Flavors
* Use more Hilt modules for service loading (account drawer, intro fragments)
* Lint
* WebDAV provider: don't listen to changes in onCreate (causes problems with Hilt and tests)
* Clean before building
* Modify test CI
* Update hilt to fix test error
* OpenSourceFragment may stay in main repo (it's not referenced in the Hilt flavor module definition)
* Test only standard flavor again (seems that testing multiple flavors at the same time causes tests to fail)
* Hilt for tests
* Use Hilt for settings providers
* Use Hilt for login credentials fragment
* Use Hilt for sync validator (was: sync plugin)
* Fix tests
* [WIP] Use Hilt for DI
* Use Hilt instead of ServiceLoader for intro fragments
* Rewrite from Koin to Hilt
* Tests
* Flavors
* Use more Hilt modules for service loading (account drawer, intro fragments)
* Lint
* WebDAV provider: don't listen to changes in onCreate (causes problems with Hilt and tests)
* Clean before building
* Modify test CI
* Update hilt to fix test error
* OpenSourceFragment may stay in main repo (it's not referenced in the Hilt flavor module definition)
* Test only standard flavor again (seems that testing multiple flavors at the same time causes tests to fail)
* Hilt for tests
* Use Hilt for settings providers
* Use Hilt for login credentials fragment
* Use Hilt for sync validator (was: sync plugin)
* Fix tests
* Notify user if billing unavailable or network issues arise
* offer to rate the app in earn badges activity, instead of navigation drawer and linting
* linting
* use in-app review API to trigger the review request after two weeks every two weeks
* remove obsolete testing bools
* [WIP] add mockk tests
* Adapt tests
* finish EarnBadgesActivity tests
* refactor for gplay flavor testing
* use junit assert statements, add comments and ensure gplay android tests are run on test server
* Use org.junit for Assert
* Tests
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* Notify user if billing unavailable or network issues arise
* offer to rate the app in earn badges activity, instead of navigation drawer and linting
* linting
* use in-app review API to trigger the review request after two weeks every two weeks
* remove obsolete testing bools
* [WIP] add mockk tests
* Adapt tests
* finish EarnBadgesActivity tests
* refactor for gplay flavor testing
* use junit assert statements, add comments and ensure gplay android tests are run on test server
* Use org.junit for Assert
* Tests
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* Add intent filter for caldav(s)://, carddav(s):// and davx5:// schemes
* Define intent-filter only for standard and gplay flavors
* Merge manifest; remove Espresso tests (further tests should be added)
* Lint
ClosesbitfireAT/davx5#77
* [WIP] add earning badges activity layout
* [WIP] ratings test
* [WIP] add billingClient
* correct gplay file placements
* cleanup and start on loading badges from play console
* [WIP]
* [WIP]
* use constraint layout instead of linear layouts
* [WIP] implement caching
* implement caching
* [WIP] load, cache and display bought badges
* [WIP] load, cache and display bought badges
* refactor and fix adapter not updating
* [WIP] load, cache and display bought badges
* proper use of RecyclerView
* refactor
* hide recycler views if no badges available or not yet bought
* make badges buyable and display earned badges
* reflect correct amount of bought badges
* [WIP] refactor, extract billing operations
* move files to gplay flavor and add sailing badge
* Load skus from cache if possible
* Load and save bought skus from and to cache
* linting
* alter log messages
* fixes and stop caching bought badges
* acknowledge purchases and show bought skus also when cache is cleared
* consume coffees
* add notice
* dont clear bought badges on new buy
* calculate bought badges only when purchases and skudetails are loaded
* retry if BillingService gets disconnected
* [WIP] disable buy button for bought badges
* [WIP] disable buy button for bought badges
* disable buy button for bought badges
* fix missing theme exception
* display correct amount of bought badges
* add back button and activity title
* add back button and activity title, via manifest instead
* add color tinting and center year of badge
* reflect bought state correctly
* easter eggs
* fix concurrent modification exception
* refactor for different flavors
* refactor AccountsDrawerHandler for different flavors
* Remove FakeReviewManager dependency in non gplay flavor test
* add community changes gone missing with improper rebase
* move files add add drop in animation for badges
* start using BaseAccountsDrawerHandler and variations for flavors
* remove dead code
* AccountsDrawer: minor changes
* Minor changes; remove caching for SKUs (done by billing library according to docs)
* Minor changes
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* [WIP] add earning badges activity layout
* [WIP] ratings test
* [WIP] add billingClient
* correct gplay file placements
* cleanup and start on loading badges from play console
* [WIP]
* [WIP]
* use constraint layout instead of linear layouts
* [WIP] implement caching
* implement caching
* [WIP] load, cache and display bought badges
* [WIP] load, cache and display bought badges
* refactor and fix adapter not updating
* [WIP] load, cache and display bought badges
* proper use of RecyclerView
* refactor
* hide recycler views if no badges available or not yet bought
* make badges buyable and display earned badges
* reflect correct amount of bought badges
* [WIP] refactor, extract billing operations
* move files to gplay flavor and add sailing badge
* Load skus from cache if possible
* Load and save bought skus from and to cache
* linting
* alter log messages
* fixes and stop caching bought badges
* acknowledge purchases and show bought skus also when cache is cleared
* consume coffees
* add notice
* dont clear bought badges on new buy
* calculate bought badges only when purchases and skudetails are loaded
* retry if BillingService gets disconnected
* [WIP] disable buy button for bought badges
* [WIP] disable buy button for bought badges
* disable buy button for bought badges
* fix missing theme exception
* display correct amount of bought badges
* add back button and activity title
* add back button and activity title, via manifest instead
* add color tinting and center year of badge
* reflect bought state correctly
* easter eggs
* fix concurrent modification exception
* refactor for different flavors
* refactor AccountsDrawerHandler for different flavors
* Remove FakeReviewManager dependency in non gplay flavor test
* add community changes gone missing with improper rebase
* move files add add drop in animation for badges
* start using BaseAccountsDrawerHandler and variations for flavors
* remove dead code
* AccountsDrawer: minor changes
* Minor changes; remove caching for SKUs (done by billing library according to docs)
* Minor changes
Co-authored-by: Ricki Hirner <hirner@bitfire.at>
* don't use a separate :sync process anymore, so that settings management doesn't need IPC
* remove Settings service and IPC, use singleton with application Context instead
* adapt default number of sync worker threads
* library updates
* new About activity using AboutLibraries library
* include DAVdroid version and other non-personal information in URL when DAVdroid homepage is opened
(so that we know what DAVdroid versions are used out there and maybe can provide version-specific help)
* setup UI: login with URL and client certificate
* account settings UI: show either username/password or client certificate alias
* AccountSettings: serve credentials in generalized Credentials objects
* HttpClient: use Credentials (instead of username/password) for authentication
* HttpClient: always use CustomTlsSocketFactory
* CustomTlsSocketFactory: support client certificates
* new gradle configField: useMTM
* new gradle source dir: davdroid (for DAVdroid OSE + DAVdroid variants)
* move strings and default login fragment to davdroid source dir
* iCloud AndroidManifest: add billing permission and SubscriptionActivity
* add sync plugins
* iCloud flavor + sync plugin: in-app billing
* iCloud flavor: login credentials fragment + font
* iCloud flavor: new strings
* use account type from string assets instead of hardcoded constant
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.