mirror of
https://github.com/Matte23/circolapp.git
synced 2025-12-05 23:19:10 +00:00
Use custom tabs on Android
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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 =
|
||||||
|
|||||||
Reference in New Issue
Block a user