Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/bitfireAT/davx5-ose.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRicki Hirner <hirner@bitfire.at>2022-09-27 13:04:53 +0300
committerRicki Hirner <hirner@bitfire.at>2022-09-27 14:03:08 +0300
commit2b16cd6365d0773572ef4e37a2d5ff8ac747ce64 (patch)
treec746037b53da86973f03e6197a914a40fe7f8f6f
parent8a7f51b7055f9c0878908b716059ea23a3a8c7cf (diff)
Lint
-rw-r--r--app/build.gradle5
-rw-r--r--app/src/androidTest/AndroidManifest.xml3
-rw-r--r--app/src/main/AndroidManifest.xml4
-rw-r--r--app/src/main/java/at/bitfire/davdroid/db/AppDatabase.kt2
-rw-r--r--app/src/main/java/at/bitfire/davdroid/settings/AccountSettings.kt107
-rw-r--r--app/src/main/java/at/bitfire/davdroid/webdav/DavDocumentsProvider.kt12
6 files changed, 70 insertions, 63 deletions
diff --git a/app/build.gradle b/app/build.gradle
index 47e3f0fe..96427eed 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -51,6 +51,9 @@ android {
dataBinding = true
}
+ // Java namespace for our classes (not to be confused with Android package ID)
+ namespace 'at.bitfire.davdroid'
+
flavorDimensions "distribution"
productFlavors {
ose {
@@ -158,7 +161,7 @@ dependencies {
androidTestImplementation 'androidx.test:rules:1.4.0'
androidTestImplementation 'androidx.test.ext:junit-ktx:1.1.3'
androidTestImplementation "com.squareup.okhttp3:mockwebserver:${versions.okhttp}"
- androidTestImplementation 'io.mockk:mockk-android:1.12.3'
+ androidTestImplementation 'io.mockk:mockk-android:1.13.1'
androidTestImplementation 'junit:junit:4.13.2'
testImplementation "com.squareup.okhttp3:mockwebserver:${versions.okhttp}"
diff --git a/app/src/androidTest/AndroidManifest.xml b/app/src/androidTest/AndroidManifest.xml
index 4e6c7759..986f2f8a 100644
--- a/app/src/androidTest/AndroidManifest.xml
+++ b/app/src/androidTest/AndroidManifest.xml
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<manifest package="at.bitfire.davdroid"
- xmlns:android="http://schemas.android.com/apk/res/android"
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:installLocation="internalOnly">
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index da80a629..25664fb8 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<manifest package="at.bitfire.davdroid"
- xmlns:android="http://schemas.android.com/apk/res/android"
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:installLocation="internalOnly">
@@ -9,6 +8,7 @@
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.INTERNET"/>
+ <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/>
<uses-permission android:name="android.permission.READ_SYNC_STATS"/>
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"/>
diff --git a/app/src/main/java/at/bitfire/davdroid/db/AppDatabase.kt b/app/src/main/java/at/bitfire/davdroid/db/AppDatabase.kt
index fc56d4c6..228e684d 100644
--- a/app/src/main/java/at/bitfire/davdroid/db/AppDatabase.kt
+++ b/app/src/main/java/at/bitfire/davdroid/db/AppDatabase.kt
@@ -251,7 +251,7 @@ abstract class AppDatabase: RoomDatabase() {
writer.append("$tableName: ")
db.query("SELECT COUNT(*) FROM $tableName").use { cursor ->
if (cursor.moveToNext())
- writer.append("${cursor.getInt(0)} row(s), data not listed here\n\n")
+ writer.append("${cursor.getInt(0)} row(s), data not listed here\n\n")
}
} else {
writer.append("$tableName\n")
diff --git a/app/src/main/java/at/bitfire/davdroid/settings/AccountSettings.kt b/app/src/main/java/at/bitfire/davdroid/settings/AccountSettings.kt
index 8d414c12..48da8442 100644
--- a/app/src/main/java/at/bitfire/davdroid/settings/AccountSettings.kt
+++ b/app/src/main/java/at/bitfire/davdroid/settings/AccountSettings.kt
@@ -507,67 +507,72 @@ class AccountSettings(
* convert legacy unknown properties to the current format.
*/
private fun update_11_12() {
- if (ContextCompat.checkSelfPermission(context, android.Manifest.permission.WRITE_CALENDAR) == PackageManager.PERMISSION_GRANTED)
- context.contentResolver.acquireContentProviderClient(CalendarContract.AUTHORITY)?.use { provider ->
- // Attention: CalendarProvider does NOT limit the results of the ExtendedProperties query
- // to the given account! So all extended properties will be processed number-of-accounts times.
- val extUri = ExtendedProperties.CONTENT_URI.asSyncAdapter(account)
-
- provider.query(extUri, arrayOf(
- ExtendedProperties._ID, // idx 0
- ExtendedProperties.NAME, // idx 1
- ExtendedProperties.VALUE // idx 2
- ), null, null, null)?.use { cursor ->
- while (cursor.moveToNext()) {
- val id = cursor.getLong(0)
- val rawValue = cursor.getString(2)
-
- val uri by lazy {
- ContentUris.withAppendedId(ExtendedProperties.CONTENT_URI, id).asSyncAdapter(account)
- }
-
- when (cursor.getString(1)) {
- UnknownProperty.CONTENT_ITEM_TYPE -> {
- // unknown property; check whether it's a URL
- try {
- val property = UnknownProperty.fromJsonString(rawValue)
- if (property is Url) { // rewrite to MIMETYPE_URL
- val newValues = ContentValues(2)
- newValues.put(ExtendedProperties.NAME, AndroidEvent.MIMETYPE_URL)
- newValues.put(ExtendedProperties.VALUE, property.value)
- provider.update(uri, newValues, null, null)
- }
- } catch (e: Exception) {
- Logger.log.log(Level.WARNING, "Couldn't rewrite URL from unknown property to ${AndroidEvent.MIMETYPE_URL}", e)
- }
+ if (ContextCompat.checkSelfPermission(context, android.Manifest.permission.WRITE_CALENDAR) == PackageManager.PERMISSION_GRANTED) {
+ val provider = context.contentResolver.acquireContentProviderClient(CalendarContract.AUTHORITY)
+ if (provider != null)
+ try {
+ // Attention: CalendarProvider does NOT limit the results of the ExtendedProperties query
+ // to the given account! So all extended properties will be processed number-of-accounts times.
+ val extUri = ExtendedProperties.CONTENT_URI.asSyncAdapter(account)
+
+ provider.query(extUri, arrayOf(
+ ExtendedProperties._ID, // idx 0
+ ExtendedProperties.NAME, // idx 1
+ ExtendedProperties.VALUE // idx 2
+ ), null, null, null)?.use { cursor ->
+ while (cursor.moveToNext()) {
+ val id = cursor.getLong(0)
+ val rawValue = cursor.getString(2)
+
+ val uri by lazy {
+ ContentUris.withAppendedId(ExtendedProperties.CONTENT_URI, id).asSyncAdapter(account)
}
- "unknown-property" -> {
- // unknown property (deprecated format); convert to current format
- try {
- val stream = ByteArrayInputStream(Base64.decode(rawValue, Base64.NO_WRAP))
- ObjectInputStream(stream).use {
- (it.readObject() as? Property)?.let { property ->
- // rewrite to current format
+
+ when (cursor.getString(1)) {
+ UnknownProperty.CONTENT_ITEM_TYPE -> {
+ // unknown property; check whether it's a URL
+ try {
+ val property = UnknownProperty.fromJsonString(rawValue)
+ if (property is Url) { // rewrite to MIMETYPE_URL
val newValues = ContentValues(2)
- newValues.put(ExtendedProperties.NAME, UnknownProperty.CONTENT_ITEM_TYPE)
- newValues.put(ExtendedProperties.VALUE, UnknownProperty.toJsonString(property))
+ newValues.put(ExtendedProperties.NAME, AndroidEvent.MIMETYPE_URL)
+ newValues.put(ExtendedProperties.VALUE, property.value)
provider.update(uri, newValues, null, null)
}
+ } catch (e: Exception) {
+ Logger.log.log(Level.WARNING, "Couldn't rewrite URL from unknown property to ${AndroidEvent.MIMETYPE_URL}", e)
}
- } catch(e: Exception) {
- Logger.log.log(Level.WARNING, "Couldn't rewrite deprecated unknown property to current format", e)
}
- }
- "unknown-property.v2" -> {
- // unknown property (deprecated MIME type); rewrite to current MIME type
- val newValues = ContentValues(1)
- newValues.put(ExtendedProperties.NAME, UnknownProperty.CONTENT_ITEM_TYPE)
- provider.update(uri, newValues, null, null)
+ "unknown-property" -> {
+ // unknown property (deprecated format); convert to current format
+ try {
+ val stream = ByteArrayInputStream(Base64.decode(rawValue, Base64.NO_WRAP))
+ ObjectInputStream(stream).use {
+ (it.readObject() as? Property)?.let { property ->
+ // rewrite to current format
+ val newValues = ContentValues(2)
+ newValues.put(ExtendedProperties.NAME, UnknownProperty.CONTENT_ITEM_TYPE)
+ newValues.put(ExtendedProperties.VALUE, UnknownProperty.toJsonString(property))
+ provider.update(uri, newValues, null, null)
+ }
+ }
+ } catch(e: Exception) {
+ Logger.log.log(Level.WARNING, "Couldn't rewrite deprecated unknown property to current format", e)
+ }
+ }
+ "unknown-property.v2" -> {
+ // unknown property (deprecated MIME type); rewrite to current MIME type
+ val newValues = ContentValues(1)
+ newValues.put(ExtendedProperties.NAME, UnknownProperty.CONTENT_ITEM_TYPE)
+ provider.update(uri, newValues, null, null)
+ }
}
}
}
+ } finally {
+ provider.closeCompat()
}
- }
+ }
}
@Suppress("unused","FunctionName")
diff --git a/app/src/main/java/at/bitfire/davdroid/webdav/DavDocumentsProvider.kt b/app/src/main/java/at/bitfire/davdroid/webdav/DavDocumentsProvider.kt
index 87b14823..aba454fa 100644
--- a/app/src/main/java/at/bitfire/davdroid/webdav/DavDocumentsProvider.kt
+++ b/app/src/main/java/at/bitfire/davdroid/webdav/DavDocumentsProvider.kt
@@ -244,7 +244,7 @@ class DavDocumentsProvider: DocumentsProvider() {
val parentUrl = parent.toHttpUrl(db)
val folder = DavCollection(client.okHttpClient, parentUrl)
- folder.propfind(1, *DAV_FILE_FIELDS) { response, relation ->
+ folder.propfind(1, *DAV_FILE_FIELDS) { response, relation ->
Logger.log.fine("$relation $response")
val resource: WebDavDocument =
@@ -486,11 +486,11 @@ class DavDocumentsProvider: DocumentsProvider() {
if (appendNumber != 0) {
val extension: String? = MimeTypeMap.getFileExtensionFromUrl(displayName)
- if (extension != null) {
- val baseName = safeName.removeSuffix(".$extension")
- return "${baseName}_$appendNumber.$extension"
- } else
- return "${safeName}_$appendNumber"
+ if (extension != null) {
+ val baseName = safeName.removeSuffix(".$extension")
+ return "${baseName}_$appendNumber.$extension"
+ } else
+ return "${safeName}_$appendNumber"
} else
return safeName
}