Use custom tabs on Android

This commit is contained in:
Matte23
2021-01-12 16:17:39 +01:00
parent 1ada3a0544
commit 45034b294c
3 changed files with 22 additions and 6 deletions

View File

@@ -64,6 +64,7 @@ dependencies {
implementation(Dependencies.AndroidX.navigationFragment) implementation(Dependencies.AndroidX.navigationFragment)
implementation(Dependencies.AndroidX.navigationUi) implementation(Dependencies.AndroidX.navigationUi)
implementation(Dependencies.AndroidX.workManager) implementation(Dependencies.AndroidX.workManager)
implementation(Dependencies.AndroidX.browser)
// Google // Google
implementation(Dependencies.Google.material) implementation(Dependencies.Google.material)

View File

@@ -6,6 +6,8 @@ import android.content.Intent
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.net.Uri import android.net.Uri
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.browser.customtabs.CustomTabColorSchemeParams
import androidx.browser.customtabs.CustomTabsIntent.*
import androidx.core.app.ActivityCompat import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
@@ -15,9 +17,8 @@ import net.underdesk.circolapp.adapters.CircularLetterAdapter
object FileUtils { object FileUtils {
fun viewFile(url: String, context: Context) { fun viewFile(url: String, context: Context) {
val viewIntent = Intent(Intent.ACTION_VIEW)
if (url.endsWith(".pdf")) { if (url.endsWith(".pdf")) {
val viewIntent = Intent(Intent.ACTION_VIEW)
viewIntent.setDataAndType(Uri.parse(url), "application/pdf") viewIntent.setDataAndType(Uri.parse(url), "application/pdf")
if (viewIntent.resolveActivity(context.packageManager) == null) { if (viewIntent.resolveActivity(context.packageManager) == null) {
@@ -36,11 +37,24 @@ object FileUtils {
return return
} }
} else {
viewIntent.data = Uri.parse(url)
}
context.startActivity(viewIntent) context.startActivity(viewIntent)
} else {
val primaryColor = ContextCompat.getColor(context, R.color.colorPrimary)
val otherParams = CustomTabColorSchemeParams.Builder()
.setToolbarColor(primaryColor)
.build()
val customTabsIntent = Builder()
.setShowTitle(true)
.setColorScheme(COLOR_SCHEME_SYSTEM)
.setDefaultColorSchemeParams(otherParams)
.setShareState(SHARE_STATE_ON)
.build()
customTabsIntent.launchUrl(context, Uri.parse(url))
}
} }
fun shareFile(url: String, context: Context) { fun shareFile(url: String, context: Context) {

View File

@@ -14,6 +14,7 @@ object Dependencies {
const val lifecycleExtensions = "androidx.lifecycle:lifecycle-extensions:2.2.0" const val lifecycleExtensions = "androidx.lifecycle:lifecycle-extensions:2.2.0"
const val lifecycleLiveData = "androidx.lifecycle:lifecycle-livedata-ktx:2.2.0" const val lifecycleLiveData = "androidx.lifecycle:lifecycle-livedata-ktx:2.2.0"
const val preference = "androidx.preference:preference-ktx:1.1.1" const val preference = "androidx.preference:preference-ktx:1.1.1"
const val browser = "androidx.browser:browser:1.3.0"
private const val navigationVersion = "2.3.2" private const val navigationVersion = "2.3.2"
const val navigationFragment = const val navigationFragment =