mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-11-12 23:31:02 +00:00
8963180006
- iOS: microphone usage text for "Take Video", no-export-compliance flag, ExportOptions.plist for App Store Connect uploads, the unused push forwarders gone; CI builds with Xcode 26 and lints the property lists. - Android: version and signing from Gradle properties (unsigned without them), R8 with keep rules for TREK's and Capacitor's reflective classes, no Auto Backup of the session cookie, no external file provider path, template and Firebase leftovers removed, keystores and service accounts ignored, full-size adaptive icon layers with a monochrome layer; CI also builds the release APK. - native-release.yml: signed bundle to a Play testing track and archive to TestFlight, by hand or on a v* tag, behind the store environment. - Version handshake: the server reports nativeApi 1, the app refuses a server below its minimum and tolerates an app older than the offline copy. - Address screen: privacy policy link, "Try the demo" and "What is a TREK server?"; the privacy link also in the app's server settings. Three new native strings in all 27 locales. - Donation links and the notices asking for one are hidden in the app. - Store listings for "TREK Travel Planner" in client/fastlane: texts, review notes with placeholders, privacy and account deletion page drafts, the feature graphic and icon, a length and image check in CI, and a Playwright store project with the scripts that turn its captures into screenshots. - Docs: wiki/Native-Apps.md, README no longer says there is no store app.
81 lines
3.8 KiB
XML
81 lines
3.8 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
xmlns:tools="http://schemas.android.com/tools">
|
|
|
|
<application
|
|
android:allowBackup="false"
|
|
android:icon="@mipmap/ic_launcher"
|
|
android:label="@string/app_name"
|
|
android:networkSecurityConfig="@xml/network_security_config"
|
|
android:roundIcon="@mipmap/ic_launcher_round"
|
|
android:supportsRtl="true"
|
|
android:theme="@style/AppTheme">
|
|
|
|
<activity
|
|
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode|navigation|density"
|
|
android:name=".MainActivity"
|
|
android:label="@string/title_activity_main"
|
|
android:theme="@style/AppTheme.NoActionBarLaunch"
|
|
android:launchMode="singleTask"
|
|
android:exported="true">
|
|
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
<category android:name="android.intent.category.LAUNCHER" />
|
|
</intent-filter>
|
|
|
|
<!-- Deep links.
|
|
|
|
The scheme is @string/custom_url_scheme (com.liketrek.trek).
|
|
launchMode is singleTask above, so a link delivers into the
|
|
running task via onNewIntent rather than starting a second copy
|
|
of the app on top of the first.
|
|
|
|
This is the return path for SSO and passkey sign-in: TrekShell
|
|
opens the server's login page in a Custom Tab, and after the
|
|
hand-off it redirects to com.liketrek.trek://auth?code=…, which
|
|
lands here and in TrekShellPlugin.handleOnNewIntent.
|
|
|
|
Not an App Link (autoVerify + https). App Links are verified
|
|
against a specific domain via assetlinks.json, and TREK is
|
|
self-hosted — there is no single domain to verify against. A
|
|
custom scheme is the only form that works for every user's
|
|
server. -->
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.BROWSABLE" />
|
|
<data android:scheme="@string/custom_url_scheme" />
|
|
</intent-filter>
|
|
|
|
</activity>
|
|
|
|
<provider
|
|
android:name="androidx.core.content.FileProvider"
|
|
android:authorities="${applicationId}.fileprovider"
|
|
android:exported="false"
|
|
android:grantUriPermissions="true">
|
|
<meta-data
|
|
android:name="android.support.FILE_PROVIDER_PATHS"
|
|
android:resource="@xml/file_paths"></meta-data>
|
|
</provider>
|
|
|
|
</application>
|
|
|
|
<!-- Permissions. Only what the WebView itself needs: the file picker's
|
|
camera option and navigator.geolocation for "locate me" on the map,
|
|
both granted at runtime through Capacitor's WebChromeClient. -->
|
|
|
|
<uses-permission android:name="android.permission.INTERNET" />
|
|
<!-- COARSE is listed first because it is the weaker grant and is enough
|
|
for "what city am I in". -->
|
|
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
|
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
|
<!-- required="false" on purpose: TREK is a planner, and everything except
|
|
"locate me" works without GPS hardware. Marking it required would have
|
|
Play hide the app from tablets and other GPS-less devices. -->
|
|
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
|
|
<uses-permission android:name="android.permission.CAMERA" />
|
|
<uses-feature android:name="android.hardware.camera" android:required="false" />
|
|
</manifest>
|