From 092580aa2795e0615780aa07cc04c38cfaf95074 Mon Sep 17 00:00:00 2001 From: Ethan Neff Date: Thu, 2 Mar 2017 11:41:56 -0800 Subject: [PATCH] feat: able to simulate installs on android --- README.md | 1 + hooks/lib/android/androidManifest.js | 32 ++++++++++++++++++---------- hooks/lib/sdk/configXml.js | 4 ++++ 3 files changed, 26 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index a85ddef6..b5efa44a 100644 --- a/README.md +++ b/README.md @@ -693,6 +693,7 @@ + ``` diff --git a/hooks/lib/android/androidManifest.js b/hooks/lib/android/androidManifest.js index 1b9eeeb9..28673621 100644 --- a/hooks/lib/android/androidManifest.js +++ b/hooks/lib/android/androidManifest.js @@ -18,7 +18,7 @@ console.log('BRANCH SDK: Updating AndroidManifest.xml') // update manifest - manifest = updateBranchKeyMetaData(manifest, preferences) + manifest = updateBranchMetaData(manifest, preferences) manifest = updateBranchReferrerTracking(manifest) manifest = updateLaunchOptionToSingleTask(manifest, mainActivityIndex, preferences) manifest = updateBranchURIScheme(manifest, mainActivityIndex, preferences) @@ -28,22 +28,32 @@ xmlHelper.writeJsonAsXml(manifest, pathToManifest) } - // adds to for Branch init: + // adds to for Branch init and testmode: // - function updateBranchKeyMetaData (manifest, preferences) { + // + function updateBranchMetaData (manifest, preferences) { var metadatas = manifest['manifest']['application'][0]['meta-data'] || [] - var androidName = 'io.branch.sdk.BranchKey' + var metadata = [] + var keys = ['io.branch.sdk.BranchKey', 'io.branch.sdk.TestMode'] + var vals = [preferences.branchKey, preferences.androidTestMode] // remove old - metadatas = removeBasedOnAndroidName(metadatas, androidName) + for (var i = 0; i < keys.length; i++) { + metadatas = removeBasedOnAndroidName(metadatas, keys[i]) + } // add new - manifest['manifest']['application'][0]['meta-data'] = metadatas.concat([{ - '$': { - 'android:name': androidName, - 'android:value': preferences.branchKey - } - }]) + for (i = 0; i < keys.length; i++) { + var key = keys[i] + var val = vals[i] + metadata.push({ + '$': { + 'android:name': key, + 'android:value': val + } + }) + } + manifest['manifest']['application'][0]['meta-data'] = metadatas.concat(metadata) return manifest } diff --git a/hooks/lib/sdk/configXml.js b/hooks/lib/sdk/configXml.js index d01422af..6cd07ede 100644 --- a/hooks/lib/sdk/configXml.js +++ b/hooks/lib/sdk/configXml.js @@ -56,6 +56,7 @@ var iosTeamProd = (branchXml.hasOwnProperty('ios-team-prod')) ? branchXml['ios-team-prod'][0]['$']['value'] : null var iosTeamDev = (branchXml.hasOwnProperty('ios-team-dev')) ? branchXml['ios-team-dev'][0]['$']['value'] : null var androidPrefix = (branchXml.hasOwnProperty('android-prefix')) ? branchXml['android-prefix'][0]['$']['value'] : null + var androidTestMode = (branchXml.hasOwnProperty('android-testmode')) ? branchXml['android-testmode'][0]['$']['value'] : 'false' return { 'projectRoot': projectRoot, @@ -68,6 +69,7 @@ 'iosTeamProd': iosTeamProd, 'iosTeamDev': iosTeamDev, // optional 'androidPrefix': androidPrefix // optional + 'androidTestMode': androidTestMode // optional } } @@ -105,6 +107,8 @@ } if (preferences.iosTeamProd === null) { throw new Error('BRANCH SDK: Missing "ios-team-prod" in in your config.xml. https://goo.gl/GijGKP') + if (!(preferences.androidTestMode === 'true' || preferences.androidTestMode === 'false')) { + throw new Error('BRANCH SDK: Invalid "android-testmode" in in your config.xml. Docs https://goo.gl/GijGKP') } } })()