da_funk 3.28.0 → 3.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 489f56230d69c2a02818b0e7ca0b33e9a5c425281c79def3a8c5c2361f213c95
4
- data.tar.gz: e135956873a9b50834d1672409fa9a3366647348b1da50859285a5c2289eff6a
3
+ metadata.gz: 58cb59f7b97099d4e94b66bdf46f9cfc7e4f39893cf88b56b23b352476f3bb2f
4
+ data.tar.gz: 2c81b4d5a3226c0c5d3cc25176625183f5a3766bea7a120b134604bfb030dc16
5
5
  SHA512:
6
- metadata.gz: 26fa00576ee5e90f59da9391bd13eaaf46cad4aa513d2d679f8e1de23d4190ba269c734a40b443ee954360436932f66d1a6ac691e5de72d2c58c838a50108f72
7
- data.tar.gz: 1c5de9a5fd5da14b6ee2c2d92a5af01f8227ff5e17bd4129fe4d6fecebbded54a9553502a17115e75c1237f8574f147f3d0aad7653ee7b8718e85e4d95a98c02
6
+ metadata.gz: dcea670e59016cb7b6a6b297239130ee3a9ff372a94acc8edd4f31a623a6db842f9a43d3cf92ff8253eb77108055ad213d82f12645f572f40548968d435ec7ec
7
+ data.tar.gz: bde518c1731e7ae15d864f87f423d518672ea856251263092f408875c8c6d8c4acc52f023015c90edbb9cc917b15243539e37c7f7f093684837718c8accac798
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- da_funk (3.28.0)
4
+ da_funk (3.30.0)
5
5
  archive-zip (~> 0.5)
6
6
  bundler
7
7
  cloudwalk_handshake
@@ -18,7 +18,7 @@ GEM
18
18
  cloudwalk (1.15.0)
19
19
  bundler
20
20
  rake
21
- cloudwalk_handshake (1.20.0)
21
+ cloudwalk_handshake (1.21.3)
22
22
  funky-simplehttp (~> 0.6)
23
23
  funky-emv (1.4.1)
24
24
  funky-tlv (~> 0.2)
@@ -27,25 +27,25 @@ GEM
27
27
  funky-tlv (0.2.3)
28
28
  io-like (0.3.1)
29
29
  parallel (1.19.2)
30
- parser (2.7.1.4)
30
+ parser (2.7.2.0)
31
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
- regexp_parser (1.7.1)
36
+ regexp_parser (1.8.2)
37
37
  rexml (3.2.4)
38
- rubocop (0.90.0)
38
+ rubocop (1.1.0)
39
39
  parallel (~> 1.10)
40
- parser (>= 2.7.1.1)
40
+ parser (>= 2.7.1.5)
41
41
  rainbow (>= 2.2.2, < 4.0)
42
- regexp_parser (>= 1.7)
42
+ regexp_parser (>= 1.8)
43
43
  rexml
44
- rubocop-ast (>= 0.3.0, < 1.0)
44
+ rubocop-ast (>= 1.0.1)
45
45
  ruby-progressbar (~> 1.7)
46
46
  unicode-display_width (>= 1.4.0, < 2.0)
47
- rubocop-ast (0.4.0)
48
- parser (>= 2.7.1.4)
47
+ rubocop-ast (1.1.0)
48
+ parser (>= 2.7.1.5)
49
49
  ruby-progressbar (1.10.1)
50
50
  unicode-display_width (1.7.0)
51
51
  yard (0.9.25)
@@ -1,5 +1,32 @@
1
1
  # DaFunk
2
2
 
3
+ ### 3.30.0 - 2020-11-16
4
+
5
+ - Replace GPRS icon to 3G;
6
+ - Added new method main_image_format on Device::Display;
7
+ - Use main_image_format method to get the image name instead adapter;
8
+ - Added new class DaFunk::Transaction::Reversal.
9
+
10
+ ### 3.29.1 - 2020-11-04
11
+
12
+ - Fix battery charging status. When power supply is connected the SDK always returns 50% of battery, in this case it won't show the percentage until the SDK returns 100%.
13
+
14
+ ### 3.29.0 - 2020-11-03
15
+
16
+ - Added support to Ruby SecureRandom;
17
+ - Update cloudwalk_handshake (1.21.3).
18
+
19
+ ### 3.28.2 - 2020-10-07
20
+
21
+ - Added support of params.dat file restore if it was corrupted;
22
+ - Wait 3 seconds before restart after main update;
23
+ - Fixed method_missing exception;
24
+
25
+ ### 3.28.1 - 2020-09-26
26
+
27
+ - Close socket in case of ssl exceptions;
28
+ - Do not assign nil to PaymentChannel#current and client on error because this is already being done on PaymentChannel#close.
29
+
3
30
  ### 3.28.0 - 2020-09-25
