diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml index aedeec4d413db8a361220286391be1d47180e7c4..576d39ba7bf6b38b89898c8b64348ceeee89a36a 100644 --- a/.idea/codeStyles/Project.xml +++ b/.idea/codeStyles/Project.xml @@ -36,9 +36,6 @@ <option name="ALLOW_TRAILING_COMMA" value="true" /> <option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" /> </JetCodeStyleSettings> - <XML> - <option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" /> - </XML> <codeStyleSettings language="Groovy"> <indentOptions> <option name="SMART_TABS" value="true" /> diff --git a/build.gradle b/build.gradle index 6950593039b5b565412059ce848d5f059f58fd4e..536485f0f25ff50270b4a685e6269cdaf92e1240 100644 --- a/build.gradle +++ b/build.gradle @@ -1,21 +1,21 @@ buildscript { - ext.kotlin_version = '1.5.31' - ext.hilt_version = '2.38.1' + ext.kotlin_version = '1.6.10' + ext.hilt_version = '2.40' ext.tor_version = '0.3.5.15' ext.obfs4_version = '0.0.12-dev-40245c4a' ext.junit_version = '5.7.2' ext.mockk_version = '1.10.4' - ext.ktlint_plugin_version = '10.1.0' + ext.ktlint_plugin_version = '10.2.1' - ext.androidx_fragment_version = '1.3.6' - ext.androidx_constraintlayout_version = '2.1.1' - ext.google_material_version = '1.4.0' + ext.androidx_fragment_version = '1.4.1' + ext.androidx_constraintlayout_version = '2.1.3' + ext.google_material_version = '1.5.0' repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.0.3' + classpath 'com.android.tools.build:gradle:7.0.4' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "com.google.dagger:hilt-android-gradle-plugin:$hilt_version" } diff --git a/gradle/ktlint.gradle b/gradle/ktlint.gradle index 22e03eae400e982e4a69ff8db4ca7cb3899c89c3..60fada8f6389189b1efa5a56e37d30fff0efc477 100644 --- a/gradle/ktlint.gradle +++ b/gradle/ktlint.gradle @@ -1,5 +1,5 @@ ktlint { - version = "0.42.1" + version = "0.43.2" android = true enableExperimentalRules = false verbose = true diff --git a/mailbox-android/build.gradle b/mailbox-android/build.gradle index 5c8c200ed187f4d5d463576f01675d1038a7fc76..f840547001745a91938a01b955924249d5be6bbf 100644 --- a/mailbox-android/build.gradle +++ b/mailbox-android/build.gradle @@ -6,7 +6,7 @@ plugins { id 'kotlin-kapt' id 'dagger.hilt.android.plugin' id "org.jlleitschuh.gradle.ktlint" version "$ktlint_plugin_version" - id 'checkstyle' + id 'checkstyle' // only needed for Java code } android { @@ -16,7 +16,7 @@ android { defaultConfig { applicationId "org.briarproject.mailbox" minSdkVersion 16 - targetSdkVersion 30 + targetSdkVersion 31 versionCode 1 versionName "1.0" multiDexEnabled true // only needed when minSdkVersion < 21 @@ -55,11 +55,11 @@ dependencies { implementation project(path: ':dont-kill-me-lib') implementation 'com.github.tony19:logback-android:2.0.0' - implementation 'androidx.appcompat:appcompat:1.3.1' - implementation "androidx.activity:activity-ktx:1.3.1" + implementation 'androidx.appcompat:appcompat:1.4.1' + implementation "androidx.activity:activity-ktx:1.4.0" implementation "androidx.fragment:fragment-ktx:$androidx_fragment_version" - def lifecycle_version = "2.4.0-rc01" + def lifecycle_version = "2.4.0" implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version" implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version" implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version" diff --git a/mailbox-android/src/main/java/org/briarproject/mailbox/android/MailboxNotificationManager.kt b/mailbox-android/src/main/java/org/briarproject/mailbox/android/MailboxNotificationManager.kt index fa67a900c267f9c6c5aca638f52469ed4c759efe..2673e52e8beb121e19d18276954a3d6e29694e47 100644 --- a/mailbox-android/src/main/java/org/briarproject/mailbox/android/MailboxNotificationManager.kt +++ b/mailbox-android/src/main/java/org/briarproject/mailbox/android/MailboxNotificationManager.kt @@ -24,9 +24,10 @@ import android.app.NotificationChannel import android.app.NotificationManager import android.app.NotificationManager.IMPORTANCE_LOW import android.app.PendingIntent +import android.app.PendingIntent.FLAG_IMMUTABLE import android.content.Context import android.content.Intent -import android.os.Build +import android.os.Build.VERSION.SDK_INT import androidx.annotation.RequiresApi import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat.PRIORITY_MIN @@ -50,7 +51,7 @@ class MailboxNotificationManager @Inject constructor( private val nm = getSystemService(ctx, NotificationManager::class.java)!! init { - if (Build.VERSION.SDK_INT >= 26) createNotificationChannels() + if (SDK_INT >= 26) createNotificationChannels() } @RequiresApi(26) @@ -68,8 +69,9 @@ class MailboxNotificationManager @Inject constructor( val serviceNotification: Notification get() { val notificationIntent = Intent(ctx, MainActivity::class.java) + val flags = if (SDK_INT >= 23) FLAG_IMMUTABLE else 0 val pendingIntent = PendingIntent.getActivity( - ctx, 0, notificationIntent, 0 + ctx, 0, notificationIntent, flags ) return NotificationCompat.Builder(ctx, CHANNEL_ID) .setContentTitle(ctx.getString(R.string.notification_mailbox_title)) diff --git a/mailbox-android/src/main/java/org/briarproject/mailbox/core/system/AndroidTaskScheduler.java b/mailbox-android/src/main/java/org/briarproject/mailbox/core/system/AndroidTaskScheduler.java index 7788735c0f21f59d6a29343128c83a996e0cf644..e5d6c29e38dafbb9bddc0195d21577766b5d828b 100644 --- a/mailbox-android/src/main/java/org/briarproject/mailbox/core/system/AndroidTaskScheduler.java +++ b/mailbox-android/src/main/java/org/briarproject/mailbox/core/system/AndroidTaskScheduler.java @@ -46,6 +46,7 @@ import javax.annotation.concurrent.ThreadSafe; import static android.app.AlarmManager.ELAPSED_REALTIME_WAKEUP; import static android.app.AlarmManager.INTERVAL_FIFTEEN_MINUTES; import static android.app.PendingIntent.FLAG_CANCEL_CURRENT; +import static android.app.PendingIntent.FLAG_IMMUTABLE; import static android.content.Context.ALARM_SERVICE; import static android.os.Build.VERSION.SDK_INT; import static java.util.Objects.requireNonNull; @@ -194,8 +195,9 @@ public class AndroidTaskScheduler implements TaskScheduler, Service { private PendingIntent getAlarmPendingIntent() { Intent i = new Intent(app, AlarmReceiver.class); i.putExtra(EXTRA_PID, Process.myPid()); - return PendingIntent - .getBroadcast(app, REQUEST_ALARM, i, FLAG_CANCEL_CURRENT); + int flags = SDK_INT >= 23 ? FLAG_CANCEL_CURRENT | FLAG_IMMUTABLE : + FLAG_CANCEL_CURRENT; + return PendingIntent.getBroadcast(app, REQUEST_ALARM, i, flags); } private class ScheduledTask diff --git a/mailbox-core/build.gradle b/mailbox-core/build.gradle index a5e3e30187bf05ce818df90d3702bc8e662864e5..ca33513bcf665ebd8fd9308e1905d5a2f0cf1fc6 100644 --- a/mailbox-core/build.gradle +++ b/mailbox-core/build.gradle @@ -14,6 +14,7 @@ dependencies { api "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" api 'com.google.code.findbugs:jsr305:3.0.2' api 'javax.inject:javax.inject:1' // required for @Qualifier in @Wakeful + implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version" // used by jackson implementation "com.google.dagger:hilt-core:$hilt_version" kapt "com.google.dagger:dagger-compiler:$hilt_version"