|
|
|
@ -49,6 +49,9 @@ import java.util.Collections;
|
|
|
|
|
public class ActivityManageRule extends Activity
|
|
|
|
|
{
|
|
|
|
|
final static String activityDetectionClassPath = "com.jens.automation2.receivers.ActivityDetectionReceiver";
|
|
|
|
|
public final static String intentNameTriggerParameter1 = "triggerParameter1";
|
|
|
|
|
public final static String intentNameActionParameter1 = "actionParameter1";
|
|
|
|
|
public final static String intentNameActionParameter2 = "actionParameter2";
|
|
|
|
|
|
|
|
|
|
public Context context;
|
|
|
|
|
private Button cmdTriggerAdd, cmdActionAdd, cmdSaveRule;
|
|
|
|
@ -95,6 +98,8 @@ public class ActivityManageRule extends Activity
|
|
|
|
|
final static int requestCodeTriggerBluetoothEdit = 6001;
|
|
|
|
|
final static int requestCodeActionScreenBrightnessAdd = 401;
|
|
|
|
|
final static int requestCodeActionScreenBrightnessEdit = 402;
|
|
|
|
|
final static int requestCodeTriggerDeviceOrientationAdd = 301;
|
|
|
|
|
final static int requestCodeTriggerDeviceOrientationEdit = 302;
|
|
|
|
|
final static int requestCodeTriggerNotificationAdd = 8000;
|
|
|
|
|
final static int requestCodeTriggerNfcNotificationEdit = 8001;
|
|
|
|
|
final static int requestCodeActionPlaySoundAdd = 501;
|
|
|
|
@ -165,7 +170,13 @@ public class ActivityManageRule extends Activity
|
|
|
|
|
{
|
|
|
|
|
hideKeyboard();
|
|
|
|
|
newTrigger = new Trigger();
|
|
|
|
|
getTriggerTypeDialog(context).show();
|
|
|
|
|
|
|
|
|
|
AlertDialog dia = getTriggerTypeDialog(context);
|
|
|
|
|
|
|
|
|
|
if(Miscellaneous.isDarkModeEnabled(ActivityManageRule.this))
|
|
|
|
|
dia.getListView().setBackgroundColor(getResources().getColor(R.color.darkScreenBackgroundColor));
|
|
|
|
|
|
|
|
|
|
dia.show();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
@ -175,12 +186,18 @@ public class ActivityManageRule extends Activity
|
|
|
|
|
public void onClick(View v)
|
|
|
|
|
{
|
|
|
|
|
hideKeyboard();
|
|
|
|
|
getActionTypeDialog().show();
|
|
|
|
|
|
|
|
|
|
AlertDialog dia = getActionTypeDialog();
|
|
|
|
|
|
|
|
|
|
if(Miscellaneous.isDarkModeEnabled(ActivityManageRule.this))
|
|
|
|
|
dia.getListView().setBackgroundColor(getResources().getColor(R.color.darkScreenBackgroundColor));
|
|
|
|
|
|
|
|
|
|
dia.show();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
cmdSaveRule.setOnClickListener(new OnClickListener()
|
|
|
|
|
{
|
|
|
|
|
{
|
|
|
|
|
@Override
|
|
|
|
|
public void onClick(View v)
|
|
|
|
|
{
|
|
|
|
@ -261,6 +278,12 @@ public class ActivityManageRule extends Activity
|
|
|
|
|
wifiEditor.putExtra("wifiName", selectedTrigger.getTriggerParameter2());
|
|
|
|
|
startActivityForResult(wifiEditor, requestCodeTriggerWifiEdit);
|
|
|
|
|
break;
|
|
|
|
|
case deviceOrientation:
|
|
|
|
|
Intent devicePositionEditor = new Intent(ActivityManageRule.this, ActivityManageTriggerDeviceOrientation.class);
|
|
|
|
|
devicePositionEditor.putExtra(ActivityManageRule.intentNameTriggerParameter1, selectedTrigger.getTriggerParameter());
|
|
|
|
|
devicePositionEditor.putExtra(ActivityManageTriggerDeviceOrientation.vectorFieldName, selectedTrigger.getTriggerParameter2());
|
|
|
|
|
startActivityForResult(devicePositionEditor, requestCodeTriggerDeviceOrientationEdit);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
@ -303,6 +326,7 @@ public class ActivityManageRule extends Activity
|
|
|
|
|
case triggerUrl:
|
|
|
|
|
Intent activityEditTriggerUrlIntent = new Intent(ActivityManageRule.this, ActivityManageActionTriggerUrl.class);
|
|
|
|
|
ActivityManageActionTriggerUrl.resultingAction = a;
|
|
|
|
|
ActivityManageActionTriggerUrl.resultingAction.setParentRule(ruleToEdit);
|
|
|
|
|
activityEditTriggerUrlIntent.putExtra("edit", true);
|
|
|
|
|
startActivityForResult(activityEditTriggerUrlIntent, requestCodeActionTriggerUrlEdit);
|
|
|
|
|
break;
|
|
|
|
@ -332,8 +356,8 @@ public class ActivityManageRule extends Activity
|
|
|
|
|
case playSound:
|
|
|
|
|
Intent actionPlaySoundIntent = new Intent(context, ActivityManageActionPlaySound.class);
|
|
|
|
|
actionPlaySoundIntent.putExtra("edit", true);
|
|
|
|
|
actionPlaySoundIntent.putExtra("actionParameter1", a.getParameter1());
|
|
|
|
|
actionPlaySoundIntent.putExtra("actionParameter2", a.getParameter2());
|
|
|
|
|
actionPlaySoundIntent.putExtra(intentNameActionParameter1, a.getParameter1());
|
|
|
|
|
actionPlaySoundIntent.putExtra(intentNameActionParameter2, a.getParameter2());
|
|
|
|
|
startActivityForResult(actionPlaySoundIntent, requestCodeActionPlaySoundEdit);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
@ -403,6 +427,11 @@ public class ActivityManageRule extends Activity
|
|
|
|
|
ruleToEdit.setName(etRuleName.getText().toString());
|
|
|
|
|
ruleToEdit.setRuleActive(chkRuleActive.isChecked());
|
|
|
|
|
ruleToEdit.setRuleToggle(chkRuleToggle.isChecked());
|
|
|
|
|
|
|
|
|
|
for(Trigger t : ruleToEdit.getTriggerSet())
|
|
|
|
|
t.setParentRule(ruleToEdit);
|
|
|
|
|
for(Action a : ruleToEdit.getActionSet())
|
|
|
|
|
a.setParentRule(ruleToEdit);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void loadVariablesIntoGui()
|
|
|
|
@ -465,164 +494,175 @@ public class ActivityManageRule extends Activity
|
|
|
|
|
items.add(new Item(typesLong[i].toString(), R.drawable.headphone));
|
|
|
|
|
else if(types[i].toString().equals(Trigger_Enum.notification.toString()))
|
|
|
|
|
items.add(new Item(typesLong[i].toString(), R.drawable.notification));
|
|
|
|
|
else if(types[i].toString().equals(Trigger_Enum.deviceOrientation.toString()))
|
|
|
|
|
items.add(new Item(typesLong[i].toString(), R.drawable.smartphone));
|
|
|
|
|
else
|
|
|
|
|
items.add(new Item(typesLong[i].toString(), R.drawable.placeholder));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ListAdapter adapter = new ArrayAdapter<Item>(this, android.R.layout.select_dialog_item, android.R.id.text1, items)
|
|
|
|
|
{
|
|
|
|
|
public View getView(int position, View convertView, ViewGroup parent)
|
|
|
|
|
{
|
|
|
|
|
//User super class to create the View
|
|
|
|
|
View v = super.getView(position, convertView, parent);
|
|
|
|
|
|
|
|
|
|
TextView tv = (TextView)v.findViewById(android.R.id.text1);
|
|
|
|
|
|
|
|
|
|
//Put the image on the TextView
|
|
|
|
|
tv.setCompoundDrawablesWithIntrinsicBounds(items.get(position).icon, 0, 0, 0);
|
|
|
|
|
|
|
|
|
|
//Add margin between image and text (support various screen densities)
|
|
|
|
|
int dp5 = (int) (5 * getResources().getDisplayMetrics().density + 0.5f);
|
|
|
|
|
tv.setCompoundDrawablePadding(dp5);
|
|
|
|
|
|
|
|
|
|
return v;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
AlertDialog.Builder builder = new AlertDialog.Builder(this)
|
|
|
|
|
.setTitle(getResources().getString(R.string.selectTypeOfTrigger))
|
|
|
|
|
.setAdapter(adapter, new DialogInterface.OnClickListener()
|
|
|
|
|
{
|
|
|
|
|
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
|
|
|
|
|
public void onClick(DialogInterface dialog, int which)
|
|
|
|
|
{
|
|
|
|
|
triggerType = Trigger_Enum.values()[which];
|
|
|
|
|
ListAdapter adapter = new ArrayAdapter<Item>(this, android.R.layout.select_dialog_item, android.R.id.text1, items)
|
|
|
|
|
{
|
|
|
|
|
public View getView(int position, View convertView, ViewGroup parent)
|
|
|
|
|
{
|
|
|
|
|
//User super class to create the View
|
|
|
|
|
View v = super.getView(position, convertView, parent);
|
|
|
|
|
|
|
|
|
|
TextView tv = (TextView)v.findViewById(android.R.id.text1);
|
|
|
|
|
|
|
|
|
|
//Put the image on the TextView
|
|
|
|
|
tv.setCompoundDrawablesWithIntrinsicBounds(items.get(position).icon, 0, 0, 0);
|
|
|
|
|
|
|
|
|
|
//Add margin between image and text (support various screen densities)
|
|
|
|
|
int dp5 = (int) (5 * getResources().getDisplayMetrics().density + 0.5f);
|
|
|
|
|
tv.setCompoundDrawablePadding(dp5);
|
|
|
|
|
|
|
|
|
|
return v;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
AlertDialog.Builder builder = new AlertDialog.Builder(this)
|
|
|
|
|
.setTitle(getResources().getString(R.string.selectTypeOfTrigger))
|
|
|
|
|
.setAdapter(adapter, new DialogInterface.OnClickListener()
|
|
|
|
|
{
|
|
|
|
|
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
|
|
|
|
|
public void onClick(DialogInterface dialog, int which)
|
|
|
|
|
{
|
|
|
|
|
triggerType = Trigger_Enum.values()[which];
|
|
|
|
|
|
|
|
|
|
String[] booleanChoices = null;
|
|
|
|
|
if(triggerType == Trigger_Enum.pointOfInterest)
|
|
|
|
|
String[] booleanChoices = null;
|
|
|
|
|
if(triggerType == Trigger_Enum.pointOfInterest)
|
|
|
|
|
{
|
|
|
|
|
if(Miscellaneous.googleToBlameForLocation(false))
|
|
|
|
|
{
|
|
|
|
|
if(Miscellaneous.googleToBlameForLocation(false))
|
|
|
|
|
{
|
|
|
|
|
ActivityMainScreen.openGoogleBlamingWindow();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
ActivityMainScreen.openGoogleBlamingWindow();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (PointOfInterest.getPointOfInterestCollection() != null && PointOfInterest.getPointOfInterestCollection().size() > 0)
|
|
|
|
|
booleanChoices = new String[]{getResources().getString(R.string.entering), getResources().getString(R.string.leaving)};
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (PointOfInterest.getPointOfInterestCollection() != null && PointOfInterest.getPointOfInterestCollection().size() > 0)
|
|
|
|
|
booleanChoices = new String[]{getResources().getString(R.string.entering), getResources().getString(R.string.leaving)};
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Toast.makeText(myContext, getResources().getString(R.string.noPoisSpecified), Toast.LENGTH_LONG).show();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
Toast.makeText(myContext, getResources().getString(R.string.noPoisSpecified), Toast.LENGTH_LONG).show();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if(triggerType == Trigger_Enum.timeFrame)
|
|
|
|
|
{
|
|
|
|
|
newTrigger.setTriggerType(Trigger_Enum.timeFrame);
|
|
|
|
|
ActivityManageTriggerTimeFrame.editedTimeFrameTrigger = newTrigger;
|
|
|
|
|
Intent timeFrameEditor = new Intent(myContext, ActivityManageTriggerTimeFrame.class);
|
|
|
|
|
startActivityForResult(timeFrameEditor, requestCodeTriggerTimeframeAdd);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else if(triggerType == Trigger_Enum.charging)
|
|
|
|
|
booleanChoices = new String[]{getResources().getString(R.string.started), getResources().getString(R.string.stopped)};
|
|
|
|
|
else if(triggerType == Trigger_Enum.usb_host_connection)
|
|
|
|
|
booleanChoices = new String[]{getResources().getString(R.string.connected), getResources().getString(R.string.disconnected)};
|
|
|
|
|
else if(triggerType == Trigger_Enum.speed | triggerType == Trigger_Enum.noiseLevel | triggerType == Trigger_Enum.batteryLevel)
|
|
|
|
|
booleanChoices = new String[]{getResources().getString(R.string.exceeds), getResources().getString(R.string.dropsBelow)};
|
|
|
|
|
else if(triggerType == Trigger_Enum.wifiConnection)
|
|
|
|
|
{
|
|
|
|
|
newTrigger.setTriggerType(Trigger_Enum.wifiConnection);
|
|
|
|
|
Intent wifiTriggerEditor = new Intent(myContext, ActivityManageTriggerWifi.class);
|
|
|
|
|
startActivityForResult(wifiTriggerEditor, requestCodeTriggerWifiAdd);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else if(triggerType == Trigger_Enum.timeFrame)
|
|
|
|
|
{
|
|
|
|
|
newTrigger.setTriggerType(Trigger_Enum.timeFrame);
|
|
|
|
|
ActivityManageTriggerTimeFrame.editedTimeFrameTrigger = newTrigger;
|
|
|
|
|
Intent timeFrameEditor = new Intent(myContext, ActivityManageTriggerTimeFrame.class);
|
|
|
|
|
startActivityForResult(timeFrameEditor, requestCodeTriggerTimeframeAdd);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else if(triggerType == Trigger_Enum.charging)
|
|
|
|
|
booleanChoices = new String[]{getResources().getString(R.string.started), getResources().getString(R.string.stopped)};
|
|
|
|
|
else if(triggerType == Trigger_Enum.usb_host_connection)
|
|
|
|
|
booleanChoices = new String[]{getResources().getString(R.string.connected), getResources().getString(R.string.disconnected)};
|
|
|
|
|
else if(triggerType == Trigger_Enum.speed | triggerType == Trigger_Enum.noiseLevel | triggerType == Trigger_Enum.batteryLevel)
|
|
|
|
|
booleanChoices = new String[]{getResources().getString(R.string.exceeds), getResources().getString(R.string.dropsBelow)};
|
|
|
|
|
else if(triggerType == Trigger_Enum.wifiConnection)
|
|
|
|
|
{
|
|
|
|
|
newTrigger.setTriggerType(Trigger_Enum.wifiConnection);
|
|
|
|
|
Intent wifiTriggerEditor = new Intent(myContext, ActivityManageTriggerWifi.class);
|
|
|
|
|
startActivityForResult(wifiTriggerEditor, requestCodeTriggerWifiAdd);
|
|
|
|
|
return;
|
|
|
|
|
// booleanChoices = new String[]{getResources().getString(R.string.started), getResources().getString(R.string.stopped)};
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if(triggerType == Trigger_Enum.deviceOrientation)
|
|
|
|
|
{
|
|
|
|
|
newTrigger.setTriggerType(Trigger_Enum.deviceOrientation);
|
|
|
|
|
Intent devicePositionTriggerEditor = new Intent(myContext, ActivityManageTriggerDeviceOrientation.class);
|
|
|
|
|
startActivityForResult(devicePositionTriggerEditor, requestCodeTriggerDeviceOrientationAdd);
|
|
|
|
|
return;
|
|
|
|
|
// booleanChoices = new String[]{getResources().getString(R.string.started), getResources().getString(R.string.stopped)};
|
|
|
|
|
}
|
|
|
|
|
// else if(triggerType == Trigger_Enum.wifiConnection)
|
|
|
|
|
// booleanChoices = new String[]{getResources().getString(R.string.connected), getResources().getString(R.string.disconnected)};
|
|
|
|
|
else if(triggerType == Trigger_Enum.process_started_stopped)
|
|
|
|
|
booleanChoices = new String[]{getResources().getString(R.string.started), getResources().getString(R.string.stopped)};
|
|
|
|
|
else if(triggerType == Trigger_Enum.notification)
|
|
|
|
|
{
|
|
|
|
|
newTrigger.setTriggerType(Trigger_Enum.notification);
|
|
|
|
|
Intent nfcEditor = new Intent(myContext, ActivityManageTriggerNotification.class);
|
|
|
|
|
startActivityForResult(nfcEditor, requestCodeTriggerNotificationAdd);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else if(triggerType == Trigger_Enum.airplaneMode)
|
|
|
|
|
booleanChoices = new String[]{getResources().getString(R.string.activated), getResources().getString(R.string.deactivated)};
|
|
|
|
|
else if(triggerType == Trigger_Enum.roaming)
|
|
|
|
|
booleanChoices = new String[]{getResources().getString(R.string.activated), getResources().getString(R.string.deactivated)};
|
|
|
|
|
else if(triggerType == Trigger_Enum.phoneCall)
|
|
|
|
|
{
|
|
|
|
|
newTrigger.setTriggerType(Trigger_Enum.phoneCall);
|
|
|
|
|
Intent phoneTriggerEditor = new Intent(myContext, ActivityManageTriggerPhoneCall.class);
|
|
|
|
|
startActivityForResult(phoneTriggerEditor, requestCodeTriggerPhoneCallAdd);
|
|
|
|
|
return;
|
|
|
|
|
else if(triggerType == Trigger_Enum.process_started_stopped)
|
|
|
|
|
booleanChoices = new String[]{getResources().getString(R.string.started), getResources().getString(R.string.stopped)};
|
|
|
|
|
else if(triggerType == Trigger_Enum.notification)
|
|
|
|
|
{
|
|
|
|
|
newTrigger.setTriggerType(Trigger_Enum.notification);
|
|
|
|
|
Intent nfcEditor = new Intent(myContext, ActivityManageTriggerNotification.class);
|
|
|
|
|
startActivityForResult(nfcEditor, requestCodeTriggerNotificationAdd);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else if(triggerType == Trigger_Enum.airplaneMode)
|
|
|
|
|
booleanChoices = new String[]{getResources().getString(R.string.activated), getResources().getString(R.string.deactivated)};
|
|
|
|
|
else if(triggerType == Trigger_Enum.roaming)
|
|
|
|
|
booleanChoices = new String[]{getResources().getString(R.string.activated), getResources().getString(R.string.deactivated)};
|
|
|
|
|
else if(triggerType == Trigger_Enum.phoneCall)
|
|
|
|
|
{
|
|
|
|
|
newTrigger.setTriggerType(Trigger_Enum.phoneCall);
|
|
|
|
|
Intent phoneTriggerEditor = new Intent(myContext, ActivityManageTriggerPhoneCall.class);
|
|
|
|
|
startActivityForResult(phoneTriggerEditor, requestCodeTriggerPhoneCallAdd);
|
|
|
|
|
return;
|
|
|
|
|
// booleanChoices = new String[]{getResources().getString(R.string.started), getResources().getString(R.string.stopped)};
|
|
|
|
|
}
|
|
|
|
|
else if(triggerType == Trigger_Enum.activityDetection)
|
|
|
|
|
}
|
|
|
|
|
else if(triggerType == Trigger_Enum.activityDetection)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
Method m = Miscellaneous.getClassMethodReflective(activityDetectionClassPath, "isPlayServiceAvailable");
|
|
|
|
|
if(m != null)
|
|
|
|
|
{
|
|
|
|
|
Method m = Miscellaneous.getClassMethodReflective(activityDetectionClassPath, "isPlayServiceAvailable");
|
|
|
|
|
if(m != null)
|
|
|
|
|
boolean available = (Boolean)m.invoke(null);
|
|
|
|
|
if(available)
|
|
|
|
|
{
|
|
|
|
|
boolean available = (Boolean)m.invoke(null);
|
|
|
|
|
if(available)
|
|
|
|
|
{
|
|
|
|
|
newTrigger.setTriggerType(Trigger_Enum.activityDetection);
|
|
|
|
|
getTriggerActivityDetectionDialog().show();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
Toast.makeText(myContext, getResources().getString(R.string.triggerOnlyAvailableIfPlayServicesInstalled), Toast.LENGTH_LONG).show();
|
|
|
|
|
newTrigger.setTriggerType(Trigger_Enum.activityDetection);
|
|
|
|
|
getTriggerActivityDetectionDialog().show();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
Miscellaneous.messageBox(getResources().getString(R.string.error), getResources().getString(R.string.featureNotInFdroidVersion), ActivityManageRule.this).show();
|
|
|
|
|
Toast.makeText(myContext, getResources().getString(R.string.triggerOnlyAvailableIfPlayServicesInstalled), Toast.LENGTH_LONG).show();
|
|
|
|
|
}
|
|
|
|
|
catch (IllegalAccessException | InvocationTargetException e)
|
|
|
|
|
{
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
return;
|
|
|
|
|
else
|
|
|
|
|
Miscellaneous.messageBox(getResources().getString(R.string.error), getResources().getString(R.string.featureNotInFdroidVersion), ActivityManageRule.this).show();
|
|
|
|
|
}
|
|
|
|
|
else if(triggerType == Trigger_Enum.nfcTag)
|
|
|
|
|
catch (IllegalAccessException | InvocationTargetException e)
|
|
|
|
|
{
|
|
|
|
|
if(NfcReceiver.checkNfcRequirements(ActivityManageRule.this, true))
|
|
|
|
|
{
|
|
|
|
|
newTrigger.setTriggerType(Trigger_Enum.nfcTag);
|
|
|
|
|
Intent nfcEditor = new Intent(myContext, ActivityManageTriggerNfc.class);
|
|
|
|
|
startActivityForResult(nfcEditor, requestCodeTriggerNfcTagAdd);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
else if(triggerType == Trigger_Enum.bluetoothConnection)
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else if(triggerType == Trigger_Enum.nfcTag)
|
|
|
|
|
{
|
|
|
|
|
if(NfcReceiver.checkNfcRequirements(ActivityManageRule.this, true))
|
|
|
|
|
{
|
|
|
|
|
if(!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH))
|
|
|
|
|
Miscellaneous.messageBox("Bluetooth", getResources().getString(R.string.deviceDoesNotHaveBluetooth), ActivityManageRule.this).show();;
|
|
|
|
|
|
|
|
|
|
newTrigger.setTriggerType(Trigger_Enum.bluetoothConnection);
|
|
|
|
|
ActivityManageTriggerBluetooth.editedBluetoothTrigger = newTrigger;
|
|
|
|
|
Intent bluetoothEditor = new Intent(myContext, ActivityManageTriggerBluetooth.class);
|
|
|
|
|
startActivityForResult(bluetoothEditor, requestCodeTriggerBluetoothAdd);
|
|
|
|
|
newTrigger.setTriggerType(Trigger_Enum.nfcTag);
|
|
|
|
|
Intent nfcEditor = new Intent(myContext, ActivityManageTriggerNfc.class);
|
|
|
|
|
startActivityForResult(nfcEditor, requestCodeTriggerNfcTagAdd);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else if(triggerType == Trigger_Enum.headsetPlugged)
|
|
|
|
|
booleanChoices = new String[]{getResources().getString(R.string.connected), getResources().getString(R.string.disconnected)};
|
|
|
|
|
}
|
|
|
|
|
else if(triggerType == Trigger_Enum.bluetoothConnection)
|
|
|
|
|
{
|
|
|
|
|
if(!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH))
|
|
|
|
|
Miscellaneous.messageBox("Bluetooth", getResources().getString(R.string.deviceDoesNotHaveBluetooth), ActivityManageRule.this).show();;
|
|
|
|
|
|
|
|
|
|
if(triggerType == Trigger_Enum.nfcTag)
|
|
|
|
|
{
|
|
|
|
|
if (NfcReceiver.checkNfcRequirements(ActivityManageRule.this, true))
|
|
|
|
|
getTriggerParameterDialog(context, booleanChoices).show();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
newTrigger.setTriggerType(Trigger_Enum.bluetoothConnection);
|
|
|
|
|
ActivityManageTriggerBluetooth.editedBluetoothTrigger = newTrigger;
|
|
|
|
|
Intent bluetoothEditor = new Intent(myContext, ActivityManageTriggerBluetooth.class);
|
|
|
|
|
startActivityForResult(bluetoothEditor, requestCodeTriggerBluetoothAdd);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else if(triggerType == Trigger_Enum.headsetPlugged)
|
|
|
|
|
booleanChoices = new String[]{getResources().getString(R.string.connected), getResources().getString(R.string.disconnected)};
|
|
|
|
|
|
|
|
|
|
if(triggerType == Trigger_Enum.nfcTag)
|
|
|
|
|
{
|
|
|
|
|
if (NfcReceiver.checkNfcRequirements(ActivityManageRule.this, true))
|
|
|
|
|
getTriggerParameterDialog(context, booleanChoices).show();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return builder.create();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
getTriggerParameterDialog(context, booleanChoices).show();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return builder.create();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private AlertDialog getTriggerParameterDialog(final Context myContext, final String[] choices)
|
|
|
|
|
{
|
|
|
|
|
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
|
|
|
|
@ -1086,6 +1126,7 @@ public class ActivityManageRule extends Activity
|
|
|
|
|
if(resultCode == RESULT_OK)
|
|
|
|
|
{
|
|
|
|
|
//add TriggerUrl
|
|
|
|
|
ActivityManageActionTriggerUrl.resultingAction.setParentRule(ruleToEdit);
|
|
|
|
|
ruleToEdit.getActionSet().add(ActivityManageActionTriggerUrl.resultingAction);
|
|
|
|
|
this.refreshActionList();
|
|
|
|
|
}
|
|
|
|
@ -1103,6 +1144,7 @@ public class ActivityManageRule extends Activity
|
|
|
|
|
//add TimeFrame
|
|
|
|
|
if(resultCode == RESULT_OK && ActivityManageTriggerTimeFrame.editedTimeFrameTrigger != null)
|
|
|
|
|
{
|
|
|
|
|
newTrigger.setParentRule(ruleToEdit);
|
|
|
|
|
ruleToEdit.getTriggerSet().add(newTrigger);
|
|
|
|
|
this.refreshTriggerList();
|
|
|
|
|
}
|
|
|
|
@ -1114,6 +1156,7 @@ public class ActivityManageRule extends Activity
|
|
|
|
|
//edit TimeFrame
|
|
|
|
|
if(resultCode == RESULT_OK && ActivityManageTriggerTimeFrame.editedTimeFrameTrigger != null)
|
|
|
|
|
{
|
|
|
|
|
ActivityManageTriggerTimeFrame.editedTimeFrameTrigger.setParentRule(ruleToEdit);
|
|
|
|
|
this.refreshTriggerList();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
@ -1125,6 +1168,7 @@ public class ActivityManageRule extends Activity
|
|
|
|
|
{
|
|
|
|
|
newTrigger.setTriggerParameter(data.getBooleanExtra("wifiState", false));
|
|
|
|
|
newTrigger.setTriggerParameter2(data.getStringExtra("wifiName"));
|
|
|
|
|
newTrigger.setParentRule(ruleToEdit);
|
|
|
|
|
ruleToEdit.getTriggerSet().add(newTrigger);
|
|
|
|
|
this.refreshTriggerList();
|
|
|
|
|
}
|
|
|
|
@ -1133,8 +1177,12 @@ public class ActivityManageRule extends Activity
|
|
|
|
|
{
|
|
|
|
|
if(resultCode == RESULT_OK)
|
|
|
|
|
{
|
|
|
|
|
newTrigger.setTriggerParameter(data.getBooleanExtra("wifiState", false));
|
|
|
|
|
newTrigger.setTriggerParameter2(data.getStringExtra("wifiName"));
|
|
|
|
|
Trigger editedTrigger = new Trigger();
|
|
|
|
|
editedTrigger.setTriggerType(Trigger_Enum.wifiConnection);
|
|
|
|
|
editedTrigger.setTriggerParameter(data.getBooleanExtra("wifiState", false));
|
|
|
|
|
editedTrigger.setTriggerParameter2(data.getStringExtra("wifiName"));
|
|
|
|
|
editedTrigger.setParentRule(ruleToEdit);
|
|
|
|
|
ruleToEdit.getTriggerSet().set(editIndex, editedTrigger);
|
|
|
|
|
this.refreshTriggerList();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -1144,6 +1192,7 @@ public class ActivityManageRule extends Activity
|
|
|
|
|
if(resultCode == RESULT_OK)
|
|
|
|
|
{
|
|
|