OSDN Git Service

Open changelog in a Chrome custom tab
authorBraden Farmer <farmerbb@gmail.com>
Wed, 25 Nov 2020 03:49:29 +0000 (20:49 -0700)
committerBraden Farmer <farmerbb@gmail.com>
Wed, 25 Nov 2020 03:49:29 +0000 (20:49 -0700)
app/build.gradle
app/src/main/java/com/farmerbb/taskbar/activity/MainActivity.java
app/src/nonplaystore/java/com/farmerbb/taskbar/util/DependencyUtils.java
app/src/playstore/java/com/farmerbb/taskbar/util/DependencyUtils.java

index 4ba70bf..23b23e9 100644 (file)
@@ -119,6 +119,7 @@ android {
 dependencies {
     implementation "androidx.legacy:legacy-support-v4:$SUPPORT_V4_VERSION"
     implementation "androidx.appcompat:appcompat:$APPCOMPAT_VERSION"
+    implementation 'androidx.browser:browser:1.2.0'
     implementation "com.google.android.material:material:$MATERIAL_VERSION"
     //noinspection GradleDependency
     implementation 'com.mikepenz:iconics-core:3.2.5'
index c5bfbaf..6ec390a 100644 (file)
@@ -55,6 +55,7 @@ import com.farmerbb.taskbar.service.StartMenuService;
 import com.farmerbb.taskbar.service.TaskbarService;
 import com.farmerbb.taskbar.helper.GlobalHelper;
 import com.farmerbb.taskbar.helper.FreeformHackHelper;
+import com.farmerbb.taskbar.util.DependencyUtils;
 import com.farmerbb.taskbar.util.IconCache;
 import com.farmerbb.taskbar.helper.LauncherHelper;
 import com.farmerbb.taskbar.util.U;
@@ -318,11 +319,9 @@ public class MainActivity extends AppCompatActivity {
             snackbar.setAction(R.string.tb_action_view, v -> {
                 pref.edit().putInt("show_changelog", latestChangelogVersion).apply();
 
-                Intent intent = new Intent(Intent.ACTION_VIEW);
-                intent.setData(Uri.parse("https://github.com/farmerbb/Taskbar/blob/" + BuildConfig.VERSION_CODE + "/CHANGELOG.md"));
-
+                Uri uri = Uri.parse("https://github.com/farmerbb/Taskbar/blob/" + BuildConfig.VERSION_CODE + "/CHANGELOG.md");
                 try {
-                    startActivity(intent);
+                    DependencyUtils.openChromeCustomTab(this, uri);
                 } catch (ActivityNotFoundException | IllegalArgumentException ignored) {}
             });
 
index af25fa1..830f57e 100644 (file)
@@ -16,6 +16,7 @@
 package com.farmerbb.taskbar.util;
 
 import android.content.Context;
+import android.net.Uri;
 
 import com.farmerbb.taskbar.R;
 
@@ -32,4 +33,6 @@ public class DependencyUtils {
     }
 
     public static void requestTaskerQuery(Context context) {}
+
+    public static void openChromeCustomTab(Context context, Uri uri) {}
 }
index 625ca13..f6b721c 100644 (file)
@@ -17,8 +17,12 @@ package com.farmerbb.taskbar.util;
 
 import android.content.Context;
 import android.content.Intent;
+import android.net.Uri;
 import android.os.Build;
 
+import androidx.browser.customtabs.CustomTabsIntent;
+import androidx.core.content.ContextCompat;
+
 import com.farmerbb.taskbar.R;
 import com.farmerbb.taskbar.activity.TaskerConditionActivity;
 import com.mikepenz.foundation_icons_typeface_library.FoundationIcons;
@@ -52,4 +56,14 @@ public class DependencyUtils {
         query.putExtra(com.twofortyfouram.locale.api.Intent.EXTRA_STRING_ACTIVITY_CLASS_NAME, TaskerConditionActivity.class.getName());
         context.sendBroadcast(query);
     }
+
+    public static void openChromeCustomTab(Context context, Uri uri) {
+        new CustomTabsIntent.Builder()
+                .setToolbarColor(ContextCompat.getColor(context, R.color.tb_colorPrimary))
+                .setSecondaryToolbarColor(ContextCompat.getColor(context, R.color.tb_main_activity_background))
+                .setShowTitle(true)
+                .addDefaultShareMenuItem()
+                .build()
+                .launchUrl(context, uri);
+    }
 }