rhodes 2.0.2 → 2.0.3
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.
- data/CHANGELOG +10 -0
- data/lib/framework/rho/rhoerror.rb +4 -0
- data/lib/framework/rhodes.rb +2 -2
- data/lib/framework/rhom/rhom.rb +21 -1
- data/lib/framework/version.rb +2 -2
- data/lib/rhodes.rb +2 -2
- data/platform/android/Rhodes/AndroidManifest.xml +2 -2
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/Rhodes.java +21 -6
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesInstance.java +1 -1
- data/platform/bb/rhodes/src/com/rho/RhoRubyHelper.java +10 -0
- data/platform/bb/rhodes/src/com/rho/net/NetworkAccess.java +1 -1
- data/platform/bb/rhodes/src/com/rho/rubyext/GeoLocation.java +2 -2
- data/platform/bb/rhodes/src/rhomobile/PushListeningThread.java +4 -2
- data/platform/bb/rhodes/src/rhomobile/RhodesApplication.java +52 -11
- data/platform/iphone/Classes/NativeBar.m +37 -18
- data/platform/iphone/Classes/Rhodes.h +2 -0
- data/platform/iphone/Classes/Rhodes.m +27 -8
- data/platform/iphone/Classes/SimpleMainView.h +7 -5
- data/platform/iphone/Classes/SimpleMainView.m +155 -36
- data/platform/iphone/Classes/TabbedMainView.h +2 -4
- data/platform/iphone/Classes/TabbedMainView.m +12 -10
- data/platform/iphone/Classes/WebView.m +1 -0
- data/platform/iphone/Info.plist +7 -1
- data/platform/iphone/icon114.png +0 -0
- data/platform/iphone/icon57.png +0 -0
- data/platform/iphone/icon72.png +0 -0
- data/platform/iphone/rbuild/iphone.rake +102 -16
- data/platform/iphone/rhorunner.xcodeproj/project.pbxproj +12 -0
- data/platform/shared/common/IRhoThreadImpl.h +1 -1
- data/platform/shared/common/PosixThreadImpl.cpp +17 -22
- data/platform/shared/common/PosixThreadImpl.h +1 -1
- data/platform/shared/common/RhoThread.cpp +7 -3
- data/platform/shared/common/RhoThread.h +21 -7
- data/platform/shared/common/RhodesApp.cpp +13 -9
- data/platform/shared/common/RhodesApp.h +1 -1
- data/platform/shared/common/ThreadQueue.cpp +6 -4
- data/platform/shared/rubyJVM/src/com/rho/IRhoRubyHelper.java +2 -0
- data/platform/shared/rubyJVM/src/com/rho/RhoThread.java +18 -8
- data/platform/shared/rubyJVM/src/com/rho/RhodesApp.java +70 -2
- data/platform/shared/rubyJVM/src/com/rho/ThreadQueue.java +143 -0
- data/platform/shared/rubyJVM/src/com/rho/sync/ClientRegister.java +15 -5
- data/platform/shared/rubyJVM/src/com/rho/sync/SyncEngine.java +42 -36
- data/platform/shared/rubyJVM/src/com/rho/sync/SyncNotify.java +63 -20
- data/platform/shared/rubyJVM/src/com/rho/sync/SyncSource.java +4 -4
- data/platform/shared/rubyJVM/src/com/rho/sync/SyncThread.java +12 -2
- data/platform/shared/rubyJVM/src/com/xruby/runtime/lang/RhoSupport.java +9 -3
- data/platform/shared/sync/ClientRegister.cpp +11 -3
- data/platform/shared/sync/ClientRegister.h +1 -0
- data/platform/shared/sync/SyncEngine.cpp +38 -35
- data/platform/shared/sync/SyncEngine.h +2 -1
- data/platform/shared/sync/SyncNotify.cpp +53 -20
- data/platform/shared/sync/SyncNotify.h +9 -2
- data/platform/shared/sync/SyncSource.cpp +3 -3
- data/platform/shared/sync/SyncSource.h +1 -1
- data/platform/shared/sync/SyncThread.cpp +9 -2
- data/platform/wm/rhodes/Alert.cpp +35 -21
- data/platform/wm/rhodes/Alert.h +11 -2
- data/platform/wm/rhodes/rho/common/RhoThreadImpl.cpp +11 -12
- data/platform/wm/rhodes/rho/common/RhoThreadImpl.h +2 -0
- data/res/generators/templates/application/build.yml +1 -1
- data/rhodes.gemspec +2 -2
- data/spec/framework_spec/rhoconfig.txt +1 -0
- data/spec/phone_spec/rhoconfig.txt +2 -0
- metadata +8 -5
- data/Manifest.txt +0 -5333
data/CHANGELOG
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
## 2.0.3
|
2
|
+
* #4317065 - App store requires 3 icons now for iphone
|
3
|
+
* #4356949 - iPhone simulator: rake run:iphone open simulator but there is no
|
4
|
+
application
|
5
|
+
* #4394846 - Android: no application screen when go to background and switch back
|
6
|
+
* #4365316 - build.yml should default to iPhoneSimulator 4.0
|
7
|
+
|
8
|
+
## 2.0.2
|
9
|
+
* #4223112 - fixed problem with script order in iphone build
|
10
|
+
|
1
11
|
## 2.0.1
|
2
12
|
* #4049590 - Android 2.2, rhodes rc2: take picture hangs
|
3
13
|
* #4103477 - Android 2.2: can't write to DB
|
data/lib/framework/rhodes.rb
CHANGED
data/lib/framework/rhom/rhom.rb
CHANGED
@@ -40,6 +40,26 @@ module Rhom
|
|
40
40
|
c_id = ::Rho::RHO.get_user_db().select_from_table('client_info','client_id')[0]
|
41
41
|
c_id.nil? ? nil : c_id['client_id']
|
42
42
|
end
|
43
|
+
|
44
|
+
def database_client_reset
|
45
|
+
SyncEngine.stop_sync
|
46
|
+
|
47
|
+
params = ["", "", 0]
|
48
|
+
::Rho::RHO.get_user_db().execute_sql("UPDATE client_info SET client_id=?, token=?, token_sent=?", params)
|
49
|
+
|
50
|
+
if ( Rho::RhoConfig.exists?('bulksync_state') )
|
51
|
+
Rho::RhoConfig.bulksync_state='0'
|
52
|
+
end
|
53
|
+
::Rho::RHO.get_user_db().execute_sql("UPDATE sources SET token=0")
|
54
|
+
|
55
|
+
::Rho::RHO.get_db_partitions().each_value do |db|
|
56
|
+
db.destroy_tables(
|
57
|
+
:exclude => (['sources','client_info']) )
|
58
|
+
end
|
59
|
+
|
60
|
+
hash_migrate = {}
|
61
|
+
::Rho::RHO.init_schema_sources(hash_migrate)
|
62
|
+
end
|
43
63
|
|
44
64
|
def database_full_reset(reset_client_info=false)
|
45
65
|
SyncEngine.stop_sync
|
@@ -68,7 +88,7 @@ module Rhom
|
|
68
88
|
database_full_reset(true)
|
69
89
|
SyncEngine.logout
|
70
90
|
end
|
71
|
-
|
91
|
+
|
72
92
|
def search(args)
|
73
93
|
searchParams = ""
|
74
94
|
|
data/lib/framework/version.rb
CHANGED
data/lib/rhodes.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
2
2
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
3
3
|
package="com.rhomobile.rhodes"
|
4
|
-
android:versionCode="
|
5
|
-
android:versionName="2.0.
|
4
|
+
android:versionCode="23"
|
5
|
+
android:versionName="2.0.3">
|
6
6
|
<uses-sdk android:minSdkVersion="3" />
|
7
7
|
<application android:icon="@drawable/icon"
|
8
8
|
android:multiprocess="true"
|
@@ -41,6 +41,7 @@ import com.rhomobile.rhodes.uri.VideoUriHandler;
|
|
41
41
|
|
42
42
|
import android.app.Activity;
|
43
43
|
import android.content.Context;
|
44
|
+
import android.content.Intent;
|
44
45
|
import android.content.pm.ActivityInfo;
|
45
46
|
import android.content.pm.ApplicationInfo;
|
46
47
|
import android.content.pm.PackageManager.NameNotFoundException;
|
@@ -84,9 +85,11 @@ public class Rhodes extends Activity {
|
|
84
85
|
public static int WINDOW_FLAGS = WindowManager.LayoutParams.FLAG_FULLSCREEN;
|
85
86
|
public static int WINDOW_MASK = WindowManager.LayoutParams.FLAG_FULLSCREEN;
|
86
87
|
|
87
|
-
|
88
|
+
public static int MAX_PROGRESS = 10000;
|
88
89
|
|
89
|
-
|
90
|
+
public static boolean ENABLE_LOADING_INDICATION = true;
|
91
|
+
|
92
|
+
private static boolean ownActivityActivated;
|
90
93
|
|
91
94
|
private boolean needGeoLocationRestart = false;
|
92
95
|
|
@@ -481,8 +484,9 @@ public class Rhodes extends Activity {
|
|
481
484
|
@Override
|
482
485
|
public void onCreate(Bundle savedInstanceState) {
|
483
486
|
super.onCreate(savedInstanceState);
|
484
|
-
|
485
|
-
Logger.
|
487
|
+
|
488
|
+
// Here Log should be used, not Logger. It is because Logger is not initialized yet.
|
489
|
+
Log.v(TAG, "+++ onCreate");
|
486
490
|
|
487
491
|
Thread ct = Thread.currentThread();
|
488
492
|
ct.setPriority(Thread.MAX_PRIORITY);
|
@@ -571,13 +575,16 @@ public class Rhodes extends Activity {
|
|
571
575
|
protected void onStart() {
|
572
576
|
super.onStart();
|
573
577
|
Logger.T(TAG, "+++ onStart");
|
578
|
+
ownActivityActivated = false;
|
579
|
+
if (needGeoLocationRestart) {
|
580
|
+
GeoLocation.isKnownPosition();
|
581
|
+
needGeoLocationRestart = false;
|
582
|
+
}
|
574
583
|
}
|
575
584
|
|
576
585
|
@Override
|
577
586
|
protected void onResume() {
|
578
587
|
super.onResume();
|
579
|
-
if (needGeoLocationRestart)
|
580
|
-
GeoLocation.isKnownPosition();
|
581
588
|
Logger.T(TAG, "+++ onResume");
|
582
589
|
}
|
583
590
|
|
@@ -592,6 +599,8 @@ public class Rhodes extends Activity {
|
|
592
599
|
Logger.T(TAG, "+++ onStop");
|
593
600
|
needGeoLocationRestart = GeoLocation.isAvailable();
|
594
601
|
GeoLocation.stop();
|
602
|
+
if (!ownActivityActivated)
|
603
|
+
stopSelf();
|
595
604
|
super.onStop();
|
596
605
|
}
|
597
606
|
|
@@ -765,6 +774,12 @@ public class Rhodes extends Activity {
|
|
765
774
|
Process.killProcess(Process.myPid());
|
766
775
|
}
|
767
776
|
|
777
|
+
@Override
|
778
|
+
public void startActivity(Intent intent) {
|
779
|
+
ownActivityActivated = true;
|
780
|
+
super.startActivity(intent);
|
781
|
+
}
|
782
|
+
|
768
783
|
static {
|
769
784
|
NativeLibraries.load();
|
770
785
|
}
|
@@ -111,6 +111,16 @@ public class RhoRubyHelper implements IRhoRubyHelper {
|
|
111
111
|
return netCallback.m_response;
|
112
112
|
}
|
113
113
|
|
114
|
+
public void navigateUrl(String url)
|
115
|
+
{
|
116
|
+
WebView.navigate(url);
|
117
|
+
}
|
118
|
+
|
119
|
+
public void navigateBack()
|
120
|
+
{
|
121
|
+
RhodesApplication.getInstance().navigateBack();
|
122
|
+
}
|
123
|
+
|
114
124
|
static Hashtable m_appProperties = new Hashtable();
|
115
125
|
public String getAppProperty(String name)
|
116
126
|
{
|
@@ -205,7 +205,7 @@ public class NetworkAccess implements INetworkAccess {
|
|
205
205
|
|
206
206
|
try {
|
207
207
|
String url = strUrl;
|
208
|
-
if (!ignoreSuffix)
|
208
|
+
if ( RhoConf.getInstance().getBool("bb_sim_use_deviceside") || !ignoreSuffix )
|
209
209
|
url += URLsuffix;
|
210
210
|
if (url.startsWith("https"))
|
211
211
|
url += ";EndToEndDesired;RdHTTPS";
|
@@ -5,6 +5,7 @@ import java.util.Vector;
|
|
5
5
|
|
6
6
|
import javax.microedition.io.*;
|
7
7
|
|
8
|
+
import com.rho.FilePath;
|
8
9
|
import com.rho.RhoEmptyLogger;
|
9
10
|
import com.rho.RhoLogger;
|
10
11
|
import com.rho.RhodesApp;
|
@@ -268,10 +269,11 @@ public class PushListeningThread extends Thread {
|
|
268
269
|
op = splitOnce(ops[loop],"=");
|
269
270
|
if (op.length>1) {
|
270
271
|
op = splitOnce(op[1],",");
|
272
|
+
String fileName = FilePath.join("/public/alerts/", op[0]);
|
271
273
|
if (op.length>1) {
|
272
|
-
play_file(
|
274
|
+
play_file(fileName,op[1]);
|
273
275
|
} else {
|
274
|
-
play_file(
|
276
|
+
play_file(fileName,null);
|
275
277
|
}
|
276
278
|
}
|
277
279
|
}
|
@@ -86,7 +86,8 @@ final public class RhodesApplication extends UiApplication implements SystemList
|
|
86
86
|
/*if ( m_bSkipKeyPress )
|
87
87
|
m_bSkipKeyPress = false;
|
88
88
|
else*/
|
89
|
-
back();
|
89
|
+
//back();
|
90
|
+
RHODESAPP().navigateBack();
|
90
91
|
return true;
|
91
92
|
}
|
92
93
|
|
@@ -123,11 +124,12 @@ final public class RhodesApplication extends UiApplication implements SystemList
|
|
123
124
|
_mainScreen.addCustomMenuItem(label, value);
|
124
125
|
}
|
125
126
|
|
126
|
-
private String m_strAppBackUrl ="";
|
127
|
+
//private String m_strAppBackUrl ="";
|
127
128
|
|
128
129
|
public void resetMenuItems() {
|
129
130
|
_mainScreen.setMenuItems(new Vector());
|
130
|
-
m_strAppBackUrl = "";
|
131
|
+
//m_strAppBackUrl = "";
|
132
|
+
RHODESAPP().setAppBackUrl("");
|
131
133
|
}
|
132
134
|
|
133
135
|
public void postUrl(String url, String body, HttpHeaders headers) {
|
@@ -194,7 +196,35 @@ final public class RhodesApplication extends UiApplication implements SystemList
|
|
194
196
|
return false;
|
195
197
|
}
|
196
198
|
|
197
|
-
void
|
199
|
+
public void navigateBack()
|
200
|
+
{
|
201
|
+
if ( RHODESAPP().isCloseBack() )
|
202
|
+
{
|
203
|
+
_mainScreen.close();
|
204
|
+
return;
|
205
|
+
}
|
206
|
+
|
207
|
+
String url = "";
|
208
|
+
if ( _history.size() <= 1 )
|
209
|
+
{
|
210
|
+
if ( RhoConf.getInstance().getBool("bb_disable_closebyback"))
|
211
|
+
return;
|
212
|
+
|
213
|
+
_mainScreen.close();
|
214
|
+
return;
|
215
|
+
}
|
216
|
+
int nPos = _history.size()-2;
|
217
|
+
url = (String)_history.elementAt(nPos);
|
218
|
+
_history.removeElementAt(nPos+1);
|
219
|
+
|
220
|
+
// this.m_oBrowserAdapter.goBack();
|
221
|
+
|
222
|
+
saveCurrentLocation(url);
|
223
|
+
navigateUrl(url);
|
224
|
+
}
|
225
|
+
/*
|
226
|
+
void back()
|
227
|
+
{
|
198
228
|
String url = m_strAppBackUrl;
|
199
229
|
if ( url.length() == 0)
|
200
230
|
{
|
@@ -220,7 +250,7 @@ final public class RhodesApplication extends UiApplication implements SystemList
|
|
220
250
|
|
221
251
|
saveCurrentLocation(url);
|
222
252
|
navigateUrl(url);
|
223
|
-
}
|
253
|
+
}*/
|
224
254
|
|
225
255
|
String removeSemicolon(String str)
|
226
256
|
{
|
@@ -673,7 +703,8 @@ final public class RhodesApplication extends UiApplication implements SystemList
|
|
673
703
|
};
|
674
704
|
private MenuItem backItem = new MenuItem("", 200000, 10) {
|
675
705
|
public void run() {
|
676
|
-
back();
|
706
|
+
//back();
|
707
|
+
RHODESAPP().navigateBack();
|
677
708
|
}
|
678
709
|
};
|
679
710
|
private MenuItem syncItem = new MenuItem("", 200000, 10) {
|
@@ -748,7 +779,9 @@ final public class RhodesApplication extends UiApplication implements SystemList
|
|
748
779
|
menu.add(contextMenu);
|
749
780
|
}
|
750
781
|
|
751
|
-
public void addCustomMenuItem(String label, final String value)
|
782
|
+
public void addCustomMenuItem(String label, final String value)
|
783
|
+
{
|
784
|
+
final String _label = label;
|
752
785
|
// Is this a default item? If so, use the existing menu item we have.
|
753
786
|
if (value.equalsIgnoreCase(RhodesApplication.LABEL_HOME)) {
|
754
787
|
setDefaultItemToMenuItems(label, homeItem);
|
@@ -772,13 +805,21 @@ final public class RhodesApplication extends UiApplication implements SystemList
|
|
772
805
|
menuItems = null;
|
773
806
|
} else {
|
774
807
|
if ( label.equalsIgnoreCase("back") )
|
775
|
-
m_strAppBackUrl = value;
|
808
|
+
//m_strAppBackUrl = value;
|
809
|
+
RHODESAPP().setAppBackUrl(value);
|
776
810
|
else
|
777
811
|
{
|
778
|
-
MenuItem itemToAdd = new MenuItem(label, 200000, 10)
|
812
|
+
MenuItem itemToAdd = new MenuItem(label, 200000, 10)
|
813
|
+
{
|
779
814
|
public void run()
|
780
815
|
{
|
781
|
-
|
816
|
+
try{
|
817
|
+
RHODESAPP().loadUrl(value);
|
818
|
+
}catch(Exception exc)
|
819
|
+
{
|
820
|
+
LOG.ERROR("Execute menu item: '" + _label + "' failed.", exc);
|
821
|
+
}
|
822
|
+
/* if (value != null && value.startsWith("callback:") )
|
782
823
|
{
|
783
824
|
String url = RHODESAPP().canonicalizeRhoUrl(value.substring(9));
|
784
825
|
RhoRubyHelper helper = new RhoRubyHelper();
|
@@ -788,7 +829,7 @@ final public class RhodesApplication extends UiApplication implements SystemList
|
|
788
829
|
String url = RHODESAPP().canonicalizeRhoUrl(value);
|
789
830
|
addToHistory(url, null );
|
790
831
|
navigateUrl(url);
|
791
|
-
}
|
832
|
+
}*/
|
792
833
|
}
|
793
834
|
};
|
794
835
|
menuItems.addElement(itemToAdd);
|
@@ -34,27 +34,46 @@ static int started = 0;
|
|
34
34
|
Rhodes *r = [Rhodes sharedInstance];
|
35
35
|
|
36
36
|
id mainView = [r mainView];
|
37
|
-
|
37
|
+
UIWindow* w = r.window;
|
38
|
+
|
39
|
+
SimpleMainView* smv = nil;
|
40
|
+
if ([mainView isKindOfClass:[SimpleMainView class]]) {
|
41
|
+
smv = (SimpleMainView*)mainView;
|
42
|
+
}
|
38
43
|
switch (type) {
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
44
|
+
case NOBAR_TYPE:
|
45
|
+
if (smv != nil) {
|
46
|
+
[smv removeToolbar];
|
47
|
+
}
|
48
|
+
else {
|
49
|
+
view = [[SimpleMainView alloc] initWithMainView:mainView parent:w ];
|
50
|
+
[r setMainView:view];
|
51
|
+
[view release];
|
52
|
+
}
|
53
|
+
started = 0;
|
54
|
+
break;
|
55
|
+
case TOOLBAR_TYPE:
|
56
|
+
if (smv != nil) {
|
57
|
+
[smv addToolbar:items];
|
58
|
+
}
|
59
|
+
else {
|
60
|
+
view = [[SimpleMainView alloc] initWithMainView:mainView parent:w toolbar:items];
|
61
|
+
[r setMainView:view];
|
62
|
+
[view release];
|
63
|
+
}
|
64
|
+
started = 1;
|
65
|
+
break;
|
66
|
+
case TABBAR_TYPE:
|
67
|
+
view = [[TabbedMainView alloc] initWithMainView:mainView parent:w tabs:items];
|
68
|
+
started = 1;
|
69
|
+
[r setMainView:view];
|
70
|
+
[view release];
|
71
|
+
break;
|
72
|
+
default:
|
73
|
+
RAWLOG_ERROR1("Unknown bar type passed: %d", type);
|
53
74
|
return;
|
54
75
|
}
|
55
|
-
|
56
|
-
[r setMainView:view];
|
57
|
-
[view release];
|
76
|
+
|
58
77
|
}
|
59
78
|
@end
|
60
79
|
|