rhodes 3.3.3.beta.1 → 3.3.3.beta.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (146) hide show
  1. data/CHANGELOG +3 -0
  2. data/Manifest.txt +23 -9
  3. data/Rakefile +13 -2
  4. data/doc/build.txt +18 -11
  5. data/doc/device-caps.txt +4 -68
  6. data/doc/rhom.txt +33 -0
  7. data/doc/test-log-debug.txt +18 -42
  8. data/lib/framework/rho/render.rb +1 -1
  9. data/lib/framework/rho/rho.rb +31 -1
  10. data/lib/framework/rho/rhocontroller.rb +2 -2
  11. data/lib/framework/rhodes.rb +1 -1
  12. data/lib/framework/rhoframework.rb +4 -0
  13. data/lib/framework/rholang/localization_simplified.rb +1 -1
  14. data/lib/framework/rhom/rhom_object_factory.rb +22 -1
  15. data/lib/framework/version.rb +1 -1
  16. data/lib/rhodes.rb +1 -1
  17. data/platform/android/Rhodes/AndroidManifest.xml +2 -2
  18. data/platform/android/Rhodes/jni/include/rhodes/jni/com_rhomobile_rhodes_RhodesService.h +25 -9
  19. data/platform/android/Rhodes/jni/include/rhodes/jni/com_rhomobile_rhodes_extmanager_RhoExtManagerImpl.h +21 -0
  20. data/platform/android/Rhodes/jni/src/extmanager.cpp +36 -0
  21. data/platform/android/Rhodes/jni/src/nativeview.cpp +1 -1
  22. data/platform/android/Rhodes/jni/src/rhodesapp.cpp +14 -5
  23. data/platform/android/Rhodes/jni/src/rhodessystem.cpp +5 -0
  24. data/platform/android/Rhodes/jni/src/signature.cpp +29 -3
  25. data/platform/android/Rhodes/src/com/rhomobile/rhodes/NativeBar.java +3 -3
  26. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesActivity.java +4 -0
  27. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java +42 -7
  28. data/platform/android/Rhodes/src/com/rhomobile/rhodes/WebView.java +61 -10
  29. data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/IRhoExtData.java +6 -0
  30. data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/IRhoExtManager.java +39 -0
  31. data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/IRhoExtension.java +18 -0
  32. data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/RhoExtDataImpl.java +18 -0
  33. data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/RhoExtManagerImpl.java +142 -0
  34. data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/RhoExtManagerSingleton.java +15 -0
  35. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/MainView.java +6 -3
  36. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java +25 -13
  37. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SplashScreen.java +15 -9
  38. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/TabbedMainView.java +15 -5
  39. data/platform/android/Rhodes/src/com/rhomobile/rhodes/nativeview/RhoNativeViewManager.java +3 -3
  40. data/platform/android/Rhodes/src/com/rhomobile/rhodes/signature/ImageCapture.java +14 -8
  41. data/platform/android/Rhodes/src/com/rhomobile/rhodes/signature/Signature.java +218 -51
  42. data/platform/android/Rhodes/src/com/rhomobile/rhodes/signature/SignatureProperties.java +94 -0
  43. data/platform/android/Rhodes/src/com/rhomobile/rhodes/signature/SignatureView.java +122 -37
  44. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/GoogleWebView.java +6 -2
  45. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/{WebView.java → IRhoWebView.java} +2 -1
  46. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebViewClient.java +4 -0
  47. data/platform/android/build/RhodesSRC_build.files +8 -1
  48. data/platform/android/build/android.rake +5 -1
  49. data/platform/android/build/librhodes_build.files +1 -0
  50. data/platform/bb/RubyVM/src/com/rho/RhodesApp.java +22 -1
  51. data/platform/bb/RubyVM/src/com/rho/sync/SyncSource.java +15 -0
  52. data/platform/bb/RubyVM/src/com/xruby/runtime/lang/RhoSupport.java +4 -0
  53. data/platform/bb/RubyVM/src/com/xruby/runtime/lang/RubyRuntime.java +4 -2
  54. data/platform/bb/build/rhodes_build.files +2 -0
  55. data/platform/bb/rhodes/src/com/rho/RhoRubyHelper.java +1 -1
  56. data/platform/bb/rhodes/src/com/rho/rubyext/PNGEncoder.java +613 -0
  57. data/platform/bb/rhodes/src/com/rho/rubyext/SignatureCapture.java +314 -0
  58. data/platform/bb/rhodes/src/com/rho/rubyext/WebView.java +1 -1
  59. data/platform/iphone/Classes/AppManager/AppManager.m +11 -0
  60. data/platform/iphone/Classes/Rhodes.m +1 -1
  61. data/platform/iphone/Classes/Signature/SignatureDelegate.h +5 -1
  62. data/platform/iphone/Classes/Signature/SignatureDelegate.m +186 -5
  63. data/platform/iphone/Classes/Signature/SignatureView.h +12 -0
  64. data/platform/iphone/Classes/Signature/SignatureView.m +11 -3
  65. data/platform/iphone/Classes/SimpleMainView.m +4 -0
  66. data/platform/iphone/Classes/rho/net/NetRequestImpl.m +98 -3
  67. data/platform/iphone/Info.plist +1 -1
  68. data/platform/iphone/rbuild/iphone.rake +18 -5
  69. data/platform/shared/RhoConnectClient/RhoConnectClient.cpp +1 -1
  70. data/platform/shared/common/ExtManager.h +64 -9
  71. data/platform/shared/common/RhoSimConf.h +1 -0
  72. data/platform/shared/common/RhodesApp.cpp +77 -28
  73. data/platform/shared/common/RhodesApp.h +9 -4
  74. data/platform/shared/common/RhodesAppBase.cpp +4 -3
  75. data/platform/shared/common/RhodesAppBase.h +5 -3
  76. data/platform/shared/net/HttpServer.cpp +4 -4
  77. data/platform/shared/net/HttpServer.h +2 -2
  78. data/platform/shared/qt/rhodes/impl/MainWindowImpl.cpp +1 -1
  79. data/platform/shared/qt/rhodes/main.cpp +1 -1
  80. data/platform/shared/ruby/ext/rho/rhoruby.c +12 -2
  81. data/platform/shared/ruby/ext/rho/rhosupport.c +11 -1
  82. data/platform/shared/ruby/thread_win32.c +2 -1
  83. data/platform/shared/rubyext/System.cpp +6 -0
  84. data/platform/shared/sync/SyncSource.cpp +15 -0
  85. data/platform/wm/RhoLib/RhoLib.vcproj +0 -4
  86. data/platform/wm/build/build_inf.js +34 -4
  87. data/platform/wm/build/wm.rake +75 -25
  88. data/platform/wm/rhodes/AppManager.cpp +14 -3
  89. data/platform/wm/rhodes/IBrowserEngine.h +7 -0
  90. data/platform/wm/rhodes/IEBrowserEngine.cpp +43 -0
  91. data/platform/wm/rhodes/IEBrowserEngine.h +7 -0
  92. data/platform/wm/rhodes/LogOptionsDlg.cpp +1 -1
  93. data/platform/wm/rhodes/MainWindow.cpp +92 -7
  94. data/platform/wm/rhodes/MainWindow.h +28 -1
  95. data/platform/wm/rhodes/MapView/MapViewManager.cpp +4 -4
  96. data/platform/wm/rhodes/Rhodes.cpp +149 -10
  97. data/platform/wm/rhodes/resource.h +5 -1
  98. data/platform/wm/rhodes/rho/common/ExtManager.cpp +307 -0
  99. data/platform/wm/rhodes/rho/rubyext/NativeToolbar.cpp +1 -1
  100. data/platform/wm/rhodes/rho/rubyext/RhoSignature.cpp +1 -1
  101. data/platform/wm/rhodes/rho/rubyext/RhoSignature.h +1 -1
  102. data/platform/wm/rhodes/rho/rubyext/SystemImpl.cpp +14 -2
  103. data/platform/wm/rhodes/rho/rubyext/WebView.cpp +6 -3
  104. data/platform/wm/rhodes/rhodes.vcproj +5 -1
  105. data/platform/wm/rhodes/simulator/MainWindowQt.cpp +22 -1
  106. data/platform/wm/rhodes/simulator/MainWindowQt.h +4 -0
  107. data/platform/wp7/RhoRubyExtGen/RhoWebView.cs +1 -1
  108. data/platform/wp7/RhoRubyLib/Initializers.Generated.cs +1 -1
  109. data/platform/wp7/RhoRubyLib/common/RhodesApp.cs +33 -38
  110. data/platform/wp7/RhoRubyLib/net/HttpServer.cs +134 -29
  111. data/platform/wp7/RhoRubyLib/rubyext/RhoWebView.cs +12 -2
  112. data/platform/wp7/RhoRubyLib/sync/SyncSource.cs +17 -1
  113. data/platform/wp7/RhoRubyLib/views/RhoTabHeader.xaml +3 -3
  114. data/platform/wp7/RhoRubyLib/views/RhoView.xaml.cs +48 -8
  115. data/rakefile.rb +13 -2
  116. data/res/build-tools/iphonesim/build/Release/iphonesim_43 +0 -0
  117. data/res/build-tools/iphonesim/iphonesim.xcodeproj/project.pbxproj +158 -0
  118. data/res/generators/rhogen.rb +33 -28
  119. data/res/generators/templates/application/app/layout.erb +6 -5
  120. data/res/generators/templates/application/public/css/android.css +21 -315
  121. data/res/generators/templates/application/public/css/iphone.css +1 -499
  122. data/res/generators/templates/application/public/css/jqmobile-patch.css +18 -5
  123. data/res/generators/templates/application/public/css/windows_phone7.css +378 -0
  124. data/res/generators/templates/application/public/jqmobile/images/icons-18-black.png +0 -0
  125. data/res/generators/templates/application/public/jqmobile/images/icons-36-black.png +0 -0
  126. data/res/generators/templates/application/public/jqmobile/{jquery.mobile-1.0.css → jquery.mobile-1.0.1.css} +33 -11
  127. data/res/generators/templates/application/public/jqmobile/{jquery.mobile-1.0.js → jquery.mobile-1.0.1.js} +249 -125
  128. data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.0.1.min.css +2 -0
  129. data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.0.1.min.js +177 -0
  130. data/res/generators/templates/application/public/jqmobile/{jquery.mobile.structure-1.0.css → jquery.mobile.structure-1.0.1.css} +33 -11
  131. data/res/generators/templates/application/public/jqmobile/jquery.mobile.structure-1.0.1.min.css +2 -0
  132. data/res/generators/templates/application/public/jquery/jquery.json-2.3.js +193 -0
  133. data/res/generators/templates/application/public/jquery/jquery.json-2.3.min.js +23 -0
  134. data/res/generators/templates/application/public/js/jquery-wp7-patch.js +68 -20
  135. data/spec/phone_spec/app/Case/case.rb +22 -0
  136. data/spec/phone_spec/app/Customer/customer.rb +16 -0
  137. data/spec/phone_spec/app/spec/rhom_object_spec.rb +108 -11
  138. data/spec/phone_spec/app/spec/syncengine_spec.rb +43 -1
  139. data/spec/phone_spec/build.yml +2 -1
  140. data/version +1 -1
  141. metadata +27 -13
  142. data/platform/shared/common/ExtManager.cpp +0 -103
  143. data/res/generators/templates/application/public/jqmobile/jquery-mobile-iphone.css +0 -9
  144. data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.0.min.css +0 -2
  145. data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.0.min.js +0 -172
  146. data/res/generators/templates/application/public/jqmobile/jquery.mobile.structure-1.0.min.css +0 -2
