class Trigger

This file contains the following classes:

## Trigger classes

Trigger WebHookTrigger WifiConnectionTrigger
ApplicationInstalledRemovedTrigger ApplicationLaunchedTrigger
BatteryLevelTrigger BatteryTemperatureTrigger PowerButtonToggleTrigger
ExternalPowerTrigger CallActiveTrigger IncomingCallTrigger
OutgoingCallTrigger CallEndedTrigger CallMissedTrigger IncomingSMSTrigger
WebHookTrigger WifiConnectionTrigger BluetoothTrigger HeadphonesTrigger
SignalOnOffTrigger UsbDeviceConnectionTrigger WifiSSIDTrigger
CalendarTrigger TimerTrigger StopwatchTrigger DayTrigger
RegularIntervalTrigger DeviceEventsTrigger AirplaneModeTrigger
AutoSyncChangeTrigger DayDreamTrigger DockTrigger FailedLoginTrigger
GPSEnabledTrigger MusicPlayingTrigger DeviceUnlockedTrigger
AutoRotateChangeTrigger ClipboardChangeTrigger BootTrigger
IntentReceivedTrigger NotificationTrigger ScreenOnOffTrigger
SilentModeTrigger WeatherTrigger GeofenceTrigger SunriseSunsetTrigger
SensorsTrigger ActivityRecognitionTrigger ProximityTrigger
ShakeDeviceTrigger FlipDeviceTrigger OrientationTrigger
FloatingButtonTrigger ShortcutTrigger VolumeButtonTrigger
MediaButtonPressedTrigger SwipeTrigger

Attributes

constraints[R]

Public Class Methods

new(h={}) click to toggle source
Calls superclass method MacroObject::new
# File lib/ruby-macrodroid/triggers.rb, line 36
def initialize(h={})    
  super({fakeIcon: 0}.merge(h))
  @list << 'fakeIcon'
      
  # fetch the constraints
  @constraints = @h[:constraint_list].map do |constraint|
    object(constraint.to_snake_case)
  end       
  
end

Public Instance Methods

match?(detail={}, model=nil) click to toggle source
# File lib/ruby-macrodroid/triggers.rb, line 47
def match?(detail={}, model=nil)

  # only match where the key exists in the trigger object
  detail.select {|k,v| @h.include? k }.all? {|key,value| @h[key] == value}

end
to_s(colour: false) click to toggle source
Calls superclass method MacroObject#to_s
# File lib/ruby-macrodroid/triggers.rb, line 54
def to_s(colour: false)

  h = @h.clone    
  h.delete :macro
  @s ||= "#<%s %s>" % [self.class, h.inspect]
  operator = @h[:is_or_condition] ? 'OR' : 'AND'
  constraints = @constraints.map \
      {|x| 'c: ' + x.to_summary(colour: colour, indent: 1)}.join(" %s " % operator)
  
  @constraints.any? ? @s + "\n" + constraints : @s
  super()
  
end