@yume-chan/android-bin 0.0.16 → 0.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/demo-mode.ts CHANGED
@@ -4,28 +4,51 @@
4
4
  // cspell: ignore systemui
5
5
  // cspell: ignore sysui
6
6
 
7
- import { Adb, AdbCommandBase } from '@yume-chan/adb';
7
+ import { type Adb, AdbCommandBase } from "@yume-chan/adb";
8
+
8
9
  import { Settings } from "./settings.js";
9
10
 
10
11
  export enum DemoModeSignalStrength {
11
- Hidden = 'null',
12
- Level0 = '0',
13
- Level1 = '1',
14
- Level2 = '2',
15
- Level3 = '3',
16
- Level4 = '4',
12
+ Hidden = "null",
13
+ Level0 = "0",
14
+ Level1 = "1",
15
+ Level2 = "2",
16
+ Level3 = "3",
17
+ Level4 = "4",
17
18
  }
18
19
 
19
- // https://cs.android.com/android/platform/superproject/+/master:frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java;l=1073
20
- export const DemoModeMobileDataTypes = ['1x', '3g', '4g', '4g+', '5g', '5ge', '5g+',
21
- 'e', 'g', 'h', 'h+', 'lte', 'lte+', 'dis', 'not', 'null'] as const;
22
-
23
- export type DemoModeMobileDataType = (typeof DemoModeMobileDataTypes)[number];
20
+ // https://cs.android.com/android/platform/superproject/+/master:frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/NetworkControllerImpl.java;l=1362;drc=3b775bf7ad89902f94e03d191b0d8fbdebf2bdbf
21
+ export const DemoModeMobileDataTypes = [
22
+ "1x",
23
+ "3g",
24
+ "4g",
25
+ "4g+",
26
+ "5g",
27
+ "5ge",
28
+ "5g+",
29
+ "e",
30
+ "g",
31
+ "h",
32
+ "h+",
33
+ "lte",
34
+ "lte+",
35
+ "dis",
36
+ "not",
37
+ "null",
38
+ ] as const;
39
+
40
+ export type DemoModeMobileDataType = typeof DemoModeMobileDataTypes[number];
24
41
 
25
42
  // https://cs.android.com/android/platform/superproject/+/master:frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java;l=3136
26
- export const DemoModeStatusBarModes = ['opaque', 'translucent', 'semi-transparent', 'transparent', 'warning'] as const;
43
+ export const DemoModeStatusBarModes = [
44
+ "opaque",
45
+ "translucent",
46
+ "semi-transparent",
47
+ "transparent",
48
+ "warning",
49
+ ] as const;
27
50
 
28
- export type DemoModeStatusBarMode = (typeof DemoModeStatusBarModes)[number];
51
+ export type DemoModeStatusBarMode = typeof DemoModeStatusBarModes[number];
29
52
 
