Start app changed

This commit is contained in:
2021-05-09 14:42:24 +02:00
parent acc0f592d1
commit 1946fb6b9f
9 changed files with 154 additions and 605 deletions

View File

@ -608,20 +608,26 @@ public class Actions
{
// selected by action
Miscellaneous.logEvent("i", "StartOtherApp", "Starting app by action: " + param, 3);
paramsStartIndex = 1;
externalActivityIntent = new Intent(param);
externalActivityIntent.addCategory(Intent.CATEGORY_DEFAULT);
// Context c = autoMationServerRef.getApplicationContext();
// c.getApplicationContext()
// externalActivityIntent.setPackage("com.wireguard.android");//this did the trick actually
// if(externalActivityIntent.resolveActivity(autoMationServerRef.getPackageManager()) == null)
// Toast.makeText(context, "bad", Toast.LENGTH_LONG).show();
externalActivityIntent = new Intent();
if(params.length > 1 && !params[1].contains("/"))
{
externalActivityIntent.setPackage(params[0]);
externalActivityIntent.setAction(params[1]);
paramsStartIndex = 2;
}
else
{
externalActivityIntent.setAction(params[0]);
paramsStartIndex = 1;
}
}
externalActivityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// Pack intents
for (int i = paramsStartIndex = 2; i < params.length; i++)
for (int i = paramsStartIndex; i < params.length; i++)
{
String[] singleParam = params[i].split("/");

View File

@ -22,11 +22,11 @@ import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import com.jens.automation2.Action.Action_Enum;
@ -39,7 +39,7 @@ import java.util.List;
public class ActivityManageActionStartActivity extends Activity
{
ListView lvIntentPairs;
EditText etParameterName, etParameterValue, etSelectedActivity;
EditText etParameterName, etParameterValue, etPackageName, etActivityOrActionPath;
Button bSelectApp, bAddIntentPair, bSaveActionStartOtherActivity;
Spinner spinnerParameterType;
boolean edit = false;
@ -269,7 +269,7 @@ public class ActivityManageActionStartActivity extends Activity
public void onClick(DialogInterface dialog, int which)
{
ActivityInfo ai = ActivityManageActionStartActivity.getActivityInfoForPackageNameAndActivityName(packageName, activityArray[which]);
etSelectedActivity.setText(ai.packageName + ";" + ai.name);
etActivityOrActionPath.setText(ai.packageName + ";" + ai.name);
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
@ -290,7 +290,8 @@ public class ActivityManageActionStartActivity extends Activity
bAddIntentPair = (Button)findViewById(R.id.bAddIntentPair);
bSaveActionStartOtherActivity = (Button)findViewById(R.id.bSaveActionStartOtherActivity);
spinnerParameterType = (Spinner)findViewById(R.id.spinnerParameterType);
etSelectedActivity = (EditText) findViewById(R.id.etSelectedApplication);
etPackageName = (EditText) findViewById(R.id.etPackageName);
etActivityOrActionPath = (EditText) findViewById(R.id.etActivityOrActionPath);
rbStartAppSelectByActivity = (RadioButton)findViewById(R.id.rbStartAppSelectByActivity);
rbStartAppSelectByAction = (RadioButton)findViewById(R.id.rbStartAppSelectByAction);
@ -400,6 +401,26 @@ public class ActivityManageActionStartActivity extends Activity
}
});
rbStartAppSelectByActivity.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if(isChecked)
bSelectApp.setEnabled(isChecked);
}
});
rbStartAppSelectByAction.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if(isChecked)
bSelectApp.setEnabled(!isChecked);
}
});
Intent i = getIntent();
if(i.getBooleanExtra("edit", false) == true)
@ -417,17 +438,30 @@ public class ActivityManageActionStartActivity extends Activity
String[] params = resultingAction.getParameter2().split(";");
if(selectionByActivity)
etSelectedActivity.setText(params[0] + ";" + params[1]);
else
etSelectedActivity.setText(params[0]);
int startIndex = -1;
if(selectionByActivity && params.length >= 2)
startIndex = 2;
else if(!selectionByActivity && params.length >= 1)
startIndex = 1;
if(selectionByActivity)
{
etPackageName.setText(params[0]);
etActivityOrActionPath.setText(params[1]);
if(params.length >= 2)
startIndex = 2;
}
else
{
if(params[1].contains("/"))
{
etActivityOrActionPath.setText(params[0]);
startIndex = 1;
}
else
{
etPackageName.setText(params[0]);
etActivityOrActionPath.setText(params[1]);
startIndex = 2;
}
}
if(startIndex > -1 && params.length > startIndex)
{
@ -455,26 +489,26 @@ public class ActivityManageActionStartActivity extends Activity
private boolean saveAction()
{
if(etSelectedActivity.getText().toString().length() == 0)
if(rbStartAppSelectByActivity.isChecked())
{
Toast.makeText(ActivityManageActionStartActivity.this, getResources().getString(R.string.selectApplication), Toast.LENGTH_LONG).show();
return false;
if (etPackageName.getText().toString().length() == 0)
{
Toast.makeText(ActivityManageActionStartActivity.this, getResources().getString(R.string.enterPackageName), Toast.LENGTH_LONG).show();
return false;
}
else if (etActivityOrActionPath.getText().toString().length() == 0)
{
Toast.makeText(ActivityManageActionStartActivity.this, getResources().getString(R.string.selectApplication), Toast.LENGTH_LONG).show();
return false;
}
}
// else
// {
// Intent testIntent = new Intent(ActivityManageActionStartActivity.this, etSelectedActivity);
// Intent externalActivityIntent = new Intent(Intent.ACTION_MAIN);
// externalActivityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// externalActivityIntent.addCategory(Intent.CATEGORY_LAUNCHER);
// externalActivityIntent.setClassName(packageName, className);
//
// boolean activityExists = externalActivityIntent.resolveActivityInfo(getPackageManager(), 0) != null;
// }
if(etSelectedActivity.getText().toString().equals(getResources().getString(R.string.selectApplication)))
else
{
Toast.makeText(this, getResources().getString(R.string.selectApplication), Toast.LENGTH_LONG).show();
return false;
if(etActivityOrActionPath.getText().toString().contains(";"))
{
Toast.makeText(this, getResources().getString(R.string.enterValidAction), Toast.LENGTH_LONG).show();
return false;
}
}
if(resultingAction == null)
@ -486,10 +520,15 @@ public class ActivityManageActionStartActivity extends Activity
String parameter2;
// if(etSelectedActivity.getText().toString().contains(";"))
parameter2 = etSelectedActivity.getText().toString();
// else
// parameter2 = "dummyPkg;" + etSelectedActivity.getText().toString();
if(rbStartAppSelectByActivity.isChecked())
parameter2 = etPackageName.getText().toString() + ";" + etActivityOrActionPath.getText().toString();
else
{
if(etPackageName.getText().toString() != null && etPackageName.getText().toString().length() > 0)
parameter2 = etPackageName.getText().toString() + ";" + etActivityOrActionPath.getText().toString();
else
parameter2 = etActivityOrActionPath.getText().toString();
}
for(String s : intentPairList)
parameter2 += ";" + s;

View File

@ -258,7 +258,7 @@ public class ActivityManageTriggerNotification extends Activity
bSaveTriggerNotification = (Button)findViewById(R.id.bSaveTriggerNotification);
spinnerTitleDirection = (Spinner)findViewById(R.id.spinnerTitleDirection);
spinnerTextDirection = (Spinner)findViewById(R.id.spinnerTextDirection);
tvSelectedApplication = (TextView)findViewById(R.id.etSelectedApplication);
tvSelectedApplication = (TextView)findViewById(R.id.etActivityOrActionPath);
chkNotificationDirection = (CheckBox)findViewById(R.id.chkNotificationDirection);
directions = new String[] {