trueNotification on Statusbar Displayed: *true*TEXTCONTAINS_TEXTfalsetruetrueQuick Settings Tile Selected: Tile 3 Notification FiltertrueTILE_3BUILTINNOTIFICATION/storage/emulated/0/Android/data/ch.gridvision.ppam.androidautomagic/files/images/content%3A%2F%2Fcom.aspireux.iconpack.fileProvider%2Fcache%2FMessaging%252006.pngtruefalseAre any notifications shown?notifications!=""trueConfirm Dialog: Confirm add filter as is?Filter EditConfirm add filter as is?NoYesNOfalse60000truetrueConfirm Dialog: Manually apply notification filter?QuestionManually apply notification filter?NoYesNOfalse60000truefalseConfirm filter as-is or choose to editDo you want to edit the filter data?{chosen_app_name}:{chosen_title} | {chosen_notification_text}NoYesCANCELfalse60000truefalseDoes any autoremoved notification data exist?length(global_autoremoved_notif)!=0falseDoes any filter exist?length(global_notif)!=0falseDoes any saved notification data exist?length(global_saved_notif)!=0falseDoes the current notification match a filter?if(contains(notification["app_name"],notif_app)
AND contains(notification["notification_text"],notif_title)
AND contains(notification["notification_text"],notif_text))
{ action=notif_action;
return true;
}
else return false;falseExceptions for common non-clearable notificationsignore_test=notification[notification_text];
if(contains(ignore_test," charging")
OR contains(ignore_test,"keyboard")
OR ignore_test=="\n\n"
OR contains(ignore_test,"Saving")
OR contains(ignore_test,"Mobile Hotspot active"))
{ return false;
}
else return true;trueExecution Count: 10 times10false60000trueExpression: action=="notify harder"action=="notify harder"trueExpression: action=="remove"action=="remove"trueExpression: action=="save data then notify harder"action=="save data then notify harder"trueExpression: action=="save data then remove"action=="save data then remove"trueExpression: action=="save data"action=="save data"trueExpression: length(notifications)!=0length(notifications)!=0falseFilter was selected and dialog was not cancelledoperation=="ok" AND index!=-1falseIgnore non-standard notificationsisNumber(notification_index)falseItem 1 selectedindex==0falseItem 2 selectedindex==1falseItem 3 selectedindex==2falseItem 4 selectedindex==3falseItem 5 selectedindex==4falseItem 6 selectedindex==5falseIterate through global filter listif(index==null)
index=0;
if(index < length(global_notif))
{ notif_app=global_notif[index]["app"];
index=index+1;
return true;
}
else
{ notif_specific=replaceAll(notif_specific,"(.*),","$1");
index=null;
return false;
}falseIterate through notification filtersif(index==null)
index=0;
notif_app = notif_title = notif_text = notif_action = null;
if(index < length(global_notif))
{ notif_app = global_notif[index]["app"];
notif_title = global_notif[index]["title"];
notif_text = global_notif[index]["text"];
notif_action = global_notif[index]["action"];
index=index+1;
return true;
}
else
{ index=null;
return false;
}falseIterate through notifications and
exclude common non-clearable notificationsif (notification_index==null)
notification_index=0;
if (notification_index < length(notifications))
{ notification=notifications[notification_index];
notification_index=notification_index+1;
ignore_test=notification["notification_text"];
if (contains(ignore_test," charging")
OR contains(ignore_test,"keyboard")
OR ignore_test=="\n\n"
OR contains(ignore_test,"Saving")
OR contains(ignore_test,"Mobile Hotspot active"))
{ return false;
}
else return true;
}
else
{ notification_index=null;
return false;
}falseWas [cancel] or [back] pressed?operation!="ok"falseAdd chosen filter data to global filter listfalseAdd notification data to map to match manual flowfalseBuild input-dialog compatible list of filtersfalseChoose save location and namefalseClean up variable indextrueCopy Text to Clipboard: {global_notification_selected["app"]}{global_notification_selected["app"]}trueCopy Text to Clipboard: {global_notification_selected["text"]}{global_notification_selected["text"]}trueCopy Text to Clipboard: {global_notification_selected["title"]}{global_notification_selected["title"]}falseCreate Notifications Lists +
Split Notification for Input DialogfalseEdit application name to filterEdit App Name FilterSINGLE_LINE_TEXTApp Name to filter:{chosen_app_name}DEFAULTDEFAULTDEFAULTfalse60000falsefalsetruefalsefalsefalseEdit chosen filter data in global filter listfalseEdit notification text to filter (glob ok)Edit Notification Text FilterSINGLE_LINE_TEXTNotification Text to filter: (glob ok){chosen_notification_text}DEFAULTDEFAULTDEFAULTfalse60000falsefalsetruetruefalsefalseEdit notification title to filterEdit Notification Title FilterSINGLE_LINE_TEXTNotification Title to filter:{chosen_title}DEFAULTDEFAULTDEFAULTfalse60000falsefalsetruetruefalsetrueExecute Flows: NFilter | Autoremoved Notifications - ShowNFilter | Autoremoved Notifications - ShowfalsefalsefalsetrueExecute Flows: NFilter | Filter Match - AddNFilter | Filter Match - AddfalsefalsefalsetrueExecute Flows: NFilter | Filter Match - EditNFilter | Filter Match - EditfalsefalsefalsetrueExecute Flows: NFilter | Filter Match - RemoveNFilter | Filter Match - RemovefalsefalsefalsetrueExecute Flows: NFilter | Logged Notifications - RemoveNFilter | Logged Notifications - RemovefalsefalsefalsetrueExecute Flows: NFilter | Logged Notifications - Save to FileNFilter | Logged Notifications - Save to FilefalsefalsefalsetrueExecute Flows: NFilter | Run Filter - ManualNFilter | Run Filter - ManualfalsefalsefalsetrueExecute Flows: NFilter | Saved Notifications - ShowNFilter | Saved Notifications - ShowfalsefalsefalsefalseFind saved data in list to removetrueFlashlight: OfffalsetrueFlashlight: OntruefalseGet All Notifications on Statusbar -> notificationsnotificationsfalseGet relevant data for GUI (autoremoved)falseGet relevant data for GUI (saved)trueHide Custom Widget Overlay: Show Notification DataShow Notification DatatrueInput Dialog: Choose a filter to edit: Single Choice {global_notif,listformat,comma}Choose a filter to edit:SINGLE_CHOICE{global_notif,listformat,comma}DEFAULTDEFAULTDEFAULTfalse60000falsefalsetruefalsefalsefalseInput Dialog: Choose which app filter to remove:Choose which app filter to remove:SINGLE_CHOICE{notif_specific}DEFAULTDEFAULTDEFAULTfalse60000falsefalsefalsefalsefalsetrueInput Dialog: Notification Data to View Single Choice {global_autoremoved_notif,listformat,comma}Notification Data to ViewSINGLE_CHOICE{global_autoremoved_notif,listformat,comma}DEFAULTDEFAULTDEFAULTfalse60000falsefalsetruetruefalsetrueInput Dialog: Notification Data to View Single Choice {global_saved_notif,listformat,comma}Notification Data to ViewSINGLE_CHOICE{global_saved_notif,listformat,comma}DEFAULTDEFAULTDEFAULTfalse60000falsefalsetruetruefalsetrueInput Dialog: Notification Filter Single Choice Menu Add New Filter,Remove Filter,Edit Filter,Manually Apply Filter,Show Saved Notifications,Show Removed NotificationsNotification FilterSINGLE_CHOICE_MENUAdd New Filter,Remove Filter,Edit Filter,Manually Apply Filter,Show Saved Notifications,Show Removed NotificationsDEFAULTDEFAULTDEFAULTfalse60000falsefalsefalsefalsefalsetrueInput Dialog: Select notification to filter: Single Choice {notifications}Select notification to filter:SINGLE_CHOICE{notifications}DEFAULTDEFAULTDEFAULTfalse60000falsefalsetruetruefalsefalseLimit autoremoved notification data to 50 entriestrueNotification on Screen: NFilter | No filter action chosen.
Cancelled adding filter.trueNFilter | No filter action chosen.
Cancelled adding filter.false1.00falsetrueBOTTOM_CENTER050trueNotification on Screen: NFilter: Cancelled filter edit.trueNFilter: Cancelled filter edit.false1.00falsetrueBOTTOM_CENTER050trueNotification on Screen: NFilter: Filter added successfully.trueNFilter: Filter added successfully.200250false1falsetrueBOTTOM_CENTER050trueNotification on Screen: NFilter: Filter edited successfully.trueNFilter: Filter edited successfully.200250false1falsetrueBOTTOM_CENTER050trueNotification on Screen: NFilter: Filter removed successfully.trueNFilter: Filter removed successfully.200250false1falsetrueBOTTOM_CENTER050trueNotification on Screen: NFilter: Finished applying filters manually.trueNFilter: Finished applying filters manually.false1.00falsetrueBOTTOM_CENTER050trueNotification on Screen: NFilter: No autoremoved notification data exists.trueNFilter: No autoremoved notification data exists.false1.00falsetrueBOTTOM_CENTER050trueNotification on Screen: NFilter: No filters exist.trueNFilter: No filters exist.false1.00falsetrueBOTTOM_CENTER050trueNotification on Screen: NFilter: No notifications available to filter.trueNFilter: No notifications available to filter.false1.00falsetrueBOTTOM_CENTER050trueNotification on Screen: NFilter: No saved notification data exists.trueNFilter: No saved notification data exists.false1.00falsetrueBOTTOM_CENTER050trueNotification on Screen: NFilter: Notification text for app {notif_app} saved.trueNFilter: Notification text for app {notif_app} saved.false1.00falsetrueBOTTOM_CENTER050trueNotification on Screen: NFilter: {global_notification_type_selected} notification data output to file {save_location}.trueNFilter: {global_notification_type_selected} notification data output to file {save_location}.false1.00falsetrueBOTTOM_CENTER050trueNotification on Screen: NFilter: {global_notification_type_selected} notification data removed.trueNFilter: {global_notification_type_selected} notification data removed.false1.00falsetrueBOTTOM_CENTER050falseParse relevant filter datafalseParse relevant notification datafalseRemove selected filterfalseRemove the notification by id and package namefalsefalse1false{notification["package_name"]}false{notification["id"]}TEXTCONTAINS_TEXTfalseSave autoremoved notification text -> global_autoremoved_notiffalseSave edited app name -> chosen_app_namefalseSave edited notification text to filter -> chosen_notification_textfalseSave edited notification title -> chosen_titlefalseSave notification text -> global_saved_notiftrueShow Custom Widget Overlay: Show Notification Data, Show Notification Data (900*480) CenterShow Notification DataShow Notification Data900480CENTER_CENTER00false1.00truetruetruetrueSleep: 500ms (keep device awake)500mstruefalsetrueSound: Beep Once as NotificationBUILTINBeep Oncecontent://media/internal/audio/media/8NOTIFICATIONfalsefalsefalseTRANSIENTtrueVibrate: Pattern 1 (-)falsevibrate_pattern_10,500falseWhat filter action should apply when this filter finds a match? remove, save data, delete, reply, notify harderWhat filter action should apply when this filter finds a match?SINGLE_CHOICE_MENUWhat action to take on match?remove,save data,save data then remove,notify harder,save data then notify harderremoveDEFAULTDEFAULTDEFAULTfalse60000falsefalsetruefalsefalsefalseWrite notification data to file{save_location}{global_notification_app_name_selected}: {global_notification_title_selected} - {global_notification_text_selected}trueNFilter | Autoremoved Notifications - Show[NFilter] | NotiFilter - Notification ActionstruePARALLELShow Custom Widget Overlay: Show Notification Data, Show Notification Data (900*480) CenterNotification on Screen: NFilter: No autoremoved notification data exists.Does any autoremoved notification data exist?Input Dialog: Notification Data to View Single Choice {global_autoremoved_notif,listformat,comma}Filter was selected and dialog was not cancelledGet relevant data for GUI (autoremoved)NFilter | Filter Match - Add[NFilter] | NotiFilter - Notification ActionstruePARALLELConfirm Dialog: Confirm add filter as is?Manually add new blocked notifications.
Get ARRAY of all elements
Modify ARRAY to remove ongoing and grouping notifications. Create csv list from remaining notifications.
Display input dialog using csv as a single choice.
Pare data from csv according to choice index.
Are there any notifications?
Display input dialog for 3 necessary sections from data in csv.
Modify any desired sections of block filter.
Add new blocked notification matching data to global block lists.Input Dialog: Select notification to filter: Single Choice {notifications}Get All Notifications on Statusbar -> notificationsAre any notifications shown?Expression: length(notifications)!=0Edit application name to filterSave edited app name -> chosen_app_nameEdit notification title to filterSave edited notification title -> chosen_titleEdit notification text to filter (glob ok)Save edited notification text to filter -> chosen_notification_textConfirm filter as-is or choose to editParse relevant notification dataCreate Notifications Lists +
Split Notification for Input DialogNotification on Screen: NFilter: No notifications available to filter.Was [cancel] or [back] pressed?Notification on Screen: NFilter: Filter added successfully.Confirm Dialog: Manually apply notification filter?Execute Flows: NFilter | Run Filter - ManualWas [cancel] or [back] pressed?Notification on Screen: NFilter | No filter action chosen.
Cancelled adding filter.What filter action should apply when this filter finds a match? remove, save data, delete, reply, notify harderAdd chosen filter data to global filter listNFilter | Filter Match - Edit[NFilter] | NotiFilter - Notification ActionstruePARALLELSave edited notification title -> chosen_titleSave edited notification text to filter -> chosen_notification_textSave edited app name -> chosen_app_nameEdit application name to filterEdit notification title to filterEdit notification text to filter (glob ok)Notification on Screen: NFilter: Cancelled filter edit.Notification on Screen: NFilter: No filters exist.Does any filter exist?Notification on Screen: NFilter: Filter edited successfully.Notification on Screen: NFilter | No filter action chosen.
Cancelled adding filter.Was [cancel] or [back] pressed?What filter action should apply when this filter finds a match? remove, save data, delete, reply, notify harderInput Dialog: Choose a filter to edit: Single Choice {global_notif,listformat,comma}Was [cancel] or [back] pressed?Parse relevant filter dataEdit chosen filter data in global filter listNFilter | Filter Match - Remove[NFilter] | NotiFilter - Notification ActionstruePARALLELInput Dialog: Choose which app filter to remove:Notification on Screen: NFilter: Filter removed successfully.Does any filter exist?Notification on Screen: NFilter: No filters exist.Build input-dialog compatible list of filtersIterate through global filter listFilter was selected and dialog was not cancelledRemove selected filterNFilter | Logged Notifications - Remove[NFilter] | NotiFilter - Notification ActionstruePARALLELFind saved data in list to removeHide Custom Widget Overlay: Show Notification DataNotification on Screen: NFilter: {global_notification_type_selected} notification data removed.NFilter | Logged Notifications - Save to File[NFilter] | NotiFilter - Notification ActionstruePARALLELWrite notification data to fileNotification on Screen: NFilter: {global_notification_type_selected} notification data output to file {save_location}.Choose save location and nameNFilter | QuickSettings[NFilter] | NotiFilter - Notification ActionstruePARALLELClean up variable indexClean up variable indexClean up variable indexExecute Flows: NFilter | Filter Match - AddExecute Flows: NFilter | Filter Match - RemoveExecute Flows: NFilter | Filter Match - EditItem 3 selectedItem 2 selectedItem 1 selectedClean up variable indexItem 5 selectedClean up variable indexExecute Flows: NFilter | Saved Notifications - ShowExecute Flows: NFilter | Run Filter - ManualItem 6 selectedClean up variable indexQuick Settings Tile Selected: Tile 3 Notification FilterExecute Flows: NFilter | Autoremoved Notifications - ShowItem 4 selectedInput Dialog: Notification Filter Single Choice Menu Add New Filter,Remove Filter,Edit Filter,Manually Apply Filter,Show Saved Notifications,Show Removed NotificationsNFilter | Run Filter - AutoActive notification filter to auto-remove, save data from and add additional notification options.[NFilter] | NotiFilter - Notification ActionstrueQUEUE3600Exceptions for common non-clearable notificationsNotification on Statusbar Displayed: *Add notification data to map to match manual flowIterate through notification filtersExpression: action=="save data"Save notification text -> global_saved_notifExpression: action=="remove"Remove the notification by id and package nameNotification on Screen: NFilter: Notification text for app {notif_app} saved.Save notification text -> global_saved_notifRemove the notification by id and package nameExpression: action=="notify harder"Vibrate: Pattern 1 (-)Execution Count: 10 timesFlashlight: OnSleep: 500ms (keep device awake)Sound: Beep Once as NotificationFlashlight: OffExpression: action=="save data then notify harder"Save notification text -> global_saved_notifVibrate: Pattern 1 (-)Execution Count: 10 timesFlashlight: OnSound: Beep Once as NotificationFlashlight: OffSleep: 500ms (keep device awake)Notification on Screen: NFilter: Notification text for app {notif_app} saved.Notification on Screen: NFilter: Notification text for app {notif_app} saved.Does the current notification match a filter?Expression: action=="save data then remove"Save autoremoved notification text -> global_autoremoved_notifLimit autoremoved notification data to 50 entriesNFilter | Run Filter - Manual[NFilter] | NotiFilter - Notification ActionstrueSTOP2000Get All Notifications on Statusbar -> notificationsIterate through notifications and
exclude common non-clearable notificationsIgnore non-standard notificationsNotification on Screen: NFilter: Finished applying filters manually.Does any filter exist?Notification on Screen: NFilter: No filters exist.Iterate through notification filtersDoes the current notification match a filter?Save notification text -> global_saved_notifNotification on Screen: NFilter: Notification text for app {notif_app} saved.Remove the notification by id and package nameExpression: action=="save data then notify harder"Save notification text -> global_saved_notifNotification on Screen: NFilter: Notification text for app {notif_app} saved.Vibrate: Pattern 1 (-)Execution Count: 10 timesFlashlight: OnSleep: 500ms (keep device awake)Flashlight: OffSound: Beep Once as NotificationSound: Beep Once as NotificationFlashlight: OffExecution Count: 10 timesSleep: 500ms (keep device awake)Flashlight: OnVibrate: Pattern 1 (-)Expression: action=="notify harder"Expression: action=="save data"Save notification text -> global_saved_notifNotification on Screen: NFilter: Notification text for app {notif_app} saved.Remove the notification by id and package nameExpression: action=="remove"Expression: action=="save data then remove"Save autoremoved notification text -> global_autoremoved_notifLimit autoremoved notification data to 50 entriesNFilter | Saved Notifications - Show[NFilter] | NotiFilter - Notification ActionstruePARALLELNotification on Screen: NFilter: No saved notification data exists.Input Dialog: Notification Data to View Single Choice {global_saved_notif,listformat,comma}Show Custom Widget Overlay: Show Notification Data, Show Notification Data (900*480) CenterDoes any saved notification data exist?Filter was selected and dialog was not cancelledGet relevant data for GUI (saved)Show Notification Data9004801false3600000Copy Text to Clipboard: {global_notification_selected["app"]}Copy Text to Clipboard: {global_notification_selected["title"]}Copy Text to Clipboard: {global_notification_selected["text"]}Copy Text to Clipboard: {global_notification_selected["text"]}Copy Text to Clipboard: {global_notification_selected["text"]}Execute Flows: NFilter | Logged Notifications - Save to FileExecute Flows: NFilter | Logged Notifications - RemoveHide Custom Widget Overlay: Show Notification Datatrue20.020.0true-145402540.00.00.00.0Backgroundfalsetrue20.020.0true-14540254false-167772162.02.03.0478.0Bordertrue-4473925false-167772162.02.03.02.20.00.00.0falsetrue900.00.02.020.020.0true-4473925false-167772162.02.03.02.0Divider 1false-16711936false-167772162.02.03.01.00.00.00.0falsetrue900.00.079.020.020.0true-4473925false-167772162.02.03.02.0Divider 2false-16711936false-167772162.02.03.01.00.00.00.0falsetrue900.00.0159.020.020.0true-4473925false-167772162.02.03.02.0Divider 3false-16711936false-167772162.02.03.01.00.00.00.0falsetrue900.00.0399.020.020.0true-4473925false-167772162.02.03.080.0VDivider 1false-16711936false-167772162.02.03.01.00.00.00.0falsetrue2.0299.0400.020.020.0true-4473925false-167772162.02.03.080.0VDivider 1 copy_1false-16711936false-167772162.02.03.01.00.00.00.0falsetrue2.0599.0400.0falsefalsetrue-1false-167772162.02.03.080.0falseApp Namefalse-16711936false-167772162.02.03.01.00.00.00.0false{global_notification_app_name_selected}center0.00.00.00.01.050.00.0normalsansseriffalsemiddletrue900.00.00.0falsefalsetrue-1false-167772162.02.03.080.0trueNotification Titlefalse-16711936false-167772162.02.03.01.00.00.00.0false{global_notification_title_selected}center0.00.00.00.01.030.00.0normalsansseriffalsemiddletrue900.00.080.0falsefalsetrue-1false-167772162.02.03.0240.0trueNotification Textfalse-16711936false-167772162.02.03.01.00.00.00.0false{global_notification_text_selected}center0.00.00.00.01.030.00.0normalsansseriffalsemiddletrue900.00.0160.0falsefalsetrue-1false-167772162.02.03.080.0falseSave to Filefalse-16711936false-167772162.02.03.01.00.00.00.0falseSave to Filecenter0.00.00.00.01.030.00.0normalsansseriffalsemiddletrue300.00.0400.0falsefalsetrue-1false-167772162.02.03.080.0falseRemove Saved Datafalse-16711936false-167772162.02.03.01.00.00.00.0falseRemove Saved Datacenter0.00.00.00.01.030.00.0normalsansseriffalsemiddletrue300.0300.0400.0falsefalsetrue-1false-167772162.02.03.080.0falseClosefalse-16711936false-167772162.02.03.01.00.00.00.0falseClosecenter0.00.00.00.01.030.00.0normalsansseriffalsemiddletrue300.0600.0400.0