diff --git a/frontend/android/src/main/java/com/jakewharton/sdksearch/ui/CustomTabsHelper.kt b/frontend/android/src/main/java/com/jakewharton/sdksearch/ui/CustomTabsHelper.kt new file mode 100644 index 00000000..87709726 --- /dev/null +++ b/frontend/android/src/main/java/com/jakewharton/sdksearch/ui/CustomTabsHelper.kt @@ -0,0 +1,14 @@ +package com.jakewharton.sdksearch.ui + +import android.content.Context +import android.support.customtabs.CustomTabsIntent +import com.jakewharton.sdksearch.R + +internal class CustomTabsHelper { + companion object { + fun intent(context: Context): CustomTabsIntent = builder(context).build() + fun builder(context: Context): CustomTabsIntent.Builder = CustomTabsIntent.Builder() + .setToolbarColor(context.getColor(R.color.green)) + .addDefaultShareMenuItem() + } +} diff --git a/frontend/android/src/main/java/com/jakewharton/sdksearch/ui/OpenDocumentationItemHandler.kt b/frontend/android/src/main/java/com/jakewharton/sdksearch/ui/OpenDocumentationItemHandler.kt index 9b274344..96dc721c 100644 --- a/frontend/android/src/main/java/com/jakewharton/sdksearch/ui/OpenDocumentationItemHandler.kt +++ b/frontend/android/src/main/java/com/jakewharton/sdksearch/ui/OpenDocumentationItemHandler.kt @@ -19,21 +19,20 @@ internal class OpenDocumentationItemHandler( override fun invoke(item: Item) { val uri = baseUrl.resolve(item.link).toUri() val sourceUri = androidReference.sourceUrl(item.packageName, item.className)?.toUri() - CustomTabsIntent.Builder() - .setToolbarColor(context.getColor(R.color.green)) - .addDefaultShareMenuItem() - .apply { - if (sourceUri != null) { - val sourceIntent = Intent(Intent.ACTION_VIEW, sourceUri) - val pendingIntent = PendingIntent.getActivity(context, 123, sourceIntent, 0) - setActionButton( - BitmapFactory.decodeResource(context.resources, R.drawable.ic_code_black_24dp), - context.getString(R.string.view_class_source, item.className), - pendingIntent, - true) + CustomTabsHelper.builder(context).apply { + if (sourceUri != null) { + val sourceIntent = CustomTabsHelper.intent(context).intent.apply { + data = sourceUri } + val pendingIntent = PendingIntent.getActivity(context, 123, sourceIntent, 0) + setActionButton( + BitmapFactory.decodeResource(context.resources, R.drawable.ic_code_black_24dp), + context.getString(R.string.view_class_source, item.className), + pendingIntent, + true) } - .build() - .launchUrl(context, uri) + } + .build() + .launchUrl(context, uri) } } diff --git a/frontend/android/src/main/java/com/jakewharton/sdksearch/ui/OpenSourceItemHandler.kt b/frontend/android/src/main/java/com/jakewharton/sdksearch/ui/OpenSourceItemHandler.kt index 1a8af271..b8b26dbb 100644 --- a/frontend/android/src/main/java/com/jakewharton/sdksearch/ui/OpenSourceItemHandler.kt +++ b/frontend/android/src/main/java/com/jakewharton/sdksearch/ui/OpenSourceItemHandler.kt @@ -1,7 +1,6 @@ package com.jakewharton.sdksearch.ui import android.content.Context -import android.support.customtabs.CustomTabsIntent import android.widget.Toast import com.jakewharton.sdksearch.R import com.jakewharton.sdksearch.store.Item @@ -15,11 +14,7 @@ internal class OpenSourceItemHandler( override fun invoke(item: Item) { val url = androidReference.sourceUrl(item.packageName, item.className) if (url != null) { - CustomTabsIntent.Builder() - .setToolbarColor(context.getColor(R.color.green)) - .addDefaultShareMenuItem() - .build() - .launchUrl(context, url.toUri()) + CustomTabsHelper.intent(context).launchUrl(context, url.toUri()) } else { Toast.makeText(context, R.string.unknown_source, Toast.LENGTH_SHORT).show() }