Skip to content

Commit 63c43e7

Browse files
committed
settings: add option to disable terminal emulator in enable/disable features setting
Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
1 parent bccedc5 commit 63c43e7

2 files changed

Lines changed: 33 additions & 16 deletions

File tree

app/src/main/java/io/github/muntashirakon/AppManager/misc/LabsActivity.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,14 @@ protected void onAuthenticated(@Nullable Bundle savedInstanceState) {
5050
Intent intent = new Intent(this, SysConfigActivity.class);
5151
startActivity(intent);
5252
});
53-
addAction(this, flowLayout, R.string.title_terminal_emulator, R.drawable.ic_frost_termux)
54-
.setOnClickListener(v -> {
55-
Intent intent = new Intent(this, TermActivity.class);
56-
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
57-
startActivity(intent);
58-
});
53+
if (FeatureController.isTerminalEnabled()) {
54+
addAction(this, flowLayout, R.string.title_terminal_emulator, R.drawable.ic_frost_termux)
55+
.setOnClickListener(v -> {
56+
Intent intent = new Intent(this, TermActivity.class);
57+
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
58+
startActivity(intent);
59+
});
60+
}
5961
addAction(this, flowLayout, R.string.files, R.drawable.ic_file_document_multiple)
6062
.setOnClickListener(v -> {
6163
Intent intent = new Intent(this, FmActivity.class);

app/src/main/java/io/github/muntashirakon/AppManager/settings/FeatureController.java

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import io.github.muntashirakon.AppManager.logcat.LogViewerActivity;
2929
import io.github.muntashirakon.AppManager.scanner.ScannerActivity;
3030
import io.github.muntashirakon.AppManager.self.SelfPermissions;
31+
import io.github.muntashirakon.AppManager.terminal.TermActivity;
3132
import io.github.muntashirakon.AppManager.utils.AppPref;
3233
import io.github.muntashirakon.AppManager.utils.ContextUtils;
3334
import io.github.muntashirakon.AppManager.viewer.ExplorerActivity;
@@ -45,6 +46,7 @@ public class FeatureController {
4546
FEAT_APP_INFO,
4647
FEAT_CODE_EDITOR,
4748
FEAT_VIRUS_TOTAL,
49+
FEAT_TERMINAL,
4850
})
4951
public @interface FeatureFlags {
5052
}
@@ -60,6 +62,7 @@ public class FeatureController {
6062
private static final int FEAT_APP_INFO = 1 << 8;
6163
private static final int FEAT_CODE_EDITOR = 1 << 9;
6264
public static final int FEAT_VIRUS_TOTAL = 1 << 10;
65+
public static final int FEAT_TERMINAL = 1 << 11;
6366

6467
@NonNull
6568
public static FeatureController getInstance() {
@@ -71,24 +74,26 @@ public static FeatureController getInstance() {
7174

7275
private static final LinkedHashMap<Integer, Integer> sFeatureFlagsMap = new LinkedHashMap<Integer, Integer>() {
7376
{
77+
featureFlags.add(FEAT_APP_EXPLORER);
78+
put(FEAT_APP_EXPLORER, R.string.app_explorer);
79+
featureFlags.add(FEAT_APP_INFO);
80+
put(FEAT_APP_INFO, R.string.app_info);
81+
featureFlags.add(FEAT_CODE_EDITOR);
82+
put(FEAT_CODE_EDITOR, R.string.title_code_editor);
7483
featureFlags.add(FEAT_INTERCEPTOR);
7584
put(FEAT_INTERCEPTOR, R.string.interceptor);
85+
featureFlags.add(FEAT_LOG_VIEWER);
86+
put(FEAT_LOG_VIEWER, R.string.log_viewer);
7687
featureFlags.add(FEAT_MANIFEST);
7788
put(FEAT_MANIFEST, R.string.manifest_viewer);
78-
featureFlags.add(FEAT_SCANNER);
79-
put(FEAT_SCANNER, R.string.scanner);
8089
featureFlags.add(FEAT_INSTALLER);
8190
put(FEAT_INSTALLER, R.string.package_installer);
91+
featureFlags.add(FEAT_SCANNER);
92+
put(FEAT_SCANNER, R.string.scanner);
93+
featureFlags.add(FEAT_TERMINAL);
94+
put(FEAT_TERMINAL, R.string.title_terminal_emulator);
8295
featureFlags.add(FEAT_USAGE_ACCESS);
8396
put(FEAT_USAGE_ACCESS, R.string.usage_access);
84-
featureFlags.add(FEAT_LOG_VIEWER);
85-
put(FEAT_LOG_VIEWER, R.string.log_viewer);
86-
featureFlags.add(FEAT_APP_EXPLORER);
87-
put(FEAT_APP_EXPLORER, R.string.app_explorer);
88-
featureFlags.add(FEAT_APP_INFO);
89-
put(FEAT_APP_INFO, R.string.app_info);
90-
featureFlags.add(FEAT_CODE_EDITOR);
91-
put(FEAT_CODE_EDITOR, R.string.title_code_editor);
9297
featureFlags.add(FEAT_VIRUS_TOTAL);
9398
put(FEAT_VIRUS_TOTAL, R.string.virus_total);
9499
}
@@ -154,6 +159,10 @@ public static boolean isCodeEditorEnabled() {
154159
return getInstance().isEnabled(FEAT_CODE_EDITOR);
155160
}
156161

162+
public static boolean isTerminalEnabled() {
163+
return getInstance().isEnabled(FEAT_TERMINAL);
164+
}
165+
157166
private boolean isEnabled(@FeatureFlags int key) {
158167
ComponentName cn;
159168
switch (key) {
@@ -188,6 +197,9 @@ private boolean isEnabled(@FeatureFlags int key) {
188197
case FEAT_CODE_EDITOR:
189198
cn = getComponentName(key, CodeEditorActivity.ALIAS_EDITOR);
190199
break;
200+
case FEAT_TERMINAL:
201+
cn = getComponentName(key, TermActivity.class);
202+
break;
191203
default:
192204
throw new IllegalArgumentException();
193205
}
@@ -225,6 +237,9 @@ public void modifyState(@FeatureFlags int key, boolean enabled) {
225237
case FEAT_CODE_EDITOR:
226238
modifyState(key, CodeEditorActivity.ALIAS_EDITOR, enabled);
227239
break;
240+
case FEAT_TERMINAL:
241+
modifyState(key, TermActivity.class, enabled);
242+
break;
228243
}
229244
// Modify flags
230245
mFlags = enabled ? (mFlags | key) : (mFlags & ~key);

0 commit comments

Comments
 (0)