forked from jens/Automation
PhoneCallTrigger
This commit is contained in:
@ -51,6 +51,7 @@ public class Actions
|
||||
{
|
||||
public static AutomationService autoMationServerRef;
|
||||
public static Context context;
|
||||
public static Context rootetcontext;
|
||||
private static Intent playMusicIntent;
|
||||
private static boolean suAvailable = false;
|
||||
private static String suVersion = null;
|
||||
|
@ -99,6 +99,8 @@ public class ActivityManageRule extends Activity
|
||||
final static int requestCodeTriggerNfcNotificationEdit = 8001;
|
||||
final static int requestCodeActionPlaySoundAdd = 501;
|
||||
final static int requestCodeActionPlaySoundEdit = 502;
|
||||
final static int requestCodeTriggerPhoneCallAdd = 601;
|
||||
final static int requestCodeTriggerPhoneCallEdit = 602;
|
||||
|
||||
public static ActivityManageRule getInstance()
|
||||
{
|
||||
@ -567,7 +569,13 @@ public class ActivityManageRule extends Activity
|
||||
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)
|
||||
booleanChoices = new String[]{getResources().getString(R.string.started), getResources().getString(R.string.stopped)};
|
||||
{
|
||||
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)
|
||||
{
|
||||
try
|
||||
@ -1170,7 +1178,6 @@ public class ActivityManageRule extends Activity
|
||||
//add notification
|
||||
if(resultCode == RESULT_OK)
|
||||
{
|
||||
//newTrigger.setNfcTagId(ActivityManageNfc.generatedId);
|
||||
ruleToEdit.getTriggerSet().add(newTrigger);
|
||||
|
||||
newTrigger.setTriggerParameter2(
|
||||
@ -1182,8 +1189,6 @@ public class ActivityManageRule extends Activity
|
||||
);
|
||||
this.refreshTriggerList();
|
||||
}
|
||||
else
|
||||
Miscellaneous.logEvent("w", "ActivityManageNfc", "No nfc id returned. Assuming abort.", 5);
|
||||
}
|
||||
else if(requestCode == requestCodeTriggerNfcNotificationEdit)
|
||||
{
|
||||
@ -1193,6 +1198,23 @@ public class ActivityManageRule extends Activity
|
||||
this.refreshTriggerList();
|
||||
}
|
||||
}
|
||||
else if(requestCode == requestCodeTriggerPhoneCallAdd)
|
||||
{
|
||||
if(resultCode == RESULT_OK)
|
||||
{
|
||||
ruleToEdit.getTriggerSet().add(newTrigger);
|
||||
newTrigger.setTriggerParameter2(data.getStringExtra("triggerParameter2"));
|
||||
this.refreshTriggerList();
|
||||
}
|
||||
}
|
||||
else if(requestCode == requestCodeTriggerPhoneCallEdit)
|
||||
{
|
||||
if(resultCode == RESULT_OK)
|
||||
{
|
||||
newTrigger = ActivityManageTriggerPhoneCall.resultingTrigger;
|
||||
this.refreshTriggerList();
|
||||
}
|
||||
}
|
||||
else if(requestCode == requestCodeActionSpeakTextAdd)
|
||||
{
|
||||
if(resultCode == RESULT_OK)
|
||||
|
@ -32,13 +32,14 @@ import static com.jens.automation2.Trigger.triggerParameter2Split;
|
||||
public class ActivityManageTriggerNotification extends Activity
|
||||
{
|
||||
public static Trigger editedNotificationTrigger;
|
||||
boolean edit = false;
|
||||
ProgressDialog progressDialog = null;
|
||||
|
||||
EditText etNotificationTitle, etNotificationText;
|
||||
Button bSelectApp, bSaveTriggerNotification;
|
||||
Spinner spinnerTitleDirection, spinnerTextDirection;
|
||||
TextView tvSelectedApplication;
|
||||
CheckBox chkNotificationDirection;
|
||||
boolean edit = false;
|
||||
ProgressDialog progressDialog = null;
|
||||
|
||||
private static List<PackageInfo> pInfos = null;
|
||||
public static Trigger resultingTrigger;
|
||||
@ -393,7 +394,5 @@ public class ActivityManageTriggerNotification extends Activity
|
||||
progressDialog.dismiss();
|
||||
getActionStartActivityDialog1().show();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,143 @@
|
||||
package com.jens.automation2;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.Button;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.CompoundButton;
|
||||
import android.widget.EditText;
|
||||
import android.widget.RadioButton;
|
||||
import android.widget.Spinner;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
import static com.jens.automation2.Trigger.triggerParameter2Split;
|
||||
|
||||
public class ActivityManageTriggerPhoneCall extends Activity
|
||||
{
|
||||
public static Trigger editedPhoneCallTrigger;
|
||||
boolean edit = false;
|
||||
public static Trigger resultingTrigger;
|
||||
ProgressDialog progressDialog = null;
|
||||
|
||||
EditText etTriggerPhoneCallPhoneNumber;
|
||||
RadioButton rbTriggerPhoneCallStateAny, rbTriggerPhoneCallStateRinging, rbTriggerPhoneCallStateStarted, rbTriggerPhoneCallStateStopped, rbTriggerPhoneCallDirectionAny, rbTriggerPhoneCallDirectionIncoming, rbTriggerPhoneCallDirectionOutgoing;
|
||||
Button bSaveTriggerPhoneCall, bTriggerPhoneCallImportFromContacts;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState)
|
||||
{
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_manage_trigger_notification);
|
||||
|
||||
etTriggerPhoneCallPhoneNumber = (EditText)findViewById(R.id.etTriggerPhoneCallPhoneNumber);
|
||||
rbTriggerPhoneCallStateAny = (RadioButton)findViewById(R.id.rbTriggerPhoneCallStateAny);
|
||||
rbTriggerPhoneCallStateRinging = (RadioButton)findViewById(R.id.rbTriggerPhoneCallStateRinging);
|
||||
rbTriggerPhoneCallStateStarted = (RadioButton)findViewById(R.id.rbTriggerPhoneCallStateStarted);
|
||||
rbTriggerPhoneCallStateStopped = (RadioButton)findViewById(R.id.rbTriggerPhoneCallStateStopped);
|
||||
rbTriggerPhoneCallDirectionAny = (RadioButton)findViewById(R.id.rbTriggerPhoneCallDirectionAny);
|
||||
rbTriggerPhoneCallDirectionIncoming = (RadioButton)findViewById(R.id.rbTriggerPhoneCallDirectionIncoming);
|
||||
rbTriggerPhoneCallDirectionOutgoing = (RadioButton)findViewById(R.id.rbTriggerPhoneCallDirectionOutgoing);
|
||||
bTriggerPhoneCallImportFromContacts = (Button) findViewById(R.id.bTriggerPhoneCallImportFromContacts);
|
||||
bSaveTriggerPhoneCall = (Button) findViewById(R.id.bSaveTriggerPhoneCall);
|
||||
|
||||
bSaveTriggerPhoneCall.setOnClickListener(new View.OnClickListener()
|
||||
{
|
||||
@Override
|
||||
public void onClick(View v)
|
||||
{
|
||||
String tp2Result = "";
|
||||
|
||||
if(rbTriggerPhoneCallStateAny.isChecked())
|
||||
tp2Result += Trigger.triggerPhoneCallStateAny;
|
||||
else if(rbTriggerPhoneCallStateRinging.isChecked())
|
||||
tp2Result += Trigger.triggerPhoneCallStateRinging;
|
||||
else if(rbTriggerPhoneCallStateStarted.isChecked())
|
||||
tp2Result += Trigger.triggerPhoneCallStateStarted;
|
||||
else if(rbTriggerPhoneCallStateStopped.isChecked())
|
||||
tp2Result += Trigger.triggerPhoneCallStateStopped;
|
||||
|
||||
tp2Result += triggerParameter2Split;
|
||||
|
||||
if(rbTriggerPhoneCallDirectionAny.isChecked())
|
||||
tp2Result += Trigger.triggerPhoneCallDirectionAny;
|
||||
else if(rbTriggerPhoneCallDirectionIncoming.isChecked())
|
||||
tp2Result += Trigger.triggerPhoneCallDirectionImcoming;
|
||||
else if(rbTriggerPhoneCallDirectionOutgoing.isChecked())
|
||||
tp2Result += Trigger.triggerPhoneCallDirectionOutgoing;
|
||||
|
||||
tp2Result += triggerParameter2Split;
|
||||
|
||||
if(etTriggerPhoneCallPhoneNumber.getText() != null && etTriggerPhoneCallPhoneNumber.getText().toString().length() > 0)
|
||||
tp2Result += etTriggerPhoneCallPhoneNumber.getText().toString();
|
||||
else
|
||||
tp2Result += Trigger.triggerPhoneCallNumberAny;
|
||||
|
||||
if(edit)
|
||||
{
|
||||
editedPhoneCallTrigger.setTriggerParameter(false);
|
||||
editedPhoneCallTrigger.setTriggerParameter2(tp2Result);
|
||||
ActivityManageTriggerPhoneCall.this.setResult(RESULT_OK);
|
||||
}
|
||||
else
|
||||
{
|
||||
Intent data = new Intent();
|
||||
data.putExtra("triggerParameter", false);
|
||||
data.putExtra("triggerParameter2", tp2Result);
|
||||
ActivityManageTriggerPhoneCall.this.setResult(RESULT_OK, data);
|
||||
}
|
||||
|
||||
finish();
|
||||
}
|
||||
});
|
||||
|
||||
Intent i = getIntent();
|
||||
if(i.getBooleanExtra("edit", false) == true)
|
||||
{
|
||||
edit = true;
|
||||
loadValuesIntoGui();
|
||||
}
|
||||
}
|
||||
|
||||
private void loadValuesIntoGui()
|
||||
{
|
||||
String[] parts = editedPhoneCallTrigger.getTriggerParameter2().split(triggerParameter2Split);
|
||||
|
||||
if(parts[0].equals(Trigger.triggerPhoneCallStateAny))
|
||||
rbTriggerPhoneCallStateAny.setChecked(true);
|
||||
else if(parts[0].equals(Trigger.triggerPhoneCallStateRinging))
|
||||
rbTriggerPhoneCallStateRinging.setChecked(true);
|
||||
else if(parts[0].equals(Trigger.triggerPhoneCallStateStarted))
|
||||
rbTriggerPhoneCallStateStarted.setChecked(true);
|
||||
else if(parts[0].equals(Trigger.triggerPhoneCallStateStopped))
|
||||
rbTriggerPhoneCallStateStopped.setChecked(true);
|
||||
|
||||
if(parts[1].equals(Trigger.triggerPhoneCallDirectionAny))
|
||||
rbTriggerPhoneCallDirectionAny.setChecked(true);
|
||||
else if(parts[0].equals(Trigger.triggerPhoneCallDirectionImcoming))
|
||||
rbTriggerPhoneCallDirectionIncoming.setChecked(true);
|
||||
else if(parts[0].equals(Trigger.triggerPhoneCallDirectionOutgoing))
|
||||
rbTriggerPhoneCallDirectionOutgoing.setChecked(true);
|
||||
|
||||
if(!parts[2].equals(Trigger.triggerPhoneCallNumberAny))
|
||||
etTriggerPhoneCallPhoneNumber.setText(parts[2]);
|
||||
}
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
package com.jens.automation2;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
public class ActivityTriggerPhoneCall extends Activity
|
||||
{
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState)
|
||||
{
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_manage_trigger_phone_call);
|
||||
}
|
||||
}
|
@ -77,6 +77,15 @@ public class Trigger
|
||||
private PointOfInterest pointOfInterest = null;
|
||||
private TimeFrame timeFrame;
|
||||
|
||||
public static String triggerPhoneCallStateRinging = "ringing";
|
||||
public static String triggerPhoneCallStateStarted = "started";
|
||||
public static String triggerPhoneCallStateStopped = "stopped";
|
||||
public static String triggerPhoneCallStateAny = "any";
|
||||
public static String triggerPhoneCallDirectionImcoming = "incoming";
|
||||
public static String triggerPhoneCallDirectionOutgoing = "outgoing";
|
||||
public static String triggerPhoneCallDirectionAny = "any";
|
||||
public static String triggerPhoneCallNumberAny = "any";
|
||||
|
||||
private double speed; //km/h
|
||||
private long noiseLevelDb;
|
||||
private String wifiName = "";
|
||||
|
Reference in New Issue
Block a user