mirror of
https://github.com/fankes/termux-app.git
synced 2025-09-06 02:35:19 +08:00
With this commit, activities will automatically change theme between day/night if `night-mode` `termux.properties` is not set or is set to `system` without requiring app restart. Dialog theming will be fully added in a later commit and may currently be in an inconsistent state or have crashes. The `uiMode` has been removed from `configChanges` of `TermuxActivity`, this may cause termux app to restart if samsung DEX mode is changed, if it does, then users should report it so that it can be fixed by re-adding the value and ignoring the change inside `TermuxActivity.onConfigurationChanged()`. The docs don't state if its necessary. Check related pull request #1446. Running `termux-reload-settings` will also restart `TermuxActivity`, the activity data should be preserved.
206 lines
8.5 KiB
XML
206 lines
8.5 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"
|
|
package="com.termux"
|
|
android:installLocation="internalOnly"
|
|
android:sharedUserId="${TERMUX_PACKAGE_NAME}"
|
|
android:sharedUserLabel="@string/shared_user_label">
|
|
|
|
<uses-feature
|
|
android:name="android.hardware.touchscreen"
|
|
android:required="false" />
|
|
<uses-feature
|
|
android:name="android.software.leanback"
|
|
android:required="false" />
|
|
|
|
<permission
|
|
android:name="${TERMUX_PACKAGE_NAME}.permission.RUN_COMMAND"
|
|
android:description="@string/permission_run_command_description"
|
|
android:icon="@mipmap/ic_launcher"
|
|
android:label="@string/permission_run_command_label"
|
|
android:protectionLevel="dangerous" />
|
|
|
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
|
<uses-permission android:name="android.permission.INTERNET" />
|
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
|
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" tools:ignore="ScopedStorage" />
|
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
|
<uses-permission android:name="android.permission.VIBRATE" />
|
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
|
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
|
|
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
|
|
<uses-permission android:name="android.permission.READ_LOGS" />
|
|
<uses-permission android:name="android.permission.DUMP" />
|
|
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
|
|
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
|
<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" tools:ignore="ProtectedPermissions" />
|
|
|
|
<application
|
|
android:name=".app.TermuxApplication"
|
|
android:allowBackup="false"
|
|
android:banner="@drawable/banner"
|
|
android:extractNativeLibs="true"
|
|
android:icon="@mipmap/ic_launcher"
|
|
android:label="@string/application_name"
|
|
android:requestLegacyExternalStorage="true"
|
|
android:roundIcon="@mipmap/ic_launcher_round"
|
|
android:supportsRtl="false"
|
|
android:theme="@style/Theme.TermuxApp.DayNight.DarkActionBar">
|
|
|
|
<activity
|
|
android:name=".app.TermuxActivity"
|
|
android:configChanges="orientation|screenSize|smallestScreenSize|density|screenLayout|keyboard|keyboardHidden|navigation"
|
|
android:label="@string/application_name"
|
|
android:launchMode="singleTask"
|
|
android:resizeableActivity="true"
|
|
android:theme="@style/Theme.TermuxActivity.DayNight.NoActionBar">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
|
|
<category android:name="android.intent.category.LAUNCHER" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
|
|
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
|
|
</intent-filter>
|
|
|
|
<meta-data
|
|
android:name="android.app.shortcuts"
|
|
android:resource="@xml/shortcuts" />
|
|
</activity>
|
|
|
|
<activity-alias
|
|
android:name=".HomeActivity"
|
|
android:targetActivity=".app.TermuxActivity">
|
|
|
|
<!-- Launch activity automatically on boot on Android Things devices -->
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
|
|
<category android:name="android.intent.category.IOT_LAUNCHER" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
</intent-filter>
|
|
</activity-alias>
|
|
|
|
<activity
|
|
android:name=".app.activities.HelpActivity"
|
|
android:exported="false"
|
|
android:label="@string/application_name"
|
|
android:parentActivityName=".app.TermuxActivity"
|
|
android:resizeableActivity="true" />
|
|
|
|
<activity
|
|
android:name=".app.activities.SettingsActivity"
|
|
android:exported="true"
|
|
android:label="@string/title_activity_termux_settings"
|
|
android:theme="@style/Theme.TermuxApp.DayNight.NoActionBar" />
|
|
|
|
<activity
|
|
android:name=".shared.activities.ReportActivity"
|
|
android:theme="@style/Theme.MarkdownViewActivity.DayNight"
|
|
android:documentLaunchMode="intoExisting" />
|
|
|
|
<activity
|
|
android:name=".filepicker.TermuxFileReceiverActivity"
|
|
android:excludeFromRecents="true"
|
|
android:label="@string/application_name"
|
|
android:noHistory="true"
|
|
android:resizeableActivity="true"
|
|
android:taskAffinity="${TERMUX_PACKAGE_NAME}.filereceiver">
|
|
|
|
<!-- Accept multiple file types when sending. -->
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.SEND" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
|
|
<data android:mimeType="application/*" />
|
|
<data android:mimeType="audio/*" />
|
|
<data android:mimeType="image/*" />
|
|
<data android:mimeType="message/*" />
|
|
<data android:mimeType="multipart/*" />
|
|
<data android:mimeType="text/*" />
|
|
<data android:mimeType="video/*" />
|
|
</intent-filter>
|
|
<!-- Accept multiple file types to let Termux be usable as generic file viewer. -->
|
|
<intent-filter tools:ignore="AppLinkUrlError">
|
|
<action android:name="android.intent.action.VIEW" />
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
|
|
<data android:mimeType="application/*" />
|
|
<data android:mimeType="audio/*" />
|
|
<data android:mimeType="image/*" />
|
|
<data android:mimeType="text/*" />
|
|
<data android:mimeType="video/*" />
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
|
|
<provider
|
|
android:name=".filepicker.TermuxDocumentsProvider"
|
|
android:authorities="${TERMUX_PACKAGE_NAME}.documents"
|
|
android:exported="true"
|
|
android:grantUriPermissions="true"
|
|
android:permission="android.permission.MANAGE_DOCUMENTS">
|
|
<intent-filter>
|
|
<action android:name="android.content.action.DOCUMENTS_PROVIDER" />
|
|
</intent-filter>
|
|
</provider>
|
|
|
|
<provider
|
|
android:name=".app.TermuxOpenReceiver$ContentProvider"
|
|
android:authorities="${TERMUX_PACKAGE_NAME}.files"
|
|
android:exported="true"
|
|
android:grantUriPermissions="true"
|
|
android:permission="${TERMUX_PACKAGE_NAME}.permission.RUN_COMMAND" />
|
|
|
|
|
|
<receiver android:name=".app.TermuxOpenReceiver" android:exported="false" />
|
|
|
|
<receiver android:name=".shared.activities.ReportActivity$ReportActivityBroadcastReceiver" android:exported="false" />
|
|
|
|
|
|
<service
|
|
android:name=".app.TermuxService"
|
|
android:exported="false" />
|
|
|
|
<service
|
|
android:name=".app.RunCommandService"
|
|
android:exported="true"
|
|
android:permission="${TERMUX_PACKAGE_NAME}.permission.RUN_COMMAND">
|
|
<intent-filter>
|
|
<action android:name="${TERMUX_PACKAGE_NAME}.RUN_COMMAND" />
|
|
</intent-filter>
|
|
</service>
|
|
|
|
|
|
<!-- This (or rather, value 2.1 or higher) is needed to make the Samsung Galaxy S8 mark the
|
|
app with "This app is optimized to run in full screen." -->
|
|
<meta-data
|
|
android:name="android.max_aspect"
|
|
android:value="10.0" />
|
|
|
|
|
|
<!-- https://developer.samsung.com/samsung-dex/modify-optimizing.html -->
|
|
|
|
<!-- Version < 3.0. DeX Mode and Screen Mirroring support -->
|
|
<meta-data
|
|
android:name="com.samsung.android.keepalive.density"
|
|
android:value="true" />
|
|
|
|
<!-- Version >= 3.0. DeX Dual Mode support -->
|
|
<meta-data
|
|
android:name="com.samsung.android.multidisplay.keep_process_alive"
|
|
android:value="true" />
|
|
|
|
<meta-data
|
|
android:name="com.sec.android.support.multiwindow"
|
|
android:value="true" />
|
|
|
|
</application>
|
|
|
|
</manifest>
|