InkActivity extends NativeActivity: - An invisible view with its own input connection receives the soft keyboard's text (commitText, deleteSurroundingText), so characters without a key event (umlauts by long press, ...) arrive as well. The field is a visible-password field, so keyboards commit each character instead of composing words. - Import and "insert image" open the system file dialog (ACTION_OPEN_DOCUMENT); the chosen file is copied to the cache folder and handed to Rust by path. src/android_bridge.rs calls the activity through JNI and receives its native calls; package-android.sh compiles the class with javac and d8. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
33 lines
1.6 KiB
XML
33 lines
1.6 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- Manifest of the Android app (Issue #42). scripts/package-android.sh fills in the version.
|
|
InkActivity (packaging/android/java) extends NativeActivity, which loads libink_notes.so;
|
|
its android_main runs the app. -->
|
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
package="eu.pansi.inknotes"
|
|
android:versionCode="@VERSION_CODE@"
|
|
android:versionName="@VERSION@">
|
|
|
|
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
|
|
|
|
<application
|
|
android:label="ink-notes"
|
|
android:icon="@mipmap/ic_launcher"
|
|
android:hasCode="true"
|
|
android:extractNativeLibs="true"
|
|
android:theme="@android:style/Theme.Material.Light.NoActionBar">
|
|
<!-- configChanges: rotating the tablet or attaching a keyboard must not restart the
|
|
activity; the app adapts to the new window size itself -->
|
|
<activity
|
|
android:name="eu.pansi.inknotes.InkActivity"
|
|
android:exported="true"
|
|
android:launchMode="singleTask"
|
|
android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|keyboard|keyboardHidden|navigation|density|uiMode|fontScale|locale|layoutDirection">
|
|
<meta-data android:name="android.app.lib_name" android:value="ink_notes" />
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
<category android:name="android.intent.category.LAUNCHER" />
|
|
</intent-filter>
|
|
</activity>
|
|
</application>
|
|
</manifest>
|