From e9f812ee58e9fcfa4710e189d2f7847312181c8e Mon Sep 17 00:00:00 2001 From: Floens Date: Sun, 3 Apr 2016 15:05:29 +0200 Subject: [PATCH] Add chrome custom tab support Drop api 14 support, minimum is now 15 (still Android 4.0, required by the custom tab lib) Update dependencies --- Clover/app/build.gradle | 24 +++++++------------ .../chan/core/settings/ChanSettings.java | 2 +- .../chan/ui/controller/BrowseController.java | 3 ++- .../ui/controller/ImageViewerController.java | 4 ++-- .../ui/controller/ViewThreadController.java | 3 ++- .../floens/chan/ui/layout/ThreadLayout.java | 4 ++-- .../org/floens/chan/utils/AndroidUtils.java | 10 ++++++++ Clover/build.gradle | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 4 ++-- 9 files changed, 31 insertions(+), 25 deletions(-) diff --git a/Clover/app/build.gradle b/Clover/app/build.gradle index e748d8c4..027da9bd 100644 --- a/Clover/app/build.gradle +++ b/Clover/app/build.gradle @@ -2,11 +2,11 @@ apply plugin: 'com.android.application' android { compileSdkVersion 23 - buildToolsVersion '23.0.2' + buildToolsVersion '23.0.3' defaultConfig { applicationId "org.floens.chan" - minSdkVersion 14 + minSdkVersion 15 targetSdkVersion 23 versionName "v2.1.3" @@ -72,16 +72,9 @@ android { productFlavors { normal { applicationId = "org.floens.chan" - // resValue "string", "app_name", "Clover F-Droid" resValue "string", "app_name", "Clover" resValue "string", "app_flavor_name", "" } - - play { - applicationId = "org.floens.clover" - resValue "string", "app_name", "Clover" - resValue "string", "app_flavor_name", "Google Play" - } } sourceSets { @@ -90,12 +83,13 @@ android { } dependencies { - compile 'com.android.support:support-v13:23.1.1' - compile 'com.android.support:appcompat-v7:23.1.1' - compile 'com.android.support:recyclerview-v7:23.1.1' - compile 'com.android.support:cardview-v7:23.1.1' - compile 'com.android.support:support-annotations:23.1.1' - compile 'com.android.support:design:23.1.1' + compile 'com.android.support:support-v13:23.2.1' + compile 'com.android.support:appcompat-v7:23.2.1' + compile 'com.android.support:recyclerview-v7:23.2.1' + compile 'com.android.support:cardview-v7:23.2.1' + compile 'com.android.support:support-annotations:23.2.1' + compile 'com.android.support:design:23.2.1' + compile 'com.android.support:customtabs:23.2.1' compile 'org.jsoup:jsoup:1.8.3' compile 'com.j256.ormlite:ormlite-core:4.48' diff --git a/Clover/app/src/main/java/org/floens/chan/core/settings/ChanSettings.java b/Clover/app/src/main/java/org/floens/chan/core/settings/ChanSettings.java index 1b3d8d05..1b5256ca 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/settings/ChanSettings.java +++ b/Clover/app/src/main/java/org/floens/chan/core/settings/ChanSettings.java @@ -130,7 +130,7 @@ public class ChanSettings { fontSize = new StringSetting(p, "preference_font", tablet ? "16" : "14"); fontCondensed = new BooleanSetting(p, "preference_font_condensed", false); - openLinkConfirmation = new BooleanSetting(p, "preference_open_link_confirmation", true); + openLinkConfirmation = new BooleanSetting(p, "preference_open_link_confirmation", false); autoRefreshThread = new BooleanSetting(p, "preference_auto_refresh_thread", true); // imageAutoLoad = new BooleanSetting(p, "preference_image_auto_load", true); imageAutoLoadNetwork = new StringSetting(p, "preference_image_auto_load_network", MediaAutoLoadMode.WIFI.name); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/BrowseController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/BrowseController.java index c2779d6c..a43b9b2c 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/BrowseController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/BrowseController.java @@ -18,6 +18,7 @@ package org.floens.chan.ui.controller; import android.annotation.SuppressLint; +import android.app.Activity; import android.content.Context; import android.view.LayoutInflater; import android.view.View; @@ -135,7 +136,7 @@ public class BrowseController extends ThreadController implements ToolbarMenuIte if (id == SHARE_ID) { AndroidUtils.shareLink(link); } else { - AndroidUtils.openLink(link); + AndroidUtils.openLinkInBrowser((Activity) context, link); } break; diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java index f4872f72..eb2a8165 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java @@ -166,7 +166,7 @@ public class ImageViewerController extends Controller implements ImageViewerPres saveShare(true, postImage); break; case OPEN_BROWSER_ID: - AndroidUtils.openLink(postImage.imageUrl); + AndroidUtils.openLinkInBrowser((Activity) context, postImage.imageUrl); break; case SEARCH_ID: List items = new ArrayList<>(); @@ -179,7 +179,7 @@ public class ImageViewerController extends Controller implements ImageViewerPres public void onFloatingMenuItemClicked(FloatingMenu menu, FloatingMenuItem item) { for (ImageSearch imageSearch : ImageSearch.engines) { if (((Integer) item.getId()) == imageSearch.getId()) { - AndroidUtils.openLink(imageSearch.getUrl(presenter.getCurrentPostImage().imageUrl)); + AndroidUtils.openLinkInBrowser((Activity) context, imageSearch.getUrl(presenter.getCurrentPostImage().imageUrl)); break; } } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/ViewThreadController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/ViewThreadController.java index f30aa186..5e7f602a 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/ViewThreadController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/ViewThreadController.java @@ -17,6 +17,7 @@ */ package org.floens.chan.ui.controller; +import android.app.Activity; import android.content.Context; import android.content.DialogInterface; import android.support.v7.app.AlertDialog; @@ -198,7 +199,7 @@ public class ViewThreadController extends ThreadController implements ThreadLayo if (id == SHARE_ID) { AndroidUtils.shareLink(link); } else { - AndroidUtils.openLink(link); + AndroidUtils.openLinkInBrowser((Activity) context, link); } break; diff --git a/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadLayout.java b/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadLayout.java index d0b939f3..b11f41dd 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadLayout.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadLayout.java @@ -281,14 +281,14 @@ public class ThreadLayout extends CoordinatorLayout implements ThreadPresenter.T .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - AndroidUtils.openLink(link); + AndroidUtils.openLinkInBrowser((Activity) getContext(), link); } }) .setTitle(R.string.open_link_confirmation) .setMessage(link) .show(); } else { - AndroidUtils.openLink(link); + AndroidUtils.openLinkInBrowser((Activity) getContext(), link); } } diff --git a/Clover/app/src/main/java/org/floens/chan/utils/AndroidUtils.java b/Clover/app/src/main/java/org/floens/chan/utils/AndroidUtils.java index e23ea782..c34256a2 100644 --- a/Clover/app/src/main/java/org/floens/chan/utils/AndroidUtils.java +++ b/Clover/app/src/main/java/org/floens/chan/utils/AndroidUtils.java @@ -39,6 +39,7 @@ import android.os.Build; import android.os.Handler; import android.os.Looper; import android.preference.PreferenceManager; +import android.support.customtabs.CustomTabsIntent; import android.support.design.widget.Snackbar; import android.view.View; import android.view.ViewGroup; @@ -56,6 +57,8 @@ import java.util.HashMap; import java.util.List; import java.util.Locale; +import static org.floens.chan.ui.theme.ThemeHelper.theme; + public class AndroidUtils { private static final String TAG = "AndroidUtils"; @@ -146,6 +149,13 @@ public class AndroidUtils { } } + public static void openLinkInBrowser(Activity activity, String link) { + CustomTabsIntent intent = new CustomTabsIntent.Builder() + .setToolbarColor(theme().primaryColor.color) + .build(); + intent.launchUrl(activity, Uri.parse(link)); + } + public static void shareLink(String link) { Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); diff --git a/Clover/build.gradle b/Clover/build.gradle index 7769d34d..58519e22 100644 --- a/Clover/build.gradle +++ b/Clover/build.gradle @@ -4,7 +4,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:1.3.0' + classpath 'com.android.tools.build:gradle:2.1.0-alpha5' } } diff --git a/Clover/gradle/wrapper/gradle-wrapper.properties b/Clover/gradle/wrapper/gradle-wrapper.properties index dec8d371..4d4d2896 100644 --- a/Clover/gradle/wrapper/gradle-wrapper.properties +++ b/Clover/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Mon Oct 26 15:16:34 CET 2015 +#Tue Feb 23 22:00:42 CET 2016 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip