tgios 0.0.31 → 0.0.32

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YzIxYjJkYTlhNTdkYjI1OTY1NjQ2ZDM0ZGExZjk5MzJjYWE3MjdiMQ==
4
+ MTIyZTg3OTJiZWI1MWYzOTU3MWJjZjJlN2IwYmE4NmNjYTlhNGJjYQ==
5
5
  data.tar.gz: !binary |-
6
- M2Q0ODZjYjkzYzczN2ZkNDEwYjQ2ZWZmM2RmYTMyZmIzOTM5ZDk1YQ==
6
+ YzQ4ZjUzYzBiZjU5NGI1Y2QwNWIwMmJhNGIzM2JmN2NjMzg2YmQ2ZQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NGY4YTZkODE2Mzg3MDAyODIxOTY5OGEzZjQ0NzNiNjQ5NDhiNDkyZTkzMzQx
10
- MzcwZThhY2VkYmZhZGMxMGNlMjMxZmFmMGNjZGUyZDQ2NGZjNzZhZWQ5MWIx
11
- Y2JmYjdjZjM4YjVkM2VhNmFmM2FlMGE1NzlmMDhjZjg5Y2E3MTE=
9
+ NTUzNTQ4YmQ3NGQwYjMyNzU5ZDg5ZjZkZDRmMzI5NzYzZTY4ZTI1Y2UxMjQ3
10
+ Mjk4MDhkMTExODI2OTA4OWI2M2I3MjJjZmFiODJkNjE2Y2QyMzIzYjA5MDc0
11
+ OTc0YmE1MmExZjIxMTRmNDhjMTRmZmNjYjRmMTM2YzJlYWEzNDg=
12
12
  data.tar.gz: !binary |-
13
- MTM3NzQ4NzYyOTI1MjU0MmM1NzA2OWZhZGE1ODA4M2Y1M2I3YTMyYmJiZDUx
14
- NDYyYThlM2VkMWE5Y2JlNmE5MzU1OTJhNWYyZWFlZTQ4ZmVlM2IzNjA1Y2E2
15
- NTFkZDBmYjkxNWQyODgxMjdjYjZjYTAwOWIyYTc5NTBjY2QyYjM=
13
+ ZGI4NTM5Yzk1NjQyOWMyYjBkMWZiNjE3YTVjZTA1ZmI4MDZlMWI1Zjc5ZDE3
14
+ NmZmMTNkMmMwMGYzZWY3ZTc0OGRkODZkYWRlNWNjMmVhZjgxMmQ2YjYzMWJl
15
+ MjY1ZWYwNDMwYjgzMzE1ODRiN2E5YzZlN2ZjYzQ2ZDQ0YWIxODk=
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- tgios (0.0.31)
4
+ tgios (0.0.32)
5
5
  awesome_print_motion
6
6
  motion-layout
7
7
  plastic_cup (>= 0.1.1)
