termux-app
108 строк · 3.9 Кб
1package com.termux.shared.shell.am;
2
3import android.Manifest;
4
5import androidx.annotation.NonNull;
6
7import com.termux.shared.logger.Logger;
8import com.termux.shared.markdown.MarkdownUtils;
9import com.termux.shared.net.socket.local.ILocalSocketManager;
10import com.termux.shared.net.socket.local.LocalSocketRunConfig;
11
12import java.io.Serializable;
13
14/**
15* Run config for {@link AmSocketServer}.
16*/
17public class AmSocketServerRunConfig extends LocalSocketRunConfig implements Serializable {
18
19/**
20* Check if {@link Manifest.permission#SYSTEM_ALERT_WINDOW} has been granted if running on Android `>= 10`
21* if starting activities. Will also check when starting services in case starting foreground
22* service is not allowed.
23*
24* https://developer.android.com/guide/components/activities/background-starts
25*/
26private Boolean mCheckDisplayOverAppsPermission;
27public static final boolean DEFAULT_CHECK_DISPLAY_OVER_APPS_PERMISSION = true;
28
29/**
30* Create an new instance of {@link AmSocketServerRunConfig}.
31*
32* @param title The {@link #mTitle} value.
33* @param path The {@link #mPath} value.
34* @param localSocketManagerClient The {@link #mLocalSocketManagerClient} value.
35*/
36public AmSocketServerRunConfig(@NonNull String title, @NonNull String path, @NonNull ILocalSocketManager localSocketManagerClient) {
37super(title, path, localSocketManagerClient);
38}
39
40
41/** Get {@link #mCheckDisplayOverAppsPermission} if set, otherwise {@link #DEFAULT_CHECK_DISPLAY_OVER_APPS_PERMISSION}. */
42public boolean shouldCheckDisplayOverAppsPermission() {
43return mCheckDisplayOverAppsPermission != null ? mCheckDisplayOverAppsPermission : DEFAULT_CHECK_DISPLAY_OVER_APPS_PERMISSION;
44}
45
46/** Set {@link #mCheckDisplayOverAppsPermission}. */
47public void setCheckDisplayOverAppsPermission(Boolean checkDisplayOverAppsPermission) {
48mCheckDisplayOverAppsPermission = checkDisplayOverAppsPermission;
49}
50
51
52
53/**
54* Get a log {@link String} for {@link AmSocketServerRunConfig}.
55*
56* @param config The {@link AmSocketServerRunConfig} to get info of.
57* @return Returns the log {@link String}.
58*/
59@NonNull
60public static String getRunConfigLogString(final AmSocketServerRunConfig config) {
61if (config == null) return "null";
62return config.getLogString();
63}
64
65/** Get a log {@link String} for the {@link AmSocketServerRunConfig}. */
66@NonNull
67public String getLogString() {
68StringBuilder logString = new StringBuilder();
69logString.append(super.getLogString()).append("\n\n\n");
70
71logString.append("Am Command:");
72logString.append("\n").append(Logger.getSingleLineLogStringEntry("CheckDisplayOverAppsPermission", shouldCheckDisplayOverAppsPermission(), "-"));
73
74return logString.toString();
75}
76
77/**
78* Get a markdown {@link String} for {@link AmSocketServerRunConfig}.
79*
80* @param config The {@link AmSocketServerRunConfig} to get info of.
81* @return Returns the markdown {@link String}.
82*/
83public static String getRunConfigMarkdownString(final AmSocketServerRunConfig config) {
84if (config == null) return "null";
85return config.getMarkdownString();
86}
87
88/** Get a markdown {@link String} for the {@link AmSocketServerRunConfig}. */
89@NonNull
90public String getMarkdownString() {
91StringBuilder markdownString = new StringBuilder();
92markdownString.append(super.getMarkdownString()).append("\n\n\n");
93
94markdownString.append("## ").append("Am Command");
95markdownString.append("\n").append(MarkdownUtils.getSingleLineMarkdownStringEntry("CheckDisplayOverAppsPermission", shouldCheckDisplayOverAppsPermission(), "-"));
96
97return markdownString.toString();
98}
99
100
101
102@NonNull
103@Override
104public String toString() {
105return getLogString();
106}
107
108}
109