|
6 | 6 | import android.net.Uri;
|
7 | 7 | import android.os.Build;
|
8 | 8 | import android.util.Log;
|
| 9 | +import android.util.Base64; |
9 | 10 |
|
10 | 11 | import org.apache.cordova.CallbackContext;
|
11 | 12 | import org.apache.cordova.CordovaPlugin;
|
|
16 | 17 |
|
17 | 18 | import java.util.ArrayList;
|
18 | 19 | import java.util.Iterator;
|
| 20 | +import java.io.IOException; |
19 | 21 |
|
20 | 22 | import io.branch.indexing.BranchUniversalObject;
|
21 | 23 | import io.branch.referral.Branch;
|
|
24 | 26 | import io.branch.referral.ServerRequestGetCPID.BranchCrossPlatformIdListener;
|
25 | 27 | import io.branch.referral.ServerRequestGetLATD.BranchLastAttributedTouchDataListener;
|
26 | 28 | import io.branch.referral.SharingHelper;
|
| 29 | +import io.branch.referral.QRCode.BranchQRCode; |
27 | 30 | import io.branch.referral.util.BRANCH_STANDARD_EVENT;
|
28 | 31 | import io.branch.referral.util.BranchCPID;
|
29 | 32 | import io.branch.referral.util.BranchEvent;
|
30 | 33 | import io.branch.referral.util.ContentMetadata;
|
31 | 34 | import io.branch.referral.util.CurrencyType;
|
32 | 35 | import io.branch.referral.util.ShareSheetStyle;
|
33 | 36 |
|
| 37 | + |
34 | 38 | public class BranchSDK extends CordovaPlugin {
|
35 | 39 |
|
36 | 40 | static class BranchLinkProperties extends io.branch.referral.util.LinkProperties {
|
@@ -526,26 +530,36 @@ private void getBranchQRCode(JSONObject qrCodeSettings, int instanceIdx, JSONObj
|
526 | 530 | BranchUniversalObjectWrapper branchUniversalWrapper = (BranchUniversalObjectWrapper) this.branchObjectWrappers.get(instanceIdx);
|
527 | 531 | BranchUniversalObject buo = branchUniversalWrapper.branchUniversalObj;
|
528 | 532 |
|
| 533 | + BranchQRCode qrCode = new BranchQRCode(); |
| 534 | + //setCodeColor, setWidth, etc. |
| 535 | + |
529 | 536 | try {
|
530 |
| - qrCode.getQRCodeAsData(getReactApplicationContext().getCurrentActivity(), branchUniversalObject, linkProperties, new BranchQRCode.BranchQRCodeDataHandler() { |
531 |
| - @Override |
532 |
| - public void onSuccess(byte[] qrCodeData) { |
533 |
| - String qrCodeString = Base64.encodeToString(qrCodeData, Base64.DEFAULT); |
534 |
| - promise.resolve(qrCodeString); |
535 |
| - } |
536 |
| - |
537 |
| - @Override |
538 |
| - public void onFailure(Exception e) { |
539 |
| - Log.d("Failed to get QR Code", e.getMessage()); |
540 |
| - promise.reject("Failed to get QR Code", e.getMessage()); |
541 |
| - } |
542 |
| - }); |
| 537 | + qrCode.getQRCodeAsData(this.activity, buo, linkProperties, new GetBranchQRCodeListener(callbackContext)); |
543 | 538 | } catch (IOException e) {
|
544 | 539 | e.printStackTrace();
|
545 | 540 | Log.d("Failed to get QR Code", e.getMessage());
|
546 |
| - promise.reject("Failed to get QR Code", e.getMessage()); |
547 | 541 | }
|
548 |
| - |
| 542 | + |
| 543 | + //try { |
| 544 | + // qrCode.getQRCodeAsData(this.activity, branchUniversalObject, linkProperties, new GetBranchQRCodeListener(callbackContext)) { |
| 545 | + // @Override |
| 546 | + // public void onSuccess(byte[] qrCodeData) { |
| 547 | + // String qrCodeString = Base64.encodeToString(qrCodeData, Base64.DEFAULT); |
| 548 | + // promise.resolve(qrCodeString); |
| 549 | + // } |
| 550 | + |
| 551 | + // @Override |
| 552 | + // public void onFailure(Exception e) { |
| 553 | + // Log.d("Failed to get QR Code", e.getMessage()); |
| 554 | + // promise.reject("Failed to get QR Code", e.getMessage()); |
| 555 | + // } |
| 556 | + // }); |
| 557 | + // } catch (IOException e) { |
| 558 | + // e.printStackTrace(); |
| 559 | + // Log.d("Failed to get QR Code", e.getMessage()); |
| 560 | + // promise.reject("Failed to get QR Code", e.getMessage()); |
| 561 | + // } |
| 562 | + |
549 | 563 | //branchUniversalWrapper.branchUniversalObj.generateShortUrl(this.activity, linkProperties, new GenerateShortUrlListener(callbackContext));
|
550 | 564 |
|
551 | 565 | }
|
@@ -1060,6 +1074,38 @@ public void onLinkCreate(String url, BranchError error) {
|
1060 | 1074 |
|
1061 | 1075 | }
|
1062 | 1076 |
|
| 1077 | + protected class GetBranchQRCodeListener implements BranchQRCode.BranchQRCodeDataHandler { |
| 1078 | + private CallbackContext _callbackContext; |
| 1079 | + |
| 1080 | + // Constructor that takes in a required callbackContext object |
| 1081 | + public GetBranchQRCodeListener(CallbackContext callbackContext) { |
| 1082 | + |
| 1083 | + this._callbackContext = callbackContext; |
| 1084 | + |
| 1085 | + } |
| 1086 | + |
| 1087 | + @Override |
| 1088 | + public void onSuccess(byte[] qrCodeData) { |
| 1089 | + |
| 1090 | + String qrCodeString = Base64.encodeToString(qrCodeData, Base64.DEFAULT); |
| 1091 | + |
| 1092 | + String response = qrCodeString; |
| 1093 | + |
| 1094 | + Log.d(LCAT, response); |
| 1095 | + this._callbackContext.success(response); |
| 1096 | + } |
| 1097 | + |
| 1098 | + @Override |
| 1099 | + public void onFailure(Exception e) { |
| 1100 | + |
| 1101 | + String errorMessage = String.valueOf(e); |
| 1102 | + |
| 1103 | + Log.d(LCAT, errorMessage); |
| 1104 | + this._callbackContext.error(errorMessage); |
| 1105 | + } |
| 1106 | + |
| 1107 | + } |
| 1108 | + |
1063 | 1109 | protected class ShowShareSheetListener implements Branch.BranchLinkShareListener {
|
1064 | 1110 |
|
1065 | 1111 | private CallbackContext _onShareLinkDialogLaunched;
|
@@ -1239,6 +1285,8 @@ public void run() {
|
1239 | 1285 | lastAttributedTouchData(this.callbackContext);
|
1240 | 1286 | } else if (this.action.equals(("generateShortUrl"))) {
|
1241 | 1287 | generateShortUrl(this.args.getInt(0), this.args.getJSONObject(1), this.args.getJSONObject(2), this.callbackContext);
|
| 1288 | + } else if (this.action.equals(("getBranchQRCode"))) { |
| 1289 | + getBranchQRCode(this.args.getJSONObject(0), this.args.getInt(1), this.args.getJSONObject(2), this.args.getJSONObject(3), this.callbackContext); |
1242 | 1290 | } else if (this.action.equals("registerView")) {
|
1243 | 1291 | registerView(this.args.getInt(0), this.callbackContext);
|
1244 | 1292 | } else if (this.action.equals("showShareSheet")) {
|
|
0 commit comments