这是indexloc提供的服务,不要输入任何密码
Skip to content

Commit 3bea194

Browse files
Changed: Remove hardcoded com.termux values
1 parent 9a1e19c commit 3bea194

File tree

8 files changed

+57
-35
lines changed

8 files changed

+57
-35
lines changed

app/src/main/java/com/termux/api/SocketListener.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import android.net.LocalSocket;
77

88
import com.termux.shared.logger.Logger;
9+
import com.termux.shared.termux.TermuxConstants;
910

1011
import java.io.BufferedWriter;
1112
import java.io.DataInputStream;
@@ -19,7 +20,7 @@
1920

2021
public class SocketListener {
2122

22-
public static final String LISTEN_ADDRESS = "com.termux.api://listen";
23+
public static final String LISTEN_ADDRESS = TermuxConstants.TERMUX_API_PACKAGE_NAME + "://listen";
2324
private static final Pattern EXTRA_STRING = Pattern.compile("(-e|--es|--esa) +([^ ]+) +\"(.*?)(?<!\\\\)\"", Pattern.DOTALL);
2425
private static final Pattern EXTRA_BOOLEAN = Pattern.compile("--ez +([^ ]+) +([^ ]+)");
2526
private static final Pattern EXTRA_INT = Pattern.compile("--ei +([^ ]+) +(-?[0-9]+)");
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.termux.api;
2+
3+
import com.termux.shared.termux.TermuxConstants;
4+
import static com.termux.shared.termux.TermuxConstants.TERMUX_API_PACKAGE_NAME;
5+
import static com.termux.shared.termux.TermuxConstants.TERMUX_PACKAGE_NAME;
6+
7+
public class TermuxAPIConstants {
8+
9+
/**
10+
* Termux:API Receiver name.
11+
*/
12+
public static final String TERMUX_API_RECEIVER_NAME = TERMUX_API_PACKAGE_NAME + ".TermuxApiReceiver"; // Default to "com.termux.api.TermuxApiReceiver"
13+
14+
}

app/src/main/java/com/termux/api/activities/TermuxApiPermissionActivity.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
import com.termux.api.util.ResultReturner;
1111
import com.termux.shared.logger.Logger;
12+
import com.termux.shared.termux.TermuxConstants;
1213

1314
import java.util.ArrayList;
1415

@@ -19,7 +20,7 @@ public class TermuxApiPermissionActivity extends Activity {
1920
/**
2021
* Intent extra containing the permissions to request.
2122
*/
22-
public static final String PERMISSIONS_EXTRA = "com.termux.api.permission_extra";
23+
public static final String PERMISSIONS_EXTRA = TermuxConstants.TERMUX_API_PACKAGE_NAME + ".permission_extra";
2324

2425
/**
2526
* Check for and request permissions if necessary.

app/src/main/java/com/termux/api/apis/DialogAPI.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import com.termux.api.util.ResultReturner;
4747
import com.termux.api.activities.TermuxApiPermissionActivity;
4848
import com.termux.shared.logger.Logger;
49+
import com.termux.shared.termux.TermuxConstants;
4950
import com.termux.shared.termux.theme.TermuxThemeUtils;
5051
import com.termux.shared.theme.NightMode;
5152
import com.termux.shared.theme.ThemeUtils;
@@ -702,7 +703,7 @@ protected boolean isCurrentAppTermux() {
702703
for (final ActivityManager.RunningAppProcessInfo processInfo : runningProcesses) {
703704
if (processInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
704705
for (final String activeProcess : processInfo.pkgList) {
705-
if (activeProcess.equals("com.termux")) {
706+
if (activeProcess.equals(TermuxConstants.TERMUX_PACKAGE_NAME)) {
706707
return true;
707708
}
708709
}

app/src/main/java/com/termux/api/apis/JobSchedulerAPI.java

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616
import com.termux.api.TermuxApiReceiver;
1717
import com.termux.api.util.ResultReturner;
1818
import com.termux.shared.logger.Logger;
19+
import com.termux.shared.shell.command.ExecutionCommand;
20+
import com.termux.shared.termux.TermuxConstants;
21+
import com.termux.shared.termux.TermuxConstants.TERMUX_APP.TERMUX_SERVICE;
1922

2023
import java.io.File;
2124
import java.util.ArrayList;
@@ -207,12 +210,7 @@ private static void cancelJob(TermuxApiReceiver apiReceiver, Intent intent, JobS
207210

208211
public static class JobSchedulerService extends JobService {
209212

210-
public static final String SCRIPT_FILE_PATH = "com.termux.api.jobscheduler_script_path";
211-
212-
// Constants from TermuxService.
213-
private static final String TERMUX_SERVICE = "com.termux.app.TermuxService";
214-
private static final String ACTION_EXECUTE = "com.termux.service_execute";
215-
private static final String EXTRA_EXECUTE_IN_BACKGROUND = "com.termux.execute.background";
213+
public static final String SCRIPT_FILE_PATH = TermuxConstants.TERMUX_API_PACKAGE_NAME + ".jobscheduler_script_path";
216214

217215
private static final String LOG_TAG = "JobSchedulerService";
218216

@@ -223,17 +221,22 @@ public boolean onStartJob(JobParameters params) {
223221
PersistableBundle extras = params.getExtras();
224222
String filePath = extras.getString(SCRIPT_FILE_PATH);
225223

226-
Uri scriptUri = new Uri.Builder().scheme("com.termux.file").path(filePath).build();
227-
Intent executeIntent = new Intent(ACTION_EXECUTE, scriptUri);
228-
executeIntent.setClassName("com.termux", TERMUX_SERVICE);
229-
executeIntent.putExtra(EXTRA_EXECUTE_IN_BACKGROUND, true);
224+
ExecutionCommand executionCommand = new ExecutionCommand();
225+
executionCommand.executableUri = new Uri.Builder().scheme(TERMUX_SERVICE.URI_SCHEME_SERVICE_EXECUTE).path(filePath).build();
226+
executionCommand.runner = ExecutionCommand.Runner.APP_SHELL.getName();
227+
228+
// Create execution intent with the action TERMUX_SERVICE#ACTION_SERVICE_EXECUTE to be sent to the TERMUX_SERVICE
229+
Intent executionIntent = new Intent(TERMUX_SERVICE.ACTION_SERVICE_EXECUTE, executionCommand.executableUri);
230+
executionIntent.setClassName(TermuxConstants.TERMUX_PACKAGE_NAME, TermuxConstants.TERMUX_APP.TERMUX_SERVICE_NAME);
231+
executionIntent.putExtra(TERMUX_SERVICE.EXTRA_RUNNER, executionCommand.runner);
232+
executionIntent.putExtra(TERMUX_SERVICE.EXTRA_BACKGROUND, true); // Also pass in case user using termux-app version < 0.119.0
230233

231234
Context context = getApplicationContext();
232235
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
233236
// https://developer.android.com/about/versions/oreo/background.html
234-
context.startForegroundService(executeIntent);
237+
context.startForegroundService(executionIntent);
235238
} else {
236-
context.startService(executeIntent);
239+
context.startService(executionIntent);
237240
}
238241

239242
Logger.logInfo(LOG_TAG, "Job started for \"" + filePath + "\"");

app/src/main/java/com/termux/api/apis/NotificationAPI.java

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,27 +20,25 @@
2020
import androidx.core.util.Pair;
2121

2222
import com.termux.api.R;
23+
import com.termux.api.TermuxAPIConstants;
2324
import com.termux.api.TermuxApiReceiver;
2425
import com.termux.api.util.ResultReturner;
2526
import com.termux.shared.logger.Logger;
27+
import com.termux.shared.shell.command.ExecutionCommand;
28+
import com.termux.shared.termux.TermuxConstants;
29+
import com.termux.shared.termux.TermuxConstants.TERMUX_APP.TERMUX_SERVICE;
2630

2731
import java.io.File;
2832
import java.io.PrintWriter;
2933
import java.lang.reflect.Field;
3034
import java.util.Objects;
3135
import java.util.UUID;
3236

33-
import static com.termux.shared.termux.TermuxConstants.TERMUX_PREFIX_DIR_PATH;
34-
3537
public class NotificationAPI {
3638

3739
private static final String LOG_TAG = "NotificationAPI";
3840

39-
public static final String TERMUX_SERVICE = "com.termux.app.TermuxService";
40-
public static final String ACTION_EXECUTE = "com.termux.service_execute";
41-
public static final String EXTRA_ARGUMENTS = "com.termux.execute.arguments";
42-
public static final String BIN_SH = TERMUX_PREFIX_DIR_PATH+"/bin/sh";
43-
private static final String EXTRA_EXECUTE_IN_BACKGROUND = "com.termux.execute.background";
41+
public static final String BIN_SH = TermuxConstants.TERMUX_PREFIX_DIR_PATH + "/bin/sh";
4442
private static final String CHANNEL_ID = "termux-notification";
4543
private static final String CHANNEL_TITLE = "Termux API notification channel";
4644
private static final String KEY_TEXT_REPLY = "TERMUX_TEXT_REPLY";
@@ -359,7 +357,7 @@ private static Intent getMessageReplyIntent(Intent oldIntent,
359357
String buttonText, String buttonAction,
360358
String notificationId) {
361359
Intent intent = oldIntent.
362-
setClassName("com.termux.api", "com.termux.api.TermuxApiReceiver").
360+
setClassName(TermuxConstants.TERMUX_API_PACKAGE_NAME, TermuxAPIConstants.TERMUX_API_RECEIVER_NAME).
363361
putExtra("api_method", "NotificationReply").
364362
putExtra("id", notificationId).
365363
putExtra("action", buttonAction).
@@ -410,16 +408,18 @@ public static void onReceiveReplyToNotification(TermuxApiReceiver termuxApiRecei
410408
}
411409

412410
static Intent createExecuteIntent(String action){
413-
String[] arguments = new String[]{"-c", action};
414-
Uri executeUri = new Uri.Builder().scheme("com.termux.file")
415-
.path(BIN_SH)
416-
.appendQueryParameter("arguments", Arrays.toString(arguments))
417-
.build();
418-
Intent executeIntent = new Intent(ACTION_EXECUTE, executeUri);
419-
executeIntent.setClassName("com.termux", TERMUX_SERVICE);
420-
executeIntent.putExtra(EXTRA_EXECUTE_IN_BACKGROUND, true);
421-
executeIntent.putExtra(EXTRA_ARGUMENTS, arguments);
422-
return executeIntent;
411+
ExecutionCommand executionCommand = new ExecutionCommand();
412+
executionCommand.executableUri = new Uri.Builder().scheme(TERMUX_SERVICE.URI_SCHEME_SERVICE_EXECUTE).path(BIN_SH).build();
413+
executionCommand.arguments = new String[]{"-c", action};
414+
executionCommand.runner = ExecutionCommand.Runner.APP_SHELL.getName();
415+
416+
// Create execution intent with the action TERMUX_SERVICE#ACTION_SERVICE_EXECUTE to be sent to the TERMUX_SERVICE
417+
Intent executionIntent = new Intent(TERMUX_SERVICE.ACTION_SERVICE_EXECUTE, executionCommand.executableUri);
418+
executionIntent.setClassName(TermuxConstants.TERMUX_PACKAGE_NAME, TermuxConstants.TERMUX_APP.TERMUX_SERVICE_NAME);
419+
executionIntent.putExtra(TERMUX_SERVICE.EXTRA_ARGUMENTS, executionCommand.arguments);
420+
executionIntent.putExtra(TERMUX_SERVICE.EXTRA_RUNNER, executionCommand.runner);
421+
executionIntent.putExtra(TERMUX_SERVICE.EXTRA_BACKGROUND, true); // Also pass in case user using termux-app version < 0.119.0
422+
return executionIntent;
423423
}
424424

425425
static PendingIntent createAction(final Context context, String action){

app/src/main/java/com/termux/api/apis/StorageGetAPI.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import com.termux.api.util.ResultReturner;
1313
import com.termux.shared.data.IntentUtils;
1414
import com.termux.shared.logger.Logger;
15+
import com.termux.shared.termux.TermuxConstants;
1516

1617
import java.io.File;
1718
import java.io.FileOutputStream;
@@ -21,7 +22,7 @@
2122

2223
public class StorageGetAPI {
2324

24-
private static final String FILE_EXTRA = "com.termux.api.storage.file";
25+
private static final String FILE_EXTRA = TermuxConstants.TERMUX_API_PACKAGE_NAME + ".storage.file";
2526

2627
private static final String LOG_TAG = "StorageGetAPI";
2728

app/src/main/java/com/termux/api/apis/UsbAPI.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import com.termux.api.TermuxApiReceiver;
1616
import com.termux.api.util.ResultReturner;
1717
import com.termux.shared.logger.Logger;
18+
import com.termux.shared.termux.TermuxConstants;
1819

1920
import java.io.IOException;
2021
import java.io.PrintWriter;
@@ -112,7 +113,7 @@ private static boolean requestPermission(final @NonNull UsbDevice device, final
112113
Looper looper = Looper.myLooper();
113114
final boolean[] result = new boolean[1];
114115

115-
final String ACTION_USB_PERMISSION = "com.termux.api.USB_PERMISSION";
116+
final String ACTION_USB_PERMISSION = TermuxConstants.TERMUX_API_PACKAGE_NAME + ".USB_PERMISSION";
116117
final BroadcastReceiver usbReceiver = new BroadcastReceiver() {
117118
@Override
118119
public void onReceive(final Context usbContext, final Intent usbIntent) {

0 commit comments

Comments
 (0)