diff --git a/app/src/playstore/java/com/farmerbb/taskbar/receiver/TaskerConditionReceiver.java b/app/src/playstore/java/com/farmerbb/taskbar/receiver/TaskerConditionReceiver.java index 7c4f1833..43585d43 100644 --- a/app/src/playstore/java/com/farmerbb/taskbar/receiver/TaskerConditionReceiver.java +++ b/app/src/playstore/java/com/farmerbb/taskbar/receiver/TaskerConditionReceiver.java @@ -26,17 +26,24 @@ import com.farmerbb.taskbar.util.U; public final class TaskerConditionReceiver extends BroadcastReceiver { + private Bundle lastbundle = null; + @Override public void onReceive(Context context, Intent intent) { if(U.isExternalAccessDisabled(context)) return; + if (lastbundle.equals(intent.getBundleExtra(com.twofortyfouram.locale.api.Intent.EXTRA_BUNDLE))) { + // bundle hasn't changed: we can safely return + return; + } + updateValues(intent); + BundleScrubber.scrub(intent); - final Bundle bundle = intent.getBundleExtra(com.twofortyfouram.locale.api.Intent.EXTRA_BUNDLE); - BundleScrubber.scrub(bundle); + BundleScrubber.scrub(lastbundle); - if(PluginBundleManager.isBundleValid(bundle)) { - String action = bundle.getString(PluginBundleManager.BUNDLE_EXTRA_STRING_MESSAGE); + if(PluginBundleManager.isBundleValid(lastbundle)) { + String action = lastbundle.getString(PluginBundleManager.BUNDLE_EXTRA_STRING_MESSAGE); if(action != null) switch(action) { case "tasker_on": @@ -54,4 +61,8 @@ public void onReceive(Context context, Intent intent) { } } } + + private void updateValues(Intent intent) { + lastbundle = intent.getBundleExtra(com.twofortyfouram.locale.api.Intent.EXTRA_BUNDLE); + } } \ No newline at end of file