android 12 sdk 31 fixes
continuous-integration/drone/pr Build was killed Details

This commit is contained in:
Dan Ballard 2022-06-29 10:21:54 -07:00
parent 8d0b277731
commit 9298be0a61
2 changed files with 21 additions and 11 deletions

View File

@ -1,25 +1,27 @@
package im.cwtch.flwtch package im.cwtch.flwtch
import android.app.* import android.app.Notification
import android.os.Environment import android.app.NotificationChannel
import android.app.NotificationManager
import android.app.PendingIntent
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.graphics.BitmapFactory import android.graphics.BitmapFactory
import android.graphics.Color import android.graphics.Color
import android.net.Uri
import android.os.Build import android.os.Build
import android.util.Log import android.util.Log
import androidx.annotation.RequiresApi import androidx.annotation.RequiresApi
import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat
import androidx.localbroadcastmanager.content.LocalBroadcastManager import androidx.localbroadcastmanager.content.LocalBroadcastManager
import androidx.work.* import androidx.work.CoroutineWorker
import androidx.work.ForegroundInfo
import androidx.work.WorkerParameters
import cwtch.Cwtch import cwtch.Cwtch
import io.flutter.FlutterInjector import io.flutter.FlutterInjector
import org.json.JSONObject import org.json.JSONObject
import java.nio.file.Files import java.nio.file.Files
import java.nio.file.Paths import java.nio.file.Paths
import java.nio.file.StandardCopyOption
import android.net.Uri
class FlwtchWorker(context: Context, parameters: WorkerParameters) : class FlwtchWorker(context: Context, parameters: WorkerParameters) :
CoroutineWorker(context, parameters) { CoroutineWorker(context, parameters) {
@ -82,6 +84,10 @@ class FlwtchWorker(context: Context, parameters: WorkerParameters) :
Log.i(TAG, "startCwtch success, starting coroutine AppbusEvent loop...") Log.i(TAG, "startCwtch success, starting coroutine AppbusEvent loop...")
val downloadIDs = mutableMapOf<String, Int>() val downloadIDs = mutableMapOf<String, Int>()
var flags = PendingIntent.FLAG_UPDATE_CURRENT
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
flags = flags or PendingIntent.FLAG_IMMUTABLE
}
while (true) { while (true) {
try { try {
val evt = MainActivity.AppbusEvent(Cwtch.getAppBusEvent()) val evt = MainActivity.AppbusEvent(Cwtch.getAppBusEvent())
@ -109,12 +115,11 @@ class FlwtchWorker(context: Context, parameters: WorkerParameters) :
intent.action = Intent.ACTION_RUN intent.action = Intent.ACTION_RUN
intent.putExtra("EventType", "NotificationClicked") intent.putExtra("EventType", "NotificationClicked")
} }
val newNotification = NotificationCompat.Builder(applicationContext, channelId) val newNotification = NotificationCompat.Builder(applicationContext, channelId)
.setContentTitle("Cwtch") .setContentTitle("Cwtch")
.setContentText(notificationSimple ?: "New Message") .setContentText(notificationSimple ?: "New Message")
.setSmallIcon(R.mipmap.knott_transparent) .setSmallIcon(R.mipmap.knott_transparent)
.setContentIntent(PendingIntent.getActivity(applicationContext, 1, clickIntent, PendingIntent.FLAG_UPDATE_CURRENT)) .setContentIntent(PendingIntent.getActivity(applicationContext, 1, clickIntent, flags))
.setAutoCancel(true) .setAutoCancel(true)
.build() .build()
@ -147,7 +152,7 @@ class FlwtchWorker(context: Context, parameters: WorkerParameters) :
?: "New Message From %1").replace("%1", data.getString("Nick"))) ?: "New Message From %1").replace("%1", data.getString("Nick")))
.setLargeIcon(BitmapFactory.decodeStream(fh)) .setLargeIcon(BitmapFactory.decodeStream(fh))
.setSmallIcon(R.mipmap.knott_transparent) .setSmallIcon(R.mipmap.knott_transparent)
.setContentIntent(PendingIntent.getActivity(applicationContext, 1, clickIntent, PendingIntent.FLAG_UPDATE_CURRENT)) .setContentIntent(PendingIntent.getActivity(applicationContext, 1, clickIntent, flags))
.setAutoCancel(true) .setAutoCancel(true)
.build() .build()
@ -265,6 +270,10 @@ class FlwtchWorker(context: Context, parameters: WorkerParameters) :
intent.action = Intent.ACTION_RUN intent.action = Intent.ACTION_RUN
intent.putExtra("EventType", "ShutdownClicked") intent.putExtra("EventType", "ShutdownClicked")
} }
var flags = PendingIntent.FLAG_UPDATE_CURRENT
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
flags = flags or PendingIntent.FLAG_IMMUTABLE
}
val notification = NotificationCompat.Builder(applicationContext, channelId) val notification = NotificationCompat.Builder(applicationContext, channelId)
.setContentTitle(title) .setContentTitle(title)
@ -274,7 +283,7 @@ class FlwtchWorker(context: Context, parameters: WorkerParameters) :
.setOngoing(true) .setOngoing(true)
// Add the cancel action to the notification which can // Add the cancel action to the notification which can
// be used to cancel the worker // be used to cancel the worker
.addAction(android.R.drawable.ic_delete, cancel, PendingIntent.getActivity(applicationContext, 2, cancelIntent, PendingIntent.FLAG_UPDATE_CURRENT)) .addAction(android.R.drawable.ic_delete, cancel, PendingIntent.getActivity(applicationContext, 2, cancelIntent, flags))
.build() .build()
return ForegroundInfo(101, notification) return ForegroundInfo(101, notification)

View File

@ -13,6 +13,7 @@
app:lottie_autoPlay="true" app:lottie_autoPlay="true"
app:lottie_rawRes="@raw/cwtch_animated_logo_op" app:lottie_rawRes="@raw/cwtch_animated_logo_op"
app:lottie_loop="true" app:lottie_loop="true"
app:lottie_speed="1.00" /> app:lottie_speed="1.00"
app:lottie_enableMergePathsForKitKatAndAbove="true" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>