@@ -0,0 +1,154 @@
1
+ module Tgios
2
+ class ScanQrController < UIViewController
3
+ def viewDidLoad
4
+ super
5
+ self.view.backgroundColor = :dark_gray.uicolor
6
+ @load_view = Tgios::LoadingView.add_loading_view_to(self.view)
7
+ @load_view.start_loading
8
+ if Device.simulator?
9
+ self.performSelector('fake_scan', withObject: nil, afterDelay: 3)
10
+ else
11
+ self.performSelector('startScanning', withObject: nil, afterDelay: 0.5)
12
+ end
13
+
14
+ end
15
+
16
+ def startScanning
17
+ @load_view.stop_loading
18
+ setupCapture
19
+ end
20
+
21
+ def setupCapture
22
+ #NSLog "setCapture()"
23
+
24
+ @session = AVCaptureSession.alloc.init
25
+ @session.sessionPreset = AVCaptureSessionPresetHigh
26
+
27
+ @device = AVCaptureDevice.defaultDeviceWithMediaType AVMediaTypeVideo
28
+ @error = Pointer.new('@')
29
+ @input = AVCaptureDeviceInput.deviceInputWithDevice @device, error: @error
30
+
31
+ @previewLayer = AVCaptureVideoPreviewLayer.alloc.initWithSession(@session)
32
+ @previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
33
+ layerRect = self.view.layer.bounds
34
+ @previewLayer.bounds = layerRect
35
+ @previewLayer.setPosition(CGPointMake(CGRectGetMidX(layerRect), CGRectGetMidY(layerRect)))
36
+ self.view.layer.addSublayer(@previewLayer)
37
+
38
+ @queue = Dispatch::Queue.new('camQueue')
39
+ @output = AVCaptureMetadataOutput.alloc.init
40
+ @output.setMetadataObjectsDelegate self, queue: @queue.dispatch_object
41
+
42
+ @session.addInput @input
43
+ @session.addOutput @output
44
+ @output.metadataObjectTypes = [ AVMetadataObjectTypeQRCode ]
45
+
46
+ @isScanning = true
47
+
48
+ @session.startRunning
49
+ #NSLog "session running: #{@session.running?}"
50
+
51
+
52
+
53
+ camera_size = layerRect.size
54
+ sq_size = 240
55
+ sq_border = 20
56
+ line_length = 60
57
+ sq_x = (camera_size.width - sq_size) / 2
58
+ sq_y = (camera_size.height - sq_size) / 2
59
+ v_height = sq_size - sq_border * 2
60
+ border_color = :white.cgcolor(0.8)
61
+
62
+ square = Base.style(CALayer.layer, {frame: [[sq_x, sq_y],[sq_size, sq_size]]})
63
+
64
+ top_left = Base.style(CALayer.layer, frame: [[0, 0], [line_length, sq_border]], backgroundColor: border_color)
65
+ top_right = Base.style(CALayer.layer, frame: [[sq_size-line_length, 0], [line_length, sq_border]], backgroundColor: border_color)
66
+ left_top = Base.style(CALayer.layer, frame: [[0, sq_border], [sq_border, line_length - sq_border]], backgroundColor: border_color)
67
+ right_top = Base.style(CALayer.layer, frame: [[sq_size - sq_border, sq_border], [sq_border, line_length - sq_border]], backgroundColor: border_color)
68
+ left_bottom = Base.style(CALayer.layer, frame: [[0, sq_size - line_length], [sq_border, line_length - sq_border]], backgroundColor: border_color)
69
+ right_bottom = Base.style(CALayer.layer, frame: [[sq_size - sq_border, sq_size - line_length], [sq_border, line_length - sq_border]], backgroundColor: border_color)
70
+ bottom_left = Base.style(CALayer.layer, frame: [[0, sq_size - sq_border], [line_length, sq_border]], backgroundColor: border_color)
71
+ bottom_right = Base.style(CALayer.layer, frame: [[sq_size-line_length, sq_size - sq_border], [line_length, sq_border]], backgroundColor: border_color)
72
+
73
+ square.addSublayer top_left
74
+ square.addSublayer top_right
75
+ square.addSublayer left_top
76
+ square.addSublayer right_top
77
+ square.addSublayer left_bottom
78
+ square.addSublayer right_bottom
79
+ square.addSublayer bottom_left
80
+ square.addSublayer bottom_right
81
+
82
+ self.view.layer.addSublayer square
83
+
84
+ true
85
+ end
86
+
87
+ def captureOutput(captureOutput, didOutputMetadataObjects: metadataObjects, fromConnection: connection)
88
+
89
+ metadataObject = metadataObjects[0]
90
+
91
+ if !@scanned && metadataObject.present? && metadataObject.type == AVMetadataObjectTypeQRCode
92
+ @scanned = true
93
+ #NSLog "#{metadataObjects[0].stringValue}"
94
+
95
+
96
+ self.performSelectorOnMainThread('openQRCode:', withObject: metadataObject.stringValue, waitUntilDone: false)
97
+ end
98
+ end
99
+
100
+ def openQRCode(result)
101
+ #NSLog "openQRCode()"
102
+
103
+ stop_scanning
104
+
105
+ @events[:result_scanned].call(result)
106
+ self.dismissViewControllerAnimated(true, completion: nil)
107
+ end
108
+
109
+ def stop_scanning
110
+
111
+ NSObject.cancelPreviousPerformRequestsWithTarget(self)
112
+
113
+ if @isScanning
114
+ @isScanning = false
115
+
116
+ @session.stopRunning
117
+ #NSLog "session running: #{@session.running?}"
118
+
119
+ @previewLayer.removeFromSuperlayer
120
+ @previewLayer = nil
121
+
122
+ @session = nil
123
+ end
124
+ self.navigationItem.leftBarButtonItem = nil
125
+ end
126
+
127
+ def fake_scan
128
+ @load_view.stop_loading
129
+ @isScanning = false
130
+ @events[:fake_result].call do |result|
131
+ fake_result = result
132
+ end unless @events[:fake_result].nil?
133
+ fake_result ||= "#{rand(100)+1}"
134
+ openQRCode(fake_result)
135
+ end
136
+
137
+ def on(event, &block)
138
+ @events[event] = block.weak!
139
+ self
140
+ end
141
+
142
+ def init
143
+ super
144
+ @events={}
145
+ self
146
+ end
147
+
148
+ def dealloc
149
+ ap "#{self.class.name} dealloc"
150
+ super
151
+ end
152
+
153
+ end
154
+ end
@@ -28,7 +28,7 @@ module Tgios
28
28
 
29
29
  @field_name=field_name
30
30
  @options=options.dup
31
- %w(precision keyboard ignore_number_addon type auto_correct auto_capitalize reduce_font_size field_style).each do |k|
31
+ %w(precision keyboard ignore_number_addon type auto_correct auto_capitalize reduce_font_size max_length field_style).each do |k|
32
32
  instance_variable_set("@#{k}", @options.delete(k.to_sym))
33
33
  end
34
34
 
@@ -117,6 +117,17 @@ module Tgios
117
117
  end
118
118
  end
119
119
 
120
+
121
+ def textField(textField, shouldChangeCharactersInRange:range, replacementString:string)
122
+ unless @max_length.is_a?(Numeric)
123
+ return true
124
+ end
125
+
126
+ new_length = textField.text.length - range.length + string.length
127
+
128
+ return new_length <= @max_length || string.include?("\n")
129
+ end
130
+
120
131
  def keyboardDidShow(note)
121
132
  add_decimal_button if @ui_field.isFirstResponder
122
133
  end
data/lib/tgios/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Tgios
2
- VERSION = '0.0.31'
2
+ VERSION = '0.0.32'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tgios
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.31
4
+ version: 0.0.32
5
5
  platform: ruby
6
6
  authors:
7
7
  - April Tsang
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-08-22 00:00:00.000000000 Z
12
+ date: 2014-09-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sugarcube
@@ -100,6 +100,7 @@ files:
100
100
  - lib/tgios/photo_controller.rb
101
101
  - lib/tgios/photo_scroll_view.rb
102
102
  - lib/tgios/photo_upload.rb
103
+ - lib/tgios/scan_qr_controller.rb
103
104
  - lib/tgios/search_controller.rb
104
105
  - lib/tgios/ui_button_binding.rb
105
106
  - lib/tgios/ui_collection_view_binding.rb