nandi/frqpublic Fork 0
6c745dfdacf9ce4b652034872fbebd67d16a66e5
Commits
Clone
git clone https://git.rickub.com/nandi/frq.git
git clone ssh://git@rickub.com/nandi/frq.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

AndroidManifest.xml · 95 lines · 4.6 KBXML Blame HistoryRaw
A freeq client in jolt, as glimmer components on Vidya 4719d6f nandi 20d ago1<?xml version="1.0" encoding="utf-8"?>
2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 package="uk.nandi.frq">
4 <uses-permission android:name="android.permission.INTERNET" />
Sign in and choose a picture on the phone 7b6e915 nandi 19d ago5 <!--
6 Reading the pictures the picker offers. Both, because the permission that
7 covers them was split at API 33: before that a single storage read, after
8 it one per medium. Neither is granted by being asked for here — they are
9 runtime permissions, and this activity has no Java to raise the dialog
10 with, so they are granted from Settings (or `adb shell pm grant`) until
11 something asks. Without them the picker sees directory names and no
12 files, which is what it says.
13 -->
14 <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
15 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
16 android:maxSdkVersion="32" />
Carry the media plane, and the class that opens the camera 43ada0b nandi 18d ago17 <!--
18 The call. Both are runtime permissions and neither is granted by being
19 asked for here; CameraCapture checks CAMERA before it opens anything and
20 reports "permission denied" back to the media plane rather than throwing.
21 Until this activity has Java to raise a dialog with, they are granted from
22 Settings (or `adb shell pm grant`), the same as the storage reads above.
23 -->
24 <uses-permission android:name="android.permission.CAMERA" />
25 <uses-permission android:name="android.permission.RECORD_AUDIO" />
26
A freeq client in jolt, as glimmer components on Vidya 4719d6f nandi 20d ago27 <uses-feature android:glEsVersion="0x00030000" android:required="true" />
Carry the media plane, and the class that opens the camera 43ada0b nandi 18d ago28 <!--
29 Not required: a call without a camera is audio-only and still a call, and
30 required="true" would hide the app from tablets that have no camera.
31 -->
32 <uses-feature android:name="android.hardware.camera" android:required="false" />
A freeq client in jolt, as glimmer components on Vidya 4719d6f nandi 20d ago33
34 <!--
35 Not the Fullscreen theme below: under it the window owns the whole
36 display, content_rect is the whole display too, and there is nothing for
37 vidya to inset by — the status bar clock sits on top of the app and the
38 compose bar sits under the keyboard.
39 -->
Sign in and choose a picture on the phone 7b6e915 nandi 19d ago40 <!--
41 debuggable: `adb run-as` reads the app's own data directory under it,
42 which is how a session file or a cache is looked at on the device. It
43 costs nothing at runtime and this APK is signed with the debug key
44 anyway; drop it for anything that ships.
45 -->
A freeq client in jolt, as glimmer components on Vidya 4719d6f nandi 20d ago46 <application
47 android:allowBackup="false"
Sign in and choose a picture on the phone 7b6e915 nandi 19d ago48 android:debuggable="true"
A freeq client in jolt, as glimmer components on Vidya 4719d6f nandi 20d ago49 android:label="frq"
50 android:theme="@android:style/Theme.Material.NoActionBar">
51 <!--
52 adjustResize: without it the activity's content_rect never shrinks for
53 the soft keyboard, so vidya has no IME inset to reserve and the compose
54 bar sits under the keys.
55 -->
Sign in and choose a picture on the phone 7b6e915 nandi 19d ago56 <!--
57 singleTask: the sign-in deep link below has to bring the *running*
58 app forward, with its loopback handoff already in hand, rather than
59 start a second copy of it beside the first.
60 -->
A freeq client in jolt, as glimmer components on Vidya 4719d6f nandi 20d ago61 <activity
Sign in and choose a picture on the phone 7b6e915 nandi 19d ago62 android:name=".FrqActivity"
A freeq client in jolt, as glimmer components on Vidya 4719d6f nandi 20d ago63 android:configChanges="orientation|keyboardHidden|screenSize"
Sign in and choose a picture on the phone 7b6e915 nandi 19d ago64 android:launchMode="singleTask"
A freeq client in jolt, as glimmer components on Vidya 4719d6f nandi 20d ago65 android:windowSoftInputMode="adjustResize"
66 android:exported="true"
67 android:screenOrientation="portrait">
68 <!--
69 The activity's library is libvidya.so, not the Jolt one: whoever
70 holds android-activity's glue owns the event loop, and winit
71 cannot build one without the AndroidApp handle that glue receives.
72 It dlopens libjoltapp.so in turn. See ffi/src/android.rs.
73 -->
74 <meta-data
75 android:name="android.app.lib_name"
76 android:value="vidya" />
77 <intent-filter>
78 <action android:name="android.intent.action.MAIN" />
79 <category android:name="android.intent.category.LAUNCHER" />
80 </intent-filter>
Sign in and choose a picture on the phone 7b6e915 nandi 19d ago81 <!--
82 Coming back from the browser. The handoff itself travels over
83 loopback and is already captured by the time this arrives; the
84 link carries nothing, and exists only to put the app back in
85 front of the browser that covered it.
86 -->
87 <intent-filter>
88 <action android:name="android.intent.action.VIEW" />
89 <category android:name="android.intent.category.DEFAULT" />
90 <category android:name="android.intent.category.BROWSABLE" />
91 <data android:scheme="frq" android:host="auth" />
92 </intent-filter>
A freeq client in jolt, as glimmer components on Vidya 4719d6f nandi 20d ago93 </activity>
94 </application>
95</manifest>