Define TermuxConstants class to store all shared constants of Termux app and its plugins

This commit removes almost all hardcoded paths in Termux app and moves the references to the `TermuxConstants` class.

The `TermuxConstants` class should be imported by other termux plugin apps instead of copying and defining their own constants. The 3rd party apps can also import it for interacting with termux apps. App and sub class specific constants are defined in their own nested classes to keep them segregated from each other and for better readability.
This commit is contained in:
agnostic-apollo
2021-03-08 15:09:22 +05:00
parent 395759cc0a
commit 14c49867f7
14 changed files with 361 additions and 120 deletions

View File

@@ -2,13 +2,13 @@
xmlns:tools="http://schemas.android.com/tools"
package="com.termux"
android:installLocation="internalOnly"
android:sharedUserId="com.termux"
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="com.termux.permission.RUN_COMMAND"
<permission android:name="${TERMUX_PACKAGE_NAME}.permission.RUN_COMMAND"
android:label="@string/run_command_permission_label"
android:description="@string/run_command_permission_description"
android:icon="@mipmap/ic_launcher"
@@ -28,13 +28,14 @@
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<application
android:extractNativeLibs="true"
android:allowBackup="false"
android:label="@string/application_name"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:banner="@drawable/banner"
android:label="@string/application_name"
android:theme="@style/Theme.Termux"
android:extractNativeLibs="true"
android:allowBackup="false"
android:supportsRtl="false" >
<!-- This (or rather, value 2.1 or higher) is needed to make the Samsung Galaxy S8
@@ -42,7 +43,7 @@
<meta-data android:name="android.max_aspect" android:value="10.0" />
<activity
android:name="com.termux.app.TermuxActivity"
android:name=".app.TermuxActivity"
android:label="@string/application_name"
android:configChanges="orientation|screenSize|smallestScreenSize|density|screenLayout|uiMode|keyboard|keyboardHidden|navigation"
android:launchMode="singleTask"
@@ -60,7 +61,7 @@
</activity>
<activity
android:name="com.termux.app.TermuxHelpActivity"
android:name=".app.TermuxHelpActivity"
android:exported="false"
android:theme="@android:style/Theme.Material.Light.DarkActionBar"
android:parentActivityName=".app.TermuxActivity"
@@ -68,9 +69,9 @@
android:label="@string/application_name" />
<activity
android:name="com.termux.filepicker.TermuxFileReceiverActivity"
android:name=".filepicker.TermuxFileReceiverActivity"
android:label="@string/application_name"
android:taskAffinity="com.termux.filereceiver"
android:taskAffinity="${TERMUX_PACKAGE_NAME}.filereceiver"
android:excludeFromRecents="true"
android:resizeableActivity="true"
android:noHistory="true">
@@ -100,7 +101,7 @@
<activity-alias
android:name=".HomeActivity"
android:targetActivity="com.termux.app.TermuxActivity">
android:targetActivity=".app.TermuxActivity">
<!-- Launch activity automatically on boot on Android Things devices -->
<intent-filter>
@@ -112,7 +113,7 @@
<provider
android:name=".filepicker.TermuxDocumentsProvider"
android:authorities="com.termux.documents"
android:authorities="${TERMUX_PACKAGE_NAME}.documents"
android:grantUriPermissions="true"
android:exported="true"
android:permission="android.permission.MANAGE_DOCUMENTS">
@@ -122,25 +123,25 @@
</provider>
<service
android:name="com.termux.app.TermuxService"
android:name=".app.TermuxService"
android:exported="false" />
<service
android:name=".app.RunCommandService"
android:exported="true"
android:permission="com.termux.permission.RUN_COMMAND" >
android:permission="${TERMUX_PACKAGE_NAME}.permission.RUN_COMMAND" >
<intent-filter>
<action android:name="com.termux.RUN_COMMAND" />
<action android:name="${TERMUX_PACKAGE_NAME}.RUN_COMMAND" />
</intent-filter>
</service>
<receiver android:name=".app.TermuxOpenReceiver" />
<provider android:authorities="com.termux.files"
<provider android:authorities="${TERMUX_PACKAGE_NAME}.files"
android:readPermission="android.permission.permRead"
android:exported="true"
android:grantUriPermissions="true"
android:name="com.termux.app.TermuxOpenReceiver$ContentProvider" />
android:name=".app.TermuxOpenReceiver$ContentProvider" />
<meta-data android:name="com.sec.android.support.multiwindow" android:value="true" />
<meta-data android:name="com.samsung.android.multidisplay.keep_process_alive" android:value="true"/>
</application>