ruby-macrodroid 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/ruby-macrodroid.rb +641 -158
- metadata +11 -11
- metadata.gz.sig +0 -0
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 79ad74c909d44b5bc3ddd5a5f65a2359cf385de96cd9e504cf30ce390ab2252f
         | 
| 4 | 
            +
              data.tar.gz: 71ab0f9b2267ea514859f4ebc9525e4cb5c8389895ccf85df2653a495c7bc104
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 8f514b4bc19ddc8b00d8794fe7802779c332f371072db40c30f6a247316764b43306919e571256c5200451965aa9629312e30c82d96838a78d5f4658df22bf95
         | 
| 7 | 
            +
              data.tar.gz: 6c4b78db5f22aa70860c34eb9a046909805a93924dc2fb3c7bcae45ced4d552b04e3c05645a1ac54135b220fae189641352820b90f00b78ae00506701ce3dc4d
         | 
    
        checksums.yaml.gz.sig
    CHANGED
    
    | Binary file | 
    
        data.tar.gz.sig
    CHANGED
    
    | Binary file | 
    
        data/lib/ruby-macrodroid.rb
    CHANGED
    
    | @@ -2,13 +2,9 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            # file: ruby-macrodroid.rb
         | 
| 4 4 |  | 
| 5 | 
            -
            require 'pp'
         | 
| 6 | 
            -
            require 'json'
         | 
| 7 5 | 
             
            require 'uuid'
         | 
| 8 | 
            -
            require 'date'
         | 
| 9 6 | 
             
            require 'rxfhelper'
         | 
| 10 | 
            -
            require ' | 
| 11 | 
            -
             | 
| 7 | 
            +
            require 'chronic_cron'
         | 
| 12 8 |  | 
| 13 9 |  | 
| 14 10 | 
             
            class TriggersNlp
         | 
| @@ -70,7 +66,7 @@ module Params | |
| 70 66 | 
             
                  h.inject({}) do |r, x|
         | 
| 71 67 |  | 
| 72 68 | 
             
                    key, value = x
         | 
| 73 | 
            -
                    puts 'value: ' + value.inspect
         | 
| 69 | 
            +
                    #puts 'value: ' + value.inspect
         | 
| 74 70 |  | 
| 75 71 | 
             
                    val = if value.is_a?(Hash) then
         | 
| 76 72 | 
             
                      to_snake_case(value)
         | 
| @@ -117,15 +113,18 @@ class Macro | |
| 117 113 | 
             
              using Params
         | 
| 118 114 |  | 
| 119 115 | 
             
              attr_reader :local_variables, :triggers, :actions, :guid
         | 
| 120 | 
            -
              attr_accessor : | 
| 116 | 
            +
              attr_accessor :title
         | 
| 121 117 |  | 
| 122 118 | 
             
              def initialize(name=nil, debug: false)
         | 
| 123 119 |  | 
| 124 | 
            -
                @ | 
| 120 | 
            +
                @title, @debug = name, debug
         | 
| 121 | 
            +
                
         | 
| 122 | 
            +
                puts 'inside Macro#initialize' if @debug
         | 
| 123 | 
            +
                
         | 
| 125 124 | 
             
                lv=[], triggers=[], actions=[]
         | 
| 126 125 | 
             
                @local_variables, @triggers, @actions = lv, triggers, actions
         | 
| 127 126 |  | 
| 128 | 
            -
                @triggers, @actions = [], []
         | 
| 127 | 
            +
                @triggers, @actions, @constraints = [], [], []
         | 
| 129 128 | 
             
                @h = {}
         | 
| 130 129 |  | 
| 131 130 | 
             
              end
         | 
| @@ -159,7 +158,7 @@ class Macro | |
| 159 158 | 
             
                  m_action_list: @actions.map(&:to_h),
         | 
| 160 159 | 
             
                  m_constraint_list: [], 
         | 
| 161 160 | 
             
                  m_description: '',
         | 
| 162 | 
            -
                  m_name: @ | 
| 161 | 
            +
                  m_name: @title,
         | 
| 163 162 | 
             
                  m_excludeLog: false,
         | 
| 164 163 | 
             
                  m_GUID: guid(),
         | 
| 165 164 | 
             
                  m_isOrCondition: false,
         | 
| @@ -203,7 +202,12 @@ class Macro | |
| 203 202 |  | 
| 204 203 | 
             
              def import_xml(node)
         | 
| 205 204 |  | 
| 206 | 
            -
                @ | 
| 205 | 
            +
                if @debug then
         | 
| 206 | 
            +
                  puts 'inside Macro#import_xml'
         | 
| 207 | 
            +
                  puts 'node: ' + node.xml.inspect
         | 
| 208 | 
            +
                end
         | 
| 209 | 
            +
                
         | 
| 210 | 
            +
                @title = node.attributes[:name]
         | 
| 207 211 |  | 
| 208 212 | 
             
                if node.element('triggers') then
         | 
| 209 213 |  | 
| @@ -242,6 +246,8 @@ class Macro | |
| 242 246 |  | 
| 243 247 | 
             
                    r = tp.find_trigger e.text
         | 
| 244 248 |  | 
| 249 | 
            +
                    puts 'found trigger ' + r.inspect if @debug
         | 
| 250 | 
            +
                    
         | 
| 245 251 | 
             
                    if r then
         | 
| 246 252 | 
             
                      r[0].new(r[1])
         | 
| 247 253 | 
             
                    end
         | 
| @@ -253,6 +259,7 @@ class Macro | |
| 253 259 | 
             
                  @actions = node.xpath('action').map do |e|
         | 
| 254 260 |  | 
| 255 261 | 
             
                    r = ap.find_action e.text
         | 
| 262 | 
            +
                    puts 'found action ' + r.inspect if @debug
         | 
| 256 263 |  | 
| 257 264 | 
             
                    if r then
         | 
| 258 265 | 
             
                      r[0].new(r[1])
         | 
| @@ -265,6 +272,33 @@ class Macro | |
| 265 272 | 
             
                self
         | 
| 266 273 |  | 
| 267 274 | 
             
              end
         | 
| 275 | 
            +
              
         | 
| 276 | 
            +
              def match?(triggerx, detail={time: $env[:time]} )
         | 
| 277 | 
            +
                            
         | 
| 278 | 
            +
                if @triggers.any? {|x| x.type == triggerx and x.match?(detail) } then
         | 
| 279 | 
            +
                  
         | 
| 280 | 
            +
                  if @debug then
         | 
| 281 | 
            +
                    puts 'checking constraints ...' 
         | 
| 282 | 
            +
                    puts '@constraints: ' + @constraints.inspect
         | 
| 283 | 
            +
                  end
         | 
| 284 | 
            +
                  
         | 
| 285 | 
            +
                  if @constraints.all? {|x| x.match?($env.merge(detail)) } then
         | 
| 286 | 
            +
                  
         | 
| 287 | 
            +
                    true
         | 
| 288 | 
            +
                    
         | 
| 289 | 
            +
                  else
         | 
| 290 | 
            +
             | 
| 291 | 
            +
                    return false
         | 
| 292 | 
            +
                    
         | 
| 293 | 
            +
                  end
         | 
| 294 | 
            +
                  
         | 
| 295 | 
            +
                end
         | 
| 296 | 
            +
                
         | 
| 297 | 
            +
              end
         | 
| 298 | 
            +
              
         | 
| 299 | 
            +
              def run()
         | 
| 300 | 
            +
                @actions.map(&:invoke)
         | 
| 301 | 
            +
              end  
         | 
| 268 302 |  | 
| 269 303 | 
             
              private
         | 
| 270 304 |  | 
| @@ -298,10 +332,12 @@ class MacroDroid | |
| 298 332 |  | 
| 299 333 | 
             
                  if s[0] == '{' then
         | 
| 300 334 | 
             
                    import_json(s) 
         | 
| 301 | 
            -
                   | 
| 302 | 
            -
                    s[0] == '<'
         | 
| 335 | 
            +
                  elsif  s[0] == '<'
         | 
| 303 336 | 
             
                    import_xml(s)
         | 
| 304 337 | 
             
                    @h = build_h
         | 
| 338 | 
            +
                  else
         | 
| 339 | 
            +
                    import_xml(text_to_xml(s))
         | 
| 340 | 
            +
                    @h = build_h
         | 
| 305 341 | 
             
                  end
         | 
| 306 342 |  | 
| 307 343 | 
             
                else
         | 
| @@ -319,6 +355,7 @@ class MacroDroid | |
| 319 355 |  | 
| 320 356 | 
             
              def build_h()
         | 
| 321 357 |  | 
| 358 | 
            +
                puts 'inside Macro#build_h' if @debug
         | 
