2828import io .github .muntashirakon .AppManager .logcat .LogViewerActivity ;
2929import io .github .muntashirakon .AppManager .scanner .ScannerActivity ;
3030import io .github .muntashirakon .AppManager .self .SelfPermissions ;
31+ import io .github .muntashirakon .AppManager .terminal .TermActivity ;
3132import io .github .muntashirakon .AppManager .utils .AppPref ;
3233import io .github .muntashirakon .AppManager .utils .ContextUtils ;
3334import 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