Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
B
Browser White
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wanglei
Browser White
Commits
b9de6269
Commit
b9de6269
authored
Aug 29, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
80ad2094
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
70 additions
and
23 deletions
+70
-23
MyApplication.kt
app/src/main/java/com/base/browserwhite/MyApplication.kt
+18
-1
MainActivity.kt
...in/java/com/base/browserwhite/ui/activity/MainActivity.kt
+1
-1
DialogViews.kt
...c/main/java/com/base/browserwhite/ui/views/DialogViews.kt
+22
-11
RoleManagerUtils.kt
...main/java/com/base/browserwhite/utils/RoleManagerUtils.kt
+21
-5
dialog_my_account.xml
app/src/main/res/layout/dialog_my_account.xml
+8
-5
No files found.
app/src/main/java/com/base/browserwhite/MyApplication.kt
View file @
b9de6269
...
...
@@ -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"
...
...
app/src/main/java/com/base/browserwhite/ui/activity/MainActivity.kt
View file @
b9de6269
...
...
@@ -110,7 +110,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
binding
.
llHome
.
callOnClick
()
binding
.
llMy
.
setOnClickListener
{
showMyAccountDialog
()
showMyAccountDialog
(
launcher
)
}
}
...
...
app/src/main/java/com/base/browserwhite/ui/views/DialogViews.kt
View file @
b9de6269
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
.
f
lSearchEngine
.
setOnClickListener
{
binding
.
c
lSearchEngine
.
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
{
...
...
app/src/main/java/com/base/browserwhite/utils/RoleManagerUtils.kt
View file @
b9de6269
...
...
@@ -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
app/src/main/res/layout/dialog_my_account.xml
View file @
b9de6269
...
...
@@ -20,13 +20,14 @@
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<ImageView
<
de.hdodenhof.circleimageview.Circle
ImageView
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"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment