rhodes 7.5.1 → 7.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +319 -0
- data/README.md +3 -15
- data/Rakefile +3 -0
- data/appveyor.yml +37 -32
- data/azure-pipelines.yml +1 -1
- data/bin/rhodes-setup +22 -8
- data/extensions/emdk3-manager/ext/platform/android/src/com/rho/emdk3/EMDK3Extension.java +14 -5
- data/extensions/instrumentation/ext/platform/android/src/com/rho/instrumentation/Instrumentation.java +29 -15
- data/extensions/rhoconnect-push/ext/rhoconnect-push/platform/android/src/com/rhomobile/rhoelements/ans/ANSManager.java +1 -1
- data/extensions/rhoelementsext/ext/rhoelementsext/platform/android/rhoelements_temp/src/com/rho/rhoelements/ElementsCore.java +12 -9
- data/extensions/rhoelementsext/ext/rhoelementsext/platform/android/rhoelements_temp/src/com/rho/rhoelements/graphics/BatteryIndicator.java +2 -2
- data/lib/commonAPI/barcode/ext/platform/qt/Barcode.pro +1 -1
- data/lib/commonAPI/barcode/ext/platform/qt/Barcode.pro.erb +2 -2
- data/lib/commonAPI/barcode/ext/platform/qt/src/qzxing/QZXing.pri +9 -21
- data/lib/commonAPI/barcode/ext.yml +1 -0
- data/lib/commonAPI/bluetooth/ext/platform/qt/Bluetooth.pro +1 -1
- data/lib/commonAPI/bluetooth/ext/platform/qt/Bluetooth.pro.erb +1 -1
- data/lib/commonAPI/bluetooth/ext/platform/qt/src/bluetooth/bluetoothhelper.h +1 -1
- data/lib/commonAPI/coreapi/RhoSystemApi.rb +6 -0
- data/lib/commonAPI/coreapi/ext/Intent.xml +4 -0
- data/lib/commonAPI/coreapi/ext/platform/android/src/com/rho/intent/IntentSingleton.java +6 -0
- data/lib/commonAPI/coreapi/ext/platform/android/src/com/rho/notification/Notification.java +2 -1
- data/lib/commonAPI/coreapi/ext/platform/android/src/com/rho/notification/NotificationScheduler.java +1 -1
- data/lib/commonAPI/coreapi/ext/platform/android/src/com/rho/webview/WebViewSingleton.java +40 -27
- data/lib/commonAPI/coreapi/ext/platform/iphone/cpp_based_impl/SystemImpl.mm +5 -6
- data/lib/commonAPI/coreapi/ext/platform/iphone/impl/Intent.h +1 -1
- data/lib/commonAPI/coreapi/ext/platform/iphone/impl/Intent.m +3 -1
- data/lib/commonAPI/coreapi/ext/platform/iphone/impl/NotificationSingleton.h +2 -1
- data/lib/commonAPI/coreapi/ext/platform/iphone/impl/NotificationSingleton.m +10 -0
- data/lib/commonAPI/coreapi/ext/platform/wm/src/IntentImpl.cpp +3 -0
- data/lib/commonAPI/coreapi/ext/shared/SystemImplBase.cpp +13 -0
- data/lib/commonAPI/coreapi/ext/shared/SystemImplBase.h +2 -0
- data/lib/commonAPI/coreapi/ext/system.xml +3 -0
- data/lib/commonAPI/mediacapture/ext/platform/android/ApplicationCameraActivity.erb +2 -2
- data/lib/commonAPI/mediacapture/ext/platform/android/ApplicationFileProvider.erb +1 -1
- data/lib/commonAPI/mediacapture/ext/platform/android/ext_java.files +1 -0
- data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/CameraObject.java +8 -4
- data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/CameraRhoListener.java +8 -0
- data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/mediacapture/RhoCameraFileProvider.java +6 -0
- data/lib/commonAPI/mediacapture/ext/platform/qt/MediaCapture.pro.erb +1 -1
- data/lib/commonAPI/mediacapture/ext/platform/qt/Mediacapture.pro +1 -1
- data/lib/commonAPI/signature/ext/platform/iphone/impl/readme.txt +7 -0
- data/lib/commonAPI/signature/ext/platform/qt/Signature.pro +3 -10
- data/lib/commonAPI/signature/ext/platform/qt/Signature.pro.erb +2 -2
- data/lib/extensions/fcm-push/ext/iphone/Podfile +15 -2
- data/lib/extensions/fcm-push/ext/iphone/fcm-push.xcodeproj/project.pbxproj +6 -7
- data/lib/extensions/nfc/ext/platform/android/src/com/rhomobile/nfc/Nfc.java +2 -1
- data/lib/extensions/serialport/ext/serialport.pro +1 -1
- data/platform/android/Rhodes/jni/include/rhodes/JNIRhodes.h +1 -0
- data/platform/android/Rhodes/jni/src/fileapi.cpp +4 -0
- data/platform/android/Rhodes/res/drawable/baseline_check_24.xml +5 -0
- data/platform/android/Rhodes/res/drawable/baseline_check_240.xml +5 -0
- data/platform/android/Rhodes/res/drawable/baseline_close_24.xml +5 -0
- data/platform/android/Rhodes/res/drawable/baseline_close_240.xml +5 -0
- data/platform/android/Rhodes/res/layout/overlay_layout.xml +39 -0
- data/platform/android/Rhodes/res/layout/perrmission_alert_dialog.xml +267 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/BaseActivity.java +183 -66
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/LocalFileProvider.java +38 -6
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoFileProvider.java +32 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesActivity.java +529 -89
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesApplication.java +26 -4
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java +256 -160
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/AbstractRhoExtension.java +14 -3
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/IRhoExtManager.java +4 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/IRhoExtension.java +5 -4
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/RhoExtManagerImpl.java +79 -38
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocation.java +6 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/kioskservices/CallReceiver.java +22 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/kioskservices/IKioskMode.java +11 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/kioskservices/KioskManager.java +18 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/kioskservices/MyAccessibilityService.java +230 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/kioskservices/MyNotificationListenerService.java +16 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/kioskservices/MyOverlayService.java +197 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/kioskservices/PermissionManager.java +232 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java +34 -8
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/permissioncheck/CheckDrawable.java +53 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/permissioncheck/PermissionListGenerate.java +366 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/rhodes.iml +11 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/socket/SSLImpl.java +1 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/GoogleWebView.java +782 -41
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoInputConnectionWrapper.java +146 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoInputListener.java +21 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebViewClient.java +92 -32
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/TauWebViewOptions.java +118 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/WebSettingsProviderBase.java +18 -17
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/WebSettingsProviderEclairMR1.java +4 -4
- data/platform/android/build/RhodesSRC_build.files +13 -0
- data/platform/android/build/android-repack.rake +8 -1
- data/platform/android/build/android.rake +118 -51
- data/platform/android/build/android_tools.rb +1 -1
- data/platform/android/build/androidcommon.rb +13 -7
- data/platform/android/build/config.yml +4 -1
- data/platform/android/build/manifest_generator.rb +14 -10
- data/platform/android/build/maven_deps_extractor.rb +7 -1
- data/platform/android/build/ndkwrapper.rb +12 -0
- data/platform/android/proguard/proguard-base-rules.pro +5 -0
- data/platform/android/proguard/proguard.jar +0 -0
- data/platform/iphone/Classes/RhoAppBaseLib-Bridging-Header.h +4 -0
- data/platform/iphone/Classes/RhoAppBaseStandaloneLib-Bridging-Header.h +4 -0
- data/platform/iphone/Classes/RhoCryptAESGCM.swift +105 -0
- data/platform/iphone/Classes/RhoUIWebView.h +1 -1
- data/platform/iphone/Classes/RhoUIWebView.m +1 -1
- data/platform/iphone/Classes/RhoWKWebView.h +1 -1
- data/platform/iphone/Classes/RhoWKWebView.mm +32 -4
- data/platform/iphone/Classes/RhoWebView.h +1 -1
- data/platform/iphone/Classes/RhoWebViewFabrique.m +7 -1
- data/platform/iphone/Classes/SimpleMainView.m +5 -5
- data/platform/iphone/Classes/URLProtocol/CRhoURLProtocol.m +21 -10
- data/platform/iphone/Classes/rho/net/IPhoneNetRequest.mm +4 -0
- data/platform/iphone/Framework/RhoApplication/RhoApplication.xcodeproj/project.pbxproj +1 -1
- data/platform/iphone/Framework/Rhodes/Rhodes.xcodeproj/project.pbxproj +1 -1
- data/platform/iphone/RhoAppBaseLib/RhoAppBaseLib.xcodeproj/project.pbxproj +46 -1
- data/platform/iphone/RhoLib/RhoLib.xcodeproj/project.pbxproj +1 -1
- data/platform/iphone/curl/curl.xcodeproj/project.pbxproj +4 -1
- data/platform/iphone/rbuild/iphone.rake +9 -8
- data/platform/iphone/rhoextlib/rhoextlib.xcodeproj/project.pbxproj +4 -1
- data/platform/iphone/rhorubylib/rhorubylib.xcodeproj/project.pbxproj +1 -1
- data/platform/iphone/rhosynclib/rhosynclib.xcodeproj/project.pbxproj +1 -1
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app.zip +0 -0
- data/platform/sailfish/build/{harbour-SailfishRhodes.pro.erb → SailfishRhodes.pro.erb} +10 -17
- data/platform/sailfish/build/rhodes.pro.erb +7 -17
- data/platform/sailfish/build/rpm/SailfishRhodes.desktop.erb +12 -0
- data/platform/sailfish/build/rpm/SailfishRhodes.erb +2 -0
- data/platform/sailfish/build/rpm/SailfishRhodes.spec.erb +43 -0
- data/platform/sailfish/build/rubylib.pro.erb +29 -29
- data/platform/sailfish/build/sailfish.rake +188 -180
- data/platform/sailfish/keys/regular_cert.pem +14 -0
- data/platform/sailfish/keys/regular_key.pem +4 -0
- data/platform/shared/common/RhodesApp.cpp +33 -9
- data/platform/shared/common/iphone/RhoCryptImpl.mm +130 -54
- data/platform/shared/qt/RhoSimulator.pro +1 -1
- data/platform/shared/qt/rhodes/rhodes.pro +4 -11
- data/platform/shared/qt/sailfish/SailfishRhodes.desktop +3 -4
- data/platform/shared/qt/sailfish/SailfishRhodes.pro +9 -10
- data/platform/shared/qt/sailfish/icons/108x108/108x108.png +0 -0
- data/platform/shared/qt/sailfish/privileges/sailfishrhodes +2 -0
- data/platform/shared/qt/sailfish/qml/pages/FirstPageWK.qml +7 -11
- data/platform/shared/qt/sailfish/qml/{harbour-sailfishrhodes.qml → sailfishrhodes.qml} +1 -1
- data/platform/shared/qt/sailfish/rpm/sailfishrhodes.spec +80 -0
- data/platform/shared/qt/sailfish/rpm/{harbour-sailfishrhodes.yaml → sailfishrhodes.yaml} +2 -2
- data/platform/shared/qt/sailfish/src/QtMainWindow.cpp +1 -1
- data/platform/shared/qt/sailfish/src/QtMainWindow.h +1 -1
- data/platform/shared/qt/sailfish/src/main.cpp +6 -38
- data/platform/shared/qt/sailfish/src/rootdelegate.h +2 -14
- data/platform/shared/ruby/aurora/ruby/config.h +386 -0
- data/platform/shared/ruby/aurora/ruby/constdefs.c +5866 -0
- data/platform/shared/ruby/aurora/ruby/constdefs.h +1788 -0
- data/platform/shared/sqlite/crypto.c +14 -0
- data/platform/win32/RhoSimulator/RhoSimulator.exe +0 -0
- data/platform/win32/build/rhodes.nsi +3 -3
- data/platform/win32/build/win32.rake +1 -1
- data/rakefile.rb +3 -0
- data/res/build-tools/iphonesim/build/Release/iphonesim_8 +4 -4
- data/res/generators/templates/application/AndroidManifest.erb +26 -5
- data/res/generators/templates/application/build.yml +14 -10
- data/res/generators/templates/application/resources/android/res/xml/provider_paths.xml +4 -0
- data/res/generators/templates/application/rhoconfig.txt +10 -1
- data/res/generators/templates/iphone_project/Bremen8.xcodeproj/project.pbxproj +24 -1
- data/res/generators/templates/iphone_project/Classes/SimpleSwiftClass.swift +20 -0
- data/res/generators/templates/iphone_project/Classes/rhorunner-Bridging-Header.h +4 -0
- data/rhobuild.yml.example +3 -3
- data/rhodes.gemspec +4 -2
- data/version +1 -1
- metadata +81 -26
- data/platform/sailfish/build/rho_build.cmd.erb +0 -14
- data/platform/sailfish/build/rho_clean.cmd.erb +0 -14
- data/platform/sailfish/build/rho_deploy.cmd.erb +0 -15
- data/platform/sailfish/build/rho_rpm.cmd.erb +0 -14
- data/platform/sailfish/build/rho_rpmvalidation.cmd.erb +0 -14
- data/platform/sailfish/build/rpm/harbour-SailfishRhodes.desktop.erb +0 -7
- data/platform/sailfish/build/rpm/harbour-SailfishRhodes.erb +0 -2
- data/platform/sailfish/build/rpm/harbour-SailfishRhodes.yaml.erb +0 -37
- data/platform/shared/qt/sailfish/harbour-sailfishrhodes.desktop +0 -6
- data/platform/shared/qt/sailfish/icons/108x108/harbour-sailfishrhodes.png +0 -0
- data/platform/shared/qt/sailfish/privileges/harbour-sailfishrhodes +0 -2
- data/platform/shared/qt/sailfish/qml/pages/FirstPageWE.qml +0 -236
- /data/platform/shared/qt/sailfish/icons/128x128/{harbour-sailfishrhodes.png → sailfishrhodes.png} +0 -0
- /data/platform/shared/qt/sailfish/icons/172x172/{harbour-sailfishrhodes.png → sailfishrhodes.png} +0 -0
- /data/platform/shared/qt/sailfish/icons/86x86/{harbour-sailfishrhodes.png → sailfishrhodes.png} +0 -0
@@ -0,0 +1,146 @@
|
|
1
|
+
package com.rhomobile.rhodes.webview;
|
2
|
+
|
3
|
+
import com.rhomobile.rhodes.Logger;
|
4
|
+
import com.rhomobile.rhodes.RhodesActivity;
|
5
|
+
import com.rhomobile.rhodes.mapview.TouchHandler;
|
6
|
+
|
7
|
+
import android.content.Context;
|
8
|
+
import android.inputmethodservice.InputMethodService;
|
9
|
+
import android.view.inputmethod.InputConnection;
|
10
|
+
import android.view.inputmethod.InputConnectionWrapper;
|
11
|
+
import android.os.Looper;
|
12
|
+
import android.os.Handler;
|
13
|
+
import android.util.Log;
|
14
|
+
import android.view.KeyEvent;
|
15
|
+
import android.view.inputmethod.ExtractedTextRequest;
|
16
|
+
import android.view.inputmethod.ExtractedText;
|
17
|
+
|
18
|
+
import android.widget.Toast;
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
public class RhoInputConnectionWrapper extends InputConnectionWrapper {
|
24
|
+
|
25
|
+
private String TAG = RhoInputConnectionWrapper.class.getSimpleName();
|
26
|
+
|
27
|
+
public RhoInputConnectionWrapper (InputConnection target){
|
28
|
+
super(target, true);
|
29
|
+
}
|
30
|
+
|
31
|
+
@Override
|
32
|
+
public boolean commitText(CharSequence text, int newCursorPosition) {
|
33
|
+
Logger.T(this.TAG, "================================commitText================================");
|
34
|
+
Logger.T(this.TAG, text.toString());
|
35
|
+
Logger.T(this.TAG, "================================");
|
36
|
+
|
37
|
+
playSound();
|
38
|
+
|
39
|
+
return super.commitText(text, newCursorPosition);
|
40
|
+
}
|
41
|
+
|
42
|
+
@Override
|
43
|
+
public boolean sendKeyEvent(KeyEvent event) {
|
44
|
+
Logger.T(this.TAG, "================================sendKeyEvent================================");
|
45
|
+
Logger.T(this.TAG, event.toString());
|
46
|
+
Logger.T(this.TAG, "================================");
|
47
|
+
playSound();
|
48
|
+
|
49
|
+
return super.sendKeyEvent(event);
|
50
|
+
}
|
51
|
+
|
52
|
+
private void playSound(){
|
53
|
+
RhoInputListener.IRhoInputListener listener = RhoInputListener.getListener();
|
54
|
+
if (listener != null) {
|
55
|
+
listener.onTextInput();
|
56
|
+
}
|
57
|
+
}
|
58
|
+
|
59
|
+
|
60
|
+
//region compulsory methods
|
61
|
+
|
62
|
+
@Override
|
63
|
+
public Handler getHandler() {
|
64
|
+
Logger.T(this.TAG, ".getHandler()");
|
65
|
+
Handler h = null;
|
66
|
+
try {
|
67
|
+
h = super.getHandler();
|
68
|
+
}
|
69
|
+
catch (Exception ex) {
|
70
|
+
Logger.E(this.TAG, ".getHandler() ERROR = "+ex.getMessage());
|
71
|
+
}
|
72
|
+
if (h == null) {
|
73
|
+
h = new Handler(Looper.getMainLooper());
|
74
|
+
}
|
75
|
+
return h;
|
76
|
+
}
|
77
|
+
|
78
|
+
@Override
|
79
|
+
public ExtractedText getExtractedText(ExtractedTextRequest request, int flags) {
|
80
|
+
Logger.T(this.TAG, ".getExtractedText()");
|
81
|
+
try {
|
82
|
+
return super.getExtractedText(request, flags);
|
83
|
+
} catch (Exception e){
|
84
|
+
Logger.E(this.TAG, e.toString());
|
85
|
+
}
|
86
|
+
return null;
|
87
|
+
}
|
88
|
+
|
89
|
+
@Override
|
90
|
+
public boolean finishComposingText() {
|
91
|
+
Logger.T(this.TAG, ".finishComposingText()");
|
92
|
+
|
93
|
+
try{
|
94
|
+
return super.finishComposingText();
|
95
|
+
} catch (Exception e){
|
96
|
+
Logger.E(this.TAG, e.toString());
|
97
|
+
}
|
98
|
+
return false;
|
99
|
+
}
|
100
|
+
|
101
|
+
@Override
|
102
|
+
public void closeConnection() {
|
103
|
+
Logger.T(this.TAG, ".closeConnection()");
|
104
|
+
try {
|
105
|
+
super.closeConnection();
|
106
|
+
}
|
107
|
+
catch (Exception ex) {
|
108
|
+
Logger.E(this.TAG, ".closeConnection() ERROR = "+ex.getMessage());
|
109
|
+
}
|
110
|
+
}
|
111
|
+
|
112
|
+
@Override
|
113
|
+
public boolean performEditorAction(int editorAction) {
|
114
|
+
Logger.T(this.TAG, "================================sendKeyEvent================================");
|
115
|
+
Logger.T(this.TAG, Integer.toString(editorAction));
|
116
|
+
Logger.T(this.TAG, "================================");
|
117
|
+
return super.performEditorAction(editorAction);
|
118
|
+
}
|
119
|
+
|
120
|
+
@Override
|
121
|
+
public boolean requestCursorUpdates(int cursorUpdateMode) {
|
122
|
+
Logger.T(this.TAG, ".requestCursorUpdates()");
|
123
|
+
try {
|
124
|
+
return super.requestCursorUpdates(cursorUpdateMode);
|
125
|
+
} catch(Exception e){
|
126
|
+
Logger.E(this.TAG, e.toString());
|
127
|
+
}
|
128
|
+
return false;
|
129
|
+
}
|
130
|
+
//endregion
|
131
|
+
|
132
|
+
|
133
|
+
@Override
|
134
|
+
public boolean reportFullscreenMode(boolean enabled) {
|
135
|
+
Logger.T(this.TAG, ".reportFullscreenMode()");
|
136
|
+
boolean h = false;
|
137
|
+
try {
|
138
|
+
h = super.reportFullscreenMode(enabled);
|
139
|
+
}
|
140
|
+
catch (Exception ex) {
|
141
|
+
Logger.E(this.TAG, ".reportFullscreenMode() ERROR = "+ex.getMessage());
|
142
|
+
}
|
143
|
+
return h;
|
144
|
+
}
|
145
|
+
|
146
|
+
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
package com.rhomobile.rhodes.webview;
|
2
|
+
|
3
|
+
import android.view.accessibility.AccessibilityEvent;
|
4
|
+
|
5
|
+
public class RhoInputListener {
|
6
|
+
public interface IRhoInputListener{
|
7
|
+
public void onTextInput();
|
8
|
+
public void onAccessibitityEvent(AccessibilityEvent event);
|
9
|
+
public void onRestartBrowser();
|
10
|
+
}
|
11
|
+
|
12
|
+
private static IRhoInputListener mListener;
|
13
|
+
|
14
|
+
public static IRhoInputListener getListener() {
|
15
|
+
return mListener;
|
16
|
+
}
|
17
|
+
|
18
|
+
public static void setListener(IRhoInputListener listener){
|
19
|
+
mListener = listener;
|
20
|
+
}
|
21
|
+
}
|
@@ -1,18 +1,18 @@
|
|
1
1
|
/*------------------------------------------------------------------------
|
2
2
|
* (The MIT License)
|
3
|
-
*
|
3
|
+
*
|
4
4
|
* Copyright (c) 2008-2011 Rhomobile, Inc.
|
5
|
-
*
|
5
|
+
*
|
6
6
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
7
|
* of this software and associated documentation files (the "Software"), to deal
|
8
8
|
* in the Software without restriction, including without limitation the rights
|
9
9
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
10
10
|
* copies of the Software, and to permit persons to whom the Software is
|
11
11
|
* furnished to do so, subject to the following conditions:
|
12
|
-
*
|
12
|
+
*
|
13
13
|
* The above copyright notice and this permission notice shall be included in
|
14
14
|
* all copies or substantial portions of the Software.
|
15
|
-
*
|
15
|
+
*
|
16
16
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
17
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
18
18
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
@@ -20,7 +20,7 @@
|
|
20
20
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
21
21
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
22
22
|
* THE SOFTWARE.
|
23
|
-
*
|
23
|
+
*
|
24
24
|
* http://rhomobile.com
|
25
25
|
*------------------------------------------------------------------------*/
|
26
26
|
|
@@ -32,6 +32,9 @@ import java.net.URL;
|
|
32
32
|
import java.net.MalformedURLException;
|
33
33
|
import java.io.IOException;
|
34
34
|
import java.util.Map;
|
35
|
+
import java.util.HashMap;
|
36
|
+
|
37
|
+
import com.rhomobile.rhodes.util.PerformOnUiThread;
|
35
38
|
|
36
39
|
import com.rhomobile.rhodes.LocalFileProvider;
|
37
40
|
import com.rhomobile.rhodes.Logger;
|
@@ -69,7 +72,7 @@ public class RhoWebViewClient extends WebViewClient
|
|
69
72
|
private String host;
|
70
73
|
private String realm;
|
71
74
|
// private boolean pending;
|
72
|
-
|
75
|
+
|
73
76
|
public HttpAuthResult(HttpAuthHandler handler, String host, String realm) {
|
74
77
|
authHandler = handler;
|
75
78
|
this.host = host;
|
@@ -100,7 +103,7 @@ public class RhoWebViewClient extends WebViewClient
|
|
100
103
|
// public void setPending() {
|
101
104
|
// pending = true;
|
102
105
|
// }
|
103
|
-
//
|
106
|
+
//
|
104
107
|
// boolean isPending() {
|
105
108
|
// return pending;
|
106
109
|
// }
|
@@ -109,11 +112,27 @@ public class RhoWebViewClient extends WebViewClient
|
|
109
112
|
public String type() {
|
110
113
|
return "http";
|
111
114
|
}
|
112
|
-
|
115
|
+
|
113
116
|
}
|
114
|
-
|
117
|
+
|
115
118
|
private final String TAG = RhoWebViewClient.class.getSimpleName();
|
116
119
|
private GoogleWebView mWebView;
|
120
|
+
private static boolean ourIsDoNotTrack = false;
|
121
|
+
private static boolean ourIsDoNotSendAuthorise = false;
|
122
|
+
private static boolean ourIsDoNotVerifySSL = false;
|
123
|
+
|
124
|
+
|
125
|
+
public static void setDoNotTrack(boolean dnt) {
|
126
|
+
ourIsDoNotTrack = dnt;
|
127
|
+
}
|
128
|
+
|
129
|
+
public static void setDoNotVerifySSL(boolean do_not_verify) {
|
130
|
+
ourIsDoNotVerifySSL = do_not_verify;
|
131
|
+
}
|
132
|
+
|
133
|
+
public static void setDoNotSendAuthorise(boolean dnsa) {
|
134
|
+
ourIsDoNotSendAuthorise = dnsa;
|
135
|
+
}
|
117
136
|
|
118
137
|
public RhoWebViewClient(GoogleWebView webView) {
|
119
138
|
mWebView = webView;
|
@@ -128,44 +147,49 @@ public class RhoWebViewClient extends WebViewClient
|
|
128
147
|
public void onLoadResource(WebView view, String url) {
|
129
148
|
Logger.I(TAG, "Load resource" + url);
|
130
149
|
|
131
|
-
|
150
|
+
try {
|
151
|
+
RhoExtManager.getImplementationInstance().onLoadResource(view, url);
|
152
|
+
}
|
153
|
+
catch (Exception e) {
|
154
|
+
|
155
|
+
}
|
132
156
|
}
|
133
157
|
|
134
|
-
|
158
|
+
|
135
159
|
@Override
|
136
160
|
public boolean shouldOverrideUrlLoading(WebView view, String url) {
|
137
161
|
Logger.I(TAG, "Loading URL: " + url);
|
138
|
-
|
162
|
+
|
139
163
|
//RhoElements implementation of "history:back"
|
140
164
|
if(url.equalsIgnoreCase("history:back")) {
|
141
165
|
Logger.I(TAG, "history:back");
|
142
166
|
view.goBack();
|
143
167
|
return true;
|
144
168
|
}
|
145
|
-
else if(url.equalsIgnoreCase("history:twiceback"))
|
169
|
+
else if(url.equalsIgnoreCase("history:twiceback"))
|
146
170
|
{
|
147
171
|
Logger.I(TAG, "history:twiceback");
|
148
172
|
view.goBack();
|
149
173
|
view.goBack();
|
150
174
|
return true;
|
151
175
|
}
|
152
|
-
|
153
|
-
if (url.contains(".HTM"))
|
176
|
+
|
177
|
+
if (url.contains(".HTM"))
|
154
178
|
{
|
155
179
|
url=url.replace(".HTML", ".html");
|
156
180
|
url=url.replace(".HTM", ".htm");
|
157
181
|
Logger.I(TAG, "Changed to lower case html, url="+ url);
|
158
182
|
}
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
183
|
+
|
184
|
+
|
185
|
+
|
186
|
+
|
163
187
|
boolean res = RhodesService.getInstance().handleUrlLoading(url);
|
164
188
|
if (!res) {
|
165
189
|
Logger.profStart("BROWSER_PAGE");
|
166
|
-
|
190
|
+
|
167
191
|
RhoExtManager.getImplementationInstance().onBeforeNavigate(view, url);
|
168
|
-
|
192
|
+
|
169
193
|
Uri localUri = LocalFileProvider.overrideUri(Uri.parse(url));
|
170
194
|
if (localUri != null) {
|
171
195
|
url = Uri.decode(localUri.toString());
|
@@ -173,20 +197,56 @@ public class RhoWebViewClient extends WebViewClient
|
|
173
197
|
view.loadUrl(url);
|
174
198
|
return true;
|
175
199
|
}
|
200
|
+
else {
|
201
|
+
|
202
|
+
|
203
|
+
/*
|
204
|
+
if (url.equals("https://authenticationtest.com/HTTPAuth/")) {
|
205
|
+
final WebView sview = view;
|
206
|
+
final String surl = url;
|
207
|
+
final HashMap<String, String> extraHeaders = new HashMap<String, String>();
|
208
|
+
extraHeaders.put("Authorization", "");
|
209
|
+
|
210
|
+
PerformOnUiThread.exec(new Runnable() {
|
211
|
+
|
212
|
+
@Override
|
213
|
+
public void run() {
|
214
|
+
sview.loadUrl(surl, extraHeaders);
|
215
|
+
}
|
216
|
+
});
|
217
|
+
return true;
|
218
|
+
}
|
219
|
+
*/
|
220
|
+
|
221
|
+
if (ourIsDoNotTrack || ourIsDoNotSendAuthorise) {
|
222
|
+
HashMap<String, String> extraHeaders = new HashMap<String, String>();
|
223
|
+
if (ourIsDoNotTrack) {
|
224
|
+
extraHeaders.put("DNT", "1");
|
225
|
+
}
|
226
|
+
if (ourIsDoNotSendAuthorise) {
|
227
|
+
extraHeaders.put("Authorization", "");
|
228
|
+
//ourIsDoNotSendAuthorise = false;
|
229
|
+
}
|
230
|
+
view.loadUrl(url, extraHeaders);
|
231
|
+
return true;
|
232
|
+
}
|
233
|
+
}
|
176
234
|
}
|
177
235
|
return res;
|
178
236
|
}
|
179
|
-
|
237
|
+
|
238
|
+
|
239
|
+
|
180
240
|
@Override
|
181
241
|
public void onPageStarted(WebView view, String url, Bitmap favicon) {
|
182
242
|
super.onPageStarted(view, url, favicon);
|
183
|
-
|
243
|
+
|
184
244
|
RhoExtManager.getImplementationInstance().onNavigateStarted(view, url);
|
185
245
|
|
186
246
|
if (mWebView.getConfig() != null && mWebView.getConfig().getBool(WebViewConfig.ENABLE_PAGE_LOADING_INDICATION))
|
187
247
|
RhodesActivity.safeGetInstance().getWindow().setFeatureInt(Window.FEATURE_PROGRESS, 0);
|
188
248
|
}
|
189
|
-
|
249
|
+
|
190
250
|
@Override
|
191
251
|
public void onPageFinished(WebView view, String url) {
|
192
252
|
|
@@ -221,9 +281,9 @@ public class RhoWebViewClient extends WebViewClient
|
|
221
281
|
@Override
|
222
282
|
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
|
223
283
|
super.onReceivedError(view, errorCode, description, failingUrl);
|
224
|
-
|
284
|
+
|
225
285
|
Logger.profStop("BROWSER_PAGE");
|
226
|
-
|
286
|
+
|
227
287
|
StringBuilder msg = new StringBuilder(failingUrl != null ? failingUrl : "null");
|
228
288
|
msg.append(" failed: ");
|
229
289
|
msg.append(errorCode);
|
@@ -233,7 +293,7 @@ public class RhoWebViewClient extends WebViewClient
|
|
233
293
|
RhoExtManager.getImplementationInstance().onLoadError(view, IRhoExtension.LoadErrorReason.INTERNAL_ERROR);
|
234
294
|
}
|
235
295
|
|
236
|
-
@Override
|
296
|
+
@Override
|
237
297
|
public void onReceivedClientCertRequest(WebView view, ClientCertRequest request)
|
238
298
|
{
|
239
299
|
try {
|
@@ -250,7 +310,7 @@ public class RhoWebViewClient extends WebViewClient
|
|
250
310
|
} catch (Throwable e) {
|
251
311
|
request.cancel();
|
252
312
|
}
|
253
|
-
|
313
|
+
|
254
314
|
}
|
255
315
|
|
256
316
|
@Override
|
@@ -276,7 +336,7 @@ public class RhoWebViewClient extends WebViewClient
|
|
276
336
|
}
|
277
337
|
}
|
278
338
|
|
279
|
-
if(RhoConf.getBool("no_ssl_verify_peer")) {
|
339
|
+
if(ourIsDoNotVerifySSL || RhoConf.getBool("no_ssl_verify_peer")) {
|
280
340
|
Logger.D(TAG, "Skip SSL error.");
|
281
341
|
handler.proceed();
|
282
342
|
} else {
|
@@ -306,7 +366,7 @@ public class RhoWebViewClient extends WebViewClient
|
|
306
366
|
//public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
|
307
367
|
// return null;
|
308
368
|
//}
|
309
|
-
|
369
|
+
|
310
370
|
@Override
|
311
371
|
public void onReceivedHttpAuthRequest (WebView view, HttpAuthHandler handler, String host, String realm) {
|
312
372
|
IRhoConfig rhoelementsGetConfig = RhoExtManager.getInstance().getConfig("rhoelementsext");
|
@@ -333,10 +393,10 @@ public class RhoWebViewClient extends WebViewClient
|
|
333
393
|
private void checkTitleDataContain(WebView view){
|
334
394
|
// Set title
|
335
395
|
String title = view.getTitle();
|
336
|
-
if(! (title.equalsIgnoreCase("data:text/html,") || title.equalsIgnoreCase("data:,")
|
396
|
+
if(! (title.equalsIgnoreCase("data:text/html,") || title.equalsIgnoreCase("data:,")
|
337
397
|
|| title.contains("about:blank"))){
|
338
398
|
RhodesActivity.safeGetInstance().setTitle(title);
|
339
399
|
}
|
340
400
|
}
|
341
|
-
|
401
|
+
|
342
402
|
}
|
@@ -0,0 +1,118 @@
|
|
1
|
+
package com.rhomobile.rhodes.webview;
|
2
|
+
|
3
|
+
|
4
|
+
import androidx.annotation.NonNull;
|
5
|
+
import androidx.annotation.Nullable;
|
6
|
+
|
7
|
+
import java.util.Collection;
|
8
|
+
import java.util.HashMap;
|
9
|
+
import java.util.Hashtable;
|
10
|
+
import java.util.Iterator;
|
11
|
+
import java.util.Map;
|
12
|
+
import java.util.Set;
|
13
|
+
|
14
|
+
import com.rhomobile.rhodes.Logger;
|
15
|
+
import com.rhomobile.rhodes.RhoConf;
|
16
|
+
|
17
|
+
public class TauWebViewOptions {
|
18
|
+
|
19
|
+
public final static String TAU_WEBVIEW_OPTIONS_DEFAUlT_MASK = "*";
|
20
|
+
public final static String TAU_WEBVIEW_OPTIONS_DISABLE_KEYBOARD = "DisableKeyboard";
|
21
|
+
public final static String TAU_WEBVIEW_OPTIONS_DISABLE_SCROLL = "DisableScroll";
|
22
|
+
public final static String TAU_WEBVIEW_OPTIONS_INJECT_META_VIEWPORT = "InjectMetaViewport";
|
23
|
+
public final static String TAU_WEBVIEW_OPTIONS_SCREN_ORIENTATION = "ScreenOrientation";
|
24
|
+
public final static String TAU_WEBVIEW_OPTIONS_INJECT_JAVASCRIPT = "InjectJavascript";
|
25
|
+
|
26
|
+
|
27
|
+
private static final String TAG = TauWebViewOptions.class.getSimpleName();
|
28
|
+
|
29
|
+
private static TauWebViewOptions ourInstance = null;
|
30
|
+
|
31
|
+
private Map<String, Map> mOptions = new Hashtable<String, Map>();
|
32
|
+
|
33
|
+
public static TauWebViewOptions getInstance() {
|
34
|
+
if (ourInstance == null) {
|
35
|
+
ourInstance = new TauWebViewOptions();
|
36
|
+
}
|
37
|
+
return ourInstance;
|
38
|
+
}
|
39
|
+
|
40
|
+
public void addUrlOptions(String mask, Map<String, String> options) {
|
41
|
+
Logger.T(TAG, "$$$ addUrlOptions with mask = " + mask);
|
42
|
+
Iterator<String> iter = options.keySet().iterator();
|
43
|
+
while (iter.hasNext()) {
|
44
|
+
String key = iter.next();
|
45
|
+
String value = options.get(key);
|
46
|
+
Logger.T(TAG, "$$$ addUrlOptions ["+key+"] = ["+value+"]");
|
47
|
+
}
|
48
|
+
mOptions.put(mask, options);
|
49
|
+
}
|
50
|
+
|
51
|
+
public Map<String, String> getOptionsForUrl(String url) {
|
52
|
+
Iterator<String> iter = mOptions.keySet().iterator();
|
53
|
+
Map<String, String> def_opt = new Hashtable<String, String>();
|
54
|
+
while (iter.hasNext()) {
|
55
|
+
String key = iter.next();
|
56
|
+
if (key.equals(TAU_WEBVIEW_OPTIONS_DEFAUlT_MASK)) {
|
57
|
+
def_opt = (Map<String, String>)mOptions.get(key);
|
58
|
+
}
|
59
|
+
if (url.contains(key)) {
|
60
|
+
return (Map<String, String>)mOptions.get(key);
|
61
|
+
}
|
62
|
+
}
|
63
|
+
return def_opt;
|
64
|
+
}
|
65
|
+
|
66
|
+
public boolean isKeyboardDisabled(String url) {
|
67
|
+
Map<String, String> opt = getOptionsForUrl(url);
|
68
|
+
String value = opt.get(TAU_WEBVIEW_OPTIONS_DISABLE_KEYBOARD);
|
69
|
+
if (value != null) {
|
70
|
+
return value.equals("1");
|
71
|
+
}
|
72
|
+
return false;
|
73
|
+
}
|
74
|
+
|
75
|
+
public boolean isScrollDisabled(String url) {
|
76
|
+
Map<String, String> opt = getOptionsForUrl(url);
|
77
|
+
String value = opt.get(TAU_WEBVIEW_OPTIONS_DISABLE_SCROLL);
|
78
|
+
if (value != null) {
|
79
|
+
return value.equals("1");
|
80
|
+
}
|
81
|
+
return false;
|
82
|
+
}
|
83
|
+
|
84
|
+
public String getMetaViewport(String url) {
|
85
|
+
Map<String, String> opt = getOptionsForUrl(url);
|
86
|
+
String value = opt.get(TAU_WEBVIEW_OPTIONS_INJECT_META_VIEWPORT);
|
87
|
+
if (value != null) {
|
88
|
+
return value;
|
89
|
+
}
|
90
|
+
return null;
|
91
|
+
}
|
92
|
+
|
93
|
+
public String getScreenOrientation(String url) {
|
94
|
+
Map<String, String> opt = getOptionsForUrl(url);
|
95
|
+
String value = opt.get(TAU_WEBVIEW_OPTIONS_SCREN_ORIENTATION);
|
96
|
+
if (value != null) {
|
97
|
+
return value;
|
98
|
+
}
|
99
|
+
return null;
|
100
|
+
}
|
101
|
+
|
102
|
+
public String getInjectJavascript(String url) {
|
103
|
+
Map<String, String> opt = getOptionsForUrl(url);
|
104
|
+
String value = opt.get(TAU_WEBVIEW_OPTIONS_INJECT_JAVASCRIPT);
|
105
|
+
if (value != null) {
|
106
|
+
return value;
|
107
|
+
}
|
108
|
+
return null;
|
109
|
+
}
|
110
|
+
|
111
|
+
public String getParameterByUrl(String url, String name) {
|
112
|
+
Map<String, String> opt = getOptionsForUrl(url);
|
113
|
+
String value = opt.get(name);
|
114
|
+
return value;
|
115
|
+
}
|
116
|
+
|
117
|
+
|
118
|
+
}
|
@@ -13,39 +13,40 @@ import com.rhomobile.rhodes.RhoConf;
|
|
13
13
|
|
14
14
|
public class WebSettingsProviderBase implements IWebSettingsProvider {
|
15
15
|
protected static final String TAG = "WebSettingsProvider";
|
16
|
-
|
16
|
+
|
17
17
|
@SuppressLint("SetJavaScriptEnabled")
|
18
18
|
public void fillSettings(WebSettings settings, IRhoConfig config) {
|
19
|
-
|
19
|
+
|
20
20
|
boolean enableZoom = config == null || config.getBool(WebViewConfig.ENABLE_ZOOM);
|
21
21
|
boolean enableCache = config == null || config.getBool(WebViewConfig.ENABLE_CACHE);
|
22
22
|
boolean enableMediaPlaybackWithoutGesture = config != null && config.getBool(WebViewConfig.ENABLE_MEDIA_PLAYBACK_WITHOUT_GESTURE);
|
23
23
|
String customUA = RhoConf.getString("useragent");
|
24
|
-
|
25
|
-
settings.setMediaPlaybackRequiresUserGesture(!enableMediaPlaybackWithoutGesture);
|
24
|
+
|
25
|
+
//settings.setMediaPlaybackRequiresUserGesture(!enableMediaPlaybackWithoutGesture);
|
26
|
+
settings.setMediaPlaybackRequiresUserGesture(false);
|
26
27
|
settings.setSavePassword(false);
|
27
28
|
settings.setSaveFormData(false);
|
28
29
|
settings.setJavaScriptEnabled(true);
|
29
30
|
settings.setJavaScriptCanOpenWindowsAutomatically(false);
|
30
31
|
settings.setSupportZoom(enableZoom);
|
31
32
|
settings.setBuiltInZoomControls(enableZoom);
|
32
|
-
settings.setAppCacheEnabled(true);
|
33
|
+
//settings.setAppCacheEnabled(true);
|
33
34
|
if(!RhoConf.getString("fontFamily").isEmpty())
|
34
35
|
settings.setStandardFontFamily(RhoConf.getString("fontFamily"));
|
35
36
|
//customUA = updateRevesionOfCustomUA(settings.getUserAgentString(), customUA);
|
36
37
|
//settings.setUserAgentString(customUA);
|
37
|
-
if(RhoConf.isExist("ApplicationCachePath")){
|
38
|
-
|
39
|
-
|
40
|
-
}
|
41
|
-
if(RhoConf.isExist("ApplicationCacheQuota")){
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
}
|
38
|
+
//if(RhoConf.isExist("ApplicationCachePath")){
|
39
|
+
// if(!RhoConf.getString("ApplicationCachePath").isEmpty())
|
40
|
+
// settings.setAppCachePath(RhoConf.getString("ApplicationCachePath"));
|
41
|
+
//}
|
42
|
+
//if(RhoConf.isExist("ApplicationCacheQuota")){
|
43
|
+
// if(!RhoConf.getString("ApplicationCacheQuota").isEmpty())
|
44
|
+
// try{
|
45
|
+
// settings.setAppCacheMaxSize(Long.valueOf(RhoConf.getString("ApplicationCacheQuota")).longValue());
|
46
|
+
// }
|
47
|
+
// catch(NumberFormatException exp){
|
48
|
+
// }
|
49
|
+
//}
|
49
50
|
Logger.T(TAG, "Enable Zoom: " + enableZoom);
|
50
51
|
|
51
52
|
if (enableCache) {
|
data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/WebSettingsProviderEclairMR1.java
CHANGED
@@ -9,10 +9,10 @@ import com.rhomobile.rhodes.util.ContextFactory;
|
|
9
9
|
public class WebSettingsProviderEclairMR1 extends WebSettingsProviderEclair implements IWebSettingsProvider {
|
10
10
|
public void fillSettings(WebSettings settings, IRhoConfig config) {
|
11
11
|
super.fillSettings(settings, config);
|
12
|
-
settings.setAppCacheMaxSize(5 * 1048576);
|
13
|
-
String pathToCache = ContextFactory.getAppContext().getDir("database", Context.MODE_PRIVATE).getPath();
|
14
|
-
settings.setAppCachePath(pathToCache);
|
15
|
-
settings.setAppCacheEnabled(true);
|
12
|
+
//settings.setAppCacheMaxSize(5 * 1048576);
|
13
|
+
//String pathToCache = ContextFactory.getAppContext().getDir("database", Context.MODE_PRIVATE).getPath();
|
14
|
+
//settings.setAppCachePath(pathToCache);
|
15
|
+
//settings.setAppCacheEnabled(true);
|
16
16
|
|
17
17
|
settings.setDomStorageEnabled(true);
|
18
18
|
}
|
@@ -3,6 +3,7 @@ platform/android/Rhodes/src/com/rhomobile/rhodes/BaseActivity.java
|
|
3
3
|
platform/android/Rhodes/src/com/rhomobile/rhodes/ConnectionChangeReceiver.java
|
4
4
|
platform/android/Rhodes/src/com/rhomobile/rhodes/HttpLog.java
|
5
5
|
platform/android/Rhodes/src/com/rhomobile/rhodes/LocalFileProvider.java
|
6
|
+
platform/android/Rhodes/src/com/rhomobile/rhodes/RhoFileProvider.java
|
6
7
|
platform/android/Rhodes/src/com/rhomobile/rhodes/Logger.java
|
7
8
|
platform/android/Rhodes/src/com/rhomobile/rhodes/MemoryInfoCollector.java
|
8
9
|
platform/android/Rhodes/src/com/rhomobile/rhodes/NativeBar.java
|
@@ -105,6 +106,7 @@ platform/android/Rhodes/src/com/rhomobile/rhodes/webview/WebSettingsProviderHone
|
|
105
106
|
platform/android/Rhodes/src/com/rhomobile/rhodes/webview/WebSettingsProviderJellyBean.java
|
106
107
|
platform/android/Rhodes/src/com/rhomobile/rhodes/webview/WebSettingsProviderKitKat.java
|
107
108
|
platform/android/Rhodes/src/com/rhomobile/rhodes/webview/WebViewConfig.java
|
109
|
+
platform/android/Rhodes/src/com/rhomobile/rhodes/webview/TauWebViewOptions.java
|
108
110
|
platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/AbstractRhoExtension.java
|
109
111
|
platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/AbstractRhoListener.java
|
110
112
|
platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/IRhoConfig.java
|
@@ -130,3 +132,14 @@ platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunction
|
|
130
132
|
platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality26.java
|
131
133
|
platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionalityManager.java
|
132
134
|
platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/OsVersionManager.java
|
135
|
+
platform/android/Rhodes/src/com/rhomobile/rhodes/kioskservices/MyAccessibilityService.java
|
136
|
+
platform/android/Rhodes/src/com/rhomobile/rhodes/kioskservices/CallReceiver.java
|
137
|
+
platform/android/Rhodes/src/com/rhomobile/rhodes/kioskservices/KioskManager.java
|
138
|
+
platform/android/Rhodes/src/com/rhomobile/rhodes/kioskservices/MyNotificationListenerService.java
|
139
|
+
platform/android/Rhodes/src/com/rhomobile/rhodes/kioskservices/MyOverlayService.java
|
140
|
+
platform/android/Rhodes/src/com/rhomobile/rhodes/kioskservices/PermissionManager.java
|
141
|
+
platform/android/Rhodes/src/com/rhomobile/rhodes/kioskservices/IKioskMode.java
|
142
|
+
platform/android/Rhodes/src/com/rhomobile/rhodes/permissioncheck/PermissionListGenerate.java
|
143
|
+
platform/android/Rhodes/src/com/rhomobile/rhodes/permissioncheck/CheckDrawable.java
|
144
|
+
platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoInputConnectionWrapper.java
|
145
|
+
platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoInputListener.java
|
@@ -118,8 +118,15 @@ namespace 'device' do
|
|
118
118
|
usesPermissions.uniq!
|
119
119
|
|
120
120
|
hidden = get_boolean(prebuilt_config['hidden_app'])
|
121
|
+
home_app = false
|
122
|
+
if app_config['android'] != nil
|
123
|
+
if app_config['android']['home_app'] != nil
|
124
|
+
home_app = app_config['android']['home_app']
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
121
128
|
|
122
|
-
generator = ManifestGenerator.new JAVA_PACKAGE_NAME, $app_package_name, hidden, usesPermissions
|
129
|
+
generator = ManifestGenerator.new JAVA_PACKAGE_NAME, $app_package_name, hidden, home_app, usesPermissions
|
123
130
|
|
124
131
|
generator.versionName = versionName
|
125
132
|
generator.versionCode = version
|