rhodes 2.2.3 → 2.2.4.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. data/CHANGELOG +13 -0
  2. data/Rakefile +1 -1
  3. data/bin/c2dm.rb +59 -0
  4. data/lib/extensions/barcode/ext/barcode/platform/iphone/Rakefile +4 -0
  5. data/lib/framework/rho/rho.rb +2 -0
  6. data/lib/framework/rho/rhoapplication.rb +1 -0
  7. data/lib/framework/rhodes.rb +1 -1
  8. data/lib/framework/version.rb +1 -1
  9. data/lib/rhodes.rb +1 -1
  10. data/platform/android/Rhodes/AndroidManifest.xml +1 -1
  11. data/platform/android/Rhodes/jni/src/callbacks.cpp +21 -0
  12. data/platform/android/Rhodes/jni/src/nativebar.cpp +4 -0
  13. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoActivity.java +3 -1
  14. data/platform/android/Rhodes/src/com/rhomobile/rhodes/Rhodes.java +68 -7
  15. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java +113 -10
  16. data/platform/android/Rhodes/src/com/rhomobile/rhodes/SplashScreen.java +34 -3
  17. data/platform/android/Rhodes/src/com/rhomobile/rhodes/bluetooth/RhoBluetoothManager.java +21 -17
  18. data/platform/android/Rhodes/src/com/rhomobile/rhodes/datetime/DateTimePickerScreen.java +29 -5
  19. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java +7 -0
  20. data/platform/android/Rhodes/src/com/rhomobile/rhodes/uri/ExternalHttpHandler.java +37 -0
  21. data/platform/android/Rhodes/src/com/rhomobile/rhodes/uri/MailUriHandler.java +0 -1
  22. data/platform/android/build/RhodesSRC_build.files +24 -23
  23. data/platform/bb/Hsqldb/src/com/rho/db/HsqlDBStorage.java +6 -0
  24. data/platform/bb/RubyVM/src/com/rho/RhoLogger.java +42 -20
  25. data/platform/bb/RubyVM/src/com/rho/db/DBAdapter.java +111 -19
  26. data/platform/bb/RubyVM/src/com/rho/db/IDBStorage.java +2 -0
  27. data/platform/bb/RubyVM/src/com/rho/net/NetRequest.java +2 -1
  28. data/platform/bb/RubyVM/src/com/rho/net/URI.java +80 -0
  29. data/platform/bb/RubyVM/src/com/rho/sync/SyncEngine.java +21 -1
  30. data/platform/bb/RubyVM/src/com/rho/sync/SyncNotify.java +6 -1
  31. data/platform/bb/RubyVM/src/com/rho/sync/SyncSource.java +139 -46
  32. data/platform/bb/build/bb.rake +8 -3
  33. data/platform/bb/rhodes/platform/5.0/com/rho/RhodesApplicationPlatform.java +32 -21
  34. data/platform/bb/rhodes/src/com/rho/RhoRubyHelper.java +31 -14
  35. data/platform/bb/rhodes/src/com/rho/file/Jsr75File.java +3 -2
  36. data/platform/bb/rhodes/src/com/rho/rubyext/Alert.java +3 -2
  37. data/platform/bb/rhodes/src/com/rho/rubyext/System.java +28 -0
  38. data/platform/bb/rhodes/src/rhomobile/RhodesApplication.java +111 -26
  39. data/platform/iphone/Classes/AppManager/AppManager.m +22 -0
  40. data/platform/iphone/Classes/DateTimePickerDelegate.m +3 -0
  41. data/platform/iphone/Classes/MapView/MapViewController.h +8 -3
  42. data/platform/iphone/Classes/MapView/MapViewController.m +63 -12
  43. data/platform/iphone/Classes/NativeBar.h +4 -3
  44. data/platform/iphone/Classes/NativeBar.m +28 -1
  45. data/platform/iphone/Classes/Rhodes.m +87 -20
  46. data/platform/iphone/Classes/Signature/SignatureView.m +16 -10
  47. data/platform/iphone/Classes/Signature/SignatureViewController.m +2 -0
  48. data/platform/iphone/Classes/SimpleMainView.h +2 -0
  49. data/platform/iphone/Classes/SimpleMainView.m +120 -35
  50. data/platform/iphone/Classes/SplashViewController.h +8 -1
  51. data/platform/iphone/Classes/SplashViewController.m +233 -11
  52. data/platform/iphone/Classes/SplitView/LeftViewController.h +30 -0
  53. data/platform/iphone/Classes/SplitView/LeftViewController.m +189 -0
  54. data/platform/iphone/Classes/SplitView/RightViewController.h +54 -0
  55. data/platform/iphone/Classes/SplitView/RightViewController.m +268 -0
  56. data/platform/iphone/Classes/SplitView/SplitViewDelegate.h +22 -0
  57. data/platform/iphone/Classes/SplitView/SplitViewDelegate.m +92 -0
  58. data/platform/iphone/Classes/SplitView/SplittedMainView.h +65 -0
  59. data/platform/iphone/Classes/SplitView/SplittedMainView.m +304 -0
  60. data/platform/iphone/Classes/TabbedMainView.m +23 -6
  61. data/platform/iphone/Classes/WebView.m +1 -1
  62. data/platform/iphone/Info.plist +11 -2
  63. data/platform/iphone/rbuild/iphone.rake +80 -3
  64. data/platform/iphone/rhorunner.xcodeproj/project.pbxproj +50 -3
  65. data/platform/shared/common/RhoConf.cpp +5 -5
  66. data/platform/shared/db/DBAdapter.cpp +81 -3
  67. data/platform/shared/db/DBAdapter.h +1 -0
  68. data/platform/shared/json/JSONIterator.cpp +5 -0
  69. data/platform/shared/json/JSONIterator.h +1 -0
  70. data/platform/shared/net/CURLNetRequest.cpp +2 -2
  71. data/platform/shared/net/URI.cpp +53 -0
  72. data/platform/shared/net/URI.h +5 -1
  73. data/platform/shared/ruby/ext/system/system.i +9 -1
  74. data/platform/shared/ruby/ext/system/system_wrap.c +2632 -2574
  75. data/platform/shared/ruby/win32/win32.c +2 -0
  76. data/platform/shared/ruby/wince/direct.c +4 -0
  77. data/platform/shared/sync/SyncEngine.cpp +20 -1
  78. data/platform/shared/sync/SyncEngine.h +6 -1
  79. data/platform/shared/sync/SyncNotify.cpp +6 -1
  80. data/platform/shared/sync/SyncSource.cpp +130 -74
  81. data/platform/shared/sync/SyncSource.h +3 -1
  82. data/platform/wm/rhodes.sln +30 -22
  83. data/platform/wm/rhodes/Alert.cpp +4 -3
  84. data/platform/wm/rhodes/MainWindow.cpp +73 -20
  85. data/platform/wm/rhodes/RingtoneManager.cpp +4 -4
  86. data/platform/wm/rhodes/RingtoneManager.h +2 -1
  87. data/platform/wm/rhodes/Vibrate.cpp +1 -2
  88. data/platform/wm/rhodes/rho/rubyext/SystemImpl.cpp +37 -0
  89. data/platform/wm/rhodes/rhodes.vcproj +219 -5
  90. data/platform/wm/rhodes/stdafx.h +1 -0
  91. data/platform/wm/rubylib/rubylib.vcproj +10 -8
  92. data/platform/wm/sqlite3/sqlite3.vcproj +6 -4
  93. data/platform/wm/syncengine/syncengine.vcproj +7 -5
  94. data/platform/wm/tcmalloc/tcmalloc.vcproj +11 -8
  95. data/rakefile.rb +1 -1
  96. data/res/generators/templates/application/public/jqtouch/jqtouch.js +9 -1
  97. data/rhodes.gemspec +1 -1
  98. data/spec/phone_spec/app/spec/bulksync_spec.rb +71 -1
  99. metadata +17 -5
@@ -4725,6 +4725,7 @@ rb_w32_utime(const char *path, const struct utimbuf *times)
4725
4725
  return ret;
4726
4726
  }
4727
4727
 
4728
+ #ifndef _WIN32_WCE
4728
4729
  int
4729
4730
  rb_w32_mkdir(const char *path, int mode)
4730
4731
  {
@@ -4742,6 +4743,7 @@ rb_w32_mkdir(const char *path, int mode)
4742
4743
  );
4743
4744
  return ret;
4744
4745
  }
4746
+ #endif //#ifndef _WIN32_WCE
4745
4747
 
4746
4748
  int
4747
4749
  rb_w32_rmdir(const char *path)
@@ -52,3 +52,7 @@ int _mkdir(const char * dir)
52
52
  return rc==TRUE ? 0 : -1;
53
53
  }
54
54
 
55
+ int rb_w32_mkdir(const char *path, int mode)
56
+ {
57
+ return _mkdir(path);
58
+ }
@@ -44,6 +44,7 @@ void CSyncEngine::prepareSync(ESyncState eState, const CSourceID* oSrcID)
44
44
  m_bStopByUser = false;
45
45
  m_nErrCode = RhoAppAdapter.ERR_NONE;
46
46
  m_strError = "";
47
+ m_bIsSchemaChanged = false;
47
48
 
48
49
  loadAllSources();
49
50
 
@@ -302,6 +303,22 @@ CSyncSource* CSyncEngine::findSourceByName(const String& strSrcName)
302
303
  return findSource(CSourceID(strSrcName));
303
304
  }
304
305
 
306
+ void CSyncEngine::applyChangedValues(db::CDBAdapter& db)
307
+ {
308
+ DBResult( resSrc , db.executeSQL( "SELECT DISTINCT(source_id) FROM changed_values" ) );
309
+ for ( ; !resSrc.isEnd(); resSrc.next() )
310
+ {
311
+ int nSrcID = resSrc.getIntByIdx(0);
312
+ DBResult( res, db.executeSQL("SELECT source_id,sync_type,name, partition from sources WHERE source_id=?", nSrcID) );
313
+ if ( res.isEnd() )
314
+ continue;
315
+
316
+ CSyncSource src( res.getIntByIdx(0), res.getStringByIdx(2), "none", db, *this );
317
+
318
+ src.applyChangedValues();
319
+ }
320
+ }
321
+
305
322
  void CSyncEngine::loadAllSources()
