1515import com .termux .shared .activity .ActivityUtils ;
1616import com .termux .shared .activity .media .AppCompatActivityUtils ;
1717import com .termux .shared .android .AndroidUtils ;
18+ import com .termux .shared .android .PackageUtils ;
1819import com .termux .shared .android .PermissionUtils ;
1920import com .termux .shared .data .IntentUtils ;
2021import com .termux .shared .file .FileUtils ;
2122import com .termux .shared .logger .Logger ;
23+ import com .termux .shared .markdown .MarkdownUtils ;
2224import com .termux .shared .models .ReportInfo ;
2325import com .termux .shared .termux .TermuxConstants ;
2426import com .termux .shared .termux .TermuxUtils ;
2527import com .termux .shared .termux .theme .TermuxThemeUtils ;
2628import com .termux .shared .theme .NightMode ;
2729import com .termux .api .R ;
2830
29- public class TermuxAPIActivity extends AppCompatActivity {
31+ public class TermuxAPIMainActivity extends AppCompatActivity {
3032
3133 private TextView mBatteryOptimizationNotDisabledWarning ;
3234 private TextView mDisplayOverOtherAppsPermissionNotGrantedWarning ;
3335
3436 private Button mDisableBatteryOptimization ;
3537 private Button mGrantDisplayOverOtherAppsPermission ;
3638
37- private static final String LOG_TAG = "TermuxAPIActivity " ;
39+ public static final String LOG_TAG = "TermuxAPIMainActivity " ;
3840
3941 @ Override
4042 protected void onCreate (Bundle savedInstanceState ) {
4143 Logger .logDebug (LOG_TAG , "onCreate" );
4244
4345 super .onCreate (savedInstanceState );
44- setContentView (R .layout .activity_termux_api );
46+ setContentView (R .layout .activity_termux_api_main );
4547
4648 // Set NightMode.APP_NIGHT_MODE
4749 TermuxThemeUtils .setAppNightMode (this );
@@ -60,22 +62,25 @@ protected void onCreate(Bundle savedInstanceState) {
6062 mDisableBatteryOptimization .setOnClickListener (v -> requestDisableBatteryOptimizations ());
6163
6264 mDisplayOverOtherAppsPermissionNotGrantedWarning = findViewById (R .id .textview_display_over_other_apps_not_granted_warning );
63- mGrantDisplayOverOtherAppsPermission = findViewById (R .id .btn_grant_display_over_other_apps_permission );
65+ mGrantDisplayOverOtherAppsPermission = findViewById (R .id .button_grant_display_over_other_apps_permission );
6466 mGrantDisplayOverOtherAppsPermission .setOnClickListener (v -> requestDisplayOverOtherAppsPermission ());
6567 }
6668
6769 @ Override
6870 protected void onResume () {
6971 super .onResume ();
7072
73+ Logger .logVerbose (LOG_TAG , "onResume" );
74+
7175 checkIfBatteryOptimizationNotDisabled ();
7276 checkIfDisplayOverOtherAppsPermissionNotGranted ();
77+ setChangeLauncherActivityStateViews ();
7378 }
7479
7580 @ Override
7681 public boolean onCreateOptionsMenu (Menu menu ) {
7782 super .onCreateOptionsMenu (menu );
78- getMenuInflater ().inflate (R .menu .activity_termux_api , menu );
83+ getMenuInflater ().inflate (R .menu .activity_termux_api_main , menu );
7984 return true ;
8085 }
8186
@@ -101,18 +106,18 @@ public void run() {
101106 String title = "About" ;
102107
103108 StringBuilder aboutString = new StringBuilder ();
104- aboutString .append (TermuxUtils .getAppInfoMarkdownString (TermuxAPIActivity .this , TermuxUtils .AppInfoMode .TERMUX_AND_PLUGIN_PACKAGE ));
105- aboutString .append ("\n \n " ).append (AndroidUtils .getDeviceInfoMarkdownString (TermuxAPIActivity .this ));
106- aboutString .append ("\n \n " ).append (TermuxUtils .getImportantLinksMarkdownString (TermuxAPIActivity .this ));
109+ aboutString .append (TermuxUtils .getAppInfoMarkdownString (TermuxAPIMainActivity .this , TermuxUtils .AppInfoMode .TERMUX_AND_PLUGIN_PACKAGE ));
110+ aboutString .append ("\n \n " ).append (AndroidUtils .getDeviceInfoMarkdownString (TermuxAPIMainActivity .this ));
111+ aboutString .append ("\n \n " ).append (TermuxUtils .getImportantLinksMarkdownString (TermuxAPIMainActivity .this ));
107112
108113 ReportInfo reportInfo = new ReportInfo (title ,
109- TermuxConstants .TERMUX_APP . TERMUX_SETTINGS_ACTIVITY_NAME , title );
114+ TermuxConstants .TERMUX_API_APP . TERMUX_API_MAIN_ACTIVITY_NAME , title );
110115 reportInfo .setReportString (aboutString .toString ());
111116 reportInfo .setReportSaveFileLabelAndPath (title ,
112117 Environment .getExternalStorageDirectory () + "/" +
113118 FileUtils .sanitizeFileName (TermuxConstants .TERMUX_APP_NAME + "-" + title + ".log" , true , true ));
114119
115- ReportActivity .startReportActivity (TermuxAPIActivity .this , reportInfo );
120+ ReportActivity .startReportActivity (TermuxAPIMainActivity .this , reportInfo );
116121 }
117122 }.start ();
118123 }
@@ -159,6 +164,54 @@ private void requestDisplayOverOtherAppsPermission() {
159164
160165
161166
167+ private void setChangeLauncherActivityStateViews () {
168+ String packageName = TermuxConstants .TERMUX_API_PACKAGE_NAME ;
169+ String className = TermuxConstants .TERMUX_API_APP .TERMUX_API_LAUNCHER_ACTIVITY_NAME ;
170+
171+ TextView changeLauncherActivityStateTextView = findViewById (R .id .textview_change_launcher_activity_state_details );
172+ changeLauncherActivityStateTextView .setText (MarkdownUtils .getSpannedMarkdownText (this ,
173+ getString (R .string .msg_change_launcher_activity_state_info , packageName , getClass ().getName ())));
174+
175+ Button changeLauncherActivityStateButton = findViewById (R .id .button_change_launcher_activity_state );
176+ String stateChangeMessage ;
177+ boolean newState ;
178+
179+ Boolean currentlyDisabled = PackageUtils .isComponentDisabled (this ,
180+ packageName , className , false );
181+ if (currentlyDisabled == null ) {
182+ Logger .logError (LOG_TAG , "Failed to check if \" " + packageName + "/" + className + "\" launcher activity is disabled" );
183+ changeLauncherActivityStateButton .setEnabled (false );
184+ changeLauncherActivityStateButton .setAlpha (.5f );
185+ changeLauncherActivityStateButton .setText (com .termux .shared .R .string .action_disable_launcher_icon );
186+ changeLauncherActivityStateButton .setOnClickListener (null );
187+ return ;
188+ }
189+
190+ changeLauncherActivityStateButton .setEnabled (true );
191+ changeLauncherActivityStateButton .setAlpha (1f );
192+ if (currentlyDisabled ) {
193+ changeLauncherActivityStateButton .setText (com .termux .shared .R .string .action_enable_launcher_icon );
194+ stateChangeMessage = getString (com .termux .shared .R .string .msg_enabling_launcher_icon , TermuxConstants .TERMUX_API_APP_NAME );
195+ newState = true ;
196+ } else {
197+ changeLauncherActivityStateButton .setText (com .termux .shared .R .string .action_disable_launcher_icon );
198+ stateChangeMessage = getString (com .termux .shared .R .string .msg_disabling_launcher_icon , TermuxConstants .TERMUX_API_APP_NAME );
199+ newState = false ;
200+ }
201+
202+ changeLauncherActivityStateButton .setOnClickListener (v -> {
203+ Logger .logInfo (LOG_TAG , stateChangeMessage );
204+ String errmsg = PackageUtils .setComponentState (this ,
205+ packageName , className , newState , stateChangeMessage , true );
206+ if (errmsg == null )
207+ setChangeLauncherActivityStateViews ();
208+ else
209+ Logger .logError (LOG_TAG , errmsg );
210+ });
211+ }
212+
213+
214+
162215 @ Override
163216 protected void onActivityResult (int requestCode , int resultCode , Intent data ) {
164217 super .onActivityResult (requestCode , resultCode , data );
0 commit comments