da_funk 3.21.0 → 3.24.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bc5abcda84d3caf3982e38fe2ec5c10e59de3ea4c171ec086355a4192e610e21
4
- data.tar.gz: a3bac877e9dc0e25a3b0da2f015c87ba64431dab8c1bc7db8f513c89cdf46289
3
+ metadata.gz: d75e33d05a3e451e71ffa6379c421c7477c1555bcaf65d93b7d2a3246ecfb7d7
4
+ data.tar.gz: 168ad5136f22cf3384a0c6c0374665f93d22862bd6da575950ffff324c69e849
5
5
  SHA512:
6
- metadata.gz: 32172e2717e34860bd3df6eb6a8a8c1bae0eb54dce61fa45e93b9dcd59af4d9da939450f724defa7a41de8612453f73bd50a05ee8dd60d950a4e56d2000768b6
7
- data.tar.gz: 59de0b4dbdca94dbd077c37e220e22305030823b7a171b2a77e1ea1778f05fc17f6eb2d999a98911348a2a57bd0b101a7f2e2535f4acd60fe740a50289195981
6
+ metadata.gz: d7ec864dbd743edc3855d1e8b8d8e24a0b770c0d9fd21f09396daec03d191d4dacbe3f89cbf5e27af32c8b66451e5020b7f891200225451a5e98bb511f341047
7
+ data.tar.gz: 36b99ec0a5e6af0bf022ab8d7e267d7c903e4902fa428678ef66da3db149c58f920e8b35f93a2ad32221ce26d65ab31707a0047ad5d355a5f54e1e704619249a
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- da_funk (3.21.0)
4
+ da_funk (3.24.0)
5
5
  archive-zip (~> 0.5)
6
6
  bundler
7
7
  cloudwalk_handshake
@@ -18,30 +18,30 @@ GEM
18
18
  cloudwalk (1.15.0)
19
19
  bundler
20
20
  rake
21
- cloudwalk_handshake (1.13.1)
21
+ cloudwalk_handshake (1.14.0)
22
22
  funky-simplehttp (~> 0.6)
23
- funky-emv (1.3.0)
23
+ funky-emv (1.4.1)
24
24
  funky-tlv (~> 0.2)
25
25
  funky-mock (0.1.0)
26
26
  funky-simplehttp (0.6.0)
27
27
  funky-tlv (0.2.3)
28
28
  io-like (0.3.1)
29
- parallel (1.19.1)
30
- parser (2.7.1.3)
31
- ast (~> 2.4.0)
29
+ parallel (1.19.2)
30
+ parser (2.7.1.4)
31
+ ast (~> 2.4.1)
32
32
  posxml_parser (2.26.0)
33
33
  funky-emv (~> 1)
34
34
  rainbow (3.0.0)
35
35
  rake (13.0.1)
36
36
  regexp_parser (1.7.1)
37
37
  rexml (3.2.4)
38
- rubocop (0.85.1)
38
+ rubocop (0.86.0)
39
39
  parallel (~> 1.10)
40
40
  parser (>= 2.7.0.1)
41
41
  rainbow (>= 2.2.2, < 4.0)
42
42
  regexp_parser (>= 1.7)
43
43
  rexml
44
- rubocop-ast (>= 0.0.3)
44
+ rubocop-ast (>= 0.0.3, < 1.0)
45
45
  ruby-progressbar (~> 1.7)
46
46
  unicode-display_width (>= 1.4.0, < 2.0)
47
47
  rubocop-ast (0.0.3)
@@ -1,5 +1,32 @@
1
1
  # DaFunk
2
2
 
3
+ ### 3.24.0 - 2020-07-25
4
+
5
+ - Added Device::Signature class;
6
+ - Added support of converting signature after updating params.dat;
7
+ - Added support to network state on status bar;
8
+ - Added support to physical number keys on virtual keyboard.
9
+
10
+ ### 3.23.0 - 2020-06-22
11
+
12
+ - Remove ThreadPubSub publication before attach;
13
+ - Update funky-emv (1.4.1).
14
+
15
+ ### 3.22.0 - 2020-06-18
16
+
17
+ - Update libs:
18
+ - cloudwalk_handshake (1.14.0)
19
+ - funky-emv (1.4.0)
20
+
21
+ ### 3.21.2 - 2020-06-16
22
+
23
+ - Fixed timeout return on DaFunK::Helper#menu, it should return Device::IO::KEY_TIMEOUT not options[:timeout];
24
+ - Set cloudwalk endpoint as default.
25
+
26
+ ### 3.21.1 - 2020-06-16
27
+
28
+ - Fix error when timeout on DaFunk::menu_image_touchscreen_or_keyboard.
29
+
3
30
  ### 3.21.0 - 2020-06-12
4
31
 
5
32
  - Removed unnecessary processing method call;
data/Rakefile CHANGED
@@ -69,7 +69,8 @@ FILES = FileList[
69
69
  "lib/device/support.rb",
70
70
  "lib/device/system.rb",
71
71
  "lib/device/magnetic.rb",
72
- "lib/device/virtual_keyboard.rb"
72
+ "lib/device/virtual_keyboard.rb",
73
+ "lib/device/signature.rb"
73
74
  ]
