diff --git a/app/src/apkFlavor/AndroidManifest.xml b/app/src/apkFlavor/AndroidManifest.xml
index 5ac27c1..84884a9 100644
--- a/app/src/apkFlavor/AndroidManifest.xml
+++ b/app/src/apkFlavor/AndroidManifest.xml
@@ -152,6 +152,7 @@
+
diff --git a/app/src/main/java/com/jens/automation2/Action.java b/app/src/main/java/com/jens/automation2/Action.java
index 61763e2..5a59e4a 100644
--- a/app/src/main/java/com/jens/automation2/Action.java
+++ b/app/src/main/java/com/jens/automation2/Action.java
@@ -44,6 +44,7 @@ public class Action
setScreenBrightness,
playSound,
vibrate,
+ createNotification,
sendTextMessage;
public String getFullName(Context context)
@@ -108,6 +109,8 @@ public class Action
return context.getResources().getString(R.string.sendTextMessage);
case setScreenBrightness:
return context.getResources().getString(R.string.setScreenBrightness);
+ case createNotification:
+ return context.getResources().getString(R.string.createNotification);
default:
return "Unknown";
}
diff --git a/app/src/main/java/com/jens/automation2/ActivityManageActionBrightnessSetting.java b/app/src/main/java/com/jens/automation2/ActivityManageActionBrightnessSetting.java
index 1225e7e..1a90190 100644
--- a/app/src/main/java/com/jens/automation2/ActivityManageActionBrightnessSetting.java
+++ b/app/src/main/java/com/jens/automation2/ActivityManageActionBrightnessSetting.java
@@ -14,6 +14,9 @@ import androidx.annotation.Nullable;
public class ActivityManageActionBrightnessSetting extends Activity
{
+ public static final String intentNameAutoBrightness = "autoBrightness";
+ public static final String intentNameBrightnessValue = "brightnessValue";
+
CheckBox chkAutoBrightness;
SeekBar sbBrightness;
Button bApplyBrightness;
@@ -32,11 +35,11 @@ public class ActivityManageActionBrightnessSetting extends Activity
Intent input = getIntent();
- if(input.hasExtra("autoBrightness"))
- chkAutoBrightness.setChecked(input.getBooleanExtra("autoBrightness", false));
+ if(input.hasExtra(intentNameAutoBrightness))
+ chkAutoBrightness.setChecked(input.getBooleanExtra(intentNameAutoBrightness, false));
- if(input.hasExtra("brightnessValue"))
- sbBrightness.setProgress(input.getIntExtra("brightnessValue", 0));
+ if(input.hasExtra(intentNameBrightnessValue))
+ sbBrightness.setProgress(input.getIntExtra(intentNameBrightnessValue, 0));
bApplyBrightness.setOnClickListener(new View.OnClickListener()
{
@@ -44,8 +47,8 @@ public class ActivityManageActionBrightnessSetting extends Activity
public void onClick(View view)
{
Intent answer = new Intent();
- answer.putExtra("autoBrightness", chkAutoBrightness.isChecked());
- answer.putExtra("brightnessValue", sbBrightness.getProgress());
+ answer.putExtra(intentNameAutoBrightness, chkAutoBrightness.isChecked());
+ answer.putExtra(intentNameBrightnessValue, sbBrightness.getProgress());
setResult(RESULT_OK, answer);
finish();
}
diff --git a/app/src/main/java/com/jens/automation2/ActivityManageActionCreateNotification.java b/app/src/main/java/com/jens/automation2/ActivityManageActionCreateNotification.java
new file mode 100644
index 0000000..d4f8bc4
--- /dev/null
+++ b/app/src/main/java/com/jens/automation2/ActivityManageActionCreateNotification.java
@@ -0,0 +1,66 @@
+package com.jens.automation2;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import androidx.annotation.Nullable;
+
+import org.apache.commons.lang3.StringUtils;
+
+public class ActivityManageActionCreateNotification extends Activity
+{
+ public static final String intentNameNotificationTitle = "notificationTitle";
+ public static final String intentNameNotificationText = "notificationText";
+
+ EditText etNotificationTitle, etNotificationText;
+ Button bSaveActionNotification;
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_manage_action_create_notification);
+
+ etNotificationTitle = (EditText) findViewById(R.id.etNotificationTitle);
+ etNotificationText = (EditText)findViewById(R.id.etNotificationText);
+ bSaveActionNotification = (Button)findViewById(R.id.bSaveActionNotification);
+
+ Intent input = getIntent();
+
+ if(input.hasExtra(intentNameNotificationTitle))
+ etNotificationTitle.setText(input.getStringExtra(intentNameNotificationTitle));
+
+ if(input.hasExtra(intentNameNotificationText))
+ etNotificationText.setText(input.getStringExtra(intentNameNotificationText));
+
+ bSaveActionNotification.setOnClickListener(new View.OnClickListener()
+ {
+ @Override
+ public void onClick(View view)
+ {
+ if(StringUtils.isBlank(etNotificationTitle.getText().toString()))
+ {
+ Toast.makeText(ActivityManageActionCreateNotification.this, getResources().getString(R.string.enterTitle), Toast.LENGTH_LONG).show();
+ return;
+ }
+
+ if(StringUtils.isBlank(etNotificationText.getText().toString()))
+ {
+ Toast.makeText(ActivityManageActionCreateNotification.this, getResources().getString(R.string.enterText), Toast.LENGTH_LONG).show();
+ return;
+ }
+
+ Intent answer = new Intent();
+ answer.putExtra(intentNameNotificationTitle, etNotificationTitle.getText().toString());
+ answer.putExtra(intentNameNotificationText, etNotificationText.getText().toString());
+ setResult(RESULT_OK, answer);
+ finish();
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/jens/automation2/ActivityManageRule.java b/app/src/main/java/com/jens/automation2/ActivityManageRule.java
index 21363ce..4efaf17 100644
--- a/app/src/main/java/com/jens/automation2/ActivityManageRule.java
+++ b/app/src/main/java/com/jens/automation2/ActivityManageRule.java
@@ -115,6 +115,8 @@ public class ActivityManageRule extends Activity
final static int requestCodeActionSendTextMessageEdit = 5002;
final static int requestCodeActionVibrateAdd = 801;
final static int requestCodeActionVibrateEdit = 802;
+ final static int requestCodeActionCreateNotificationAdd = 803;
+ final static int requestCodeActionCreateNotificationEdit = 804;
public static ActivityManageRule getInstance()
{
@@ -353,8 +355,8 @@ public class ActivityManageRule extends Activity
break;
case setScreenBrightness:
Intent activityEditScreenBrightnessIntent = new Intent(ActivityManageRule.this, ActivityManageActionBrightnessSetting.class);
- activityEditScreenBrightnessIntent.putExtra("autoBrightness", a.getParameter1());
- activityEditScreenBrightnessIntent.putExtra("brightnessValue", Integer.parseInt(a.getParameter2()));
+ activityEditScreenBrightnessIntent.putExtra(ActivityManageActionBrightnessSetting.intentNameAutoBrightness, a.getParameter1());
+ activityEditScreenBrightnessIntent.putExtra(ActivityManageActionBrightnessSetting.intentNameBrightnessValue, Integer.parseInt(a.getParameter2()));
startActivityForResult(activityEditScreenBrightnessIntent, requestCodeActionScreenBrightnessEdit);
break;
case vibrate:
@@ -362,6 +364,13 @@ public class ActivityManageRule extends Activity
activityEditVibrateIntent.putExtra("vibratePattern", a.getParameter2());
startActivityForResult(activityEditVibrateIntent, requestCodeActionVibrateEdit);
break;
+ case createNotification:
+ Intent activityEditCreateNotificationIntent = new Intent(ActivityManageRule.this, ActivityManageActionCreateNotification.class);
+ String[] elements = a.getParameter2().split(Action.actionParameter2Split);
+ activityEditCreateNotificationIntent.putExtra(ActivityManageActionCreateNotification.intentNameNotificationTitle, elements[0]);
+ activityEditCreateNotificationIntent.putExtra(ActivityManageActionCreateNotification.intentNameNotificationText, elements[1]);
+ startActivityForResult(activityEditCreateNotificationIntent, requestCodeActionCreateNotificationEdit);
+ break;
case playSound:
Intent actionPlaySoundIntent = new Intent(context, ActivityManageActionPlaySound.class);
actionPlaySoundIntent.putExtra("edit", true);
@@ -1336,8 +1345,8 @@ public class ActivityManageRule extends Activity
{
if(resultCode == RESULT_OK)
{
- newAction.setParameter1(data.getBooleanExtra("autoBrightness", false));
- newAction.setParameter2(String.valueOf(data.getIntExtra("brightnessValue", 0)));
+ newAction.setParameter1(data.getBooleanExtra(ActivityManageActionBrightnessSetting.intentNameAutoBrightness, false));
+ newAction.setParameter2(String.valueOf(data.getIntExtra(ActivityManageActionBrightnessSetting.intentNameBrightnessValue, 0)));
newAction.setParentRule(ruleToEdit);
ruleToEdit.getActionSet().add(newAction);
this.refreshActionList();
@@ -1368,6 +1377,20 @@ public class ActivityManageRule extends Activity
this.refreshActionList();
}
}
+ else if(requestCode == requestCodeActionCreateNotificationAdd)
+ {
+ if(resultCode == RESULT_OK)
+ {
+ newAction.setParentRule(ruleToEdit);
+ newAction.setParameter2(
+ data.getStringExtra(ActivityManageActionCreateNotification.intentNameNotificationTitle)
+ + Action.actionParameter2Split +
+ data.getStringExtra(ActivityManageActionCreateNotification.intentNameNotificationText)
+ );
+ ruleToEdit.getActionSet().add(newAction);
+ this.refreshActionList();
+ }
+ }
else if(requestCode == requestCodeActionVibrateEdit)
{
if(resultCode == RESULT_OK)
@@ -1380,6 +1403,22 @@ public class ActivityManageRule extends Activity
this.refreshActionList();
}
}
+ else if(requestCode == requestCodeActionCreateNotificationEdit)
+ {
+ if(resultCode == RESULT_OK)
+ {
+ ruleToEdit.getActionSet().get(editIndex).setParentRule(ruleToEdit);
+
+ if(data.hasExtra(ActivityManageActionCreateNotification.intentNameNotificationTitle))
+ ruleToEdit.getActionSet().get(editIndex).setParameter2(
+ data.getStringExtra(ActivityManageActionCreateNotification.intentNameNotificationTitle)
+ + Action.actionParameter2Split +
+ data.getStringExtra(ActivityManageActionCreateNotification.intentNameNotificationText)
+ );
+
+ this.refreshActionList();
+ }
+ }
else if(requestCode == requestCodeActionPlaySoundAdd)
{
if(resultCode == RESULT_OK)
@@ -1682,6 +1721,12 @@ public class ActivityManageRule extends Activity
Intent intent = new Intent(ActivityManageRule.this, ActivityManageActionVibrate.class);
startActivityForResult(intent, requestCodeActionVibrateAdd);
}
+ else if(Action.getActionTypesAsArray()[which].toString().equals(Action_Enum.createNotification.toString()))
+ {
+ newAction.setAction(Action_Enum.createNotification);
+ Intent intent = new Intent(ActivityManageRule.this, ActivityManageActionCreateNotification.class);
+ startActivityForResult(intent, requestCodeActionCreateNotificationAdd);
+ }
else if(Action.getActionTypesAsArray()[which].toString().equals(Action_Enum.setScreenBrightness.toString()))
{
newAction.setAction(Action_Enum.setScreenBrightness);
diff --git a/app/src/main/res/layout/activity_manage_action_create_notification.xml b/app/src/main/res/layout/activity_manage_action_create_notification.xml
new file mode 100644
index 0000000..5166c60
--- /dev/null
+++ b/app/src/main/res/layout/activity_manage_action_create_notification.xml
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 9874a16..1f52706 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -755,4 +755,7 @@
Choose activity manually
Easy mode: Automation can try to identify the launcher activity of the desired program. Alternatively you can also pick one of the application\'s activities manually. What would you like?
A launcher activity of this app could not be identified. You will have to pick one manually.
+ Create notification
+ Enter a title.
+ Enter a text.
\ No newline at end of file