forked from jens/Automation
144 lines
6.3 KiB
Java
144 lines
6.3 KiB
Java
|
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]);
|
||
|
}
|
||
|
}
|