306
323
  {
307
324
  m_sources.removeAllElements();
@@ -642,8 +659,10 @@ void CSyncEngine::loadBulkPartition(const String& strPartition )
642
659
  String CSyncEngine::makeBulkDataFileName(String strDataUrl, String strDbPath, String strExt)
643
660
  {
644
661
  CFilePath oUrlPath(strDataUrl);
645
- String strNewName = oUrlPath.getBaseName();
662
+ String strNewName = oUrlPath.getBaseName();
663
+
646
664
  String strOldName = RHOCONF().getString("bulksync_filename");
665
+
647
666
  if ( strOldName.length() > 0 && strNewName.compare(strOldName) != 0 )
648
667
  {
649
668
  CFilePath oFilePath(strDbPath);
@@ -47,7 +47,7 @@ private:
47
47
  boolean m_bNoThreaded;
48
48
  int m_nErrCode;
49
49
  String m_strError;
50
- boolean m_bIsSearch;
50
+ boolean m_bIsSearch, m_bIsSchemaChanged;
51
51
 
52
52
  public:
53
53
  CSyncEngine();
@@ -80,6 +80,9 @@ public:
80
80
  String getClientID()const{ return m_clientID; }
81
81
  void setSession(String strSession){m_strSession=strSession;}
82
82
  boolean isSessionExist(){ return m_strSession.length() > 0; }
83
+
84
+ void setSchemaChanged(boolean bChanged){ m_bIsSchemaChanged = bChanged; }
85
+ boolean isSchemaChanged(){ return m_bIsSchemaChanged; }
83
86
  //IRhoSession
84
87
  virtual const String& getSession(){ return m_strSession; }
85
88
  virtual const String& getContentType(){ return getProtocol().getContentType();}
@@ -106,6 +109,8 @@ public:
106
109
 
107
110
  boolean isNoThreadedMode(){ return m_bNoThreaded; }
108
111
  void setNonThreadedMode(boolean b){m_bNoThreaded = b;}
112
+
113
+ void applyChangedValues(db::CDBAdapter& db);
109
114
  private:
110
115
 
111
116
  CSyncSource* findSource(const CSourceID& oSrcID);
@@ -402,7 +402,12 @@ void CSyncNotify::doFireSyncNotification( CSyncSource* src, boolean bFinish, int
402
402
  if ( bFinish )
403
403
  {
404
404
  if ( nErrCode == RhoAppAdapter.ERR_NONE )
405
- strBody += (src == null && strParams.length() == 0) ? "complete" : "ok";
405
+ {
406
+ if ( getSync().isSchemaChanged() )
407
+ strBody += "schema_changed";
408
+ else
409
+ strBody += (src == null && strParams.length() == 0) ? "complete" : "ok";
410
+ }
406
411
  else
407
412
  {
408
413
  if ( getSync().isStoppedByUser() )
@@ -11,6 +11,7 @@
11
11
  #include "common/RhoAppAdapter.h"
12
12
  #include "json/JSONIterator.h"
13
13
  #include "statistic/RhoProfiler.h"
14
+ #include "net/URI.h"
14
15
 
15
16
  namespace rho {
16
17
  namespace sync {
@@ -187,7 +188,7 @@ void CSyncSource::doSyncClientChanges()
187
188
  for( i = 0; i < 3 && getSync().isContinueSync(); i++ )
188
189
  {
189
190
  String strBody1;
190
- makePushBody_Ver3(strBody1, arUpdateTypes[i]);
191
+ makePushBody_Ver3(strBody1, arUpdateTypes[i], true);
191
192
  if (strBody1.length() > 0)
192
193
  {
193
194
  strBody += "," + strBody1;
@@ -276,7 +277,7 @@ static void escapeDoubleQuotes(String& str)
276
277
  //{"source_name":"SampleAdapter","client_id":1,"update":{"1":{"brand":"Apple","name":"iPhone","price":"199.99"}}}
277
278
  //{"source_name":"SampleAdapter","client_id":1,"delete":{"1":{"brand":"Apple","name":"iPhone","price":"199.99"}}}
278
279
  //{"source_name":"SampleAdapter","client_id":1,"delete":{"3":{"brand":"HTC","name":"Fuze","price":"299.99"}},"create":{"1":{"brand":"Apple","name":"iPhone","price":"199.99"}},"update":{"2":{"brand":"Android","name":"G2","price":"99.99"}}}
279
- void CSyncSource::makePushBody_Ver3(String& strBody, const String& strUpdateType)
280
+ void CSyncSource::makePushBody_Ver3(String& strBody, const String& strUpdateType, boolean isSync)
280
281
  {
281
282
  getDB().Lock();
282
283
  DBResult( res , getDB().executeSQL("SELECT attrib, object, value, attrib_type "
@@ -310,7 +311,12 @@ void CSyncSource::makePushBody_Ver3(String& strBody, const String& strUpdateType
310
311
  }
311
312
 
312
313
  if ( strBody.length() == 0 )
313
- strBody += "\"" + strUpdateType + "\":{";
314
+ {
315
+ if ( !isSync )
316
+ strBody += "{";
317
+ else
318
+ strBody += "\"" + strUpdateType + "\":{";
319
+ }
314
320
 
315
321
  if ( strObject.compare(strCurObject) != 0 )
316
322
  {
@@ -347,10 +353,39 @@ void CSyncSource::makePushBody_Ver3(String& strBody, const String& strUpdateType
347
353
  strBody += "}";
348
354
  }
349
355
 
350
- getDB().executeSQL("UPDATE changed_values SET sent=1 WHERE source_id=? and update_type=? and sent=0", getID(), strUpdateType.c_str() );
356
+ if ( isSync )
357
+ getDB().executeSQL("UPDATE changed_values SET sent=1 WHERE source_id=? and update_type=? and sent=0", getID(), strUpdateType.c_str() );
358
+
351
359
  getDB().Unlock();
352
360
  }
353
361
 
362
+ void CSyncSource::applyChangedValues()
363
+ {
364
+ String strBody = "";
365
+ makePushBody_Ver3(strBody, "create", false);
366
+ if ( strBody.length() > 0 )
367
+ {
368
+ CJSONEntry oEntry(strBody.c_str());
369
+ processSyncCommand("insert", oEntry );
370
+ }
371
+
372
+ strBody = "";
373
+ makePushBody_Ver3(strBody, "delete", false);
374
+ if ( strBody.length() > 0 )
375
+ {
376
+ CJSONEntry oEntry(strBody.c_str());
377
+ processSyncCommand("delete", oEntry );
378
+ }
379
+
380
+ strBody = "";
381
+ makePushBody_Ver3(strBody, "update", false);
382
+ if ( strBody.length() > 0 )
383
+ {
384
+ CJSONEntry oEntry(strBody.c_str());
385
+ processSyncCommand("insert", oEntry );
386
+ }
387
+ }
388
+
354
389
  void CSyncSource::syncServerChanges()
355
390
  {
356
391
  LOG(INFO) + "Sync server changes source ID :" + getID();
@@ -381,6 +416,7 @@ void CSyncSource::syncServerChanges()
381
416
 
382
417
  //const char* szData = "[{\"version\":3},{\"token\":\"35639160294387\"},{\"count\":3},{\"progress_count\":0},{\"total_count\":3},{\"metadata\":\"{\\\"foo\\\":\\\"bar\\\"}\",\"insert\":{\"1\":{\"price\":\"199.99\",\"brand\":\"Apple\",\"name\":\"iPhone\"}}}]";
383
418
 
419
+ //LOG(INFO) + szData;
384
420
  PROF_START("Parse");
385
421
  CJSONArrayIterator oJsonArr(szData);
386
422
  PROF_STOP("Parse");
@@ -485,26 +521,33 @@ void CSyncSource::processServerResponse_ver3(CJSONArrayIterator& oJsonArr)
485
521
  // getDB().startTransaction();
486
522
  // }
487
523
 
488
- getDB().startTransaction();
489
- if ( oCmds.hasName("metadata") && getSync().isContinueSync() )
524
+ if ( oCmds.hasName("schema-changed") )
490
525
  {
491
- String strMetadata = oCmds.getString("metadata");
492
- getDB().executeSQL("UPDATE sources SET metadata=? WHERE source_id=?", strMetadata, getID() );
493
- }
494
- if ( oCmds.hasName("links") && getSync().isContinueSync() )
495
- processSyncCommand("links", oCmds.getEntry("links") );
496
- if ( oCmds.hasName("delete") && getSync().isContinueSync() )
497
- processSyncCommand("delete", oCmds.getEntry("delete") );
498
- if ( oCmds.hasName("insert") && getSync().isContinueSync() )
499
- processSyncCommand("insert", oCmds.getEntry("insert") );
526
+ getSync().stopSync();
527
+ getSync().setSchemaChanged(true);
528
+ }else
529
+ {
530
+ getDB().startTransaction();
531
+ if ( oCmds.hasName("metadata") && getSync().isContinueSync() )
532
+ {
533
+ String strMetadata = oCmds.getString("metadata");
534
+ getDB().executeSQL("UPDATE sources SET metadata=? WHERE source_id=?", strMetadata, getID() );
535
+ }
536
+ if ( oCmds.hasName("links") && getSync().isContinueSync() )
537
+ processSyncCommand("links", oCmds.getEntry("links") );
538
+ if ( oCmds.hasName("delete") && getSync().isContinueSync() )
539
+ processSyncCommand("delete", oCmds.getEntry("delete") );
540
+ if ( oCmds.hasName("insert") && getSync().isContinueSync() )
541
+ processSyncCommand("insert", oCmds.getEntry("insert") );
500
542
 
501
- PROF_STOP("Data");
543
+ PROF_STOP("Data");
502
544
 
503
- PROF_START("DB");
504
- getDB().endTransaction();
505
- PROF_STOP("DB");
545
+ PROF_START("DB");
546
+ getDB().endTransaction();
547
+ PROF_STOP("DB");
506
548
 
507
- getNotify().fireObjectsNotification();
549
+ getNotify().fireObjectsNotification();
550
+ }
508
551
  }
509
552
 
510
553
  PROF_START("Data1");
@@ -534,6 +577,9 @@ void CSyncSource::processSyncCommand(const String& strCmd, CJSONEntry oCmdEntry)
534
577
  }
535
578
  }
536
579
 
580
+ if ( getSyncType().compare("none") == 0 )
581
+ continue;
582
+
537
583
  int nSyncObjectCount = getNotify().incLastSyncObjectCount(getID());
538
584
  if ( getProgressStep() > 0 && (nSyncObjectCount%getProgressStep() == 0) )
539
585
  getNotify().fireSyncNotification(this, false, RhoAppAdapter.ERR_NONE, "");
@@ -624,16 +670,21 @@ void CSyncSource::processServerCmd_Ver3_Schema(const String& strCmd, const Strin
624
670
  strSqlUpdate += getName() + " SET " + strSet + " WHERE object=?";
625
671
  getDB().executeSQLEx(strSqlUpdate.c_str(), vecValues);
626
672
 
627
- // oo conflicts
628
- for( int i = 0; i < (int)vecAttrs.size(); i++ )
673
+ if ( getSyncType().compare("none") != 0 )
629
674
  {
630
- getDB().executeSQL("UPDATE changed_values SET sent=4 where object=? and attrib=? and source_id=? and sent>1",
631
- strObject, vecAttrs.elementAt(i), getID() );
675
+ // oo conflicts
676
+ for( int i = 0; i < (int)vecAttrs.size(); i++ )
677
+ {
678
+ getDB().executeSQL("UPDATE changed_values SET sent=4 where object=? and attrib=? and source_id=? and sent>1",
679
+ strObject, vecAttrs.elementAt(i), getID() );
680
+ }
681
+ //
632
682
  }
633
- //
634
683
  }
635
684
 
636
- getNotify().onObjectChanged(getID(),strObject, CSyncNotify::enUpdate);
685
+ if ( getSyncType().compare("none") != 0 )
686
+ getNotify().onObjectChanged(getID(),strObject, CSyncNotify::enUpdate);
687
+
637
688
  m_nInserted++;
638
689
  }else if (strCmd.compare("delete") == 0)
639
690
  {
@@ -679,14 +730,17 @@ void CSyncSource::processServerCmd_Ver3_Schema(const String& strCmd, const Strin
679
730
  }
680
731
  }
681
732
 
682
- getNotify().onObjectChanged(getID(), strObject, CSyncNotify::enDelete);
683
- // oo conflicts
684
- for( int i = 0; i < (int)vecAttrs.size(); i++ )
733
+ if ( getSyncType().compare("none") != 0 )
685
734
  {
686
- getDB().executeSQL("UPDATE changed_values SET sent=3 where object=? and attrib=? and source_id=?",
687
- strObject, vecAttrs.elementAt(i), getID() );
735
+ getNotify().onObjectChanged(getID(), strObject, CSyncNotify::enDelete);
736
+ // oo conflicts
737
+ for( int i = 0; i < (int)vecAttrs.size(); i++ )
738
+ {
739
+ getDB().executeSQL("UPDATE changed_values SET sent=3 where object=? and attrib=? and source_id=?",
740
+ strObject, vecAttrs.elementAt(i), getID() );
741
+ }
742
+ //
688
743
  }
689
- //
690
744
 
691
745
  m_nDeleted++;
692
746
  }else if ( strCmd.compare("links") == 0 )
@@ -767,21 +821,30 @@ void CSyncSource::processServerCmd_Ver3(const String& strCmd, const String& strO
767
821
  SET value=? WHERE object=? and attrib=? and source_id=?",
768
822
  oAttrValue.m_strValue, strObject, oAttrValue.m_strAttrib, getID() );
769
823
 
770
- // oo conflicts
771
- getDB().executeSQL("UPDATE changed_values SET sent=4 where object=? and attrib=? and source_id=? and sent>1",
772
- strObject, oAttrValue.m_strAttrib, getID() );
773
- //
824
+ if ( getSyncType().compare("none") != 0 )
825
+ {
826
+ // oo conflicts
827
+ getDB().executeSQL("UPDATE changed_values SET sent=4 where object=? and attrib=? and source_id=? and sent>1",
828
+ strObject, oAttrValue.m_strAttrib, getID() );
829
+ //
830
+ }
774
831
  }
775
832
 
776
- getNotify().onObjectChanged(getID(),strObject, CSyncNotify::enUpdate);
833
+ if ( getSyncType().compare("none") != 0 )
834
+ getNotify().onObjectChanged(getID(),strObject, CSyncNotify::enUpdate);
835
+
777
836
  m_nInserted++;
778
837
  }else if (strCmd.compare("delete") == 0)
779
838
  {
780
839
  getDB().executeSQL("DELETE FROM object_values where object=? and attrib=? and source_id=?", strObject, oAttrValue.m_strAttrib, getID() );
781
- getNotify().onObjectChanged(getID(), strObject, CSyncNotify::enDelete);
782
- // oo conflicts
783
- getDB().executeSQL("UPDATE changed_values SET sent=3 where object=? and attrib=? and source_id=?", strObject, oAttrValue.m_strAttrib, getID() );
784
- //
840
+
841
+ if ( getSyncType().compare("none") != 0 )
842
+ {
843
+ getNotify().onObjectChanged(getID(), strObject, CSyncNotify::enDelete);
844
+ // oo conflicts
845
+ getDB().executeSQL("UPDATE changed_values SET sent=3 where object=? and attrib=? and source_id=?", strObject, oAttrValue.m_strAttrib, getID() );
846
+ //
847
+ }
785
848
 
786
849
  m_nDeleted++;
787
850
  }else if ( strCmd.compare("links") == 0 )
@@ -798,43 +861,36 @@ void CSyncSource::processServerCmd_Ver3(const String& strCmd, const String& strO
798
861
 
799
862
  String CSyncSource::makeFileName(const CAttrValue& value)//throws Exception
800
863
  {
801
- String strExt = ".bin";
802
-
803
- const char* url = value.m_strValue.c_str();
804
- const char* quest = strchr(url,'?');
805
- char szExt[20];
806
- szExt[0] = 0;
807
- if (quest){
808
- const char* extStart = strstr(quest,"extension=");
809
- if ( extStart ){
810
- const char* extEnd = strstr(extStart,"&");
811
- if (extEnd){
812
- int nExtLen = extEnd-(extStart+10);
813
- strncpy(szExt,extStart+10,nExtLen);
814
- szExt[nExtLen] = 0;
815
- }
816
- else
817
- strcpy(szExt,extStart+10);
818
- }
864
+ String strExt = "";
865
+
866
+ URI uri(value.m_strValue);
867
+ String strQuest = uri.getQueryString();
868
+
869
+ if (strQuest.length() > 0)
870
+ {
871
+ int nExt = strQuest.find("extension=");
872
+ if ( nExt >= 0 )
873
+ {
874
+ int nExtEnd = strQuest.find("&", nExt);
875
+ if (nExtEnd < 0 )
876
+ nExtEnd = strQuest.length();
877
+
878
+ strExt = strQuest.substr(nExt+10, nExtEnd);
879
+ }
819
880
  }
820
881
 
821
- if ( !szExt[0] ){
822
- const char* dot = strrchr(url,'.');
823
- //TODO: process :http://img.lenta.ru/news/2009/03/11/acid/picture.jpg?test=.img
824
- if (dot){
825
- if (quest){
826
- if(quest>dot){
827
- strncpy(szExt,dot,quest-dot);
828
- szExt[quest-dot] = 0;
829
- }
830
- }
831
- else
832
- strcpy(szExt,dot);
833
- }
882
+ if ( strExt.length() == 0 )
883
+ {
884
+ String strFileName = uri.getLastNamePart();
885
+ int nExt = strFileName.find_last_of('.');
886
+ if ( nExt >= 0 )
887
+ strExt = strFileName.substr(nExt);
834
888
  }
835
889
 
836
- if ( szExt[0] )
837
- strExt = szExt;
890
+ if ( strExt.length() == 0 )
891
+ strExt = ".bin";
892
+ else if ( strExt.at(0) != '.' )
893
+ strExt = "." + strExt;
838
894
 
839
895
  String fName = RHODESAPPBASE().getBlobsDirPath() + "/id_" + CLocalTime().toString(true,true) + strExt;
840
896
 
@@ -101,7 +101,7 @@ public:
101
101
  boolean isPendingClientChanges();
102
102
 
103
103
  void syncServerChanges();
104
- void makePushBody_Ver3(String& strBody, const String& strUpdateType);
104
+ void makePushBody_Ver3(String& strBody, const String& strUpdateType, boolean isSync);
105
105
 
106
106
  void processToken(uint64 token);
107
107
 
@@ -130,6 +130,8 @@ public:
130
130
  void parseAssociations(const String& strAssociations);
131
131
  void processAssociations(const String& strOldObject, const String& strNewObject);
132
132
  void updateAssociation(const String& strOldObject, const String& strNewObject, const String& strAttrib);
133
+
134
+ void applyChangedValues();
133
135
  private:
134
136
  CSyncEngine& getSync(){ return m_syncEngine; }
135
137
  CSyncNotify& getNotify();
@@ -1,6 +1,10 @@
1
1
  Microsoft Visual Studio Solution File, Format Version 9.00
2
2
  # Visual Studio 2005
3
3
  Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rhodes", "Rhodes\Rhodes.vcproj", "{95D5D2E5-FEF5-4CA9-88CF-FCB0F7465E62}"
4
+ ProjectSection(WebsiteProperties) = preProject
5
+ Debug.AspNetCompiler.Debug = "True"
6
+ Release.AspNetCompiler.Debug = "False"
7
+ EndProjectSection
4
8
  ProjectSection(ProjectDependencies) = postProject
5
9
  {F196A418-11F1-4067-9F4F-BCC7D70E6EC5} = {F196A418-11F1-4067-9F4F-BCC7D70E6EC5}
6
10
  {AA77BEC0-2A60-4589-A784-7D78F60B35B6} = {AA77BEC0-2A60-4589-A784-7D78F60B35B6}
@@ -10,14 +14,34 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rhodes", "Rhodes\Rhodes.vcp
10
14
  EndProjectSection
11
15
  EndProject
12
16
  Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rubylib", "rubylib\rubylib.vcproj", "{AA77BEC0-2A60-4589-A784-7D78F60B35B6}"
17
+ ProjectSection(WebsiteProperties) = preProject
18
+ Debug.AspNetCompiler.Debug = "True"
19
+ Release.AspNetCompiler.Debug = "False"
20
+ EndProjectSection
13
21
  EndProject
14
22
  Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlite3", "sqlite3\sqlite3.vcproj", "{B381B601-04B1-475B-B635-003F8E7DA3A9}"
23
+ ProjectSection(WebsiteProperties) = preProject
24
+ Debug.AspNetCompiler.Debug = "True"
25
+ Release.AspNetCompiler.Debug = "False"
26
+ EndProjectSection
15
27
  EndProject
16
28
  Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "syncengine", "syncengine\syncengine.vcproj", "{6F57C60E-C083-4D46-A3B9-E17948A33518}"
29
+ ProjectSection(WebsiteProperties) = preProject
30
+ Debug.AspNetCompiler.Debug = "True"
31
+ Release.AspNetCompiler.Debug = "False"
32
+ EndProjectSection
17
33
  EndProject
18
34
  Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tcmalloc", "tcmalloc\tcmalloc.vcproj", "{DCD9FEEA-AEB5-4787-AF75-B8D66C1CDC3B}"
35
+ ProjectSection(WebsiteProperties) = preProject
36
+ Debug.AspNetCompiler.Debug = "True"
37
+ Release.AspNetCompiler.Debug = "False"
38
+ EndProjectSection
19
39
  EndProject
20
40
  Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RhoLib", "RhoLib\RhoLib.vcproj", "{F196A418-11F1-4067-9F4F-BCC7D70E6EC5}"
41
+ ProjectSection(WebsiteProperties) = preProject
42
+ Debug.AspNetCompiler.Debug = "True"
43
+ Release.AspNetCompiler.Debug = "False"
44
+ EndProjectSection
21
45
  EndProject
22
46
  Global
23
47
  GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -46,7 +70,9 @@ Global
46
70
  {95D5D2E5-FEF5-4CA9-88CF-FCB0F7465E62}.Debug|Smartphone 2003 (ARMV4).ActiveCfg = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
47
71
  {95D5D2E5-FEF5-4CA9-88CF-FCB0F7465E62}.Debug|Win32.ActiveCfg = Debug|Win32
48
72
  {95D5D2E5-FEF5-4CA9-88CF-FCB0F7465E62}.Debug|Win32.Build.0 = Debug|Win32
49
- {95D5D2E5-FEF5-4CA9-88CF-FCB0F7465E62}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
73
+ {95D5D2E5-FEF5-4CA9-88CF-FCB0F7465E62}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
74
+ {95D5D2E5-FEF5-4CA9-88CF-FCB0F7465E62}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Build.0 = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
75
+ {95D5D2E5-FEF5-4CA9-88CF-FCB0F7465E62}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Deploy.0 = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
50
76
  {95D5D2E5-FEF5-4CA9-88CF-FCB0F7465E62}.Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
51
77
  {95D5D2E5-FEF5-4CA9-88CF-FCB0F7465E62}.Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Build.0 = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
52
78
  {95D5D2E5-FEF5-4CA9-88CF-FCB0F7465E62}.Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Deploy.0 = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
@@ -63,7 +89,9 @@ Global
63
89
  {95D5D2E5-FEF5-4CA9-88CF-FCB0F7465E62}.Release|Smartphone 2003 (ARMV4).ActiveCfg = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
64
90
  {95D5D2E5-FEF5-4CA9-88CF-FCB0F7465E62}.Release|Win32.ActiveCfg = Release|Win32
65
91
  {95D5D2E5-FEF5-4CA9-88CF-FCB0F7465E62}.Release|Win32.Build.0 = Release|Win32
66
- {95D5D2E5-FEF5-4CA9-88CF-FCB0F7465E62}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
92
+ {95D5D2E5-FEF5-4CA9-88CF-FCB0F7465E62}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
93
+ {95D5D2E5-FEF5-4CA9-88CF-FCB0F7465E62}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Build.0 = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
94
+ {95D5D2E5-FEF5-4CA9-88CF-FCB0F7465E62}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
67
95
  {95D5D2E5-FEF5-4CA9-88CF-FCB0F7465E62}.Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
68
96
  {95D5D2E5-FEF5-4CA9-88CF-FCB0F7465E62}.Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Build.0 = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
69
97
  {95D5D2E5-FEF5-4CA9-88CF-FCB0F7465E62}.Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
@@ -86,10 +114,8 @@ Global
86
114
  {AA77BEC0-2A60-4589-A784-7D78F60B35B6}.Debug|Win32.Build.0 = Debug|Win32
87
115
  {AA77BEC0-2A60-4589-A784-7D78F60B35B6}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
88
116
  {AA77BEC0-2A60-4589-A784-7D78F60B35B6}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Build.0 = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
89
- {AA77BEC0-2A60-4589-A784-7D78F60B35B6}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Deploy.0 = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
90
117
  {AA77BEC0-2A60-4589-A784-7D78F60B35B6}.Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
91
118
  {AA77BEC0-2A60-4589-A784-7D78F60B35B6}.Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Build.0 = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
92
- {AA77BEC0-2A60-4589-A784-7D78F60B35B6}.Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Deploy.0 = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
93
119
  {AA77BEC0-2A60-4589-A784-7D78F60B35B6}.Debug|Windows Mobile 6 Professional SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 6 Professional SDK (ARMV4I)
94
120
  {AA77BEC0-2A60-4589-A784-7D78F60B35B6}.Debug|Windows Mobile 6 Professional SDK (ARMV4I).Build.0 = Debug|Windows Mobile 6 Professional SDK (ARMV4I)
95
121
  {AA77BEC0-2A60-4589-A784-7D78F60B35B6}.Debug|Windows Mobile 6 Standard SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 6 Standard SDK (ARMV4I)
@@ -107,10 +133,8 @@ Global
107
133
  {AA77BEC0-2A60-4589-A784-7D78F60B35B6}.Release|Win32.Build.0 = Release|Win32
108
134
  {AA77BEC0-2A60-4589-A784-7D78F60B35B6}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
109
135
  {AA77BEC0-2A60-4589-A784-7D78F60B35B6}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Build.0 = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
110
- {AA77BEC0-2A60-4589-A784-7D78F60B35B6}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
111
136
  {AA77BEC0-2A60-4589-A784-7D78F60B35B6}.Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
112
137
  {AA77BEC0-2A60-4589-A784-7D78F60B35B6}.Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Build.0 = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
113
- {AA77BEC0-2A60-4589-A784-7D78F60B35B6}.Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
114
138
  {AA77BEC0-2A60-4589-A784-7D78F60B35B6}.Release|Windows Mobile 6 Professional SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 6 Professional SDK (ARMV4I)
115
139
  {AA77BEC0-2A60-4589-A784-7D78F60B35B6}.Release|Windows Mobile 6 Professional SDK (ARMV4I).Build.0 = Release|Windows Mobile 6 Professional SDK (ARMV4I)
116
140
  {AA77BEC0-2A60-4589-A784-7D78F60B35B6}.Release|Windows Mobile 6 Standard SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 6 Standard SDK (ARMV4I)
@@ -128,10 +152,8 @@ Global
128
152
  {B381B601-04B1-475B-B635-003F8E7DA3A9}.Debug|Win32.Build.0 = Debug|Win32
129
153
  {B381B601-04B1-475B-B635-003F8E7DA3A9}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
130
154
  {B381B601-04B1-475B-B635-003F8E7DA3A9}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Build.0 = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
131
- {B381B601-04B1-475B-B635-003F8E7DA3A9}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Deploy.0 = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
132
155
  {B381B601-04B1-475B-B635-003F8E7DA3A9}.Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
133
156
  {B381B601-04B1-475B-B635-003F8E7DA3A9}.Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Build.0 = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
134
- {B381B601-04B1-475B-B635-003F8E7DA3A9}.Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Deploy.0 = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
135
157
  {B381B601-04B1-475B-B635-003F8E7DA3A9}.Debug|Windows Mobile 6 Professional SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 6 Professional SDK (ARMV4I)
136
158
  {B381B601-04B1-475B-B635-003F8E7DA3A9}.Debug|Windows Mobile 6 Professional SDK (ARMV4I).Build.0 = Debug|Windows Mobile 6 Professional SDK (ARMV4I)
137
159
  {B381B601-04B1-475B-B635-003F8E7DA3A9}.Debug|Windows Mobile 6 Standard SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 6 Standard SDK (ARMV4I)
@@ -149,10 +171,8 @@ Global
149
171
  {B381B601-04B1-475B-B635-003F8E7DA3A9}.Release|Win32.Build.0 = Release|Win32
150
172
  {B381B601-04B1-475B-B635-003F8E7DA3A9}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
151
173
  {B381B601-04B1-475B-B635-003F8E7DA3A9}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Build.0 = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
152
- {B381B601-04B1-475B-B635-003F8E7DA3A9}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
153
174
  {B381B601-04B1-475B-B635-003F8E7DA3A9}.Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
154
175
  {B381B601-04B1-475B-B635-003F8E7DA3A9}.Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Build.0 = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
155
- {B381B601-04B1-475B-B635-003F8E7DA3A9}.Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
156
176
  {B381B601-04B1-475B-B635-003F8E7DA3A9}.Release|Windows Mobile 6 Professional SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 6 Professional SDK (ARMV4I)
157
177
  {B381B601-04B1-475B-B635-003F8E7DA3A9}.Release|Windows Mobile 6 Professional SDK (ARMV4I).Build.0 = Release|Windows Mobile 6 Professional SDK (ARMV4I)
158
178
  {B381B601-04B1-475B-B635-003F8E7DA3A9}.Release|Windows Mobile 6 Standard SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 6 Standard SDK (ARMV4I)
@@ -170,10 +190,8 @@ Global
170
190
  {6F57C60E-C083-4D46-A3B9-E17948A33518}.Debug|Win32.Build.0 = Debug|Win32
171
191
  {6F57C60E-C083-4D46-A3B9-E17948A33518}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
172
192
  {6F57C60E-C083-4D46-A3B9-E17948A33518}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Build.0 = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
173
- {6F57C60E-C083-4D46-A3B9-E17948A33518}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Deploy.0 = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
174
193
  {6F57C60E-C083-4D46-A3B9-E17948A33518}.Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
175
194
  {6F57C60E-C083-4D46-A3B9-E17948A33518}.Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Build.0 = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
176
- {6F57C60E-C083-4D46-A3B9-E17948A33518}.Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Deploy.0 = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
177
195
  {6F57C60E-C083-4D46-A3B9-E17948A33518}.Debug|Windows Mobile 6 Professional SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 6 Professional SDK (ARMV4I)
178
196
  {6F57C60E-C083-4D46-A3B9-E17948A33518}.Debug|Windows Mobile 6 Professional SDK (ARMV4I).Build.0 = Debug|Windows Mobile 6 Professional SDK (ARMV4I)
179
197
  {6F57C60E-C083-4D46-A3B9-E17948A33518}.Debug|Windows Mobile 6 Standard SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 6 Standard SDK (ARMV4I)
@@ -191,10 +209,8 @@ Global
191
209
  {6F57C60E-C083-4D46-A3B9-E17948A33518}.Release|Win32.Build.0 = Release|Win32
192
210
  {6F57C60E-C083-4D46-A3B9-E17948A33518}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
193
211
  {6F57C60E-C083-4D46-A3B9-E17948A33518}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Build.0 = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
194
- {6F57C60E-C083-4D46-A3B9-E17948A33518}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
195
212
  {6F57C60E-C083-4D46-A3B9-E17948A33518}.Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
196
213
  {6F57C60E-C083-4D46-A3B9-E17948A33518}.Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Build.0 = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
197
- {6F57C60E-C083-4D46-A3B9-E17948A33518}.Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
198
214
  {6F57C60E-C083-4D46-A3B9-E17948A33518}.Release|Windows Mobile 6 Professional SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 6 Professional SDK (ARMV4I)
199
215
  {6F57C60E-C083-4D46-A3B9-E17948A33518}.Release|Windows Mobile 6 Professional SDK (ARMV4I).Build.0 = Release|Windows Mobile 6 Professional SDK (ARMV4I)
200
216
  {6F57C60E-C083-4D46-A3B9-E17948A33518}.Release|Windows Mobile 6 Standard SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 6 Standard SDK (ARMV4I)
@@ -208,10 +224,8 @@ Global
208
224
  {DCD9FEEA-AEB5-4787-AF75-B8D66C1CDC3B}.Debug|Win32.Build.0 = Debug|Win32
209
225
  {DCD9FEEA-AEB5-4787-AF75-B8D66C1CDC3B}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
210
226
  {DCD9FEEA-AEB5-4787-AF75-B8D66C1CDC3B}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Build.0 = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
211
- {DCD9FEEA-AEB5-4787-AF75-B8D66C1CDC3B}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Deploy.0 = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
212
227
  {DCD9FEEA-AEB5-4787-AF75-B8D66C1CDC3B}.Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
213
228
  {DCD9FEEA-AEB5-4787-AF75-B8D66C1CDC3B}.Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Build.0 = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
214
- {DCD9FEEA-AEB5-4787-AF75-B8D66C1CDC3B}.Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Deploy.0 = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
215
229
  {DCD9FEEA-AEB5-4787-AF75-B8D66C1CDC3B}.Debug|Windows Mobile 6 Professional SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 6 Professional SDK (ARMV4I)
216
230
  {DCD9FEEA-AEB5-4787-AF75-B8D66C1CDC3B}.Debug|Windows Mobile 6 Professional SDK (ARMV4I).Build.0 = Debug|Windows Mobile 6 Professional SDK (ARMV4I)
217
231
  {DCD9FEEA-AEB5-4787-AF75-B8D66C1CDC3B}.Debug|Windows Mobile 6 Standard SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 6 Standard SDK (ARMV4I)
@@ -225,10 +239,8 @@ Global
225
239
  {DCD9FEEA-AEB5-4787-AF75-B8D66C1CDC3B}.Release|Win32.Build.0 = Release|Win32
226
240
  {DCD9FEEA-AEB5-4787-AF75-B8D66C1CDC3B}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
227
241
  {DCD9FEEA-AEB5-4787-AF75-B8D66C1CDC3B}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Build.0 = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
228
- {DCD9FEEA-AEB5-4787-AF75-B8D66C1CDC3B}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
229
242
  {DCD9FEEA-AEB5-4787-AF75-B8D66C1CDC3B}.Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
230
243
  {DCD9FEEA-AEB5-4787-AF75-B8D66C1CDC3B}.Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Build.0 = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
231
- {DCD9FEEA-AEB5-4787-AF75-B8D66C1CDC3B}.Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
232
244
  {DCD9FEEA-AEB5-4787-AF75-B8D66C1CDC3B}.Release|Windows Mobile 6 Professional SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 6 Professional SDK (ARMV4I)
233
245
  {DCD9FEEA-AEB5-4787-AF75-B8D66C1CDC3B}.Release|Windows Mobile 6 Professional SDK (ARMV4I).Build.0 = Release|Windows Mobile 6 Professional SDK (ARMV4I)
234
246
  {DCD9FEEA-AEB5-4787-AF75-B8D66C1CDC3B}.Release|Windows Mobile 6 Standard SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 6 Standard SDK (ARMV4I)
@@ -242,10 +254,8 @@ Global
242
254
  {F196A418-11F1-4067-9F4F-BCC7D70E6EC5}.Debug|Win32.Build.0 = Debug|Win32
243
255
  {F196A418-11F1-4067-9F4F-BCC7D70E6EC5}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
244
256
  {F196A418-11F1-4067-9F4F-BCC7D70E6EC5}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Build.0 = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
245
- {F196A418-11F1-4067-9F4F-BCC7D70E6EC5}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Deploy.0 = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
246
257
  {F196A418-11F1-4067-9F4F-BCC7D70E6EC5}.Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
247
258
  {F196A418-11F1-4067-9F4F-BCC7D70E6EC5}.Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Build.0 = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
248
- {F196A418-11F1-4067-9F4F-BCC7D70E6EC5}.Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Deploy.0 = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
249
259
  {F196A418-11F1-4067-9F4F-BCC7D70E6EC5}.Debug|Windows Mobile 6 Professional SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 6 Professional SDK (ARMV4I)
250
260
  {F196A418-11F1-4067-9F4F-BCC7D70E6EC5}.Debug|Windows Mobile 6 Professional SDK (ARMV4I).Build.0 = Debug|Windows Mobile 6 Professional SDK (ARMV4I)
251
261
  {F196A418-11F1-4067-9F4F-BCC7D70E6EC5}.Debug|Windows Mobile 6 Standard SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 6 Standard SDK (ARMV4I)
@@ -259,10 +269,8 @@ Global
259
269
  {F196A418-11F1-4067-9F4F-BCC7D70E6EC5}.Release|Win32.Build.0 = Release|Win32
260
270
  {F196A418-11F1-4067-9F4F-BCC7D70E6EC5}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
261
271
  {F196A418-11F1-4067-9F4F-BCC7D70E6EC5}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Build.0 = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
262
- {F196A418-11F1-4067-9F4F-BCC7D70E6EC5}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
263
272
  {F196A418-11F1-4067-9F4F-BCC7D70E6EC5}.Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
264
273
  {F196A418-11F1-4067-9F4F-BCC7D70E6EC5}.Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Build.0 = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
265
- {F196A418-11F1-4067-9F4F-BCC7D70E6EC5}.Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)
266
274
  {F196A418-11F1-4067-9F4F-BCC7D70E6EC5}.Release|Windows Mobile 6 Professional SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 6 Professional SDK (ARMV4I)
267
275
  {F196A418-11F1-4067-9F4F-BCC7D70E6EC5}.Release|Windows Mobile 6 Professional SDK (ARMV4I).Build.0 = Release|Windows Mobile 6 Professional SDK (ARMV4I)
268
276
  {F196A418-11F1-4067-9F4F-BCC7D70E6EC5}.Release|Windows Mobile 6 Standard SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 6 Standard SDK (ARMV4I)