From 71fb32f952fc48749a52769a75589e8daaad9721 Mon Sep 17 00:00:00 2001 From: Geoffrey Goh Date: Tue, 2 Feb 2016 13:36:10 -0800 Subject: [PATCH] disable metrics in debug --- CodePush.m | 58 ++++++++------- android/app/build.gradle | 6 +- .../microsoft/codepush/react/CodePush.java | 74 ++++++++++--------- 3 files changed, 75 insertions(+), 63 deletions(-) diff --git a/CodePush.m b/CodePush.m index 2059fac..ce6e805 100644 --- a/CodePush.m +++ b/CodePush.m @@ -512,35 +512,43 @@ RCT_EXPORT_METHOD(notifyApplicationReady:(RCTPromiseResolveBlock)resolve RCT_EXPORT_METHOD(getNewStatusReport:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { - - dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ - if (needToReportRollback) { - needToReportRollback = NO; - NSUserDefaults *preferences = [NSUserDefaults standardUserDefaults]; - NSMutableArray *failedUpdates = [preferences objectForKey:FailedUpdatesKey]; - if (failedUpdates) { - NSDictionary *lastFailedPackage = [failedUpdates lastObject]; - if (lastFailedPackage) { - resolve([CodePushTelemetryManager getRollbackReport:lastFailedPackage]); +#if defined(DEBUG) + // Do not report metrics if running in debug mode. + resolve(nil); +#else + if ([_bridge.bundleURL.scheme hasPrefix:@"http"]) { + // Do not report metrics if running bundle from packager. + resolve(nil); + } else { + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + if (needToReportRollback) { + needToReportRollback = NO; + NSUserDefaults *preferences = [NSUserDefaults standardUserDefaults]; + NSMutableArray *failedUpdates = [preferences objectForKey:FailedUpdatesKey]; + if (failedUpdates) { + NSDictionary *lastFailedPackage = [failedUpdates lastObject]; + if (lastFailedPackage) { + resolve([CodePushTelemetryManager getRollbackReport:lastFailedPackage]); + return; + } + } + } else if (_isFirstRunAfterUpdate) { + NSError *error; + NSDictionary *currentPackage = [CodePushPackage getCurrentPackage:&error]; + if (!error && currentPackage) { + resolve([CodePushTelemetryManager getUpdateReport:currentPackage]); return; } - } - } else if (_isFirstRunAfterUpdate) { - NSError *error; - NSDictionary *currentPackage = [CodePushPackage getCurrentPackage:&error]; - if (!error && currentPackage) { - resolve([CodePushTelemetryManager getUpdateReport:currentPackage]); + } else if (isRunningBinaryVersion) { + NSString *appVersion = [[CodePushConfig current] appVersion]; + resolve([CodePushTelemetryManager getBinaryUpdateReport:appVersion]); return; } - } else if (isRunningBinaryVersion || [_bridge.bundleURL.scheme hasPrefix:@"http"]) { - // Check if the current appVersion has been reported. - NSString *appVersion = [[CodePushConfig current] appVersion]; - resolve([CodePushTelemetryManager getBinaryUpdateReport:appVersion]); - return; - } - - resolve(nil); - }); + + resolve(nil); + }); + } +#endif } /* diff --git a/android/app/build.gradle b/android/app/build.gradle index 3dc2a4e..6ba6398 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -22,7 +22,7 @@ android { } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:appcompat-v7:23.0.0' - compile 'com.facebook.react:react-native:0.15.1' + compile fileTree(dir: "libs", include: ["*.jar"]) + compile "com.android.support:appcompat-v7:23.0.1" + compile "com.facebook.react:react-native:0.19.+" } \ No newline at end of file diff --git a/android/app/src/main/java/com/microsoft/codepush/react/CodePush.java b/android/app/src/main/java/com/microsoft/codepush/react/CodePush.java index a247724..707a876 100644 --- a/android/app/src/main/java/com/microsoft/codepush/react/CodePush.java +++ b/android/app/src/main/java/com/microsoft/codepush/react/CodePush.java @@ -426,49 +426,53 @@ public class CodePush { @ReactMethod public void getNewStatusReport(final Promise promise) { - - AsyncTask asyncTask = new AsyncTask() { - @Override - protected Void doInBackground(Object... params) { - if (needToReportRollback) { - needToReportRollback = false; - JSONArray failedUpdates = getFailedUpdates(); - if (failedUpdates != null && failedUpdates.length() > 0) { - try { - JSONObject lastFailedPackageJSON = failedUpdates.getJSONObject(failedUpdates.length() - 1); - WritableMap lastFailedPackage = CodePushUtils.convertJsonObjectToWriteable(lastFailedPackageJSON); - WritableMap failedStatusReport = codePushTelemetryManager.getRollbackReport(lastFailedPackage); - if (failedStatusReport != null) { - promise.resolve(failedStatusReport); + if (isDebugMode) { + // Do not report metrics if running in debug mode. + promise.resolve(""); + } else { + AsyncTask asyncTask = new AsyncTask() { + @Override + protected Void doInBackground(Object... params) { + if (needToReportRollback) { + needToReportRollback = false; + JSONArray failedUpdates = getFailedUpdates(); + if (failedUpdates != null && failedUpdates.length() > 0) { + try { + JSONObject lastFailedPackageJSON = failedUpdates.getJSONObject(failedUpdates.length() - 1); + WritableMap lastFailedPackage = CodePushUtils.convertJsonObjectToWriteable(lastFailedPackageJSON); + WritableMap failedStatusReport = codePushTelemetryManager.getRollbackReport(lastFailedPackage); + if (failedStatusReport != null) { + promise.resolve(failedStatusReport); + return null; + } + } catch (JSONException e) { + throw new CodePushUnknownException("Unable to read failed updates information stored in SharedPreferences.", e); + } + } + } else if (didUpdate) { + WritableMap currentPackage = codePushPackage.getCurrentPackage(); + if (currentPackage != null) { + WritableMap newPackageStatusReport = codePushTelemetryManager.getUpdateReport(currentPackage); + if (newPackageStatusReport != null) { + promise.resolve(newPackageStatusReport); return null; } - } catch (JSONException e) { - throw new CodePushUnknownException("Unable to read failed updates information stored in SharedPreferences.", e); } - } - } else if (didUpdate) { - WritableMap currentPackage = codePushPackage.getCurrentPackage(); - if (currentPackage != null) { - WritableMap newPackageStatusReport = codePushTelemetryManager.getUpdateReport(currentPackage); - if (newPackageStatusReport != null) { - promise.resolve(newPackageStatusReport); + } else if (isRunningBinaryVersion) { + WritableMap newAppVersionStatusReport = codePushTelemetryManager.getBinaryUpdateReport(appVersion); + if (newAppVersionStatusReport != null) { + promise.resolve(newAppVersionStatusReport); return null; } } - } else if (isRunningBinaryVersion) { - WritableMap newAppVersionStatusReport = codePushTelemetryManager.getBinaryUpdateReport(appVersion); - if (newAppVersionStatusReport != null) { - promise.resolve(newAppVersionStatusReport); - return null; - } + + promise.resolve(""); + return null; } + }; - promise.resolve(""); - return null; - } - }; - - asyncTask.execute(); + asyncTask.execute(); + } } @ReactMethod