diff --git a/app/src/main/java/com/igreenwood/loupe/Loupe.kt b/app/src/main/java/com/igreenwood/loupe/Loupe.kt index 0fe5177f6..a6f36bb45 100644 --- a/app/src/main/java/com/igreenwood/loupe/Loupe.kt +++ b/app/src/main/java/com/igreenwood/loupe/Loupe.kt @@ -38,7 +38,11 @@ import android.graphics.RectF import android.graphics.drawable.BitmapDrawable import android.os.Build import android.util.TypedValue -import android.view.* +import android.view.GestureDetector +import android.view.MotionEvent +import android.view.ScaleGestureDetector +import android.view.View +import android.view.ViewGroup import android.view.animation.AccelerateDecelerateInterpolator import android.view.animation.DecelerateInterpolator import android.view.animation.Interpolator @@ -202,7 +206,7 @@ class Loupe(imageView: ImageView, container: ViewGroup) : View.OnTouchListener, override fun onDown(e: MotionEvent): Boolean = true override fun onScroll( - e1: MotionEvent, + e1: MotionEvent?, e2: MotionEvent, distanceX: Float, distanceY: Float @@ -220,7 +224,7 @@ class Loupe(imageView: ImageView, container: ViewGroup) : View.OnTouchListener, } override fun onFling( - e1: MotionEvent, + e1: MotionEvent?, e2: MotionEvent, velocityX: Float, velocityY: Float diff --git a/app/src/main/java/com/kunzisoft/keepass/app/database/CipherDatabaseAction.kt b/app/src/main/java/com/kunzisoft/keepass/app/database/CipherDatabaseAction.kt index d193466fc..d20edeb8a 100644 --- a/app/src/main/java/com/kunzisoft/keepass/app/database/CipherDatabaseAction.kt +++ b/app/src/main/java/com/kunzisoft/keepass/app/database/CipherDatabaseAction.kt @@ -27,6 +27,7 @@ import android.net.Uri import android.os.IBinder import android.util.Base64 import android.util.Log +import androidx.core.content.ContextCompat import com.kunzisoft.keepass.database.element.binary.BinaryData.Companion.BASE64_FLAG import com.kunzisoft.keepass.model.CipherEncryptDatabase import com.kunzisoft.keepass.services.AdvancedUnlockNotificationService @@ -69,9 +70,11 @@ class CipherDatabaseAction(context: Context) { @Synchronized private fun attachService(performedAction: () -> Unit) { - applicationContext.registerReceiver(mAdvancedUnlockBroadcastReceiver, IntentFilter().apply { - addAction(AdvancedUnlockNotificationService.REMOVE_ADVANCED_UNLOCK_KEY_ACTION) - }) + ContextCompat.registerReceiver(applicationContext, mAdvancedUnlockBroadcastReceiver, + IntentFilter().apply { + addAction(AdvancedUnlockNotificationService.REMOVE_ADVANCED_UNLOCK_KEY_ACTION) + }, ContextCompat.RECEIVER_EXPORTED + ) mServiceConnection = object : ServiceConnection { override fun onServiceConnected(name: ComponentName?, serviceBinder: IBinder?) { @@ -97,7 +100,7 @@ class CipherDatabaseAction(context: Context) { private fun detachService() { try { applicationContext.unregisterReceiver(mAdvancedUnlockBroadcastReceiver) - } catch (e: Exception) {} + } catch (_: Exception) {} mServiceConnection?.let { AdvancedUnlockNotificationService.unbindService(applicationContext, it) diff --git a/app/src/main/java/com/kunzisoft/keepass/database/DatabaseTaskProvider.kt b/app/src/main/java/com/kunzisoft/keepass/database/DatabaseTaskProvider.kt index 6ef9efcd8..cd38f0046 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/DatabaseTaskProvider.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/DatabaseTaskProvider.kt @@ -40,6 +40,7 @@ import androidx.activity.result.contract.ActivityResultContracts import androidx.appcompat.app.AlertDialog import androidx.core.app.ActivityCompat.shouldShowRequestPermissionRationale import androidx.core.content.ContextCompat +import androidx.core.content.ContextCompat.RECEIVER_NOT_EXPORTED import androidx.fragment.app.FragmentActivity import androidx.lifecycle.lifecycleScope import com.kunzisoft.keepass.R @@ -330,11 +331,11 @@ class DatabaseTaskProvider( } } } - context.registerReceiver(databaseTaskBroadcastReceiver, + ContextCompat.registerReceiver(context, databaseTaskBroadcastReceiver, IntentFilter().apply { addAction(DATABASE_START_TASK_ACTION) addAction(DATABASE_STOP_TASK_ACTION) - } + }, RECEIVER_NOT_EXPORTED ) // Check if a service is currently running else do nothing diff --git a/app/src/main/java/com/kunzisoft/keepass/utils/BroadcastAction.kt b/app/src/main/java/com/kunzisoft/keepass/utils/BroadcastAction.kt index b496e7faf..8d42310fa 100644 --- a/app/src/main/java/com/kunzisoft/keepass/utils/BroadcastAction.kt +++ b/app/src/main/java/com/kunzisoft/keepass/utils/BroadcastAction.kt @@ -29,6 +29,7 @@ import android.content.Intent import android.content.IntentFilter import android.os.Build import android.util.Log +import androidx.core.content.ContextCompat import com.kunzisoft.keepass.R import com.kunzisoft.keepass.database.ContextualDatabase import com.kunzisoft.keepass.magikeyboard.MagikeyboardService @@ -45,9 +46,9 @@ const val LOCK_ACTION = "com.kunzisoft.keepass.LOCK" const val REMOVE_ENTRY_MAGIKEYBOARD_ACTION = "com.kunzisoft.keepass.REMOVE_ENTRY_MAGIKEYBOARD" const val BACK_PREVIOUS_KEYBOARD_ACTION = "com.kunzisoft.keepass.BACK_PREVIOUS_KEYBOARD" -class LockReceiver(var lockAction: () -> Unit) : BroadcastReceiver() { +class LockReceiver(private var lockAction: () -> Unit) : BroadcastReceiver() { - var mLockPendingIntent: PendingIntent? = null + private var mLockPendingIntent: PendingIntent? = null var backToPreviousKeyboardAction: (() -> Unit)? = null override fun onReceive(context: Context, intent: Intent) { @@ -60,7 +61,7 @@ class LockReceiver(var lockAction: () -> Unit) : BroadcastReceiver() { } Intent.ACTION_SCREEN_OFF -> { if (PreferencesUtil.isLockDatabaseWhenScreenShutOffEnable(context)) { - mLockPendingIntent = PendingIntent.getBroadcast(context, + val lockPendingIntent = PendingIntent.getBroadcast(context, 4575, Intent(intent).apply { action = LOCK_ACTION @@ -71,6 +72,7 @@ class LockReceiver(var lockAction: () -> Unit) : BroadcastReceiver() { 0 } ) + this.mLockPendingIntent = lockPendingIntent // Launch the effective action after a small time val first: Long = System.currentTimeMillis() + context.getString(R.string.timeout_screen_off).toLong() (context.getSystemService(ALARM_SERVICE) as AlarmManager?)?.let { alarmManager -> @@ -80,20 +82,20 @@ class LockReceiver(var lockAction: () -> Unit) : BroadcastReceiver() { alarmManager.set( AlarmManager.RTC_WAKEUP, first, - mLockPendingIntent + lockPendingIntent ) } else { alarmManager.setExact( AlarmManager.RTC_WAKEUP, first, - mLockPendingIntent + lockPendingIntent ) } } else { alarmManager.set( AlarmManager.RTC_WAKEUP, first, - mLockPendingIntent + lockPendingIntent ) } } @@ -120,9 +122,9 @@ class LockReceiver(var lockAction: () -> Unit) : BroadcastReceiver() { } private fun cancelLockPendingIntent(context: Context) { - mLockPendingIntent?.let { + mLockPendingIntent?.let { lockPendingIntent -> val alarmManager = context.getSystemService(ALARM_SERVICE) as AlarmManager? - alarmManager?.cancel(mLockPendingIntent) + alarmManager?.cancel(lockPendingIntent) mLockPendingIntent = null } } @@ -131,7 +133,7 @@ class LockReceiver(var lockAction: () -> Unit) : BroadcastReceiver() { fun Context.registerLockReceiver(lockReceiver: LockReceiver?, registerKeyboardAction: Boolean = false) { lockReceiver?.let { - registerReceiver(it, IntentFilter().apply { + ContextCompat.registerReceiver(this, it, IntentFilter().apply { addAction(Intent.ACTION_SCREEN_OFF) addAction(Intent.ACTION_SCREEN_ON) addAction(LOCK_ACTION) @@ -139,7 +141,7 @@ fun Context.registerLockReceiver(lockReceiver: LockReceiver?, addAction(REMOVE_ENTRY_MAGIKEYBOARD_ACTION) addAction(BACK_PREVIOUS_KEYBOARD_ACTION) } - }) + }, ContextCompat.RECEIVER_EXPORTED) } }