| 322 359 | 
             
                {
         | 
| 323 360 | 
             
                  cell_tower_groups: [],
         | 
| 324 361 | 
             
                  cell_towers_ignore: [],
         | 
| @@ -379,12 +416,38 @@ class MacroDroid | |
| 379 416 |  | 
| 380 417 | 
             
                @macros = doc.root.xpath('macro').map do |node|
         | 
| 381 418 |  | 
| 382 | 
            -
                  macro = Macro.new @ | 
| 419 | 
            +
                  macro = Macro.new @title, debug: @debug
         | 
| 383 420 | 
             
                  macro.import_xml(node)
         | 
| 384 421 | 
             
                  macro
         | 
| 385 422 |  | 
| 386 423 | 
             
                end
         | 
| 387 424 | 
             
              end
         | 
| 425 | 
            +
              
         | 
| 426 | 
            +
              def text_to_xml(s)
         | 
| 427 | 
            +
                
         | 
| 428 | 
            +
                a = s.split(/.*(?=^m:)/); a.shift
         | 
| 429 | 
            +
                a.map!(&:chomp)
         | 
| 430 | 
            +
             | 
| 431 | 
            +
                macros = a.map do |x|
         | 
| 432 | 
            +
             | 
| 433 | 
            +
                  lines = x.lines
         | 
| 434 | 
            +
                  puts 'lines: ' + lines.inspect if @debug
         | 
| 435 | 
            +
                  
         | 
| 436 | 
            +
                  name = lines.shift[/^m: +(.*)/,1]
         | 
| 437 | 
            +
                  h = {t: [], a: [], c: []}
         | 
| 438 | 
            +
             | 
| 439 | 
            +
                  lines.each {|line| h[line[0].to_sym] << line[/^\w: +(.*)/,1] }
         | 
| 440 | 
            +
                  triggers = h[:t].map {|text| [:trigger, {}, text]}
         | 
| 441 | 
            +
                  actions = h[:a].map {|text| [:action, {}, text]}
         | 
| 442 | 
            +
             | 
| 443 | 
            +
                  [:macro, {name: name},'', *triggers, *actions]
         | 
| 444 | 
            +
             | 
| 445 | 
            +
                end
         | 
| 446 | 
            +
             | 
| 447 | 
            +
                doc = Rexle.new([:macros, {}, '', *macros])
         | 
| 448 | 
            +
                doc.root.xml pretty: true    
         | 
| 449 | 
            +
                
         | 
| 450 | 
            +
              end
         | 
| 388 451 |  | 
| 389 452 | 
             
              def to_h()
         | 
| 390 453 |  | 
| @@ -397,12 +460,22 @@ class MacroDroid | |
| 397 460 | 
             
            end
         | 
| 398 461 |  | 
| 399 462 | 
             
            class MacroObject
         | 
| 463 | 
            +
              using ColouredText
         | 
| 464 | 
            +
              
         | 
| 465 | 
            +
              attr_reader :type
         | 
| 466 | 
            +
              attr_accessor :options
         | 
| 400 467 |  | 
| 401 468 | 
             
              def initialize(h={})
         | 
| 402 469 |  | 
| 403 470 | 
             
                @h = {constraint_list: [], is_or_condition: false, 
         | 
| 404 471 | 
             
                      is_disabled: false}.merge(h)
         | 
| 405 472 | 
             
                @list = []
         | 
| 473 | 
            +
                
         | 
| 474 | 
            +
                # fetch the class name and convert from camelCase to snake_eyes
         | 
| 475 | 
            +
                @type = self.class.to_s.sub(/Trigger|Action$/,'')\
         | 
| 476 | 
            +
                    .gsub(/\B[A-Z][a-z]/){|x| '_' + x.downcase}\
         | 
| 477 | 
            +
                    .gsub(/[a-z][A-Z]/){|x| x[0] + '_' + x[1].downcase}\
         | 
| 478 | 
            +
                    .downcase.to_sym
         | 
| 406 479 | 
             
              end
         | 
| 407 480 |  | 
| 408 481 | 
             
              def to_h()
         | 
| @@ -425,6 +498,13 @@ class MacroObject | |
| 425 498 |  | 
| 426 499 | 
             
              protected
         | 
| 427 500 |  | 
| 501 | 
            +
              def filter(options, h)
         | 
| 502 | 
            +
                
         | 
| 503 | 
            +
                (h.keys - options.keys).each {|key| h.delete key }    
         | 
| 504 | 
            +
                return h
         | 
| 505 | 
            +
                
         | 
| 506 | 
            +
              end
         | 
| 507 | 
            +
              
         | 
| 428 508 | 
             
              def uuid()
         | 
| 429 509 | 
             
                UUID.new.generate
         | 
| 430 510 | 
             
              end
         | 
| @@ -437,11 +517,18 @@ class Trigger < MacroObject | |
| 437 517 | 
             
                super({fakeIcon: 0}.merge(h))
         | 
| 438 518 | 
             
                @list << 'fakeIcon'
         | 
| 439 519 | 
             
              end
         | 
| 520 | 
            +
              
         | 
| 521 | 
            +
              def match?(detail={})    
         | 
| 440 522 |  | 
| 441 | 
            -
             | 
| 523 | 
            +
                detail.all? {|key,value| @h[key] == value}
         | 
| 524 | 
            +
                
         | 
| 525 | 
            +
              end
         | 
| 442 526 |  | 
| 527 | 
            +
            end
         | 
| 443 528 |  | 
| 444 529 |  | 
| 530 | 
            +
            # Category: Applications
         | 
| 531 | 
            +
            #
         | 
| 445 532 | 
             
            class WebHookTrigger < Trigger
         | 
| 446 533 |  | 
| 447 534 | 
             
              def initialize(h={})
         | 
| @@ -456,6 +543,22 @@ class WebHookTrigger < Trigger | |
| 456 543 |  | 
| 457 544 | 
             
            end
         | 
| 458 545 |  | 
| 546 | 
            +
            # Category: Applications
         | 
| 547 | 
            +
            #
         | 
| 548 | 
            +
            # Also known as Wifi State Change
         | 
| 549 | 
            +
            #
         | 
| 550 | 
            +
            # wifi_state options:
         | 
| 551 | 
            +
            #   0 - Wifi Enabled
         | 
| 552 | 
            +
            #   1 - Wifi Disabled
         | 
| 553 | 
            +
            #   2 - Connected to network
         | 
| 554 | 
            +
            #     ssid_list options:
         | 
| 555 | 
            +
            #       ["Any Network"] 
         | 
| 556 | 
            +
            #       ["some Wifi SSID"] - 1 or more SSID can be supplied
         | 
| 557 | 
            +
            #   3 - Disconnected from network
         | 
| 558 | 
            +
            #     ssid_list options:
         | 
| 559 | 
            +
            #       ["Any Network"] 
         | 
| 560 | 
            +
            #       ["some Wifi SSID"] - 1 or more SSID can be supplied
         | 
| 561 | 
            +
             | 
| 459 562 | 
             
            class WifiConnectionTrigger < Trigger
         | 
| 460 563 |  | 
| 461 564 | 
             
              def initialize(h={})
         | 
| @@ -471,6 +574,8 @@ class WifiConnectionTrigger < Trigger | |
| 471 574 |  | 
| 472 575 | 
             
            end
         | 
| 473 576 |  | 
| 577 | 
            +
            # Category: Applications
         | 
| 578 | 
            +
            #
         | 
| 474 579 | 
             
            class ApplicationInstalledRemovedTrigger < Trigger
         | 
| 475 580 |  | 
| 476 581 | 
             
              def initialize(h={})
         | 
| @@ -489,6 +594,8 @@ class ApplicationInstalledRemovedTrigger < Trigger | |
| 489 594 |  | 
| 490 595 | 
             
            end
         | 
| 491 596 |  | 
| 597 | 
            +
            # Category: Applications
         | 
| 598 | 
            +
            #
         | 
| 492 599 | 
             
            class ApplicationLaunchedTrigger < Trigger
         | 
| 493 600 |  | 
| 494 601 | 
             
              def initialize(h={})
         | 
| @@ -505,6 +612,8 @@ class ApplicationLaunchedTrigger < Trigger | |
| 505 612 |  | 
| 506 613 | 
             
            end
         | 
| 507 614 |  | 
| 615 | 
            +
            # Category: Battery/Power
         | 
| 616 | 
            +
            #
         | 
| 508 617 | 
             
            class BatteryLevelTrigger < Trigger
         | 
| 509 618 |  | 
| 510 619 | 
             
              def initialize(h={})
         | 
| @@ -521,6 +630,8 @@ class BatteryLevelTrigger < Trigger | |
| 521 630 |  | 
| 522 631 | 
             
            end
         | 
| 523 632 |  | 
| 633 | 
            +
            # Category: Battery/Power
         | 
| 634 | 
            +
            #
         | 
| 524 635 | 
             
            class BatteryTemperatureTrigger < Trigger
         | 
| 525 636 |  | 
| 526 637 | 
             
              def initialize(h={})
         | 
| @@ -537,6 +648,8 @@ class BatteryTemperatureTrigger < Trigger | |
| 537 648 |  | 
| 538 649 | 
             
            end
         | 
| 539 650 |  | 
| 651 | 
            +
            # Category: Battery/Power
         | 
| 652 | 
            +
            #
         | 
| 540 653 | 
             
            class PowerButtonToggleTrigger < Trigger
         | 
| 541 654 |  | 
| 542 655 | 
             
              def initialize(h={})
         | 
| @@ -551,6 +664,9 @@ class PowerButtonToggleTrigger < Trigger | |
| 551 664 |  | 
| 552 665 | 
             
            end
         | 
| 553 666 |  | 
| 667 | 
            +
             | 
| 668 | 
            +
            # Category: Battery/Power
         | 
| 669 | 
            +
            #
         | 
| 554 670 | 
             
            class ExternalPowerTrigger < Trigger
         | 
| 555 671 |  | 
| 556 672 | 
             
              def initialize(h={})
         | 
| @@ -568,6 +684,8 @@ class ExternalPowerTrigger < Trigger | |
| 568 684 |  | 
| 569 685 | 
             
            end
         | 
| 570 686 |  | 
| 687 | 
            +
            # Category: Call/SMS
         | 
| 688 | 
            +
            #
         | 
| 571 689 | 
             
            class CallActiveTrigger < Trigger
         | 
| 572 690 |  | 
| 573 691 | 
             
              def initialize(h={})
         | 
| @@ -584,6 +702,8 @@ class CallActiveTrigger < Trigger | |
| 584 702 |  | 
| 585 703 | 
             
            end
         | 
| 586 704 |  | 
| 705 | 
            +
            # Category: Call/SMS
         | 
| 706 | 
            +
            #
         | 
| 587 707 | 
             
            class IncomingCallTrigger < Trigger
         | 
| 588 708 |  | 
| 589 709 | 
             
              def initialize(h={})
         | 
| @@ -602,6 +722,8 @@ class IncomingCallTrigger < Trigger | |
| 602 722 |  | 
| 603 723 | 
             
            end
         | 
| 604 724 |  | 
| 725 | 
            +
            # Category: Call/SMS
         | 
| 726 | 
            +
            #
         | 
| 605 727 | 
             
            class OutgoingCallTrigger < Trigger
         | 
| 606 728 |  | 
| 607 729 | 
             
              def initialize(h={})
         | 
| @@ -620,6 +742,8 @@ class OutgoingCallTrigger < Trigger | |
| 620 742 |  | 
| 621 743 | 
             
            end
         | 
| 622 744 |  | 
| 745 | 
            +
            # Category: Call/SMS
         | 
| 746 | 
            +
            #
         | 
| 623 747 | 
             
            class CallEndedTrigger < Trigger
         | 
| 624 748 |  | 
| 625 749 | 
             
              def initialize(h={})
         | 
| @@ -638,6 +762,8 @@ class CallEndedTrigger < Trigger | |
| 638 762 |  | 
| 639 763 | 
             
            end
         | 
| 640 764 |  | 
| 765 | 
            +
            # Category: Call/SMS
         | 
| 766 | 
            +
            #
         | 
| 641 767 | 
             
            class CallMissedTrigger < Trigger
         | 
| 642 768 |  | 
| 643 769 | 
             
              def initialize(h={})
         | 
| @@ -652,6 +778,8 @@ class CallMissedTrigger < Trigger | |
| 652 778 |  | 
| 653 779 | 
             
            end
         | 
| 654 780 |  | 
| 781 | 
            +
            # Category: Call/SMS
         | 
| 782 | 
            +
            #
         | 
| 655 783 | 
             
            class IncomingSMSTrigger < Trigger
         | 
| 656 784 |  | 
| 657 785 | 
             
              def initialize(h={})
         | 
| @@ -674,6 +802,8 @@ class IncomingSMSTrigger < Trigger | |
| 674 802 |  | 
| 675 803 | 
             
            end
         | 
| 676 804 |  | 
| 805 | 
            +
            # Category: Connectivity
         | 
| 806 | 
            +
            #
         | 
| 677 807 | 
             
            class WebHookTrigger < Trigger
         | 
| 678 808 |  | 
| 679 809 | 
             
              def initialize(h={})
         | 
| @@ -688,6 +818,8 @@ class WebHookTrigger < Trigger | |
| 688 818 |  | 
| 689 819 | 
             
            end
         | 
| 690 820 |  | 
| 821 | 
            +
            # Category: Connectivity
         | 
| 822 | 
            +
            #
         | 
| 691 823 | 
             
            class WifiConnectionTrigger < Trigger
         | 
| 692 824 |  | 
| 693 825 | 
             
              def initialize(h={})
         | 
| @@ -703,6 +835,8 @@ class WifiConnectionTrigger < Trigger | |
| 703 835 |  | 
| 704 836 | 
             
            end
         | 
| 705 837 |  | 
| 838 | 
            +
            # Category: Connectivity
         | 
| 839 | 
            +
            #
         | 
| 706 840 | 
             
            class BluetoothTrigger < Trigger
         | 
| 707 841 |  | 
| 708 842 | 
             
              def initialize(h={})
         | 
| @@ -719,6 +853,8 @@ class BluetoothTrigger < Trigger | |
| 719 853 |  | 
| 720 854 | 
             
            end
         | 
| 721 855 |  | 
| 856 | 
            +
            # Category: Connectivity
         | 
| 857 | 
            +
            #
         | 
| 722 858 | 
             
            class HeadphonesTrigger < Trigger
         | 
| 723 859 |  | 
| 724 860 | 
             
              def initialize(h={})
         | 
| @@ -734,6 +870,8 @@ class HeadphonesTrigger < Trigger | |
| 734 870 |  | 
| 735 871 | 
             
            end
         | 
| 736 872 |  | 
| 873 | 
            +
            # Category: Connectivity
         | 
| 874 | 
            +
            #
         | 
| 737 875 | 
             
            class SignalOnOffTrigger < Trigger
         | 
| 738 876 |  | 
| 739 877 | 
             
              def initialize(h={})
         | 
| @@ -748,6 +886,8 @@ class SignalOnOffTrigger < Trigger | |
| 748 886 |  | 
| 749 887 | 
             
            end
         | 
| 750 888 |  | 
| 889 | 
            +
            # Category: Connectivity
         | 
| 890 | 
            +
            #
         | 
| 751 891 | 
             
            class UsbDeviceConnectionTrigger < Trigger
         | 
| 752 892 |  | 
| 753 893 | 
             
              def initialize(h={})
         | 
| @@ -762,22 +902,45 @@ class UsbDeviceConnectionTrigger < Trigger | |
| 762 902 |  | 
| 763 903 | 
             
            end
         | 
| 764 904 |  | 
| 905 | 
            +
            # Category: Connectivity
         | 
| 906 | 
            +
            #
         | 
| 907 | 
            +
            # Also known as Wifi SSID Transition
         | 
| 908 | 
            +
            #
         | 
| 909 | 
            +
            # options:
         | 
| 910 | 
            +
            #   in_range: true | false
         | 
| 911 | 
            +
            #   wifi_cell_info: {display_name: "some Wifi SSID", 
         | 
| 912 | 
            +
            #                    ssid: "some Wifi SSID"} - 1 or more allowed
         | 
| 913 | 
            +
            #
         | 
| 765 914 | 
             
            class WifiSSIDTrigger < Trigger
         | 
| 766 915 |  | 
| 767 916 | 
             
              def initialize(h={})
         | 
| 768 917 |  | 
| 769 918 | 
             
                options = {
         | 
| 770 | 
            -
                  wifi_cell_info_list: [{: | 
| 919 | 
            +
                  wifi_cell_info_list: [{:display_name=>"", :ssid=>""}],
         | 
| 771 920 | 
             
                  ssid_list: [],
         | 
| 772 | 
            -
                   | 
| 921 | 
            +
                  in_range: true
         | 
| 773 922 | 
             
                }
         | 
| 774 923 |  | 
| 775 924 | 
             
                super(options.merge h)
         | 
| 776 925 |  | 
| 777 926 | 
             
              end
         | 
| 927 | 
            +
              
         | 
| 928 | 
            +
              def to_h()
         | 
| 929 | 
            +
                
         | 
| 930 | 
            +
                h = super()
         | 
| 931 | 
            +
                val = h[:m_inRange]
         | 
| 932 | 
            +
                
         | 
| 933 | 
            +
                h[:m_InRange] = val
         | 
| 934 | 
            +
                h.delete :m_inRange
         | 
| 935 | 
            +
                
         | 
| 936 | 
            +
                return h
         | 
| 937 | 
            +
                
         | 
| 938 | 
            +
              end
         | 
| 778 939 |  | 
| 779 940 | 
             
            end
         | 
| 780 941 |  | 
| 942 | 
            +
            # Category: Date/Time
         | 
| 943 | 
            +
            #
         | 
| 781 944 | 
             
            class CalendarTrigger < Trigger
         | 
| 782 945 |  | 
| 783 946 | 
             
              def initialize(h={})
         | 
| @@ -802,15 +965,21 @@ class CalendarTrigger < Trigger | |
| 802 965 |  | 
| 803 966 | 
             
            end
         | 
| 804 967 |  | 
| 968 | 
            +
            # Category: Date/Time
         | 
| 969 | 
            +
            #
         | 
| 805 970 | 
             
            class TimerTrigger < Trigger
         | 
| 971 | 
            +
              using ColouredText
         | 
| 972 | 
            +
              
         | 
| 806 973 |  | 
| 807 974 | 
             
              def initialize(h={})
         | 
| 975 | 
            +
             | 
| 976 | 
            +
                puts 'TimerTrigger h: ' + h.inspect if $debug
         | 
| 808 977 |  | 
| 809 978 | 
             
                if h[:days] then
         | 
| 810 979 |  | 
| 811 980 | 
             
                  days = [false] * 7
         | 
| 812 | 
            -
             | 
| 813 | 
            -
                  h[:days].split(/,  | 
| 981 | 
            +
                  
         | 
| 982 | 
            +
                  h[:days].split(/, */).each do |x|
         | 
| 814 983 |  | 
| 815 984 | 
             
                    r = Date::DAYNAMES.grep /#{x}/i
         | 
| 816 985 | 
             
                    i = Date::DAYNAMES.index(r.first)
         | 
| @@ -819,7 +988,6 @@ class TimerTrigger < Trigger | |
| 819 988 | 
             
                  end      
         | 
| 820 989 |  | 
| 821 990 | 
             
                  h[:days_of_week] = days
         | 
| 822 | 
            -
                  h.delete :days
         | 
| 823 991 |  | 
| 824 992 | 
             
                end
         | 
| 825 993 |  | 
| @@ -827,24 +995,46 @@ class TimerTrigger < Trigger | |
| 827 995 |  | 
| 828 996 | 
             
                  t = Time.parse(h[:time])
         | 
| 829 997 | 
             
                  h[:hour], h[:minute] = t.hour, t.min
         | 
| 830 | 
            -
                  h.delete :time
         | 
| 831 998 |  | 
| 832 999 | 
             
                end
         | 
| 1000 | 
            +
                
         | 
| 1001 | 
            +
                #puts ('h: ' + h.inspect).debug
         | 
| 833 1002 |  | 
| 834 1003 | 
             
                options = {
         | 
| 835 1004 | 
             
                  alarm_id: uuid(),
         | 
| 836 | 
            -
                  days_of_week: [false,  | 
| 1005 | 
            +
                  days_of_week: [false, false, false, false, false, false, false],
         | 
| 837 1006 | 
             
                  minute: 10,
         | 
| 838 1007 | 
             
                  hour: 7,
         | 
| 839 1008 | 
             
                  use_alarm: false
         | 
| 840 1009 | 
             
                }
         | 
| 1010 | 
            +
                        
         | 
| 1011 | 
            +
                super(options.merge filter(options,h))
         | 
| 841 1012 |  | 
| 842 | 
            -
             | 
| 1013 | 
            +
              end
         | 
| 1014 | 
            +
              
         | 
| 1015 | 
            +
              def match?(detail={time: $env[:time]})
         | 
| 1016 | 
            +
             | 
| 1017 | 
            +
                a = @h[:days_of_week]
         | 
| 1018 | 
            +
                a.unshift a.pop
         | 
| 1019 | 
            +
             | 
| 1020 | 
            +
                dow = a.map.with_index {|x, i| x ? i : nil }.compact.join(',')
         | 
| 1021 | 
            +
             | 
| 1022 | 
            +
                s = "%s %s * * %s" % [@h[:minute], @h[:hour], dow]
         | 
| 1023 | 
            +
                
         | 
| 1024 | 
            +
                if $debug then
         | 
| 1025 | 
            +
                  puts 's: ' + s.inspect 
         | 
| 1026 | 
            +
                  puts 'detail: ' + detail.inspect
         | 
| 1027 | 
            +
                  puts '@h: ' + @h.inspect
         | 
| 1028 | 
            +
                end
         | 
| 1029 | 
            +
                
         | 
| 1030 | 
            +
                ChronicCron.new(s, detail[:time]).to_time == detail[:time]
         | 
| 843 1031 |  | 
| 844 1032 | 
             
              end
         | 
| 845 1033 |  | 
| 846 1034 | 
             
            end
         | 
| 847 1035 |  | 
| 1036 | 
            +
            # Category: Date/Time
         | 
| 1037 | 
            +
            #
         | 
| 848 1038 | 
             
            class StopwatchTrigger < Trigger
         | 
| 849 1039 |  | 
| 850 1040 | 
             
              def initialize(h={})
         | 
| @@ -860,6 +1050,13 @@ class StopwatchTrigger < Trigger | |
| 860 1050 |  | 
| 861 1051 | 
             
            end
         | 
| 862 1052 |  | 
| 1053 | 
            +
            # Category: Date/Time
         | 
| 1054 | 
            +
            #
         | 
| 1055 | 
            +
            # Also known as Day of Week/Month
         | 
| 1056 | 
            +
            #
         | 
| 1057 | 
            +
            # month_of_year equal to 0 means it occurs every month
         | 
| 1058 | 
            +
            # day_of_week starts with a Monday (value is 0)
         | 
| 1059 | 
            +
            # 
         | 
| 863 1060 | 
             
            class DayTrigger < Trigger
         | 
| 864 1061 |  | 
| 865 1062 | 
             
              def initialize(h={})
         | 
| @@ -881,6 +1078,10 @@ class DayTrigger < Trigger | |
| 881 1078 |  | 
| 882 1079 | 
             
            end
         | 
| 883 1080 |  | 
| 1081 | 
            +
            # Category: Date/Time
         | 
| 1082 | 
            +
            #
         | 
| 1083 | 
            +
            # Regular Interval
         | 
| 1084 | 
            +
            #
         | 
| 884 1085 | 
             
            class RegularIntervalTrigger < Trigger
         | 
| 885 1086 |  | 
| 886 1087 | 
             
              def initialize(h={})
         | 
| @@ -900,6 +1101,17 @@ class RegularIntervalTrigger < Trigger | |
| 900 1101 |  | 
| 901 1102 | 
             
            end
         | 
| 902 1103 |  | 
| 1104 | 
            +
            # Category: Device Events
         | 
| 1105 | 
            +
            #
         | 
| 1106 | 
            +
            # Airplane Mode Changed
         | 
| 1107 | 
            +
            #
         | 
| 1108 | 
            +
            # options: 
         | 
| 1109 | 
            +
            #   Airplane Mode Enabled
         | 
| 1110 | 
            +
            #   Airplane Mode Disabled
         | 
| 1111 | 
            +
            #
         | 
| 1112 | 
            +
            # shorthand example:
         | 
| 1113 | 
            +
            #   airplanemode: enabled
         | 
| 1114 | 
            +
            #
         | 
| 903 1115 | 
             
            class AirplaneModeTrigger < Trigger
         | 
| 904 1116 |  | 
| 905 1117 | 
             
              def initialize(h={})
         | 
| @@ -914,6 +1126,8 @@ class AirplaneModeTrigger < Trigger | |
| 914 1126 |  | 
| 915 1127 | 
             
            end
         | 
| 916 1128 |  | 
| 1129 | 
            +
            # Category: Device Events
         | 
| 1130 | 
            +
            #
         | 
| 917 1131 | 
             
            class AutoSyncChangeTrigger < Trigger
         | 
| 918 1132 |  | 
| 919 1133 | 
             
              def initialize(h={})
         | 
| @@ -928,6 +1142,8 @@ class AutoSyncChangeTrigger < Trigger | |
| 928 1142 |  | 
| 929 1143 | 
             
            end
         | 
| 930 1144 |  | 
| 1145 | 
            +
            # Category: Device Events
         | 
| 1146 | 
            +
            #
         | 
| 931 1147 | 
             
            class DayDreamTrigger < Trigger
         | 
| 932 1148 |  | 
| 933 1149 | 
             
              def initialize(h={})
         | 
| @@ -942,6 +1158,8 @@ class DayDreamTrigger < Trigger | |
| 942 1158 |  | 
| 943 1159 | 
             
            end
         | 
| 944 1160 |  | 
| 1161 | 
            +
            # Category: Device Events
         | 
| 1162 | 
            +
            #
         | 
| 945 1163 | 
             
            class DockTrigger < Trigger
         | 
| 946 1164 |  | 
| 947 1165 | 
             
              def initialize(h={})
         | 
| @@ -956,6 +1174,8 @@ class DockTrigger < Trigger | |
| 956 1174 |  | 
| 957 1175 | 
             
            end
         | 
| 958 1176 |  | 
| 1177 | 
            +
            # Category: Device Events
         | 
| 1178 | 
            +
            #
         | 
| 959 1179 | 
             
            class GPSEnabledTrigger < Trigger
         | 
| 960 1180 |  | 
| 961 1181 | 
             
              def initialize(h={})
         | 
| @@ -970,6 +1190,8 @@ class GPSEnabledTrigger < Trigger | |
| 970 1190 |  | 
| 971 1191 | 
             
            end
         | 
| 972 1192 |  | 
| 1193 | 
            +
            # Category: Device Events
         | 
| 1194 | 
            +
            #
         | 
| 973 1195 | 
             
            class MusicPlayingTrigger < Trigger
         | 
| 974 1196 |  | 
| 975 1197 | 
             
              def initialize(h={})
         | 
| @@ -984,19 +1206,9 @@ class MusicPlayingTrigger < Trigger | |
| 984 1206 |  | 
| 985 1207 | 
             
            end
         | 
| 986 1208 |  | 
| 987 | 
            -
            class DeviceUnlockedTrigger < Trigger
         | 
| 988 | 
            -
             | 
| 989 | 
            -
              def initialize(h={})
         | 
| 990 | 
            -
             | 
| 991 | 
            -
                options = {
         | 
| 992 | 
            -
                }
         | 
| 993 | 
            -
             | 
| 994 | 
            -
                super(options.merge h)
         | 
| 995 | 
            -
             | 
| 996 | 
            -
              end
         | 
| 997 | 
            -
             | 
| 998 | 
            -
            end
         | 
| 999 1209 |  | 
| 1210 | 
            +
            # Category: Device Events
         | 
| 1211 | 
            +
            #
         | 
| 1000 1212 | 
             
            class DeviceUnlockedTrigger < Trigger
         | 
| 1001 1213 |  | 
| 1002 1214 | 
             
              def initialize(h={})
         | 
| @@ -1010,6 +1222,8 @@ class DeviceUnlockedTrigger < Trigger | |
| 1010 1222 |  | 
| 1011 1223 | 
             
            end
         | 
| 1012 1224 |  | 
| 1225 | 
            +
            # Category: Device Events
         | 
| 1226 | 
            +
            #
         | 
| 1013 1227 | 
             
            class AutoRotateChangeTrigger < Trigger
         | 
| 1014 1228 |  | 
| 1015 1229 | 
             
              def initialize(h={})
         | 
| @@ -1024,6 +1238,8 @@ class AutoRotateChangeTrigger < Trigger | |
| 1024 1238 |  | 
| 1025 1239 | 
             
            end
         | 
| 1026 1240 |  | 
| 1241 | 
            +
            # Category: Device Events
         | 
| 1242 | 
            +
            #
         | 
| 1027 1243 | 
             
            class ClipboardChangeTrigger < Trigger
         | 
| 1028 1244 |  | 
| 1029 1245 | 
             
              def initialize(h={})
         | 
| @@ -1039,6 +1255,8 @@ class ClipboardChangeTrigger < Trigger | |
| 1039 1255 |  | 
| 1040 1256 | 
             
            end
         | 
| 1041 1257 |  | 
| 1258 | 
            +
            # Category: Device Events
         | 
| 1259 | 
            +
            #
         | 
| 1042 1260 | 
             
            class BootTrigger < Trigger
         | 
| 1043 1261 |  | 
| 1044 1262 | 
             
              def initialize(h={})
         | 
| @@ -1052,19 +1270,8 @@ class BootTrigger < Trigger | |
| 1052 1270 |  | 
| 1053 1271 | 
             
            end
         | 
| 1054 1272 |  | 
| 1055 | 
            -
             | 
| 1056 | 
            -
             | 
| 1057 | 
            -
              def initialize(h={})
         | 
| 1058 | 
            -
             | 
| 1059 | 
            -
                options = {
         | 
| 1060 | 
            -
                }
         | 
| 1061 | 
            -
             | 
| 1062 | 
            -
                super(options.merge h)
         | 
| 1063 | 
            -
             | 
| 1064 | 
            -
              end
         | 
| 1065 | 
            -
             | 
| 1066 | 
            -
            end
         | 
| 1067 | 
            -
             | 
| 1273 | 
            +
            # Category: Device Events
         | 
| 1274 | 
            +
            #
         | 
| 1068 1275 | 
             
            class IntentReceivedTrigger < Trigger
         | 
| 1069 1276 |  | 
| 1070 1277 | 
             
              def initialize(h={})
         | 
| @@ -1083,6 +1290,8 @@ class IntentReceivedTrigger < Trigger | |
| 1083 1290 |  | 
| 1084 1291 | 
             
            end
         | 
| 1085 1292 |  | 
| 1293 | 
            +
            # Category: Device Events
         | 
| 1294 | 
            +
            #
         | 
| 1086 1295 | 
             
            class NotificationTrigger < Trigger
         | 
| 1087 1296 |  | 
| 1088 1297 | 
             
              def initialize(h={})
         | 
| @@ -1107,6 +1316,8 @@ class NotificationTrigger < Trigger | |
| 1107 1316 |  | 
| 1108 1317 | 
             
            end
         | 
| 1109 1318 |  | 
| 1319 | 
            +
            # Category: Device Events
         | 
| 1320 | 
            +
            #
         | 
| 1110 1321 | 
             
            class ScreenOnOffTrigger < Trigger
         | 
| 1111 1322 |  | 
| 1112 1323 | 
             
              def initialize(h={})
         | 
| @@ -1121,6 +1332,8 @@ class ScreenOnOffTrigger < Trigger | |
| 1121 1332 |  | 
| 1122 1333 | 
             
            end
         | 
| 1123 1334 |  | 
| 1335 | 
            +
            # Category: Device Events
         | 
| 1336 | 
            +
            #
         | 
| 1124 1337 | 
             
            class SilentModeTrigger < Trigger
         | 
| 1125 1338 |  | 
| 1126 1339 | 
             
              def initialize(h={})
         | 
| @@ -1135,6 +1348,8 @@ class SilentModeTrigger < Trigger | |
| 1135 1348 |  | 
| 1136 1349 | 
             
            end
         | 
| 1137 1350 |  | 
| 1351 | 
            +
            # Category: Location
         | 
| 1352 | 
            +
            #
         | 
| 1138 1353 | 
             
            class WeatherTrigger < Trigger
         | 
| 1139 1354 |  | 
| 1140 1355 | 
             
              def initialize(h={})
         | 
| @@ -1158,6 +1373,8 @@ class WeatherTrigger < Trigger | |
| 1158 1373 |  | 
| 1159 1374 | 
             
            end
         | 
| 1160 1375 |  | 
| 1376 | 
            +
            # Category: Location
         | 
| 1377 | 
            +
            #
         | 
| 1161 1378 | 
             
            class GeofenceTrigger < Trigger
         | 
| 1162 1379 |  | 
| 1163 1380 | 
             
              def initialize(h={})
         | 
| @@ -1176,6 +1393,8 @@ class GeofenceTrigger < Trigger | |
| 1176 1393 |  | 
| 1177 1394 | 
             
            end
         | 
| 1178 1395 |  | 
| 1396 | 
            +
            # Category: Location
         | 
| 1397 | 
            +
            #
         | 
| 1179 1398 | 
             
            class SunriseSunsetTrigger < Trigger
         | 
| 1180 1399 |  | 
| 1181 1400 | 
             
              def initialize(h={})
         | 
| @@ -1191,7 +1410,8 @@ class SunriseSunsetTrigger < Trigger | |
| 1191 1410 |  | 
| 1192 1411 | 
             
            end
         | 
| 1193 1412 |  | 
| 1194 | 
            -
             | 
| 1413 | 
            +
            # Category: Sensors
         | 
| 1414 | 
            +
            #
         | 
| 1195 1415 | 
             
            class ActivityRecognitionTrigger < Trigger
         | 
| 1196 1416 |  | 
| 1197 1417 | 
             
              def initialize(h={})
         | 
| @@ -1207,7 +1427,8 @@ class ActivityRecognitionTrigger < Trigger | |
| 1207 1427 |  | 
| 1208 1428 | 
             
            end
         | 
| 1209 1429 |  | 
| 1210 | 
            -
             | 
| 1430 | 
            +
            # Category: Sensors
         | 
| 1431 | 
            +
            #
         | 
| 1211 1432 | 
             
            class ProximityTrigger < Trigger
         | 
| 1212 1433 |  | 
| 1213 1434 | 
             
              def initialize(h={})
         | 
| @@ -1223,6 +1444,8 @@ class ProximityTrigger < Trigger | |
| 1223 1444 |  | 
| 1224 1445 | 
             
            end
         | 
| 1225 1446 |  | 
| 1447 | 
            +
            # Category: Sensors
         | 
| 1448 | 
            +
            #
         | 
| 1226 1449 | 
             
            class ShakeDeviceTrigger < Trigger
         | 
| 1227 1450 |  | 
| 1228 1451 | 
             
              def initialize(h={})
         | 
| @@ -1236,6 +1459,8 @@ class ShakeDeviceTrigger < Trigger | |
| 1236 1459 |  | 
| 1237 1460 | 
             
            end
         | 
| 1238 1461 |  | 
| 1462 | 
            +
            # Category: Sensors
         | 
| 1463 | 
            +
            #
         | 
| 1239 1464 | 
             
            class FlipDeviceTrigger < Trigger
         | 
| 1240 1465 |  | 
| 1241 1466 | 
             
              def initialize(h={})
         | 
| @@ -1252,6 +1477,8 @@ class FlipDeviceTrigger < Trigger | |
| 1252 1477 |  | 
| 1253 1478 | 
             
            end
         | 
| 1254 1479 |  | 
| 1480 | 
            +
            # Category: Sensors
         | 
| 1481 | 
            +
            #
         | 
| 1255 1482 | 
             
            class OrientationTrigger < Trigger
         | 
| 1256 1483 |  | 
| 1257 1484 | 
             
              def initialize(h={})
         | 
| @@ -1267,6 +1494,8 @@ class OrientationTrigger < Trigger | |
| 1267 1494 |  | 
| 1268 1495 | 
             
            end
         | 
| 1269 1496 |  | 
| 1497 | 
            +
            # Category: User Input
         | 
| 1498 | 
            +
            #
         | 
| 1270 1499 | 
             
            class FloatingButtonTrigger < Trigger
         | 
| 1271 1500 |  | 
| 1272 1501 | 
             
              def initialize(h={})
         | 
| @@ -1290,6 +1519,8 @@ class FloatingButtonTrigger < Trigger | |
| 1290 1519 |  | 
| 1291 1520 | 
             
            end
         | 
| 1292 1521 |  | 
| 1522 | 
            +
            # Category: User Input
         | 
| 1523 | 
            +
            #
         | 
| 1293 1524 | 
             
            class ShortcutTrigger < Trigger
         | 
| 1294 1525 |  | 
| 1295 1526 | 
             
              def initialize(h={})
         | 
| @@ -1303,6 +1534,8 @@ class ShortcutTrigger < Trigger | |
| 1303 1534 |  | 
| 1304 1535 | 
             
            end
         | 
| 1305 1536 |  | 
| 1537 | 
            +
            # Category: User Input
         | 
| 1538 | 
            +
            #
         | 
| 1306 1539 | 
             
            class VolumeButtonTrigger < Trigger
         | 
| 1307 1540 |  | 
| 1308 1541 | 
             
              def initialize(h={})
         | 
| @@ -1320,6 +1553,8 @@ class VolumeButtonTrigger < Trigger | |
| 1320 1553 |  | 
| 1321 1554 | 
             
            end
         | 
| 1322 1555 |  | 
| 1556 | 
            +
            # Category: User Input
         | 
| 1557 | 
            +
            #
         | 
| 1323 1558 | 
             
            class MediaButtonPressedTrigger < Trigger
         | 
| 1324 1559 |  | 
| 1325 1560 | 
             
              def initialize(h={})
         | 
| @@ -1335,6 +1570,8 @@ class MediaButtonPressedTrigger < Trigger | |
| 1335 1570 |  | 
| 1336 1571 | 
             
            end
         | 
| 1337 1572 |  | 
| 1573 | 
            +
            # Category: User Input
         | 
| 1574 | 
            +
            #
         | 
| 1338 1575 | 
             
            class SwipeTrigger < Trigger
         | 
| 1339 1576 |  | 
| 1340 1577 | 
             
              def initialize(h={})
         | 
| @@ -1357,14 +1594,30 @@ class Action < MacroObject | |
| 1357 1594 | 
             
              def initialize(h={})    
         | 
| 1358 1595 | 
             
                super(h)
         | 
| 1359 1596 | 
             
              end
         | 
| 1597 | 
            +
              
         | 
| 1598 | 
            +
              def invoke(s='')    
         | 
| 1599 | 
            +
                "%s/%s: %s" % [@group, @type, s]
         | 
| 1600 | 
            +
              end  
         | 
| 1360 1601 |  | 
| 1361 1602 | 
             
            end
         | 
| 1362 1603 |  | 
| 1363 1604 |  | 
| 1605 | 
            +
            class LocationAction < Action
         | 
| 1606 | 
            +
              
         | 
| 1607 | 
            +
              def initialize(h={})
         | 
| 1608 | 
            +
                super(h)
         | 
| 1609 | 
            +
                @group = 'location'
         | 
| 1610 | 
            +
              end
         | 
| 1611 | 
            +
              
         | 
| 1612 | 
            +
            end
         | 
| 1364 1613 |  | 
| 1365 | 
            -
             | 
| 1614 | 
            +
            # Category: Location
         | 
| 1615 | 
            +
            #
         | 
| 1616 | 
            +
            class ShareLocationAction < LocationAction
         | 
| 1366 1617 |  | 
| 1367 1618 | 
             
              def initialize(h={})
         | 
| 1619 | 
            +
                
         | 
| 1620 | 
            +
                super()
         | 
| 1368 1621 |  | 
| 1369 1622 | 
             
                options = {
         | 
| 1370 1623 | 
             
                  email: '',
         | 
| @@ -1382,39 +1635,19 @@ class ShareLocationAction < Action | |
| 1382 1635 |  | 
| 1383 1636 | 
             
            end
         | 
| 1384 1637 |  | 
| 1385 | 
            -
            class UDPCommandAction < Action
         | 
| 1386 | 
            -
             | 
| 1387 | 
            -
              def initialize(h={})
         | 
| 1388 | 
            -
             | 
| 1389 | 
            -
                options = {
         | 
| 1390 | 
            -
                  destination: '',
         | 
| 1391 | 
            -
                  message: '',
         | 
| 1392 | 
            -
                  port: 1024
         | 
| 1393 | 
            -
                }
         | 
| 1394 | 
            -
             | 
| 1395 | 
            -
                super(options.merge h)
         | 
| 1396 | 
            -
             | 
| 1397 | 
            -
              end
         | 
| 1398 | 
            -
             | 
| 1399 | 
            -
            end
         | 
| 1400 | 
            -
             | 
| 1401 | 
            -
            class UDPCommandAction < Action
         | 
| 1402 1638 |  | 
| 1639 | 
            +
            class ApplicationAction < Action
         | 
| 1640 | 
            +
              
         | 
| 1403 1641 | 
             
              def initialize(h={})
         | 
| 1404 | 
            -
             | 
| 1405 | 
            -
                 | 
| 1406 | 
            -
                  destination: '',
         | 
| 1407 | 
            -
                  message: '',
         | 
| 1408 | 
            -
                  port: 1024
         | 
| 1409 | 
            -
                }
         | 
| 1410 | 
            -
             | 
| 1411 | 
            -
                super(options.merge h)
         | 
| 1412 | 
            -
             | 
| 1642 | 
            +
                super(h)
         | 
| 1643 | 
            +
                @group = 'application'
         | 
| 1413 1644 | 
             
              end
         | 
| 1414 | 
            -
             | 
| 1645 | 
            +
              
         | 
| 1415 1646 | 
             
            end
         | 
| 1416 1647 |  | 
| 1417 | 
            -
             | 
| 1648 | 
            +
            # Category: Applications
         | 
| 1649 | 
            +
            #
         | 
| 1650 | 
            +
            class LaunchActivityAction < ApplicationAction
         | 
| 1418 1651 |  | 
| 1419 1652 | 
             
              def initialize(h={})
         | 
| 1420 1653 |  | 
| @@ -1431,7 +1664,9 @@ class LaunchActivityAction < Action | |
| 1431 1664 |  | 
| 1432 1665 | 
             
            end
         | 
| 1433 1666 |  | 
| 1434 | 
            -
             | 
| 1667 | 
            +
            # Category: Applications
         | 
| 1668 | 
            +
            #
         | 
| 1669 | 
            +
            class KillBackgroundAppAction < ApplicationAction
         | 
| 1435 1670 |  | 
| 1436 1671 | 
             
              def initialize(h={})
         | 
| 1437 1672 |  | 
| @@ -1446,7 +1681,9 @@ class KillBackgroundAppAction < Action | |
| 1446 1681 |  | 
| 1447 1682 | 
             
            end
         | 
| 1448 1683 |  | 
| 1449 | 
            -
             | 
| 1684 | 
            +
            # Category: Applications
         | 
| 1685 | 
            +
            #
         | 
| 1686 | 
            +
            class OpenWebPageAction < ApplicationAction
         | 
| 1450 1687 |  | 
| 1451 1688 | 
             
              def initialize(h={})
         | 
| 1452 1689 |  | 
| @@ -1464,7 +1701,19 @@ class OpenWebPageAction < Action | |
| 1464 1701 |  | 
| 1465 1702 | 
             
            end
         | 
| 1466 1703 |  | 
| 1467 | 
            -
             | 
| 1704 | 
            +
             | 
| 1705 | 
            +
            class CameraAction < Action
         | 
| 1706 | 
            +
              
         | 
| 1707 | 
            +
              def initialize(h={})
         | 
| 1708 | 
            +
                super(h)
         | 
| 1709 | 
            +
                @group = 'camera'
         | 
| 1710 | 
            +
              end
         | 
| 1711 | 
            +
              
         | 
| 1712 | 
            +
            end
         | 
| 1713 | 
            +
             | 
| 1714 | 
            +
            # Category: Camera/Photo
         | 
| 1715 | 
            +
            #
         | 
| 1716 | 
            +
            class UploadPhotoAction < CameraAction
         | 
| 1468 1717 |  | 
| 1469 1718 | 
             
              def initialize(h={})
         | 
| 1470 1719 |  | 
| @@ -1479,7 +1728,9 @@ class UploadPhotoAction < Action | |
| 1479 1728 |  | 
| 1480 1729 | 
             
            end
         | 
| 1481 1730 |  | 
| 1482 | 
            -
             | 
| 1731 | 
            +
            # Category: Camera/Photo
         | 
| 1732 | 
            +
            #
         | 
| 1733 | 
            +
            class TakePictureAction < CameraAction
         | 
| 1483 1734 |  | 
| 1484 1735 | 
             
              def initialize(h={})
         | 
| 1485 1736 |  | 
| @@ -1497,7 +1748,19 @@ class TakePictureAction < Action | |
| 1497 1748 |  | 
| 1498 1749 | 
             
            end
         | 
| 1499 1750 |  | 
| 1500 | 
            -
             | 
| 1751 | 
            +
             | 
| 1752 | 
            +
            class ConnectivityAction < Action
         | 
| 1753 | 
            +
              
         | 
| 1754 | 
            +
              def initialize(h={})
         | 
| 1755 | 
            +
                super(h)
         | 
| 1756 | 
            +
                @group = 'connectivity'
         | 
| 1757 | 
            +
              end
         | 
| 1758 | 
            +
              
         | 
| 1759 | 
            +
            end
         | 
| 1760 | 
            +
             | 
| 1761 | 
            +
            # Category: Connectivity
         | 
| 1762 | 
            +
            #
         | 
| 1763 | 
            +
            class SetWifiAction < ConnectivityAction
         | 
| 1501 1764 |  | 
| 1502 1765 | 
             
              def initialize(h={})
         | 
| 1503 1766 |  | 
| @@ -1513,7 +1776,9 @@ class SetWifiAction < Action | |
| 1513 1776 |  | 
| 1514 1777 | 
             
            end
         | 
| 1515 1778 |  | 
| 1516 | 
            -
             | 
| 1779 | 
            +
            # Category: Connectivity
         | 
| 1780 | 
            +
            #
         | 
| 1781 | 
            +
            class SetBluetoothAction < ConnectivityAction
         | 
| 1517 1782 |  | 
| 1518 1783 | 
             
              def initialize(h={})
         | 
| 1519 1784 |  | 
| @@ -1528,7 +1793,9 @@ class SetBluetoothAction < Action | |
| 1528 1793 |  | 
| 1529 1794 | 
             
            end
         | 
| 1530 1795 |  | 
| 1531 | 
            -
             | 
| 1796 | 
            +
            # Category: Connectivity
         | 
| 1797 | 
            +
            #
         | 
| 1798 | 
            +
            class SetBluetoothAction < ConnectivityAction
         | 
| 1532 1799 |  | 
| 1533 1800 | 
             
              def initialize(h={})
         | 
| 1534 1801 |  | 
| @@ -1543,7 +1810,9 @@ class SetBluetoothAction < Action | |
| 1543 1810 |  | 
| 1544 1811 | 
             
            end
         | 
| 1545 1812 |  | 
| 1546 | 
            -
             | 
| 1813 | 
            +
            # Category: Connectivity
         | 
| 1814 | 
            +
            #
         | 
| 1815 | 
            +
            class SendIntentAction < ConnectivityAction
         | 
| 1547 1816 |  | 
| 1548 1817 | 
             
              def initialize(h={})
         | 
| 1549 1818 |  | 
| @@ -1569,7 +1838,19 @@ class SendIntentAction < Action | |
| 1569 1838 |  | 
| 1570 1839 | 
             
            end
         | 
| 1571 1840 |  | 
| 1572 | 
            -
             | 
| 1841 | 
            +
             | 
| 1842 | 
            +
            class DateTimeAction < Action
         | 
| 1843 | 
            +
              
         | 
| 1844 | 
            +
              def initialize(h={})
         | 
| 1845 | 
            +
                super(h)
         | 
| 1846 | 
            +
                @group = 'datetime'
         | 
| 1847 | 
            +
              end
         | 
| 1848 | 
            +
              
         | 
| 1849 | 
            +
            end
         | 
| 1850 | 
            +
             | 
| 1851 | 
            +
            # Category: Date/Time
         | 
| 1852 | 
            +
            #
         | 
| 1853 | 
            +
            class SetAlarmClockAction < DateTimeAction
         | 
| 1573 1854 |  | 
| 1574 1855 | 
             
              def initialize(h={})
         | 
| 1575 1856 |  | 
| @@ -1592,7 +1873,9 @@ class SetAlarmClockAction < Action | |
| 1592 1873 |  | 
| 1593 1874 | 
             
            end
         | 
| 1594 1875 |  | 
| 1595 | 
            -
             | 
| 1876 | 
            +
            # Category: Date/Time
         | 
| 1877 | 
            +
            #
         | 
| 1878 | 
            +
            class StopWatchAction < DateTimeAction
         | 
| 1596 1879 |  | 
| 1597 1880 | 
             
              def initialize(h={})
         | 
| 1598 1881 |  | 
| @@ -1607,7 +1890,9 @@ class StopWatchAction < Action | |
| 1607 1890 |  | 
| 1608 1891 | 
             
            end
         | 
| 1609 1892 |  | 
| 1610 | 
            -
             | 
| 1893 | 
            +
            # Category: Date/Time
         | 
| 1894 | 
            +
            #
         | 
| 1895 | 
            +
            class SayTimeAction < DateTimeAction
         | 
| 1611 1896 |  | 
| 1612 1897 | 
             
              def initialize(h={})
         | 
| 1613 1898 |  | 
| @@ -1621,7 +1906,19 @@ class SayTimeAction < Action | |
| 1621 1906 |  | 
| 1622 1907 | 
             
            end
         | 
| 1623 1908 |  | 
| 1624 | 
            -
             | 
| 1909 | 
            +
             | 
| 1910 | 
            +
            class DeviceAction < Action
         | 
| 1911 | 
            +
              
         | 
| 1912 | 
            +
              def initialize(h={})
         | 
| 1913 | 
            +
                super(h)
         | 
| 1914 | 
            +
                @group = 'device'
         | 
| 1915 | 
            +
              end
         | 
| 1916 | 
            +
              
         | 
| 1917 | 
            +
            end
         | 
| 1918 | 
            +
             | 
| 1919 | 
            +
            # Category: Device Actions
         | 
| 1920 | 
            +
            #
         | 
| 1921 | 
            +
            class AndroidShortcutsAction < DeviceAction
         | 
| 1625 1922 |  | 
| 1626 1923 | 
             
              def initialize(h={})
         | 
| 1627 1924 |  | 
| @@ -1635,7 +1932,9 @@ class AndroidShortcutsAction < Action | |
| 1635 1932 |  | 
| 1636 1933 | 
             
            end
         | 
| 1637 1934 |  | 
| 1638 | 
            -
             | 
| 1935 | 
            +
            # Category: Device Actions
         | 
| 1936 | 
            +
            #
         | 
| 1937 | 
            +
            class ClipboardAction < DeviceAction
         | 
| 1639 1938 |  | 
| 1640 1939 | 
             
              def initialize(h={})
         | 
| 1641 1940 |  | 
| @@ -1649,7 +1948,9 @@ class ClipboardAction < Action | |
| 1649 1948 |  | 
| 1650 1949 | 
             
            end
         | 
| 1651 1950 |  | 
| 1652 | 
            -
             | 
| 1951 | 
            +
            # Category: Device Actions
         | 
| 1952 | 
            +
            #
         | 
| 1953 | 
            +
            class PressBackAction < DeviceAction
         | 
| 1653 1954 |  | 
| 1654 1955 | 
             
              def initialize(h={})
         | 
| 1655 1956 |  | 
| @@ -1662,7 +1963,9 @@ class PressBackAction < Action | |
| 1662 1963 |  | 
| 1663 1964 | 
             
            end
         | 
| 1664 1965 |  | 
| 1665 | 
            -
             | 
| 1966 | 
            +
            # Category: Device Actions
         | 
| 1967 | 
            +
            #
         | 
| 1968 | 
            +
            class SpeakTextAction < DeviceAction
         | 
| 1666 1969 |  | 
| 1667 1970 | 
             
              def initialize(h={})
         | 
| 1668 1971 |  | 
| @@ -1683,7 +1986,9 @@ class SpeakTextAction < Action | |
| 1683 1986 |  | 
| 1684 1987 | 
             
            end
         | 
| 1685 1988 |  | 
| 1686 | 
            -
             | 
| 1989 | 
            +
            # Category: Device Actions
         | 
| 1990 | 
            +
            #
         | 
| 1991 | 
            +
            class UIInteractionAction < DeviceAction
         | 
| 1687 1992 |  | 
| 1688 1993 | 
             
              def initialize(h={})
         | 
| 1689 1994 |  | 
| @@ -1698,7 +2003,9 @@ class UIInteractionAction < Action | |
| 1698 2003 |  | 
| 1699 2004 | 
             
            end
         | 
| 1700 2005 |  | 
| 1701 | 
            -
             | 
| 2006 | 
            +
            # Category: Device Actions
         | 
| 2007 | 
            +
            #
         | 
| 2008 | 
            +
            class VoiceSearchAction < DeviceAction
         | 
| 1702 2009 |  | 
| 1703 2010 | 
             
              def initialize(h={})
         | 
| 1704 2011 |  | 
| @@ -1711,7 +2018,19 @@ class VoiceSearchAction < Action | |
| 1711 2018 |  | 
| 1712 2019 | 
             
            end
         | 
| 1713 2020 |  | 
| 1714 | 
            -
             | 
| 2021 | 
            +
             | 
| 2022 | 
            +
            class DeviceSettingsAction < Action
         | 
| 2023 | 
            +
              
         | 
| 2024 | 
            +
              def initialize(h={})
         | 
| 2025 | 
            +
                super(h)
         | 
| 2026 | 
            +
                @group = 'devicesettings'
         | 
| 2027 | 
            +
              end
         | 
| 2028 | 
            +
              
         | 
| 2029 | 
            +
            end
         | 
| 2030 | 
            +
             | 
| 2031 | 
            +
            # Category: Device Settings
         | 
| 2032 | 
            +
            #
         | 
| 2033 | 
            +
            class ExpandCollapseStatusBarAction < DeviceSettingsAction
         | 
| 1715 2034 |  | 
| 1716 2035 | 
             
              def initialize(h={})
         | 
| 1717 2036 |  | 
| @@ -1725,7 +2044,9 @@ class ExpandCollapseStatusBarAction < Action | |
| 1725 2044 |  | 
| 1726 2045 | 
             
            end
         | 
| 1727 2046 |  | 
| 1728 | 
            -
             | 
| 2047 | 
            +
            # Category: Device Settings
         | 
| 2048 | 
            +
            #
         | 
| 2049 | 
            +
            class LaunchHomeScreenAction < DeviceSettingsAction
         | 
| 1729 2050 |  | 
| 1730 2051 | 
             
              def initialize(h={})
         | 
| 1731 2052 |  | 
| @@ -1738,7 +2059,9 @@ class LaunchHomeScreenAction < Action | |
| 1738 2059 |  | 
| 1739 2060 | 
             
            end
         | 
| 1740 2061 |  | 
| 1741 | 
            -
             | 
| 2062 | 
            +
            # Category: Device Settings
         | 
| 2063 | 
            +
            #
         | 
| 2064 | 
            +
            class CameraFlashLightAction < DeviceSettingsAction
         | 
| 1742 2065 |  | 
| 1743 2066 | 
             
              def initialize(h={})
         | 
| 1744 2067 |  | 
| @@ -1753,7 +2076,9 @@ class CameraFlashLightAction < Action | |
| 1753 2076 |  | 
| 1754 2077 | 
             
            end
         | 
| 1755 2078 |  | 
| 1756 | 
            -
             | 
| 2079 | 
            +
            # Category: Device Settings
         | 
| 2080 | 
            +
            #
         | 
| 2081 | 
            +
            class VibrateAction < DeviceSettingsAction
         | 
| 1757 2082 |  | 
| 1758 2083 | 
             
              def initialize(h={})
         | 
| 1759 2084 |  | 
| @@ -1767,7 +2092,9 @@ class VibrateAction < Action | |
| 1767 2092 |  | 
| 1768 2093 | 
             
            end
         | 
| 1769 2094 |  | 
| 1770 | 
            -
             | 
| 2095 | 
            +
            # Category: Device Settings
         | 
| 2096 | 
            +
            #
         | 
| 2097 | 
            +
            class SetAutoRotateAction < DeviceSettingsAction
         | 
| 1771 2098 |  | 
| 1772 2099 | 
             
              def initialize(h={})
         | 
| 1773 2100 |  | 
| @@ -1781,7 +2108,9 @@ class SetAutoRotateAction < Action | |
| 1781 2108 |  | 
| 1782 2109 | 
             
            end
         | 
| 1783 2110 |  | 
| 1784 | 
            -
             | 
| 2111 | 
            +
            # Category: Device Settings
         | 
| 2112 | 
            +
            #
         | 
| 2113 | 
            +
            class DayDreamAction < DeviceSettingsAction
         | 
| 1785 2114 |  | 
| 1786 2115 | 
             
              def initialize(h={})
         | 
| 1787 2116 |  | 
| @@ -1794,7 +2123,9 @@ class DayDreamAction < Action | |
| 1794 2123 |  | 
| 1795 2124 | 
             
            end
         | 
| 1796 2125 |  | 
| 1797 | 
            -
             | 
| 2126 | 
            +
            # Category: Device Settings
         | 
| 2127 | 
            +
            #
         | 
| 2128 | 
            +
            class SetKeyboardAction < DeviceSettingsAction
         | 
| 1798 2129 |  | 
| 1799 2130 | 
             
              def initialize(h={})
         | 
| 1800 2131 |  | 
| @@ -1807,7 +2138,9 @@ class SetKeyboardAction < Action | |
| 1807 2138 |  | 
| 1808 2139 | 
             
            end
         | 
| 1809 2140 |  | 
| 1810 | 
            -
             | 
| 2141 | 
            +
            # Category: Device Settings
         | 
| 2142 | 
            +
            #
         | 
| 2143 | 
            +
            class SetKeyguardAction < DeviceSettingsAction
         | 
| 1811 2144 |  | 
| 1812 2145 | 
             
              def initialize(h={})
         | 
| 1813 2146 |  | 
| @@ -1821,7 +2154,9 @@ class SetKeyguardAction < Action | |
| 1821 2154 |  | 
| 1822 2155 | 
             
            end
         | 
| 1823 2156 |  | 
| 1824 | 
            -
             | 
| 2157 | 
            +
            # Category: Device Settings
         | 
| 2158 | 
            +
            #
         | 
| 2159 | 
            +
            class CarModeAction < DeviceSettingsAction
         | 
| 1825 2160 |  | 
| 1826 2161 | 
             
              def initialize(h={})
         | 
| 1827 2162 |  | 
| @@ -1835,7 +2170,9 @@ class CarModeAction < Action | |
| 1835 2170 |  | 
| 1836 2171 | 
             
            end
         | 
| 1837 2172 |  | 
| 1838 | 
            -
             | 
| 2173 | 
            +
            # Category: Device Settings
         | 
| 2174 | 
            +
            #
         | 
| 2175 | 
            +
            class ChangeKeyboardAction < DeviceSettingsAction
         | 
| 1839 2176 |  | 
| 1840 2177 | 
             
              def initialize(h={})
         | 
| 1841 2178 |  | 
| @@ -1850,7 +2187,9 @@ class ChangeKeyboardAction < Action | |
| 1850 2187 |  | 
| 1851 2188 | 
             
            end
         | 
| 1852 2189 |  | 
| 1853 | 
            -
             | 
| 2190 | 
            +
            # Category: Device Settings
         | 
| 2191 | 
            +
            #
         | 
| 2192 | 
            +
            class SetWallpaperAction < DeviceSettingsAction
         | 
| 1854 2193 |  | 
| 1855 2194 | 
             
              def initialize(h={})
         | 
| 1856 2195 |  | 
| @@ -1869,7 +2208,18 @@ class SetWallpaperAction < Action | |
| 1869 2208 |  | 
| 1870 2209 | 
             
            end
         | 
| 1871 2210 |  | 
| 1872 | 
            -
            class  | 
| 2211 | 
            +
            class FileAction < Action
         | 
| 2212 | 
            +
              
         | 
| 2213 | 
            +
              def initialize(h={})
         | 
| 2214 | 
            +
                super(h)
         | 
| 2215 | 
            +
                @group = 'file'
         | 
| 2216 | 
            +
              end
         | 
| 2217 | 
            +
              
         | 
| 2218 | 
            +
            end
         | 
| 2219 | 
            +
             | 
| 2220 | 
            +
            # Category: Files
         | 
| 2221 | 
            +
            #
         | 
| 2222 | 
            +
            class OpenFileAction < FileAction
         | 
| 1873 2223 |  | 
| 1874 2224 | 
             
              def initialize(h={})
         | 
| 1875 2225 |  | 
| @@ -1886,7 +2236,19 @@ class OpenFileAction < Action | |
| 1886 2236 |  | 
| 1887 2237 | 
             
            end
         | 
| 1888 2238 |  | 
| 1889 | 
            -
             | 
| 2239 | 
            +
             | 
| 2240 | 
            +
            class LocationAction < Action
         | 
| 2241 | 
            +
              
         | 
| 2242 | 
            +
              def initialize(h={})
         | 
| 2243 | 
            +
                super(h)
         | 
| 2244 | 
            +
                @group = 'location'
         | 
| 2245 | 
            +
              end
         | 
| 2246 | 
            +
              
         | 
| 2247 | 
            +
            end
         | 
| 2248 | 
            +
             | 
| 2249 | 
            +
            # Category: Location
         | 
| 2250 | 
            +
            #
         | 
| 2251 | 
            +
            class ForceLocationUpdateAction < LocationAction
         | 
| 1890 2252 |  | 
| 1891 2253 | 
             
              def initialize(h={})
         | 
| 1892 2254 |  | 
| @@ -1899,7 +2261,9 @@ class ForceLocationUpdateAction < Action | |
| 1899 2261 |  | 
| 1900 2262 | 
             
            end
         | 
| 1901 2263 |  | 
| 1902 | 
            -
             | 
| 2264 | 
            +
            # Category: Location
         | 
| 2265 | 
            +
            #
         | 
| 2266 | 
            +
            class ShareLocationAction < LocationAction
         | 
| 1903 2267 |  | 
| 1904 2268 | 
             
              def initialize(h={})
         | 
| 1905 2269 |  | 
| @@ -1917,7 +2281,9 @@ class ShareLocationAction < Action | |
| 1917 2281 |  | 
| 1918 2282 | 
             
            end
         | 
| 1919 2283 |  | 
| 1920 | 
            -
             | 
| 2284 | 
            +
            # Category: Location
         | 
| 2285 | 
            +
            #
         | 
| 2286 | 
            +
            class SetLocationUpdateRateAction < LocationAction
         | 
| 1921 2287 |  | 
| 1922 2288 | 
             
              def initialize(h={})
         | 
| 1923 2289 |  | 
| @@ -1932,7 +2298,18 @@ class SetLocationUpdateRateAction < Action | |
| 1932 2298 |  | 
| 1933 2299 | 
             
            end
         | 
| 1934 2300 |  | 
| 1935 | 
            -
            class  | 
| 2301 | 
            +
            class LoggingAction < Action
         | 
| 2302 | 
            +
              
         | 
| 2303 | 
            +
              def initialize(h={})
         | 
| 2304 | 
            +
                super(h)
         | 
| 2305 | 
            +
                @group = 'logging'
         | 
| 2306 | 
            +
              end
         | 
| 2307 | 
            +
              
         | 
| 2308 | 
            +
            end
         | 
| 2309 | 
            +
             | 
| 2310 | 
            +
            # Category: Logging
         | 
| 2311 | 
            +
            #
         | 
| 2312 | 
            +
            class AddCalendarEntryAction < LoggingAction
         | 
| 1936 2313 |  | 
| 1937 2314 | 
             
              def initialize(h={})
         | 
| 1938 2315 |  | 
| @@ -1959,7 +2336,9 @@ class AddCalendarEntryAction < Action | |
| 1959 2336 |  | 
| 1960 2337 | 
             
            end
         | 
| 1961 2338 |  | 
| 1962 | 
            -
             | 
| 2339 | 
            +
            # Category: Logging
         | 
| 2340 | 
            +
            #
         | 
| 2341 | 
            +
            class LogAction < LoggingAction
         | 
| 1963 2342 |  | 
| 1964 2343 | 
             
              def initialize(h={})
         | 
| 1965 2344 |  | 
| @@ -1974,7 +2353,9 @@ class LogAction < Action | |
| 1974 2353 |  | 
| 1975 2354 | 
             
            end
         | 
| 1976 2355 |  | 
| 1977 | 
            -
             | 
| 2356 | 
            +
            # Category: Logging
         | 
| 2357 | 
            +
            #
         | 
| 2358 | 
            +
            class ClearLogAction < LoggingAction
         | 
| 1978 2359 |  | 
| 1979 2360 | 
             
              def initialize(h={})
         | 
| 1980 2361 |  | 
| @@ -1988,24 +2369,18 @@ class ClearLogAction < Action | |
| 1988 2369 |  | 
| 1989 2370 | 
             
            end
         | 
| 1990 2371 |  | 
| 1991 | 
            -
            class  | 
| 1992 | 
            -
             | 
| 2372 | 
            +
            class MediaAction < Action
         | 
| 2373 | 
            +
              
         | 
| 1993 2374 | 
             
              def initialize(h={})
         | 
| 1994 | 
            -
             | 
| 1995 | 
            -
                 | 
| 1996 | 
            -
                  path: '',
         | 
| 1997 | 
            -
                  record_time_string: 'Until Cancelled',
         | 
| 1998 | 
            -
                  recording_format: 0,
         | 
| 1999 | 
            -
                  seconds_to_record_for: -1
         | 
| 2000 | 
            -
                }
         | 
| 2001 | 
            -
             | 
| 2002 | 
            -
                super(options.merge h)
         | 
| 2003 | 
            -
             | 
| 2375 | 
            +
                super(h)
         | 
| 2376 | 
            +
                @group = 'media'
         | 
| 2004 2377 | 
             
              end
         | 
| 2005 | 
            -
             | 
| 2378 | 
            +
              
         | 
| 2006 2379 | 
             
            end
         | 
| 2007 2380 |  | 
| 2008 | 
            -
             | 
| 2381 | 
            +
            # Category: Media
         | 
| 2382 | 
            +
            #
         | 
| 2383 | 
            +
            class RecordMicrophoneAction < MediaAction
         | 
| 2009 2384 |  | 
| 2010 2385 | 
             
              def initialize(h={})
         | 
| 2011 2386 |  | 
| @@ -2022,7 +2397,9 @@ class RecordMicrophoneAction < Action | |
| 2022 2397 |  | 
| 2023 2398 | 
             
            end
         | 
| 2024 2399 |  | 
| 2025 | 
            -
             | 
| 2400 | 
            +
            # Category: Media
         | 
| 2401 | 
            +
            #
         | 
| 2402 | 
            +
            class PlaySoundAction < MediaAction
         | 
| 2026 2403 |  | 
| 2027 2404 | 
             
              def initialize(h={})
         | 
| 2028 2405 |  | 
| @@ -2038,7 +2415,18 @@ class PlaySoundAction < Action | |
| 2038 2415 | 
             
            end
         | 
| 2039 2416 |  | 
| 2040 2417 |  | 
| 2041 | 
            -
            class  | 
| 2418 | 
            +
            class MessagingAction < Action
         | 
| 2419 | 
            +
              
         | 
| 2420 | 
            +
              def initialize(h={})
         | 
| 2421 | 
            +
                super(h)
         | 
| 2422 | 
            +
                @group = 'messaging'
         | 
| 2423 | 
            +
              end
         | 
| 2424 | 
            +
              
         | 
| 2425 | 
            +
            end
         | 
| 2426 | 
            +
             | 
| 2427 | 
            +
            # Category: Messaging
         | 
| 2428 | 
            +
            #
         | 
| 2429 | 
            +
            class SendEmailAction < MessagingAction
         | 
| 2042 2430 |  | 
| 2043 2431 | 
             
              def initialize(h={})
         | 
| 2044 2432 |  | 
| @@ -2058,7 +2446,9 @@ class SendEmailAction < Action | |
| 2058 2446 |  | 
| 2059 2447 | 
             
            end
         | 
| 2060 2448 |  | 
| 2061 | 
            -
             | 
| 2449 | 
            +
            # Category: Messaging
         | 
| 2450 | 
            +
            #
         | 
| 2451 | 
            +
            class SendSMSAction < MessagingAction
         | 
| 2062 2452 |  | 
| 2063 2453 | 
             
              def initialize(h={})
         | 
| 2064 2454 |  | 
| @@ -2077,7 +2467,9 @@ class SendSMSAction < Action | |
| 2077 2467 |  | 
| 2078 2468 | 
             
            end
         | 
| 2079 2469 |  | 
| 2080 | 
            -
             | 
| 2470 | 
            +
            # Category: Messaging
         | 
| 2471 | 
            +
            #
         | 
| 2472 | 
            +
            class UDPCommandAction < MessagingAction
         | 
| 2081 2473 |  | 
| 2082 2474 | 
             
              def initialize(h={})
         | 
| 2083 2475 |  | 
| @@ -2093,7 +2485,19 @@ class UDPCommandAction < Action | |
| 2093 2485 |  | 
| 2094 2486 | 
             
            end
         | 
| 2095 2487 |  | 
| 2096 | 
            -
             | 
| 2488 | 
            +
             | 
| 2489 | 
            +
            class NotificationsAction < Action
         | 
| 2490 | 
            +
              
         | 
| 2491 | 
            +
              def initialize(h={})
         | 
| 2492 | 
            +
                super(h)
         | 
| 2493 | 
            +
                @group = 'notifications'
         | 
| 2494 | 
            +
              end
         | 
| 2495 | 
            +
              
         | 
| 2496 | 
            +
            end
         | 
| 2497 | 
            +
             | 
| 2498 | 
            +
            # Category: Notifications
         | 
| 2499 | 
            +
            #
         | 
| 2500 | 
            +
            class ClearNotificationsAction < NotificationsAction
         | 
| 2097 2501 |  | 
| 2098 2502 | 
             
              def initialize(h={})
         | 
| 2099 2503 |  | 
| @@ -2115,7 +2519,9 @@ class ClearNotificationsAction < Action | |
| 2115 2519 |  | 
| 2116 2520 | 
             
            end
         | 
| 2117 2521 |  | 
| 2118 | 
            -
             | 
| 2522 | 
            +
            # Category: Notifications
         | 
| 2523 | 
            +
            #
         | 
| 2524 | 
            +
            class MessageDialogAction < NotificationsAction
         | 
| 2119 2525 |  | 
| 2120 2526 | 
             
              def initialize(h={})
         | 
| 2121 2527 |  | 
| @@ -2140,7 +2546,9 @@ class MessageDialogAction < Action | |
| 2140 2546 |  | 
| 2141 2547 | 
             
            end
         | 
| 2142 2548 |  | 
| 2143 | 
            -
             | 
| 2549 | 
            +
            # Category: Notifications
         | 
| 2550 | 
            +
            #
         | 
| 2551 | 
            +
            class AllowLEDNotificationLightAction < NotificationsAction
         | 
| 2144 2552 |  | 
| 2145 2553 | 
             
              def initialize(h={})
         | 
| 2146 2554 |  | 
| @@ -2154,7 +2562,9 @@ class AllowLEDNotificationLightAction < Action | |
| 2154 2562 |  | 
| 2155 2563 | 
             
            end
         | 
| 2156 2564 |  | 
| 2157 | 
            -
             | 
| 2565 | 
            +
            # Category: Notifications
         | 
| 2566 | 
            +
            #
         | 
| 2567 | 
            +
            class SetNotificationSoundAction < NotificationsAction
         | 
| 2158 2568 |  | 
| 2159 2569 | 
             
              def initialize(h={})
         | 
| 2160 2570 |  | 
| @@ -2168,7 +2578,9 @@ class SetNotificationSoundAction < Action | |
| 2168 2578 |  | 
| 2169 2579 | 
             
            end
         | 
| 2170 2580 |  | 
| 2171 | 
            -
             | 
| 2581 | 
            +
            # Category: Notifications
         | 
| 2582 | 
            +
            #
         | 
| 2583 | 
            +
            class SetNotificationSoundAction < NotificationsAction
         | 
| 2172 2584 |  | 
| 2173 2585 | 
             
              def initialize(h={})
         | 
| 2174 2586 |  | 
| @@ -2182,7 +2594,9 @@ class SetNotificationSoundAction < Action | |
| 2182 2594 |  | 
| 2183 2595 | 
             
            end
         | 
| 2184 2596 |  | 
| 2185 | 
            -
             | 
| 2597 | 
            +
            # Category: Notifications
         | 
| 2598 | 
            +
            #
         | 
| 2599 | 
            +
            class SetNotificationSoundAction < NotificationsAction
         | 
| 2186 2600 |  | 
| 2187 2601 | 
             
              def initialize(h={})
         | 
| 2188 2602 |  | 
| @@ -2196,7 +2610,9 @@ class SetNotificationSoundAction < Action | |
| 2196 2610 |  | 
| 2197 2611 | 
             
            end
         | 
| 2198 2612 |  | 
| 2199 | 
            -
             | 
| 2613 | 
            +
            # Category: Notifications
         | 
| 2614 | 
            +
            #
         | 
| 2615 | 
            +
            class NotificationAction < NotificationsAction
         | 
| 2200 2616 |  | 
| 2201 2617 | 
             
              def initialize(h={})
         | 
| 2202 2618 |  | 
| @@ -2220,7 +2636,9 @@ class NotificationAction < Action | |
| 2220 2636 |  | 
| 2221 2637 | 
             
            end
         | 
| 2222 2638 |  | 
| 2223 | 
            -
             | 
| 2639 | 
            +
            # Category: Notifications
         | 
| 2640 | 
            +
            #
         | 
| 2641 | 
            +
            class ToastAction < NotificationsAction
         | 
| 2224 2642 |  | 
| 2225 2643 | 
             
              def initialize(h={})
         | 
| 2226 2644 |  | 
| @@ -2243,10 +2661,26 @@ class ToastAction < Action | |
| 2243 2661 | 
             
                super(options.merge h)
         | 
| 2244 2662 |  | 
| 2245 2663 | 
             
              end
         | 
| 2664 | 
            +
              
         | 
| 2665 | 
            +
              def invoke()
         | 
| 2666 | 
            +
                super(@h[:message_text])
         | 
| 2667 | 
            +
              end
         | 
| 2246 2668 |  | 
| 2247 2669 | 
             
            end
         | 
| 2248 2670 |  | 
| 2249 | 
            -
             | 
| 2671 | 
            +
             | 
| 2672 | 
            +
            class PhoneAction < Action
         | 
| 2673 | 
            +
              
         | 
| 2674 | 
            +
              def initialize(h={})
         | 
| 2675 | 
            +
                super(h)
         | 
| 2676 | 
            +
                @group = 'phone'
         | 
| 2677 | 
            +
              end
         | 
| 2678 | 
            +
              
         | 
| 2679 | 
            +
            end
         | 
| 2680 | 
            +
             | 
| 2681 | 
            +
            # Category: Phone
         | 
| 2682 | 
            +
            #
         | 
| 2683 | 
            +
            class AnswerCallAction < PhoneAction
         | 
| 2250 2684 |  | 
| 2251 2685 | 
             
              def initialize(h={})
         | 
| 2252 2686 |  | 
| @@ -2260,7 +2694,9 @@ class AnswerCallAction < Action | |
| 2260 2694 |  | 
| 2261 2695 | 
             
            end
         | 
| 2262 2696 |  | 
| 2263 | 
            -
             | 
| 2697 | 
            +
            # Category: Phone
         | 
| 2698 | 
            +
            #
         | 
| 2699 | 
            +
            class ClearCallLogAction < PhoneAction
         | 
| 2264 2700 |  | 
| 2265 2701 | 
             
              def initialize(h={})
         | 
| 2266 2702 |  | 
| @@ -2276,7 +2712,9 @@ class ClearCallLogAction < Action | |
| 2276 2712 |  | 
| 2277 2713 | 
             
            end
         | 
| 2278 2714 |  | 
| 2279 | 
            -
             | 
| 2715 | 
            +
            # Category: Phone
         | 
| 2716 | 
            +
            #
         | 
| 2717 | 
            +
            class OpenCallLogAction < PhoneAction
         | 
| 2280 2718 |  | 
| 2281 2719 | 
             
              def initialize(h={})
         | 
| 2282 2720 |  | 
| @@ -2289,7 +2727,9 @@ class OpenCallLogAction < Action | |
| 2289 2727 |  | 
| 2290 2728 | 
             
            end
         | 
| 2291 2729 |  | 
| 2292 | 
            -
             | 
| 2730 | 
            +
            # Category: Phone
         | 
| 2731 | 
            +
            #
         | 
| 2732 | 
            +
            class RejectCallAction < PhoneAction
         | 
| 2293 2733 |  | 
| 2294 2734 | 
             
              def initialize(h={})
         | 
| 2295 2735 |  | 
| @@ -2302,7 +2742,9 @@ class RejectCallAction < Action | |
| 2302 2742 |  | 
| 2303 2743 | 
             
            end
         | 
| 2304 2744 |  | 
| 2305 | 
            -
             | 
| 2745 | 
            +
            # Category: Phone
         | 
| 2746 | 
            +
            #
         | 
| 2747 | 
            +
            class MakeCallAction < PhoneAction
         | 
| 2306 2748 |  | 
| 2307 2749 | 
             
              def initialize(h={})
         | 
| 2308 2750 |  | 
| @@ -2317,7 +2759,10 @@ class MakeCallAction < Action | |
| 2317 2759 |  | 
| 2318 2760 | 
             
            end
         | 
| 2319 2761 |  | 
| 2320 | 
            -
             | 
| 2762 | 
            +
             | 
| 2763 | 
            +
            # Category: Phone
         | 
| 2764 | 
            +
            #
         | 
| 2765 | 
            +
            class SetRingtoneAction < PhoneAction
         | 
| 2321 2766 |  | 
| 2322 2767 | 
             
              def initialize(h={})
         | 
| 2323 2768 |  | 
| @@ -2331,7 +2776,18 @@ class SetRingtoneAction < Action | |
| 2331 2776 |  | 
| 2332 2777 | 
             
            end
         | 
| 2333 2778 |  | 
| 2334 | 
            -
            class  | 
| 2779 | 
            +
            class ScreenAction < Action
         | 
| 2780 | 
            +
              
         | 
| 2781 | 
            +
              def initialize(h={})
         | 
| 2782 | 
            +
                super(h)
         | 
| 2783 | 
            +
                @group = 'screen'
         | 
| 2784 | 
            +
              end
         | 
| 2785 | 
            +
              
         | 
| 2786 | 
            +
            end
         | 
| 2787 | 
            +
             | 
| 2788 | 
            +
            # Category: Screen
         | 
| 2789 | 
            +
            #
         | 
| 2790 | 
            +
            class SetBrightnessAction < ScreenAction
         | 
| 2335 2791 |  | 
| 2336 2792 | 
             
              def initialize(h={})
         | 
| 2337 2793 |  | 
| @@ -2347,7 +2803,9 @@ class SetBrightnessAction < Action | |
| 2347 2803 |  | 
| 2348 2804 | 
             
            end
         | 
| 2349 2805 |  | 
| 2350 | 
            -
             | 
| 2806 | 
            +
            # Category: Screen
         | 
| 2807 | 
            +
            #
         | 
| 2808 | 
            +
            class ForceScreenRotationAction < ScreenAction
         | 
| 2351 2809 |  | 
| 2352 2810 | 
             
              def initialize(h={})
         | 
| 2353 2811 |  | 
| @@ -2361,7 +2819,9 @@ class ForceScreenRotationAction < Action | |
| 2361 2819 |  | 
| 2362 2820 | 
             
            end
         | 
| 2363 2821 |  | 
| 2364 | 
            -
             | 
| 2822 | 
            +
            # Category: Screen
         | 
| 2823 | 
            +
            #
         | 
| 2824 | 
            +
            class ScreenOnAction < ScreenAction
         | 
| 2365 2825 |  | 
| 2366 2826 | 
             
              def initialize(h={})
         | 
| 2367 2827 |  | 
| @@ -2378,7 +2838,9 @@ class ScreenOnAction < Action | |
| 2378 2838 |  | 
| 2379 2839 | 
             
            end
         | 
| 2380 2840 |  | 
| 2381 | 
            -
             | 
| 2841 | 
            +
            # Category: Screen
         | 
| 2842 | 
            +
            #
         | 
| 2843 | 
            +
            class DimScreenAction < ScreenAction
         | 
| 2382 2844 |  | 
| 2383 2845 | 
             
              def initialize(h={})
         | 
| 2384 2846 |  | 
| @@ -2393,7 +2855,9 @@ class DimScreenAction < Action | |
| 2393 2855 |  | 
| 2394 2856 | 
             
            end
         | 
| 2395 2857 |  | 
| 2396 | 
            -
             | 
| 2858 | 
            +
            # Category: Screen
         | 
| 2859 | 
            +
            #
         | 
| 2860 | 
            +
            class KeepAwakeAction < ScreenAction
         | 
| 2397 2861 |  | 
| 2398 2862 | 
             
              def initialize(h={})
         | 
| 2399 2863 |  | 
| @@ -2410,7 +2874,9 @@ class KeepAwakeAction < Action | |
| 2410 2874 |  | 
| 2411 2875 | 
             
            end
         | 
| 2412 2876 |  | 
| 2413 | 
            -
             | 
| 2877 | 
            +
            # Category: Screen
         | 
| 2878 | 
            +
            #
         | 
| 2879 | 
            +
            class SetScreenTimeoutAction < ScreenAction
         | 
| 2414 2880 |  | 
| 2415 2881 | 
             
              def initialize(h={})
         | 
| 2416 2882 |  | 
| @@ -2427,8 +2893,18 @@ class SetScreenTimeoutAction < Action | |
| 2427 2893 | 
             
            end
         | 
| 2428 2894 |  | 
| 2429 2895 |  | 
| 2896 | 
            +
            class VolumeAction < Action
         | 
| 2897 | 
            +
              
         | 
| 2898 | 
            +
              def initialize(h={})
         | 
| 2899 | 
            +
                super(h)
         | 
| 2900 | 
            +
                @group = 'volume'
         | 
| 2901 | 
            +
              end
         | 
| 2902 | 
            +
              
         | 
| 2903 | 
            +
            end
         | 
| 2430 2904 |  | 
| 2431 | 
            -
             | 
| 2905 | 
            +
            # Category: Volume
         | 
| 2906 | 
            +
            #
         | 
| 2907 | 
            +
            class SilentModeVibrateOffAction < VolumeAction
         | 
| 2432 2908 |  | 
| 2433 2909 | 
             
              def initialize(h={})
         | 
| 2434 2910 |  | 
| @@ -2442,7 +2918,9 @@ class SilentModeVibrateOffAction < Action | |
| 2442 2918 |  | 
| 2443 2919 | 
             
            end
         | 
| 2444 2920 |  | 
| 2445 | 
            -
             | 
| 2921 | 
            +
            # Category: Volume
         | 
| 2922 | 
            +
            #
         | 
| 2923 | 
            +
            class SetVibrateAction < VolumeAction
         | 
| 2446 2924 |  | 
| 2447 2925 | 
             
              def initialize(h={})
         | 
| 2448 2926 |  | 
| @@ -2457,7 +2935,9 @@ class SetVibrateAction < Action | |
| 2457 2935 |  | 
| 2458 2936 | 
             
            end
         | 
| 2459 2937 |  | 
| 2460 | 
            -
             | 
| 2938 | 
            +
            # Category: Volume
         | 
| 2939 | 
            +
            #
         | 
| 2940 | 
            +
            class VolumeIncrementDecrementAction < VolumeAction
         | 
| 2461 2941 |  | 
| 2462 2942 | 
             
              def initialize(h={})
         | 
| 2463 2943 |  | 
| @@ -2471,7 +2951,9 @@ class VolumeIncrementDecrementAction < Action | |
| 2471 2951 |  | 
| 2472 2952 | 
             
            end
         | 
| 2473 2953 |  | 
| 2474 | 
            -
             | 
| 2954 | 
            +
            # Category: Volume
         | 
| 2955 | 
            +
            #
         | 
| 2956 | 
            +
            class SpeakerPhoneAction < VolumeAction
         | 
| 2475 2957 |  | 
| 2476 2958 | 
             
              def initialize(h={})
         | 
| 2477 2959 |  | 
| @@ -2486,8 +2968,9 @@ class SpeakerPhoneAction < Action | |
| 2486 2968 |  | 
| 2487 2969 | 
             
            end
         | 
| 2488 2970 |  | 
| 2489 | 
            -
             | 
| 2490 | 
            -
             | 
| 2971 | 
            +
            # Category: Volume
         | 
| 2972 | 
            +
            #
         | 
| 2973 | 
            +
            class SetVolumeAction < VolumeAction
         | 
| 2491 2974 |  | 
| 2492 2975 | 
             
              def initialize(h={})
         | 
| 2493 2976 |  |