@@ -0,0 +1,94 @@
1
+ package com.rhomobile.rhodes.signature;
2
+
3
+ import com.rhomobile.rhodes.Logger;
4
+
5
+ class SignatureProperties {
6
+
7
+ public int penColor;
8
+ public float penWidth;
9
+ public int bgColor;
10
+
11
+ public int left;
12
+ public int top;
13
+ public int width;
14
+ public int height;
15
+
16
+ String imageFormat;
17
+
18
+ String callbackUrl;
19
+
20
+ public static final String PEN_COLOR = "penColor";
21
+ public static final String PEN_WIDTH = "penWidth";
22
+ public static final String BG_COLOR = "bgColor";
23
+ public static final String IMAGE_FORMAT = "imageFormat";
24
+ public static final String LEFT = "left";
25
+ public static final String TOP = "top";
26
+ public static final String WIDTH = "width";
27
+ public static final String HEIGHT = "height";
28
+ public static final String CALLBACK = "callback";
29
+
30
+ public static final String[] PROPERTIES_LIST = { PEN_COLOR,
31
+ PEN_WIDTH,
32
+ BG_COLOR,
33
+ IMAGE_FORMAT,
34
+ LEFT,
35
+ TOP,
36
+ WIDTH,
37
+ HEIGHT,
38
+ CALLBACK};
39
+
40
+ public SignatureProperties() {
41
+ penColor = 0xFF66009A;
42
+ penWidth = 2;
43
+ bgColor = 0xFFFFFFFF;
44
+
45
+ left = 0;
46
+ top = 0;
47
+ width = 200;
48
+ height = 200;
49
+
50
+ imageFormat = "png";
51
+
52
+ callbackUrl = "";
53
+ }
54
+
55
+ void setPropertyByName(String name, String value) {
56
+ if ((name == null) || (value == null)) {
57
+ return;
58
+ }
59
+ try {
60
+ if (PEN_COLOR.equalsIgnoreCase(name)) {
61
+ penColor = (int)Long.parseLong(value);
62
+ }
63
+ else if (PEN_WIDTH.equalsIgnoreCase(name)) {
64
+ penWidth = Float.parseFloat(value);
65
+ }
66
+ else if (BG_COLOR.equalsIgnoreCase(name)) {
67
+ bgColor = (int)Long.parseLong(value);
68
+ }
69
+ else if (LEFT.equalsIgnoreCase(name)) {
70
+ left = Integer.parseInt(value);
71
+ }
72
+ else if (TOP.equalsIgnoreCase(name)) {
73
+ top = Integer.parseInt(value);
74
+ }
75
+ else if (WIDTH.equalsIgnoreCase(name)) {
76
+ width = Integer.parseInt(value);
77
+ }
78
+ else if (HEIGHT.equalsIgnoreCase(name)) {
79
+ height = Integer.parseInt(value);
80
+ }
81
+ else if (IMAGE_FORMAT.equalsIgnoreCase(name)) {
82
+ imageFormat = new String(value);
83
+ }
84
+ else if (CALLBACK.equalsIgnoreCase(name)) {
85
+ callbackUrl = new String(value);
86
+ }
87
+ }
88
+ catch (Exception e) {
89
+ Logger.E(Signature.TAG, "SignatureProperties Exception during set param["+name+"] to value["+value+"]");
90
+ Logger.E(Signature.TAG, e);
91
+ }
92
+ }
93
+
94
+ }
@@ -32,7 +32,9 @@ import java.util.Vector;
32
32
  import android.content.Context;
