Commit b9de6269 authored by wanglei's avatar wanglei

...

parent 80ad2094
......@@ -4,6 +4,7 @@ import android.app.Activity
import android.app.Application
import android.content.Intent
import android.os.Bundle
import android.text.TextUtils
import com.base.browserwhite.fcm.FCMManager
import com.base.browserwhite.fcm.ScreenStatusReceiver
import com.base.browserwhite.help.BlackHelper
......@@ -12,14 +13,16 @@ import com.base.browserwhite.help.InstallHelps
import com.base.browserwhite.help.WeatherUtils
import com.base.browserwhite.ui.activity.splash.Splash2Activity
import com.base.browserwhite.utils.ActivityManagerUtils
import com.base.browserwhite.utils.AppPreferences
import com.base.browserwhite.utils.LogEx
import com.facebook.FacebookSdk
import com.liulishuo.filedownloader.FileDownloader
import java.util.UUID
class MyApplication : Application() {
private val TAG = "MyApplication"
var uuid = ""
companion object {
lateinit var context: MyApplication
......@@ -32,9 +35,23 @@ class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
context = this
initUUid()
initApp()
}
private fun initUUid() {
//使用同一个uuid来测试上报
//7a6f8e5f-ca67-4149-975b-dacdc6c51aff1723174621132
// AppPreferences.getInstance().put("uuid", "7a6f8e5f-ca67-4149-975b-dacdc6c51aff1723174621132")
uuid = AppPreferences.getInstance().getString("uuid", "")
if (TextUtils.isEmpty(uuid)) {
uuid = UUID.randomUUID().toString() + System.currentTimeMillis()
AppPreferences.getInstance().put("uuid", uuid)
LogEx.logDebug(TAG, "uuid=$uuid")
}
}
fun initApp() {
FacebookSdk.sdkInitialize(applicationContext)
val topic = ConfigHelper.packageName + "_push"
......
......@@ -110,7 +110,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
binding.llHome.callOnClick()
binding.llMy.setOnClickListener {
showMyAccountDialog()
showMyAccountDialog(launcher)
}
}
......
package com.base.browserwhite.ui.views
import android.annotation.SuppressLint
import android.app.AlertDialog
import android.app.Dialog
import android.app.role.RoleManager
import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.os.Build
import android.provider.Settings
import android.net.Uri
import android.view.Gravity
import android.view.LayoutInflater
import android.view.View
import android.widget.FrameLayout
import androidx.core.view.isVisible
import com.base.browserwhite.R
import com.base.browserwhite.bean.ConstObject
import com.base.browserwhite.bean.ConstObject.BAIDU
......@@ -27,9 +22,10 @@ import com.base.browserwhite.databinding.DialogDefaultBrowserBinding
import com.base.browserwhite.databinding.DialogDeleteTipBinding
import com.base.browserwhite.databinding.DialogMediaMoreBinding
import com.base.browserwhite.databinding.DialogMyAccountBinding
import com.base.browserwhite.databinding.DialogPermissonOpenBinding
import com.base.browserwhite.databinding.DialogSearchEngineBinding
import com.base.browserwhite.utils.ActivityLauncher
import com.base.browserwhite.utils.AppPreferences
import com.base.browserwhite.utils.RoleManagerUtils.isDefaultBrowser
import com.base.browserwhite.utils.RoleManagerUtils.requestRoleBrowser
import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetDialog
......@@ -38,7 +34,6 @@ import com.google.android.material.bottomsheet.BottomSheetDialog
object DialogViews {
fun Context.showSearchEngineDialog(confirmAction: (webSite: String) -> Unit) {
val binding = DialogSearchEngineBinding.inflate(LayoutInflater.from(this))
......@@ -115,7 +110,7 @@ object DialogViews {
}
fun Context.showMyAccountDialog() {
fun Context.showMyAccountDialog(launcher: ActivityLauncher) {
val dialog = BottomSheetDialog(this)
val binding = DialogMyAccountBinding.inflate(LayoutInflater.from(this))
dialog.setContentView(binding.root)
......@@ -128,6 +123,8 @@ object DialogViews {
//展开
behavior.state = BottomSheetBehavior.STATE_EXPANDED
binding.tvId.text = AppPreferences.getInstance().getString("uuid", "")
binding.tvSearchEngines.text = searchEngineSp
when (searchEngineSp) {
GOOGLE -> binding.ivSearchEngine.setImageResource(R.mipmap.m_google)
......@@ -138,9 +135,10 @@ object DialogViews {
BAIDU -> binding.ivSearchEngine.setImageResource(R.mipmap.m_baidu)
}
binding.flSearchEngine.setOnClickListener {
binding.clSearchEngine.setOnClickListener {
showSearchEngineDialog {
searchEngineSp = it
binding.tvSearchEngines.text = it
when (searchEngineSp) {
GOOGLE -> binding.ivSearchEngine.setImageResource(R.mipmap.m_google)
BING -> binding.ivSearchEngine.setImageResource(R.mipmap.m_bing)
......@@ -151,6 +149,19 @@ object DialogViews {
}
}
}
binding.clDefaultBrowser.isVisible = !isDefaultBrowser()
binding.tvSwitchBrowser.setOnCheckedChangeListener { buttonView, isChecked ->
if (isChecked) {
requestRoleBrowser(launcher) {
if (isDefaultBrowser()) {
binding.clDefaultBrowser.visibility = View.GONE
} else {
binding.tvSwitchBrowser.isChecked = false
}
}
}
}
binding.tvCancel.setOnClickListener {
......
......@@ -3,28 +3,44 @@ package com.base.browserwhite.utils
import android.app.role.RoleManager
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Build
import android.provider.Settings
import android.view.View
object RoleManagerUtils {
fun Context.requestRoleBrowser(launcher: ActivityLauncher) {
fun Context.isDefaultBrowser(): Boolean {
val testIntent = Intent(Intent.ACTION_VIEW, Uri.parse("http://www.example.com"))
val resolveInfo = packageManager.resolveActivity(testIntent, 0)
return resolveInfo != null && resolveInfo.activityInfo.packageName == packageName
}
fun Context.requestRoleBrowser(launcher: ActivityLauncher, callBack: (() -> Unit)? = null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
val roleManager = getSystemService(RoleManager::class.java) as RoleManager
if (!roleManager.isRoleAvailable("android.app.role.BROWSER")) {
val intent = Intent(Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS)
launcher.launch(intent)
launcher.launch(intent) {
callBack?.invoke()
}
} else if (roleManager.isRoleHeld("android.app.role.BROWSER")) {
val intent = Intent(Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS)
startActivity(intent)
launcher.launch(intent) {
callBack?.invoke()
}
} else {
val intent = roleManager.createRequestRoleIntent("android.app.role.BROWSER")
launcher.launch(intent)
launcher.launch(intent) {
callBack?.invoke()
}
}
} else {
val intent = Intent(Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS)
startActivity(intent)
launcher.launch(intent) {
callBack?.invoke()
}
}
}
}
\ No newline at end of file
......@@ -20,13 +20,14 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/iv_avatar"
android:layout_width="68dp"
android:layout_height="68dp"
android:layout_marginStart="10dp"
android:layout_marginTop="40dp"
android:layout_marginBottom="16dp"
android:src="@mipmap/logo"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
......@@ -71,8 +72,8 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:id="@+id/cl_search_engine"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<FrameLayout
......@@ -93,7 +94,6 @@
</FrameLayout>
<TextView
android:id="@+id/tv_search_engines"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="15dp"
......@@ -106,6 +106,7 @@
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/tv_search_engines"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="26dp"
......@@ -128,6 +129,7 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_default_browser"
android:layout_width="match_parent"
android:layout_height="wrap_content">
......@@ -161,6 +163,7 @@
tools:ignore="HardcodedText" />
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/tv_switch_browser"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="26dp"
......@@ -188,8 +191,8 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:visibility="gone"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:visibility="gone">
<FrameLayout
android:id="@+id/fl_language"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment