Start other service bugfix attempt
This commit is contained in:
parent
f24c9f99dc
commit
7884358564
@ -1047,7 +1047,7 @@ public class Actions
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Intent externalActivityIntent;
|
Intent externalApplicationIntent;
|
||||||
|
|
||||||
if (!startByAction)
|
if (!startByAction)
|
||||||
{
|
{
|
||||||
@ -1060,15 +1060,13 @@ public class Actions
|
|||||||
|
|
||||||
Miscellaneous.logEvent("i", "StartOtherApp", "Starting app by activity: " + packageName + " " + className, 3);
|
Miscellaneous.logEvent("i", "StartOtherApp", "Starting app by activity: " + packageName + " " + className, 3);
|
||||||
|
|
||||||
externalActivityIntent = new Intent(Intent.ACTION_MAIN);
|
externalApplicationIntent = new Intent(Intent.ACTION_MAIN);
|
||||||
externalActivityIntent.addCategory(Intent.CATEGORY_LAUNCHER);
|
externalApplicationIntent.addCategory(Intent.CATEGORY_LAUNCHER);
|
||||||
|
|
||||||
// if(packageName.equals("dummyPkg"))
|
if(packageName.equals("dummyPkg"))
|
||||||
// externalActivityIntent.setAction(className);
|
externalApplicationIntent.setAction(className);
|
||||||
// else
|
|
||||||
externalActivityIntent.setClassName(packageName, className);
|
|
||||||
|
|
||||||
if (!Miscellaneous.doesActivityExist(externalActivityIntent, Miscellaneous.getAnyContext()))
|
if (!Miscellaneous.doesActivityExist(externalApplicationIntent, Miscellaneous.getAnyContext()))
|
||||||
Miscellaneous.logEvent("w", "StartOtherApp", "Activity not found: " + className, 2);
|
Miscellaneous.logEvent("w", "StartOtherApp", "Activity not found: " + className, 2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1076,34 +1074,32 @@ public class Actions
|
|||||||
// selected by action
|
// selected by action
|
||||||
Miscellaneous.logEvent("i", "StartOtherApp", "Starting app by action: " + param, 3);
|
Miscellaneous.logEvent("i", "StartOtherApp", "Starting app by action: " + param, 3);
|
||||||
|
|
||||||
externalActivityIntent = new Intent();
|
externalApplicationIntent = new Intent();
|
||||||
|
|
||||||
if (!params[0].equals(dummyPackageString))
|
if (!params[0].equals(dummyPackageString))
|
||||||
externalActivityIntent.setPackage(params[0]);
|
externalApplicationIntent.setPackage(params[0]);
|
||||||
|
|
||||||
externalActivityIntent.setPackage("net.christianbeier.droidvnc_ng");
|
externalApplicationIntent.setAction(params[1]);
|
||||||
|
|
||||||
if (params[2].equals(ActivityManageActionStartActivity.startByServiceString))
|
if (params[2].equals(ActivityManageActionStartActivity.startByServiceString) || params[2].equals(ActivityManageActionStartActivity.startByForegroundServiceString))
|
||||||
{
|
{
|
||||||
//externalActivityIntent.setComponent(new ComponentName(params[0], params[1]));
|
externalApplicationIntent.setComponent(new ComponentName(params[0], params[2]));
|
||||||
externalActivityIntent.setComponent(new ComponentName("net.christianbeier.droidvnc_ng", ".MainService"));
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
externalActivityIntent.setAction(params[1]);
|
externalApplicationIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||||
}
|
|
||||||
|
|
||||||
externalActivityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
||||||
|
|
||||||
// Pack intents
|
// Pack intents
|
||||||
externalActivityIntent = packParametersIntoIntent(externalActivityIntent, params, 3);
|
externalApplicationIntent = packParametersIntoIntent(externalApplicationIntent, params, 3);
|
||||||
|
|
||||||
if (params[2].equals(ActivityManageActionStartActivity.startByActivityString))
|
if (params[2].equals(ActivityManageActionStartActivity.startByActivityString))
|
||||||
automationServerRef.startActivity(externalActivityIntent);
|
automationServerRef.startActivity(externalApplicationIntent);
|
||||||
if (params[2].equals(ActivityManageActionStartActivity.startByServiceString))
|
else if (params[2].equals(ActivityManageActionStartActivity.startByServiceString))
|
||||||
//automationServerRef.startService(externalActivityIntent);
|
automationServerRef.startService(externalApplicationIntent);
|
||||||
automationServerRef.startForegroundService(externalActivityIntent);
|
else if (params[2].equals(ActivityManageActionStartActivity.startByForegroundServiceString))
|
||||||
|
automationServerRef.startForegroundService(externalApplicationIntent);
|
||||||
else
|
else
|
||||||
automationServerRef.sendBroadcast(externalActivityIntent);
|
automationServerRef.sendBroadcast(externalApplicationIntent);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
@ -48,17 +48,18 @@ public class ActivityManageActionStartActivity extends Activity
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
ListView lvIntentPairs;
|
ListView lvIntentPairs;
|
||||||
EditText etParameterName, etParameterValue, etPackageName, etActivityOrActionPath;
|
EditText etParameterName, etParameterValue, etPackageName, etActivityOrActionPath, etClassName;
|
||||||
Button bSelectApp, bAddIntentPair, bSaveActionStartOtherActivity, showStartProgramExamples;
|
Button bSelectApp, bAddIntentPair, bSaveActionStartOtherActivity, showStartProgramExamples;
|
||||||
Spinner spinnerParameterType;
|
Spinner spinnerParameterType;
|
||||||
boolean edit = false;
|
boolean edit = false;
|
||||||
ProgressDialog progressDialog = null;
|
ProgressDialog progressDialog = null;
|
||||||
RadioButton rbStartAppSelectByActivity, rbStartAppSelectByAction, rbStartAppByActivity, rbStartAppByBroadcast, rbStartAppByService;
|
RadioButton rbStartAppSelectByActivity, rbStartAppSelectByAction, rbStartAppByActivity, rbStartAppByBroadcast, rbStartAppByService, rbStartAppByForegroundService;
|
||||||
|
|
||||||
final String urlShowExamples = "https://server47.de/automation/examples_startProgram.html";
|
final String urlShowExamples = "https://server47.de/automation/examples_startProgram.html";
|
||||||
final static String startByActivityString = "0";
|
final static String startByActivityString = "0";
|
||||||
final static String startByBroadcastString = "1";
|
final static String startByBroadcastString = "1";
|
||||||
final static String startByServiceString = "2";
|
final static String startByServiceString = "2";
|
||||||
|
final static String startByForegroundServiceString = "3";
|
||||||
|
|
||||||
final static int requestCodeForRequestQueryAllPackagesPermission = 4711;
|
final static int requestCodeForRequestQueryAllPackagesPermission = 4711;
|
||||||
|
|
||||||
@ -72,6 +73,7 @@ public class ActivityManageActionStartActivity extends Activity
|
|||||||
lvIntentPairs = (ListView)findViewById(R.id.lvIntentPairs);
|
lvIntentPairs = (ListView)findViewById(R.id.lvIntentPairs);
|
||||||
etParameterName = (EditText)findViewById(R.id.etParameterName);
|
etParameterName = (EditText)findViewById(R.id.etParameterName);
|
||||||
etParameterValue = (EditText)findViewById(R.id.etParameterValue);
|
etParameterValue = (EditText)findViewById(R.id.etParameterValue);
|
||||||
|
etClassName = (EditText)findViewById(R.id.etClassName);
|
||||||
bSelectApp = (Button)findViewById(R.id.bSelectApp);
|
bSelectApp = (Button)findViewById(R.id.bSelectApp);
|
||||||
bAddIntentPair = (Button)findViewById(R.id.bAddIntentPair);
|
bAddIntentPair = (Button)findViewById(R.id.bAddIntentPair);
|
||||||
bSaveActionStartOtherActivity = (Button)findViewById(R.id.bSaveActionStartOtherActivity);
|
bSaveActionStartOtherActivity = (Button)findViewById(R.id.bSaveActionStartOtherActivity);
|
||||||
@ -84,6 +86,7 @@ public class ActivityManageActionStartActivity extends Activity
|
|||||||
rbStartAppByActivity = (RadioButton)findViewById(R.id.rbStartAppByActivity);
|
rbStartAppByActivity = (RadioButton)findViewById(R.id.rbStartAppByActivity);
|
||||||
rbStartAppByBroadcast = (RadioButton)findViewById(R.id.rbStartAppByBroadcast);
|
rbStartAppByBroadcast = (RadioButton)findViewById(R.id.rbStartAppByBroadcast);
|
||||||
rbStartAppByService = (RadioButton)findViewById(R.id.rbStartAppByService);
|
rbStartAppByService = (RadioButton)findViewById(R.id.rbStartAppByService);
|
||||||
|
rbStartAppByForegroundService = (RadioButton)findViewById(R.id.rbStartAppByForegroundService);
|
||||||
|
|
||||||
intentTypeSpinnerAdapter = new ArrayAdapter<String>(this, R.layout.text_view_for_poi_listview_mediumtextsize, ActivityManageActionStartActivity.supportedIntentTypes);
|
intentTypeSpinnerAdapter = new ArrayAdapter<String>(this, R.layout.text_view_for_poi_listview_mediumtextsize, ActivityManageActionStartActivity.supportedIntentTypes);
|
||||||
spinnerParameterType.setAdapter(intentTypeSpinnerAdapter);
|
spinnerParameterType.setAdapter(intentTypeSpinnerAdapter);
|
||||||
@ -227,17 +230,23 @@ public class ActivityManageActionStartActivity extends Activity
|
|||||||
|
|
||||||
if (rbStartAppSelectByActivity.isChecked())
|
if (rbStartAppSelectByActivity.isChecked())
|
||||||
parameter2 += etPackageName.getText().toString() + ";" + etActivityOrActionPath.getText().toString();
|
parameter2 += etPackageName.getText().toString() + ";" + etActivityOrActionPath.getText().toString();
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
if (etPackageName.getText().toString() != null && etPackageName.getText().toString().length() > 0)
|
if (etPackageName.getText().toString() != null && etPackageName.getText().toString().length() > 0)
|
||||||
parameter2 += etPackageName.getText().toString() + ";" + etActivityOrActionPath.getText().toString();
|
parameter2 += etPackageName.getText().toString() + ";" + etActivityOrActionPath.getText().toString();
|
||||||
else
|
else
|
||||||
parameter2 += Actions.dummyPackageString + ";" + etActivityOrActionPath.getText().toString();
|
parameter2 += Actions.dummyPackageString + ";" + etActivityOrActionPath.getText().toString();
|
||||||
|
|
||||||
|
// if(etClassName.getText().toString().length() > 0)
|
||||||
|
parameter2 += ";" + etClassName.getText().toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rbStartAppByActivity.isChecked())
|
if (rbStartAppByActivity.isChecked())
|
||||||
parameter2 += ";" + startByActivityString;
|
parameter2 += ";" + startByActivityString;
|
||||||
else if(rbStartAppByService.isChecked())
|
else if(rbStartAppByService.isChecked())
|
||||||
parameter2 += ";" + startByServiceString;
|
parameter2 += ";" + startByServiceString;
|
||||||
|
else if(rbStartAppByForegroundService.isChecked())
|
||||||
|
parameter2 += ";" + startByForegroundServiceString;
|
||||||
else
|
else
|
||||||
parameter2 += ";" + startByBroadcastString;
|
parameter2 += ";" + startByBroadcastString;
|
||||||
|
|
||||||
@ -597,9 +606,19 @@ public class ActivityManageActionStartActivity extends Activity
|
|||||||
|
|
||||||
String[] params = input.getStringExtra(ActivityManageRule.intentNameActionParameter2).split(";");
|
String[] params = input.getStringExtra(ActivityManageRule.intentNameActionParameter2).split(";");
|
||||||
|
|
||||||
|
if(Miscellaneous.isNumeric(params[2])) // old configuration file
|
||||||
|
{
|
||||||
rbStartAppByActivity.setChecked(params[2].equals(startByActivityString));
|
rbStartAppByActivity.setChecked(params[2].equals(startByActivityString));
|
||||||
rbStartAppByBroadcast.setChecked(params[2].equals(startByBroadcastString));
|
rbStartAppByBroadcast.setChecked(params[2].equals(startByBroadcastString));
|
||||||
rbStartAppByService.setChecked(params[2].equals(startByServiceString));
|
rbStartAppByService.setChecked(params[2].equals(startByServiceString));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
rbStartAppByActivity.setChecked(params[3].equals(startByActivityString));
|
||||||
|
rbStartAppByBroadcast.setChecked(params[3].equals(startByBroadcastString));
|
||||||
|
rbStartAppByService.setChecked(params[3].equals(startByServiceString));
|
||||||
|
rbStartAppByForegroundService.setChecked(params[3].equals(startByForegroundServiceString));
|
||||||
|
}
|
||||||
|
|
||||||
int startIndex = -1;
|
int startIndex = -1;
|
||||||
|
|
||||||
@ -614,10 +633,11 @@ public class ActivityManageActionStartActivity extends Activity
|
|||||||
etPackageName.setText(params[0]);
|
etPackageName.setText(params[0]);
|
||||||
|
|
||||||
etActivityOrActionPath.setText(params[1]);
|
etActivityOrActionPath.setText(params[1]);
|
||||||
|
etClassName.setText(params[2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (params.length >= 3)
|
if (params.length >= 4)
|
||||||
startIndex = 3;
|
startIndex = 4;
|
||||||
|
|
||||||
if(startIndex > -1 && params.length > startIndex)
|
if(startIndex > -1 && params.length > startIndex)
|
||||||
{
|
{
|
||||||
|
@ -135,6 +135,12 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/startAppByStartService" />
|
android:text="@string/startAppByStartService" />
|
||||||
|
|
||||||
|
<RadioButton
|
||||||
|
android:id="@+id/rbStartAppByForegroundService"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/startAppByStartForegroundService" />
|
||||||
|
|
||||||
</RadioGroup>
|
</RadioGroup>
|
||||||
|
|
||||||
</TableRow>
|
</TableRow>
|
||||||
@ -187,6 +193,25 @@
|
|||||||
|
|
||||||
</TableRow>
|
</TableRow>
|
||||||
|
|
||||||
|
<TableRow
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:text="@string/className" />
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/etClassName"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:inputType="textMultiLine"
|
||||||
|
android:text=""
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||||
|
|
||||||
|
</TableRow>
|
||||||
|
|
||||||
<TableRow
|
<TableRow
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content">
|
||||||
|
@ -887,4 +887,6 @@
|
|||||||
<string name="variablesOnlyForTypes">Variables are only available for parameter types String and URI</string>
|
<string name="variablesOnlyForTypes">Variables are only available for parameter types String and URI</string>
|
||||||
<string name="intentParametersHint">If you want to specify a parameter you also have to click \"Add intent pair\". Otherwise your changes will not be saved.</string>
|
<string name="intentParametersHint">If you want to specify a parameter you also have to click \"Add intent pair\". Otherwise your changes will not be saved.</string>
|
||||||
<string name="wifiTriggerDisconnectionHint">This trigger will be valid if you just disconnected from the wifi specified above OR while the service is still starting and if you\'re not connected to any wifi. If you want the trigger to fire only when you\'re explicitly disconnecting from a certain wifi, add another trigger \"service is not starting\".</string>
|
<string name="wifiTriggerDisconnectionHint">This trigger will be valid if you just disconnected from the wifi specified above OR while the service is still starting and if you\'re not connected to any wifi. If you want the trigger to fire only when you\'re explicitly disconnecting from a certain wifi, add another trigger \"service is not starting\".</string>
|
||||||
|
<string name="className">Class full name</string>
|
||||||
|
<string name="startAppByStartForegroundService">by startForegroundService()</string>
|
||||||
</resources>
|
</resources>
|
Loading…
Reference in New Issue
Block a user