74
75
 
75
76
  DaFunk::RakeTask.new do |t|
@@ -179,7 +179,7 @@ module DaFunk
179
179
  # menu_image_touchscreen_or_keyboard('image.bmp', menu_itens, options)
180
180
  #
181
181
  # @return menu_item_index selected will be returned
182
- # @return if timeout nil will be returned
182
+ # @return if timeout Device::IO::KEY_TIMEOUT will be returned
183
183
  def menu_image_touchscreen_or_keyboard(path, menu_itens, options = {})
184
184
  return nil if menu_itens.empty?
185
185
 
@@ -205,6 +205,8 @@ module DaFunk
205
205
  end
206
206
  elsif event == :touchscreen
207
207
  menu_itens.select {|k, v| k == key}.shift[0]
208
+ elsif event == :timeout
209
+ Device::IO::KEY_TIMEOUT
208
210
  end
209
211
  end
210
212
 
@@ -274,7 +276,7 @@ module DaFunk
274
276
  # }
275
277
  #
276
278
  # menu("Option menu", selection, options)
277
- #
279
+ # @return nil if user canceled or Device::IO::KEY_TIMEOUT if timeout or option selected
278
280
  def menu(title, selection, options = {})
279
281
  return nil if selection.empty?
280
282
  options[:number] = true if options[:number].nil?
@@ -297,7 +299,7 @@ module DaFunk
297
299
  if key == Device::IO::ENTER
298
300
  options[:default]
299
301
  elsif key == Device::IO::KEY_TIMEOUT
300
- options[:timeout]
302
+ Device::IO::KEY_TIMEOUT
301
303
  else
302
304
  selected
303
305
  end
@@ -305,7 +307,7 @@ module DaFunk
305
307
 
306
308
  # TODO Scalone: Refactor.
307
309
  def pagination(title, options, collection, &block)
308
- timeout = Device::IO.timeout
310
+ timeout = options[:timeout].nil? ? options[:timeout] : Device::IO.timeout
309
311
  touchscreen_options = {}
310
312
  start_line, options[:limit], options[:header] = pagination_limit(title, options)
311
313
 
@@ -7,6 +7,20 @@ module DaFunk
7
7
  SLOT_UPDATE = 2
8
8
  SLOT_BATTERY_PERCENTUAL = 6
9
9
  SLOT_BATTERY_LEVEL = 7
10
+ SLOT_MESSAGE_CONNECTION = {
11
+ true => {
12
+ :slot1 => 2,
13
+ :slot2 => 3,
14
+ :message1 => './shared/conectado_01.png',
15
+ :message2 => './shared/conectado_02.png'
16
+ },
17
+ false => {
18
+ :slot1 => 2,
19
+ :slot2 => 3,
20
+ :message1 => './shared/buscando_01.png',
21
+ :message2 => './shared/buscando_02.png'
22
+ }
23
+ }
10
24
 
11
25
  BATTERY_IMAGES = {
12
26
  0..4 => "./shared/battery0.png",
@@ -61,7 +75,7 @@ module DaFunk
61
75
  }
62
76
 
63
77
  class << self
64
- attr_accessor :signal, :battery, :power, :managment
78
+ attr_accessor :signal, :battery, :power, :managment, :connected
65
79
  end
66
80
 
67
81
  def self.check
@@ -75,8 +89,26 @@ module DaFunk
75
89
  def self.change_update
76
90
  if File.exists?('./shared/system_update')
77
91
  PAX::Display.print_status_bar(SLOT_UPDATE, "./shared/system_update_download.png")
92
+ PAX::Display.print_status_bar(3, nil)
78
93
  else
79
- PAX::Display.print_status_bar(SLOT_UPDATE, nil)
94
+ change_message
95
+ end
96
+ end
97
+
98
+ def self.change_message
99
+ connected = Device::Network.connected?
100
+
101
+ if connected != self.connected
102
+ self.connected = connected
103
+
104
+ slot_message_1 = SLOT_MESSAGE_CONNECTION[self.connected][:slot1]
105
+ slot_message_2 = SLOT_MESSAGE_CONNECTION[self.connected][:slot2]
106
+
107
+ message_1 = SLOT_MESSAGE_CONNECTION[self.connected][:message1]
108
+ message_2 = SLOT_MESSAGE_CONNECTION[self.connected][:message2]
109
+
110
+ Device::Display.print_status_bar(slot_message_1, message_1)
111
+ Device::Display.print_status_bar(slot_message_2, message_2)
80
112
  end
81
113
  end
82
114
 
@@ -83,6 +83,8 @@ module DaFunk
83
83
  # After: "1 - App,pc2_app.zip,ruby,E0A0;"
84
84
  def self.parse
85
85
  return unless self.setup
86
+
87
+ Device::Signature.convert
86
88
  parse_apps
87
89
  parse_files
88
90
 
@@ -1,4 +1,4 @@
1
1
  module DaFunk
2
- VERSION="3.21.0"
2
+ VERSION="3.24.0"
3
3
  end
4
4
 
