Skip to content
This repository was archived by the owner on May 20, 2025. It is now read-only.

Commit 2fb7c1f

Browse files
authored
Merge pull request #461 from Microsoft/remove-soloader
Remove SoLoader and fix 0.31 compat
2 parents 9e60bac + f006821 commit 2fb7c1f

File tree

7 files changed

+86
-104
lines changed

7 files changed

+86
-104
lines changed

android/app/src/main/java/com/microsoft/codepush/react/CodePush.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@
44
import com.facebook.react.bridge.JavaScriptModule;
55
import com.facebook.react.bridge.NativeModule;
66
import com.facebook.react.bridge.ReactApplicationContext;
7-
import com.facebook.react.bridge.ReadableMap;
8-
import com.facebook.react.bridge.WritableMap;
97
import com.facebook.react.uimanager.ViewManager;
10-
import com.facebook.soloader.SoLoader;
118

129
import android.content.Context;
1310
import android.content.pm.ApplicationInfo;
@@ -54,7 +51,6 @@ public CodePush(String deploymentKey, Context context) {
5451
}
5552

5653
public CodePush(String deploymentKey, Context context, boolean isDebugMode) {
57-
SoLoader.init(context, false);
5854
mContext = context.getApplicationContext();
5955

6056
mUpdateManager = new CodePushUpdateManager(context.getFilesDir().getAbsolutePath());
@@ -169,14 +165,14 @@ public String getJSBundleFileInternal(String assetsBundleFileName) {
169165
return binaryJsBundleUrl;
170166
}
171167

172-
ReadableMap packageMetadata = this.mUpdateManager.getCurrentPackage();
168+
JSONObject packageMetadata = this.mUpdateManager.getCurrentPackage();
173169
Long binaryModifiedDateDuringPackageInstall = null;
174-
String binaryModifiedDateDuringPackageInstallString = CodePushUtils.tryGetString(packageMetadata, CodePushConstants.BINARY_MODIFIED_TIME_KEY);
170+
String binaryModifiedDateDuringPackageInstallString = packageMetadata.optString(CodePushConstants.BINARY_MODIFIED_TIME_KEY, null);
175171
if (binaryModifiedDateDuringPackageInstallString != null) {
176172
binaryModifiedDateDuringPackageInstall = Long.parseLong(binaryModifiedDateDuringPackageInstallString);
177173
}
178174

179-
String packageAppVersion = CodePushUtils.tryGetString(packageMetadata, "appVersion");
175+
String packageAppVersion = packageMetadata.optString("appVersion", null);
180176
if (binaryModifiedDateDuringPackageInstall != null &&
181177
binaryModifiedDateDuringPackageInstall == binaryResourcesModifiedTime &&
182178
(isUsingTestConfiguration() || sAppVersion.equals(packageAppVersion))) {
@@ -256,7 +252,7 @@ public static void overrideAppVersion(String appVersionOverride) {
256252
}
257253

258254
private void rollbackPackage() {
259-
WritableMap failedPackage = mUpdateManager.getCurrentPackage();
255+
JSONObject failedPackage = mUpdateManager.getCurrentPackage();
260256
mSettingsManager.saveFailedUpdate(failedPackage);
261257
mUpdateManager.rollbackPackage();
262258
mSettingsManager.removePendingUpdate();

android/app/src/main/java/com/microsoft/codepush/react/CodePushNativeModule.java

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,20 @@
22

33
import android.app.Activity;
44
import android.content.Context;
5-
import android.content.Intent;
65
import android.os.AsyncTask;
76
import android.provider.Settings;
87
import android.view.Choreographer;
98

109
import com.facebook.react.ReactActivity;
1110
import com.facebook.react.ReactInstanceManager;
11+
import com.facebook.react.bridge.Arguments;
1212
import com.facebook.react.bridge.LifecycleEventListener;
1313
import com.facebook.react.bridge.Promise;
1414
import com.facebook.react.bridge.ReactApplicationContext;
1515
import com.facebook.react.bridge.ReactContextBaseJavaModule;
1616
import com.facebook.react.bridge.ReactMethod;
1717
import com.facebook.react.bridge.ReadableMap;
1818
import com.facebook.react.bridge.WritableMap;
19-
import com.facebook.react.bridge.WritableNativeMap;
2019
import com.facebook.react.modules.core.DeviceEventManagerModule;
2120
import com.facebook.react.uimanager.ReactChoreographer;
2221

@@ -184,8 +183,8 @@ public void downloadUpdate(final ReadableMap updatePackage, final boolean notify
184183
@Override
185184
protected Void doInBackground(Void... params) {
186185
try {
187-
WritableMap mutableUpdatePackage = CodePushUtils.convertReadableMapToWritableMap(updatePackage);
188-
mutableUpdatePackage.putString(CodePushConstants.BINARY_MODIFIED_TIME_KEY, "" + mCodePush.getBinaryResourcesModifiedTime());
186+
JSONObject mutableUpdatePackage = CodePushUtils.convertReadableToJsonObject(updatePackage);
187+
CodePushUtils.setJSONValueForKey(mutableUpdatePackage, CodePushConstants.BINARY_MODIFIED_TIME_KEY, "" + mCodePush.getBinaryResourcesModifiedTime());
189188
mUpdateManager.downloadPackage(mutableUpdatePackage, mCodePush.getAssetsBundleFileName(), new DownloadProgressCallback() {
190189
private boolean hasScheduledNextFrame = false;
191190
private DownloadProgress latestDownloadProgress = null;
@@ -232,14 +231,14 @@ public void dispatchDownloadProgressEvent() {
232231
}
233232
});
234233

235-
WritableMap newPackage = mUpdateManager.getPackage(CodePushUtils.tryGetString(updatePackage, CodePushConstants.PACKAGE_HASH_KEY));
236-
promise.resolve(newPackage);
234+
JSONObject newPackage = mUpdateManager.getPackage(CodePushUtils.tryGetString(updatePackage, CodePushConstants.PACKAGE_HASH_KEY));
235+
promise.resolve(CodePushUtils.convertJsonObjectToWritable(newPackage));
237236
} catch (IOException e) {
238237
e.printStackTrace();
239238
promise.reject(e);
240239
} catch (CodePushInvalidUpdateException e) {
241240
e.printStackTrace();
242-
mSettingsManager.saveFailedUpdate(updatePackage);
241+
mSettingsManager.saveFailedUpdate(CodePushUtils.convertReadableToJsonObject(updatePackage));
243242
promise.reject(e);
244243
}
245244

@@ -252,7 +251,7 @@ public void dispatchDownloadProgressEvent() {
252251

253252
@ReactMethod
254253
public void getConfiguration(Promise promise) {
255-
WritableNativeMap configMap = new WritableNativeMap();
254+
WritableMap configMap = Arguments.createMap();
256255
configMap.putString("appVersion", mCodePush.getAppVersion());
257256
configMap.putString("clientUniqueId", mClientUniqueId);
258257
configMap.putString("deploymentKey", mCodePush.getDeploymentKey());
@@ -271,7 +270,7 @@ public void getUpdateMetadata(final int updateState, final Promise promise) {
271270
AsyncTask<Void, Void, Void> asyncTask = new AsyncTask<Void, Void, Void>() {
272271
@Override
273272
protected Void doInBackground(Void... params) {
274-
WritableMap currentPackage = mUpdateManager.getCurrentPackage();
273+
JSONObject currentPackage = mUpdateManager.getCurrentPackage();
275274

276275
if (currentPackage == null) {
277276
promise.resolve("");
@@ -280,8 +279,8 @@ protected Void doInBackground(Void... params) {
280279

281280
Boolean currentUpdateIsPending = false;
282281

283-
if (currentPackage.hasKey(CodePushConstants.PACKAGE_HASH_KEY)) {
284-
String currentHash = currentPackage.getString(CodePushConstants.PACKAGE_HASH_KEY);
282+
if (currentPackage.has(CodePushConstants.PACKAGE_HASH_KEY)) {
283+
String currentHash = currentPackage.optString(CodePushConstants.PACKAGE_HASH_KEY, null);
285284
currentUpdateIsPending = mSettingsManager.isPendingUpdate(currentHash);
286285
}
287286

@@ -292,7 +291,7 @@ protected Void doInBackground(Void... params) {
292291
} else if (updateState == CodePushUpdateState.RUNNING.getValue() && currentUpdateIsPending) {
293292
// The caller wants the running update, but the current
294293
// one is pending, so we need to grab the previous.
295-
promise.resolve(mUpdateManager.getPreviousPackage());
294+
promise.resolve(CodePushUtils.convertJsonObjectToWritable(mUpdateManager.getPreviousPackage()));
296295
} else {
297296
// The current package satisfies the request:
298297
// 1) Caller wanted a pending, and there is a pending update
@@ -302,12 +301,12 @@ protected Void doInBackground(Void... params) {
302301
// This only matters in Debug builds. Since we do not clear "outdated" updates,
303302
// we need to indicate to the JS side that somehow we have a current update on
304303
// disk that is not actually running.
305-
currentPackage.putBoolean("_isDebugOnly", true);
304+
CodePushUtils.setJSONValueForKey(currentPackage, "_isDebugOnly", true);
306305
}
307306

308307
// Enable differentiating pending vs. non-pending updates
309-
currentPackage.putBoolean("isPending", currentUpdateIsPending);
310-
promise.resolve(currentPackage);
308+
CodePushUtils.setJSONValueForKey(currentPackage, "isPending", currentUpdateIsPending);
309+
promise.resolve(CodePushUtils.convertJsonObjectToWritable(currentPackage));
311310
}
312311

313312
return null;
@@ -339,9 +338,9 @@ protected Void doInBackground(Void... params) {
339338
}
340339
}
341340
} else if (mCodePush.didUpdate()) {
342-
WritableMap currentPackage = mUpdateManager.getCurrentPackage();
341+
JSONObject currentPackage = mUpdateManager.getCurrentPackage();
343342
if (currentPackage != null) {
344-
WritableMap newPackageStatusReport = mTelemetryManager.getUpdateReport(currentPackage);
343+
WritableMap newPackageStatusReport = mTelemetryManager.getUpdateReport(CodePushUtils.convertJsonObjectToWritable(currentPackage));
345344
if (newPackageStatusReport != null) {
346345
promise.resolve(newPackageStatusReport);
347346
return null;
@@ -374,7 +373,7 @@ public void installUpdate(final ReadableMap updatePackage, final int installMode
374373
AsyncTask<Void, Void, Void> asyncTask = new AsyncTask<Void, Void, Void>() {
375374
@Override
376375
protected Void doInBackground(Void... params) {
377-
mUpdateManager.installPackage(updatePackage, mSettingsManager.isPendingUpdate(null));
376+
mUpdateManager.installPackage(CodePushUtils.convertReadableToJsonObject(updatePackage), mSettingsManager.isPendingUpdate(null));
378377

379378
String pendingHash = CodePushUtils.tryGetString(updatePackage, CodePushConstants.PACKAGE_HASH_KEY);
380379
if (pendingHash == null) {

android/app/src/main/java/com/microsoft/codepush/react/CodePushTelemetryManager.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
import android.content.Context;
44
import android.content.SharedPreferences;
55

6+
import com.facebook.react.bridge.Arguments;
67
import com.facebook.react.bridge.ReadableMap;
78
import com.facebook.react.bridge.WritableMap;
8-
import com.facebook.react.bridge.WritableNativeMap;
99

1010
import org.json.JSONException;
1111
import org.json.JSONObject;
@@ -30,14 +30,14 @@ public CodePushTelemetryManager(Context applicationContext) {
3030

3131
public WritableMap getBinaryUpdateReport(String appVersion) {
3232
String previousStatusReportIdentifier = this.getPreviousStatusReportIdentifier();
33-
WritableNativeMap reportMap = null;
33+
WritableMap reportMap = null;
3434
if (previousStatusReportIdentifier == null) {
3535
this.clearRetryStatusReport();
36-
reportMap = new WritableNativeMap();
36+
reportMap = Arguments.createMap();
3737
reportMap.putString(APP_VERSION_KEY, appVersion);
3838
} else if (!previousStatusReportIdentifier.equals(appVersion)) {
3939
this.clearRetryStatusReport();
40-
reportMap = new WritableNativeMap();
40+
reportMap = Arguments.createMap();
4141
if (this.isStatusReportIdentifierCodePushLabel(previousStatusReportIdentifier)) {
4242
String previousDeploymentKey = this.getDeploymentKeyFromStatusReportIdentifier(previousStatusReportIdentifier);
4343
String previousLabel = this.getVersionLabelFromStatusReportIdentifier(previousStatusReportIdentifier);
@@ -70,7 +70,7 @@ public WritableMap getRetryStatusReport() {
7070
}
7171

7272
public WritableMap getRollbackReport(WritableMap lastFailedPackage) {
73-
WritableNativeMap reportMap = new WritableNativeMap();
73+
WritableMap reportMap = Arguments.createMap();
7474
reportMap.putMap(PACKAGE_KEY, lastFailedPackage);
7575
reportMap.putString(STATUS_KEY, DEPLOYMENT_FAILED_STATUS);
7676
return reportMap;
@@ -79,16 +79,16 @@ public WritableMap getRollbackReport(WritableMap lastFailedPackage) {
7979
public WritableMap getUpdateReport(WritableMap currentPackage) {
8080
String currentPackageIdentifier = this.getPackageStatusReportIdentifier(currentPackage);
8181
String previousStatusReportIdentifier = this.getPreviousStatusReportIdentifier();
82-
WritableNativeMap reportMap = null;
82+
WritableMap reportMap = null;
8383
if (currentPackageIdentifier != null) {
8484
if (previousStatusReportIdentifier == null) {
8585
this.clearRetryStatusReport();
86-
reportMap = new WritableNativeMap();
86+
reportMap = Arguments.createMap();
8787
reportMap.putMap(PACKAGE_KEY, currentPackage);
8888
reportMap.putString(STATUS_KEY, DEPLOYMENT_SUCCEEDED_STATUS);
8989
} else if (!previousStatusReportIdentifier.equals(currentPackageIdentifier)) {
9090
this.clearRetryStatusReport();
91-
reportMap = new WritableNativeMap();
91+
reportMap = Arguments.createMap();
9292
if (this.isStatusReportIdentifierCodePushLabel(previousStatusReportIdentifier)) {
9393
String previousDeploymentKey = this.getDeploymentKeyFromStatusReportIdentifier(previousStatusReportIdentifier);
9494
String previousLabel = this.getVersionLabelFromStatusReportIdentifier(previousStatusReportIdentifier);

0 commit comments

Comments
 (0)