Class: RokuRsgSearchKeyboard

Inherits:
Keyboard show all
Defined in:
lib/keyboard/roku/roku_rsg_search_keyboard.rb

Direct Known Subclasses

RokuRsgSigninKeyboard

Constant Summary

Constants inherited from Keyboard

Keyboard::DEBUG

Instance Method Summary collapse

Methods inherited from Keyboard

#displayed?, #reset, #type?

Constructor Details

#initialize(*args) ⇒ RokuRsgSearchKeyboard

Returns a new instance of RokuRsgSearchKeyboard.



5
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/keyboard/roku/roku_rsg_search_keyboard.rb', line 5

def initialize(*args)
  super(*args)
  # see Keyboard for explanation of layouts
  letters = [
      [
          :SPACE, :BACKSPACE, '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'
      ],
      [
          :LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS,
          :LETTERS, :LETTERS, :LETTERS, :NUMBERS, :NUMBERS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS,
          :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS
      ]
  ]
  numbers = [
      [:SPACE, :BACKSPACE, '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],
      [
          :LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :NUMBERS, :NUMBERS, :SYMBOLS, :SYMBOLS, :SYMBOLS,
          :SYMBOLS, :SYMBOLS
      ]
  ]
  symbols = [
      [
          :SPACE, :BACKSPACE, '-', "'", '?', '!', '@', '#', '$', '&', '%', '`', '.', '_', '<', '>', ':', ';', '=',
          '+', '*', ','
      ],
      [
          :LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :NUMBERS,
          :NUMBERS, :NUMBERS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS
      ]
  ]
  @layouts << KeyboardLayout.new(letters, [0, 2], nav_to_key: :LETTERS, name: 'search letters')
  @layouts << KeyboardLayout.new(numbers, [1, 5], nav_to_key: :NUMBERS, name: 'search numbers')
  @layouts << KeyboardLayout.new(symbols, [1,12], nav_to_key: :SYMBOLS, name: 'search symbols')
  @key_delay = 2.sec
  @wrap_cols = true
  # Do not traverse from any of the multi-column keys except to the key above-left of it, since they always left-justify.
  # Do not traverse from LETTERS to SPACE or BACKSPACE as it is not possible.
  # Do not traverse from LETTERS to SYMBOLS and vice versa since that row doesn't actually wrap.
  @deny_traversals = [
      [:LETTERS, 'A'], [:LETTERS, 'B'], [:LETTERS, 'C'], [:LETTERS, 'D'], [:LETTERS, 'E'], [:LETTERS, 'F'], [:LETTERS, 'G'], [:LETTERS, 'H'], [:LETTERS, 'I'], [:LETTERS, 'J'], 
      [:NUMBERS, 'M'], 
      [:SYMBOLS, 'O'], [:SYMBOLS, 'P'], [:SYMBOLS, 'Q'], [:SYMBOLS, 'R'], [:SYMBOLS, 'S'], [:SYMBOLS, 'T'], [:SYMBOLS, 'U'], [:SYMBOLS, 'V'], [:SYMBOLS, 'W'], [:SYMBOLS, 'X'], [:SYMBOLS, 'Y'], [:SYMBOLS, 'Z'],
      
      [:LETTERS, '1'], [:LETTERS, '2'], 
      [:NUMBERS, '5'], 
      [:SYMBOLS, '7'], [:SYMBOLS, '8'], [:SYMBOLS, '9'],[:SYMBOLS, '0'],
      
      [:LETTERS, '-'], [:LETTERS, "'"], [:LETTERS, '?'], [:LETTERS, '!'], [:LETTERS, '@'], [:LETTERS, '#'], [:LETTERS, '$'],
      [:NUMBERS, '`'],
      [:SYMBOLS, '_'], [:SYMBOLS, '<'], [:SYMBOLS, '>'], [:SYMBOLS, ':'], [:SYMBOLS, ';'], [:SYMBOLS, '='], [:SYMBOLS, '+'], [:SYMBOLS, '*'], [:SYMBOLS, ','],
      [:LETTERS, :SPACE], [:LETTERS, :BACKSPACE],
      [:LETTERS, :SYMBOLS], [:SYMBOLS, :LETTERS]
  ]
end