4
31
 
5
32
  - Check if system update file is present after device restart in order to continue with system update process;
data/Rakefile CHANGED
@@ -53,9 +53,11 @@ FILES = FileList[
53
53
  "lib/da_funk/application.rb",
54
54
  "lib/da_funk/transaction/iso.rb",
55
55
  "lib/da_funk/transaction/download.rb",
56
+ "lib/da_funk/transaction/reversal.rb",
56
57
  "lib/da_funk/notification_event.rb",
57
58
  "lib/da_funk/notification_callback.rb",
58
59
  "lib/da_funk/notification.rb",
60
+ "lib/da_funk/secure_random.rb",
59
61
 
60
62
  "lib/device.rb",
61
63
  "lib/device/audio.rb",
@@ -123,7 +123,7 @@ module DaFunk
123
123
  self.signal = sig
124
124
 
125
125
  if Device::Network.gprs?
126
- Device::Display.print_status_bar(SLOT_MEDIA, "./shared/GPRS.png")
126
+ Device::Display.print_status_bar(SLOT_MEDIA, "./shared/3G.png")
127
127
  Device::Display.print_status_bar(SLOT_SIGNAL_LEVEL,
128
128
  get_image_path(:gprs, self.signal))
129
129
  elsif Device::Network.wifi?
@@ -146,8 +146,13 @@ module DaFunk
146
146
  self.battery = bat
147
147
  self.power = dock
148
148
 
149
- Device::Display.print_status_bar(SLOT_BATTERY_PERCENTUAL,
150
- get_image_path(:battery_percentual, self.battery))
149
+ if self.power && self.battery == 50
150
+ Device::Display.print_status_bar(SLOT_BATTERY_PERCENTUAL, nil)
151
+ else
152
+ percentual = get_image_path(:battery_percentual, self.battery)
153
+ Device::Display.print_status_bar(SLOT_BATTERY_PERCENTUAL, percentual)
154
+ end
155
+
151
156
  if self.power
152
157
  Device::Display.print_status_bar(
153
158
  SLOT_BATTERY_LEVEL, get_image_path(:battery_charge, self.battery))
@@ -5,7 +5,7 @@ module DaFunk
5
5
  include DaFunk::Helper
6
6
 
7
7
  class << self
8
- attr_accessor :file, :apps, :valid, :files
8
+ attr_accessor :file, :apps, :valid, :files, :checksum
9
9
  end
10
10
 
11
11
  self.apps = Array.new
@@ -20,9 +20,19 @@ module DaFunk
20
20
  end
21
21
 
22
22
  def self.setup
23
+ @checksum = calculate_checksum
23
24
  @file = FileDb.new(FILE_NAME)
24
25
  end
25
26
 
27
+ def self.calculate_checksum
28
+ Device::Crypto.crc16_hex(File.read(FILE_NAME)) if exists?
29
+ end
30
+
31
+ def self.corrupted?
32
+ return true unless exists?
33
+ @checksum != calculate_checksum
34
+ end
35
+
26
36
  def self.exists?
27
37
  File.exists?(FILE_NAME)
28
38
  end
@@ -153,6 +163,7 @@ module DaFunk
153
163
  Device::Display.clear
154
164
  if File.exists?('./shared/init_reboot.bmp')
155
165
  Device::Display.print_bitmap('./shared/init_reboot.bmp')
166
+ getc(3000)
156
167
  else
157
168
  I18n.pt(:admin_main_update_message)
158
169
  3.times do |i|
@@ -231,8 +231,7 @@ module DaFunk
231
231
  if Context.development?
232
232
  ContextLog.exception(exception, exception.backtrace, "PaymentChannel error")
233
233
  end
234
- PaymentChannel.current = nil
235
- @client = nil
234
+ self.close
236
235
  end
237
236
 
238
237
  def handshake
@@ -0,0 +1,17 @@
1
+ module DaFunk
2
+ class SecureRandom
3
+ CHARS = [('a'..'z'), ('A'..'Z')].map(&:to_a).flatten
4
+
5
+ def self.random_bytes(n = nil)
6
+ n = n ? n.to_int : 16
7
+ (0...n).map { CHARS[rand(CHARS.length)] }.join
8
+ end
9
+
10
+ def self.uuid
11
+ bytes = random_bytes.unpack('NnnnnN')
12
+ bytes[2] = (bytes[2] & 0x0fff) | 0x4000
13
+ bytes[3] = (bytes[3] & 0x3fff) | 0x8000
14
+ "%08x-%04x-%04x-%04x-%04x%08x" % bytes
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,13 @@
1
+ module DaFunk
2
+ class Transaction
3
+ class Reversal
4
+ def self.filename
5
+ DaFunk::ParamsDat.file['reversal_file_name'] || 'cw_reversal_transact.dat'
6
+ end
7
+
8
+ def self.exists?
9
+ File.exists? "./shared/#{filename}"
10
+ end
11
+ end
12
+ end
13
+ end
@@ -1,4 +1,4 @@
1
1
  module DaFunk
2
- VERSION="3.28.0"
2
+ VERSION="3.30.0"
3
3
  end
4
4
 
@@ -71,13 +71,22 @@ class Device
71
71
  end
72
72
 
73
73
  def self.main_image
74
- if adapter.respond_to?(:main_image) &&
75
- File.exists?("./shared/#{adapter.main_image}")
76
- adapter.main_image
74
+ file = main_image_format
75
+ if File.exists?("./shared/#{file}")
76
+ file
77
77
  else
78
78
  MAIN_BMP
79
79
  end
80
80
  end
81
+
82
+ private
83
+ def self.main_image_format
84
+ if DaFunk::Transaction::Reversal.exists?
85
+ "main_#{Device::System.model}_reversal.bmp"
86
+ else
87
+ "main_#{Device::System.model}.bmp"
88
+ end
89
+ end
81
90
  end
82
91
  end
83
92
 
@@ -152,16 +152,16 @@ class Device
152
152
 
153
153
  # Custom Attributes
154
154
  def self.tcp_recv_timeout
155
- DaFunk::ParamsDat.file["tcp_recv_timeout"] || method_missing(:tcp_recv_timeout)
155
+ DaFunk::ParamsDat.file["tcp_recv_timeout"] || @file&.dig("tcp_recv_timeout")
156
156
  end
157
157
 
158
158
  def self.attach_gprs_timeout
159
- value = (DaFunk::ParamsDat.file["attach_gprs_timeout"] || method_missing(:attach_gprs_timeout))
159
+ value = (DaFunk::ParamsDat.file["attach_gprs_timeout"] || @file&.dig("attach_gprs_timeout"))
160
160
  value.to_s.empty? ? nil : value.to_s.to_i
161
161
  end
162
162
 
163
163
  def self.heartbeat
164
- DaFunk::ParamsDat.file["heartbeat"] || method_missing(:heartbeat)
164
+ DaFunk::ParamsDat.file["heartbeat"] || @file&.dig("heartbeat")
165
165
  end
166
166
 
167
167
  def self.logical_number
@@ -0,0 +1,18 @@
1
+ class SecureRandomTest < DaFunk::Test.case
2
+ def setup
3
+ @uuid = DaFunk::SecureRandom.uuid
4
+ @random_bytes = DaFunk::SecureRandom.random_bytes
5
+ end
6
+
7
+ def test_uuid
8
+ assert_equal(36, @uuid.size)
9
+
10
+ # Check time_hi_and_version and clock_seq_hi_res bits (RFC 4122 4.4)
11
+ assert_equal('4', @uuid[14])
12
+ assert_include(%w'8 9 a b', @uuid[19])
13
+ end
14
+
15
+ def test_random_bytes
16
+ assert_equal(16, @random_bytes.size)
17
+ end
18
+ 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.28.0
4
+ version: 3.30.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-09-25 00:00:00.000000000 Z
11
+ date: 2020-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -174,10 +174,12 @@ files:
174
174
  - lib/da_funk/rake_task.rb
175
175
  - lib/da_funk/screen.rb
176
176
  - lib/da_funk/screen_flow.rb
177
+ - lib/da_funk/secure_random.rb
177
178
  - lib/da_funk/struct.rb
178
179
  - lib/da_funk/test.rb
179
180
  - lib/da_funk/transaction/download.rb
180
181
  - lib/da_funk/transaction/iso.rb
182
+ - lib/da_funk/transaction/reversal.rb
181
183
  - lib/da_funk/version.rb
182
184
  - lib/device.rb
183
185
  - lib/device/audio.rb
@@ -220,6 +222,7 @@ files:
220
222
  - test/resources/shared/bitmap_gp.dat
221
223
  - test/test_helper.rb
222
224
  - test/unit/da_funk/event_listener_test.rb
225
+ - test/unit/da_funk/secure_random.rb
223
226
  - test/unit/da_funk/struct_test.rb
224
227
  - test/unit/da_funk/support_test.rb
225
228
  - test/unit/device/application_test.rb
@@ -269,6 +272,7 @@ test_files:
269
272
  - test/resources/shared/bitmap_gp.dat
270
273
  - test/test_helper.rb
271
274
  - test/unit/da_funk/event_listener_test.rb
275
+ - test/unit/da_funk/secure_random.rb
272
276
  - test/unit/da_funk/struct_test.rb
273
277
  - test/unit/da_funk/support_test.rb
274
278
  - test/unit/device/application_test.rb