Class: SamsungTvSigninKeyboard

Inherits:
Keyboard show all
Defined in:
lib/keyboard/samsung_tv/samsung_tv_signin_keyboard.rb

Constant Summary

Constants inherited from Keyboard

Keyboard::DEBUG

Instance Method Summary collapse

Methods inherited from Keyboard

#displayed?, #reset, #type?

Constructor Details

#initialize(*args) ⇒ SamsungTvSigninKeyboard

Returns a new instance of SamsungTvSigninKeyboard.



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/keyboard/samsung_tv/samsung_tv_signin_keyboard.rb', line 6

def initialize(*args)
  super(*args)
  # see Keyboard for explanation of layouts
  letters = [
      [:CLEAR, :CLEAR, :CLEAR, :CLEAR, :CLEAR, :CLEAR, :CLEAR, :CLEAR],
      ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'],
      ['i', 'j', 'k', 'l', 'm', 'n', 'o', 'p'],
      ['q', 'r', 's', 't', 'u', 'v', 'w', 'x'],
      ['y', 'z', '1', '2', '3', '4', '5', '6'],
      ['7', '8', '9', '0', '@', '.', :com, :BACKSPACE],
      [:SHIFT, :SHIFT, :SPACE, :SPACE, :SYMBOLS, :SYMBOLS, :NEXT, :NEXT]
  ]
  symbols = [
      [:CLEAR, :CLEAR, :CLEAR, :CLEAR, :CLEAR, :CLEAR, :CLEAR, :CLEAR],
      ['!', '#', '$', '%', '^', '&', '*', '-'],
      ['(', ')', '[', ']', '<', '>', '{', '}'],
      ['+', '?', '\\', '|', ';', ':', '"', '/'],
      ["'", '_', :BLANK, :BLANK, :BLANK, :BLANK, :BLANK, :BLANK],
      [:SPACE, :SPACE, :SPACE, :LETTERS, :LETTERS, :LETTERS, :NEXT, :NEXT]
  ]
  @layouts << KeyboardLayout.new(letters, [1, 0], nav_to_key: :LETTERS, name: 'default letters')
  @layouts << KeyboardLayout.new(symbols, [5, 3], nav_to_key: :SYMBOLS, name: 'default symbols')
  @key_delay = 2.sec
  # Do not traverse to/from any of the multi-column keys except from a specific key, since the keyboard remembers how
  # each key was accessed.
  # Do not traverse from SYMBOLS to NEXT as the keyboard changes the behavior of navigating up from NEXT in that case.
  @deny_traversals = [
      [:CLEAR, 'b'], [:CLEAR, 'c'], [:CLEAR, 'd'], [:CLEAR, 'e'], [:CLEAR, 'f'], [:CLEAR, 'g'], [:CLEAR, 'h'],
      ['b', :CLEAR], ['c', :CLEAR], ['d', :CLEAR], ['e', :CLEAR], ['f', :CLEAR], ['g', :CLEAR], ['h', :CLEAR],
      [:SHIFT, '8'], ['8', :SHIFT],
      [:SPACE, '0'], ['0', :SPACE],
      [:SYMBOLS, '.'], ['.', :SYMBOLS],
      [:NEXT, :BACKSPACE], [:BACKSPACE, :NEXT],
      [:CLEAR, '#'], [:CLEAR, '$'], [:CLEAR, '%'], [:CLEAR, '^'], [:CLEAR, '&'], [:CLEAR, '*'], [:CLEAR, '-'],
      ['#', :CLEAR], ['$', :CLEAR], ['%', :CLEAR], ['^', :CLEAR], ['&', :CLEAR], ['*', :CLEAR], ['-', :CLEAR],
      [:SPACE, "'"], ["'", :SPACE],
      [:SYMBOLS, :NEXT]
  ]
end