Added: Allow users to disable termux file view and share receivers

The user can add `disable-file-share-receiver=true` entry to `termux.properties` file to disable termux from showing in Android file `Share With` apps list.
The user can add `disable-file-view-receiver=true` entry to `termux.properties` file to disable termux from showing in Android file `Open With` apps list.

The default value is `false`. Restarting termux app or running `termux-reload-settings` command will update the behaviour instantaneously if changed.

Closes #2549
This commit is contained in:
agnostic-apollo
2022-06-14 03:56:00 +05:00
parent 79d799a99d
commit af6ac30bb1
7 changed files with 109 additions and 17 deletions

View File

@@ -11,7 +11,7 @@ import java.util.Formatter;
import java.util.List;
/*
* Version: v0.50.0
* Version: v0.51.0
* SPDX-License-Identifier: MIT
*
* Changelog
@@ -271,6 +271,9 @@ import java.util.List;
*
* - 0.50.0 (2022-06-11)
* - Added `TERMUX_CONFIG_PREFIX_DIR_PATH`, `TERMUX_ENV_FILE_PATH` and `TERMUX_ENV_TEMP_FILE_PATH`.
*
* - 0.51.0 (2022-06-13)
* - Added `TERMUX_APP.FILE_SHARE_RECEIVER_ACTIVITY_CLASS_NAME` and `TERMUX_APP.FILE_VIEW_RECEIVER_ACTIVITY_CLASS_NAME`.
*/
/**
@@ -907,9 +910,16 @@ public final class TermuxConstants {
/** termux-am socket file path */
public static final String TERMUX_AM_SOCKET_FILE_PATH = APPS_DIR_PATH + "/termux-am/am.sock"; // Default: "/data/data/com.termux/files/apps/com.termux/termux-am/am.sock"
/** Termux app BuildConfig class name */
public static final String BUILD_CONFIG_CLASS_NAME = TERMUX_PACKAGE_NAME + ".BuildConfig"; // Default: "com.termux.BuildConfig"
/** Termux app FileShareReceiverActivity class name */
public static final String FILE_SHARE_RECEIVER_ACTIVITY_CLASS_NAME = TERMUX_PACKAGE_NAME + ".app.api.file.FileShareReceiverActivity"; // Default: "com.termux.app.api.file.FileShareReceiverActivity"
/** Termux app FileViewReceiverActivity class name */
public static final String FILE_VIEW_RECEIVER_ACTIVITY_CLASS_NAME = TERMUX_PACKAGE_NAME + ".app.api.file.FileViewReceiverActivity"; // Default: "com.termux.app.api.file.FileViewReceiverActivity"
/** Termux app core activity name. */
public static final String TERMUX_ACTIVITY_NAME = TERMUX_PACKAGE_NAME + ".app.TermuxActivity"; // Default: "com.termux.app.TermuxActivity"

View File

@@ -18,7 +18,7 @@ import java.util.List;
import java.util.Set;
/*
* Version: v0.17.0
* Version: v0.18.0
* SPDX-License-Identifier: MIT
*
* Changelog
@@ -77,6 +77,9 @@ import java.util.Set;
*
* - 0.17.0 (2022-03-17)
* - Add `KEY_DELETE_TMPDIR_FILES_OLDER_THAN_X_DAYS_ON_EXIT`.
*
* - 0.18.0 (2022-06-13)
* - Add `KEY_DISABLE_FILE_SHARE_RECEIVER` and `KEY_DISABLE_FILE_VIEW_RECEIVER`.
*/
/**
@@ -96,6 +99,14 @@ public final class TermuxPropertyConstants {
/* boolean */
/** Defines the key for whether file share receiver of the app is enabled. */
public static final String KEY_DISABLE_FILE_SHARE_RECEIVER = "disable-file-share-receiver"; // Default: "disable-file-share-receiver"
/** Defines the key for whether file view receiver of the app is enabled. */
public static final String KEY_DISABLE_FILE_VIEW_RECEIVER = "disable-file-view-receiver"; // Default: "disable-file-view-receiver"
/** Defines the key for whether hardware keyboard shortcuts are enabled. */
public static final String KEY_DISABLE_HARDWARE_KEYBOARD_SHORTCUTS = "disable-hardware-keyboard-shortcuts"; // Default: "disable-hardware-keyboard-shortcuts"
@@ -380,6 +391,8 @@ public final class TermuxPropertyConstants {
* */
public static final Set<String> TERMUX_APP_PROPERTIES_LIST = new HashSet<>(Arrays.asList(
/* boolean */
KEY_DISABLE_FILE_SHARE_RECEIVER,
KEY_DISABLE_FILE_VIEW_RECEIVER,
KEY_DISABLE_HARDWARE_KEYBOARD_SHORTCUTS,
KEY_DISABLE_TERMINAL_SESSION_CHANGE_TOAST,
KEY_ENFORCE_CHAR_BASED_INPUT,
@@ -426,6 +439,8 @@ public final class TermuxPropertyConstants {
* default: false
*/
public static final Set<String> TERMUX_DEFAULT_FALSE_BOOLEAN_BEHAVIOUR_PROPERTIES_LIST = new HashSet<>(Arrays.asList(
KEY_DISABLE_FILE_SHARE_RECEIVER,
KEY_DISABLE_FILE_VIEW_RECEIVER,
KEY_DISABLE_HARDWARE_KEYBOARD_SHORTCUTS,
KEY_DISABLE_TERMINAL_SESSION_CHANGE_TOAST,
KEY_ENFORCE_CHAR_BASED_INPUT,

View File

@@ -563,6 +563,15 @@ public abstract class TermuxSharedProperties {
public boolean shouldAllowExternalApps() {
return (boolean) getInternalPropertyValue(TermuxConstants.PROP_ALLOW_EXTERNAL_APPS, true);
}
public boolean isFileShareReceiverDisabled() {
return (boolean) getInternalPropertyValue(TermuxPropertyConstants.KEY_DISABLE_FILE_SHARE_RECEIVER, true);
}
public boolean isFileViewReceiverDisabled() {
return (boolean) getInternalPropertyValue(TermuxPropertyConstants.KEY_DISABLE_FILE_VIEW_RECEIVER, true);
}
public boolean areHardwareKeyboardShortcutsDisabled() {
return (boolean) getInternalPropertyValue(TermuxPropertyConstants.KEY_DISABLE_HARDWARE_KEYBOARD_SHORTCUTS, true);
}