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.navigationUi)
implementation(Dependencies.AndroidX.workManager)
implementation(Dependencies.AndroidX.browser)
// Google
implementation(Dependencies.Google.material)

View File

@@ -6,6 +6,8 @@ import android.content.Intent
import android.content.pm.PackageManager
import android.net.Uri
import androidx.appcompat.app.AppCompatActivity
import androidx.browser.customtabs.CustomTabColorSchemeParams
import androidx.browser.customtabs.CustomTabsIntent.*
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import com.google.android.material.dialog.MaterialAlertDialogBuilder
@@ -15,9 +17,8 @@ import net.underdesk.circolapp.adapters.CircularLetterAdapter
object FileUtils {
fun viewFile(url: String, context: Context) {
val viewIntent = Intent(Intent.ACTION_VIEW)
if (url.endsWith(".pdf")) {
val viewIntent = Intent(Intent.ACTION_VIEW)
viewIntent.setDataAndType(Uri.parse(url), "application/pdf")
if (viewIntent.resolveActivity(context.packageManager) == null) {
@@ -36,11 +37,24 @@ object FileUtils {
return
}
} else {
viewIntent.data = Uri.parse(url)
}
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) {

View File

@@ -14,6 +14,7 @@ object Dependencies {
const val lifecycleExtensions = "androidx.lifecycle:lifecycle-extensions: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 browser = "androidx.browser:browser:1.3.0"
private const val navigationVersion = "2.3.2"
const val navigationFragment =