class RunLoop::SimKeyboardSettings
Attributes
Public Class Methods
# File lib/run_loop/sim_keyboard_settings.rb, line 5 def initialize(device) @device = device @pbuddy = RunLoop::PlistBuddy.new end
Public Instance Methods
Checks if plist value that responds for autocapitalization is set to true
@return [Boolean]
# File lib/run_loop/sim_keyboard_settings.rb, line 76 def autocapitalization_enabled? pbuddy.plist_read('KeyboardAutocapitalization', plist) == 'true' end
Checks if plist value that responds for autocorrection is set to true
@return [Boolean]
# File lib/run_loop/sim_keyboard_settings.rb, line 62 def autocorrection_enabled? pbuddy.plist_read('KeyboardAutocorrection', plist) == 'true' end
Checks if plist value that responds for caps lock is set to true
@return [Boolean]
# File lib/run_loop/sim_keyboard_settings.rb, line 69 def caps_lock_enabled? pbuddy.plist_read('KeyboardCapsLock', plist) == 'true' end
Enable/disable keyboard autocapitalization
@param [Boolean] condition, option passed by the user in launch arguments default: nil(false)
# File lib/run_loop/sim_keyboard_settings.rb, line 55 def enable_autocapitalization(condition) pbuddy.plist_set('KeyboardAutocapitalization', 'bool', condition, plist) end
Enable/disable keyboard autocorrection
@param [Boolean] condition, option passed by the user in launch arguments default: nil(false)
# File lib/run_loop/sim_keyboard_settings.rb, line 39 def enable_autocorrection(condition) pbuddy.plist_set('KeyboardAutocorrection', 'bool', condition, plist) end
Enable/disable keyboard caps lock
@param [Boolean] condition, option passed by the user in launch arguments default: nil(false)
# File lib/run_loop/sim_keyboard_settings.rb, line 47 def enable_caps_lock(condition) pbuddy.plist_set('KeyboardCapsLock', 'bool', condition, plist) end
# File lib/run_loop/sim_keyboard_settings.rb, line 31 def ensure_keyboard_tutorial_disabled pbuddy.plist_set('DidShowContinuousPathIntroduction', 'bool', true, plist) end
Add properties needed for soft keyboard to show into preferences plist
# File lib/run_loop/sim_keyboard_settings.rb, line 25 def ensure_soft_keyboard_will_show pbuddy.plist_set('HardwareKeyboardLastSeen', 'bool', false, plist) pbuddy.plist_set('SoftwareKeyboardShownByTouch', 'bool', true, plist) pbuddy.plist_set('AutomaticMinimizationEnabled', 'bool', false, plist) end
Get preferences plist path
@return nil if doesn’t run against simulator @return [String] with path to the plist
# File lib/run_loop/sim_keyboard_settings.rb, line 91 def preferences_plist_path return nil if device.physical_device? directory = File.join(device.simulator_root_dir, 'data', 'Library', 'Preferences') pbuddy.ensure_plist(directory, 'com.apple.Preferences.plist') end
Check if all the properties needed for the soft keyboard to appear are set Approach to negate ‘true’ and ‘false’ was chosen in order to do not reboot sim too often, as this will cover the cases when the properties are not set which means that keyboard will be shown anyways
@return [Bool]
# File lib/run_loop/sim_keyboard_settings.rb, line 16 def soft_keyboard_will_show? hw_keyboard_disabled = pbuddy.plist_read('HardwareKeyboardLastSeen', plist) != 'true' soft_keyboard_enabled = pbuddy.plist_read('SoftwareKeyboardShownByTouch', plist) != 'false' minimization_disabled = pbuddy.plist_read('AutomaticMinimizationEnabled', plist) != 'true' hw_keyboard_disabled && minimization_disabled && soft_keyboard_enabled end