30
53
  export class DemoMode extends AdbCommandBase {
31
54
  private settings: Settings;
@@ -35,145 +58,170 @@ export class DemoMode extends AdbCommandBase {
35
58
  this.settings = new Settings(adb);
36
59
  }
37
60
 
38
- public static readonly AllowedSettingKey = 'sysui_demo_allowed';
61
+ public static readonly AllowedSettingKey = "sysui_demo_allowed";
39
62
 
40
63
  // Demo Mode actually doesn't have a setting indicates its enablement
41
64
  // However Developer Mode menu uses this key
42
65
  // So we can only try our best to guess if it's enabled
43
- public static readonly EnabledSettingKey = 'sysui_tuner_demo_on';
66
+ public static readonly EnabledSettingKey = "sysui_tuner_demo_on";
44
67
 
45
68
  public async getAllowed(): Promise<boolean> {
46
- const output = await this.settings.get('global', DemoMode.AllowedSettingKey);
47
- return output.trim() === '1';
69
+ const output = await this.settings.get(
70
+ "global",
71
+ DemoMode.AllowedSettingKey
72
+ );
73
+ return output.trim() === "1";
48
74
  }
49
75
 
50
76
  public async setAllowed(value: boolean): Promise<void> {
51
77
  if (value) {
52
- await this.settings.put('global', DemoMode.AllowedSettingKey, '1');
78
+ await this.settings.put("global", DemoMode.AllowedSettingKey, "1");
53
79
  } else {
54
80
  await this.setEnabled(false);
55
- await this.settings.delete('global', DemoMode.AllowedSettingKey);
81
+ await this.settings.delete("global", DemoMode.AllowedSettingKey);
56
82
  }
57
83
  }
58
84
 
59
85
  public async getEnabled(): Promise<boolean> {
60
- const result = await this.settings.get('global', DemoMode.EnabledSettingKey);
61
- return result.trim() === '1';
86
+ const result = await this.settings.get(
87
+ "global",
88
+ DemoMode.EnabledSettingKey
89
+ );
90
+ return result.trim() === "1";
62
91
  }
63
92
 
64
93
  public async setEnabled(value: boolean): Promise<void> {
65
94
  if (value) {
66
- await this.settings.put('global', DemoMode.EnabledSettingKey, '1');
95
+ await this.settings.put("global", DemoMode.EnabledSettingKey, "1");
67
96
  } else {
68
- await this.settings.delete('global', DemoMode.EnabledSettingKey);
69
- await this.broadcast('exit');
97
+ await this.settings.delete("global", DemoMode.EnabledSettingKey);
98
+ await this.broadcast("exit");
70
99
  }
71
100
  }
72
101
 
73
- public async broadcast(command: string, extra?: Record<string, string>): Promise<void> {
102
+ public async broadcast(
103
+ command: string,
104
+ extra?: Record<string, string>
105
+ ): Promise<void> {
74
106
  await this.adb.subprocess.spawnAndWaitLegacy([
75
- 'am',
76
- 'broadcast',
77
- '-a',
78
- 'com.android.systemui.demo',
79
- '-e',
80
- 'command',
107
+ "am",
108
+ "broadcast",
109
+ "-a",
110
+ "com.android.systemui.demo",
111
+ "-e",
112
+ "command",
81
113
  command,
82
- ...(extra ? Object.entries(extra).flatMap(([key, value]) => ['-e', key, value]) : []),
114
+ ...(extra
115
+ ? Object.entries(extra).flatMap(([key, value]) => [
116
+ "-e",
117
+ key,
118
+ value,
119
+ ])
120
+ : []),
83
121
  ]);
84
122
  }
85
123
 
86
124
  public async setBatteryLevel(level: number): Promise<void> {
87
- await this.broadcast('battery', { level: level.toString() });
125
+ await this.broadcast("battery", { level: level.toString() });
88
126
  }
89
127
 
90
128
  public async setBatteryCharging(value: boolean): Promise<void> {
91
- await this.broadcast('battery', { plugged: value.toString() });
129
+ await this.broadcast("battery", { plugged: value.toString() });
92
130
  }
93
131
 
94
132
  public async setPowerSaveMode(value: boolean): Promise<void> {
95
- await this.broadcast('battery', { powersave: value.toString() });
133
+ await this.broadcast("battery", { powersave: value.toString() });
96
134
  }
97
135
 
98
136
  public async setAirplaneMode(show: boolean): Promise<void> {
99
- await this.broadcast('network', { airplane: show ? 'show' : 'hide' });
137
+ await this.broadcast("network", { airplane: show ? "show" : "hide" });
100
138
  }
101
139
 
102
- public async setWifiSignalStrength(value: DemoModeSignalStrength): Promise<void> {
103
- await this.broadcast('network', { wifi: 'show', level: value });
140
+ public async setWifiSignalStrength(
141
+ value: DemoModeSignalStrength
142
+ ): Promise<void> {
143
+ await this.broadcast("network", { wifi: "show", level: value });
104
144
  }
105
145
 
106
- public async setMobileDataType(value: DemoModeMobileDataType): Promise<void> {
146
+ public async setMobileDataType(
147
+ value: DemoModeMobileDataType
148
+ ): Promise<void> {
107
149
  for (let i = 0; i < 2; i += 1) {
108
- await this.broadcast('network', {
109
- mobile: 'show',
110
- sims: '1',
111
- nosim: 'hide',
112
- slot: '0',
150
+ await this.broadcast("network", {
151
+ mobile: "show",
152
+ sims: "1",
153
+ nosim: "hide",
154
+ slot: "0",
113
155
  datatype: value,
114
- fully: 'true',
115
- roam: 'false',
116
- level: '4',
117
- inflate: 'false',
118
- activity: 'in',
119
- carriernetworkchange: 'hide',
156
+ fully: "true",
157
+ roam: "false",
158
+ level: "4",
159
+ inflate: "false",
160
+ activity: "in",
161
+ carriernetworkchange: "hide",
120
162
  });
121
163
  }
122
164
  }
123
165
 
124
- public async setMobileSignalStrength(value: DemoModeSignalStrength): Promise<void> {
125
- await this.broadcast('network', { mobile: 'show', level: value });
166
+ public async setMobileSignalStrength(
167
+ value: DemoModeSignalStrength
168
+ ): Promise<void> {
169
+ await this.broadcast("network", { mobile: "show", level: value });
126
170
  }
127
171
 
128
172
  public async setNoSimCardIcon(show: boolean): Promise<void> {
129
- await this.broadcast('network', { nosim: show ? 'show' : 'hide' });
173
+ await this.broadcast("network", { nosim: show ? "show" : "hide" });
130
174
  }
131
175
 
132
176
  public async setStatusBarMode(mode: DemoModeStatusBarMode): Promise<void> {
133
- await this.broadcast('bars', { mode });
177
+ await this.broadcast("bars", { mode });
134
178
  }
135
179
 
136
180
  public async setVibrateModeEnabled(value: boolean): Promise<void> {
137
181
  // https://cs.android.com/android/platform/superproject/+/master:frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/DemoStatusIcons.java;l=103
138
- await this.broadcast('status', { volume: value ? 'vibrate' : 'hide' });
182
+ await this.broadcast("status", { volume: value ? "vibrate" : "hide" });
139
183
  }
140
184
 
141
185
  public async setBluetoothConnected(value: boolean): Promise<void> {
142
186
  // https://cs.android.com/android/platform/superproject/+/master:frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/DemoStatusIcons.java;l=114
143
- await this.broadcast('status', { bluetooth: value ? 'connected' : 'hide' });
187
+ await this.broadcast("status", {
188
+ bluetooth: value ? "connected" : "hide",
189
+ });
144
190
  }
145
191
 
146
192
  public async setLocatingIcon(show: boolean): Promise<void> {
147
- await this.broadcast('status', { location: show ? 'show' : 'hide' });
193
+ await this.broadcast("status", { location: show ? "show" : "hide" });
148
194
  }
149
195
 
150
196
  public async setAlarmIcon(show: boolean): Promise<void> {
151
- await this.broadcast('status', { alarm: show ? 'show' : 'hide' });
197
+ await this.broadcast("status", { alarm: show ? "show" : "hide" });
152
198
  }
153
199
 
154
200
  public async setSyncingIcon(show: boolean): Promise<void> {
155
- await this.broadcast('status', { sync: show ? 'show' : 'hide' });
201
+ await this.broadcast("status", { sync: show ? "show" : "hide" });
156
202
  }
157
203
 
158
204
  public async setMuteIcon(show: boolean): Promise<void> {
159
- await this.broadcast('status', { mute: show ? 'show' : 'hide' });
205
+ await this.broadcast("status", { mute: show ? "show" : "hide" });
160
206
  }
161
207
 
162
208
  public async setSpeakerPhoneIcon(show: boolean): Promise<void> {
163
- await this.broadcast('status', { speakerphone: show ? 'show' : 'hide' });
209
+ await this.broadcast("status", {
210
+ speakerphone: show ? "show" : "hide",
211
+ });
164
212
  }
165
213
 
166
214
  public async setNotificationsVisibility(show: boolean): Promise<void> {
167
215
  // https://cs.android.com/android/platform/superproject/+/master:frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java;l=3131
168
- await this.broadcast('notifications', { visible: show.toString() });
216
+ await this.broadcast("notifications", { visible: show.toString() });
169
217
  }
170
218
 
171
219
  public async setTime(hour: number, minute: number): Promise<void> {
172
- await this.broadcast('clock', {
220
+ await this.broadcast("clock", {
173
221
  // cspell: disable-next-line
174
222
  hhmm:
175
- hour.toString().padStart(2, '0') +
176
- minute.toString().padStart(2, '0'),
223
+ hour.toString().padStart(2, "0") +
224
+ minute.toString().padStart(2, "0"),
177
225
  });
178
226
  }
179
227
  }