android static analysis

This commit is contained in:
Thibault Deckers 2021-11-27 19:53:51 +09:00
parent 7cc4e8d01e
commit c5a4048322
7 changed files with 13 additions and 7 deletions

View file

@ -52,7 +52,7 @@ class AnalysisHandler(private val activity: Activity, private val onAnalysisComp
} }
// can be null or empty // can be null or empty
val contentIds = call.argument<List<Int>>("contentIds"); val contentIds = call.argument<List<Int>>("contentIds")
if (!activity.isMyServiceRunning(AnalysisService::class.java)) { if (!activity.isMyServiceRunning(AnalysisService::class.java)) {
val intent = Intent(activity, AnalysisService::class.java) val intent = Intent(activity, AnalysisService::class.java)

View file

@ -775,7 +775,7 @@ class MetadataFetchHandler(private val context: Context) : MethodCallHandler {
try { try {
Metadata.openSafeInputStream(context, uri, mimeType, sizeBytes)?.use { input -> Metadata.openSafeInputStream(context, uri, mimeType, sizeBytes)?.use { input ->
val metadata = ImageMetadataReader.readMetadata(input) val metadata = ImageMetadataReader.readMetadata(input)
val xmpStrings = metadata.getDirectoriesOfType(XmpDirectory::class.java).map { XMPMetaFactory.serializeToString(it.xmpMeta, xmpSerializeOptions) }.filterNotNull() val xmpStrings = metadata.getDirectoriesOfType(XmpDirectory::class.java).mapNotNull { XMPMetaFactory.serializeToString(it.xmpMeta, xmpSerializeOptions) }
result.success(xmpStrings.toMutableList()) result.success(xmpStrings.toMutableList())
return return
} }

View file

@ -6,6 +6,7 @@ import android.graphics.BitmapFactory
import android.graphics.BitmapRegionDecoder import android.graphics.BitmapRegionDecoder
import android.graphics.Rect import android.graphics.Rect
import android.net.Uri import android.net.Uri
import android.os.Build
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.bumptech.glide.load.DecodeFormat import com.bumptech.glide.load.DecodeFormat
import com.bumptech.glide.load.engine.DiskCacheStrategy import com.bumptech.glide.load.engine.DiskCacheStrategy
@ -68,8 +69,13 @@ class RegionFetcher internal constructor(
if (currentDecoderRef == null) { if (currentDecoderRef == null) {
val newDecoder = StorageUtils.openInputStream(context, uri)?.use { input -> val newDecoder = StorageUtils.openInputStream(context, uri)?.use { input ->
@Suppress("BlockingMethodInNonBlockingContext") @Suppress("BlockingMethodInNonBlockingContext")
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
BitmapRegionDecoder.newInstance(input)
} else {
@Suppress("deprecation")
BitmapRegionDecoder.newInstance(input, false) BitmapRegionDecoder.newInstance(input, false)
} }
}
if (newDecoder == null) { if (newDecoder == null) {
result.error("getRegion-read-null", "failed to open file for uri=$uri regionRect=$regionRect", null) result.error("getRegion-read-null", "failed to open file for uri=$uri regionRect=$regionRect", null)
return return

View file

@ -62,7 +62,7 @@ internal class SvgFetcher(val model: SvgThumbnail, val width: Int, val height: I
val bitmapHeight: Int val bitmapHeight: Int
if (width / height > svgWidth / svgHeight) { if (width / height > svgWidth / svgHeight) {
bitmapWidth = ceil(svgWidth * height / svgHeight).toInt() bitmapWidth = ceil(svgWidth * height / svgHeight).toInt()
bitmapHeight = height; bitmapHeight = height
} else { } else {
bitmapWidth = width bitmapWidth = width
bitmapHeight = ceil(svgHeight * width / svgWidth).toInt() bitmapHeight = ceil(svgHeight * width / svgWidth).toInt()

View file

@ -23,7 +23,7 @@ object XMP {
private const val GAUDIO_SCHEMA_NS = "http://ns.google.com/photos/1.0/audio/" private const val GAUDIO_SCHEMA_NS = "http://ns.google.com/photos/1.0/audio/"
const val GCAMERA_SCHEMA_NS = "http://ns.google.com/photos/1.0/camera/" const val GCAMERA_SCHEMA_NS = "http://ns.google.com/photos/1.0/camera/"
private const val GDEPTH_SCHEMA_NS = "http://ns.google.com/photos/1.0/depthmap/" private const val GDEPTH_SCHEMA_NS = "http://ns.google.com/photos/1.0/depthmap/"
const val GIMAGE_SCHEMA_NS = "http://ns.google.com/photos/1.0/image/" private const val GIMAGE_SCHEMA_NS = "http://ns.google.com/photos/1.0/image/"
const val CONTAINER_SCHEMA_NS = "http://ns.google.com/photos/1.0/container/" const val CONTAINER_SCHEMA_NS = "http://ns.google.com/photos/1.0/container/"
private const val CONTAINER_ITEM_SCHEMA_NS = "http://ns.google.com/photos/1.0/container/item/" private const val CONTAINER_ITEM_SCHEMA_NS = "http://ns.google.com/photos/1.0/container/item/"

View file

@ -83,7 +83,7 @@ class MediaStoreImageProvider : ImageProvider() {
} }
fun checkObsoleteContentIds(context: Context, knownContentIds: List<Int>): List<Int> { fun checkObsoleteContentIds(context: Context, knownContentIds: List<Int>): List<Int> {
val foundContentIds = ArrayList<Int>() val foundContentIds = HashSet<Int>()
fun check(context: Context, contentUri: Uri) { fun check(context: Context, contentUri: Uri) {
val projection = arrayOf(MediaStore.MediaColumns._ID) val projection = arrayOf(MediaStore.MediaColumns._ID)
try { try {

View file

@ -23,7 +23,7 @@ object FlutterUtils {
} }
lateinit var flutterLoader: FlutterLoader lateinit var flutterLoader: FlutterLoader
FlutterUtils.runOnUiThread { runOnUiThread {
// initialization must happen on the main thread // initialization must happen on the main thread
flutterLoader = FlutterInjector.instance().flutterLoader().apply { flutterLoader = FlutterInjector.instance().flutterLoader().apply {
startInitialization(context) startInitialization(context)