mirror of
https://github.com/gedoor/legado.git
synced 2024-08-30 09:23:26 +08:00
优化
This commit is contained in:
parent
f59556be14
commit
d9567fa573
@ -2,12 +2,27 @@ package io.legado.app.help
|
|||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import android.net.Uri
|
||||||
import io.legado.app.R
|
import io.legado.app.R
|
||||||
import io.legado.app.utils.toastOnUi
|
import io.legado.app.utils.toastOnUi
|
||||||
|
import splitties.init.appCtx
|
||||||
|
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
object IntentHelp {
|
object IntentHelp {
|
||||||
|
|
||||||
|
fun getBrowserIntent(url: String): Intent {
|
||||||
|
return getBrowserIntent(Uri.parse(url))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getBrowserIntent(uri: Uri): Intent {
|
||||||
|
val intent = Intent(Intent.ACTION_VIEW)
|
||||||
|
intent.data = uri
|
||||||
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||||
|
if (intent.resolveActivity(appCtx.packageManager) == null) {
|
||||||
|
return Intent.createChooser(intent, "请选择浏览器")
|
||||||
|
}
|
||||||
|
return intent
|
||||||
|
}
|
||||||
|
|
||||||
fun toTTSSetting(context: Context) {
|
fun toTTSSetting(context: Context) {
|
||||||
//跳转到文字转语音设置界面
|
//跳转到文字转语音设置界面
|
||||||
|
@ -27,6 +27,7 @@ import androidx.preference.PreferenceManager
|
|||||||
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel
|
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel
|
||||||
import io.legado.app.R
|
import io.legado.app.R
|
||||||
import io.legado.app.constant.AppConst
|
import io.legado.app.constant.AppConst
|
||||||
|
import io.legado.app.help.IntentHelp
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.FileOutputStream
|
import java.io.FileOutputStream
|
||||||
@ -62,6 +63,20 @@ inline fun <reified T : Service> Context.servicePendingIntent(
|
|||||||
return getService(this, 0, intent, flags)
|
return getService(this, 0, intent, flags)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("UnspecifiedImmutableFlag")
|
||||||
|
fun Context.activityPendingIntent(
|
||||||
|
intent: Intent,
|
||||||
|
action: String
|
||||||
|
): PendingIntent? {
|
||||||
|
intent.action = action
|
||||||
|
val flags = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||||
|
FLAG_UPDATE_CURRENT or FLAG_MUTABLE
|
||||||
|
} else {
|
||||||
|
FLAG_UPDATE_CURRENT
|
||||||
|
}
|
||||||
|
return getActivity(this, 0, intent, flags)
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressLint("UnspecifiedImmutableFlag")
|
@SuppressLint("UnspecifiedImmutableFlag")
|
||||||
inline fun <reified T : Activity> Context.activityPendingIntent(
|
inline fun <reified T : Activity> Context.activityPendingIntent(
|
||||||
action: String,
|
action: String,
|
||||||
@ -145,8 +160,8 @@ fun Context.restart() {
|
|||||||
intent?.let {
|
intent?.let {
|
||||||
intent.addFlags(
|
intent.addFlags(
|
||||||
Intent.FLAG_ACTIVITY_NEW_TASK
|
Intent.FLAG_ACTIVITY_NEW_TASK
|
||||||
or Intent.FLAG_ACTIVITY_CLEAR_TASK
|
or Intent.FLAG_ACTIVITY_CLEAR_TASK
|
||||||
or Intent.FLAG_ACTIVITY_CLEAR_TOP
|
or Intent.FLAG_ACTIVITY_CLEAR_TOP
|
||||||
)
|
)
|
||||||
startActivity(intent)
|
startActivity(intent)
|
||||||
//杀掉以前进程
|
//杀掉以前进程
|
||||||
@ -284,25 +299,18 @@ val Context.externalCache: File
|
|||||||
get() = this.externalCacheDir ?: this.cacheDir
|
get() = this.externalCacheDir ?: this.cacheDir
|
||||||
|
|
||||||
fun Context.openUrl(url: String) {
|
fun Context.openUrl(url: String) {
|
||||||
openUrl(Uri.parse(url))
|
try {
|
||||||
|
startActivity(IntentHelp.getBrowserIntent(url))
|
||||||
|
} catch (e: Exception) {
|
||||||
|
toastOnUi(e.localizedMessage ?: "open url error")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Context.openUrl(uri: Uri) {
|
fun Context.openUrl(uri: Uri) {
|
||||||
val intent = Intent(Intent.ACTION_VIEW)
|
try {
|
||||||
intent.data = uri
|
startActivity(IntentHelp.getBrowserIntent(uri))
|
||||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
} catch (e: Exception) {
|
||||||
if (intent.resolveActivity(packageManager) != null) {
|
toastOnUi(e.localizedMessage ?: "open url error")
|
||||||
try {
|
|
||||||
startActivity(intent)
|
|
||||||
} catch (e: Exception) {
|
|
||||||
toastOnUi(e.localizedMessage ?: "open url error")
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
try {
|
|
||||||
startActivity(Intent.createChooser(intent, "请选择浏览器"))
|
|
||||||
} catch (e: Exception) {
|
|
||||||
toastOnUi(e.localizedMessage ?: "open url error")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user