Fix lint warnings.

This commit is contained in:
Benoit Marty 2023-04-05 15:13:34 +02:00 committed by Benoit Marty
parent 48044a3cc5
commit 78b8d5cf6e
2 changed files with 21 additions and 42 deletions

View file

@ -1,30 +0,0 @@
/*
* Copyright (c) 2021 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package io.element.android.libraries.androidutils.intent
import android.app.PendingIntent
import android.os.Build
object PendingIntentCompat {
const val FLAG_IMMUTABLE = PendingIntent.FLAG_IMMUTABLE
val FLAG_MUTABLE = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
PendingIntent.FLAG_MUTABLE
} else {
0
}
}

View file

@ -18,6 +18,7 @@
package io.element.android.libraries.push.impl.notifications package io.element.android.libraries.push.impl.notifications
import android.Manifest
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Activity import android.app.Activity
import android.app.Notification import android.app.Notification
@ -26,18 +27,19 @@ import android.app.NotificationManager
import android.app.PendingIntent import android.app.PendingIntent
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.pm.PackageManager
import android.graphics.Bitmap import android.graphics.Bitmap
import android.graphics.Canvas import android.graphics.Canvas
import android.os.Build import android.os.Build
import androidx.annotation.ChecksSdkIntAtLeast import androidx.annotation.ChecksSdkIntAtLeast
import androidx.annotation.DrawableRes import androidx.annotation.DrawableRes
import androidx.core.app.ActivityCompat
import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat import androidx.core.app.NotificationManagerCompat
import androidx.core.app.RemoteInput import androidx.core.app.RemoteInput
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.content.getSystemService import androidx.core.content.getSystemService
import androidx.core.content.res.ResourcesCompat import androidx.core.content.res.ResourcesCompat
import io.element.android.libraries.androidutils.intent.PendingIntentCompat
import io.element.android.libraries.androidutils.system.startNotificationChannelSettingsIntent import io.element.android.libraries.androidutils.system.startNotificationChannelSettingsIntent
import io.element.android.libraries.androidutils.uri.createIgnoredUri import io.element.android.libraries.androidutils.uri.createIgnoredUri
import io.element.android.libraries.core.meta.BuildMeta import io.element.android.libraries.core.meta.BuildMeta
@ -295,7 +297,7 @@ class NotificationUtils @Inject constructor(
context, context,
clock.epochMillis().toInt(), clock.epochMillis().toInt(),
markRoomReadIntent, markRoomReadIntent,
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntentCompat.FLAG_IMMUTABLE PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
) )
NotificationCompat.Action.Builder( NotificationCompat.Action.Builder(
@ -341,7 +343,7 @@ class NotificationUtils @Inject constructor(
context.applicationContext, context.applicationContext,
clock.epochMillis().toInt(), clock.epochMillis().toInt(),
intent, intent,
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntentCompat.FLAG_IMMUTABLE PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
) )
setDeleteIntent(pendingIntent) setDeleteIntent(pendingIntent)
} }
@ -377,7 +379,7 @@ class NotificationUtils @Inject constructor(
context, context,
clock.epochMillis().toInt(), clock.epochMillis().toInt(),
rejectIntent, rejectIntent,
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntentCompat.FLAG_IMMUTABLE PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
) )
addAction( addAction(
@ -396,7 +398,7 @@ class NotificationUtils @Inject constructor(
context, context,
clock.epochMillis().toInt(), clock.epochMillis().toInt(),
joinIntent, joinIntent,
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntentCompat.FLAG_IMMUTABLE PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
) )
addAction( addAction(
R.drawable.vector_notification_accept_invitation, R.drawable.vector_notification_accept_invitation,
@ -489,7 +491,7 @@ class NotificationUtils @Inject constructor(
context, context,
clock.epochMillis().toInt(), clock.epochMillis().toInt(),
roomIntent, roomIntent,
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntentCompat.FLAG_IMMUTABLE PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
) )
} }
@ -505,7 +507,7 @@ class NotificationUtils @Inject constructor(
context, context,
clock.epochMillis().toInt(), clock.epochMillis().toInt(),
threadIntentTap, threadIntentTap,
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntentCompat.FLAG_IMMUTABLE PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
) )
} }
@ -516,7 +518,7 @@ class NotificationUtils @Inject constructor(
context, context,
clock.epochMillis().toInt(), clock.epochMillis().toInt(),
intent, intent,
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntentCompat.FLAG_IMMUTABLE PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
) )
} }
@ -549,7 +551,11 @@ class NotificationUtils @Inject constructor(
clock.epochMillis().toInt(), clock.epochMillis().toInt(),
intent, intent,
// PendingIntents attached to actions with remote inputs must be mutable // PendingIntents attached to actions with remote inputs must be mutable
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntentCompat.FLAG_MUTABLE PendingIntent.FLAG_UPDATE_CURRENT or if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
PendingIntent.FLAG_MUTABLE
} else {
0
}
) )
} else { } else {
/* /*
@ -627,7 +633,7 @@ class NotificationUtils @Inject constructor(
context.applicationContext, context.applicationContext,
0, 0,
intent, intent,
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntentCompat.FLAG_IMMUTABLE PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
) )
} }
@ -652,15 +658,18 @@ class NotificationUtils @Inject constructor(
@SuppressLint("LaunchActivityFromNotification") @SuppressLint("LaunchActivityFromNotification")
fun displayDiagnosticNotification() { fun displayDiagnosticNotification() {
if (ActivityCompat.checkSelfPermission(context, Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) {
Timber.w("Not allowed to notify.")
return
}
val testActionIntent = Intent(context, TestNotificationReceiver::class.java) val testActionIntent = Intent(context, TestNotificationReceiver::class.java)
testActionIntent.action = actionIds.diagnostic testActionIntent.action = actionIds.diagnostic
val testPendingIntent = PendingIntent.getBroadcast( val testPendingIntent = PendingIntent.getBroadcast(
context, context,
0, 0,
testActionIntent, testActionIntent,
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntentCompat.FLAG_IMMUTABLE PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
) )
notificationManager.notify( notificationManager.notify(
"DIAGNOSTIC", "DIAGNOSTIC",
888, 888,