Skip to content

Commit

Permalink
Keep track of args used to start the app, for restart
Browse files Browse the repository at this point in the history
  • Loading branch information
imurchie committed Dec 8, 2017
1 parent dd7c22c commit 6aed61b
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 8,179 deletions.
50 changes: 37 additions & 13 deletions lib/commands/general.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { fs, util } from 'appium-support';
import B from 'bluebird';
import log from '../logger';


const APP_EXTENSION = '.apk';

let commands = {}, helpers = {}, extensions = {};
Expand Down Expand Up @@ -131,17 +132,37 @@ commands.background = async function (seconds) {
let {appPackage, appActivity} = await this.adb.getFocusedPackageAndActivity();
await this.adb.goToHome();
await B.delay(seconds * 1000);
return this.adb.startApp({
pkg: this.opts.appPackage,
activity: this.opts.appActivity,
action: this.opts.intentAction,
category: this.opts.intentCategory,
flags: this.opts.intentFlags,
waitPkg: appPackage,
waitActivity: appActivity,
optionalIntentArguments: this.opts.optionalIntentArguments,
stopApp: false
});

let args;
if (this.opts.startActivityArgs && this.opts.startActivityArgs[`${appPackage}/${appActivity}`]) {
// the activity was started with `startActivity`, so use those args to restart
args = this.opts.startActivityArgs[`${appPackage}/${appActivity}`];
} else if (appPackage === this.opts.appPackage && appActivity === this.opts.appActivity) {
// the activity is the original session activity, so use the original args
args = {
pkg: appPackage,
activity: appActivity,
action: this.opts.intentAction,
category: this.opts.intentCategory,
flags: this.opts.intentFlags,
waitPkg: this.opts.appWaitPackage,
waitActivity: this.opts.appWaitActivity,
optionalIntentArguments: this.opts.optionalIntentArguments,
stopApp: false,
};
} else {
// the activity was started some other way, so use defaults
args = {
pkg: appPackage,
activity: appActivity,
waitPkg: appPackage,
waitActivity: appActivity,
stopApp: false
};
}
args = await util.filterObject(args);
log.debug(`Bringing application back to foreground with arguments: ${JSON.stringify(args)}`);
return this.adb.startApp(args);
};

commands.getStrings = async function (language) {
Expand Down Expand Up @@ -180,7 +201,7 @@ commands.startActivity = async function (appPackage, appActivity,
dontStopAppOnReset = !!this.opts.dontStopAppOnReset;
}

await this.adb.startApp({
let args = {
pkg: appPackage,
activity: appActivity,
waitPkg: appWaitPackage || appPackage,
Expand All @@ -190,7 +211,10 @@ commands.startActivity = async function (appPackage, appActivity,
flags: intentFlags,
optionalIntentArguments,
stopApp: !dontStopAppOnReset
});
};
this.opts.startActivityArgs = this.opts.startActivityArgs || {};
this.opts.startActivityArgs[`${appPackage}/${appActivity}`] = args;
await this.adb.startApp(args);
};

commands.reset = async function () {
Expand Down
Loading

0 comments on commit 6aed61b

Please sign in to comment.