33
33
  import android.graphics.Bitmap;
34
34
  import android.graphics.Canvas;
35
+ import android.graphics.Color;
35
36
  import android.graphics.Paint;
37
+ import android.graphics.PixelFormat;
36
38
  import android.graphics.Rect;
37
39
  import android.graphics.PointF;
38
40
  import android.os.Bundle;
@@ -43,7 +45,9 @@ import android.view.MotionEvent;
43
45
  import java.io.Serializable;
44
46
  import java.io.IOException;
45
47
 
48
+
46
49
  import com.rhomobile.rhodes.Logger;
50
+ import com.rhomobile.rhodes.util.PerformOnUiThread;
47
51
 
48
52
  class SignatureView extends SurfaceView implements SurfaceHolder.Callback {
49
53
 
@@ -51,7 +55,7 @@ class SignatureView extends SurfaceView implements SurfaceHolder.Callback {
51
55
  public float penWidth;
52
56
  public int bgColor;
53
57
 
54
-
58
+ public boolean isTransparency;
55
59
 
56
60
  private class PointSequence {
57
61
  public Vector<PointF> mPoints = new Vector<PointF>();
@@ -114,14 +118,14 @@ class SignatureView extends SurfaceView implements SurfaceHolder.Callback {
114
118
 
115
119
  private Paint mPaint;
116
120
 
117
-
121
+
118
122
  public void doClear() {
119
123
  // clear paths
120
124
  mSequences.clear();
121
- doFullRedraw();
125
+ doFullRedraw(mCanvas, mBitmap, true, true);
126
+ invalidate();
122
127
  }
123
-
124
-
128
+
125
129
  public void onRestoreInstanceState(Bundle savedInstanceState) {
126
130
  SignatureViewState s = (SignatureViewState)savedInstanceState.getSerializable(mStateID);
127
131
  mSequences = s.mSequences;
@@ -135,19 +139,39 @@ class SignatureView extends SurfaceView implements SurfaceHolder.Callback {
135
139
  outState.putSerializable(mStateID, s);
136
140
  }
137
141
 
138
- private void doFullRedraw() {
139
- if (mCanvas == null) {
142
+ private void doFullRedraw(Canvas canvas, Bitmap bitmap, boolean useAlpha, boolean redrawOnScreen) {
143
+ if (canvas == null) {
140
144
  return;
141
145
  }
142
146
 
143
147
  Paint paint = new Paint();
144
148
  paint.setAntiAlias(false);
145
- paint.setARGB( 255,
146
- (bgColor & 0xFF0000) >> 16,
147
- (bgColor & 0xFF00) >> 8,
148
- (bgColor & 0xFF));
149
-
150
- mCanvas.drawRect(0, 0, mCanvas.getWidth(), mCanvas.getHeight(), paint);
149
+
150
+ int a = (bgColor & 0xFF000000) >> 24;
151
+
152
+ if (isTransparency) {
153
+ if (useAlpha) {
154
+ bitmap.eraseColor(bgColor);
155
+ }
156
+ else {
157
+ a = 255;
158
+ bitmap.eraseColor(bgColor | 0xFF000000);
159
+ //canvas.drawRect(0, 0, canvas.getWidth(), canvas.getHeight(), paint);
160
+ }
161
+ }
162
+ else {
163
+ paint.setARGB( a,
164
+ (bgColor & 0xFF0000) >> 16,
165
+ (bgColor & 0xFF00) >> 8,
166
+ (bgColor & 0xFF));
167
+
168
+ canvas.drawRect(0, 0, canvas.getWidth(), canvas.getHeight(), paint);
169
+ }
170
+
171
+ //bitmap.eraseColor(Color.argb( a,
172
+ // (bgColor & 0xFF0000) >> 16,
173
+ // (bgColor & 0xFF00) >> 8,
174
+ // (bgColor & 0xFF)));
151
175
 
152
176
  // draw path
153
177
  int s;
@@ -159,7 +183,7 @@ class SignatureView extends SurfaceView implements SurfaceHolder.Callback {
159
183
  PointF prev = ps.mPoints.elementAt(p-1);
160
184
  PointF cur = ps.mPoints.elementAt(p);
161
185
  if ((prev != null) && (cur != null)) {
162
- mCanvas.drawLine(prev.x, prev.y, cur.x, cur.y, mPaint);
186
+ canvas.drawLine(prev.x, prev.y, cur.x, cur.y, mPaint);
163
187
  }
164
188
  }
165
189
  }
@@ -176,50 +200,89 @@ class SignatureView extends SurfaceView implements SurfaceHolder.Callback {
176
200
  }
177
201
 
178
202
  // update screen
179
- Canvas c = null;
180
- try {
181
- c = getHolder().lockCanvas(null);
182
- synchronized (getHolder()) {
183
- c.drawBitmap(mBitmap, 0, 0, null);
184
- }
185
- } finally {
186
- if (c != null) {
187
- getHolder().unlockCanvasAndPost(c);
188
- }
189
- }
203
+ if (redrawOnScreen && (!isTransparency)) {
204
+ Canvas c = null;
205
+ try {
206
+ c = getHolder().lockCanvas(null);
207
+ synchronized (getHolder()) {
208
+ c.drawBitmap(bitmap, 0, 0, null);
209
+ }
210
+ } finally {
211
+ if (c != null) {
212
+ getHolder().unlockCanvasAndPost(c);
213
+ }
214
+ }
215
+ }
216
+ else {
217
+ if (redrawOnScreen && isTransparency) {
218
+ invalidate();
219
+ }
220
+ }
190
221
  }
191
222
 
192
223
  private void doDrawSegment(float x1, float y1, float x2, float y2) {
193
224
  Canvas c = null;
194
225
  Rect rect = new Rect((int)(x1-1),(int)(y1-1),(int)(x1+1),(int)(y1+1));
195
226
  rect.union((int)(x2-1),(int)(y2-1),(int)(x2+1),(int)(y2+1));
227
+ ///*
196
228
  try {
229
+
197
230
  c = getHolder().lockCanvas(rect);
198
231
  synchronized (getHolder()) {
199
- mCanvas.drawLine(x1,y1,x2,y2,mPaint);
200
- c.drawBitmap(mBitmap, rect, rect, null);
232
+ if ((mCanvas != null) && (mBitmap != null)) {
233
+ mCanvas.drawLine(x1,y1,x2,y2,mPaint);
234
+ //c.drawLine(x1,y1,x2,y2,mPaint);
235
+ //mCanvas.drawLine(x1,y1,x2,y2,mPaint);
236
+ if (!isTransparency) {
237
+ c.drawBitmap(mBitmap, rect, rect, null);
238
+ }
239
+ }
201
240
  }
202
241
  } finally {
203
242
  if (c != null) {
204
243
  getHolder().unlockCanvasAndPost(c);
205
244
  }
206
- }
207
-
245
+ }
246
+ //*/
247
+ invalidate(rect);
208
248
  }
209
249
 
210
-
211
250
  public void setupView(int _penColor, float _penWidth, int _bgColor) {
212
251
  penColor = _penColor;
213
252
  penWidth = _penWidth;
214
253
  bgColor = _bgColor;
215
254
  mPaint = new Paint();
216
255
  mPaint.setAntiAlias(true);
217
- mPaint.setColor(0xFF000000 | penColor);
256
+ mPaint.setColor(Color.argb( (penColor & 0xFF000000) >> 24,
257
+ (penColor & 0xFF0000) >> 16,
258
+ (penColor & 0xFF00) >> 8,
259
+ penColor & 0xFF));
218
260
  mPaint.setStyle(Paint.Style.STROKE);
219
261
  mPaint.setStrokeJoin(Paint.Join.ROUND);
220
262
  mPaint.setStrokeCap(Paint.Cap.ROUND);
221
263
  mPaint.setStrokeWidth(penWidth);
222
- doFullRedraw();
264
+
265
+ Signature.reportMsg("$$$ setupView()");
266
+ Signature.reportMsg("$$$ penColor = "+String.valueOf(penColor));
267
+ Signature.reportMsg("$$$ bgColor = "+String.valueOf(bgColor));
268
+
269
+ setDrawingCacheEnabled(false);
270
+ if (isTransparency) {
271
+ setZOrderOnTop(true);
272
+ getHolder().setFormat(PixelFormat.TRANSLUCENT);
273
+ setBackgroundColor(0);
274
+ }
275
+ doFullRedraw(mCanvas, mBitmap, true, true);
276
+
277
+ if (isTransparency) {
278
+ PerformOnUiThread.exec(new Runnable() {
279
+ public void run() {
280
+ //invalidate();//
281
+ //setVisibility(VISIBLE);
282
+ doDrawSegment(-10,-10,-11,-11);
283
+ }
284
+ },10);
285
+ }
223
286
  }
224
287
 
225
288
  public SignatureView(Context context, AttributeSet attrs) {
@@ -232,6 +295,7 @@ class SignatureView extends SurfaceView implements SurfaceHolder.Callback {
232
295
 
233
296
  setVisibility(VISIBLE);
234
297
 
298
+ isTransparency = false;
235
299
 
236
300
  mPaint = new Paint();
237
301
  mPaint.setAntiAlias(true);
@@ -243,18 +307,25 @@ class SignatureView extends SurfaceView implements SurfaceHolder.Callback {
243
307
 
244
308
  bgColor = 0xFFFFFFFF;
245
309
 
310
+ //setBackgroundColor(0);
311
+ //setZOrderOnTop(true);
312
+ //getHolder().setFormat(PixelFormat.TRANSLUCENT);
313
+
246
314
  setFocusable(true); // make sure we get key events
247
315
 
248
316
  requestFocus();
249
317
  bringToFront();
250
-
251
-
252
318
  }
253
319
 
254
320
  public Bitmap makeBitmap() {
255
- return mBitmap;
321
+ Bitmap b = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.ARGB_8888);
322
+ b.eraseColor(bgColor | 0xFF000000);
323
+ Canvas c = new Canvas(b);
324
+ doFullRedraw(c, b, false, false);
325
+ return b;
256
326
  }
257
327
 
328
+
258
329
  public boolean onTouchEvent(MotionEvent event) {
259
330
  float x = event.getX();
260
331
  float y = event.getY();
@@ -280,14 +351,28 @@ class SignatureView extends SurfaceView implements SurfaceHolder.Callback {
280
351
  return true;
281
352
  }
282
353
 
354
+ ///*
355
+ protected void onDraw (Canvas canvas) {
356
+ if (isTransparency) {
357
+ if (mBitmap != null) {
358
+ canvas.drawBitmap(mBitmap, 0, 0, null);
359
+ }
360
+ }
361
+ else {
362
+ super.onDraw(canvas);
363
+ }
364
+ }
365
+ //*/
283
366
 
284
367
  /* Callback invoked when the surface dimensions change. */
285
368
  public void surfaceChanged(SurfaceHolder holder, int format, int width,
286
369
  int height) {
287
370
  Logger.D(TAG, "SurfaceChanged()");
288
- mBitmap = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.RGB_565);
371
+ mBitmap = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.ARGB_8888);
372
+ mBitmap.eraseColor(bgColor);
289
373
  mCanvas = new Canvas(mBitmap);
290
- doFullRedraw();
374
+ doFullRedraw(mCanvas, mBitmap, true, true);
375
+ invalidate();
291
376
  }
292
377
 
293
378
 
@@ -5,13 +5,12 @@ import java.lang.reflect.Constructor;
5
5
  import com.rhomobile.rhodes.RhodesActivity;
6
6
 
7
7
  import android.app.Activity;
8
- import android.content.Context;
9
8
  import android.os.Build;
10
9
  import android.view.View;
11
10
  import android.webkit.WebChromeClient;
12
11
  import android.webkit.WebViewClient;
13
12
 
14
- public class GoogleWebView implements WebView {
13
+ public class GoogleWebView implements IRhoWebView {
15
14
 
16
15
  private static WebChromeClient mChromeClient;
17
16
  private static WebViewClient mWebViewClient;
@@ -126,4 +125,9 @@ public class GoogleWebView implements WebView {
126
125
  public void loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String historyUrl) {
127
126
  mWebView.loadDataWithBaseURL(baseUrl, data, mimeType, encoding, historyUrl);
128
127
  }
128
+
129
+ @Override
130
+ public void stopLoad() {
131
+ mWebView.stopLoading();
132
+ }
129
133
  }
@@ -2,7 +2,7 @@ package com.rhomobile.rhodes.webview;
2
2
 
3
3
  import android.view.View;
4
4
 
5
- public interface WebView {
5
+ public interface IRhoWebView {
6
6
  View getView();
7
7
  boolean canGoBack();
8
8
  void goBack();
@@ -13,4 +13,5 @@ public interface WebView {
13
13
  void loadUrl(String url);
14
14
  void loadData(String data, String mime, String encoding);
15
15
  void loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String historyUrl);
16
+ void stopLoad();
16
17
  }
@@ -30,6 +30,7 @@ import com.rhomobile.rhodes.Logger;
30
30
  import com.rhomobile.rhodes.RhoConf;
31
31
  import com.rhomobile.rhodes.RhodesActivity;
32
32
  import com.rhomobile.rhodes.RhodesService;
33
+ import com.rhomobile.rhodes.extmanager.RhoExtManagerSingleton;
33
34
 
34
35
  import android.graphics.Bitmap;
35
36
  import android.net.http.SslError;
@@ -50,6 +51,9 @@ public class RhoWebViewClient extends WebViewClient
50
51
 
51
52
  @Override
52
53
  public void onPageStarted(WebView view, String url, Bitmap favicon) {
54
+
55
+ RhoExtManagerSingleton.getRhoExtManagerInstance().onBeforeNavigate(url);
56
+
53
57
  if (RhodesActivity.ENABLE_LOADING_INDICATION)
54
58
  RhodesActivity.safeGetInstance().getWindow().setFeatureInt(Window.FEATURE_PROGRESS, 0);
55
59
  else
@@ -71,6 +71,7 @@ platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/Phonebook.java
71
71
  platform/android/Rhodes/src/com/rhomobile/rhodes/signature/ImageCapture.java
72
72
  platform/android/Rhodes/src/com/rhomobile/rhodes/signature/Signature.java
73
73
  platform/android/Rhodes/src/com/rhomobile/rhodes/signature/SignatureView.java
74
+ platform/android/Rhodes/src/com/rhomobile/rhodes/signature/SignatureProperties.java
74
75
  platform/android/Rhodes/src/com/rhomobile/rhodes/socket/RhoSockAddr.java
75
76
  platform/android/Rhodes/src/com/rhomobile/rhodes/socket/RhoSocket.java
76
77
  platform/android/Rhodes/src/com/rhomobile/rhodes/socket/RhoSocketImpl.java
@@ -95,8 +96,14 @@ platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebSettings.java
95
96
  platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebSettingsNew.java
96
97
  platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebSettingsOld.java
97
98
  platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebViewClient.java
98
- platform/android/Rhodes/src/com/rhomobile/rhodes/webview/WebView.java
99
+ platform/android/Rhodes/src/com/rhomobile/rhodes/webview/IRhoWebView.java
99
100
  platform/android/Rhodes/src/com/rhomobile/rhodes/webview/GoogleWebView.java
101
+ platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/IRhoExtData.java
102
+ platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/IRhoExtension.java
103
+ platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/IRhoExtManager.java
104
+ platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/RhoExtDataImpl.java
105
+ platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/RhoExtManagerImpl.java
106
+ platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/RhoExtManagerSingleton.java
100
107
  platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality.java
101
108
  platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality01.java
102
109
  platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality02.java