io.appium.settings
Version:
App for dealing with Android settings
60 lines (58 loc) • 1.65 kB
text/typescript
import { LOG_PREFIX } from '../logger';
import { SMS_LIST_RECEIVER, SMS_LIST_RETRIEVAL_ACTION } from '../constants';
import type { SettingsApp } from '../client';
import type { SmsListOptions, SmsListResult } from './types';
/**
* Retrieves the list of the most recent SMS
* properties list via Appium Settings helper.
* Messages are sorted by date in descending order.
*
* The example output is:
* ```json
* {
* "items":[
* {
* "id":"2",
* "address":"+123456789",
* "person":null,
* "date":"1581936422203",
* "read":"0",
* "status":"-1",
* "type":"1",
* "subject":null,
* "body":"\"text message2\"",
* "serviceCenter":null
* },
* {
* "id":"1",
* "address":"+123456789",
* "person":null,
* "date":"1581936382740",
* "read":"0",
* "status":"-1",
* "type":"1",
* "subject":null,
* "body":"\"text message\"",
* "serviceCenter":null
* }
* ],
* "total":2
* }
* ```
*
* @param opts Options for retrieving SMS list
* @returns The SMS list result
* @throws {Error} If there was an error while getting the SMS list
*/
export async function getSmsList(this: SettingsApp, opts: SmsListOptions = {}): Promise<SmsListResult> {
this.log.debug(LOG_PREFIX, 'Retrieving the recent SMS messages');
const args: string[] = [
'-n', SMS_LIST_RECEIVER,
'-a', SMS_LIST_RETRIEVAL_ACTION,
];
if (opts.max) {
args.push('--es', 'max', `${opts.max}`);
}
const output = await this.checkBroadcast(args, 'list SMS');
return this._parseJsonData(output, 'SMS list');
}