mirror of
https://github.com/yume-chan/ya-webadb.git
synced 2025-10-03 09:49:24 +02:00
refactor: improve readability
This commit is contained in:
parent
c5786fefd9
commit
094b859791
4 changed files with 55 additions and 68 deletions
|
@ -38,27 +38,27 @@ export class Cmd extends AdbCommandBase {
|
|||
command: string,
|
||||
...args: string[]
|
||||
) {
|
||||
let supportAbb: boolean;
|
||||
let supportCmd: boolean = this.supportsCmd;
|
||||
let supportsAbb: boolean;
|
||||
let supportsCmd: boolean = this.supportsCmd;
|
||||
let service: string;
|
||||
let Protocol: AdbSubprocessProtocolConstructor;
|
||||
if (shellProtocol) {
|
||||
supportAbb = this._supportsAbb;
|
||||
supportCmd &&= this.supportsShellV2;
|
||||
supportsAbb = this._supportsAbb;
|
||||
supportsCmd &&= this.supportsShellV2;
|
||||
service = "abb";
|
||||
Protocol = AdbSubprocessShellProtocol;
|
||||
} else {
|
||||
supportAbb = this._supportsAbbExec;
|
||||
supportsAbb = this._supportsAbbExec;
|
||||
service = "abb_exec";
|
||||
Protocol = AdbSubprocessNoneProtocol;
|
||||
}
|
||||
|
||||
if (supportAbb) {
|
||||
if (supportsAbb) {
|
||||
const socket = await this.adb.createSocket(
|
||||
`${service}:${command}\0${args.join("\0")}\0`
|
||||
);
|
||||
return new Protocol(socket);
|
||||
} else if (supportCmd) {
|
||||
} else if (supportsCmd) {
|
||||
return Protocol.raw(this.adb, `cmd ${command} ${args.join(" ")}`);
|
||||
} else {
|
||||
throw new Error("Not supported");
|
||||
|
|
|
@ -116,46 +116,34 @@ export interface AndroidLogEntry extends LoggerEntry {
|
|||
toString(format?: LogcatFormat, modifiers?: LogcatFormatModifiers): string;
|
||||
}
|
||||
|
||||
function padZero(number: number, length: number) {
|
||||
return number.toString().padStart(length, "0");
|
||||
}
|
||||
|
||||
function formatSeconds(seconds: number, modifiers: LogcatFormatModifiers) {
|
||||
if (modifiers.monotonic) {
|
||||
return seconds.toString().padStart(6);
|
||||
return padZero(seconds, 6);
|
||||
}
|
||||
|
||||
if (modifiers.epoch) {
|
||||
return seconds.toString().padStart(19);
|
||||
return padZero(seconds, 19);
|
||||
}
|
||||
|
||||
const date = new Date(seconds * 1000);
|
||||
|
||||
const month = padZero(date.getMonth() + 1, 2);
|
||||
const day = padZero(date.getDate(), 2);
|
||||
const hour = padZero(date.getHours(), 2);
|
||||
const minute = padZero(date.getMinutes(), 2);
|
||||
const second = padZero(date.getSeconds(), 2);
|
||||
const result = `${month}-${day} ${hour}:${minute}:${second}`;
|
||||
|
||||
if (modifiers.year) {
|
||||
// prettier-ignore
|
||||
return `${
|
||||
date.getFullYear().toString().padStart(4, "0")
|
||||
}-${
|
||||
(date.getMonth() + 1).toString().padStart(2, "0")
|
||||
}-${
|
||||
date.getDate().toString().padStart(2, "0")
|
||||
} ${
|
||||
date.getHours().toString().padStart(2, "0")
|
||||
}:${
|
||||
date.getMinutes().toString().padStart(2, "0")
|
||||
}:${
|
||||
date.getSeconds().toString().padStart(2, "0")
|
||||
}`;
|
||||
const year = padZero(date.getFullYear(), 4);
|
||||
return `${year}-${result}`;
|
||||
}
|
||||
|
||||
// prettier-ignore
|
||||
return `${
|
||||
(date.getMonth() + 1).toString().padStart(2, "0")
|
||||
}-${
|
||||
date.getDate().toString().padStart(2, "0")
|
||||
} ${
|
||||
date.getHours().toString().padStart(2, "0")
|
||||
}:${
|
||||
date.getMinutes().toString().padStart(2, "0")
|
||||
}:${
|
||||
date.getSeconds().toString().padStart(2, "0")
|
||||
}`;
|
||||
return result;
|
||||
}
|
||||
|
||||
function formatNanoseconds(
|
||||
|
@ -163,14 +151,14 @@ function formatNanoseconds(
|
|||
modifiers: LogcatFormatModifiers
|
||||
) {
|
||||
if (modifiers.nanoseconds) {
|
||||
return nanoseconds.toString().padStart(9, "0");
|
||||
return padZero(nanoseconds, 9);
|
||||
}
|
||||
|
||||
if (modifiers.microseconds) {
|
||||
return ((nanoseconds / 1000) | 0).toString().padStart(6, "0");
|
||||
return padZero(nanoseconds / 1000, 6);
|
||||
}
|
||||
|
||||
return ((nanoseconds / 1000000) | 0).toString().padStart(3, "0");
|
||||
return padZero(nanoseconds / 1000000, 3);
|
||||
}
|
||||
|
||||
function formatTimezone(seconds: number, modifiers: LogcatFormatModifiers) {
|
||||
|
|
|
@ -39,14 +39,14 @@ export class Settings extends AdbCommandBase {
|
|||
tag?: string,
|
||||
makeDefault?: boolean
|
||||
) {
|
||||
return this.base(
|
||||
"put",
|
||||
namespace,
|
||||
key,
|
||||
value,
|
||||
...(tag ? [tag] : []),
|
||||
...(makeDefault ? ["default"] : [])
|
||||
);
|
||||
const args = [key, value];
|
||||
if (tag) {
|
||||
args.push(tag);
|
||||
}
|
||||
if (makeDefault) {
|
||||
args.push("default");
|
||||
}
|
||||
return this.base("put", namespace, ...args);
|
||||
}
|
||||
|
||||
public reset(
|
||||
|
@ -63,12 +63,11 @@ export class Settings extends AdbCommandBase {
|
|||
modeOrPackageName: string,
|
||||
tag?: string
|
||||
): Promise<string> {
|
||||
return this.base(
|
||||
"reset",
|
||||
namespace,
|
||||
modeOrPackageName,
|
||||
...(tag ? [tag] : [])
|
||||
);
|
||||
const args = [modeOrPackageName];
|
||||
if (tag) {
|
||||
args.push(tag);
|
||||
}
|
||||
return this.base("reset", namespace, ...args);
|
||||
}
|
||||
|
||||
public async list(namespace: SettingsNamespace): Promise<string[]> {
|
||||
|
|
|
@ -142,13 +142,16 @@ export class BTreeNode {
|
|||
|
||||
public has(value: number): boolean {
|
||||
let index = this.search(value);
|
||||
|
||||
if (index >= 0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (this.height > 0) {
|
||||
index = ~index;
|
||||
return this.children[index]!.has(value);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -192,16 +195,18 @@ export class BTreeNode {
|
|||
return true;
|
||||
}
|
||||
|
||||
if (this.height > 0) {
|
||||
if (this.height === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
index = ~index;
|
||||
const deleted = this.children[index]!.delete(value);
|
||||
|
||||
if (deleted) {
|
||||
this.balance(index);
|
||||
}
|
||||
return deleted;
|
||||
}
|
||||
|
||||
return false;
|
||||
return deleted;
|
||||
}
|
||||
|
||||
public max(): number {
|
||||
|
@ -340,17 +345,12 @@ export class BTree {
|
|||
|
||||
public constructor(order: number) {
|
||||
this._order = order;
|
||||
this._root = new BTreeNode(
|
||||
order,
|
||||
new Int32Array(order - 1),
|
||||
0,
|
||||
0,
|
||||
new Array<BTreeNode>(order)
|
||||
);
|
||||
const keys = new Int32Array(order - 1);
|
||||
const children = new Array<BTreeNode>(order);
|
||||
this._root = new BTreeNode(order, keys, 0, 0, children);
|
||||
}
|
||||
|
||||
public has(value: number) {
|
||||
// TODO(btree): benchmark this non-recursive version
|
||||
let node = this._root;
|
||||
while (true) {
|
||||
const index = node.search(value);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue