NFC tag fix

This commit is contained in:
2025-12-07 23:13:15 +01:00
parent 3d2b48706d
commit 2758ef180d
6 changed files with 51 additions and 7 deletions

View File

@@ -2,10 +2,13 @@ package com.jens.automation2;
import android.Manifest; import android.Manifest;
import android.app.Activity; import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.AsyncTask;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Looper;
import android.os.VibrationEffect; import android.os.VibrationEffect;
import android.os.Vibrator; import android.os.Vibrator;
import android.view.View; import android.view.View;
@@ -22,6 +25,7 @@ public class ActivityManageActionVibrate extends Activity
{ {
TextView etVibratePattern; TextView etVibratePattern;
Button bTestVibratePattern, bSaveVibratePattern; Button bTestVibratePattern, bSaveVibratePattern;
ProgressDialog pdPleaseWait = null;
@Override @Override
protected void onCreate(@Nullable Bundle savedInstanceState) protected void onCreate(@Nullable Bundle savedInstanceState)
@@ -60,7 +64,20 @@ public class ActivityManageActionVibrate extends Activity
if (ActivityPermissions.havePermission(Manifest.permission.VIBRATE, ActivityManageActionVibrate.this)) if (ActivityPermissions.havePermission(Manifest.permission.VIBRATE, ActivityManageActionVibrate.this))
{ {
String pattern = etVibratePattern.getText().toString(); String pattern = etVibratePattern.getText().toString();
String[] patternArray = pattern.split(",");
long sum = 0;
for(String element : patternArray)
sum += Long.parseLong(element);
if(sum <= 2000)
Actions.vibrate(false, pattern); Actions.vibrate(false, pattern);
else
{
pdPleaseWait = ProgressDialog.show(ActivityManageActionVibrate.this, null, getResources().getString(R.string.pleaseWait));
VibrateTask vt = new VibrateTask();
vt.execute(pattern);
}
} }
} }
} }
@@ -84,4 +101,22 @@ public class ActivityManageActionVibrate extends Activity
return true; return true;
} }
class VibrateTask extends AsyncTask<String, Void, Void>
{
@Override
protected Void doInBackground(String... strings)
{
String pattern = (String)strings[0];
Actions.vibrate(false, pattern);
return null;
}
@Override
protected void onPostExecute(Void unused)
{
pdPleaseWait.dismiss();
super.onPostExecute(unused);
}
}
} }

View File

@@ -1240,6 +1240,12 @@ public class Trigger
public boolean hasStateNotAppliedSinceLastRuleExecution() public boolean hasStateNotAppliedSinceLastRuleExecution()
{ {
/*
There is no easy event to tell when a tag has been disconnected again.
*/
if(getTriggerType().equals(Trigger_Enum.nfcTag))
return true;
if(getParentRule().getLastExecution() == null) if(getParentRule().getLastExecution() == null)
{ {
Miscellaneous.logEvent("i", "Trigger", "Trigger " + this.toString() + " of rule " + getParentRule().getName() + " has NOT applied since the parent rule\'s last activation.", 4); Miscellaneous.logEvent("i", "Trigger", "Trigger " + this.toString() + " of rule " + getParentRule().getName() + " has NOT applied since the parent rule\'s last activation.", 4);

View File

@@ -8,10 +8,10 @@ import android.nfc.NdefMessage;
import android.nfc.NdefRecord; import android.nfc.NdefRecord;
import android.nfc.NfcAdapter; import android.nfc.NfcAdapter;
import android.nfc.Tag; import android.nfc.Tag;
import android.nfc.tech.IsoDep;
import android.nfc.tech.Ndef; import android.nfc.tech.Ndef;
import android.nfc.tech.NdefFormatable; import android.nfc.tech.NdefFormatable;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.os.Build;
import android.util.Log; import android.util.Log;
import android.widget.Toast; import android.widget.Toast;

View File

@@ -969,4 +969,5 @@
<string name="close">close</string> <string name="close">close</string>
<string name="far">far</string> <string name="far">far</string>
<string name="proximityText">proximity is between \"%1$s\" and \"%2$s\"</string> <string name="proximityText">proximity is between \"%1$s\" and \"%2$s\"</string>
<string name="pleaseWait">Please wait.</string>
</resources> </resources>

View File

@@ -8,5 +8,7 @@
* Fixed: Variable trigger didn't always compare correctly. * Fixed: Variable trigger didn't always compare correctly.
* Fixed: Permission check for ability to schedule exact timers * Fixed: Permission check for ability to schedule exact timers
* Fixed: Crash in Google Play version * Fixed: Crash in Google Play version
* Fixed: Added waiting period for vibrations * Fixed: Added waiting period for vibrations and separate thread for trying a sequence.
* Fixed: Buttons in NFC screen weren't enabled.
* Fixed: NFC tag triggers didn't cause a second execution if a tag was removed and presented again.
* Added Possibility to select UI theme, hence enabling modern UI designs * Added Possibility to select UI theme, hence enabling modern UI designs