<TaskerData sr="" dvi="1" tv="5.15.14"> <Profile sr="prof114" ve="2"> <cdate>1543411337077</cdate> <clp>true</clp> <edate>1646488154627</edate> <id>114</id> <mid0>115</mid0> <nme>ContextChanged</nme> <Event sr="con0" ve="2"> <code>3050</code> <pri>0</pri> <Str sr="arg0" ve="3">%modes_contexts</Str> <Str sr="arg1" ve="3"/> <Int sr="arg2" val="0"/> </Event> </Profile> <Profile sr="prof130" ve="2"> <cdate>1485323611359</cdate> <clp>true</clp> <edate>1590293383258</edate> <id>130</id> <limit>true</limit> <mid0>137</mid0> <mid1>138</mid1> <nme>Headphones-Example</nme> <State sr="con0" ve="2"> <code>30</code> <Int sr="arg0" val="0"/> </State> </Profile> <Profile sr="prof144" ve="2"> <cdate>1544825256683</cdate> <clp>true</clp> <edate>1629861081403</edate> <id>144</id> <limit>true</limit> <mid0>143</mid0> <nme>CheckForModesUpdate</nme> <Time sr="con0"> <fh>12</fh> <fm>0</fm> <th>12</th> <tm>0</tm> </Time> <Day sr="con1"> <wday0>2</wday0> <wday1>6</wday1> </Day> <State sr="con2" ve="2"> <code>165</code> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%modes_updatecheck</lhs> <op>2</op> <rhs>true</rhs> </Condition> </ConditionList> </State> </Profile> <Profile sr="prof148" ve="2"> <cdate>1544301750876</cdate> <clp>true</clp> <edate>1628065949892</edate> <id>148</id> <limit>true</limit> <mid0>187</mid0> <nme>ModesMediaOverride</nme> <Event sr="con0" ve="2"> <code>3050</code> <pri>0</pri> <Str sr="arg0" ve="3">%VOLM</Str> <Str sr="arg1" ve="3"/> <Int sr="arg2" val="0"/> </Event> </Profile> <Profile sr="prof184" ve="2"> <cdate>1646488205355</cdate> <clp>true</clp> <edate>1646488205355</edate> <flags>8</flags> <id>184</id> <mid0>115</mid0> <nme>ContextCleared</nme> <Event sr="con0" ve="2"> <code>3060</code> <pri>0</pri> <Str sr="arg0" ve="3">%Modes_Contexts</Str> <Int sr="arg1" val="0"/> </Event> </Profile> <Profile sr="prof51" ve="2"> <cdate>1545541948475</cdate> <clp>true</clp> <edate>1629861645518</edate> <id>51</id> <mid0>52</mid0> <nme>MonitorStart</nme> <pri>50</pri> <Event sr="con0" ve="2"> <code>307</code> <pri>0</pri> </Event> </Profile> <Profile sr="prof55" ve="2"> <cdate>1443816148810</cdate> <clp>true</clp> <edate>1570590264884</edate> <id>55</id> <limit>true</limit> <mid0>56</mid0> <mid1>57</mid1> <nme>Night-Example</nme> <Time sr="con0"> <fh>23</fh> <fm>0</fm> <th>7</th> <tm>0</tm> </Time> </Profile> <Project sr="proj0" ve="2"> <cdate>1469483841722</cdate> <name>Modes</name> <pids>51,114,184,55,148,144,130</pids> <tids>175,115,187,52,113,180,138,154,60,9,83,202,186,18,143,112,56,201,39,34,82,192,140,137,181,57,20,13</tids> <Share sr="Share"> <b>false</b> <d>Modes - A contextual settings framework to streamline the process of changing settings based on your current situation. GitHub page with more details: https://github.com/jhotmann/tasker-phone-modes</d> <p>false</p> <t>Setup</t> </Share> </Project> <Task sr="task112"> <cdate>1543115059459</cdate> <edate>1637607784568</edate> <id>112</id> <nme>AddToContext</nme> <pri>100</pri> <stayawake>true</stayawake> <Action sr="act0" ve="7"> <code>129</code> <Str sr="arg0" ve="3">const par1 = local('par1'); const par2 = local('par2'); let context = global('Modes_Contexts').split(',').filter(c => c.length > 0); if (par1) { switch (par2) { case ('if-not-exist'): case ('if-not-exists'): { if (context.indexOf(par1) === -1) appendToContext(par1); break; } case (par2.match(/^max-count=\d+$/) || {}).input: { let maxCount = parseInt(par2.toLowerCase().replace('max-count=', '')); if (maxCount) { let currentCount = context.filter((c) => { return c === par1; }).length; if (currentCount < maxCount) appendToContext(par1); } break; } default: { appendToContext(par1); } } } function appendToContext(c) { context.push(c); setGlobal('Modes_Contexts', context.join(',')); }</Str> <Str sr="arg1" ve="3"/> <Int sr="arg2" val="1"/> <Int sr="arg3" val="45"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>12</op> <rhs></rhs> </Condition> </ConditionList> </Action> <Img sr="icn" ve="2"> <nme>mw_av_playlist_add</nme> </Img> </Task> <Task sr="task113"> <cdate>1543115059459</cdate> <edate>1646488127512</edate> <id>113</id> <nme>RemoveFromContext</nme> <pri>100</pri> <stayawake>true</stayawake> <Action sr="act0" ve="7"> <code>129</code> <Str sr="arg0" ve="3">const par1 = local('par1'); const par2 = local('par2') || ''; let context = global('Modes_Contexts').split(',').filter(c => c.length > 0); let index = context.indexOf(par1); if (index > -1) { if (par2.toLowerCase() === 'all') { // remove all occurances while (index > -1) { context.splice(index, 1); index = context.indexOf(par1); } setGlobal('Modes_Contexts', context.join(',')); } else { // remove first occurance context.splice(index, 1); setGlobal('Modes_Contexts', context.join(',')); } }</Str> <Str sr="arg1" ve="3"/> <Int sr="arg2" val="1"/> <Int sr="arg3" val="45"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>12</op> <rhs></rhs> </Condition> </ConditionList> </Action> <Img sr="icn" ve="2"> <nme>mw_av_playlist_play</nme> </Img> </Task> <Task sr="task115"> <cdate>1543411345625</cdate> <edate>1646870976978</edate> <id>115</id> <nme>ContextChanged</nme> <pri>100</pri> <rty>2</rty> <stayawake>true</stayawake> <Action sr="act0" ve="7"> <code>30</code> <Int sr="arg0" val="0"/> <Int sr="arg1" val="1"/> <Int sr="arg2" val="0"/> <Int sr="arg3" val="0"/> <Int sr="arg4" val="0"/> </Action> <Action sr="act1" ve="7"> <code>129</code> <Str sr="arg0" ve="3">let version = '1.9.0'; setGlobal('Modes_Version', version); const ALL_CONFIGS = JSON.parse(global('Modes_Configs')); const DEFAULT_CONTEXT = global('Modes_DefaultContext'); let contexts = global('Modes_Contexts').split(',').filter(c => { return (c !== '') }); let previousContexts = global('Modes_ActiveContexts').split(',').filter(c => { return (c !== '') }); // Filter down to only configs in %Modes_Contexts let configs = ALL_CONFIGS.filter(c => { return contexts.indexOf(c.name) > -1 }); let defaultContext = (DEFAULT_CONTEXT && typeof DEFAULT_CONTEXT === 'string' ? ALL_CONFIGS.find(c => { return c.name === DEFAULT_CONTEXT }) : null) || { priority: 0 }; // Determine which contexts will be activated based upon type and priority let activeContexts = []; let primaryContext = configs.filter(c => { return c.type === 1; }).sort((a, b) => { return a.priority - b.priority; }).pop() || defaultContext; let primaryPriority = primaryContext.priority || 0; activeContexts.push(primaryContext.name); let secondaryContexts = configs.filter(c => { return (c.type === 2 && c.priority >= primaryPriority); }).sort((a, b) => { return a.priority - b.priority; }); secondaryContexts.forEach(c => { activeContexts.push(c.name); }); // Determine which contexts are newly active and inactive let newContexts = missingItems(activeContexts, previousContexts); let inactivatedContexts = missingItems(previousContexts, activeContexts); // Perform exit parameters for inactivated contexts ALL_CONFIGS .filter(c => { return inactivatedContexts.indexOf(c.name) > -1 }) .forEach(context => { if (context.exit) { if (context.exit.profilesToDisable && Array.isArray(context.exit.profilesToDisable)) context.exit.profilesToDisable.forEach(prof => { changeProfileStatus(prof, false); }); if (context.exit.profilesToEnable && Array.isArray(context.exit.profilesToEnable)) context.exit.profilesToEnable.forEach(prof => { changeProfileStatus(prof, true); }); if (context.exit.tasksToRun && Array.isArray(context.exit.tasksToRun)) context.exit.tasksToRun.forEach(tsk => { if (typeof tsk === 'string') { executeTask(tsk, 10, null, null); } else if (typeof tsk === 'object' && tsk.name) { executeTask(tsk.name, tsk.priority, tsk.param1, tsk.param2); } }); } }); // Merge active context's settings let merged = {}; if (primaryContext) { Object.keys(primaryContext).forEach(key => { if (['name', 'type', 'priority', 'enter', 'exit'].indexOf(key) === -1 && primaryContext[key] !== null) merged[key] = primaryContext[key]; }); } secondaryContexts.forEach(context => { Object.keys(context).forEach(key => { if (['name', 'type', 'priority', 'enter', 'exit'].indexOf(key) === -1 && context[key] !== null) merged[key] = context[key]; }); }); // Change settings according to merged context // DND first, if going from none/priority to all it must occur for media volume changes to occur (Android 12+) if (existsIsType(merged, 'dnd', 'string')) performTask('DoNotDisturb', 10, merged.dnd, ''); // Only change media volume if %Modes_MediaOverride != 1 const mediaVolExists = existsIsType(merged, 'volume_media', 'int'); if (existsIsType(merged, 'volume_media_override', 'boolean') && merged.volume_media_override) { if (mediaVolExists && global('Modes_MediaOverride') !== '1') mediaVol(merged.volume_media, false, false); enableProfile('ModesMediaOverride', true); } else { enableProfile('ModesMediaOverride', false); setGlobal('Modes_MediaOverride', '0'); if (mediaVolExists) mediaVol(merged.volume_media, false, false); } if (existsIsType(merged, 'volume_notification', 'int')) notificationVol(merged.volume_notification, false, false); if (existsIsType(merged, 'location', 'string')) performTask('LocationMode', 10, merged.location, ''); if (existsIsType(merged, 'wifiOn', 'boolean')) setWifi(merged.wifiOn); if (existsIsType(merged, 'bluetoothOn', 'boolean')) setBT(merged.bluetoothOn); if (existsIsType(merged, 'mobileDataOn', 'boolean')) performTask('MobileData', 10, merged.mobileDataOn, ''); if (existsIsType(merged, 'airplaneModeOn', 'boolean')) setAirplaneMode(merged.airplaneModeOn); if (existsIsType(merged, 'screenRotationOn', 'boolean')) performTask('DisplayRotate', 10, merged.screenRotationOn, ''); if (existsIsType(merged, 'displayTimeout', 'int')) displayTimeout(0, merged.displayTimeout, 0); if (existsIsType(merged, 'displayBrightness', 'int') || existsIsType(merged, 'displayBrightness', 'string')) performTask('DisplayBrightness', 10, merged.displayBrightness, ''); if (existsIsType(merged, 'nightLightOn', 'boolean')) performTask('NightLight', 10, merged.nightLightOn, ''); if (existsIsType(merged, 'extraDimOn', 'boolean')) performTask('ExtraDim', 10, merged.extraDimOn, ''); if (existsIsType(merged, 'immersiveMode', 'string')) performTask('ImmersiveMode', 10, merged.immersiveMode, ''); if (existsIsType(merged, 'darkMode', 'boolean')) performTask('DarkMode', 10, merged.darkMode, ''); if (existsIsType(merged, 'grayscaleMode', 'boolean')) performTask('GrayscaleMode', 10, merged.grayscaleMode, ''); if (existsIsType(merged, 'hapticFeedbackOn', 'boolean')) performTask('TouchVibrations', 10, merged.hapticFeedbackOn, ''); if (existsIsType(merged, 'batterySaverOn', 'boolean')) performTask('BatterySaver', 10, merged.batterySaverOn, ''); if (existsIsType(merged, 'owntracksMode', 'int')) performTask("OwntracksMode", 10, merged.owntracksMode, ''); if (existsIsType(merged, 'owntracksMode', 'string')) performTask("OwntracksMode", 10, owntracksStringToInt(merged.owntracksMode), ''); // Perform enter parameters for new contexts ALL_CONFIGS .filter(context => { return (newContexts.indexOf(context.name) > -1) }) .forEach(context => { if (context.enter) { if (context.enter.profilesToDisable && Array.isArray(context.enter.profilesToDisable)) context.enter.profilesToDisable.forEach(prof => { changeProfileStatus(prof, false); }); if (context.enter.profilesToEnable && Array.isArray(context.enter.profilesToEnable)) context.enter.profilesToEnable.forEach(prof => { changeProfileStatus(prof, true); }); if (context.enter.tasksToRun && Array.isArray(context.enter.tasksToRun)) context.enter.tasksToRun.forEach(tsk => { if (typeof tsk === 'string') { executeTask(tsk, 10, null, null); } else if (typeof tsk === 'object' && tsk.name) { executeTask(tsk.name, tsk.priority, tsk.param1, tsk.param2); } }); } }); setGlobal('Modes_ActiveContexts', activeContexts.join(',')); setLocal('active', activeContexts.join(', ') || DEFAULT_CONTEXT); exit(); // Helper functions function missingItems(arr1, arr2) { var missing = arr1.filter(function(item) { return arr2.indexOf(item) === -1; }); return missing; } function existsIsType(obj, key, type) { if (Object.keys(obj).indexOf(key) === -1) return false; if (type === 'int') return (Number.isInteger(obj[key])); else return (typeof obj[key] === type); } function changeProfileStatus(name, on) { enableProfile(name, on); wait(1000); } function executeTask(name, priority, param1, param2) { performTask(name, priority, param1, param2); wait(500); } function owntracksStringToInt(mode) { switch (mode.toLowerCase()) { case 'quiet': return -1; case 'manual': return 0; case 'move': return 2; default: return 1; } }</Str> <Str sr="arg1" ve="3"/> <Int sr="arg2" val="0"/> <Int sr="arg3"> <var>120</var> </Int> </Action> <Action sr="act2" ve="7"> <code>548</code> <Str sr="arg0" ve="3">%active</Str> <Int sr="arg1" val="0"/> <Str sr="arg10" ve="3">#FFFFFFFF</Str> <Int sr="arg11" val="1"/> <Int sr="arg12" val="0"/> <Str sr="arg13" ve="3">Top</Str> <Int sr="arg14" val="1"/> <Int sr="arg2" val="1"/> <Str sr="arg3" ve="3">ℹ️ Context Changed</Str> <Str sr="arg4" ve="3"/> <Str sr="arg5" ve="3"/> <Str sr="arg6" ve="3">#BF606060</Str> <Str sr="arg7" ve="3">EditContext</Str> <Str sr="arg8" ve="3">4000</Str> <Int sr="arg9" val="1"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%SCREEN</lhs> <op>2</op> <rhs>on</rhs> </Condition> </ConditionList> </Action> <Img sr="icn" ve="2"> <nme>mw_image_photo_filter</nme> </Img> </Task> <Task sr="task13"> <cdate>1469555817040</cdate> <edate>1544736509880</edate> <id>13</id> <nme>DisplayRotate</nme> <Action sr="act0" ve="7"> <code>596</code> <Str sr="arg0" ve="3">%par1</Str> <Int sr="arg1" val="28"/> <Str sr="arg2" ve="3">%rotate</Str> <Int sr="arg3"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>12</op> <rhs></rhs> </Condition> </ConditionList> </Action> <Action sr="act1" ve="7"> <code>822</code> <Int sr="arg0" val="1"/> <ConditionList sr="if"> <bool0>Or</bool0> <Condition sr="c0" ve="3"> <lhs>%rotate</lhs> <op>4</op> <rhs>true|on</rhs> </Condition> <Condition sr="c1" ve="3"> <lhs>%par1</lhs> <op>13</op> <rhs></rhs> </Condition> </ConditionList> </Action> <Action sr="act2" ve="7"> <code>822</code> <Int sr="arg0" val="0"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%rotate</lhs> <op>4</op> <rhs>false|off</rhs> </Condition> </ConditionList> </Action> <Img sr="icn" ve="2"> <nme>mw_device_screen_rotation</nme> </Img> </Task> <Task sr="task137"> <cdate>1485323616243</cdate> <edate>1590293377013</edate> <id>137</id> <Action sr="act0" ve="7"> <code>130</code> <Str sr="arg0" ve="3">AddToContext</Str> <Int sr="arg1"> <var>%priority</var> </Int> <Int sr="arg10" val="0"/> <Str sr="arg2" ve="3">earbuds</Str> <Str sr="arg3" ve="3"/> <Str sr="arg4" ve="3"/> <Int sr="arg5" val="0"/> <Int sr="arg6" val="0"/> <Str sr="arg7" ve="3"/> <Int sr="arg8" val="0"/> <Int sr="arg9" val="0"/> </Action> </Task> <Task sr="task138"> <cdate>1543422275395</cdate> <edate>1590293383258</edate> <id>138</id> <Action sr="act0" ve="7"> <code>130</code> <Str sr="arg0" ve="3">RemoveFromContext</Str> <Int sr="arg1"> <var>%priority</var> </Int> <Int sr="arg10" val="0"/> <Str sr="arg2" ve="3">earbuds</Str> <Str sr="arg3" ve="3"/> <Str sr="arg4" ve="3"/> <Int sr="arg5" val="0"/> <Int sr="arg6" val="0"/> <Str sr="arg7" ve="3"/> <Int sr="arg8" val="0"/> <Int sr="arg9" val="0"/> </Action> <Action sr="act1" ve="7"> <code>130</code> <Str sr="arg0" ve="3">RemoveFromContext</Str> <Int sr="arg1"> <var>%priority</var> </Int> <Int sr="arg10" val="0"/> <Str sr="arg2" ve="3">mediaoverride</Str> <Str sr="arg3" ve="3">all</Str> <Str sr="arg4" ve="3"/> <Int sr="arg5" val="0"/> <Int sr="arg6" val="0"/> <Str sr="arg7" ve="3"/> <Int sr="arg8" val="0"/> <Int sr="arg9" val="0"/> </Action> </Task> <Task sr="task140"> <cdate>1544453972007</cdate> <edate>1621575081741</edate> <id>140</id> <nme>BatterySaver</nme> <pri>100</pri> <Action sr="act0" ve="7"> <code>596</code> <Str sr="arg0" ve="3">%par1</Str> <Int sr="arg1" val="28"/> <Str sr="arg2" ve="3"/> <Int sr="arg3"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>12</op> <rhs></rhs> </Condition> </ConditionList> </Action> <Action sr="act1" ve="7"> <code>175</code> <Int sr="arg0" val="0"/> <ConditionList sr="if"> <bool0>Or</bool0> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>4</op> <rhs>false|off</rhs> </Condition> <Condition sr="c1" ve="3"> <lhs>%par1</lhs> <op>13</op> <rhs></rhs> </Condition> </ConditionList> </Action> <Action sr="act2" ve="7"> <code>175</code> <Int sr="arg0" val="1"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>4</op> <rhs>true|on</rhs> </Condition> </ConditionList> </Action> <Img sr="icn" ve="2"> <nme>mw_device_battery_alert</nme> </Img> </Task> <Task sr="task143"> <cdate>1544822459344</cdate> <edate>1572403451994</edate> <id>143</id> <nme>CheckForModesUpdate</nme> <pri>100</pri> <Action sr="act0" ve="7"> <code>339</code> <Bundle sr="arg0"> <Vals sr="val"> <net.dinglisch.android.tasker.RELEVANT_VARIABLES><StringArray sr=""><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0>%http_data Data Data that the server responded from the HTTP request.</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1>%http_response_code Response Code The HTTP Code the server responded</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2>%http_headers() Response Headers The HTTP Headers the server sent in the response. Each header is in the 'key:value' format</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES3>%http_response_length Response Length The size of the response in bytes</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES3></StringArray></net.dinglisch.android.tasker.RELEVANT_VARIABLES> <net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>[Ljava.lang.String;</net.dinglisch.android.tasker.RELEVANT_VARIABLES-type> </Vals> </Bundle> <Int sr="arg1" val="0"/> <Int sr="arg10" val="0"/> <Int sr="arg11" val="0"/> <Int sr="arg12" val="0"/> <Str sr="arg2" ve="3">https://github.com/jhotmann/tasker-phone-modes/releases.atom</Str> <Str sr="arg3" ve="3"/> <Str sr="arg4" ve="3"/> <Str sr="arg5" ve="3"/> <Str sr="arg6" ve="3"/> <Str sr="arg7" ve="3"/> <Int sr="arg8" val="30"/> <Int sr="arg9" val="0"/> </Action> <Action sr="act1" ve="7"> <code>598</code> <Str sr="arg0" ve="3">%http_data</Str> <Str sr="arg1" ve="3">(?<=title>)\d+\.\d+\.\d+</Str> <Int sr="arg2" val="0"/> <Int sr="arg3" val="0"/> <Int sr="arg4" val="0"/> <Str sr="arg5" ve="3">%versions</Str> <Int sr="arg6" val="0"/> <Str sr="arg7" ve="3"/> </Action> <Action sr="act10" ve="7"> <code>43</code> <ConditionList sr="if"> <bool0>And</bool0> <bool1>And</bool1> <Condition sr="c0" ve="3"> <lhs>%versions13</lhs> <op>7</op> <rhs>%currentversion3</rhs> </Condition> <Condition sr="c1" ve="3"> <lhs>%versions12</lhs> <op>8</op> <rhs>%currentversion2</rhs> </Condition> <Condition sr="c2" ve="3"> <lhs>%versions11</lhs> <op>8</op> <rhs>%currentversion1</rhs> </Condition> </ConditionList> </Action> <Action sr="act11" ve="7"> <code>135</code> <Int sr="arg0" val="1"/> <Int sr="arg1" val="1"/> <Str sr="arg2" ve="3">NotifyUpdate</Str> </Action> <Action sr="act12" ve="7"> <code>43</code> </Action> <Action sr="act13" ve="7"> <code>137</code> <Int sr="arg0" val="0"/> <Str sr="arg1" ve="3"/> </Action> <Action sr="act14" ve="7"> <code>38</code> </Action> <Action sr="act15" ve="7"> <code>523</code> <label>NotifyUpdate</label> <Str sr="arg0" ve="3">Modes Update Available</Str> <Str sr="arg1" ve="3">Select UPDATE to launch Taskernet</Str> <Str sr="arg10" ve="3"/> <Str sr="arg11" ve="3">modes_updates</Str> <Img sr="arg2" ve="2"> <nme>mw_notification_system_update</nme> </Img> <Int sr="arg3" val="0"/> <Int sr="arg4" val="0"/> <Int sr="arg5" val="3"/> <Int sr="arg6" val="0"/> <Int sr="arg7" val="8"/> <Int sr="arg8" val="0"/> <Str sr="arg9" ve="3"/> <ListElementItem sr="item0"> <label>Update</label> <Action sr="action" ve="7"> <code>104</code> <Str sr="arg0" ve="3">https://taskernet.com/shares/?user=AS35m8k7601Z2ol5UAzuT033Ll5H1yhruZrDvDITEN2l4b5o%2Fm1AF9Dpj3WrfO36Pgh2&id=Project%3AModes</Str> </Action> </ListElementItem> </Action> <Action sr="act2" ve="7"> <code>137</code> <Int sr="arg0" val="0"/> <Str sr="arg1" ve="3"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%versions1</lhs> <op>13</op> <rhs></rhs> </Condition> </ConditionList> </Action> <Action sr="act3" ve="7"> <code>590</code> <Str sr="arg0" ve="3">%versions1</Str> <Str sr="arg1" ve="3">.</Str> <Int sr="arg2" val="0"/> <Int sr="arg3" val="0"/> </Action> <Action sr="act4" ve="7"> <code>547</code> <Str sr="arg0" ve="3">%currentversion</Str> <Str sr="arg1" ve="3">%Modes_Version</Str> <Int sr="arg2" val="0"/> <Int sr="arg3" val="0"/> <Int sr="arg4" val="0"/> <Int sr="arg5" val="3"/> <Int sr="arg6" val="0"/> </Action> <Action sr="act5" ve="7"> <code>590</code> <Str sr="arg0" ve="3">%currentversion</Str> <Str sr="arg1" ve="3">.</Str> <Int sr="arg2" val="0"/> <Int sr="arg3" val="0"/> </Action> <Action sr="act6" ve="7"> <code>37</code> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%versions11</lhs> <op>7</op> <rhs>%currentversion1</rhs> </Condition> </ConditionList> </Action> <Action sr="act7" ve="7"> <code>135</code> <Int sr="arg0" val="1"/> <Int sr="arg1" val="1"/> <Str sr="arg2" ve="3">NotifyUpdate</Str> </Action> <Action sr="act8" ve="7"> <code>43</code> <ConditionList sr="if"> <bool0>And</bool0> <Condition sr="c0" ve="3"> <lhs>%versions12</lhs> <op>7</op> <rhs>%currentversion2</rhs> </Condition> <Condition sr="c1" ve="3"> <lhs>%versions11</lhs> <op>8</op> <rhs>%currentversion1</rhs> </Condition> </ConditionList> </Action> <Action sr="act9" ve="7"> <code>135</code> <Int sr="arg0" val="1"/> <Int sr="arg1" val="1"/> <Str sr="arg2" ve="3">NotifyUpdate</Str> </Action> <Img sr="icn" ve="2"> <nme>mw_notification_system_update</nme> </Img> </Task> <Task sr="task154"> <cdate>1572830036452</cdate> <edate>1646871493540</edate> <id>154</id> <nme>ReadConfigFiles</nme> <pri>100</pri> <rty>1</rty> <Action sr="act0" ve="7"> <code>129</code> <Str sr="arg0" ve="3">const CONFIG_PATH = global('Modes_ConfigPath'); let configs = []; let fileList = listFiles(CONFIG_PATH).split('\n').filter(f => { return (f !== '') }); fileList.forEach(f => { let conf = readConfigFile(f); configs.push(conf); }); setGlobal('Modes_Configs', JSON.stringify(configs)); exit(); function readConfigFile(configName) { let configText = '{}'; try { configText = readFile(configName); } catch (error) { flash('Error reading configuration file ' + configName); } let conf = JSON.parse(configText); if (!conf.name) conf.name = configName.replace(/^.*\/|\.[A-Za-z]+$/g, ''); if (!conf.type) conf.type = 1; if (!conf.priority) conf.priority = 50; // Translate old configuration format if (Object.keys(conf).indexOf('volume') > -1) { if (conf.volume.media !== null) conf.volume_media = conf.volume.media; if (conf.volume.notification !== null) conf.volume_notification = conf.volume.notification; if (conf.volume.dnd !== null) conf.dnd = conf.volume.dnd; delete conf.volume; } return conf; }</Str> <Str sr="arg1" ve="3"/> <Int sr="arg2" val="0"/> <Int sr="arg3" val="45"/> </Action> <Img sr="icn" ve="2"> <nme>mw_editor_format_line_spacing</nme> </Img> </Task> <Task sr="task175"> <cdate>1572209034876</cdate> <edate>1637607936585</edate> <id>175</id> <nme>EditContext</nme> <pri>100</pri> <rty>1</rty> <Action sr="act0" ve="7"> <code>512</code> <on>false</on> <Int sr="arg0" val="1"/> </Action> <Action sr="act1" ve="7"> <code>360</code> <Bundle sr="arg0"> <Vals sr="val"> <net.dinglisch.android.tasker.RELEVANT_VARIABLES><StringArray sr=""><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0>%input Input The text that was inserted in the dialog</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0></StringArray></net.dinglisch.android.tasker.RELEVANT_VARIABLES> <net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>[Ljava.lang.String;</net.dinglisch.android.tasker.RELEVANT_VARIABLES-type> </Vals> </Bundle> <Str sr="arg1" ve="3">Edit Context</Str> <Str sr="arg2" ve="3">A comma-separtated lists of contexts</Str> <Str sr="arg3" ve="3">%Modes_Contexts</Str> <Int sr="arg4" val="30"/> <Str sr="arg5" ve="3">524289</Str> <Int sr="arg6" val="0"/> <Int sr="arg7" val="0"/> </Action> <Action sr="act2" ve="7"> <code>547</code> <Str sr="arg0" ve="3">%Modes_Contexts</Str> <Str sr="arg1" ve="3">%input</Str> <Int sr="arg2" val="0"/> <Int sr="arg3" val="0"/> <Int sr="arg4" val="0"/> <Int sr="arg5" val="3"/> <Int sr="arg6" val="0"/> </Action> <Img sr="icn" ve="2"> <nme>mw_editor_border_color</nme> </Img> </Task> <Task sr="task18"> <cdate>1543968812849</cdate> <edate>1629861504870</edate> <id>18</id> <nme>ConfigCreator</nme> <pri>100</pri> <stayawake>true</stayawake> <Action sr="act0" ve="7"> <code>104</code> <Str sr="arg0" ve="3">https://rawgit.com/jhotmann/tasker-phone-modes/master/ConfigCreator/ConfigCreator.html</Str> </Action> <Img sr="icn" ve="2"> <nme>mw_action_note_add</nme> </Img> </Task> <Task sr="task180"> <cdate>1469465053041</cdate> <edate>1575825633571</edate> <id>180</id> <nme>ImmersiveMode</nme> <Action sr="act0" ve="7"> <code>596</code> <Str sr="arg0" ve="3">%par1</Str> <Int sr="arg1" val="28"/> <Str sr="arg2" ve="3">%mode</Str> <Int sr="arg3"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>12</op> <rhs></rhs> </Condition> </ConditionList> </Action> <Action sr="act1" ve="7"> <code>906</code> <Int sr="arg0" val="0"/> <ConditionList sr="if"> <bool0>Or</bool0> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>2</op> <rhs>off</rhs> </Condition> <Condition sr="c1" ve="3"> <lhs>%par1</lhs> <op>13</op> <rhs></rhs> </Condition> </ConditionList> </Action> <Action sr="act2" ve="7"> <code>906</code> <Int sr="arg0" val="1"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>2</op> <rhs>status</rhs> </Condition> </ConditionList> </Action> <Action sr="act3" ve="7"> <code>906</code> <Int sr="arg0" val="2"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>2</op> <rhs>navigation</rhs> </Condition> </ConditionList> </Action> <Action sr="act4" ve="7"> <code>906</code> <Int sr="arg0" val="3"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>4</op> <rhs>both|full</rhs> </Condition> </ConditionList> </Action> <Img sr="icn" ve="2"> <nme>mw_navigation_fullscreen</nme> </Img> </Task> <Task sr="task181"> <cdate>1544453972007</cdate> <edate>1646720889824</edate> <id>181</id> <nme>DarkMode</nme> <pri>100</pri> <Action sr="act0" ve="7"> <code>596</code> <Str sr="arg0" ve="3">%par1</Str> <Int sr="arg1" val="28"/> <Str sr="arg2" ve="3"/> <Int sr="arg3" val="0"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>12</op> <rhs></rhs> </Condition> </ConditionList> </Action> <Action sr="act1" ve="7"> <code>361</code> <Int sr="arg0" val="1"/> <Bundle sr="arg1"> <Vals sr="val"> <net.dinglisch.android.tasker.RELEVANT_VARIABLES><StringArray sr=""><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0>%new_state New State true if it after the action the setting is enabled, false if not</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0></StringArray></net.dinglisch.android.tasker.RELEVANT_VARIABLES> <net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>[Ljava.lang.String;</net.dinglisch.android.tasker.RELEVANT_VARIABLES-type> </Vals> </Bundle> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>4</op> <rhs>true|on</rhs> </Condition> </ConditionList> </Action> <Action sr="act2" ve="7"> <code>361</code> <Int sr="arg0" val="0"/> <Bundle sr="arg1"> <Vals sr="val"> <net.dinglisch.android.tasker.RELEVANT_VARIABLES><StringArray sr=""><_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0>%new_state New State true if it after the action the setting is enabled, false if not</_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0></StringArray></net.dinglisch.android.tasker.RELEVANT_VARIABLES> <net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>[Ljava.lang.String;</net.dinglisch.android.tasker.RELEVANT_VARIABLES-type> </Vals> </Bundle> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>4</op> <rhs>false|off</rhs> </Condition> </ConditionList> </Action> <Img sr="icn" ve="2"> <nme>mw_action_invert_colors</nme> </Img> </Task> <Task sr="task186"> <cdate>1646720473481</cdate> <edate>1646720796001</edate> <id>186</id> <nme>NightLight</nme> <Action sr="act0" ve="7"> <code>596</code> <Str sr="arg0" ve="3">%par1</Str> <Int sr="arg1" val="28"/> <Str sr="arg2" ve="3"/> <Int sr="arg3" val="0"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>12</op> <rhs></rhs> </Condition> </ConditionList> </Action> <Action sr="act1" ve="7"> <code>235</code> <Int sr="arg0" val="1"/> <Str sr="arg1" ve="3">night_display_activated</Str> <Str sr="arg2" ve="3">1</Str> <Int sr="arg3" val="0"/> <Str sr="arg4" ve="3"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>4</op> <rhs>true|on|1</rhs> </Condition> </ConditionList> </Action> <Action sr="act2" ve="7"> <code>235</code> <Int sr="arg0" val="1"/> <Str sr="arg1" ve="3">night_display_activated</Str> <Str sr="arg2" ve="3">0</Str> <Int sr="arg3" val="0"/> <Str sr="arg4" ve="3"/> <ConditionList sr="if"> <bool0>Or</bool0> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>4</op> <rhs>false|off|0</rhs> </Condition> <Condition sr="c1" ve="3"> <lhs>%par1</lhs> <op>13</op> <rhs></rhs> </Condition> </ConditionList> </Action> <Img sr="icn" ve="2"> <nme>mw_image_brightness_3</nme> </Img> </Task> <Task sr="task187"> <cdate>1544301755191</cdate> <edate>1628065949892</edate> <id>187</id> <pri>6</pri> <rty>1</rty> <Action sr="act0" ve="7"> <code>547</code> <Str sr="arg0" ve="3">%Modes_MediaOverride</Str> <Str sr="arg1" ve="3">1</Str> <Int sr="arg2" val="0"/> <Int sr="arg3" val="0"/> <Int sr="arg4" val="0"/> <Int sr="arg5" val="3"/> <Int sr="arg6" val="0"/> </Action> </Task> <Task sr="task192"> <cdate>1621575009022</cdate> <edate>1646720625423</edate> <id>192</id> <nme>ExtraDim</nme> <pri>100</pri> <Action sr="act0" ve="7"> <code>596</code> <Str sr="arg0" ve="3">%par1</Str> <Int sr="arg1" val="28"/> <Str sr="arg2" ve="3"/> <Int sr="arg3" val="0"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>12</op> <rhs></rhs> </Condition> </ConditionList> </Action> <Action sr="act1" ve="7"> <code>235</code> <Int sr="arg0" val="1"/> <Str sr="arg1" ve="3">reduce_bright_colors_activated</Str> <Str sr="arg2" ve="3">1</Str> <Int sr="arg3" val="0"/> <Str sr="arg4" ve="3"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>4</op> <rhs>true|on|1</rhs> </Condition> </ConditionList> </Action> <Action sr="act2" ve="7"> <code>235</code> <Int sr="arg0" val="1"/> <Str sr="arg1" ve="3">reduce_bright_colors_activated</Str> <Str sr="arg2" ve="3">0</Str> <Int sr="arg3" val="0"/> <Str sr="arg4" ve="3"/> <ConditionList sr="if"> <bool0>Or</bool0> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>4</op> <rhs>off|false|0</rhs> </Condition> <Condition sr="c1" ve="3"> <lhs>%par1</lhs> <op>13</op> <rhs></rhs> </Condition> </ConditionList> </Action> <Img sr="icn" ve="2"> <nme>mw_image_brightness_3</nme> </Img> </Task> <Task sr="task20"> <cdate>1471285453782</cdate> <edate>1629861478164</edate> <id>20</id> <nme>Setup</nme> <pri>100</pri> <Action sr="act0" ve="7"> <code>129</code> <Str sr="arg0" ve="3">var configPath = global('%Modes_ConfigPath'); var path = prompt('What folder will contain your config files? (No trailing slash)', (configPath ? configPath : '/sdcard/Tasker/ModeConfigs')); if (path != null) { setGlobal('Modes_ConfigPath', path); }</Str> <Str sr="arg1" ve="3"/> <Int sr="arg2" val="1"/> <Int sr="arg3" val="45"/> </Action> <Action sr="act1" ve="7"> <code>409</code> <se>false</se> <Str sr="arg0" ve="3">%Modes_ConfigPath</Str> <Int sr="arg1" val="1"/> <Int sr="arg2" val="0"/> <Int sr="arg3" val="0"/> </Action> <Action sr="act2" ve="7"> <code>129</code> <Str sr="arg0" ve="3">performTask('ReadConfigFiles', 99, null, null); var defaultContext = global('Modes_DefaultContext'); var dc = prompt('What would you like to be the default primary context?', (defaultContext ? defaultContext : '')); if (dc != null) { setGlobal('Modes_DefaultContext', dc); } var cfu = confirm('Would you like to periodically check for project updates?'); enableProfile('CheckForModesUpdate', cfu); enableProfile('ContextChanged', true); enableProfile('MonitorStart', true);</Str> <Str sr="arg1" ve="3"/> <Int sr="arg2" val="1"/> <Int sr="arg3" val="45"/> </Action> <Action sr="act3" ve="7"> <code>130</code> <on>false</on> <Str sr="arg0" ve="3">ReadConfigFiles</Str> <Int sr="arg1"> <var>%priority+1</var> </Int> <Int sr="arg10" val="0"/> <Str sr="arg2" ve="3"/> <Str sr="arg3" ve="3"/> <Str sr="arg4" ve="3"/> <Int sr="arg5" val="0"/> <Int sr="arg6" val="0"/> <Str sr="arg7" ve="3"/> <Int sr="arg8" val="0"/> <Int sr="arg9" val="0"/> </Action> <Action sr="act4" ve="7"> <code>159</code> <on>false</on> <Str sr="arg0" ve="3">ContextChanged</Str> <Int sr="arg1" val="1"/> </Action> <Action sr="act5" ve="7"> <code>159</code> <on>false</on> <Str sr="arg0" ve="3">CheckForModesUpdate</Str> <Int sr="arg1" val="1"/> </Action> <Action sr="act6" ve="7"> <code>159</code> <on>false</on> <Str sr="arg0" ve="3">MonitorStart</Str> <Int sr="arg1" val="1"/> </Action> <Img sr="icn" ve="2"> <nme>mw_communication_phonelink_setup</nme> </Img> </Task> <Task sr="task201"> <cdate>1519250213720</cdate> <edate>1628478108259</edate> <id>201</id> <nme>GrayscaleMode</nme> <pri>100</pri> <Action sr="act0" ve="7"> <code>547</code> <Str sr="arg0" ve="3">%par1</Str> <Str sr="arg1" ve="3">off</Str> <Int sr="arg2" val="0"/> <Int sr="arg3" val="0"/> <Int sr="arg4" val="0"/> <Int sr="arg5"/> <Int sr="arg6" val="0"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>13</op> <rhs></rhs> </Condition> </ConditionList> </Action> <Action sr="act1" ve="7"> <code>596</code> <Str sr="arg0" ve="3">%par1</Str> <Int sr="arg1" val="28"/> <Str sr="arg2" ve="3"/> <Int sr="arg3"/> </Action> <Action sr="act2" ve="7"> <code>235</code> <Int sr="arg0" val="1"/> <Str sr="arg1" ve="3">accessibility_display_daltonizer_enabled</Str> <Str sr="arg2" ve="3">1</Str> <Int sr="arg3" val="0"/> <Str sr="arg4" ve="3"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>4</op> <rhs>true|on</rhs> </Condition> </ConditionList> </Action> <Action sr="act3" ve="7"> <code>235</code> <Int sr="arg0" val="1"/> <Str sr="arg1" ve="3">accessibility_display_daltonizer_enabled</Str> <Str sr="arg2" ve="3">0</Str> <Int sr="arg3" val="0"/> <Str sr="arg4" ve="3"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>4</op> <rhs>false|off</rhs> </Condition> </ConditionList> </Action> <Img sr="icn" ve="2"> <nme>mw_image_tonality</nme> </Img> </Task> <Task sr="task202"> <cdate>1629860223041</cdate> <edate>1646720852472</edate> <id>202</id> <nme>ModesTest</nme> <pri>100</pri> <Action sr="act0" ve="7"> <code>548</code> <Str sr="arg0" ve="3">%modes_contexts</Str> <Int sr="arg1" val="0"/> <Str sr="arg10" ve="3"/> <Int sr="arg11" val="1"/> <Int sr="arg12" val="0"/> <Str sr="arg13" ve="3"/> <Int sr="arg14" val="0"/> <Int sr="arg2" val="0"/> <Str sr="arg3" ve="3"/> <Str sr="arg4" ve="3"/> <Str sr="arg5" ve="3"/> <Str sr="arg6" ve="3"/> <Str sr="arg7" ve="3"/> <Str sr="arg8" ve="3"/> <Int sr="arg9" val="1"/> </Action> <Img sr="icn" ve="2"> <nme>mw_editor_text_fields</nme> </Img> </Task> <Task sr="task34"> <cdate>1452598211627</cdate> <edate>1621575058091</edate> <id>34</id> <nme>TouchVibrations</nme> <pri>100</pri> <Action sr="act0" ve="7"> <code>596</code> <Str sr="arg0" ve="3">%par1</Str> <Int sr="arg1" val="28"/> <Str sr="arg2" ve="3"/> <Int sr="arg3"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>12</op> <rhs></rhs> </Condition> </ConditionList> </Action> <Action sr="act1" ve="7"> <code>235</code> <Int sr="arg0" val="2"/> <Str sr="arg1" ve="3">haptic_feedback_enabled</Str> <Str sr="arg2" ve="3">1</Str> <Int sr="arg3" val="0"/> <Str sr="arg4" ve="3"/> <ConditionList sr="if"> <bool0>Or</bool0> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>4</op> <rhs>true|on</rhs> </Condition> <Condition sr="c1" ve="3"> <lhs>%par1</lhs> <op>13</op> <rhs></rhs> </Condition> </ConditionList> </Action> <Action sr="act2" ve="7"> <code>235</code> <Int sr="arg0" val="2"/> <Str sr="arg1" ve="3">haptic_feedback_enabled</Str> <Str sr="arg2" ve="3">0</Str> <Int sr="arg3" val="0"/> <Str sr="arg4" ve="3"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>4</op> <rhs>false|off</rhs> </Condition> </ConditionList> </Action> <Img sr="icn" ve="2"> <nme>mw_action_touch_app</nme> </Img> </Task> <Task sr="task39"> <cdate>1469465053041</cdate> <edate>1575825941972</edate> <id>39</id> <nme>LocationMode</nme> <pri>100</pri> <Action sr="act0" ve="7"> <code>596</code> <Str sr="arg0" ve="3">%par1</Str> <Int sr="arg1" val="28"/> <Str sr="arg2" ve="3">%mode</Str> <Int sr="arg3"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>12</op> <rhs></rhs> </Condition> </ConditionList> </Action> <Action sr="act1" ve="7"> <code>905</code> <Int sr="arg0" val="3"/> <ConditionList sr="if"> <bool0>Or</bool0> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>13</op> <rhs></rhs> </Condition> <Condition sr="c1" ve="3"> <lhs>%par1</lhs> <op>2</op> <rhs>accuracy</rhs> </Condition> </ConditionList> </Action> <Action sr="act2" ve="7"> <code>905</code> <Int sr="arg0" val="0"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>2</op> <rhs>off</rhs> </Condition> </ConditionList> </Action> <Action sr="act3" ve="7"> <code>905</code> <Int sr="arg0" val="2"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>2</op> <rhs>battery</rhs> </Condition> </ConditionList> </Action> <Action sr="act4" ve="7"> <code>905</code> <Int sr="arg0" val="1"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>2</op> <rhs>device</rhs> </Condition> </ConditionList> </Action> <Img sr="icn" ve="2"> <nme>mw_maps_my_location</nme> </Img> </Task> <Task sr="task52"> <cdate>1545541953966</cdate> <edate>1629861645518</edate> <id>52</id> <pri>51</pri> <Action sr="act0" ve="7"> <code>130</code> <Str sr="arg0" ve="3">ReadConfigFiles</Str> <Int sr="arg1"> <var>%priority+1</var> </Int> <Int sr="arg10" val="0"/> <Str sr="arg2" ve="3"/> <Str sr="arg3" ve="3"/> <Str sr="arg4" ve="3"/> <Int sr="arg5" val="0"/> <Int sr="arg6" val="0"/> <Str sr="arg7" ve="3"/> <Int sr="arg8" val="0"/> <Int sr="arg9" val="0"/> </Action> <Action sr="act1" ve="7"> <code>549</code> <Str sr="arg0" ve="3">%modes_contexts</Str> <Int sr="arg1" val="0"/> <Int sr="arg2" val="0"/> <Int sr="arg3" val="0"/> </Action> </Task> <Task sr="task56"> <cdate>1443816152178</cdate> <edate>1570590264884</edate> <id>56</id> <pri>100</pri> <Action sr="act0" ve="7"> <code>130</code> <Str sr="arg0" ve="3">AddToContext</Str> <Int sr="arg1"> <var>%priority</var> </Int> <Int sr="arg10" val="0"/> <Str sr="arg2" ve="3">night</Str> <Str sr="arg3" ve="3"/> <Str sr="arg4" ve="3"/> <Int sr="arg5" val="0"/> <Int sr="arg6" val="0"/> <Str sr="arg7" ve="3"/> <Int sr="arg8" val="0"/> <Int sr="arg9" val="0"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%Modes_Contexts</lhs> <op>5</op> <rhs>(^|,)night($|,)</rhs> </Condition> </ConditionList> </Action> </Task> <Task sr="task57"> <cdate>1543421571650</cdate> <edate>1544048411472</edate> <id>57</id> <pri>100</pri> <Action sr="act0" ve="7"> <code>130</code> <Str sr="arg0" ve="3">RemoveFromContext</Str> <Int sr="arg1"> <var>%priority</var> </Int> <Int sr="arg10" val="0"/> <Str sr="arg2" ve="3">night</Str> <Str sr="arg3" ve="3"/> <Str sr="arg4" ve="3"/> <Int sr="arg5" val="0"/> <Int sr="arg6" val="0"/> <Str sr="arg7" ve="3"/> <Int sr="arg8" val="0"/> <Int sr="arg9" val="0"/> </Action> </Task> <Task sr="task60"> <cdate>1638022399682</cdate> <edate>1646863554862</edate> <id>60</id> <nme>OwntracksMode</nme> <Action sr="act0" ve="7"> <code>547</code> <Str sr="arg0" ve="3">%par1</Str> <Str sr="arg1" ve="3">1</Str> <Int sr="arg2" val="0"/> <Int sr="arg3" val="0"/> <Int sr="arg4" val="0"/> <Int sr="arg5" val="3"/> <Int sr="arg6" val="1"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>13</op> <rhs></rhs> </Condition> </ConditionList> </Action> <Action sr="act1" ve="7"> <code>877</code> <Str sr="arg0" ve="3">org.owntracks.android.CHANGE_MONITORING</Str> <Int sr="arg1" val="0"/> <Str sr="arg2" ve="3"/> <Str sr="arg3" ve="3"/> <Str sr="arg4" ve="3">monitoring:%par1</Str> <Str sr="arg5" ve="3"/> <Str sr="arg6" ve="3"/> <Str sr="arg7" ve="3"/> <Str sr="arg8" ve="3"/> <Int sr="arg9" val="2"/> </Action> <Img sr="icn" ve="2"> <nme>mw_maps_pin_drop</nme> </Img> </Task> <Task sr="task82"> <cdate>1544039715157</cdate> <edate>1601029950628</edate> <id>82</id> <nme>DisplayBrightness</nme> <pri>100</pri> <Action sr="act0" ve="7"> <code>596</code> <Str sr="arg0" ve="3">%par1</Str> <Int sr="arg1" val="28"/> <Str sr="arg2" ve="3"/> <Int sr="arg3"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>12</op> <rhs></rhs> </Condition> </ConditionList> </Action> <Action sr="act1" ve="7"> <code>808</code> <Int sr="arg0" val="1"/> <ConditionList sr="if"> <bool0>Or</bool0> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>2</op> <rhs>auto</rhs> </Condition> <Condition sr="c1" ve="3"> <lhs>%par1</lhs> <op>13</op> <rhs></rhs> </Condition> </ConditionList> </Action> <Action sr="act2" ve="7"> <code>808</code> <Int sr="arg0" val="0"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>4</op> <rhs>^\d+$</rhs> </Condition> </ConditionList> </Action> <Action sr="act3" ve="7"> <code>810</code> <Int sr="arg0"> <var>%par1</var> </Int> <Int sr="arg1" val="1"/> <Int sr="arg2" val="0"/> <Int sr="arg3" val="0"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>4</op> <rhs>^\d+$</rhs> </Condition> </ConditionList> </Action> <Img sr="icn" ve="2"> <nme>mw_image_brightness_6</nme> </Img> </Task> <Task sr="task83"> <cdate>1544453972007</cdate> <edate>1576045465679</edate> <id>83</id> <nme>MobileData</nme> <pri>100</pri> <Action sr="act0" ve="7"> <code>596</code> <Str sr="arg0" ve="3">%par1</Str> <Int sr="arg1" val="28"/> <Str sr="arg2" ve="3"/> <Int sr="arg3"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>12</op> <rhs></rhs> </Condition> </ConditionList> </Action> <Action sr="act1" ve="7"> <code>433</code> <Int sr="arg0" val="0"/> <Bundle sr="arg1"/> <ConditionList sr="if"> <bool0>Or</bool0> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>2</op> <rhs>false</rhs> </Condition> <Condition sr="c1" ve="3"> <lhs>%par1</lhs> <op>2</op> <rhs>off</rhs> </Condition> </ConditionList> </Action> <Action sr="act2" ve="7"> <code>433</code> <Int sr="arg0" val="1"/> <Bundle sr="arg1"/> <ConditionList sr="if"> <bool0>Or</bool0> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>2</op> <rhs>true</rhs> </Condition> <Condition sr="c1" ve="3"> <lhs>%par1</lhs> <op>2</op> <rhs>on</rhs> </Condition> </ConditionList> </Action> <Img sr="icn" ve="2"> <nme>mw_device_signal_cellular_3_bar</nme> </Img> </Task> <Task sr="task9"> <cdate>1469465053041</cdate> <edate>1587299882744</edate> <id>9</id> <nme>DoNotDisturb</nme> <Action sr="act0" ve="7"> <code>596</code> <Str sr="arg0" ve="3">%par1</Str> <Int sr="arg1" val="28"/> <Str sr="arg2" ve="3">%mode</Str> <Int sr="arg3"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%par1</lhs> <op>12</op> <rhs></rhs> </Condition> </ConditionList> </Action> <Action sr="act1" ve="7"> <code>312</code> <Int sr="arg0" val="2"/> <Int sr="arg1"/> <Int sr="arg2" val="0"/> <Int sr="arg3"/> <Str sr="arg4" ve="3"/> <Str sr="arg5" ve="3"/> <Bundle sr="arg6"/> <ConditionList sr="if"> <bool0>Or</bool0> <Condition sr="c0" ve="3"> <lhs>%mode</lhs> <op>2</op> <rhs>all</rhs> </Condition> <Condition sr="c1" ve="3"> <lhs>%par1</lhs> <op>13</op> <rhs></rhs> </Condition> </ConditionList> </Action> <Action sr="act2" ve="7"> <code>312</code> <Int sr="arg0" val="1"/> <Int sr="arg1"/> <Int sr="arg2" val="0"/> <Int sr="arg3"/> <Str sr="arg4" ve="3"/> <Str sr="arg5" ve="3"/> <Bundle sr="arg6"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%mode</lhs> <op>2</op> <rhs>priority</rhs> </Condition> </ConditionList> </Action> <Action sr="act3" ve="7"> <code>312</code> <Int sr="arg0" val="3"/> <Int sr="arg1"/> <Int sr="arg2" val="0"/> <Int sr="arg3"/> <Str sr="arg4" ve="3"/> <Str sr="arg5" ve="3"/> <Bundle sr="arg6"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%mode</lhs> <op>2</op> <rhs>alarms</rhs> </Condition> </ConditionList> </Action> <Action sr="act4" ve="7"> <code>312</code> <Int sr="arg0" val="0"/> <Int sr="arg1"/> <Int sr="arg2" val="0"/> <Int sr="arg3"/> <Str sr="arg4" ve="3"/> <Str sr="arg5" ve="3"/> <Bundle sr="arg6"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%mode</lhs> <op>2</op> <rhs>none</rhs> </Condition> </ConditionList> </Action> <Img sr="icn" ve="2"> <nme>mw_notification_do_not_disturb_off</nme> </Img> </Task> </TaskerData>