@@ -191,7 +191,6 @@ class Device
191
191
 
192
192
  def self.attach(options = nil)
193
193
  Device::Network.connected?
194
- Context::ThreadPubSub.publish('communication_update')
195
194
  if self.code != SUCCESS
196
195
  ThreadScheduler.pausing_communication do
197
196
  self.code = Device::Network.init(*self.config)
@@ -62,8 +62,8 @@ class Device
62
62
  "payment_channel_date" => "",
63
63
  "infinitepay_authorizer" => "0",
64
64
  "infinitepay_api" => "0",
65
- "infinitepay_cw_endpoint" => "0",
66
- "infinitepay_google_endpoint" => "1",
65
+ "infinitepay_cw_endpoint" => "1",
66
+ "infinitepay_google_endpoint" => "0",
67
67
  "transaction_http_enabled" => "1",
68
68
  "transaction_http_host" => HTTP_HOST_PRODUCTION,
69
69
  "transaction_http_port" => HTTP_PORT,
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Device
4
+ class Signature
5
+ FILE = './shared/device.sig'
6
+
7
+ CONVERTED = 1
8
+ FILE_NOT_FOUND = 2
9
+ IS_THE_SAME = 3
10
+
11
+ def self.convert
12
+ load
13
+ return FILE_NOT_FOUND unless @file
14
+
15
+ if must_convert?
16
+ @file.update_attributes({ 'signer' => DaFunk::ParamsDat.file['signer'] })
17
+ return CONVERTED
18
+ end
19
+ IS_THE_SAME
20
+ end
21
+
22
+ def self.must_convert?
23
+ DaFunk::ParamsDat.file['signer'] && DaFunk::ParamsDat.file['signer'] != @file['signer']
24
+ end
25
+
26
+ def self.load
27
+ @file = FileDb.new FILE
28
+ end
29
+ end
30
+ end
@@ -114,6 +114,7 @@ class Device
114
114
  }
115
115
 
116
116
  def self.type_text(params = {})
117
+ phisical_keys = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', "\017"]
117
118
  change_keyboard
118
119
  Device::Display.print_line("#{self.text}", params[:line], params[:column])
119
120
  time = Time.now + (params[:timeout] || Device::IO.timeout) / 1000
@@ -129,6 +130,13 @@ class Device
129
130
  break(Device::IO::KEY_TIMEOUT) if Time.now > time
130
131
 
131
132
  key = getc(100)
133
+ if phisical_keys.include?(key)
134
+ if key == Device::IO::BACK
135
+ show_text({char: :erase}, params)
136
+ else
137
+ show_text({char: key}, params)
138
+ end
139
+ end
132
140
  end
133
141
  end
134
142
 
@@ -0,0 +1,24 @@
1
+ require 'funky-mock'
2
+
3
+ class SignatureTest < DaFunk::Test.case
4
+ def test_signature_should_be_updated
5
+ FileDb.new(Device::Signature::FILE).update_attributes({'signer' => 'whatever'})
6
+ DaFunk::ParamsDat.file = {'signer' => 'thebestsignature'}
7
+
8
+ assert_equal Device::Signature::CONVERTED, Device::Signature.convert
9
+ end
10
+
11
+ def test_signature_file_not_found
12
+ FunkyMock::Mock.new
13
+ Device::Signature.stubs(:load).returns(nil)
14
+
15
+ assert_equal Device::Signature::FILE_NOT_FOUND, Device::Signature.convert
16
+ end
17
+
18
+ def test_signature_is_the_same
19
+ FileDb.new(Device::Signature::FILE).update_attributes({'signer' => 'whatever'})
20
+ DaFunk::ParamsDat.file = {'signer' => 'whatever'}
21
+
22
+ assert_equal Device::Signature::IS_THE_SAME, Device::Signature.convert
23
+ end
24
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: da_funk
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.21.0
4
+ version: 3.24.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thiago Scalone
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-12 00:00:00.000000000 Z
11
+ date: 2020-07-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -189,6 +189,7 @@ files:
189
189
  - lib/device/printer.rb
190
190
  - lib/device/runtime.rb
191
191
  - lib/device/setting.rb
192
+ - lib/device/signature.rb
192
193
  - lib/device/support.rb
193
194
  - lib/device/system.rb
194
195
  - lib/device/version.rb
@@ -227,6 +228,7 @@ files:
227
228
  - test/unit/device/io_test.rb
228
229
  - test/unit/device/notification_callback_test.rb
229
230
  - test/unit/device/notification_event_test.rb
231
+ - test/unit/device/signature_test.rb
230
232
  - test/unit/ext/float_test.rb
231
233
  - test/unit/ext/string_test.rb
232
234
  - test/unit/file_db_test.rb
@@ -275,6 +277,7 @@ test_files:
275
277
  - test/unit/device/io_test.rb
276
278
  - test/unit/device/notification_callback_test.rb
277
279
  - test/unit/device/notification_event_test.rb
280
+ - test/unit/device/signature_test.rb
278
281
  - test/unit/ext/float_test.rb
279
282
  - test/unit/ext/string_test.rb
280
283
  - test/unit/file_db_test.rb