SilkFX: enable sharing to the app.

SilkFX previously enabled VIEW intent, so you could "open with" the app
on an image file for the Gain Map viewer. This change also adds support
for the SEND intent, so you can "share to" the app from other apps.

Bug: 280608957
Test: Share to works from Files and Photos, open with still works.
Change-Id: If647471fcf10ce6395300a9c38aa7e05379dfe85
This commit is contained in:
Nick Deakin
2023-05-03 12:10:41 -04:00
parent 082e2eebec
commit e6259ecd34
2 changed files with 23 additions and 9 deletions

View File

@@ -63,6 +63,11 @@
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="image/*"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
</activity>
</application>

View File

@@ -18,7 +18,9 @@ package com.android.test.silkfx.app
import android.content.Intent
import android.graphics.ImageDecoder
import android.net.Uri
import android.os.Bundle
import android.os.Parcelable
import com.android.test.silkfx.R
import com.android.test.silkfx.hdr.GainmapImage
@@ -29,14 +31,21 @@ class HdrImageViewer : BaseDemoActivity() {
setContentView(R.layout.hdr_image_viewer)
val intent = this.intent ?: return finish()
if (Intent.ACTION_VIEW != intent.action) {
finish()
return
when (intent.action) {
Intent.ACTION_VIEW -> {
val data = intent.data ?: return finish()
val source = ImageDecoder.createSource(contentResolver, data)
findViewById<GainmapImage>(R.id.gainmap_image)!!.setImageSource(source)
}
Intent.ACTION_SEND -> {
val uri = (intent.getParcelableExtra<Parcelable>(Intent.EXTRA_STREAM) as? Uri)
?: return finish()
val source = ImageDecoder.createSource(contentResolver, uri)
findViewById<GainmapImage>(R.id.gainmap_image)!!.setImageSource(source)
}
else -> {
finish()
}
}
val data = intent.data ?: return finish()
val source = ImageDecoder.createSource(contentResolver, data)
findViewById<GainmapImage>(R.id.gainmap_image)!!.setImageSource(source)
}
}
}