/*
* Copyright (c) 2016 Zhang Hai <Dreaming.in.Code.ZH@Gmail.com>
* All Rights Reserved.
*/
package me.zhanghai.android.douya.link;
import android.app.Activity;
import android.content.Context;
import android.net.Uri;
import android.text.TextUtils;
import org.chromium.customtabsclient.CustomTabsActivityHelper;
import me.zhanghai.android.douya.settings.info.Settings;
import me.zhanghai.android.douya.util.AppUtils;
import me.zhanghai.android.douya.util.UrlUtils;
public class UrlHandler {
private static final CustomTabsActivityHelper.CustomTabsFallback sFallback =
new CustomTabsActivityHelper.CustomTabsFallback() {
@Override
public void openUri(Activity activity, Uri uri) {
open(uri, activity, false);
}
};
private UrlHandler() {}
private static void open(Uri uri, Context context, boolean enableCustomTabs) {
if (Settings.PROGRESSIVE_THIRD_PARTY_APP.getValue() && FrodoBridge.openUri(uri, context)) {
return;
}
String scheme = uri.getScheme();
if (!TextUtils.isEmpty(scheme)) {
switch (uri.getScheme()) {
case "http":
case "https":
case "ftp":
break;
default:
UrlUtils.openWithIntent(uri, context);
return;
}
}
switch (Settings.OPEN_URL_WITH_METHOD.getEnumValue()) {
case CUSTOM_TABS:
if (enableCustomTabs) {
Activity activity = AppUtils.getActivityFromContext(context);
if (activity != null) {
UrlUtils.openWithCustomTabs(uri, sFallback, activity);
}
break;
}
// Fall through!
case WEBVIEW:
UrlUtils.openWithWebViewActivity(uri, context);
break;
case INTENT:
UrlUtils.openWithIntent(uri, context);
break;
}
}
public static void open(Uri uri, Context context) {
open(uri, context, true);
}
public static void open(String url, Context context) {
open(Uri.parse(url), context);
}
}