From 48327e44f5f97ddfee362456796ef84268dcfb08 Mon Sep 17 00:00:00 2001 From: Arnau Mora Date: Fri, 22 Sep 2023 17:30:22 +0200 Subject: [PATCH 01/13] AccountActivity: make content underneath FABs accessible (bitfireAT/davx5#390) * Doubled bottom padding Signed-off-by: Arnau Mora * Account activity: increase margin for two FABs even more --------- Signed-off-by: Arnau Mora Co-authored-by: Ricki Hirner --- app/src/main/res/layout/account_collections.xml | 2 +- app/src/main/res/values/dimen.xml | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/app/src/main/res/layout/account_collections.xml b/app/src/main/res/layout/account_collections.xml index afd428555..3731c2e27 100644 --- a/app/src/main/res/layout/account_collections.xml +++ b/app/src/main/res/layout/account_collections.xml @@ -62,7 +62,7 @@ android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" - android:paddingBottom="@dimen/fab_bottom_padding" + android:paddingBottom="148dp" android:clipToPadding="false" /> 16dp - - 64dp - 16dp \ No newline at end of file -- GitLab From 02c401b4d5ebad8b1bb6e6c0d67a88e0ffeba249 Mon Sep 17 00:00:00 2001 From: Ricki Hirner Date: Fri, 22 Sep 2023 17:37:23 +0200 Subject: [PATCH 02/13] AccountActivity: animate progress bar becoming invisible (bitfireAT/davx5#366) * [WIP] Animate invisibility * Reordered for cleaner look Signed-off-by: Arnau Mora * Fixed animation Signed-off-by: Arnau Mora * Reduced animation time for going to visible to 0 Signed-off-by: Arnau Mora * Remove logging --------- Signed-off-by: Arnau Mora Co-authored-by: Arnau Mora --- .../ui/account/CollectionsFragment.kt | 34 ++++++++++++------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/at/bitfire/davdroid/ui/account/CollectionsFragment.kt b/app/src/main/java/at/bitfire/davdroid/ui/account/CollectionsFragment.kt index ff25c2139..e845ebc16 100644 --- a/app/src/main/java/at/bitfire/davdroid/ui/account/CollectionsFragment.kt +++ b/app/src/main/java/at/bitfire/davdroid/ui/account/CollectionsFragment.kt @@ -4,6 +4,8 @@ package at.bitfire.davdroid.ui.account +import android.animation.Animator +import android.animation.AnimatorListenerAdapter import android.app.Application import android.content.* import android.os.Bundle @@ -98,18 +100,26 @@ abstract class CollectionsFragment: Fragment(), SwipeRefreshLayout.OnRefreshList binding.swipeRefresh.setOnRefreshListener(this) val updateProgress = Observer { - if (model.isSyncActive.value == true) { - binding.progress.isIndeterminate = true - binding.progress.alpha = 1.0f - binding.progress.visibility = View.VISIBLE - } else { - if (model.isSyncPending.value == true) { - binding.progress.visibility = View.VISIBLE - binding.progress.alpha = 0.2f - binding.progress.isIndeterminate = false - binding.progress.progress = 100 - } else - binding.progress.visibility = View.INVISIBLE + binding.progress.apply { + val isVisible = model.isSyncActive.value == true || model.isSyncPending.value == true + + if (model.isSyncActive.value == true) { + isIndeterminate = true + } else if (model.isSyncPending.value == true) { + isIndeterminate = false + progress = 100 + } + + animate() + .alpha(if (isVisible) 1f else 0f) + // go to VISIBLE instantly, take 500 ms for INVISIBLE + .setDuration(if (isVisible) 0 else 500) + .setListener(object : AnimatorListenerAdapter() { + override fun onAnimationEnd(animation: Animator) { + super.onAnimationEnd(animation) + visibility = if (isVisible) View.VISIBLE else View.INVISIBLE + } + }) } } model.isSyncPending.observe(viewLifecycleOwner, updateProgress) -- GitLab From ba310762f98075ab6f4fb28b347a717c22005dc2 Mon Sep 17 00:00:00 2001 From: Ricki Hirner Date: Wed, 27 Sep 2023 10:09:30 +0200 Subject: [PATCH 03/13] Repair beta feedback (bitfireAT/davx5#394) - 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 --- .../java/at/bitfire/davdroid/ui/BaseAccountsDrawerHandler.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/at/bitfire/davdroid/ui/BaseAccountsDrawerHandler.kt b/app/src/main/java/at/bitfire/davdroid/ui/BaseAccountsDrawerHandler.kt index 56288c4fc..ca9aaea5d 100644 --- a/app/src/main/java/at/bitfire/davdroid/ui/BaseAccountsDrawerHandler.kt +++ b/app/src/main/java/at/bitfire/davdroid/ui/BaseAccountsDrawerHandler.kt @@ -36,9 +36,9 @@ abstract class BaseAccountsDrawerHandler: AccountsDrawerHandler { when (item.itemId) { R.id.nav_about -> activity.startActivity(Intent(activity, AboutActivity::class.java)) - R.id.nav_beta_feedback -> item.actionView?.let { view -> + R.id.nav_beta_feedback -> { if (!UiUtils.launchUri(activity, Uri.parse(BETA_FEEDBACK_URI), Intent.ACTION_SENDTO, false)) - Snackbar.make(view, R.string.install_email_client, Snackbar.LENGTH_LONG).show() + Snackbar.make(activity.window.findViewById(android.R.id.content), R.string.install_email_client, Snackbar.LENGTH_LONG).show() } R.id.nav_app_settings -> activity.startActivity(Intent(activity, AppSettingsActivity::class.java)) -- GitLab From fd4872adb5d9264fe9e9916bc88adb8d26a33035 Mon Sep 17 00:00:00 2001 From: Ricki Hirner Date: Wed, 27 Sep 2023 11:56:47 +0200 Subject: [PATCH 04/13] Minor connectivity/VPN UI adaptions (bitfireAT/davx5#391) * Low storage: don't show notification anymore, adapt info message - The impact of low storage is not as critical anymore that a notification is required. - Info message adapted * Update "account settings: ignore VPN" strings * Update "No internet" string --- .../at/bitfire/davdroid/StorageLowReceiver.kt | 24 +------------------ .../bitfire/davdroid/ui/NotificationUtils.kt | 2 +- app/src/main/res/values/strings.xml | 14 ++++------- 3 files changed, 7 insertions(+), 33 deletions(-) diff --git a/app/src/main/java/at/bitfire/davdroid/StorageLowReceiver.kt b/app/src/main/java/at/bitfire/davdroid/StorageLowReceiver.kt index c74ea4f95..e2562a40c 100644 --- a/app/src/main/java/at/bitfire/davdroid/StorageLowReceiver.kt +++ b/app/src/main/java/at/bitfire/davdroid/StorageLowReceiver.kt @@ -4,18 +4,12 @@ package at.bitfire.davdroid -import android.app.PendingIntent import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.content.IntentFilter -import android.provider.Settings -import androidx.core.app.NotificationCompat -import androidx.core.app.NotificationManagerCompat import androidx.lifecycle.MutableLiveData import at.bitfire.davdroid.log.Logger -import at.bitfire.davdroid.ui.NotificationUtils -import at.bitfire.davdroid.ui.NotificationUtils.notifyIfPossible import dagger.Module import dagger.Provides import dagger.hilt.InstallIn @@ -36,7 +30,7 @@ class StorageLowReceiver private constructor( } - val storageLow = MutableLiveData(false) + val storageLow = MutableLiveData(false) fun listen() { Logger.log.fine("Listening for device storage low/OK broadcasts") @@ -63,28 +57,12 @@ class StorageLowReceiver private constructor( Logger.log.warning("Low storage, sync will not be started by Android!") storageLow.postValue(true) - - val notify = NotificationUtils.newBuilder(context, NotificationUtils.CHANNEL_SYNC_ERRORS) - .setSmallIcon(R.drawable.ic_storage_notify) - .setCategory(NotificationCompat.CATEGORY_ERROR) - .setContentTitle(context.getString(R.string.storage_low_notify_title)) - .setContentText(context.getString(R.string.storage_low_notify_text)) - - val settingsIntent = Intent(Settings.ACTION_INTERNAL_STORAGE_SETTINGS) - if (settingsIntent.resolveActivity(context.packageManager) != null) - notify.setContentIntent(PendingIntent.getActivity(context, 0, settingsIntent, PendingIntent.FLAG_CANCEL_CURRENT or PendingIntent.FLAG_IMMUTABLE)) - - val nm = NotificationManagerCompat.from(context) - nm.notifyIfPossible(NotificationUtils.NOTIFY_LOW_STORAGE, notify.build()) } fun onStorageOk() { Logger.log.info("Storage OK again") storageLow.postValue(false) - - val nm = NotificationManagerCompat.from(context) - nm.cancel(NotificationUtils.NOTIFY_LOW_STORAGE) } } \ No newline at end of file diff --git a/app/src/main/java/at/bitfire/davdroid/ui/NotificationUtils.kt b/app/src/main/java/at/bitfire/davdroid/ui/NotificationUtils.kt index 8bc0e5e6a..8f30e6636 100644 --- a/app/src/main/java/at/bitfire/davdroid/ui/NotificationUtils.kt +++ b/app/src/main/java/at/bitfire/davdroid/ui/NotificationUtils.kt @@ -31,7 +31,7 @@ object NotificationUtils { const val NOTIFY_SYNC_ERROR = 10 const val NOTIFY_INVALID_RESOURCE = 11 const val NOTIFY_WEBDAV_ACCESS = 12 - const val NOTIFY_LOW_STORAGE = 13 + // const val NOTIFY_LOW_STORAGE = 13 const val NOTIFY_SYNC_EXPEDITED = 14 const val NOTIFY_TASKS_PROVIDER_TOO_OLD = 20 const val NOTIFY_PERMISSIONS = 21 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3805959a0..6ac45cec3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -141,9 +141,9 @@ Donate Privacy policy Notifications disabled. You won\'t be notified about sync errors. - No Internet connectivity. Android will not run synchronization. + No validated Internet connectivity. Synchronization may not run. Manage connections - Storage space low. Android will not run synchronization. + Storage space low. Android will not sync local changes immediately, but during the next regular sync. Manage storage Data saver enabled. Background synchronization is restricted. Manage data saver @@ -346,9 +346,9 @@ WiFi SSID restriction requires further settings Manage ignore_vpns - VPN connectivity - Non-VPN connection required (recommended) - VPN counts as Internet connection + VPN requires underlying Internet + VPN without underlying validated Internet connection is not enough to run synchronization (recommended) + VPN without underlying validated Internet connection is enough to run synchronization Authentication oauth Re-authenticate @@ -462,10 +462,6 @@ An I/O error has occurred. Show details - - Synchronization paused - Almost no free space left - at.bitfire.davdroid.webdav WebDAV mounts -- GitLab From 6db1473e006e3fec2cf0e877bed0d56b8fb89e4e Mon Sep 17 00:00:00 2001 From: Arnau Mora Date: Wed, 27 Sep 2023 12:55:47 +0100 Subject: [PATCH 05/13] Update ical4android (#425) Updates ical4j to 3.2.13, which should fix the backslash issue --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index cb0b0ce62..f59a71365 100644 --- a/build.gradle +++ b/build.gradle @@ -20,7 +20,7 @@ buildscript { // own libraries cert4android: '32104f5', dav4jvm: 'da94a8b', - ical4android: 'b682476', + ical4android: '916f222', vcard4android: 'b376d2e' ] @@ -53,4 +53,4 @@ allprojects { // AppIntro, dav4jvm maven { url "https://jitpack.io" } } -} \ No newline at end of file +} -- GitLab From 6bbdcb332f4ec51009fcf972c71b61c1a1778337 Mon Sep 17 00:00:00 2001 From: Sunik Kupfer Date: Fri, 6 Oct 2023 12:51:02 +0200 Subject: [PATCH 06/13] Include address book account syncs, when querying sync status (bitfireAT/davx5#378) * Use tags instead of uniqueWorkNames for work queries. * Also include address book accounts, when querying sync status. Give address book account sync workers their parent (main account) sync workers tag too, such that they will be included at the query for sync status of their parent account. --------- Co-authored-by: Ricki Hirner --- .../syncadapter/PeriodicSyncWorker.kt | 25 +++++----- .../bitfire/davdroid/syncadapter/SyncUtils.kt | 17 ++++--- .../davdroid/syncadapter/SyncWorker.kt | 50 ++++++++++++++----- .../davdroid/ui/AccountListFragment.kt | 13 ++--- 4 files changed, 67 insertions(+), 38 deletions(-) diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/PeriodicSyncWorker.kt b/app/src/main/java/at/bitfire/davdroid/syncadapter/PeriodicSyncWorker.kt index b193f2704..f253d97ff 100644 --- a/app/src/main/java/at/bitfire/davdroid/syncadapter/PeriodicSyncWorker.kt +++ b/app/src/main/java/at/bitfire/davdroid/syncadapter/PeriodicSyncWorker.kt @@ -19,10 +19,11 @@ import java.util.concurrent.TimeUnit /** * Handles scheduled sync requests. * - * Enqueues immediate [SyncWorker] syncs at the appropriate moment. This will prevent the actual - * sync code from running twice simultaneously (for manual and scheduled sync). + * Enqueues immediate [SyncWorker] syncs at the appropriate moment. * - * For each account there will be multiple dedicated workers running for each authority. + * The different periodic sync workers each carry a unique work name composed of the account and + * authority which they are responsible for. For each account there will be multiple dedicated periodic + * sync workers for each authority. See [PeriodicSyncWorker.workerName] for more information. */ @HiltWorker class PeriodicSyncWorker @AssistedInject constructor( @@ -31,21 +32,22 @@ class PeriodicSyncWorker @AssistedInject constructor( ) : Worker(appContext, workerParams) { companion object { - - private const val WORKER_TAG = "periodic-sync" - // Worker input parameters internal const val ARG_ACCOUNT_NAME = "accountName" internal const val ARG_ACCOUNT_TYPE = "accountType" internal const val ARG_AUTHORITY = "authority" /** - * Name of this worker. - * Used to distinguish between other work processes. A worker names are unique. There can - * never be two running workers with the same name. + * Unique work name of this worker. Can also be used as tag. + * + * Mainly used to query [WorkManager] for work state (by unique work name or tag). + * + * @param account the account this worker is running for + * @param authority the authority this worker is running for + * @return Name of this worker composed as "sync $authority ${account.type}/${account.name}" */ fun workerName(account: Account, authority: String): String = - "$WORKER_TAG $authority ${account.type}/${account.name}" + "periodic-sync $authority ${account.type}/${account.name}" /** * Activate scheduled synchronization of an account with a specific authority. @@ -69,7 +71,6 @@ class PeriodicSyncWorker @AssistedInject constructor( NetworkType.CONNECTED ).build() val workRequest = PeriodicWorkRequestBuilder(interval, TimeUnit.SECONDS) - .addTag(WORKER_TAG) .setInputData(arguments) .setConstraints(constraints) .build() @@ -104,7 +105,7 @@ class PeriodicSyncWorker @AssistedInject constructor( WorkManager.getInstance(context) .getWorkInfos( WorkQuery.Builder - .fromUniqueWorkNames(listOf(workerName(account, authority))) + .fromTags(listOf(workerName(account, authority))) .addStates(listOf(WorkInfo.State.ENQUEUED, WorkInfo.State.RUNNING)) .build() ).get() diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/SyncUtils.kt b/app/src/main/java/at/bitfire/davdroid/syncadapter/SyncUtils.kt index e7f9ff090..b25a98a8e 100644 --- a/app/src/main/java/at/bitfire/davdroid/syncadapter/SyncUtils.kt +++ b/app/src/main/java/at/bitfire/davdroid/syncadapter/SyncUtils.kt @@ -15,6 +15,7 @@ import android.graphics.drawable.BitmapDrawable import android.net.Uri import android.os.Build import android.provider.CalendarContract +import android.provider.ContactsContract import androidx.annotation.WorkerThread import androidx.core.app.NotificationCompat import androidx.core.app.NotificationManagerCompat @@ -89,22 +90,26 @@ object SyncUtils { } /** - * Returns a list of all available sync authorities for main accounts (!= address book accounts): + * Returns a list of all available sync authorities: * - * 1. address books authority (not [ContactsContract.AUTHORITY], but the one which manages address book accounts) * 1. calendar authority - * 1. tasks authority (if available) + * 2. contacts authority (only if [withContacts] is *true* - mostly we don't want it included) + * 3. address books authority + * 4. tasks authority/ies (if available, when tasks managing app(s) installed) * * Checking the availability of authorities may be relatively expensive, so the * result should be cached for the current operation. * + * @param withContacts whether to add contacts authority * @return list of available sync authorities for main accounts */ - fun syncAuthorities(context: Context): List { + fun syncAuthorities(context: Context, withContacts: Boolean = false): List { val result = mutableListOf( - context.getString(R.string.address_books_authority), - CalendarContract.AUTHORITY + CalendarContract.AUTHORITY, + context.getString(R.string.address_books_authority) ) + if (withContacts) + result.add(ContactsContract.AUTHORITY) TaskUtils.currentProvider(context)?.let { taskProvider -> result += taskProvider.authority } diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/SyncWorker.kt b/app/src/main/java/at/bitfire/davdroid/syncadapter/SyncWorker.kt index e8788c2da..cd618c4a6 100644 --- a/app/src/main/java/at/bitfire/davdroid/syncadapter/SyncWorker.kt +++ b/app/src/main/java/at/bitfire/davdroid/syncadapter/SyncWorker.kt @@ -41,6 +41,7 @@ import at.bitfire.davdroid.R import at.bitfire.davdroid.log.Logger import at.bitfire.davdroid.network.ConnectionUtils.internetAvailable import at.bitfire.davdroid.network.ConnectionUtils.wifiAvailable +import at.bitfire.davdroid.resource.LocalAddressBook import at.bitfire.davdroid.settings.AccountSettings import at.bitfire.davdroid.ui.NotificationUtils import at.bitfire.davdroid.ui.NotificationUtils.notifyIfPossible @@ -55,7 +56,21 @@ import java.util.concurrent.TimeUnit import java.util.logging.Level /** - * Handles immediate sync requests, status queries and cancellation for one or multiple authorities + * Handles immediate sync requests and cancellations of accounts and respective content authorities, + * by creating appropriate workers. + * + * The different sync workers each carry a unique work name composed of the account and authority they + * are syncing. See [SyncWorker.workerName] for more information. + * + * By enqueuing this worker ([SyncWorker.enqueue]) a sync will be started immediately (as soon as + * possible). Currently, there are three scenarios starting a sync: + * 1) *manual sync*: User presses an in-app sync button and enqueues this worker directly. + * 2) *periodic sync*: User defines time interval to sync in app settings. The [PeriodicSyncWorker] runs + * in the background and enqueues this worker when due. + * 3) *content-triggered sync*: User changes a calendar event, task or contact, or presses a sync + * button in one of the responsible apps. The [SyncAdapterService] is notified of this and enqueues + * this worker. + * */ @HiltWorker class SyncWorker @AssistedInject constructor( @@ -79,9 +94,6 @@ class SyncWorker @AssistedInject constructor( const val RESYNC = 1 const val FULL_RESYNC = 2 - // This SyncWorker's tag - const val TAG_SYNC = "sync" - /** * How often this work will be retried to run after soft (network) errors. * @@ -90,11 +102,20 @@ class SyncWorker @AssistedInject constructor( internal const val MAX_RUN_ATTEMPTS = 5 /** - * Name of this worker. - * Used to distinguish between other work processes. There must only ever be one worker with the exact same name. + * Unique work name of this worker. Can also be used as tag. + * + * Mainly used to query [WorkManager] for work state (by unique work name or tag). + * + * *NOTE:* SyncWorkers for address book accounts bear the unique worker name of their parent + * account (main account) as tag. This makes it easier to query the overall sync status of a + * main account. + * + * @param account the account this worker is running for + * @param authority the authority this worker is running for + * @return Name of this worker composed as "sync $authority ${account.type}/${account.name}" */ fun workerName(account: Account, authority: String) = - "$TAG_SYNC $authority ${account.type}/${account.name}" + "sync $authority ${account.type}/${account.name}" /** * Requests immediate synchronization of an account with all applicable @@ -143,7 +164,6 @@ class SyncWorker @AssistedInject constructor( .setRequiredNetworkType(NetworkType.CONNECTED) // require a network connection .build() val workRequest = OneTimeWorkRequestBuilder() - .addTag(TAG_SYNC) .setInputData(argumentsBuilder.build()) .setExpedited(OutOfQuotaPolicy.RUN_AS_NON_EXPEDITED_WORK_REQUEST) .setBackoffCriteria( @@ -152,11 +172,18 @@ class SyncWorker @AssistedInject constructor( TimeUnit.MILLISECONDS ) .setConstraints(constraints) + .apply { + // If this is a sub sync worker (address book sync), add the main account tag as well + if (account.type == context.getString(R.string.account_type_address_book)) { + val mainAccount = LocalAddressBook.mainAccount(context, account) + addTag(workerName(mainAccount, authority)) + } + } .build() // enqueue and start syncing val name = workerName(account, authority) - Logger.log.log(Level.INFO, "Enqueueing unique worker: $name") + Logger.log.log(Level.INFO, "Enqueueing unique worker: $name, with tags: ${workRequest.tags}") WorkManager.getInstance(context).enqueueUniqueWork( name, ExistingWorkPolicy.KEEP, // If sync is already running, just continue. @@ -191,10 +218,9 @@ class SyncWorker @AssistedInject constructor( authorities: List? = null ): LiveData { val workQuery = WorkQuery.Builder - .fromTags(listOf(TAG_SYNC)) - .addStates(workStates) + .fromStates(workStates) if (account != null && authorities != null) - workQuery.addUniqueWorkNames( + workQuery.addTags( authorities.map { authority -> workerName(account, authority) } ) return WorkManager.getInstance(context) diff --git a/app/src/main/java/at/bitfire/davdroid/ui/AccountListFragment.kt b/app/src/main/java/at/bitfire/davdroid/ui/AccountListFragment.kt index a786aa540..34f711343 100644 --- a/app/src/main/java/at/bitfire/davdroid/ui/AccountListFragment.kt +++ b/app/src/main/java/at/bitfire/davdroid/ui/AccountListFragment.kt @@ -40,7 +40,6 @@ import androidx.work.WorkQuery import at.bitfire.davdroid.R import at.bitfire.davdroid.databinding.AccountListBinding import at.bitfire.davdroid.databinding.AccountListItemBinding -import at.bitfire.davdroid.syncadapter.SyncUtils import at.bitfire.davdroid.syncadapter.SyncUtils.syncAuthorities import at.bitfire.davdroid.syncadapter.SyncWorker import at.bitfire.davdroid.ui.account.AccountActivity @@ -261,7 +260,7 @@ class AccountListFragment: Fragment() { val accountsWithInfo = sortedAccounts.map { account -> AccountInfo( account, - SyncStatus.fromAccount(context, account, syncAuthorities) + SyncStatus.fromAccount(context, account) ) } value = accountsWithInfo @@ -269,7 +268,6 @@ class AccountListFragment: Fragment() { } private val accountManager = AccountManager.get(application)!! - private val syncAuthorities by lazy { SyncUtils.syncAuthorities(application) } init { // watch accounts @@ -297,17 +295,16 @@ class AccountListFragment: Fragment() { * sub-accounts (address book accounts). * * @param account account to check - * @param authorities sync authorities to check (usually taken from [syncAuthorities]) * * @return sync status of the given account */ - fun fromAccount(context: Context, account: Account, authorities: List): SyncStatus { - val workerNames = authorities.map { authority -> + fun fromAccount(context: Context, account: Account): SyncStatus { + // Add contacts authority, so sync status of address-book-accounts is also checked + val workerNames = syncAuthorities(context, true).map { authority -> SyncWorker.workerName(account, authority) } val workQuery = WorkQuery.Builder - .fromTags(listOf(SyncWorker.TAG_SYNC)) - .addUniqueWorkNames(workerNames) + .fromTags(workerNames) .addStates(listOf(WorkInfo.State.RUNNING, WorkInfo.State.ENQUEUED)) .build() -- GitLab From f57cd77ced76a56298ce9b441f8ecb9a4f293c9b Mon Sep 17 00:00:00 2001 From: Ricki Hirner Date: Fri, 6 Oct 2023 12:56:40 +0200 Subject: [PATCH 07/13] Update dependencies, bump version to 4.3.8-alpha.1 --- app/build.gradle | 8 ++++---- build.gradle | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index eca71949d..65cf0fbff 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -18,8 +18,8 @@ android { defaultConfig { applicationId "at.bitfire.davdroid" - versionCode 403070001 - versionName '4.3.7' + versionCode 403080000 + versionName '4.3.8-alpha.1' buildConfigField "long", "buildTime", System.currentTimeMillis() + "L" @@ -148,7 +148,7 @@ dependencies { implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' implementation "androidx.work:work-runtime-ktx:${versions.workManager}" implementation 'com.google.android.flexbox:flexbox:3.0.0' - implementation 'com.google.android.material:material:1.9.0' + implementation 'com.google.android.material:material:1.10.0' // Jetpack Compose implementation platform("androidx.compose:compose-bom:${versions.composeBom}") @@ -203,7 +203,7 @@ dependencies { androidTestImplementation 'androidx.test.ext:junit-ktx:1.1.5' androidTestImplementation "androidx.work:work-testing:${versions.workManager}" androidTestImplementation "com.squareup.okhttp3:mockwebserver:${versions.okhttp}" - androidTestImplementation 'io.mockk:mockk-android:1.13.7' + androidTestImplementation 'io.mockk:mockk-android:1.13.8' androidTestImplementation 'junit:junit:4.13.2' testImplementation "com.squareup.okhttp3:mockwebserver:${versions.okhttp}" diff --git a/build.gradle b/build.gradle index f59a71365..03142efa2 100644 --- a/build.gradle +++ b/build.gradle @@ -4,10 +4,10 @@ buildscript { ext.versions = [ - aboutLibraries: '10.8.3', + aboutLibraries: '10.9.1', appIntro: '7.0.0-beta02', - composeBom: '2023.08.00', - hilt: '2.48', + composeBom: '2023.10.00', + hilt: '2.48.1', kotlin: '1.9.0', // keep in sync with * app/build.gradle composeOptions.kotlinCompilerExtensionVersion // * com.google.devtools.ksp at the end of this file okhttp: '4.11.0', @@ -33,7 +33,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:8.1.1' + classpath 'com.android.tools.build:gradle:8.1.2' classpath "com.google.dagger:hilt-android-gradle-plugin:${versions.hilt}" classpath "com.mikepenz.aboutlibraries.plugin:aboutlibraries-plugin:${versions.aboutLibraries}" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}" -- GitLab From e85727e869f258b77ca70fe5d9997ca2e0808db7 Mon Sep 17 00:00:00 2001 From: Ricki Hirner Date: Sat, 7 Oct 2023 10:01:55 +0200 Subject: [PATCH 08/13] Update dependencies --- app/build.gradle | 2 +- app/src/main/java/at/bitfire/davdroid/network/HttpClient.kt | 3 +-- build.gradle | 6 +++--- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 65cf0fbff..7c63ceb53 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -50,7 +50,7 @@ android { composeOptions { // Keep this in sync with Kotlin version: // https://developer.android.com/jetpack/androidx/releases/compose-kotlin - kotlinCompilerExtensionVersion = "1.5.1" + kotlinCompilerExtensionVersion = "1.5.3" } // Java namespace for our classes (not to be confused with Android package ID) diff --git a/app/src/main/java/at/bitfire/davdroid/network/HttpClient.kt b/app/src/main/java/at/bitfire/davdroid/network/HttpClient.kt index 42fee8dd9..5a0958ee1 100644 --- a/app/src/main/java/at/bitfire/davdroid/network/HttpClient.kt +++ b/app/src/main/java/at/bitfire/davdroid/network/HttpClient.kt @@ -8,7 +8,6 @@ import android.content.Context import android.os.Build import android.security.KeyChain import at.bitfire.cert4android.CustomCertManager -import at.bitfire.cert4android.CustomHostnameVerifier import at.bitfire.dav4jvm.BasicDigestAuthHandler import at.bitfire.dav4jvm.UrlUtils import at.bitfire.davdroid.BuildConfig @@ -274,7 +273,7 @@ class HttpClient private constructor( val hostnameVerifier = if (manager != null) - CustomHostnameVerifier(context, OkHostnameVerifier) + manager.HostnameVerifier(OkHostnameVerifier) else OkHostnameVerifier diff --git a/build.gradle b/build.gradle index 03142efa2..09c0ad369 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ buildscript { appIntro: '7.0.0-beta02', composeBom: '2023.10.00', hilt: '2.48.1', - kotlin: '1.9.0', // keep in sync with * app/build.gradle composeOptions.kotlinCompilerExtensionVersion + kotlin: '1.9.10', // keep in sync with * app/build.gradle composeOptions.kotlinCompilerExtensionVersion // * com.google.devtools.ksp at the end of this file okhttp: '4.11.0', room: '2.5.2', @@ -18,7 +18,7 @@ buildscript { commonsLang: '3.8.1', commonsText: '1.3', // own libraries - cert4android: '32104f5', + cert4android: '2bb3898', dav4jvm: 'da94a8b', ical4android: '916f222', vcard4android: 'b376d2e' @@ -42,7 +42,7 @@ buildscript { plugins { // see https://github.com/google/ksp/releases for version numbers - id 'com.google.devtools.ksp' version '1.9.0-1.0.13' apply false + id 'com.google.devtools.ksp' version '1.9.10-1.0.13' apply false } allprojects { -- GitLab From 437fb30a940d4d8cafbfc462ab08f7f85e89d757 Mon Sep 17 00:00:00 2001 From: Ricki Hirner Date: Sat, 7 Oct 2023 10:22:08 +0200 Subject: [PATCH 09/13] Rename java sources directories to kotlin --- .../{java => kotlin}/at/bitfire/davdroid/CustomTestRunner.kt | 0 .../at/bitfire/davdroid/InitCalendarProviderRule.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/MockingModule.kt | 0 .../androidTest/{java => kotlin}/at/bitfire/davdroid/TestUtils.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/db/AppDatabaseTest.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/db/CollectionTest.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/db/HomesetDaoTest.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/db/MemoryDbModule.kt | 0 .../at/bitfire/davdroid/network/Android10ResolverTest.kt | 0 .../at/bitfire/davdroid/network/ConnectionUtilsTest.kt | 0 .../at/bitfire/davdroid/network/HttpClientTest.kt | 0 .../at/bitfire/davdroid/resource/LocalAddressBookTest.kt | 0 .../at/bitfire/davdroid/resource/LocalCalendarTest.kt | 0 .../at/bitfire/davdroid/resource/LocalEventTest.kt | 0 .../at/bitfire/davdroid/resource/LocalGroupTest.kt | 0 .../at/bitfire/davdroid/resource/LocalTestAddressBook.kt | 0 .../resource/contactrow/CachedGroupMembershipHandlerTest.kt | 0 .../davdroid/resource/contactrow/GroupMembershipBuilderTest.kt | 0 .../davdroid/resource/contactrow/GroupMembershipHandlerTest.kt | 0 .../davdroid/resource/contactrow/UnknownPropertiesBuilderTest.kt | 0 .../davdroid/resource/contactrow/UnknownPropertiesHandlerTest.kt | 0 .../at/bitfire/davdroid/servicedetection/DavResourceFinderTest.kt | 0 .../davdroid/servicedetection/RefreshCollectionsWorkerTest.kt | 0 .../at/bitfire/davdroid/settings/AccountSettingsTest.kt | 0 .../at/bitfire/davdroid/settings/SettingsManagerTest.kt | 0 .../at/bitfire/davdroid/ui/AppSettingsActivityTest.kt | 0 .../at/bitfire/davdroid/ui/DebugInfoActivityTest.kt | 0 .../at/bitfire/davdroid/ui/setup/AccountDetailsFragmentTest.kt | 0 .../at/bitfire/davdroid/ui/webdav/AddWebdavMountActivityTest.kt | 0 .../at/bitfire/davdroid/webdav/CredentialsStoreTest.kt | 0 .../at/bitfire/davdroid/webdav/DavDocumentsProviderTest.kt | 0 .../at/bitfire/davdroid/webdav/MemoryCacheTest.kt | 0 .../at/bitfire/davdroid/webdav/SegmentedCacheTest.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/OkhttpClientTest.kt | 0 .../at/bitfire/davdroid/syncadapter/AccountUtilsTest.kt | 0 .../at/bitfire/davdroid/syncadapter/LocalTestCollection.kt | 0 .../at/bitfire/davdroid/syncadapter/LocalTestResource.kt | 0 .../at/bitfire/davdroid/syncadapter/PeriodicSyncWorkerTest.kt | 0 .../at/bitfire/davdroid/syncadapter/SyncManagerTest.kt | 0 .../at/bitfire/davdroid/syncadapter/SyncWorkerTest.kt | 0 .../at/bitfire/davdroid/syncadapter/SyncerTest.kt | 0 .../at/bitfire/davdroid/syncadapter/TestSyncManager.kt | 0 app/src/main/{java => kotlin}/at/bitfire/davdroid/App.kt | 0 app/src/main/{java => kotlin}/at/bitfire/davdroid/Constants.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/ForegroundService.kt | 0 .../at/bitfire/davdroid/InvalidAccountException.kt | 0 .../at/bitfire/davdroid/PackageChangedReceiver.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/StorageLowReceiver.kt | 0 app/src/main/{java => kotlin}/at/bitfire/davdroid/TasksWatcher.kt | 0 app/src/main/{java => kotlin}/at/bitfire/davdroid/TextTable.kt | 0 .../main/{java => kotlin}/at/bitfire/davdroid/db/AppDatabase.kt | 0 .../main/{java => kotlin}/at/bitfire/davdroid/db/Collection.kt | 0 .../main/{java => kotlin}/at/bitfire/davdroid/db/CollectionDao.kt | 0 .../main/{java => kotlin}/at/bitfire/davdroid/db/Converters.kt | 0 .../main/{java => kotlin}/at/bitfire/davdroid/db/Credentials.kt | 0 app/src/main/{java => kotlin}/at/bitfire/davdroid/db/HomeSet.kt | 0 .../main/{java => kotlin}/at/bitfire/davdroid/db/HomeSetDao.kt | 0 app/src/main/{java => kotlin}/at/bitfire/davdroid/db/Principal.kt | 0 .../main/{java => kotlin}/at/bitfire/davdroid/db/PrincipalDao.kt | 0 app/src/main/{java => kotlin}/at/bitfire/davdroid/db/Service.kt | 0 .../main/{java => kotlin}/at/bitfire/davdroid/db/ServiceDao.kt | 0 app/src/main/{java => kotlin}/at/bitfire/davdroid/db/SyncState.kt | 0 app/src/main/{java => kotlin}/at/bitfire/davdroid/db/SyncStats.kt | 0 .../main/{java => kotlin}/at/bitfire/davdroid/db/SyncStatsDao.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/db/WebDavDocument.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/db/WebDavDocumentDao.kt | 0 .../main/{java => kotlin}/at/bitfire/davdroid/db/WebDavMount.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/db/WebDavMountDao.kt | 0 .../main/{java => kotlin}/at/bitfire/davdroid/di/SyncComponent.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/log/LogcatHandler.kt | 0 app/src/main/{java => kotlin}/at/bitfire/davdroid/log/Logger.kt | 0 .../at/bitfire/davdroid/log/PlainTextFormatter.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/log/StringHandler.kt | 0 .../at/bitfire/davdroid/network/Android10Resolver.kt | 0 .../at/bitfire/davdroid/network/BearerAuthInterceptor.kt | 0 .../at/bitfire/davdroid/network/ConnectionUtils.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/network/HttpClient.kt | 0 .../at/bitfire/davdroid/network/MemoryCookieStore.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/network/OAuthModule.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/resource/LocalAddress.kt | 0 .../at/bitfire/davdroid/resource/LocalAddressBook.kt | 0 .../at/bitfire/davdroid/resource/LocalCalendar.kt | 0 .../at/bitfire/davdroid/resource/LocalCollection.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/resource/LocalContact.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/resource/LocalEvent.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/resource/LocalGroup.kt | 0 .../at/bitfire/davdroid/resource/LocalJtxCollection.kt | 0 .../at/bitfire/davdroid/resource/LocalJtxICalObject.kt | 0 .../at/bitfire/davdroid/resource/LocalResource.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/resource/LocalTask.kt | 0 .../at/bitfire/davdroid/resource/LocalTaskList.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/resource/TaskUtils.kt | 0 .../davdroid/resource/contactrow/CachedGroupMembershipHandler.kt | 0 .../davdroid/resource/contactrow/GroupMembershipBuilder.kt | 0 .../davdroid/resource/contactrow/GroupMembershipHandler.kt | 0 .../at/bitfire/davdroid/resource/contactrow/UnknownProperties.kt | 0 .../davdroid/resource/contactrow/UnknownPropertiesBuilder.kt | 0 .../davdroid/resource/contactrow/UnknownPropertiesHandler.kt | 0 .../at/bitfire/davdroid/servicedetection/DavResourceFinder.kt | 0 .../bitfire/davdroid/servicedetection/RefreshCollectionsWorker.kt | 0 .../at/bitfire/davdroid/settings/AccountSettings.kt | 0 .../at/bitfire/davdroid/settings/AccountSettingsMigrations.kt | 0 .../at/bitfire/davdroid/settings/BaseDefaultsProvider.kt | 0 .../at/bitfire/davdroid/settings/DefaultsProvider.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/settings/Settings.kt | 0 .../at/bitfire/davdroid/settings/SettingsManager.kt | 0 .../at/bitfire/davdroid/settings/SettingsProvider.kt | 0 .../at/bitfire/davdroid/settings/SettingsProviderFactory.kt | 0 .../at/bitfire/davdroid/settings/SharedPreferencesProvider.kt | 0 .../bitfire/davdroid/syncadapter/AccountAuthenticatorService.kt | 0 .../at/bitfire/davdroid/syncadapter/AccountUtils.kt | 0 .../at/bitfire/davdroid/syncadapter/AccountsCleanupWorker.kt | 0 .../at/bitfire/davdroid/syncadapter/AccountsUpdatedListener.kt | 0 .../davdroid/syncadapter/AddressBookAuthenticatorService.kt | 0 .../at/bitfire/davdroid/syncadapter/AddressBookProvider.kt | 0 .../at/bitfire/davdroid/syncadapter/AddressBookSyncer.kt | 0 .../at/bitfire/davdroid/syncadapter/CalendarSyncManager.kt | 0 .../at/bitfire/davdroid/syncadapter/CalendarSyncer.kt | 0 .../at/bitfire/davdroid/syncadapter/ContactSyncer.kt | 0 .../at/bitfire/davdroid/syncadapter/ContactsSyncManager.kt | 0 .../at/bitfire/davdroid/syncadapter/JtxSyncManager.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/syncadapter/JtxSyncer.kt | 0 .../at/bitfire/davdroid/syncadapter/PeriodicSyncWorker.kt | 0 .../at/bitfire/davdroid/syncadapter/SyncAdapterServices.kt | 0 .../at/bitfire/davdroid/syncadapter/SyncManager.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/syncadapter/SyncUtils.kt | 0 .../at/bitfire/davdroid/syncadapter/SyncWorker.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/syncadapter/Syncer.kt | 0 .../at/bitfire/davdroid/syncadapter/TaskSyncer.kt | 0 .../at/bitfire/davdroid/syncadapter/TasksSyncManager.kt | 0 .../at/bitfire/davdroid/syncadapter/groups/CategoriesStrategy.kt | 0 .../bitfire/davdroid/syncadapter/groups/ContactGroupStrategy.kt | 0 .../at/bitfire/davdroid/syncadapter/groups/VCard4Strategy.kt | 0 .../main/{java => kotlin}/at/bitfire/davdroid/ui/AboutActivity.kt | 0 .../at/bitfire/davdroid/ui/AccountListFragment.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/ui/AccountsActivity.kt | 0 .../at/bitfire/davdroid/ui/AccountsDrawerHandler.kt | 0 .../at/bitfire/davdroid/ui/AppSettingsActivity.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/ui/AppWarningsManager.kt | 0 .../at/bitfire/davdroid/ui/BaseAccountsDrawerHandler.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/ui/DebugInfoActivity.kt | 0 .../at/bitfire/davdroid/ui/ExceptionInfoFragment.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/ui/HomeSetAdapter.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/ui/NotificationUtils.kt | 0 .../at/bitfire/davdroid/ui/OseAccountsDrawerHandler.kt | 0 .../at/bitfire/davdroid/ui/PermissionsActivity.kt | 0 .../at/bitfire/davdroid/ui/PermissionsFragment.kt | 0 .../main/{java => kotlin}/at/bitfire/davdroid/ui/TasksActivity.kt | 0 .../main/{java => kotlin}/at/bitfire/davdroid/ui/TasksFragment.kt | 0 app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/UiUtils.kt | 0 .../at/bitfire/davdroid/ui/account/AccountActivity.kt | 0 .../at/bitfire/davdroid/ui/account/AddressBooksFragment.kt | 0 .../at/bitfire/davdroid/ui/account/CalendarsFragment.kt | 0 .../at/bitfire/davdroid/ui/account/CollectionInfoFragment.kt | 0 .../at/bitfire/davdroid/ui/account/CollectionsFragment.kt | 0 .../at/bitfire/davdroid/ui/account/CreateAddressBookActivity.kt | 0 .../at/bitfire/davdroid/ui/account/CreateCalendarActivity.kt | 0 .../at/bitfire/davdroid/ui/account/CreateCollectionFragment.kt | 0 .../at/bitfire/davdroid/ui/account/DeleteCollectionFragment.kt | 0 .../at/bitfire/davdroid/ui/account/RenameAccountFragment.kt | 0 .../at/bitfire/davdroid/ui/account/SettingsActivity.kt | 0 .../at/bitfire/davdroid/ui/account/WebcalFragment.kt | 0 .../at/bitfire/davdroid/ui/account/WifiPermissionsActivity.kt | 0 .../at/bitfire/davdroid/ui/intro/BatteryOptimizationsFragment.kt | 0 .../at/bitfire/davdroid/ui/intro/IntroActivity.kt | 0 .../at/bitfire/davdroid/ui/intro/IntroFragmentFactory.kt | 0 .../at/bitfire/davdroid/ui/intro/OpenSourceFragment.kt | 0 .../at/bitfire/davdroid/ui/intro/PermissionsIntroFragment.kt | 0 .../at/bitfire/davdroid/ui/intro/TasksIntroFragment.kt | 0 .../at/bitfire/davdroid/ui/intro/WelcomeFragment.kt | 0 .../at/bitfire/davdroid/ui/setup/AccountDetailsFragment.kt | 0 .../bitfire/davdroid/ui/setup/DefaultLoginCredentialsFragment.kt | 0 .../at/bitfire/davdroid/ui/setup/DefaultLoginCredentialsModel.kt | 0 .../at/bitfire/davdroid/ui/setup/DetectConfigurationFragment.kt | 0 .../at/bitfire/davdroid/ui/setup/GoogleLoginFragment.kt | 0 .../at/bitfire/davdroid/ui/setup/LoginActivity.kt | 0 .../bitfire/davdroid/ui/setup/LoginCredentialsFragmentFactory.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/ui/setup/LoginModel.kt | 0 .../at/bitfire/davdroid/ui/setup/NextcloudLoginFlowFragment.kt | 0 .../at/bitfire/davdroid/ui/webdav/AddWebdavMountActivity.kt | 0 .../at/bitfire/davdroid/ui/webdav/WebdavMountsActivity.kt | 0 .../at/bitfire/davdroid/ui/widget/BindingAdapters.kt | 0 .../at/bitfire/davdroid/ui/widget/CropImageView.kt | 0 .../main/{java => kotlin}/at/bitfire/davdroid/util/CompatUtils.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/util/ConcurrentUtils.kt | 0 .../main/{java => kotlin}/at/bitfire/davdroid/util/DavUtils.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/util/PermissionUtils.kt | 0 .../at/bitfire/davdroid/webdav/BlockingLifoQueue.kt | 0 .../at/bitfire/davdroid/webdav/CredentialsStore.kt | 0 .../at/bitfire/davdroid/webdav/DavDocumentsProvider.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/webdav/DocumentState.kt | 0 .../at/bitfire/davdroid/webdav/DocumentsCursor.kt | 0 .../at/bitfire/davdroid/webdav/HeadInfoDownloader.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/webdav/HeadResponse.kt | 0 .../at/bitfire/davdroid/webdav/RandomAccessCallback.kt | 0 .../at/bitfire/davdroid/webdav/StreamingFileDescriptor.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/webdav/ThumbnailCache.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/webdav/cache/Cache.kt | 0 .../at/bitfire/davdroid/webdav/cache/CacheUtils.kt | 0 .../at/bitfire/davdroid/webdav/cache/DiskCache.kt | 0 .../at/bitfire/davdroid/webdav/cache/HeadResponseCache.kt | 0 .../at/bitfire/davdroid/webdav/cache/MemoryCache.kt | 0 .../at/bitfire/davdroid/webdav/cache/SegmentedCache.kt | 0 .../ose/{java => kotlin}/at/bitfire/davdroid/OseFlavorModule.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/ConcurrentUtilsTest.kt | 0 app/src/test/{java => kotlin}/at/bitfire/davdroid/DavUtilsTest.kt | 0 .../at/bitfire/davdroid/webdav/BlockingLifoQueueTest.kt | 0 .../{java => kotlin}/at/bitfire/davdroid/webdav/DiskCacheTest.kt | 0 208 files changed, 0 insertions(+), 0 deletions(-) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/CustomTestRunner.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/InitCalendarProviderRule.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/MockingModule.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/TestUtils.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/db/AppDatabaseTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/db/CollectionTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/db/HomesetDaoTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/db/MemoryDbModule.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/network/Android10ResolverTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/network/ConnectionUtilsTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/network/HttpClientTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/resource/LocalAddressBookTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/resource/LocalCalendarTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/resource/LocalEventTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/resource/LocalGroupTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/resource/LocalTestAddressBook.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/resource/contactrow/CachedGroupMembershipHandlerTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/resource/contactrow/GroupMembershipBuilderTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/resource/contactrow/GroupMembershipHandlerTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/resource/contactrow/UnknownPropertiesBuilderTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/resource/contactrow/UnknownPropertiesHandlerTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/servicedetection/DavResourceFinderTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/servicedetection/RefreshCollectionsWorkerTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/settings/AccountSettingsTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/settings/SettingsManagerTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/ui/AppSettingsActivityTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/ui/DebugInfoActivityTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/ui/setup/AccountDetailsFragmentTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/ui/webdav/AddWebdavMountActivityTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/webdav/CredentialsStoreTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/webdav/DavDocumentsProviderTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/webdav/MemoryCacheTest.kt (100%) rename app/src/androidTest/{java => kotlin}/at/bitfire/davdroid/webdav/SegmentedCacheTest.kt (100%) rename app/src/androidTestOse/{java => kotlin}/at/bitfire/davdroid/OkhttpClientTest.kt (100%) rename app/src/androidTestOse/{java => kotlin}/at/bitfire/davdroid/syncadapter/AccountUtilsTest.kt (100%) rename app/src/androidTestOse/{java => kotlin}/at/bitfire/davdroid/syncadapter/LocalTestCollection.kt (100%) rename app/src/androidTestOse/{java => kotlin}/at/bitfire/davdroid/syncadapter/LocalTestResource.kt (100%) rename app/src/androidTestOse/{java => kotlin}/at/bitfire/davdroid/syncadapter/PeriodicSyncWorkerTest.kt (100%) rename app/src/androidTestOse/{java => kotlin}/at/bitfire/davdroid/syncadapter/SyncManagerTest.kt (100%) rename app/src/androidTestOse/{java => kotlin}/at/bitfire/davdroid/syncadapter/SyncWorkerTest.kt (100%) rename app/src/androidTestOse/{java => kotlin}/at/bitfire/davdroid/syncadapter/SyncerTest.kt (100%) rename app/src/androidTestOse/{java => kotlin}/at/bitfire/davdroid/syncadapter/TestSyncManager.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/App.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/Constants.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ForegroundService.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/InvalidAccountException.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/PackageChangedReceiver.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/StorageLowReceiver.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/TasksWatcher.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/TextTable.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/db/AppDatabase.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/db/Collection.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/db/CollectionDao.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/db/Converters.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/db/Credentials.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/db/HomeSet.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/db/HomeSetDao.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/db/Principal.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/db/PrincipalDao.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/db/Service.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/db/ServiceDao.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/db/SyncState.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/db/SyncStats.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/db/SyncStatsDao.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/db/WebDavDocument.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/db/WebDavDocumentDao.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/db/WebDavMount.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/db/WebDavMountDao.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/di/SyncComponent.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/log/LogcatHandler.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/log/Logger.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/log/PlainTextFormatter.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/log/StringHandler.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/network/Android10Resolver.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/network/BearerAuthInterceptor.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/network/ConnectionUtils.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/network/HttpClient.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/network/MemoryCookieStore.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/network/OAuthModule.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/resource/LocalAddress.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/resource/LocalAddressBook.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/resource/LocalCalendar.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/resource/LocalCollection.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/resource/LocalContact.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/resource/LocalEvent.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/resource/LocalGroup.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/resource/LocalJtxCollection.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/resource/LocalJtxICalObject.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/resource/LocalResource.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/resource/LocalTask.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/resource/LocalTaskList.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/resource/TaskUtils.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/resource/contactrow/CachedGroupMembershipHandler.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/resource/contactrow/GroupMembershipBuilder.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/resource/contactrow/GroupMembershipHandler.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/resource/contactrow/UnknownProperties.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/resource/contactrow/UnknownPropertiesBuilder.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/resource/contactrow/UnknownPropertiesHandler.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/servicedetection/DavResourceFinder.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/servicedetection/RefreshCollectionsWorker.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/settings/AccountSettings.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/settings/AccountSettingsMigrations.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/settings/BaseDefaultsProvider.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/settings/DefaultsProvider.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/settings/Settings.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/settings/SettingsManager.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/settings/SettingsProvider.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/settings/SettingsProviderFactory.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/settings/SharedPreferencesProvider.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/syncadapter/AccountAuthenticatorService.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/syncadapter/AccountUtils.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/syncadapter/AccountsCleanupWorker.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/syncadapter/AccountsUpdatedListener.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/syncadapter/AddressBookAuthenticatorService.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/syncadapter/AddressBookProvider.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/syncadapter/AddressBookSyncer.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/syncadapter/CalendarSyncManager.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/syncadapter/CalendarSyncer.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/syncadapter/ContactSyncer.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/syncadapter/ContactsSyncManager.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/syncadapter/JtxSyncManager.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/syncadapter/JtxSyncer.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/syncadapter/PeriodicSyncWorker.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/syncadapter/SyncAdapterServices.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/syncadapter/SyncManager.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/syncadapter/SyncUtils.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/syncadapter/SyncWorker.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/syncadapter/Syncer.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/syncadapter/TaskSyncer.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/syncadapter/TasksSyncManager.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/syncadapter/groups/CategoriesStrategy.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/syncadapter/groups/ContactGroupStrategy.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/syncadapter/groups/VCard4Strategy.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/AboutActivity.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/AccountListFragment.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/AccountsActivity.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/AccountsDrawerHandler.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/AppSettingsActivity.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/AppWarningsManager.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/BaseAccountsDrawerHandler.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/DebugInfoActivity.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/ExceptionInfoFragment.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/HomeSetAdapter.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/NotificationUtils.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/OseAccountsDrawerHandler.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/PermissionsActivity.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/PermissionsFragment.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/TasksActivity.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/TasksFragment.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/UiUtils.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/account/AccountActivity.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/account/AddressBooksFragment.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/account/CalendarsFragment.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/account/CollectionInfoFragment.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/account/CollectionsFragment.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/account/CreateAddressBookActivity.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/account/CreateCalendarActivity.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/account/CreateCollectionFragment.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/account/DeleteCollectionFragment.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/account/RenameAccountFragment.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/account/SettingsActivity.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/account/WebcalFragment.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/account/WifiPermissionsActivity.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/intro/BatteryOptimizationsFragment.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/intro/IntroActivity.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/intro/IntroFragmentFactory.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/intro/OpenSourceFragment.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/intro/PermissionsIntroFragment.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/intro/TasksIntroFragment.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/intro/WelcomeFragment.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/setup/AccountDetailsFragment.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/setup/DefaultLoginCredentialsFragment.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/setup/DefaultLoginCredentialsModel.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/setup/DetectConfigurationFragment.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/setup/GoogleLoginFragment.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/setup/LoginActivity.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/setup/LoginCredentialsFragmentFactory.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/setup/LoginModel.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/setup/NextcloudLoginFlowFragment.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/webdav/AddWebdavMountActivity.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/webdav/WebdavMountsActivity.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/widget/BindingAdapters.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/ui/widget/CropImageView.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/util/CompatUtils.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/util/ConcurrentUtils.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/util/DavUtils.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/util/PermissionUtils.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/webdav/BlockingLifoQueue.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/webdav/CredentialsStore.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/webdav/DavDocumentsProvider.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/webdav/DocumentState.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/webdav/DocumentsCursor.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/webdav/HeadInfoDownloader.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/webdav/HeadResponse.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/webdav/RandomAccessCallback.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/webdav/StreamingFileDescriptor.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/webdav/ThumbnailCache.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/webdav/cache/Cache.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/webdav/cache/CacheUtils.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/webdav/cache/DiskCache.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/webdav/cache/HeadResponseCache.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/webdav/cache/MemoryCache.kt (100%) rename app/src/main/{java => kotlin}/at/bitfire/davdroid/webdav/cache/SegmentedCache.kt (100%) rename app/src/ose/{java => kotlin}/at/bitfire/davdroid/OseFlavorModule.kt (100%) rename app/src/test/{java => kotlin}/at/bitfire/davdroid/ConcurrentUtilsTest.kt (100%) rename app/src/test/{java => kotlin}/at/bitfire/davdroid/DavUtilsTest.kt (100%) rename app/src/test/{java => kotlin}/at/bitfire/davdroid/webdav/BlockingLifoQueueTest.kt (100%) rename app/src/test/{java => kotlin}/at/bitfire/davdroid/webdav/DiskCacheTest.kt (100%) diff --git a/app/src/androidTest/java/at/bitfire/davdroid/CustomTestRunner.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/CustomTestRunner.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/CustomTestRunner.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/CustomTestRunner.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/InitCalendarProviderRule.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/InitCalendarProviderRule.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/InitCalendarProviderRule.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/InitCalendarProviderRule.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/MockingModule.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/MockingModule.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/MockingModule.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/MockingModule.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/TestUtils.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/TestUtils.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/TestUtils.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/TestUtils.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/db/AppDatabaseTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/db/AppDatabaseTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/db/AppDatabaseTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/db/AppDatabaseTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/db/CollectionTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/db/CollectionTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/db/CollectionTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/db/CollectionTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/db/HomesetDaoTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/db/HomesetDaoTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/db/HomesetDaoTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/db/HomesetDaoTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/db/MemoryDbModule.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/db/MemoryDbModule.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/db/MemoryDbModule.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/db/MemoryDbModule.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/network/Android10ResolverTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/network/Android10ResolverTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/network/Android10ResolverTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/network/Android10ResolverTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/network/ConnectionUtilsTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/network/ConnectionUtilsTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/network/ConnectionUtilsTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/network/ConnectionUtilsTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/network/HttpClientTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/network/HttpClientTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/network/HttpClientTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/network/HttpClientTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/resource/LocalAddressBookTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/resource/LocalAddressBookTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/resource/LocalAddressBookTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/resource/LocalAddressBookTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/resource/LocalCalendarTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/resource/LocalCalendarTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/resource/LocalCalendarTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/resource/LocalCalendarTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/resource/LocalEventTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/resource/LocalEventTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/resource/LocalEventTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/resource/LocalEventTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/resource/LocalGroupTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/resource/LocalGroupTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/resource/LocalGroupTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/resource/LocalGroupTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/resource/LocalTestAddressBook.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/resource/LocalTestAddressBook.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/resource/LocalTestAddressBook.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/resource/LocalTestAddressBook.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/resource/contactrow/CachedGroupMembershipHandlerTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/resource/contactrow/CachedGroupMembershipHandlerTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/resource/contactrow/CachedGroupMembershipHandlerTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/resource/contactrow/CachedGroupMembershipHandlerTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/resource/contactrow/GroupMembershipBuilderTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/resource/contactrow/GroupMembershipBuilderTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/resource/contactrow/GroupMembershipBuilderTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/resource/contactrow/GroupMembershipBuilderTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/resource/contactrow/GroupMembershipHandlerTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/resource/contactrow/GroupMembershipHandlerTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/resource/contactrow/GroupMembershipHandlerTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/resource/contactrow/GroupMembershipHandlerTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/resource/contactrow/UnknownPropertiesBuilderTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/resource/contactrow/UnknownPropertiesBuilderTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/resource/contactrow/UnknownPropertiesBuilderTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/resource/contactrow/UnknownPropertiesBuilderTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/resource/contactrow/UnknownPropertiesHandlerTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/resource/contactrow/UnknownPropertiesHandlerTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/resource/contactrow/UnknownPropertiesHandlerTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/resource/contactrow/UnknownPropertiesHandlerTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/servicedetection/DavResourceFinderTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/servicedetection/DavResourceFinderTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/servicedetection/DavResourceFinderTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/servicedetection/DavResourceFinderTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/servicedetection/RefreshCollectionsWorkerTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/servicedetection/RefreshCollectionsWorkerTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/servicedetection/RefreshCollectionsWorkerTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/servicedetection/RefreshCollectionsWorkerTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/settings/AccountSettingsTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/settings/AccountSettingsTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/settings/AccountSettingsTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/settings/AccountSettingsTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/settings/SettingsManagerTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/settings/SettingsManagerTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/settings/SettingsManagerTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/settings/SettingsManagerTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/ui/AppSettingsActivityTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/ui/AppSettingsActivityTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/ui/AppSettingsActivityTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/ui/AppSettingsActivityTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/ui/DebugInfoActivityTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/ui/DebugInfoActivityTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/ui/DebugInfoActivityTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/ui/DebugInfoActivityTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/ui/setup/AccountDetailsFragmentTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/ui/setup/AccountDetailsFragmentTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/ui/setup/AccountDetailsFragmentTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/ui/setup/AccountDetailsFragmentTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/ui/webdav/AddWebdavMountActivityTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/ui/webdav/AddWebdavMountActivityTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/ui/webdav/AddWebdavMountActivityTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/ui/webdav/AddWebdavMountActivityTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/webdav/CredentialsStoreTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/webdav/CredentialsStoreTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/webdav/CredentialsStoreTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/webdav/CredentialsStoreTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/webdav/DavDocumentsProviderTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/webdav/DavDocumentsProviderTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/webdav/DavDocumentsProviderTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/webdav/DavDocumentsProviderTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/webdav/MemoryCacheTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/webdav/MemoryCacheTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/webdav/MemoryCacheTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/webdav/MemoryCacheTest.kt diff --git a/app/src/androidTest/java/at/bitfire/davdroid/webdav/SegmentedCacheTest.kt b/app/src/androidTest/kotlin/at/bitfire/davdroid/webdav/SegmentedCacheTest.kt similarity index 100% rename from app/src/androidTest/java/at/bitfire/davdroid/webdav/SegmentedCacheTest.kt rename to app/src/androidTest/kotlin/at/bitfire/davdroid/webdav/SegmentedCacheTest.kt diff --git a/app/src/androidTestOse/java/at/bitfire/davdroid/OkhttpClientTest.kt b/app/src/androidTestOse/kotlin/at/bitfire/davdroid/OkhttpClientTest.kt similarity index 100% rename from app/src/androidTestOse/java/at/bitfire/davdroid/OkhttpClientTest.kt rename to app/src/androidTestOse/kotlin/at/bitfire/davdroid/OkhttpClientTest.kt diff --git a/app/src/androidTestOse/java/at/bitfire/davdroid/syncadapter/AccountUtilsTest.kt b/app/src/androidTestOse/kotlin/at/bitfire/davdroid/syncadapter/AccountUtilsTest.kt similarity index 100% rename from app/src/androidTestOse/java/at/bitfire/davdroid/syncadapter/AccountUtilsTest.kt rename to app/src/androidTestOse/kotlin/at/bitfire/davdroid/syncadapter/AccountUtilsTest.kt diff --git a/app/src/androidTestOse/java/at/bitfire/davdroid/syncadapter/LocalTestCollection.kt b/app/src/androidTestOse/kotlin/at/bitfire/davdroid/syncadapter/LocalTestCollection.kt similarity index 100% rename from app/src/androidTestOse/java/at/bitfire/davdroid/syncadapter/LocalTestCollection.kt rename to app/src/androidTestOse/kotlin/at/bitfire/davdroid/syncadapter/LocalTestCollection.kt diff --git a/app/src/androidTestOse/java/at/bitfire/davdroid/syncadapter/LocalTestResource.kt b/app/src/androidTestOse/kotlin/at/bitfire/davdroid/syncadapter/LocalTestResource.kt similarity index 100% rename from app/src/androidTestOse/java/at/bitfire/davdroid/syncadapter/LocalTestResource.kt rename to app/src/androidTestOse/kotlin/at/bitfire/davdroid/syncadapter/LocalTestResource.kt diff --git a/app/src/androidTestOse/java/at/bitfire/davdroid/syncadapter/PeriodicSyncWorkerTest.kt b/app/src/androidTestOse/kotlin/at/bitfire/davdroid/syncadapter/PeriodicSyncWorkerTest.kt similarity index 100% rename from app/src/androidTestOse/java/at/bitfire/davdroid/syncadapter/PeriodicSyncWorkerTest.kt rename to app/src/androidTestOse/kotlin/at/bitfire/davdroid/syncadapter/PeriodicSyncWorkerTest.kt diff --git a/app/src/androidTestOse/java/at/bitfire/davdroid/syncadapter/SyncManagerTest.kt b/app/src/androidTestOse/kotlin/at/bitfire/davdroid/syncadapter/SyncManagerTest.kt similarity index 100% rename from app/src/androidTestOse/java/at/bitfire/davdroid/syncadapter/SyncManagerTest.kt rename to app/src/androidTestOse/kotlin/at/bitfire/davdroid/syncadapter/SyncManagerTest.kt diff --git a/app/src/androidTestOse/java/at/bitfire/davdroid/syncadapter/SyncWorkerTest.kt b/app/src/androidTestOse/kotlin/at/bitfire/davdroid/syncadapter/SyncWorkerTest.kt similarity index 100% rename from app/src/androidTestOse/java/at/bitfire/davdroid/syncadapter/SyncWorkerTest.kt rename to app/src/androidTestOse/kotlin/at/bitfire/davdroid/syncadapter/SyncWorkerTest.kt diff --git a/app/src/androidTestOse/java/at/bitfire/davdroid/syncadapter/SyncerTest.kt b/app/src/androidTestOse/kotlin/at/bitfire/davdroid/syncadapter/SyncerTest.kt similarity index 100% rename from app/src/androidTestOse/java/at/bitfire/davdroid/syncadapter/SyncerTest.kt rename to app/src/androidTestOse/kotlin/at/bitfire/davdroid/syncadapter/SyncerTest.kt diff --git a/app/src/androidTestOse/java/at/bitfire/davdroid/syncadapter/TestSyncManager.kt b/app/src/androidTestOse/kotlin/at/bitfire/davdroid/syncadapter/TestSyncManager.kt similarity index 100% rename from app/src/androidTestOse/java/at/bitfire/davdroid/syncadapter/TestSyncManager.kt rename to app/src/androidTestOse/kotlin/at/bitfire/davdroid/syncadapter/TestSyncManager.kt diff --git a/app/src/main/java/at/bitfire/davdroid/App.kt b/app/src/main/kotlin/at/bitfire/davdroid/App.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/App.kt rename to app/src/main/kotlin/at/bitfire/davdroid/App.kt diff --git a/app/src/main/java/at/bitfire/davdroid/Constants.kt b/app/src/main/kotlin/at/bitfire/davdroid/Constants.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/Constants.kt rename to app/src/main/kotlin/at/bitfire/davdroid/Constants.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ForegroundService.kt b/app/src/main/kotlin/at/bitfire/davdroid/ForegroundService.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ForegroundService.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ForegroundService.kt diff --git a/app/src/main/java/at/bitfire/davdroid/InvalidAccountException.kt b/app/src/main/kotlin/at/bitfire/davdroid/InvalidAccountException.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/InvalidAccountException.kt rename to app/src/main/kotlin/at/bitfire/davdroid/InvalidAccountException.kt diff --git a/app/src/main/java/at/bitfire/davdroid/PackageChangedReceiver.kt b/app/src/main/kotlin/at/bitfire/davdroid/PackageChangedReceiver.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/PackageChangedReceiver.kt rename to app/src/main/kotlin/at/bitfire/davdroid/PackageChangedReceiver.kt diff --git a/app/src/main/java/at/bitfire/davdroid/StorageLowReceiver.kt b/app/src/main/kotlin/at/bitfire/davdroid/StorageLowReceiver.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/StorageLowReceiver.kt rename to app/src/main/kotlin/at/bitfire/davdroid/StorageLowReceiver.kt diff --git a/app/src/main/java/at/bitfire/davdroid/TasksWatcher.kt b/app/src/main/kotlin/at/bitfire/davdroid/TasksWatcher.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/TasksWatcher.kt rename to app/src/main/kotlin/at/bitfire/davdroid/TasksWatcher.kt diff --git a/app/src/main/java/at/bitfire/davdroid/TextTable.kt b/app/src/main/kotlin/at/bitfire/davdroid/TextTable.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/TextTable.kt rename to app/src/main/kotlin/at/bitfire/davdroid/TextTable.kt diff --git a/app/src/main/java/at/bitfire/davdroid/db/AppDatabase.kt b/app/src/main/kotlin/at/bitfire/davdroid/db/AppDatabase.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/db/AppDatabase.kt rename to app/src/main/kotlin/at/bitfire/davdroid/db/AppDatabase.kt diff --git a/app/src/main/java/at/bitfire/davdroid/db/Collection.kt b/app/src/main/kotlin/at/bitfire/davdroid/db/Collection.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/db/Collection.kt rename to app/src/main/kotlin/at/bitfire/davdroid/db/Collection.kt diff --git a/app/src/main/java/at/bitfire/davdroid/db/CollectionDao.kt b/app/src/main/kotlin/at/bitfire/davdroid/db/CollectionDao.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/db/CollectionDao.kt rename to app/src/main/kotlin/at/bitfire/davdroid/db/CollectionDao.kt diff --git a/app/src/main/java/at/bitfire/davdroid/db/Converters.kt b/app/src/main/kotlin/at/bitfire/davdroid/db/Converters.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/db/Converters.kt rename to app/src/main/kotlin/at/bitfire/davdroid/db/Converters.kt diff --git a/app/src/main/java/at/bitfire/davdroid/db/Credentials.kt b/app/src/main/kotlin/at/bitfire/davdroid/db/Credentials.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/db/Credentials.kt rename to app/src/main/kotlin/at/bitfire/davdroid/db/Credentials.kt diff --git a/app/src/main/java/at/bitfire/davdroid/db/HomeSet.kt b/app/src/main/kotlin/at/bitfire/davdroid/db/HomeSet.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/db/HomeSet.kt rename to app/src/main/kotlin/at/bitfire/davdroid/db/HomeSet.kt diff --git a/app/src/main/java/at/bitfire/davdroid/db/HomeSetDao.kt b/app/src/main/kotlin/at/bitfire/davdroid/db/HomeSetDao.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/db/HomeSetDao.kt rename to app/src/main/kotlin/at/bitfire/davdroid/db/HomeSetDao.kt diff --git a/app/src/main/java/at/bitfire/davdroid/db/Principal.kt b/app/src/main/kotlin/at/bitfire/davdroid/db/Principal.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/db/Principal.kt rename to app/src/main/kotlin/at/bitfire/davdroid/db/Principal.kt diff --git a/app/src/main/java/at/bitfire/davdroid/db/PrincipalDao.kt b/app/src/main/kotlin/at/bitfire/davdroid/db/PrincipalDao.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/db/PrincipalDao.kt rename to app/src/main/kotlin/at/bitfire/davdroid/db/PrincipalDao.kt diff --git a/app/src/main/java/at/bitfire/davdroid/db/Service.kt b/app/src/main/kotlin/at/bitfire/davdroid/db/Service.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/db/Service.kt rename to app/src/main/kotlin/at/bitfire/davdroid/db/Service.kt diff --git a/app/src/main/java/at/bitfire/davdroid/db/ServiceDao.kt b/app/src/main/kotlin/at/bitfire/davdroid/db/ServiceDao.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/db/ServiceDao.kt rename to app/src/main/kotlin/at/bitfire/davdroid/db/ServiceDao.kt diff --git a/app/src/main/java/at/bitfire/davdroid/db/SyncState.kt b/app/src/main/kotlin/at/bitfire/davdroid/db/SyncState.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/db/SyncState.kt rename to app/src/main/kotlin/at/bitfire/davdroid/db/SyncState.kt diff --git a/app/src/main/java/at/bitfire/davdroid/db/SyncStats.kt b/app/src/main/kotlin/at/bitfire/davdroid/db/SyncStats.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/db/SyncStats.kt rename to app/src/main/kotlin/at/bitfire/davdroid/db/SyncStats.kt diff --git a/app/src/main/java/at/bitfire/davdroid/db/SyncStatsDao.kt b/app/src/main/kotlin/at/bitfire/davdroid/db/SyncStatsDao.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/db/SyncStatsDao.kt rename to app/src/main/kotlin/at/bitfire/davdroid/db/SyncStatsDao.kt diff --git a/app/src/main/java/at/bitfire/davdroid/db/WebDavDocument.kt b/app/src/main/kotlin/at/bitfire/davdroid/db/WebDavDocument.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/db/WebDavDocument.kt rename to app/src/main/kotlin/at/bitfire/davdroid/db/WebDavDocument.kt diff --git a/app/src/main/java/at/bitfire/davdroid/db/WebDavDocumentDao.kt b/app/src/main/kotlin/at/bitfire/davdroid/db/WebDavDocumentDao.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/db/WebDavDocumentDao.kt rename to app/src/main/kotlin/at/bitfire/davdroid/db/WebDavDocumentDao.kt diff --git a/app/src/main/java/at/bitfire/davdroid/db/WebDavMount.kt b/app/src/main/kotlin/at/bitfire/davdroid/db/WebDavMount.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/db/WebDavMount.kt rename to app/src/main/kotlin/at/bitfire/davdroid/db/WebDavMount.kt diff --git a/app/src/main/java/at/bitfire/davdroid/db/WebDavMountDao.kt b/app/src/main/kotlin/at/bitfire/davdroid/db/WebDavMountDao.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/db/WebDavMountDao.kt rename to app/src/main/kotlin/at/bitfire/davdroid/db/WebDavMountDao.kt diff --git a/app/src/main/java/at/bitfire/davdroid/di/SyncComponent.kt b/app/src/main/kotlin/at/bitfire/davdroid/di/SyncComponent.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/di/SyncComponent.kt rename to app/src/main/kotlin/at/bitfire/davdroid/di/SyncComponent.kt diff --git a/app/src/main/java/at/bitfire/davdroid/log/LogcatHandler.kt b/app/src/main/kotlin/at/bitfire/davdroid/log/LogcatHandler.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/log/LogcatHandler.kt rename to app/src/main/kotlin/at/bitfire/davdroid/log/LogcatHandler.kt diff --git a/app/src/main/java/at/bitfire/davdroid/log/Logger.kt b/app/src/main/kotlin/at/bitfire/davdroid/log/Logger.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/log/Logger.kt rename to app/src/main/kotlin/at/bitfire/davdroid/log/Logger.kt diff --git a/app/src/main/java/at/bitfire/davdroid/log/PlainTextFormatter.kt b/app/src/main/kotlin/at/bitfire/davdroid/log/PlainTextFormatter.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/log/PlainTextFormatter.kt rename to app/src/main/kotlin/at/bitfire/davdroid/log/PlainTextFormatter.kt diff --git a/app/src/main/java/at/bitfire/davdroid/log/StringHandler.kt b/app/src/main/kotlin/at/bitfire/davdroid/log/StringHandler.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/log/StringHandler.kt rename to app/src/main/kotlin/at/bitfire/davdroid/log/StringHandler.kt diff --git a/app/src/main/java/at/bitfire/davdroid/network/Android10Resolver.kt b/app/src/main/kotlin/at/bitfire/davdroid/network/Android10Resolver.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/network/Android10Resolver.kt rename to app/src/main/kotlin/at/bitfire/davdroid/network/Android10Resolver.kt diff --git a/app/src/main/java/at/bitfire/davdroid/network/BearerAuthInterceptor.kt b/app/src/main/kotlin/at/bitfire/davdroid/network/BearerAuthInterceptor.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/network/BearerAuthInterceptor.kt rename to app/src/main/kotlin/at/bitfire/davdroid/network/BearerAuthInterceptor.kt diff --git a/app/src/main/java/at/bitfire/davdroid/network/ConnectionUtils.kt b/app/src/main/kotlin/at/bitfire/davdroid/network/ConnectionUtils.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/network/ConnectionUtils.kt rename to app/src/main/kotlin/at/bitfire/davdroid/network/ConnectionUtils.kt diff --git a/app/src/main/java/at/bitfire/davdroid/network/HttpClient.kt b/app/src/main/kotlin/at/bitfire/davdroid/network/HttpClient.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/network/HttpClient.kt rename to app/src/main/kotlin/at/bitfire/davdroid/network/HttpClient.kt diff --git a/app/src/main/java/at/bitfire/davdroid/network/MemoryCookieStore.kt b/app/src/main/kotlin/at/bitfire/davdroid/network/MemoryCookieStore.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/network/MemoryCookieStore.kt rename to app/src/main/kotlin/at/bitfire/davdroid/network/MemoryCookieStore.kt diff --git a/app/src/main/java/at/bitfire/davdroid/network/OAuthModule.kt b/app/src/main/kotlin/at/bitfire/davdroid/network/OAuthModule.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/network/OAuthModule.kt rename to app/src/main/kotlin/at/bitfire/davdroid/network/OAuthModule.kt diff --git a/app/src/main/java/at/bitfire/davdroid/resource/LocalAddress.kt b/app/src/main/kotlin/at/bitfire/davdroid/resource/LocalAddress.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/resource/LocalAddress.kt rename to app/src/main/kotlin/at/bitfire/davdroid/resource/LocalAddress.kt diff --git a/app/src/main/java/at/bitfire/davdroid/resource/LocalAddressBook.kt b/app/src/main/kotlin/at/bitfire/davdroid/resource/LocalAddressBook.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/resource/LocalAddressBook.kt rename to app/src/main/kotlin/at/bitfire/davdroid/resource/LocalAddressBook.kt diff --git a/app/src/main/java/at/bitfire/davdroid/resource/LocalCalendar.kt b/app/src/main/kotlin/at/bitfire/davdroid/resource/LocalCalendar.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/resource/LocalCalendar.kt rename to app/src/main/kotlin/at/bitfire/davdroid/resource/LocalCalendar.kt diff --git a/app/src/main/java/at/bitfire/davdroid/resource/LocalCollection.kt b/app/src/main/kotlin/at/bitfire/davdroid/resource/LocalCollection.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/resource/LocalCollection.kt rename to app/src/main/kotlin/at/bitfire/davdroid/resource/LocalCollection.kt diff --git a/app/src/main/java/at/bitfire/davdroid/resource/LocalContact.kt b/app/src/main/kotlin/at/bitfire/davdroid/resource/LocalContact.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/resource/LocalContact.kt rename to app/src/main/kotlin/at/bitfire/davdroid/resource/LocalContact.kt diff --git a/app/src/main/java/at/bitfire/davdroid/resource/LocalEvent.kt b/app/src/main/kotlin/at/bitfire/davdroid/resource/LocalEvent.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/resource/LocalEvent.kt rename to app/src/main/kotlin/at/bitfire/davdroid/resource/LocalEvent.kt diff --git a/app/src/main/java/at/bitfire/davdroid/resource/LocalGroup.kt b/app/src/main/kotlin/at/bitfire/davdroid/resource/LocalGroup.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/resource/LocalGroup.kt rename to app/src/main/kotlin/at/bitfire/davdroid/resource/LocalGroup.kt diff --git a/app/src/main/java/at/bitfire/davdroid/resource/LocalJtxCollection.kt b/app/src/main/kotlin/at/bitfire/davdroid/resource/LocalJtxCollection.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/resource/LocalJtxCollection.kt rename to app/src/main/kotlin/at/bitfire/davdroid/resource/LocalJtxCollection.kt diff --git a/app/src/main/java/at/bitfire/davdroid/resource/LocalJtxICalObject.kt b/app/src/main/kotlin/at/bitfire/davdroid/resource/LocalJtxICalObject.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/resource/LocalJtxICalObject.kt rename to app/src/main/kotlin/at/bitfire/davdroid/resource/LocalJtxICalObject.kt diff --git a/app/src/main/java/at/bitfire/davdroid/resource/LocalResource.kt b/app/src/main/kotlin/at/bitfire/davdroid/resource/LocalResource.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/resource/LocalResource.kt rename to app/src/main/kotlin/at/bitfire/davdroid/resource/LocalResource.kt diff --git a/app/src/main/java/at/bitfire/davdroid/resource/LocalTask.kt b/app/src/main/kotlin/at/bitfire/davdroid/resource/LocalTask.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/resource/LocalTask.kt rename to app/src/main/kotlin/at/bitfire/davdroid/resource/LocalTask.kt diff --git a/app/src/main/java/at/bitfire/davdroid/resource/LocalTaskList.kt b/app/src/main/kotlin/at/bitfire/davdroid/resource/LocalTaskList.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/resource/LocalTaskList.kt rename to app/src/main/kotlin/at/bitfire/davdroid/resource/LocalTaskList.kt diff --git a/app/src/main/java/at/bitfire/davdroid/resource/TaskUtils.kt b/app/src/main/kotlin/at/bitfire/davdroid/resource/TaskUtils.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/resource/TaskUtils.kt rename to app/src/main/kotlin/at/bitfire/davdroid/resource/TaskUtils.kt diff --git a/app/src/main/java/at/bitfire/davdroid/resource/contactrow/CachedGroupMembershipHandler.kt b/app/src/main/kotlin/at/bitfire/davdroid/resource/contactrow/CachedGroupMembershipHandler.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/resource/contactrow/CachedGroupMembershipHandler.kt rename to app/src/main/kotlin/at/bitfire/davdroid/resource/contactrow/CachedGroupMembershipHandler.kt diff --git a/app/src/main/java/at/bitfire/davdroid/resource/contactrow/GroupMembershipBuilder.kt b/app/src/main/kotlin/at/bitfire/davdroid/resource/contactrow/GroupMembershipBuilder.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/resource/contactrow/GroupMembershipBuilder.kt rename to app/src/main/kotlin/at/bitfire/davdroid/resource/contactrow/GroupMembershipBuilder.kt diff --git a/app/src/main/java/at/bitfire/davdroid/resource/contactrow/GroupMembershipHandler.kt b/app/src/main/kotlin/at/bitfire/davdroid/resource/contactrow/GroupMembershipHandler.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/resource/contactrow/GroupMembershipHandler.kt rename to app/src/main/kotlin/at/bitfire/davdroid/resource/contactrow/GroupMembershipHandler.kt diff --git a/app/src/main/java/at/bitfire/davdroid/resource/contactrow/UnknownProperties.kt b/app/src/main/kotlin/at/bitfire/davdroid/resource/contactrow/UnknownProperties.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/resource/contactrow/UnknownProperties.kt rename to app/src/main/kotlin/at/bitfire/davdroid/resource/contactrow/UnknownProperties.kt diff --git a/app/src/main/java/at/bitfire/davdroid/resource/contactrow/UnknownPropertiesBuilder.kt b/app/src/main/kotlin/at/bitfire/davdroid/resource/contactrow/UnknownPropertiesBuilder.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/resource/contactrow/UnknownPropertiesBuilder.kt rename to app/src/main/kotlin/at/bitfire/davdroid/resource/contactrow/UnknownPropertiesBuilder.kt diff --git a/app/src/main/java/at/bitfire/davdroid/resource/contactrow/UnknownPropertiesHandler.kt b/app/src/main/kotlin/at/bitfire/davdroid/resource/contactrow/UnknownPropertiesHandler.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/resource/contactrow/UnknownPropertiesHandler.kt rename to app/src/main/kotlin/at/bitfire/davdroid/resource/contactrow/UnknownPropertiesHandler.kt diff --git a/app/src/main/java/at/bitfire/davdroid/servicedetection/DavResourceFinder.kt b/app/src/main/kotlin/at/bitfire/davdroid/servicedetection/DavResourceFinder.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/servicedetection/DavResourceFinder.kt rename to app/src/main/kotlin/at/bitfire/davdroid/servicedetection/DavResourceFinder.kt diff --git a/app/src/main/java/at/bitfire/davdroid/servicedetection/RefreshCollectionsWorker.kt b/app/src/main/kotlin/at/bitfire/davdroid/servicedetection/RefreshCollectionsWorker.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/servicedetection/RefreshCollectionsWorker.kt rename to app/src/main/kotlin/at/bitfire/davdroid/servicedetection/RefreshCollectionsWorker.kt diff --git a/app/src/main/java/at/bitfire/davdroid/settings/AccountSettings.kt b/app/src/main/kotlin/at/bitfire/davdroid/settings/AccountSettings.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/settings/AccountSettings.kt rename to app/src/main/kotlin/at/bitfire/davdroid/settings/AccountSettings.kt diff --git a/app/src/main/java/at/bitfire/davdroid/settings/AccountSettingsMigrations.kt b/app/src/main/kotlin/at/bitfire/davdroid/settings/AccountSettingsMigrations.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/settings/AccountSettingsMigrations.kt rename to app/src/main/kotlin/at/bitfire/davdroid/settings/AccountSettingsMigrations.kt diff --git a/app/src/main/java/at/bitfire/davdroid/settings/BaseDefaultsProvider.kt b/app/src/main/kotlin/at/bitfire/davdroid/settings/BaseDefaultsProvider.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/settings/BaseDefaultsProvider.kt rename to app/src/main/kotlin/at/bitfire/davdroid/settings/BaseDefaultsProvider.kt diff --git a/app/src/main/java/at/bitfire/davdroid/settings/DefaultsProvider.kt b/app/src/main/kotlin/at/bitfire/davdroid/settings/DefaultsProvider.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/settings/DefaultsProvider.kt rename to app/src/main/kotlin/at/bitfire/davdroid/settings/DefaultsProvider.kt diff --git a/app/src/main/java/at/bitfire/davdroid/settings/Settings.kt b/app/src/main/kotlin/at/bitfire/davdroid/settings/Settings.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/settings/Settings.kt rename to app/src/main/kotlin/at/bitfire/davdroid/settings/Settings.kt diff --git a/app/src/main/java/at/bitfire/davdroid/settings/SettingsManager.kt b/app/src/main/kotlin/at/bitfire/davdroid/settings/SettingsManager.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/settings/SettingsManager.kt rename to app/src/main/kotlin/at/bitfire/davdroid/settings/SettingsManager.kt diff --git a/app/src/main/java/at/bitfire/davdroid/settings/SettingsProvider.kt b/app/src/main/kotlin/at/bitfire/davdroid/settings/SettingsProvider.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/settings/SettingsProvider.kt rename to app/src/main/kotlin/at/bitfire/davdroid/settings/SettingsProvider.kt diff --git a/app/src/main/java/at/bitfire/davdroid/settings/SettingsProviderFactory.kt b/app/src/main/kotlin/at/bitfire/davdroid/settings/SettingsProviderFactory.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/settings/SettingsProviderFactory.kt rename to app/src/main/kotlin/at/bitfire/davdroid/settings/SettingsProviderFactory.kt diff --git a/app/src/main/java/at/bitfire/davdroid/settings/SharedPreferencesProvider.kt b/app/src/main/kotlin/at/bitfire/davdroid/settings/SharedPreferencesProvider.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/settings/SharedPreferencesProvider.kt rename to app/src/main/kotlin/at/bitfire/davdroid/settings/SharedPreferencesProvider.kt diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/AccountAuthenticatorService.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/AccountAuthenticatorService.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/AccountAuthenticatorService.kt rename to app/src/main/kotlin/at/bitfire/davdroid/syncadapter/AccountAuthenticatorService.kt diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/AccountUtils.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/AccountUtils.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/AccountUtils.kt rename to app/src/main/kotlin/at/bitfire/davdroid/syncadapter/AccountUtils.kt diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/AccountsCleanupWorker.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/AccountsCleanupWorker.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/AccountsCleanupWorker.kt rename to app/src/main/kotlin/at/bitfire/davdroid/syncadapter/AccountsCleanupWorker.kt diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/AccountsUpdatedListener.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/AccountsUpdatedListener.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/AccountsUpdatedListener.kt rename to app/src/main/kotlin/at/bitfire/davdroid/syncadapter/AccountsUpdatedListener.kt diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/AddressBookAuthenticatorService.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/AddressBookAuthenticatorService.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/AddressBookAuthenticatorService.kt rename to app/src/main/kotlin/at/bitfire/davdroid/syncadapter/AddressBookAuthenticatorService.kt diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/AddressBookProvider.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/AddressBookProvider.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/AddressBookProvider.kt rename to app/src/main/kotlin/at/bitfire/davdroid/syncadapter/AddressBookProvider.kt diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/AddressBookSyncer.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/AddressBookSyncer.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/AddressBookSyncer.kt rename to app/src/main/kotlin/at/bitfire/davdroid/syncadapter/AddressBookSyncer.kt diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/CalendarSyncManager.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/CalendarSyncManager.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/CalendarSyncManager.kt rename to app/src/main/kotlin/at/bitfire/davdroid/syncadapter/CalendarSyncManager.kt diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/CalendarSyncer.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/CalendarSyncer.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/CalendarSyncer.kt rename to app/src/main/kotlin/at/bitfire/davdroid/syncadapter/CalendarSyncer.kt diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/ContactSyncer.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/ContactSyncer.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/ContactSyncer.kt rename to app/src/main/kotlin/at/bitfire/davdroid/syncadapter/ContactSyncer.kt diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/ContactsSyncManager.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/ContactsSyncManager.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/ContactsSyncManager.kt rename to app/src/main/kotlin/at/bitfire/davdroid/syncadapter/ContactsSyncManager.kt diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/JtxSyncManager.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/JtxSyncManager.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/JtxSyncManager.kt rename to app/src/main/kotlin/at/bitfire/davdroid/syncadapter/JtxSyncManager.kt diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/JtxSyncer.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/JtxSyncer.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/JtxSyncer.kt rename to app/src/main/kotlin/at/bitfire/davdroid/syncadapter/JtxSyncer.kt diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/PeriodicSyncWorker.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/PeriodicSyncWorker.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/PeriodicSyncWorker.kt rename to app/src/main/kotlin/at/bitfire/davdroid/syncadapter/PeriodicSyncWorker.kt diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/SyncAdapterServices.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/SyncAdapterServices.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/SyncAdapterServices.kt rename to app/src/main/kotlin/at/bitfire/davdroid/syncadapter/SyncAdapterServices.kt diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/SyncManager.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/SyncManager.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/SyncManager.kt rename to app/src/main/kotlin/at/bitfire/davdroid/syncadapter/SyncManager.kt diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/SyncUtils.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/SyncUtils.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/SyncUtils.kt rename to app/src/main/kotlin/at/bitfire/davdroid/syncadapter/SyncUtils.kt diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/SyncWorker.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/SyncWorker.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/SyncWorker.kt rename to app/src/main/kotlin/at/bitfire/davdroid/syncadapter/SyncWorker.kt diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/Syncer.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/Syncer.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/Syncer.kt rename to app/src/main/kotlin/at/bitfire/davdroid/syncadapter/Syncer.kt diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/TaskSyncer.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/TaskSyncer.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/TaskSyncer.kt rename to app/src/main/kotlin/at/bitfire/davdroid/syncadapter/TaskSyncer.kt diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/TasksSyncManager.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/TasksSyncManager.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/TasksSyncManager.kt rename to app/src/main/kotlin/at/bitfire/davdroid/syncadapter/TasksSyncManager.kt diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/groups/CategoriesStrategy.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/groups/CategoriesStrategy.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/groups/CategoriesStrategy.kt rename to app/src/main/kotlin/at/bitfire/davdroid/syncadapter/groups/CategoriesStrategy.kt diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/groups/ContactGroupStrategy.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/groups/ContactGroupStrategy.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/groups/ContactGroupStrategy.kt rename to app/src/main/kotlin/at/bitfire/davdroid/syncadapter/groups/ContactGroupStrategy.kt diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/groups/VCard4Strategy.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/groups/VCard4Strategy.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/groups/VCard4Strategy.kt rename to app/src/main/kotlin/at/bitfire/davdroid/syncadapter/groups/VCard4Strategy.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/AboutActivity.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/AboutActivity.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/AboutActivity.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/AboutActivity.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/AccountListFragment.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/AccountListFragment.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/AccountListFragment.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/AccountListFragment.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/AccountsActivity.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/AccountsActivity.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/AccountsActivity.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/AccountsActivity.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/AccountsDrawerHandler.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/AccountsDrawerHandler.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/AccountsDrawerHandler.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/AccountsDrawerHandler.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/AppSettingsActivity.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/AppSettingsActivity.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/AppSettingsActivity.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/AppSettingsActivity.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/AppWarningsManager.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/AppWarningsManager.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/AppWarningsManager.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/AppWarningsManager.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/BaseAccountsDrawerHandler.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/BaseAccountsDrawerHandler.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/BaseAccountsDrawerHandler.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/BaseAccountsDrawerHandler.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/DebugInfoActivity.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/DebugInfoActivity.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/DebugInfoActivity.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/DebugInfoActivity.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/ExceptionInfoFragment.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/ExceptionInfoFragment.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/ExceptionInfoFragment.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/ExceptionInfoFragment.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/HomeSetAdapter.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/HomeSetAdapter.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/HomeSetAdapter.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/HomeSetAdapter.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/NotificationUtils.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/NotificationUtils.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/NotificationUtils.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/NotificationUtils.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/OseAccountsDrawerHandler.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/OseAccountsDrawerHandler.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/OseAccountsDrawerHandler.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/OseAccountsDrawerHandler.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/PermissionsActivity.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/PermissionsActivity.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/PermissionsActivity.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/PermissionsActivity.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/PermissionsFragment.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/PermissionsFragment.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/PermissionsFragment.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/PermissionsFragment.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/TasksActivity.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/TasksActivity.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/TasksActivity.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/TasksActivity.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/TasksFragment.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/TasksFragment.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/TasksFragment.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/TasksFragment.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/UiUtils.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/UiUtils.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/UiUtils.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/UiUtils.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/account/AccountActivity.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/account/AccountActivity.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/account/AccountActivity.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/account/AccountActivity.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/account/AddressBooksFragment.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/account/AddressBooksFragment.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/account/AddressBooksFragment.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/account/AddressBooksFragment.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/account/CalendarsFragment.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/account/CalendarsFragment.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/account/CalendarsFragment.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/account/CalendarsFragment.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/account/CollectionInfoFragment.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/account/CollectionInfoFragment.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/account/CollectionInfoFragment.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/account/CollectionInfoFragment.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/account/CollectionsFragment.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/account/CollectionsFragment.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/account/CollectionsFragment.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/account/CollectionsFragment.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/account/CreateAddressBookActivity.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/account/CreateAddressBookActivity.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/account/CreateAddressBookActivity.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/account/CreateAddressBookActivity.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/account/CreateCalendarActivity.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/account/CreateCalendarActivity.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/account/CreateCalendarActivity.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/account/CreateCalendarActivity.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/account/CreateCollectionFragment.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/account/CreateCollectionFragment.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/account/CreateCollectionFragment.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/account/CreateCollectionFragment.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/account/DeleteCollectionFragment.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/account/DeleteCollectionFragment.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/account/DeleteCollectionFragment.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/account/DeleteCollectionFragment.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/account/RenameAccountFragment.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/account/RenameAccountFragment.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/account/RenameAccountFragment.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/account/RenameAccountFragment.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/account/SettingsActivity.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/account/SettingsActivity.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/account/SettingsActivity.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/account/SettingsActivity.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/account/WebcalFragment.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/account/WebcalFragment.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/account/WebcalFragment.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/account/WebcalFragment.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/account/WifiPermissionsActivity.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/account/WifiPermissionsActivity.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/account/WifiPermissionsActivity.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/account/WifiPermissionsActivity.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/intro/BatteryOptimizationsFragment.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/intro/BatteryOptimizationsFragment.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/intro/BatteryOptimizationsFragment.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/intro/BatteryOptimizationsFragment.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/intro/IntroActivity.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/intro/IntroActivity.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/intro/IntroActivity.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/intro/IntroActivity.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/intro/IntroFragmentFactory.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/intro/IntroFragmentFactory.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/intro/IntroFragmentFactory.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/intro/IntroFragmentFactory.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/intro/OpenSourceFragment.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/intro/OpenSourceFragment.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/intro/OpenSourceFragment.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/intro/OpenSourceFragment.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/intro/PermissionsIntroFragment.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/intro/PermissionsIntroFragment.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/intro/PermissionsIntroFragment.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/intro/PermissionsIntroFragment.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/intro/TasksIntroFragment.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/intro/TasksIntroFragment.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/intro/TasksIntroFragment.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/intro/TasksIntroFragment.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/intro/WelcomeFragment.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/intro/WelcomeFragment.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/intro/WelcomeFragment.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/intro/WelcomeFragment.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/setup/AccountDetailsFragment.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/setup/AccountDetailsFragment.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/setup/AccountDetailsFragment.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/setup/AccountDetailsFragment.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/setup/DefaultLoginCredentialsFragment.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/setup/DefaultLoginCredentialsFragment.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/setup/DefaultLoginCredentialsFragment.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/setup/DefaultLoginCredentialsFragment.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/setup/DefaultLoginCredentialsModel.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/setup/DefaultLoginCredentialsModel.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/setup/DefaultLoginCredentialsModel.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/setup/DefaultLoginCredentialsModel.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/setup/DetectConfigurationFragment.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/setup/DetectConfigurationFragment.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/setup/DetectConfigurationFragment.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/setup/DetectConfigurationFragment.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/setup/GoogleLoginFragment.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/setup/GoogleLoginFragment.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/setup/GoogleLoginFragment.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/setup/GoogleLoginFragment.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/setup/LoginActivity.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/setup/LoginActivity.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/setup/LoginActivity.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/setup/LoginActivity.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/setup/LoginCredentialsFragmentFactory.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/setup/LoginCredentialsFragmentFactory.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/setup/LoginCredentialsFragmentFactory.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/setup/LoginCredentialsFragmentFactory.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/setup/LoginModel.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/setup/LoginModel.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/setup/LoginModel.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/setup/LoginModel.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/setup/NextcloudLoginFlowFragment.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/setup/NextcloudLoginFlowFragment.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/setup/NextcloudLoginFlowFragment.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/setup/NextcloudLoginFlowFragment.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/webdav/AddWebdavMountActivity.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/webdav/AddWebdavMountActivity.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/webdav/AddWebdavMountActivity.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/webdav/AddWebdavMountActivity.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/webdav/WebdavMountsActivity.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/webdav/WebdavMountsActivity.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/webdav/WebdavMountsActivity.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/webdav/WebdavMountsActivity.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/widget/BindingAdapters.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/widget/BindingAdapters.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/widget/BindingAdapters.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/widget/BindingAdapters.kt diff --git a/app/src/main/java/at/bitfire/davdroid/ui/widget/CropImageView.kt b/app/src/main/kotlin/at/bitfire/davdroid/ui/widget/CropImageView.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/ui/widget/CropImageView.kt rename to app/src/main/kotlin/at/bitfire/davdroid/ui/widget/CropImageView.kt diff --git a/app/src/main/java/at/bitfire/davdroid/util/CompatUtils.kt b/app/src/main/kotlin/at/bitfire/davdroid/util/CompatUtils.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/util/CompatUtils.kt rename to app/src/main/kotlin/at/bitfire/davdroid/util/CompatUtils.kt diff --git a/app/src/main/java/at/bitfire/davdroid/util/ConcurrentUtils.kt b/app/src/main/kotlin/at/bitfire/davdroid/util/ConcurrentUtils.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/util/ConcurrentUtils.kt rename to app/src/main/kotlin/at/bitfire/davdroid/util/ConcurrentUtils.kt diff --git a/app/src/main/java/at/bitfire/davdroid/util/DavUtils.kt b/app/src/main/kotlin/at/bitfire/davdroid/util/DavUtils.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/util/DavUtils.kt rename to app/src/main/kotlin/at/bitfire/davdroid/util/DavUtils.kt diff --git a/app/src/main/java/at/bitfire/davdroid/util/PermissionUtils.kt b/app/src/main/kotlin/at/bitfire/davdroid/util/PermissionUtils.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/util/PermissionUtils.kt rename to app/src/main/kotlin/at/bitfire/davdroid/util/PermissionUtils.kt diff --git a/app/src/main/java/at/bitfire/davdroid/webdav/BlockingLifoQueue.kt b/app/src/main/kotlin/at/bitfire/davdroid/webdav/BlockingLifoQueue.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/webdav/BlockingLifoQueue.kt rename to app/src/main/kotlin/at/bitfire/davdroid/webdav/BlockingLifoQueue.kt diff --git a/app/src/main/java/at/bitfire/davdroid/webdav/CredentialsStore.kt b/app/src/main/kotlin/at/bitfire/davdroid/webdav/CredentialsStore.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/webdav/CredentialsStore.kt rename to app/src/main/kotlin/at/bitfire/davdroid/webdav/CredentialsStore.kt diff --git a/app/src/main/java/at/bitfire/davdroid/webdav/DavDocumentsProvider.kt b/app/src/main/kotlin/at/bitfire/davdroid/webdav/DavDocumentsProvider.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/webdav/DavDocumentsProvider.kt rename to app/src/main/kotlin/at/bitfire/davdroid/webdav/DavDocumentsProvider.kt diff --git a/app/src/main/java/at/bitfire/davdroid/webdav/DocumentState.kt b/app/src/main/kotlin/at/bitfire/davdroid/webdav/DocumentState.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/webdav/DocumentState.kt rename to app/src/main/kotlin/at/bitfire/davdroid/webdav/DocumentState.kt diff --git a/app/src/main/java/at/bitfire/davdroid/webdav/DocumentsCursor.kt b/app/src/main/kotlin/at/bitfire/davdroid/webdav/DocumentsCursor.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/webdav/DocumentsCursor.kt rename to app/src/main/kotlin/at/bitfire/davdroid/webdav/DocumentsCursor.kt diff --git a/app/src/main/java/at/bitfire/davdroid/webdav/HeadInfoDownloader.kt b/app/src/main/kotlin/at/bitfire/davdroid/webdav/HeadInfoDownloader.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/webdav/HeadInfoDownloader.kt rename to app/src/main/kotlin/at/bitfire/davdroid/webdav/HeadInfoDownloader.kt diff --git a/app/src/main/java/at/bitfire/davdroid/webdav/HeadResponse.kt b/app/src/main/kotlin/at/bitfire/davdroid/webdav/HeadResponse.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/webdav/HeadResponse.kt rename to app/src/main/kotlin/at/bitfire/davdroid/webdav/HeadResponse.kt diff --git a/app/src/main/java/at/bitfire/davdroid/webdav/RandomAccessCallback.kt b/app/src/main/kotlin/at/bitfire/davdroid/webdav/RandomAccessCallback.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/webdav/RandomAccessCallback.kt rename to app/src/main/kotlin/at/bitfire/davdroid/webdav/RandomAccessCallback.kt diff --git a/app/src/main/java/at/bitfire/davdroid/webdav/StreamingFileDescriptor.kt b/app/src/main/kotlin/at/bitfire/davdroid/webdav/StreamingFileDescriptor.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/webdav/StreamingFileDescriptor.kt rename to app/src/main/kotlin/at/bitfire/davdroid/webdav/StreamingFileDescriptor.kt diff --git a/app/src/main/java/at/bitfire/davdroid/webdav/ThumbnailCache.kt b/app/src/main/kotlin/at/bitfire/davdroid/webdav/ThumbnailCache.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/webdav/ThumbnailCache.kt rename to app/src/main/kotlin/at/bitfire/davdroid/webdav/ThumbnailCache.kt diff --git a/app/src/main/java/at/bitfire/davdroid/webdav/cache/Cache.kt b/app/src/main/kotlin/at/bitfire/davdroid/webdav/cache/Cache.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/webdav/cache/Cache.kt rename to app/src/main/kotlin/at/bitfire/davdroid/webdav/cache/Cache.kt diff --git a/app/src/main/java/at/bitfire/davdroid/webdav/cache/CacheUtils.kt b/app/src/main/kotlin/at/bitfire/davdroid/webdav/cache/CacheUtils.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/webdav/cache/CacheUtils.kt rename to app/src/main/kotlin/at/bitfire/davdroid/webdav/cache/CacheUtils.kt diff --git a/app/src/main/java/at/bitfire/davdroid/webdav/cache/DiskCache.kt b/app/src/main/kotlin/at/bitfire/davdroid/webdav/cache/DiskCache.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/webdav/cache/DiskCache.kt rename to app/src/main/kotlin/at/bitfire/davdroid/webdav/cache/DiskCache.kt diff --git a/app/src/main/java/at/bitfire/davdroid/webdav/cache/HeadResponseCache.kt b/app/src/main/kotlin/at/bitfire/davdroid/webdav/cache/HeadResponseCache.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/webdav/cache/HeadResponseCache.kt rename to app/src/main/kotlin/at/bitfire/davdroid/webdav/cache/HeadResponseCache.kt diff --git a/app/src/main/java/at/bitfire/davdroid/webdav/cache/MemoryCache.kt b/app/src/main/kotlin/at/bitfire/davdroid/webdav/cache/MemoryCache.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/webdav/cache/MemoryCache.kt rename to app/src/main/kotlin/at/bitfire/davdroid/webdav/cache/MemoryCache.kt diff --git a/app/src/main/java/at/bitfire/davdroid/webdav/cache/SegmentedCache.kt b/app/src/main/kotlin/at/bitfire/davdroid/webdav/cache/SegmentedCache.kt similarity index 100% rename from app/src/main/java/at/bitfire/davdroid/webdav/cache/SegmentedCache.kt rename to app/src/main/kotlin/at/bitfire/davdroid/webdav/cache/SegmentedCache.kt diff --git a/app/src/ose/java/at/bitfire/davdroid/OseFlavorModule.kt b/app/src/ose/kotlin/at/bitfire/davdroid/OseFlavorModule.kt similarity index 100% rename from app/src/ose/java/at/bitfire/davdroid/OseFlavorModule.kt rename to app/src/ose/kotlin/at/bitfire/davdroid/OseFlavorModule.kt diff --git a/app/src/test/java/at/bitfire/davdroid/ConcurrentUtilsTest.kt b/app/src/test/kotlin/at/bitfire/davdroid/ConcurrentUtilsTest.kt similarity index 100% rename from app/src/test/java/at/bitfire/davdroid/ConcurrentUtilsTest.kt rename to app/src/test/kotlin/at/bitfire/davdroid/ConcurrentUtilsTest.kt diff --git a/app/src/test/java/at/bitfire/davdroid/DavUtilsTest.kt b/app/src/test/kotlin/at/bitfire/davdroid/DavUtilsTest.kt similarity index 100% rename from app/src/test/java/at/bitfire/davdroid/DavUtilsTest.kt rename to app/src/test/kotlin/at/bitfire/davdroid/DavUtilsTest.kt diff --git a/app/src/test/java/at/bitfire/davdroid/webdav/BlockingLifoQueueTest.kt b/app/src/test/kotlin/at/bitfire/davdroid/webdav/BlockingLifoQueueTest.kt similarity index 100% rename from app/src/test/java/at/bitfire/davdroid/webdav/BlockingLifoQueueTest.kt rename to app/src/test/kotlin/at/bitfire/davdroid/webdav/BlockingLifoQueueTest.kt diff --git a/app/src/test/java/at/bitfire/davdroid/webdav/DiskCacheTest.kt b/app/src/test/kotlin/at/bitfire/davdroid/webdav/DiskCacheTest.kt similarity index 100% rename from app/src/test/java/at/bitfire/davdroid/webdav/DiskCacheTest.kt rename to app/src/test/kotlin/at/bitfire/davdroid/webdav/DiskCacheTest.kt -- GitLab From 81fbe2b7a6d8184ddf4ea494131b701dc48c7f23 Mon Sep 17 00:00:00 2001 From: Sunik Kupfer Date: Mon, 9 Oct 2023 12:34:19 +0200 Subject: [PATCH 10/13] Use worker names as work tags (bitfireAT/davx5#404) --- .../kotlin/at/bitfire/davdroid/syncadapter/PeriodicSyncWorker.kt | 1 + .../main/kotlin/at/bitfire/davdroid/syncadapter/SyncWorker.kt | 1 + 2 files changed, 2 insertions(+) diff --git a/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/PeriodicSyncWorker.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/PeriodicSyncWorker.kt index f253d97ff..0d3533741 100644 --- a/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/PeriodicSyncWorker.kt +++ b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/PeriodicSyncWorker.kt @@ -71,6 +71,7 @@ class PeriodicSyncWorker @AssistedInject constructor( NetworkType.CONNECTED ).build() val workRequest = PeriodicWorkRequestBuilder(interval, TimeUnit.SECONDS) + .addTag(workerName(account, authority)) .setInputData(arguments) .setConstraints(constraints) .build() diff --git a/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/SyncWorker.kt b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/SyncWorker.kt index cd618c4a6..63498aa76 100644 --- a/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/SyncWorker.kt +++ b/app/src/main/kotlin/at/bitfire/davdroid/syncadapter/SyncWorker.kt @@ -164,6 +164,7 @@ class SyncWorker @AssistedInject constructor( .setRequiredNetworkType(NetworkType.CONNECTED) // require a network connection .build() val workRequest = OneTimeWorkRequestBuilder() + .addTag(workerName(account, authority)) .setInputData(argumentsBuilder.build()) .setExpedited(OutOfQuotaPolicy.RUN_AS_NON_EXPEDITED_WORK_REQUEST) .setBackoffCriteria( -- GitLab From caf04c4c457173a3dc39c25cfe10dff574cd453c Mon Sep 17 00:00:00 2001 From: Ricki Hirner Date: Mon, 9 Oct 2023 12:40:35 +0200 Subject: [PATCH 11/13] Fetch translations from Transifex --- app/src/main/res/values-ar/strings.xml | 1 - app/src/main/res/values-bg/strings.xml | 8 -------- app/src/main/res/values-ca/strings.xml | 8 -------- app/src/main/res/values-cs/strings.xml | 5 ----- app/src/main/res/values-da/strings.xml | 5 ----- app/src/main/res/values-de/strings.xml | 6 ------ app/src/main/res/values-el/strings.xml | 3 --- app/src/main/res/values-en-rGB/strings.xml | 5 ----- app/src/main/res/values-es/strings.xml | 5 ----- app/src/main/res/values-eu/strings.xml | 8 -------- app/src/main/res/values-fa/strings.xml | 4 ---- app/src/main/res/values-fr/strings.xml | 5 ----- app/src/main/res/values-gl/strings.xml | 13 +++++-------- app/src/main/res/values-hr/strings.xml | 2 -- app/src/main/res/values-hu/strings.xml | 5 ----- app/src/main/res/values-it/strings.xml | 2 -- app/src/main/res/values-ja/strings.xml | 15 ++++++--------- app/src/main/res/values-ko/strings.xml | 5 ----- app/src/main/res/values-nb/strings.xml | 1 - app/src/main/res/values-nl/strings.xml | 12 ++++++------ app/src/main/res/values-pl/strings.xml | 8 -------- app/src/main/res/values-pt/strings.xml | 2 -- app/src/main/res/values-ro/strings.xml | 8 -------- app/src/main/res/values-ru/strings.xml | 13 +++++-------- app/src/main/res/values-sk/strings.xml | 2 -- app/src/main/res/values-sl/strings.xml | 1 - app/src/main/res/values-sr/strings.xml | 3 --- app/src/main/res/values-sv/strings.xml | 5 ----- app/src/main/res/values-szl/strings.xml | 2 -- app/src/main/res/values-tr/strings.xml | 1 - app/src/main/res/values-uk/strings.xml | 2 -- app/src/main/res/values-vi/strings.xml | 5 ----- app/src/main/res/values-zh-rTW/strings.xml | 2 -- app/src/main/res/values-zh/strings.xml | 13 +++++-------- fastlane/metadata/android/ro/full_description.txt | 5 +++++ 35 files changed, 32 insertions(+), 158 deletions(-) create mode 100644 fastlane/metadata/android/ro/full_description.txt diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 692b2b565..314384e88 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -196,7 +196,6 @@ حدث خطأ HTTP. حدث خطأ في الإدخال/الإخراج. عرض التفاصيل - اسم المستخدم كلمة المرور diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 34bd30c32..c6346cbff 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -128,9 +128,7 @@ Дарения Лични данни Известията са изключени. Няма да бъдете известявани за грешки при синхронизиране. - Няма връзка с интернет. Android няма да извършва синхронизация. Управление на връзките - Няма достатъчно свободно място. Android няма да извършва синхронизация. Управление на хранилището Включена е икономия на данни. Синхронизацията във фонов режим е ограничена. Икономия на трафик @@ -299,9 +297,6 @@ Разделени със запетая имена (SSID) на разрешените мрежи по Wi-Fi (празно за всички мрежи) Ограниченията на Wi-Fi по SSID изискват допълнителни настройки Управление - Свързаност през ВЧМ - Необходима е свързаност извън ВЧМ (препоръчително) - ВЧМ се счита като интернет Удостоверяване Повторно удостоверяване Изпълнява повторно влизане чрез OAuth @@ -396,9 +391,6 @@ Възникна грешка на HTTP. Възникна грешка с входа/изхода. Подробности - - Синхронизирането е спряно - Почти няма свободно пространство Дялове на WebDAV Използвана квота: %1$s / налична: %2$s diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 249cb758a..3a65c249b 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -128,9 +128,7 @@ Fer una donació Política de privacitat Notificacions desactivades. No es notificaran els errors de sincronització. - Sense connexió a internet. Android no executarà la sincronització Gestiona les connexions - Espai d\'emmagatzematge baix. L\'Android no executarà la sincronització. Gestiona l\'emmagatzematge S\'ha activat l\'estalviador de dades. La sincronització en segon pla està restringida. Gestió de l\'estalviador de dades @@ -299,9 +297,6 @@ Noms (SSID) separats per comes de les xarxes Wi-Fi permeses (deixeu-ho en blanc per a totes) La restricció per SSID de la Wi-Fi requereix una configuració addicional Gestió - Connexió VPN - Requerir connexió sense VPN (recomanat) - Les VPN compten com a connexió a Internet Autentificació Re-Autenticar Tornar a realitzar l\'inici de sessió amb OAuth @@ -396,9 +391,6 @@ S\'ha produït un error HTTP. S\'ha produït un error d\'E/S. Mostra els detalls - - Sincronització en pausa - Gairebé no queda espai lliure Muntatges WebDAV Quota utilitzada: %1$s / disponible: %2$s diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 833802e4f..8dbe52670 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -126,9 +126,7 @@ Obdarovat Ochrana soukromí Upozornění vypnuta. Nebudete upozorněni na chyby při synchronizaci. - Bez připojení k Internetu. Systém Android synchronizaci nespustí. Spravovat spojení - Zbývá málo místa na úložišti. Systém Android nespustí synchronizaci. Spravovat úložiště Vítejte v aplikaci DAVx⁵!\n\nNyní můžete přidat CalDAV/CardDAV účet. Automatická synchronizace v rámci celého systému je vypnutá @@ -379,9 +377,6 @@ Došlo k HTTP chybě. Došlo k chybě vstupu/výstupu. Zobrazit podrobnosti - - Synchronizace pozastavena - Nezbývá téměř žádné volné místo WebDAV připojení Využitá kvóta: %1$s / k dispozici: %2$s diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index fddd30d13..b02d0229d 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -128,9 +128,7 @@ Donation Privatlivs politik Notifikationer slået fra. Du vil ikke blive gjort opmærksom på synkroniserings-fejl. - Ingen internetforbindelse. Android kører ikke synkronisering. Aministrer forbindelser - Lagerplds lav. Android kører ikke synkronisering. Administrer lagerplads Gemning af data slået til. Synkronisering i baggrunden er begrænset. Administrer gemning af data @@ -381,9 +379,6 @@ Der er opstået en HTTP-fejl. Der er opstået en I/O-fejl. Vis detaljer - - Synkronisering i pause - Næsten ingen plads tilbage WebDAV monteringspunkter Mængde brugt: %1$s / tilgængelig: %2$s diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 44f5b206d..af277d089 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -128,9 +128,7 @@ Spenden Datenschutzerklärung Benachrichtigungen deaktiviert. Sie werden nicht über Fehler bei der Synchronisation informiert. - Keine Internet-Verbindung. Android wird die Synchronisierung daher nicht starten. Verbindungen steuern - Speicher knapp. Android wird keine Synchronisierung ausführen. Speicherplatz verwalten Datensparen aktiviert. Die Hintergrundsynchronisierung ist eingeschränkt. Datensparen verwalten @@ -299,7 +297,6 @@ Erlaubte WLAN-Namen (SSIDs, mit Komma getrennt, leer lassen für alle) WLAN-SSID-Einschränkung benötigt weitere Einstellungen Verwalten - VPN zählt als Internetverbindung Anmeldeinformationen Wieder anmelden Erneut mit OAuth anmelden @@ -394,9 +391,6 @@ Ein HTTP-Fehler ist aufgetreten. Ein E/A-Fehler ist aufgetreten. Details anzeigen - - Synchronisation pausiert - Kaum noch Speicherplatz vorhanden WebDAV-Zugänge Speicher belegt: %1$s / verfügbar: %2$s diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 70c8624e8..419d18a83 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -106,8 +106,6 @@ Κοινότητα Δωρεά Πολιτική απορρήτου - Δεν υπάρχει σύνδεση στο Διαδίκτυο. Το Android δεν θα πραγματοποιήσει συγχρονισμό. - Χαμηλός αποθηκευτικός χώρος. Το Android δεν θα εκτελέσει συγχρονισμό. Καλώς ήρθατε στο DAVx⁵!\n\nΜπορείτε να προσθέσετε τώρα έναν λογαριασμό CalDAV/CardDAV. Ο αυτόματος συγχρονισμός σε όλο το σύστημα είναι απενεργοποιημένος Ενεργοποίηση @@ -330,7 +328,6 @@ Παρουσιάστηκε σφάλμα HTTP. Παρουσιάστηκε σφάλμα I/O. Εμφάνιση λεπτομερειών - Βάσεις WebDAV Χώρος αποθήκευσης: %1$s / διαθέσιμα: %2$s diff --git a/app/src/main/res/values-en-rGB/strings.xml b/app/src/main/res/values-en-rGB/strings.xml index 529368a37..1e771b436 100644 --- a/app/src/main/res/values-en-rGB/strings.xml +++ b/app/src/main/res/values-en-rGB/strings.xml @@ -127,9 +127,7 @@ Donate Privacy policy Notifications disabled. You won\'t be notified about sync errors. - No Internet connectivity. Android will not run synchronisation. Manage connections - Storage space low. Android will not run synchronisation. Manage storage Data saver enabled. Background synchronisation is restricted. Manage data saver @@ -378,9 +376,6 @@ An HTTP error has occurred. An I/O error has occurred. Show details - - Synchronisation paused - Almost no free space left WebDAV mounts Quota used: %1$s / available: %2$s diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 62f8f1f48..1a8d4fa02 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -121,8 +121,6 @@ Comunidad Donar Reglamento de privacidad - No hay conexión a Internet. Android no se sincronizará. - Espacio de almacenamiento bajo. Android no ejecutará la sincronización. Bienvenido a DAVx⁵!\n\nAhora puedes añadir una cuenta CalDAV/CardDAV. Sincronización automática del sistema completo está deshabilitada Activar @@ -370,9 +368,6 @@ Ha ocurrido un error HTTP. Ha ocurrido un error I/O. Mostrar detalles - - Sincronización pausada - Casi no hay espacio disponible Montajes WebDAV Cuota usada: %1$s/ disponible: %2$s diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index bfd1b63ae..f25ce82bc 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -128,9 +128,7 @@ Dohaintza egin Pribatutasun gidalerroak Jakinarazpenak desgaituta. Ez zaitugu sinkronizazio-erroreei buruz jakinaraziko. - Ez dago internetik. Androidek ez du sinkronizaziorik egingo. Kudeatu konexioak - Biltegiratze-lekua baxua da. Androidek ez du sinkronizatuko. Kudeatu biltegia Datu-aurrezpena gaituta. Atzeko planoko sinkronizazioa murriztuko da. Kudeatu datu-aurrezpena @@ -299,9 +297,6 @@ Komaz banatutako izenak (SSIDak) baimendutako WiFi sareentzako (utzi hutsik denentzako) WiFi SSID murriztapenak ezarpen gehiago behar ditu Kudeatu - VPN konexioa - VPN ez den konexioa behar da (gomendatua) - VPN Interneteko konexio gisa balio du Autentifikazioa Berriro autentifikatu Egin OAuth saioa berriro @@ -396,9 +391,6 @@ HTTP errore bat gertatu da. S/I errore bat gertatu da. Erakutsi xehetasunak - - Sinkronizazioa geldituta - Ia ez dago leku librerik WebDAV muntaiak Erabilitako kuota: %1$s / eskuragarri: %2$s diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index 491d5e9d6..50f148ffb 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -126,9 +126,7 @@ کمک سیاست حفظ حریم خصوصی اعلان ها غیر فعال اند. از همگام سازی با خبر نخواهید شد. - بدون اتصال به اینترنت. اندروید همگام سازی را اجرا نمی کند. مدیریت ارتباطات - فضای خالی کم است. اندروید همگام سازی را اجرا نخواهد کرد. مدیریت حافظه محافظ داده فعال است. همگام سازی در پس زمینه محدود می شود. مدیریت محافظ داده @@ -377,8 +375,6 @@ خطای HTTP رخ داده است. خطای ورودی خروجی رخ داده است. نمایش جزئیات - - تقریبا فضای خالی وجود ندارد. اشتراک گذاری محتوا نام نمایشی diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 58494355f..5c1b86d54 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -127,9 +127,7 @@ Faire un don Politique de confidentialité Notifications désactivées. Vous ne serez pas averti des erreurs de synchronisation. - Pas de connectivité Internet. Android ne pourra pas exécuter la synchronisation. Gérer les connexions - L\'espace de stockage est presque plein. Android ne lancera pas la synchronisation. Gérer le stockage L\'économiseur de données est activé. La synchronisation en arrière-plan est limitée. Gérer l\'économiseur de données @@ -380,9 +378,6 @@ Une erreur HTTP est survenue. Une erreur I/O est survenue. Voir détails - - Synchronisation suspendue - L\'espace de stockage est presque plein Points de montage WebDAV Quota utitlisé : %1$s / disponible : %2$s diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index f038d4e9c..38b621951 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -128,9 +128,9 @@ Doar Política de Privacidade Notificacións desactivadas. Non verás os avisos de erro na sincr. - Sen conexión a internet. Android non sincronizará. + Sen conexión a Internet verificada. A sincronización podería fallar. Xestionar conexións - Queda pouco espazo, Android non executará a sincronización. + Queda pouco espazo de almacenaxe. Android non vai sincronizar os cambios locais inmediatamente, farao na próxima sincronización regular. Xestionar almacenaxe O aforro de datos está activado. A sincronización en segundo plano está restrinxida. Xestionar aforro de datos @@ -299,9 +299,9 @@ Nome das rede WiFi permitidas (SSIDs) separados por vírgulas (en branco para todas) A restrición WiFi SSID precisa máis axustes Xestionar - Conectividade VPN - Requerida conexión non-VPN (recomendado) - VPN conta como conexión a internet + A VPN require acceso a Internet + VPN, sen ter a conexión a Internet verificada, non é suficiente para lanzar a sincronización (recomendado) + VPN, sen ter a conexión a Internet verificada, é suficiente para lanzar a sincronización Autenticación Volver a autenticar Intentar acceder con OAuth outra vez @@ -396,9 +396,6 @@ Houbo un fallo HTTP. Houbo un fallo I/O. Mostrar detalles - - Sincronización en pausa - Case non queda espazo libre Montaxes WebDAV Cota utilizada: %1$s / dispoñible: %2$s diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index a57aa0b60..57122b3f7 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -105,7 +105,6 @@ FAQ Doniraj Pravila o zaštiti privatnosti - Nema internet veze. Android neće pokrenuti sinkronizaciju. Dobrodošli u DAVx⁵!\n\nSada možete dodati CalDAV/CardDAV račun. Automatska sinkronizacija je onemogućena na razini sustava Omogući @@ -326,7 +325,6 @@ Dogodila se HTTP greška. Dogodila se I/O greška. Prikaži detalje - Korisničko ime Lozinka diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 5ddc81aae..e82d8b8a6 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -128,9 +128,7 @@ Támogatás Adatvédelmi politika Az értesítések tiltva vannak. A szinkronizálási hibákról nem fog értesítést kapni. - Nincs Internet-elérés. Az Android rendszer nem fogja elvégezni a szinkronizálst Kapcsolatok kezelése - Kevés a rendelkezésre álló tárhely. A rendszer nem fog szinkronizálást végezni. Tárhely kezelése Az adatcsökkentés bekapcsolva. A háttérben futó szinkronizálás korlátozva van. Adatcsökkentés kezelése @@ -386,9 +384,6 @@ HTTP hiba történt. I/O hiba történt. Részletek megjelenítése - - A szinkronizáció felfüggesztve - A tárhely majdnem teljesen betelt WebDAV kötetek Kvóta: felhasználva %1$s, keret %2$s diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 5bdc59078..72a4d104b 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -117,7 +117,6 @@ Domande Frequenti Donazione Politica sulla riservatezza - Nessuna connessione Internet. Android non eseguirà la sincronizzazione. Benvenuto a DAVx⁵!\n\nÈ ora possibile aggiungere account CalDAV/CardDAV. La sincronizzazione automatica dell\'intero sistema è disabilitata Attiva @@ -351,7 +350,6 @@ Lasciare vuoto per non creare un promemoria predefinito. Si è verificato un errore HTTP. Si è verificato un errore di I/O. Mostra dettagli - Installazioni WebDAV Quantità utilizzata: %1$s / disponibile: %2$s diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 1d0a95e9e..9b09c11d5 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -128,9 +128,9 @@ 寄付 プライバシーポリシー 通知が無効です。同期エラーが発生しても通知されません。 - インターネット接続がありません。 Android は同期を実行しません。 + 検証されたインターネット接続がありません。同期が実行されない場合があります。 接続を管理 - 残りのストレージ容量が少なくなっています。Android は同期を実行しません。 + ストレージの容量が残りわずかです。Android はローカルの変更を即座に同期しませんが、次の通常サイクルで同期します。 ストレージを管理 データサーバーが有効です。バックグラウンド同期が制限されています データサーバーを管理 @@ -299,9 +299,9 @@ 利用可能な WiFi ネットワークのカンマ区切りの名前 (SSID) (空白にするとすべて) WiFi SSID 制限にはさらに設定が必要です 管理 - VPN 接続 - VPN でない接続を要求 (推奨) - VPN を一般のインターネット接続として扱う + インターネット接続のない VPN + 検証されたインターネット接続のない VPN では同期を実行しません (推奨) + 検証されたインターネット接続のない VPN でも同期を実行します 認証 再認証 もう一度 OAuth ログインを実行 @@ -394,9 +394,6 @@ HTTP エラーが発生しました I/O エラーが発生しました 詳細を表示 - - 同期が一時停止しました - ほとんど空き容量が残っていません WebDAV マウント 割り当て 使用中: %1$s / 利用可能: %2$s @@ -432,7 +429,7 @@ サーバーから無効な連絡先を受信しました サーバーから無効な予定を受信しました サーバーから無効なタスクを受信しました - 1 または複数の無効なリソースを無視します + 1 件または複数の無効なリソースを無視します DAVx⁵: 接続セキュリティ DAVx⁵ が未知の証明書を検出しました。信頼しますか? diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index a76e34b3e..32fcf9966 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -119,8 +119,6 @@ 커뮤니티 기부 개인 정보 보호 정책 - 인터넷에 연결할 수 없습니다. Android가 동기화를 실행하지 않습니다. - 저장 공간이 부족합니다. Android가 동기화를 실행하지 않습니다. DAVx⁵에 오신 것을 환영 합니다!/n/n 당신은 CalDAV/CardDAV 계정을 지금 추가 할 수 있습니다. 시스템 전체 자동 동기화가 비활성화됩니다. @@ -365,9 +363,6 @@ HTTP 에러가 발생 하였습니다. I/O 에러가 발생 하였습니다. 자세히 - - 동기화가 일시 중지됨 - 사용 가능한 공간이 거의 없음 WebDAV mounts 사용된 할당량: %1$s / 사용가능한 할당량: %2$s diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index b5781410e..f0629b4d8 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -193,7 +193,6 @@ En HTTP-feil har inntruffet. En I/O-feil har inntruffet. Vis detaljer - Brukernavn Passord diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 686af1896..88478d646 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -69,7 +69,7 @@ jtx Board-rechten Geen taak-, kalender- en notitiesync (niet geïnstalleerd) Geen taak-, kalender- en notitiesync - Taak-, kalender- en notitiesync mogelijk + Taak-, kalender- en notitie-sync mogelijk OpenTasks rechten Rechten voor taken Geen taak-sync (niet geïnstalleerd) @@ -128,9 +128,9 @@ Doneren Privacybeleid Meldingen uitgeschakeld. U krijgt geen meldingen over synchronisatiefouten. - Geen internetverbinding. Android synchroniseert niet. + Geen gevalideerde internetverbinding. Synchronisatie wordt mogelijk niet uitgevoerd. Verbindingen beheren - Er is te weinig opslagruimte. Android zal niet synchroniseren. + Weinig opslagruimte. Android zal lokale wijzigingen niet onmiddellijk synchroniseren, maar tijdens de volgende reguliere synchronisatie. Opslag beheren Gegevensbesparing ingeschakeld. Synchronisatie op de achtergrond is beperkt. Beheer van gegevensbesparing @@ -299,6 +299,9 @@ Door komma\'s gescheiden namen (SSID\'s) van toegestane WiFi-netwerken (laat leeg voor alle) Beperking WiFi-SSID vereist verdere instellingen Beheren + VPN vereist onderliggend internet + VPN zonder onderliggende gevalideerde internetverbinding is niet voldoende om synchronisatie uit te voeren (aanbevolen) + VPN zonder onderliggende gevalideerde internetverbinding is voldoende om synchronisatie uit te voeren Verificatie Opnieuw authenticeren Voer OAuth-aanmelding opnieuw uit @@ -393,9 +396,6 @@ Een HTTP-fout is opgetreden. Een I/O fout is opgetreden. Details weergeven - - Synchroniseren is onderbroken - Bijna geen vrije ruimte meer WebDAV-koppelingen Quotum gebruikt: %1$s / Beschikbaar: %2$s diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index cc52a95bb..7b04fd0a7 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -128,9 +128,7 @@ Wesprzyj finansowo Polityka prywatności Powiadomienia wyłączone. Nie będziesz otrzymywać powiadomień o błędach synchronizacji. - Brak połączenia z Internetem. Android nie wykona synchronizacji. Zarządzaj połączeniami - Za mało miejsca do przechowywania. Android nie uruchomi synchronizacji. Zarządzaj pamięcią Włączono oszczędzanie danych. Synchronizacja w tle jest ograniczona. Zarządzaj oszczędzaniem danych @@ -299,9 +297,6 @@ Oddzielone przecinkami nazwy (SSID) dozwolonych sieci Wi‑Fi (pozostaw puste dla wszystkich) Ograniczenie WiFi SSID wymaga dalszych ustawień Zarządzaj - Łączność VPN - Wymagane połączenie inne niż VPN (zalecane) - VPN zaliczyć jako połączenie internetowe Uwierzytelnianie Uwierzytelnij ponownie Wykonaj ponownie logowanie OAuth @@ -400,9 +395,6 @@ Wystąpił błąd HTTP. Wystąpił błąd we/wy. Pokaż szczegóły - - Synchronizacja wstrzymana - Prawie nie ma wolnego miejsca Punkty linkowania WebDAV Limit użyty: %1$s / dostępny: %2$s diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 619ca752f..18efa51be 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -95,7 +95,6 @@ Perguntas fequentes Doações Política de privacidade - Sem conexão com a Internet. O Android não executará a sincronização. Bem-vindo ao DAVx⁵!\n\nVocê pode adicionar uma conta CalDAV/CardDAV agora. A sincronização automática pelo sistema está desativada Ativar @@ -299,7 +298,6 @@ Ocorreu um erro de HTTP. Ocorreu um erro de leitura/gravação. Mostrar detalhes - Partilhar conteúdo Nome do usuário diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 28cd84d83..64827abb6 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -128,9 +128,7 @@ Donează Politica de confidențialitate Notificări dezactivate. Nu vei fi notificat despre erorile de sincronizare. - Fără conexiune la internet. Android nu va rula sincronizarea. Gestionează conexiunile - Spațiu de depozitare redus. Android nu va rula sincronizarea. Gestionează stocarea Economizorul de date este activat. Sincronizarea în fundal este restricționată. Gestionează economizorul de date @@ -299,9 +297,6 @@ Nume separate prin virgulă (SSID) ale rețelelor WiFi permise (lasă necompletat pentru toate) Restricția SSID WiFi necesită setări suplimentare Gestionează - Conectivitate VPN - Este necesară o conexiune non-VPN (recomandat) - VPN contează ca conexiune la internet Autentificare Reautentificare Efectuează din nou autentificarea OAuth @@ -398,9 +393,6 @@ A apărut o eroare HTTP. A apărut o eroare I/O. Afișează detaliile - - Sincronizarea a fost întreruptă - Aproape că nu a mai rămas spațiu liber Montări WebDAV Cotă utilizată: %1$s / disponibilă: %2$s diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index b194a3b53..b1756fc12 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -128,9 +128,9 @@ Пожертвовать Политика конфиденциальности Уведомления отключены. Вы не будете получать уведомления об ошибках синхронизации. - Нет подключения к интернету. Android не будет выполнять синхронизацию. + Нет проверенного подключения к интернету. Синхронизация может не выполняться. Управление подключениями - Место для хранения мало. Android не будет выполнять синхронизацию. + Недостаточно памяти для хранения данных. Android будет синхронизировать локальные изменения не сразу, а во время следующей регулярной синхронизации. Управление хранилищем Экономия трафика включена. Фоновая синхронизация ограничена. Экономия трафика @@ -299,9 +299,9 @@ Имена (SSID) разрешенных сетей WiFi, разделенные запятыми (оставьте пустым для всех) Ограничение WiFi SSID требует дополнительных настроек Управлять - VPN-подключение - Подключение без VPN (рекомендуется) - VPN считается подключением к интернету + Для работы VPN требуется основной интернет + VPN без проверенного подключения к интернету недостаточно для синхронизации (рекомендуется) + Для синхронизации достаточно VPN без проверенного подключения к интернету. Аутентификация Повторная аутентификация Выполните вход через OAuth повторно @@ -400,9 +400,6 @@ Произошла ошибка HTTP Произошла ошибка ввода/вывода. Показать детали - - Синхронизация приостановлена - Почти не осталось свободного места Точки монтирования WebDAV Использованная квота: %1$s / доступно: %2$s diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index ea339cd92..bfb296890 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -43,7 +43,6 @@ FAQ Darovať Zásady bezpečnosti - Žiadne pripojenie do internetu. Android nestpustí synchronizáciu. Vitajte v programe DAVx⁵!\n\nTeraz môžete pridať používateľský účet pre CalDAV/CardDAV . Automatická synchronizácia platná pre celý systém je zakázaná Povoliť @@ -215,7 +214,6 @@ Vyskytla sa HTTP chyba. Vyskytla sa V/V chyba. Zobraziť detaily - Meno používateľa Heslo diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index 7cbb33064..4e451538f 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -234,7 +234,6 @@ Zgodila se je HTTP napaka. I/O napaka se je zgodila. Pokaži podrobnosti - Uporabniško ime Geslo diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index 1b1939c26..048317116 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -120,8 +120,6 @@ Донирај Политика приватности Обавештења су онемогућена. Нећете бити обавештени о проблемима са синхронизацијом. - Нема везе са интернетом. Андроид неће вршити синхронизацију. - Недовољно слободног простора. Андроид неће вршити синхронизацију. Управљајте складиштем Добро дошли у ДАВдроид!\n\nМожете сада да додате КалДАВ/КардДАВ налог. Синхронизација је системски искључена @@ -329,7 +327,6 @@ Десила се ХТТП грешка. Десила се У/И грешка. Прикажи детаље - Име за приказ Корисничко име diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 4e3e7c2c8..31ab1fe24 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -127,9 +127,7 @@ Donera Integritetspolicy Notifieringar avstängda. Du kommer inte bli informerad om synkroniseringsfel. - Ingen internetanslutning. Android kommer inte att köra synkronisering. Hantera anslutningar - Lagringsutrymme lågt. Android kommer inte att köra synkronisering. Hantera lagring Begränsad data-synkronisering aktiverad. Begränsad bakgrundssynkronisering. Hantera begränsad data-synkronisering @@ -378,9 +376,6 @@ Ett HTTP-fel har uppstått. Ett I/O-fel har uppstått. Visa detaljer - - Synkronisering pausad - Nästan inget ledigt utrymme kvar WebDAV-fästen Använd kvot: %1$s / tillgängligt: %2$s diff --git a/app/src/main/res/values-szl/strings.xml b/app/src/main/res/values-szl/strings.xml index d3f51f3fc..91fbf0d4d 100644 --- a/app/src/main/res/values-szl/strings.xml +++ b/app/src/main/res/values-szl/strings.xml @@ -62,7 +62,6 @@ Pytania i ôdpowiedzi Dowka Polityka prywatności - Brak połōnczynio z internetym. Android niy bydzie synchrōnizować. Witōmy w DAVx⁵!\n\nMożesz teroz przidać kōnto CalDAV/CardDAV. Autōmatyczno synchrōnizacyjo dlo cołkigo systymu je zastawiōno Włōncz @@ -232,7 +231,6 @@ Trefiōł sie błōnd HTTP. Trefiōł sie błōnd I/O. Pokoż informacyje - Miano używocza Hasło diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index d84f31521..c68d60d77 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -121,7 +121,6 @@ Bir HTTP hatası oluştu. Bir I/O hatası oluştu. Detayları göster - Kullanıcı adı Parola diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 7c97a9721..3c07342af 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -75,7 +75,6 @@ Питання/Відповіді Підтримка Політика конфіденційності - Відсутнє підключення до інтернету. Android не може розпочати синхронізацію. Вітаємо у DAVx⁵!\n\nТепер можете додавати облікові записи CalDAV/CardDAV. Автоматичну синхронізацію вимкнено зі сторони системи Увімкнути @@ -273,7 +272,6 @@ Трапилась помилка HTTP. Трапилась помилка I/O. Показати подробиці - Ім\'я користувача Пароль diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index e35eb3829..2f3c18f88 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -121,8 +121,6 @@ Cộng đồng Quyên góp Chính sách riêng tư - Không có kết nối internet. Android sẽ không chạy đồng bộ hoá. - Dung lượng bộ nhớ thấp. Android sẽ không thực hiện đồng bộ. Chào mừng đến DAVx⁵!\n\nBạn có thể thêm một tài khoản CalDAV/CardDAV ngay. Đồng bộ hoá tự động trên toàn hệ thống bị tắt Bật @@ -366,9 +364,6 @@ Đã xảy ra lỗi HTTP. Đã xảy ra lỗi I/O. Hiện chi tiết - - Đã tạm dừng đồng bộ - Không còn dung lượng trống Nơi gắn WebDAV Hạn mức đã sử dụng: %1$s / có sẵn: %2$s diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 124847692..6364c5c4f 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -68,7 +68,6 @@ 常見問答 贊助我們 隱私權政策 - 網際網絡沒有連接。Android不會進行同步。 歡迎使用 DAVx⁵!\n\n您現在可以新增 CalDAV/CardDAV 帳號 操作系統的自動同步被關閉了 啟用 @@ -239,7 +238,6 @@ HTTP 發生錯誤 讀寫錯誤 顯示細節 - 使用者帳號 密碼 diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 0445d0cb5..c99cabc72 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -128,9 +128,9 @@ 捐助 隐私政策 已禁用通知。你将不会收到同步出错的通知 - 无网络连接。Android 将不会运行同步。 + 没有经验证的互联网连接。同步可能不会运行 管理连接 - 存储空间低。Android 将不会运行同步。 + 低存储空间。Android 不会立即同步本地更改,但会在下次定期同步时进行 管理存储 启用了流量节省程序。后台同步受限 管理流量节省程序 @@ -299,9 +299,9 @@ 请用半角逗号分隔允许同步的 WiFi 网络名(SSID),留空则允许任意网络 WiFi SSID 限制需要进一步设置 管理 - VPN 连接性 - 必须使用非 VPN 连接(推荐) - 将 VPN 算作互联网连接 + VPN 需要底层互联网 + 没有底层验证的互联网连接的 VPN 不足以运行同步(推荐选项) + 没有底层验证的互联网连接的 VPN 足以运行同步了 认证 重新验证身份 再次进行 OAuth 登录 @@ -394,9 +394,6 @@ 出现 HTTP 错误 出现 I/O 错误 显示详情 - - 同步已暂停 - 几乎没有剩余的空间了 WebDAV 文件系统 已用配额:%1$s/可用容量:%2$s diff --git a/fastlane/metadata/android/ro/full_description.txt b/fastlane/metadata/android/ro/full_description.txt new file mode 100644 index 000000000..70c882a82 --- /dev/null +++ b/fastlane/metadata/android/ro/full_description.txt @@ -0,0 +1,5 @@ +DAVx⁵ este o aplicație de gestionare și sincronizare CalDAV/CardDAV pentru Android care se integrează în mod nativ cu aplicațiile de calendar/contacte Android. + +Utilizează-l cu propriul server sau cu o gazdă de încredere pentru a păstra contactele, evenimentele și sarcinile sub control. + +Pentru mai multe informații și o listă de servere/servicii testate, aruncă o privire pe site-ul Web. \ No newline at end of file -- GitLab From 088136ded7c174585226dd418fe3294d7d064aba Mon Sep 17 00:00:00 2001 From: Ricki Hirner Date: Mon, 9 Oct 2023 12:38:07 +0200 Subject: [PATCH 12/13] Version bump to 4.3.8 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 7c63ceb53..ab3f1b215 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -19,7 +19,7 @@ android { applicationId "at.bitfire.davdroid" versionCode 403080000 - versionName '4.3.8-alpha.1' + versionName '4.3.8' buildConfigField "long", "buildTime", System.currentTimeMillis() + "L" -- GitLab From 062e086348e276d3851ba24787887fe10d50202f Mon Sep 17 00:00:00 2001 From: Fahim Salam Chowdhury Date: Tue, 31 Oct 2023 19:33:19 +0600 Subject: [PATCH 13/13] convert IdentityProvider impl from java to kotlin to fix proguard issue --- .../authorization/IdentityProvider.java | 158 ------------------ .../authorization/IdentityProvider.kt | 108 ++++++++++++ 2 files changed, 108 insertions(+), 158 deletions(-) delete mode 100644 app/src/main/kotlin/at/bitfire/davdroid/authorization/IdentityProvider.java create mode 100644 app/src/main/kotlin/at/bitfire/davdroid/authorization/IdentityProvider.kt diff --git a/app/src/main/kotlin/at/bitfire/davdroid/authorization/IdentityProvider.java b/app/src/main/kotlin/at/bitfire/davdroid/authorization/IdentityProvider.java deleted file mode 100644 index c4bd3d78d..000000000 --- a/app/src/main/kotlin/at/bitfire/davdroid/authorization/IdentityProvider.java +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Copyright MURENA SAS 2022, 2023 - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package at.bitfire.davdroid.authorization; - -import android.net.Uri; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import net.openid.appauth.AuthorizationServiceConfiguration; -import net.openid.appauth.AuthorizationServiceConfiguration.RetrieveConfigurationCallback; - -import java.util.Objects; - -import at.bitfire.davdroid.BuildConfig; - -/** - * An abstraction of identity providers, containing all necessary info for the demo app. - */ -public class IdentityProvider { - - public static final IdentityProvider MURENA = new IdentityProvider( - "https://accounts.eeo.one/auth/realms/eeo.one/.well-known/openid-configuration", - null, - null, - BuildConfig.MURENA_CLIENT_ID, - BuildConfig.MURENA_CLIENT_SECRET, - BuildConfig.MURENA_REDIRECT_URI + ":/redirect", - "openid address profile email phone roles offline_access web-origins microprofile-jwt", - null - ); - - public static final IdentityProvider GOOGLE = new IdentityProvider( - "https://accounts.google.com/.well-known/openid-configuration", - null, - null, - BuildConfig.GOOGLE_CLIENT_ID, - null, - BuildConfig.GOOGLE_REDIRECT_URI + ":/oauth2redirect", - "openid profile email https://www.googleapis.com/auth/carddav https://www.googleapis.com/auth/calendar https://mail.google.com/", - null - ); - - public static final IdentityProvider YAHOO = new IdentityProvider( - "https://api.login.yahoo.com/.well-known/openid-configuration", - null, - null, - BuildConfig.YAHOO_CLIENT_ID, - null, - BuildConfig.APPLICATION_ID + "://oauth2redirect", - "openid openid2 profile email mail-w sdct-w ycal-w", - null - ); - - @Nullable - private final Uri mDiscoveryEndpoint; - - @Nullable - private final Uri mAuthEndpoint; - - @Nullable - private final Uri mTokenEndpoint; - @NonNull - private final String mClientId; - - @Nullable - private final String mClientSecret; - @NonNull - private final Uri mRedirectUri; - - @Nullable - private final String mScope; - - @Nullable - private final String mUserInfoEndpoint; - - IdentityProvider( - @Nullable String discoveryEndpoint, - @Nullable String authEndpoint, - @Nullable String tokenEndpoint, - @NonNull String clientId, - @Nullable String clientSecret, - @NonNull String redirectUri, - @Nullable String scope, - @Nullable String userInfoEndpoint) { - if (discoveryEndpoint == null && - (authEndpoint == null || tokenEndpoint == null)) { - throw new IllegalArgumentException( - "the discovery endpoint or the auth and token endpoints must be specified"); - } - - this.mDiscoveryEndpoint = retrieveUri(discoveryEndpoint); - this.mAuthEndpoint = retrieveUri(authEndpoint); - this.mTokenEndpoint = retrieveUri(tokenEndpoint); - this.mClientId = clientId; - this.mClientSecret = clientSecret; - this.mRedirectUri = Objects.requireNonNull(retrieveUri(redirectUri)); - this.mScope = scope; - this.mUserInfoEndpoint = userInfoEndpoint; - } - - @NonNull - public String getClientId() { - return mClientId; - } - - @Nullable - public String getClientSecret() { - return mClientSecret; - } - - @NonNull - public Uri getRedirectUri() { - return mRedirectUri; - } - - @NonNull - public String getScope() { - return mScope; - } - - @Nullable - public String getUserInfoEndpoint() { - return mUserInfoEndpoint; - } - - public void retrieveConfig(RetrieveConfigurationCallback callback) { - if (mDiscoveryEndpoint != null) { - AuthorizationServiceConfiguration.fetchFromUrl(mDiscoveryEndpoint, callback); - } else { - AuthorizationServiceConfiguration config = - new AuthorizationServiceConfiguration(mAuthEndpoint, mTokenEndpoint, null); - callback.onFetchConfigurationCompleted(config, null); - } - } - - @Nullable - private Uri retrieveUri(@Nullable String value) { - if (value == null) { - return null; - } - return Uri.parse(value); - } -} diff --git a/app/src/main/kotlin/at/bitfire/davdroid/authorization/IdentityProvider.kt b/app/src/main/kotlin/at/bitfire/davdroid/authorization/IdentityProvider.kt new file mode 100644 index 000000000..07141598e --- /dev/null +++ b/app/src/main/kotlin/at/bitfire/davdroid/authorization/IdentityProvider.kt @@ -0,0 +1,108 @@ +/* + * Copyright MURENA SAS 2022, 2023 + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package at.bitfire.davdroid.authorization + +import android.net.Uri +import at.bitfire.davdroid.BuildConfig +import net.openid.appauth.AuthorizationServiceConfiguration +import net.openid.appauth.AuthorizationServiceConfiguration.RetrieveConfigurationCallback + +/** + * An abstraction of identity providers, containing all necessary info for the demo app. + */ +enum class IdentityProvider( + discoveryEndpoint: String?, + authEndpoint: String?, + tokenEndpoint: String?, + clientId: String, + clientSecret: String?, + redirectUri: String, + scope: String, + userInfoEndpoint: String? +) { + MURENA( + "https://accounts.eeo.one/auth/realms/eeo.one/.well-known/openid-configuration", + null, + null, + BuildConfig.MURENA_CLIENT_ID, + BuildConfig.MURENA_CLIENT_SECRET, + BuildConfig.MURENA_REDIRECT_URI + ":/redirect", + "openid address profile email phone roles offline_access web-origins microprofile-jwt", + null + ), + GOOGLE( + "https://accounts.google.com/.well-known/openid-configuration", + null, + null, + BuildConfig.GOOGLE_CLIENT_ID, + null, + BuildConfig.GOOGLE_REDIRECT_URI + ":/oauth2redirect", + "openid profile email https://www.googleapis.com/auth/carddav https://www.googleapis.com/auth/calendar https://mail.google.com/", + null + ), + YAHOO( + "https://api.login.yahoo.com/.well-known/openid-configuration", + null, + null, + BuildConfig.YAHOO_CLIENT_ID, + null, + BuildConfig.APPLICATION_ID + "://oauth2redirect", + "openid openid2 profile email mail-w sdct-w ycal-w", + null + ); + + private val mDiscoveryEndpoint: Uri? + private val mAuthEndpoint: Uri? + private val mTokenEndpoint: Uri? + + val clientId: String + val clientSecret: String? + val redirectUri: Uri + val scope: String + val userInfoEndpoint: String? + + init { + require( + !(discoveryEndpoint == null && + (authEndpoint == null || tokenEndpoint == null)) + ) { "the discovery endpoint or the auth and token endpoints must be specified" } + + mDiscoveryEndpoint = retrieveUri(discoveryEndpoint) + mAuthEndpoint = retrieveUri(authEndpoint) + mTokenEndpoint = retrieveUri(tokenEndpoint) + this.clientId = clientId + this.clientSecret = clientSecret + this.redirectUri = + retrieveUri(redirectUri) ?: throw IllegalArgumentException("invalid redirect uri") + this.scope = scope + this.userInfoEndpoint = userInfoEndpoint + } + + fun retrieveConfig(callback: RetrieveConfigurationCallback) { + if (mDiscoveryEndpoint != null) { + AuthorizationServiceConfiguration.fetchFromUrl(mDiscoveryEndpoint, callback) + } else { + val config = AuthorizationServiceConfiguration(mAuthEndpoint!!, mTokenEndpoint!!, null) + callback.onFetchConfigurationCompleted(config, null) + } + } + + private fun retrieveUri(value: String?): Uri? { + return if (value == null) { + null + } else Uri.parse(value) + } +} \ No newline at end of file -- GitLab