in facebook-applinks/src/main/java/com/facebook/applinks/AppLinkData.java [271:313]
public static AppLinkData createFromAlApplinkData(Intent intent) {
if (intent == null) {
return null;
}
Bundle applinks = intent.getBundleExtra(BUNDLE_AL_APPLINK_DATA_KEY);
if (applinks == null) {
return null;
}
AppLinkData appLinkData = new AppLinkData();
appLinkData.targetUri = intent.getData();
appLinkData.appLinkData = getAppLinkData(appLinkData.targetUri);
if (appLinkData.targetUri == null) {
String targetUriString = applinks.getString(METHOD_ARGS_TARGET_URL_KEY);
if (targetUriString != null) {
appLinkData.targetUri = Uri.parse(targetUriString);
}
}
appLinkData.argumentBundle = applinks;
appLinkData.arguments = null;
Bundle refererData = applinks.getBundle(ARGUMENTS_REFERER_DATA_KEY);
if (refererData != null) {
appLinkData.ref = refererData.getString(REFERER_DATA_REF_KEY);
}
Bundle extras = applinks.getBundle(ARGUMENTS_EXTRAS_KEY);
if (extras != null) {
String deeplinkContext = extras.getString(EXTRAS_DEEPLINK_CONTEXT_KEY);
if (deeplinkContext != null) {
try {
JSONObject dlContextJson = new JSONObject(deeplinkContext);
if (dlContextJson.has(PROMOTION_CODE_KEY)) {
appLinkData.promotionCode = dlContextJson.getString(PROMOTION_CODE_KEY);
}
} catch (JSONException e) {
Utility.logd(TAG, "Unable to parse deeplink_context JSON", e);
}
}
}
return appLinkData;
}