Class: AppleTvPasswordKeyboard

Inherits:
Keyboard show all
Defined in:
lib/keyboard/apple_tv/apple_tv_password_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) ⇒ AppleTvPasswordKeyboard

Returns a new instance of AppleTvPasswordKeyboard.



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
60
61
62
63
64
65
66
67
68
# File 'lib/keyboard/apple_tv/apple_tv_password_keyboard.rb', line 6

def initialize(*args)
  super(*args)
  # see Keyboard for explanation of layouts
  keys_start = [
      [:LOWERCASE, :LOWERCASE, :UPPERCASE, :UPPERCASE, :SYMBOLS, :SYMBOLS],
      [:n0, :n1, :n2, :n3, :n4, :n5]
  ]
  keys_lower = [
      [:LOWERCASE, :LOWERCASE, :UPPERCASE, :UPPERCASE, :SYMBOLS, :SYMBOLS],
      %w[a b c d e f],
      %w[g h i j k l],
      %w[m n o p q r],
      %w[s t u v w x],
      %w[y z 1 2 3 4],
      %w[5 6 7 8 9 0],
      [:SPACE, :SPACE, :DELETE, :DELETE, :CLEAR, :CLEAR]
  ]
  keys_upper = [
      [:LOWERCASE, :LOWERCASE, :UPPERCASE, :UPPERCASE, :SYMBOLS, :SYMBOLS],
      %w[A B C D E F],
      %w[G H I J K L],
      %w[M N O P Q R],
      %w[S T U V W X],
      %w[Y Z 1 2 3 4],
      %w[5 6 7 8 9 0],
      [:SPACE, :SPACE, :DELETE, :DELETE, :CLEAR, :CLEAR]
  ]
  keys_symbols = [
      [:LOWERCASE, :LOWERCASE, :UPPERCASE, :UPPERCASE, :SYMBOLS, :SYMBOLS],
      %w[! @ # $ % &],
      %w[~ * \ / ? ^],
      %w[_ ` ; : | =],
      %w[é ñ [ ] { }],
      %w[ç ü . , + -],
      %w[< > ( ) ' "],
      [:SPACE, :SPACE, :DELETE, :DELETE, :CLEAR, :CLEAR]
  ]

  @layouts << KeyboardLayout.new(keys_start, [1, 0], name: 'keys_start')
  @layouts << KeyboardLayout.new(keys_lower, [0, 1], nav_to_key: :LOWERCASE, name: 'keys_lower')
  @layouts << KeyboardLayout.new(keys_upper, [0, 2], nav_to_key: :UPPERCASE, name: 'keys_upper')
  @layouts << KeyboardLayout.new(keys_symbols, [0, 4], nav_to_key: :SYMBOLS, name: 'keys_symbols')

  @verify_roi = dut.roi.text.search_box_text_entered rescue nil
  # Do not traverse from any of the multi-column keys except to the key above-left of it, since they always left-justify.
  @deny_traversals = [
    [:LOWERCASE, "a"], [:LOWERCASE, "A"], [:LOWERCASE, "!"], [:LOWERCASE, :n0], [:LOWERCASE, :UPPERCASE],
    ["a", :LOWERCASE], ["A", :LOWERCASE], ["!", :LOWERCASE], [:n0, :LOWERCASE],

    [:UPPERCASE, "d"], [:UPPERCASE, "D"], [:UPPERCASE, "$"], [:UPPERCASE, :n3], [:UPPERCASE, :LOWERCASE], [:UPPERCASE, :SYMBOLS],
    ["d", :UPPERCASE], ["D", :UPPERCASE], ["$", :UPPERCASE], [:n3, :UPPERCASE],

    [:SYMBOLS, "f"],  [:SYMBOLS, "F"], [:SYMBOLS, "&"], [:SYMBOLS, :n5], [:SYMBOLS, :UPPERCASE],
    ["f", :SYMBOLS],  ["F", :SYMBOLS], ["&", :SYMBOLS], [:n5, :SYMBOLS],

      [:SPACE, '>'], [:SPACE, '6'], [:SPACE, :DELETE],
      ['>', :SPACE], ['6', :SPACE],
      [:DELETE, '9'], [:DELETE, ')'], [:DELETE, '.COM'], [:DELETE, :SPACE], [:DELETE, :CLEAR],
      ['9', :DELETE], [')', :DELETE], ['.COM', :DELETE], 
      [:CLEAR, "0"], [:CLEAR, "\""], [:CLEAR, :DELETE],
      ["0", :CLEAR], ["\"", :CLEAR]
  ]
end