Skip to content

Expose service to let Element X access some internal data#9109

Draft
bmarty wants to merge 1 commit intodevelopfrom
feature/bma/elementXSession
Draft

Expose service to let Element X access some internal data#9109
bmarty wants to merge 1 commit intodevelopfrom
feature/bma/elementXSession

Conversation

@bmarty
Copy link
Member

@bmarty bmarty commented Jan 15, 2026

Type of change

  • Feature
  • Bugfix
  • Technical
  • Other :

Content

Temporary code to let Element X access some internal data.

See element-hq/element-x-android#6013 for more details.

Motivation and context

Part of element-hq/element-meta#3073

Screenshots / GIFs

Tests

  • Step 1
  • Step 2
  • Step ...

Tested devices

  • Physical
  • Emulator
  • OS version(s):

Checklist


import android.os.Bundle

interface DataImporter {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a thought: would this be better named DataExporter? Then on the EX side it is named "importer"? e.g. the EX importer talks to the EC exporter.

Copy link
Member Author

@bmarty bmarty Jan 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. This file will be removed in a future version of the code, which just have the ImporterService. Maybe I should name it ExporterService, but since it's used by EX to import a session, I am not sure.

Note: Using permission "${applicationId}.READ_DATA" with android:protectionLevel="normal" does not work in release mode.
@bmarty bmarty force-pushed the feature/bma/elementXSession branch from e364976 to 2fc12ad Compare January 22, 2026 09:06
@ElementBot
Copy link

ElementBot commented Jan 22, 2026

Warnings
⚠️

vector/build.gradle#L162 - A newer version of androidx.media:media than 1.6.0 is available: 1.7.1

⚠️

vector/build.gradle#L163 - A newer version of androidx.transition:transition than 1.4.1 is available: 1.7.0

⚠️

vector/build.gradle#L166 - A newer version of org.threeten:threetenbp than 1.4.0 is available: 1.7.2

⚠️

vector/build.gradle#L234 - A newer version of androidx.browser:browser than 1.5.0 is available: 1.9.0

⚠️

vector/build.gradle#L237 - A newer version of com.nulab-inc:zxcvbn than 1.7.0 is available: 1.9.0

⚠️

vector/build.gradle#L258 - A newer version of nl.dionsegijn:konfetti-xml than 2.0.2 is available: 2.0.5

⚠️

vector/build.gradle#L266 - A newer version of com.posthog:posthog-android than 3.2.0 is available: 3.29.1

⚠️

vector/build.gradle#L272 - A newer version of androidx.emoji2:emoji2 than 1.3.0 is available: 1.6.0

⚠️

vector/build.gradle#L291 - A newer version of com.google.zxing:core than 3.3.3 is available: 3.5.4

⚠️

vector/build.gradle#L308 - A newer version of commons-codec:commons-codec than 1.15 is available: 1.20.0

⚠️

vector/build.gradle#L335 - A newer version of org.checkerframework:checker than 3.35.0 is available: 3.53.0

⚠️

vector/build.gradle#L359 - A newer version of org.jetbrains.kotlin:kotlin-reflect than 1.8.21 is available: 2.1.20

⚠️

vector/src/main/AndroidManifest.xml#L16 - READ_EXTERNAL_STORAGE is deprecated (and is not granted) when targeting Android 13+. If you need to query or interact with MediaStore or media files on the shared storage, you should instead use one or more new storage permissions: READ_MEDIA_IMAGES, READ_MEDIA_VIDEO or READ_MEDIA_AUDIO.

⚠️

vector/src/main/AndroidManifest.xml#L185 - This intent filter has the format of an Android App Link but is missing the autoVerify attribute; add android:autoVerify="true" to ensure your domain will be validated and enable App Link-related Lint warnings. If you do not want clicked URLs to bring the user to your app, remove the android.intent.category.BROWSABLE category, or set android:autoVerify="false" to make it clear this is not intended to be an Android App Link.

⚠️

vector/src/main/AndroidManifest.xml#L194 - Attribute autoVerify is only used in API level 23 and higher (current min is 21)

⚠️

vector/src/main/AndroidManifest.xml#L209 - Attribute autoVerify is only used in API level 23 and higher (current min is 21)

⚠️

vector/src/main/AndroidManifest.xml#L239 - Consider splitting data tag into multiple tags with individual attributes to avoid confusion

⚠️

vector/src/main/AndroidManifest.xml#L242 - Consider splitting data tag into multiple tags with individual attributes to avoid confusion

⚠️

vector/src/main/AndroidManifest.xml#L296 - Expecting android:screenOrientation="unspecified" or "fullSensor" for this activity so the user can use the application in any orientation and provide a great experience on Chrome OS devices

⚠️

vector/src/main/AndroidManifest.xml#L296 - Fixed screen orientations will be ignored in most cases, starting from Android 16. Android is moving toward a model where apps are expected to adapt to various orientations, display sizes, and aspect ratios.

⚠️

vector/src/main/AndroidManifest.xml#L305 - Attribute supportsPictureInPicture is only used in API level 24 and higher (current min is 21)

⚠️

vector/src/main/AndroidManifest.xml#L312 - Attribute supportsPictureInPicture is only used in API level 24 and higher (current min is 21)

⚠️

vector/src/main/AndroidManifest.xml#L318 - Attribute supportsPictureInPicture is only used in API level 24 and higher (current min is 21)

⚠️

vector/src/main/AndroidManifest.xml#L453 - Exported receiver does not require permission

⚠️

vector/src/main/java/im/vector/app/features/importer/ImporterService.kt#L48 - This Handler class should be static or leaks might occur (im.vector.app.features.importer.ImporterService.IncomingHandler)

Generated by 🚫 dangerJS against 2fc12ad

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants