android: read the activity's own arguments, since Qt does not deliver them
`am start -n <pkg>/org.qtproject.qt.android.bindings.QtActivity --esa applicationArguments "--workspace,/sdcard/x"` left the window on its default workspace on the NX789J (the plain-string extra too), so the extra is read from the intent directly. That is what makes `cst-agent-app --uitest --workspace DIR` reachable on a device with no keyboard -- and adb cannot inject touch into this window either (tap, touchscreen tap, mouse tap and motionevent all do nothing; key events do work), so it is the only way in. Everything degrades to "no arguments": an invalid object, a missing method or a context that is not an activity all come back empty.
This commit is contained in:
+10
-1
@@ -199,7 +199,16 @@ int main(int argc, char **argv) {
|
||||
parser.addOption(planOpt);
|
||||
parser.addOption(uitestOpt);
|
||||
parser.addOption(sizeOpt);
|
||||
parser.process(app);
|
||||
/* What the process was started with, plus -- on a phone -- what the
|
||||
* activity was started with: Qt's own applicationArguments plumbing does
|
||||
* not deliver the extra on the NX789J (see activityArguments()), and
|
||||
* without it there is no way to hand this window a workspace or a --uitest
|
||||
* run on a device that has no keyboard. */
|
||||
QStringList args = QCoreApplication::arguments();
|
||||
#if defined(Q_OS_ANDROID)
|
||||
args += app::activityArguments();
|
||||
#endif
|
||||
parser.process(args);
|
||||
|
||||
QString ws = parser.value(wsOpt);
|
||||
if (ws.isEmpty()) {
|
||||
|
||||
Reference in New Issue
Block a user