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
3527c425
Commit
3527c425
authored
Aug 29, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
ac75cd3a
Hide whitespace changes
Inline
Side-by-side
Showing
54 changed files
with
340 additions
and
230 deletions
+340
-230
MyApplication.kt
app/src/main/java/com/base/browserwhite/MyApplication.kt
+2
-2
AdDisplayUtils.java
...c/main/java/com/base/browserwhite/ads/AdDisplayUtils.java
+2
-2
AdmobMaxHelper.kt
...src/main/java/com/base/browserwhite/ads/AdmobMaxHelper.kt
+11
-7
AdmobEvent.kt
...c/main/java/com/base/browserwhite/ads/admob/AdmobEvent.kt
+7
-7
AdmobInterstitialUtils.kt
...com/base/browserwhite/ads/admob/AdmobInterstitialUtils.kt
+4
-4
AdmobNativeUtils.kt
.../java/com/base/browserwhite/ads/admob/AdmobNativeUtils.kt
+3
-3
AdmobOpenUtils.kt
...in/java/com/base/browserwhite/ads/admob/AdmobOpenUtils.kt
+6
-6
AdMaxEvent.kt
...src/main/java/com/base/browserwhite/ads/max/AdMaxEvent.kt
+7
-7
AdMaxInit.kt
app/src/main/java/com/base/browserwhite/ads/max/AdMaxInit.kt
+2
-2
AdMaxInterstitialUtils.kt
...a/com/base/browserwhite/ads/max/AdMaxInterstitialUtils.kt
+6
-6
AdMaxNativeUtils.kt
...in/java/com/base/browserwhite/ads/max/AdMaxNativeUtils.kt
+2
-2
AdMaxOpenUtils.kt
...main/java/com/base/browserwhite/ads/max/AdMaxOpenUtils.kt
+6
-6
ConstObject.kt
app/src/main/java/com/base/browserwhite/bean/ConstObject.kt
+1
-1
FCMManager.java
app/src/main/java/com/base/browserwhite/fcm/FCMManager.java
+2
-2
MessagingService.java
...main/java/com/base/browserwhite/fcm/MessagingService.java
+2
-3
NotificationUtil.kt
...c/main/java/com/base/browserwhite/fcm/NotificationUtil.kt
+2
-2
BlackHelper.kt
app/src/main/java/com/base/browserwhite/help/BlackHelper.kt
+1
-1
EventHelper.kt
app/src/main/java/com/base/browserwhite/help/EventHelper.kt
+1
-1
InstallHelper.kt
...src/main/java/com/base/browserwhite/help/InstallHelper.kt
+3
-3
NewComUtils.kt
app/src/main/java/com/base/browserwhite/help/NewComUtils.kt
+1
-1
StayNotificationService.kt
.../com/base/browserwhite/service/StayNotificationService.kt
+2
-2
MainActivity.kt
...in/java/com/base/browserwhite/ui/activity/MainActivity.kt
+4
-3
DownloadAdapter.kt
...base/browserwhite/ui/activity/download/DownloadAdapter.kt
+1
-1
WebDownloadManagerActivity.kt
...rwhite/ui/activity/download/WebDownloadManagerActivity.kt
+5
-5
MediaBrowserActivity.kt
...serwhite/ui/activity/mediabrowser/MediaBrowserActivity.kt
+2
-8
NewsActivity.kt
...va/com/base/browserwhite/ui/activity/news/NewsActivity.kt
+12
-1
ScanQRCActivity.kt
.../base/browserwhite/ui/activity/scanqrc/ScanQRCActivity.kt
+1
-5
Splash2Activity.kt
...m/base/browserwhite/ui/activity/splash/Splash2Activity.kt
+14
-15
StartUtils.kt
...va/com/base/browserwhite/ui/activity/splash/StartUtils.kt
+22
-2
WebBrowserActivity.kt
...browserwhite/ui/activity/webbrowser/WebBrowserActivity.kt
+5
-7
WebViewFragment.kt
...se/browserwhite/ui/activity/webbrowser/WebViewFragment.kt
+3
-3
FileFragment.kt
...in/java/com/base/browserwhite/ui/fragment/FileFragment.kt
+2
-2
HomeFragment.kt
...in/java/com/base/browserwhite/ui/fragment/HomeFragment.kt
+4
-2
DialogViews.kt
...c/main/java/com/base/browserwhite/ui/views/DialogViews.kt
+30
-20
AnimationUtils.java
...main/java/com/base/browserwhite/utils/AnimationUtils.java
+1
-1
DownloadUtils.kt
...rc/main/java/com/base/browserwhite/utils/DownloadUtils.kt
+1
-2
LinkSearchUtils.kt
.../main/java/com/base/browserwhite/utils/LinkSearchUtils.kt
+17
-0
PermissionUtils.kt
.../main/java/com/base/browserwhite/utils/PermissionUtils.kt
+1
-1
RoleManagerUtils.kt
...main/java/com/base/browserwhite/utils/RoleManagerUtils.kt
+30
-0
ShortcutHelper.java
...main/java/com/base/browserwhite/utils/ShortcutHelper.java
+0
-56
ShortcutUtils.kt
...rc/main/java/com/base/browserwhite/utils/ShortcutUtils.kt
+96
-13
splash_bp.xml
app/src/main/res/drawable/splash_bp.xml
+1
-1
activity_splash_2.xml
app/src/main/res/layout/activity_splash_2.xml
+7
-7
dialog_default_browser.xml
app/src/main/res/layout/dialog_default_browser.xml
+1
-1
dialog_my_account.xml
app/src/main/res/layout/dialog_my_account.xml
+4
-1
fragment_file.xml
app/src/main/res/layout/fragment_file.xml
+2
-2
fragment_home.xml
app/src/main/res/layout/fragment_home.xml
+1
-1
m_baidu.png
app/src/main/res/mipmap-xxhdpi/m_baidu.png
+0
-0
m_bing.png
app/src/main/res/mipmap-xxhdpi/m_bing.png
+0
-0
m_xuckd.png
app/src/main/res/mipmap-xxhdpi/m_xuckd.png
+0
-0
m_yahoo.png
app/src/main/res/mipmap-xxhdpi/m_yahoo.png
+0
-0
m_yandex.png
app/src/main/res/mipmap-xxhdpi/m_yandex.png
+0
-0
moren.png
app/src/main/res/mipmap-xxhdpi/moren.png
+0
-0
sousuo.png
app/src/main/res/mipmap-xxhdpi/sousuo.png
+0
-0
No files found.
app/src/main/java/com/base/browserwhite/MyApplication.kt
View file @
3527c425
...
...
@@ -6,7 +6,7 @@ import android.content.Intent
import
android.os.Bundle
import
com.base.browserwhite.fcm.FCMManager
import
com.base.browserwhite.fcm.ScreenStatusReceiver
import
com.base.browserwhite.help.Black
Utils
import
com.base.browserwhite.help.Black
Helper
import
com.base.browserwhite.help.ConfigHelper
import
com.base.browserwhite.help.InstallHelps
import
com.base.browserwhite.help.WeatherUtils
...
...
@@ -43,7 +43,7 @@ class MyApplication : Application() {
FCMManager
.
subscribeToTopic
(
topic
)
ScreenStatusReceiver
.
setupScreenStatusListener
(
this
)
InstallHelps
.
init
()
Black
Utils
.
requestBlack
()
Black
Helper
.
requestBlack
()
initLifeListener
()
initFileDownloader
()
...
...
app/src/main/java/com/base/browserwhite/ads/AdDisplayUtils.java
View file @
3527c425
...
...
@@ -7,7 +7,7 @@ import android.util.Log;
import
com.base.browserwhite.BuildConfig
;
import
com.base.browserwhite.MyApplication
;
import
com.base.browserwhite.help.Event
Utils
;
import
com.base.browserwhite.help.Event
Helper
;
import
com.base.browserwhite.utils.AppPreferences
;
import
com.base.browserwhite.utils.LogEx
;
import
com.facebook.appevents.AppEventsLogger
;
...
...
@@ -127,7 +127,7 @@ public class AdDisplayUtils {
obj2
.
put
(
"adRequestCount"
,
adRequestCount
);
obj2
.
put
(
"ad_unit"
,
ad_unit
);
Event
Utils
.
INSTANCE
.
event
(
"ad_show_error"
,
null
,
obj2
,
false
);
Event
Helper
.
INSTANCE
.
event
(
"ad_show_error"
,
null
,
obj2
,
false
);
}
catch
(
JSONException
ignored
)
{
}
...
...
app/src/main/java/com/base/browserwhite/ads/AdmobMaxHelper.kt
View file @
3527c425
...
...
@@ -13,7 +13,7 @@ import com.base.browserwhite.ads.max.AdMaxInit.initAdMax
import
com.base.browserwhite.ads.max.AdMaxInterstitialUtils
import
com.base.browserwhite.ads.max.AdMaxNativeUtils
import
com.base.browserwhite.ads.max.AdMaxOpenUtils
import
com.base.browserwhite.help.Event
Utils
import
com.base.browserwhite.help.Event
Helper
import
com.base.browserwhite.utils.AppPreferences
import
com.base.browserwhite.utils.LogEx
import
com.google.android.gms.ads.MobileAds
...
...
@@ -27,9 +27,13 @@ object AdmobMaxHelper {
// if (System.currentTimeMillis() - lastShowInter > 10 * 1000 * 1000 || lastShowInter == 0L) {
// AdmobMaxHelper.admobMaxShowInterstitialAd(this@WebBrowserActivity, false) {
// lastShowInter = System.currentTimeMillis()
// if (it) {
// lastShowInter = System.currentTimeMillis()
// }
// finishToMain()
// }
// } else {
// finishToMain()
// }
var
lastShowInter
=
0L
...
...
@@ -60,7 +64,7 @@ object AdmobMaxHelper {
LogEx
.
logDebug
(
TAG
,
"init sp Admob"
)
MobileAds
.
initialize
(
MyApplication
.
context
)
{
initializationStatus
->
isAdInit
.
set
(
true
)
Event
Utils
.
event
(
"AdmobInit"
,
"AdmobInit"
)
Event
Helper
.
event
(
"AdmobInit"
,
"AdmobInit"
)
}
}
}
else
{
...
...
@@ -76,20 +80,20 @@ object AdmobMaxHelper {
var
lastShowedOnHiddenTime
=
0L
fun
admobMaxShowInterstitialAd
(
activity
:
Activity
,
isLoading
:
Boolean
=
true
,
onHidden
:
((
showed
:
Boolean
)
->
Unit
)?
=
null
)
{
if
(
isBlack
)
{
Event
Utils
.
event
(
"ad_black"
,
"interAd"
)
Event
Helper
.
event
(
"ad_black"
,
"interAd"
)
onHidden
?.
invoke
(
false
)
return
}
val
isShowLoadingAd
=
AppPreferences
.
getInstance
().
getString
(
"isShowLoadingAd"
,
"0"
).
toInt
()
if
(
isShowLoadingAd
==
0
&&
isLoading
)
{
Event
Utils
.
event
(
"ad_switch_close"
)
Event
Helper
.
event
(
"ad_switch_close"
)
onHidden
?.
invoke
(
false
)
return
}
val
adInterval
=
AppPreferences
.
getInstance
().
getString
(
"adInterval"
,
"0"
).
toInt
()
if
((
System
.
currentTimeMillis
()
-
lastShowedOnHiddenTime
)
<
adInterval
*
1000
&&
lastShowedOnHiddenTime
!=
0L
)
{
onHidden
?.
invoke
(
false
)
Event
Utils
.
event
(
"ad_interval"
)
Event
Helper
.
event
(
"ad_interval"
)
return
}
...
...
@@ -109,7 +113,7 @@ object AdmobMaxHelper {
onHidden
:
(()
->
Unit
)?
=
null
,
)
{
if
(
isBlack
)
{
Event
Utils
.
event
(
"ad_black"
,
"openAd"
)
Event
Helper
.
event
(
"ad_black"
,
"openAd"
)
onHidden
?.
invoke
()
return
}
...
...
app/src/main/java/com/base/browserwhite/ads/admob/AdmobEvent.kt
View file @
3527c425
...
...
@@ -3,7 +3,7 @@ package com.base.browserwhite.ads.admob
import
android.app.Activity
import
android.os.Bundle
import
com.base.browserwhite.MyApplication
import
com.base.browserwhite.help.Event
Utils
import
com.base.browserwhite.help.Event
Helper
import
com.facebook.appevents.AppEventsConstants
import
com.facebook.appevents.AppEventsLogger
import
com.google.android.gms.ads.AdValue
...
...
@@ -49,7 +49,7 @@ object AdmobEvent {
obj
.
put
(
"errMsg"
,
error
)
obj
.
put
(
"status"
,
"2"
)
}
Event
Utils
.
event
(
"ad_pull"
,
ext
=
obj
)
Event
Helper
.
event
(
"ad_pull"
,
ext
=
obj
)
}
private
val
taichiPref
by
lazy
{
...
...
@@ -199,7 +199,7 @@ object AdmobEvent {
obj
.
put
(
"session_id"
,
sessionId
)
}
}
Event
Utils
.
event
(
"ad_price"
,
ext
=
obj
)
Event
Helper
.
event
(
"ad_price"
,
ext
=
obj
)
}
}
...
...
@@ -219,9 +219,9 @@ object AdmobEvent {
obj
.
put
(
"session_id"
,
responseInfo
?.
responseId
)
obj
.
put
(
"networkname"
,
responseInfo
?.
mediationAdapterClassName
)
if
(
adUnit
!=
"nativeAd"
)
{
Event
Utils
.
event
(
"ad_click"
,
ext
=
obj
)
Event
Helper
.
event
(
"ad_click"
,
ext
=
obj
)
}
else
{
Event
Utils
.
event
(
"bigimage_ad_click"
,
ext
=
obj
)
Event
Helper
.
event
(
"bigimage_ad_click"
,
ext
=
obj
)
}
}
...
...
@@ -240,9 +240,9 @@ object AdmobEvent {
obj
.
put
(
"session_id"
,
responseInfo
?.
responseId
)
obj
.
put
(
"from"
,
activity
?.
javaClass
?.
simpleName
)
if
(
adUnit
!=
"nativeAd"
)
{
Event
Utils
.
event
(
"ad_show"
,
ext
=
obj
)
Event
Helper
.
event
(
"ad_show"
,
ext
=
obj
)
}
else
{
Event
Utils
.
event
(
"bigimage_ad_show"
,
ext
=
obj
)
Event
Helper
.
event
(
"bigimage_ad_show"
,
ext
=
obj
)
}
}
}
\ No newline at end of file
app/src/main/java/com/base/browserwhite/ads/admob/AdmobInterstitialUtils.kt
View file @
3527c425
...
...
@@ -13,7 +13,7 @@ import com.base.browserwhite.ads.admob.AdmobEvent.clickAd
import
com.base.browserwhite.ads.admob.AdmobEvent.pullAd
import
com.base.browserwhite.ads.admob.AdmobEvent.showAd
import
com.base.browserwhite.help.ConfigHelper
import
com.base.browserwhite.help.Event
Utils
import
com.base.browserwhite.help.Event
Helper
import
com.google.android.gms.ads.AdError
import
com.google.android.gms.ads.AdRequest
import
com.google.android.gms.ads.FullScreenContentCallback
...
...
@@ -48,12 +48,12 @@ object AdmobInterstitialUtils {
}
val
obj1
=
JSONObject
()
obj1
.
put
(
"ad_unit"
,
"interAd"
)
Event
Utils
.
event
(
"ad_prepare_show"
,
ext
=
obj1
)
Event
Helper
.
event
(
"ad_prepare_show"
,
ext
=
obj1
)
if
(
isAdExpired
())
{
val
obj2
=
JSONObject
()
obj2
.
put
(
"ad_unit"
,
"interAd"
)
Event
Utils
.
event
(
"ad_expire"
,
ext
=
obj2
)
Event
Helper
.
event
(
"ad_expire"
,
ext
=
obj2
)
interAd
=
null
loadInterstitialAd
(
activity
)
onHidden
?.
invoke
(
false
)
...
...
@@ -86,7 +86,7 @@ object AdmobInterstitialUtils {
obj
.
put
(
"req_id"
,
reqId
)
obj
.
put
(
"ad_type"
,
"interAd"
)
obj
.
put
(
"from"
,
activity
.
javaClass
.
simpleName
)
Event
Utils
.
event
(
"ad_pull_start"
,
ext
=
obj
)
Event
Helper
.
event
(
"ad_pull_start"
,
ext
=
obj
)
InterstitialAd
.
load
(
activity
,
if
(
BuildConfig
.
DEBUG
)
ConfigHelper
.
interAdmobIdTest
else
ConfigHelper
.
interAdmobId
,
...
...
app/src/main/java/com/base/browserwhite/ads/admob/AdmobNativeUtils.kt
View file @
3527c425
...
...
@@ -11,7 +11,7 @@ import com.base.browserwhite.ads.admob.AdmobEvent.clickAd
import
com.base.browserwhite.ads.admob.AdmobEvent.pullAd
import
com.base.browserwhite.ads.admob.AdmobEvent.showAd
import
com.base.browserwhite.help.ConfigHelper
import
com.base.browserwhite.help.Event
Utils
import
com.base.browserwhite.help.Event
Helper
import
com.base.browserwhite.utils.LogEx
import
com.google.android.gms.ads.AdListener
import
com.google.android.gms.ads.AdLoader
...
...
@@ -87,7 +87,7 @@ object AdmobNativeUtils {
fun
showNativeAd
(
activity
:
Activity
?,
parent
:
ViewGroup
,
layout
:
Int
=
R
.
layout
.
layout_admob_native_custom
)
{
val
obj
=
JSONObject
()
obj
.
put
(
"ad_unit"
,
"NativeAd"
)
Event
Utils
.
event
(
"ad_prepare_show_native"
,
ext
=
obj
)
Event
Helper
.
event
(
"ad_prepare_show_native"
,
ext
=
obj
)
if
(!
AdDisplayUtils
.
getInstance
().
shouldShowAd
(
"NativeAd"
))
{
return
}
...
...
@@ -112,7 +112,7 @@ object AdmobNativeUtils {
val
obj2
=
JSONObject
()
obj2
.
put
(
"reason"
,
"no_ad"
)
obj2
.
put
(
"ad_unit"
,
"nativeAd"
)
Event
Utils
.
event
(
"ad_show_error"
,
ext
=
obj2
)
Event
Helper
.
event
(
"ad_show_error"
,
ext
=
obj2
)
}
else
{
loadingListener
?.
invoke
()
}
...
...
app/src/main/java/com/base/browserwhite/ads/admob/AdmobOpenUtils.kt
View file @
3527c425
...
...
@@ -8,7 +8,7 @@ import com.base.browserwhite.ads.admob.AdmobEvent.clickAd
import
com.base.browserwhite.ads.admob.AdmobEvent.pullAd
import
com.base.browserwhite.ads.admob.AdmobEvent.showAd
import
com.base.browserwhite.help.ConfigHelper
import
com.base.browserwhite.help.Event
Utils
import
com.base.browserwhite.help.Event
Helper
import
com.base.browserwhite.utils.LogEx
import
com.google.android.gms.ads.AdError
import
com.google.android.gms.ads.AdRequest
...
...
@@ -40,7 +40,7 @@ object AdmobOpenUtils {
val
obj
=
JSONObject
()
obj
.
put
(
"req_id"
,
reqId
)
obj
.
put
(
"ad_type"
,
"openAd"
)
Event
Utils
.
event
(
"ad_pull_start"
,
ext
=
obj
)
Event
Helper
.
event
(
"ad_pull_start"
,
ext
=
obj
)
AppOpenAd
.
load
(
MyApplication
.
context
,
if
(
BuildConfig
.
DEBUG
)
ConfigHelper
.
openAdmobIdTest
else
ConfigHelper
.
openAdmobId
,
...
...
@@ -86,13 +86,13 @@ object AdmobOpenUtils {
onHidden
?.
invoke
(
2
)
val
obj2
=
JSONObject
()
obj2
.
put
(
"ad_unit"
,
"openAd"
)
Event
Utils
.
event
(
"ad_expire"
,
ext
=
obj2
)
Event
Helper
.
event
(
"ad_expire"
,
ext
=
obj2
)
return
}
if
(!
isRetry
)
{
val
obj1
=
JSONObject
()
obj1
.
put
(
"ad_unit"
,
"openAd"
)
Event
Utils
.
event
(
"ad_prepare_show"
,
ext
=
obj1
)
Event
Helper
.
event
(
"ad_prepare_show"
,
ext
=
obj1
)
}
if
(
mOpenAd
!=
null
)
{
...
...
@@ -117,7 +117,7 @@ object AdmobOpenUtils {
val
obj
=
JSONObject
()
obj
.
put
(
"reason"
,
p0
.
message
)
obj
.
put
(
"ad_unit"
,
"openAd"
)
Event
Utils
.
event
(
"ad_show_error"
,
ext
=
obj
)
Event
Helper
.
event
(
"ad_show_error"
,
ext
=
obj
)
}
override
fun
onAdShowedFullScreenContent
()
{
...
...
@@ -135,7 +135,7 @@ object AdmobOpenUtils {
val
obj
=
JSONObject
()
obj
.
put
(
"reason"
,
"no_ad"
)
obj
.
put
(
"ad_unit"
,
"openAd"
)
Event
Utils
.
event
(
"ad_show_error"
,
ext
=
obj
)
Event
Helper
.
event
(
"ad_show_error"
,
ext
=
obj
)
onHidden
?.
invoke
(
5
)
}
}
...
...
app/src/main/java/com/base/browserwhite/ads/max/AdMaxEvent.kt
View file @
3527c425
...
...
@@ -5,7 +5,7 @@ import com.applovin.mediation.MaxAd
import
com.applovin.mediation.MaxAdRevenueListener
import
com.applovin.sdk.AppLovinSdk
import
com.base.browserwhite.MyApplication
import
com.base.browserwhite.help.Event
Utils
import
com.base.browserwhite.help.Event
Helper
import
com.base.browserwhite.utils.LogEx
import
com.facebook.FacebookSdk
import
com.facebook.appevents.AppEventsConstants
...
...
@@ -35,7 +35,7 @@ object AdMaxEvent {
obj
.
put
(
"errMsg"
,
error
)
obj
.
put
(
"status"
,
"2"
)
}
Event
Utils
.
event
(
"ad_pull"
,
ext
=
obj
)
Event
Helper
.
event
(
"ad_pull"
,
ext
=
obj
)
}
fun
clickAd
(
ad
:
MaxAd
?,
adUnit
:
String
)
{
...
...
@@ -53,9 +53,9 @@ object AdMaxEvent {
obj
.
put
(
"latency"
,
ad
?.
requestLatencyMillis
)
obj
.
put
(
"valueMicros"
,
ad
?.
revenue
)
if
(!
adUnit
.
equals
(
"nativeAd"
))
{
Event
Utils
.
event
(
"ad_click"
,
ext
=
obj
)
Event
Helper
.
event
(
"ad_click"
,
ext
=
obj
)
}
else
{
Event
Utils
.
event
(
"big_imgad_click"
,
ext
=
obj
)
Event
Helper
.
event
(
"big_imgad_click"
,
ext
=
obj
)
}
}
...
...
@@ -77,9 +77,9 @@ object AdMaxEvent {
obj
.
put
(
"mediation"
,
"applovin"
)
LogEx
.
logDebug
(
"glc"
,
"from: $activity"
)
if
(
adUnit
!=
"nativeAd"
)
{
Event
Utils
.
event
(
"ad_show"
,
ext
=
obj
)
Event
Helper
.
event
(
"ad_show"
,
ext
=
obj
)
}
else
{
Event
Utils
.
event
(
"big_img_show"
,
ext
=
obj
)
Event
Helper
.
event
(
"big_img_show"
,
ext
=
obj
)
}
}
...
...
@@ -137,7 +137,7 @@ object AdMaxEvent {
obj
.
put
(
"adFormat"
,
adFormat
)
obj
.
put
(
"placement"
,
placement
)
obj
.
put
(
"networkPlacement"
,
networkPlacement
)
Event
Utils
.
event
(
"ad_price"
,
ext
=
obj
)
Event
Helper
.
event
(
"ad_price"
,
ext
=
obj
)
}
}
...
...
app/src/main/java/com/base/browserwhite/ads/max/AdMaxInit.kt
View file @
3527c425
...
...
@@ -5,7 +5,7 @@ import com.applovin.sdk.AppLovinMediationProvider
import
com.applovin.sdk.AppLovinSdk
import
com.applovin.sdk.AppLovinSdkInitializationConfiguration
import
com.base.browserwhite.ads.AdmobMaxHelper.isAdInit
import
com.base.browserwhite.help.Event
Utils
import
com.base.browserwhite.help.Event
Helper
import
com.base.browserwhite.utils.LogEx
import
java.util.concurrent.Executors
...
...
@@ -39,7 +39,7 @@ object AdMaxInit {
isAdInit
.
set
(
true
)
maxInitAction
?.
invoke
()
maxInitAction
=
null
Event
Utils
.
event
(
"MaxInit"
,
"MaxInit"
)
Event
Helper
.
event
(
"MaxInit"
,
"MaxInit"
)
}
executor
.
shutdown
()
...
...
app/src/main/java/com/base/browserwhite/ads/max/AdMaxInterstitialUtils.kt
View file @
3527c425
...
...
@@ -12,7 +12,7 @@ import com.base.browserwhite.ads.AdmobMaxHelper.isInterOpenShowing
import
com.base.browserwhite.ads.AdmobMaxHelper.lastShowedOnHiddenTime
import
com.base.browserwhite.ads.CustomDialog
import
com.base.browserwhite.help.ConfigHelper
import
com.base.browserwhite.help.Event
Utils
import
com.base.browserwhite.help.Event
Helper
import
com.base.browserwhite.utils.LogEx
import
org.json.JSONObject
import
java.util.UUID
...
...
@@ -87,7 +87,7 @@ object AdMaxInterstitialUtils {
obj2
.
put
(
"code"
,
p1
.
code
)
obj2
.
put
(
"reason"
,
p1
.
message
)
obj2
.
put
(
"ad_unit"
,
"interAd"
)
Event
Utils
.
event
(
"ad_show_error"
,
ext
=
obj2
)
Event
Helper
.
event
(
"ad_show_error"
,
ext
=
obj2
)
isInterOpenShowing
=
false
}
...
...
@@ -106,7 +106,7 @@ object AdMaxInterstitialUtils {
if
(
isAdExpired
())
{
val
obj2
=
JSONObject
()
obj2
.
put
(
"ad_unit"
,
"interAd"
)
Event
Utils
.
event
(
"ad_expire"
,
ext
=
obj2
)
Event
Helper
.
event
(
"ad_expire"
,
ext
=
obj2
)
onHidden
?.
invoke
()
loadInterstitialAd
(
activity
)
return
...
...
@@ -122,7 +122,7 @@ object AdMaxInterstitialUtils {
val
obj1
=
JSONObject
()
obj1
.
put
(
"ad_unit"
,
"interAd"
)
Event
Utils
.
event
(
"ad_prepare_show"
,
ext
=
obj1
)
Event
Helper
.
event
(
"ad_prepare_show"
,
ext
=
obj1
)
isInterOpenShowing
=
false
if
(
interstitialAd
?.
isReady
==
true
)
{
...
...
@@ -134,7 +134,7 @@ object AdMaxInterstitialUtils {
val
obj2
=
JSONObject
()
obj2
.
put
(
"reason"
,
"no cache ad"
)
obj2
.
put
(
"ad_unit"
,
"interAd"
)
Event
Utils
.
event
(
"ad_nocache_pull"
,
ext
=
obj2
)
Event
Helper
.
event
(
"ad_nocache_pull"
,
ext
=
obj2
)
val
loaded
=
loadInterstitialAd
(
activity
)
if
(
loaded
)
{
LogEx
.
logDebug
(
TAG
,
"loaded=true"
)
...
...
@@ -185,7 +185,7 @@ object AdMaxInterstitialUtils {
val
obj
=
JSONObject
()
obj
.
put
(
"req_id"
,
reqId
)
obj
.
put
(
"ad_type"
,
"interAd"
)
Event
Utils
.
event
(
"ad_pull_start"
,
ext
=
obj
)
Event
Helper
.
event
(
"ad_pull_start"
,
ext
=
obj
)
interstitialAd
?.
loadAd
()
AdDisplayUtils
.
getInstance
().
incrementAdRequestCount
()
return
true
...
...
app/src/main/java/com/base/browserwhite/ads/max/AdMaxNativeUtils.kt
View file @
3527c425
...
...
@@ -14,7 +14,7 @@ import com.base.browserwhite.MyApplication
import
com.base.browserwhite.R
import
com.base.browserwhite.ads.AdDisplayUtils
import
com.base.browserwhite.help.ConfigHelper
import
com.base.browserwhite.help.Event
Utils
import
com.base.browserwhite.help.Event
Helper
import
com.base.browserwhite.utils.LogEx
import
org.json.JSONObject
...
...
@@ -56,7 +56,7 @@ object AdMaxNativeUtils {
val
obj2
=
JSONObject
()
obj2
.
put
(
"reason"
,
"no_ad"
)
obj2
.
put
(
"ad_unit"
,
"nativeAd"
)
Event
Utils
.
event
(
"ad_show_error"
,
ext
=
obj2
)
Event
Helper
.
event
(
"ad_show_error"
,
ext
=
obj2
)
}
override
fun
onNativeAdClicked
(
p0
:
MaxAd
)
{
...
...
app/src/main/java/com/base/browserwhite/ads/max/AdMaxOpenUtils.kt
View file @
3527c425
...
...
@@ -8,7 +8,7 @@ import com.applovin.mediation.ads.MaxAppOpenAd
import
com.base.browserwhite.ads.AdDisplayUtils
import
com.base.browserwhite.ads.AdmobMaxHelper.isInterOpenShowing
import
com.base.browserwhite.help.ConfigHelper
import
com.base.browserwhite.help.Event
Utils
import
com.base.browserwhite.help.Event
Helper
import
com.base.browserwhite.utils.LogEx
import
org.json.JSONObject
import
java.util.UUID
...
...
@@ -71,7 +71,7 @@ object AdMaxOpenUtils {
obj
.
put
(
"code"
,
p1
.
code
)
obj
.
put
(
"reason"
,
p1
.
message
)
obj
.
put
(
"ad_unit"
,
"openAd"
)
Event
Utils
.
event
(
"ad_show_error"
,
ext
=
obj
)
Event
Helper
.
event
(
"ad_show_error"
,
ext
=
obj
)
isInterOpenShowing
=
false
}
...
...
@@ -110,7 +110,7 @@ object AdMaxOpenUtils {
onHidden
?.
invoke
()
val
obj2
=
JSONObject
()
obj2
.
put
(
"ad_unit"
,
"openAd"
)
Event
Utils
.
event
(
"ad_expire"
,
ext
=
obj2
)
Event
Helper
.
event
(
"ad_expire"
,
ext
=
obj2
)
appOpenAd
?.
loadAd
()
}
...
...
@@ -124,7 +124,7 @@ object AdMaxOpenUtils {
LogEx
.
logDebug
(
TAG
,
"showAppOpenAd"
)
val
obj1
=
JSONObject
()
obj1
.
put
(
"ad_unit"
,
"openAd"
)
Event
Utils
.
event
(
"ad_prepare_show"
,
ext
=
obj1
)
Event
Helper
.
event
(
"ad_prepare_show"
,
ext
=
obj1
)
isInterOpenShowing
=
false
...
...
@@ -136,7 +136,7 @@ object AdMaxOpenUtils {
val
obj
=
JSONObject
()
obj
.
put
(
"reason"
,
"no cache ad"
)
obj
.
put
(
"ad_unit"
,
"openAd"
)
Event
Utils
.
event
(
"ad_nocache_pull"
,
ext
=
obj
)
Event
Helper
.
event
(
"ad_nocache_pull"
,
ext
=
obj
)
LogEx
.
logDebug
(
TAG
,
"展示时候,发现广告需要拉取"
)
val
loaded
=
loadAppOpenAd
(
activity
)
if
(
loaded
)
{
...
...
@@ -169,7 +169,7 @@ object AdMaxOpenUtils {
val
obj
=
JSONObject
()
obj
.
put
(
"req_id"
,
reqId
)
obj
.
put
(
"ad_type"
,
"openAd"
)
Event
Utils
.
event
(
"ad_pull_start"
,
ext
=
obj
)
Event
Helper
.
event
(
"ad_pull_start"
,
ext
=
obj
)
appOpenAd
?.
loadAd
()
AdDisplayUtils
.
getInstance
().
incrementAdRequestCount
()
return
true
...
...
app/src/main/java/com/base/browserwhite/bean/ConstObject.kt
View file @
3527c425
...
...
@@ -52,7 +52,7 @@ object ConstObject {
AppPreferences
.
getInstance
().
put
(
"ifAgreePrivacy"
,
value
,
true
)
}
var
searchEngineSp
=
"GOOGLE"
var
searchEngineSp
=
GOOGLE
get
()
{
return
AppPreferences
.
getInstance
().
getString
(
"searchEngine"
,
field
)
}
...
...
app/src/main/java/com/base/browserwhite/fcm/FCMManager.java
View file @
3527c425
...
...
@@ -5,7 +5,7 @@ import android.util.Log;
import
androidx.annotation.NonNull
;
import
com.base.browserwhite.help.Event
Utils
;
import
com.base.browserwhite.help.Event
Helper
;
import
com.google.android.gms.tasks.OnCompleteListener
;
import
com.google.android.gms.tasks.Task
;
import
com.google.firebase.FirebaseApp
;
...
...
@@ -24,7 +24,7 @@ public class FCMManager {
public
void
onComplete
(
@NonNull
Task
<
Void
>
task
)
{
if
(
task
.
isSuccessful
())
{
Log
.
d
(
"FCMUtil"
,
"suc:"
+
topic
);
Event
Utils
.
INSTANCE
.
event
(
"FCM_Topic_"
+
topic
,
null
,
null
,
false
);
Event
Helper
.
INSTANCE
.
event
(
"FCM_Topic_"
+
topic
,
null
,
null
,
false
);
}
else
{
Log
.
d
(
"FCMUtil"
,
"fail"
);
}
...
...
app/src/main/java/com/base/browserwhite/fcm/MessagingService.java
View file @
3527c425
...
...
@@ -4,8 +4,7 @@ import android.annotation.SuppressLint;
import
androidx.annotation.NonNull
;
import
com.base.browserwhite.MyApplication
;
import
com.base.browserwhite.help.EventUtils
;
import
com.base.browserwhite.help.EventHelper
;
import
com.base.browserwhite.utils.AppPreferences
;
import
com.google.firebase.messaging.FirebaseMessagingService
;
import
com.google.firebase.messaging.RemoteMessage
;
...
...
@@ -24,7 +23,7 @@ public class MessagingService extends FirebaseMessagingService {
// manageTimerBasedOnMessage(remoteMessage.getData());
// AdDisplayUtils.getInstance().saveSp();
Event
Utils
.
INSTANCE
.
event
(
"FCM_Received"
,
null
,
null
,
false
);
Event
Helper
.
INSTANCE
.
event
(
"FCM_Received"
,
null
,
null
,
false
);
sendLocalNotification
();
}
...
...
app/src/main/java/com/base/browserwhite/fcm/NotificationUtil.kt
View file @
3527c425
...
...
@@ -21,7 +21,7 @@ import com.base.browserwhite.bean.ConstObject.ID_CLEAN_JUNK_MEMORY
import
com.base.browserwhite.bean.ConstObject.ID_JUNK_CLEANER
import
com.base.browserwhite.bean.ConstObject.ID_NEWS
import
com.base.browserwhite.bean.NewsBean
import
com.base.browserwhite.help.Event
Utils
import
com.base.browserwhite.help.Event
Helper
import
com.base.browserwhite.help.NewsUtils.getNews
import
com.base.browserwhite.ui.activity.cleanjunk.ScanJunkActivity.Companion.fastGetJunkSize
import
com.base.browserwhite.ui.activity.splash.Splash2Activity
...
...
@@ -221,7 +221,7 @@ object NotificationUtil {
}
sendNotification
(
context
,
actionId
)
Event
Utils
.
event
(
"showNotification"
,
where
,
null
,
false
)
Event
Helper
.
event
(
"showNotification"
,
where
,
null
,
false
)
AppPreferences
.
getInstance
().
putInt
(
"notificationCount_${getCurrentDate()}"
,
todayShowCount
+
1
)
...
...
app/src/main/java/com/base/browserwhite/help/Black
Utils
.kt
→
app/src/main/java/com/base/browserwhite/help/Black
Helper
.kt
View file @
3527c425
...
...
@@ -16,7 +16,7 @@ import okhttp3.logging.HttpLoggingInterceptor
import
org.json.JSONObject
import
java.io.IOException
object
Black
Utils
{
object
Black
Helper
{
private
val
TAG
=
"BlackUtils"
...
...
app/src/main/java/com/base/browserwhite/help/Event
Utils
.kt
→
app/src/main/java/com/base/browserwhite/help/Event
Helper
.kt
View file @
3527c425
...
...
@@ -9,7 +9,7 @@ import com.base.browserwhite.utils.LogEx
import
org.json.JSONException
import
org.json.JSONObject
object
Event
Utils
{
object
Event
Helper
{
private
val
TAG
=
"EventUtils"
fun
event
(
key
:
String
,
...
...
app/src/main/java/com/base/browserwhite/help/InstallHelp
s
.kt
→
app/src/main/java/com/base/browserwhite/help/InstallHelp
er
.kt
View file @
3527c425
...
...
@@ -46,7 +46,7 @@ object InstallHelps {
obj
.
put
(
"referrerClickTime"
,
response
.
referrerClickTimestampSeconds
)
obj
.
put
(
"appInstallTime"
,
response
.
installBeginTimestampSeconds
)
obj
.
put
(
"instantExperienceLaunched"
,
installInfo
.
toString
())
Event
Utils
.
event
(
"install_referrer"
,
ext
=
obj
,
isSingleEvent
=
true
)
Event
Helper
.
event
(
"install_referrer"
,
ext
=
obj
,
isSingleEvent
=
true
)
AppPreferences
.
getInstance
().
put
(
"referrer"
,
response
.
installReferrer
)
if
(
listOf
(
"gclid"
,
"facebook"
,
"instagram"
).
all
{
!
installInfo
.
contains
(
it
,
true
)
})
{
//自然用户
...
...
@@ -63,12 +63,12 @@ object InstallHelps {
}
else
->
{
Event
Utils
.
event
(
"install_referrer_error"
)
Event
Helper
.
event
(
"install_referrer_error"
)
requestCfg
(
true
)
}
}
}
catch
(
_
:
Exception
)
{
Event
Utils
.
event
(
"install_referrer_error"
)
Event
Helper
.
event
(
"install_referrer_error"
)
}
}
...
...
app/src/main/java/com/base/browserwhite/help/NewComUtils.kt
View file @
3527c425
...
...
@@ -116,7 +116,7 @@ object NewComUtils {
val
jsonObject
=
JSONObject
()
jsonObject
.
put
(
"ut"
,
AppPreferences
.
getInstance
().
getString
(
"ut"
,
""
))
Event
Utils
.
event
(
"user_type"
,
ext
=
jsonObject
)
Event
Helper
.
event
(
"user_type"
,
ext
=
jsonObject
)
AdDisplayUtils
.
getInstance
().
saveSp
()
}
...
...
app/src/main/java/com/base/browserwhite/service/StayNotificationService.kt
View file @
3527c425
...
...
@@ -18,7 +18,7 @@ import androidx.core.graphics.drawable.IconCompat
import
com.base.browserwhite.R
import
com.base.browserwhite.bean.ConstObject
import
com.base.browserwhite.ui.activity.MainActivity
import
com.base.browserwhite.help.Event
Utils
import
com.base.browserwhite.help.Event
Helper
import
com.base.browserwhite.ui.activity.splash.Splash2Activity
import
kotlin.random.Random
...
...
@@ -59,7 +59,7 @@ class StayNotificationService : Service() {
override
fun
onStartCommand
(
intent
:
Intent
?,
flags
:
Int
,
startId
:
Int
):
Int
{
if
(
intent
==
null
)
{
Event
Utils
.
event
(
"onStartCommand"
,
"Foreground System auto launch intent=null isRunning=$isRunning"
)
Event
Helper
.
event
(
"onStartCommand"
,
"Foreground System auto launch intent=null isRunning=$isRunning"
)
return
START_NOT_STICKY
}
if
(!
isRunning
)
{
...
...
app/src/main/java/com/base/browserwhite/ui/activity/MainActivity.kt
View file @
3527c425
...
...
@@ -21,7 +21,8 @@ import com.base.browserwhite.ui.fragment.HomeFragment
import
com.base.browserwhite.ui.views.DialogViews.showDefaultBrowserDialog
import
com.base.browserwhite.ui.views.DialogViews.showMyAccountDialog
import
com.base.browserwhite.utils.BarUtils
import
com.base.browserwhite.utils.ShortcutHelper
import
com.base.browserwhite.utils.ShortcutUtils
import
com.base.browserwhite.utils.ShortcutUtils.aaaaa
import
java.io.File
...
...
@@ -78,12 +79,12 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
mainShowCount
++
if
(
mainShowCount
==
2
)
{
// 在Activity中调用创建快捷方式的方法
Shortcut
Helper
.
requestCreateShortcut
(
Shortcut
Utils
.
requestCreateShortcut
(
this
,
"my_shortcut_id"
,
"My Shortcut"
,
"Open My App quickly"
,
Splash2Activity
::
class
.
java
,
R
.
mipmap
.
logo
)
}
aaaaa
()
}
...
...
app/src/main/java/com/base/browserwhite/ui/activity/download/DownloadAdapter.kt
View file @
3527c425
...
...
@@ -12,7 +12,7 @@ import com.base.browserwhite.databinding.ItemDownloadBinding
import
com.base.browserwhite.databinding.ItemDownloadCardBinding
import
com.base.browserwhite.databinding.ItemDownloadTimeBinding
import
com.base.browserwhite.ui.activity.download.DownloadDialog.showDownloadConfirmDialog
import
com.base.browserwhite.utils.Download
Helper
.getDownloadPath
import
com.base.browserwhite.utils.Download
Utils
.getDownloadPath
import
com.base.browserwhite.utils.KotlinExt.toFormatSize
import
com.base.browserwhite.utils.KotlinExt.toFormatTime
import
com.base.browserwhite.utils.LogEx
...
...
app/src/main/java/com/base/browserwhite/ui/activity/download/WebDownloadManagerActivity.kt
View file @
3527c425
...
...
@@ -15,13 +15,13 @@ import com.base.browserwhite.ui.views.DialogViews.showDeleteTipDialog
import
com.base.browserwhite.ui.views.DialogViews.showGerPermission
import
com.base.browserwhite.ui.views.DialogViews.showMediaMoreDialog
import
com.base.browserwhite.utils.BarUtils
import
com.base.browserwhite.utils.Download
Helper
.getDownloadJson
import
com.base.browserwhite.utils.Download
Helper
.getDownloadJsonBean
import
com.base.browserwhite.utils.Download
Helper
.saveDownloadRecordFile
import
com.base.browserwhite.utils.Download
Utils
.getDownloadJson
import
com.base.browserwhite.utils.Download
Utils
.getDownloadJsonBean
import
com.base.browserwhite.utils.Download
Utils
.saveDownloadRecordFile
import
com.base.browserwhite.utils.IntentEx.shareAction
import
com.base.browserwhite.utils.KotlinExt.toFormatTime
import
com.base.browserwhite.utils.Permission
Help
.checkStorePermission
import
com.base.browserwhite.utils.Permission
Help
.requestStorePermission
import
com.base.browserwhite.utils.Permission
Utils
.checkStorePermission
import
com.base.browserwhite.utils.Permission
Utils
.requestStorePermission
import
com.google.gson.Gson
import
com.liulishuo.filedownloader.FileDownloader
import
java.io.File
...
...
app/src/main/java/com/base/browserwhite/ui/activity/mediabrowser/MediaBrowserActivity.kt
View file @
3527c425
package
com.base.browserwhite.ui.activity.mediabrowser
import
android.content.Intent
import
android.graphics.Bitmap
import
android.graphics.BitmapFactory
import
android.graphics.Color
import
android.net.Uri
import
android.os.Build
import
android.provider.MediaStore
import
android.provider.Settings
import
androidx.activity.addCallback
import
androidx.core.view.isVisible
...
...
@@ -18,7 +14,6 @@ import androidx.recyclerview.widget.LinearLayoutManager
import
com.base.browserwhite.bean.ConstObject
import
com.base.browserwhite.databinding.ActivityMediaBrowserBinding
import
com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.ui.activity.scanqrc.QRImageAnalyzer
import
com.base.browserwhite.ui.adapter.MediaAdapter
import
com.base.browserwhite.ui.fragment.FileFragment
import
com.base.browserwhite.ui.views.DialogViews.showGerPermission
...
...
@@ -31,10 +26,9 @@ import com.base.browserwhite.utils.MediaStoreUtils.getMediaAudio
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaFile
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaPhoto
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaVideo
import
com.base.browserwhite.utils.Permission
Help
.checkStorePermission
import
com.base.browserwhite.utils.Permission
Help
.requestStorePermission
import
com.base.browserwhite.utils.Permission
Utils
.checkStorePermission
import
com.base.browserwhite.utils.Permission
Utils
.requestStorePermission
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.delay
import
kotlinx.coroutines.launch
...
...
app/src/main/java/com/base/browserwhite/ui/activity/news/NewsActivity.kt
View file @
3527c425
...
...
@@ -4,6 +4,8 @@ import android.content.Intent
import
android.graphics.Color
import
androidx.activity.addCallback
import
androidx.core.view.updatePadding
import
com.base.browserwhite.ads.AdmobMaxHelper
import
com.base.browserwhite.ads.AdmobMaxHelper.lastShowInter
import
com.base.browserwhite.bean.NewsCategory
import
com.base.browserwhite.databinding.ActivityNewsBinding
import
com.base.browserwhite.databinding.ItemTabNewsBinding
...
...
@@ -85,7 +87,16 @@ class NewsActivity : BaseActivity<ActivityNewsBinding>() {
override
fun
initListener
()
{
super
.
initListener
()
onBackPressedDispatcher
.
addCallback
{
finishToMain
()
if
(
System
.
currentTimeMillis
()
-
lastShowInter
>
10
*
1000
*
1000
||
lastShowInter
==
0L
)
{
AdmobMaxHelper
.
admobMaxShowInterstitialAd
(
this
@NewsActivity
,
false
)
{
if
(
it
)
{
lastShowInter
=
System
.
currentTimeMillis
()
}
finishToMain
()
}
}
else
{
finishToMain
()
}
}
binding
.
ivGuanbi
.
setOnClickListener
{
onBackPressedDispatcher
.
onBackPressed
()
...
...
app/src/main/java/com/base/browserwhite/ui/activity/scanqrc/ScanQRCActivity.kt
View file @
3527c425
...
...
@@ -5,15 +5,11 @@ import android.content.Intent
import
android.content.pm.PackageManager
import
android.graphics.BitmapFactory
import
android.graphics.Color
import
android.hardware.camera2.CameraAccessException
import
android.hardware.camera2.CameraCharacteristics
import
android.hardware.camera2.CameraManager
import
android.net.Uri
import
androidx.activity.addCallback
import
androidx.camera.core.AspectRatio
import
androidx.camera.core.Camera
import
androidx.camera.core.CameraSelector
import
androidx.camera.core.CameraX
import
androidx.camera.core.ImageAnalysis
import
androidx.camera.core.Preview
import
androidx.camera.lifecycle.ProcessCameraProvider
...
...
@@ -25,7 +21,7 @@ import com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.ui.views.DialogViews.showGerPermission
import
com.base.browserwhite.utils.BarUtils
import
com.base.browserwhite.utils.LogEx
import
com.base.browserwhite.utils.Permission
Help
.checkCameraPermission
import
com.base.browserwhite.utils.Permission
Utils
.checkCameraPermission
import
java.util.concurrent.ExecutorService
import
java.util.concurrent.Executors
import
kotlin.math.abs
...
...
app/src/main/java/com/base/browserwhite/ui/activity/splash/Splash2Activity.kt
View file @
3527c425
...
...
@@ -13,7 +13,6 @@ import android.os.Handler
import
android.view.KeyEvent
import
android.view.View
import
androidx.activity.result.contract.ActivityResultContracts
import
androidx.core.view.ViewCompat
import
androidx.core.view.isVisible
import
androidx.lifecycle.lifecycleScope
import
com.base.browserwhite.R
...
...
@@ -21,11 +20,11 @@ import com.base.browserwhite.ads.AdmobMaxHelper
import
com.base.browserwhite.bean.ConstObject.ifAgreePrivacy
import
com.base.browserwhite.databinding.ActivitySplash2Binding
import
com.base.browserwhite.fcm.NotificationUtil
import
com.base.browserwhite.help.Event
Utils
import
com.base.browserwhite.help.Event
Helper
import
com.base.browserwhite.help.WeatherUtils
import
com.base.browserwhite.service.StayNotificationService.Companion.startStayNotification
import
com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.utils.Animation
Helper
import
com.base.browserwhite.utils.Animation
Utils
import
com.base.browserwhite.utils.BarUtils
import
com.base.browserwhite.utils.LogEx
import
kotlinx.coroutines.Dispatchers
...
...
@@ -48,7 +47,7 @@ class Splash2Activity : BaseActivity<ActivitySplash2Binding>(),
override
fun
onKeyDown
(
keyCode
:
Int
,
event
:
KeyEvent
?):
Boolean
{
if
(
keyCode
==
KeyEvent
.
KEYCODE_BACK
)
{
Event
Utils
.
event
(
"back"
)
Event
Helper
.
event
(
"back"
)
}
return
super
.
onKeyDown
(
keyCode
,
event
)
}
...
...
@@ -87,7 +86,7 @@ class Splash2Activity : BaseActivity<ActivitySplash2Binding>(),
}
fun
startPbAnimation
(
callback
:
()
->
Unit
)
{
Animation
Helper
.
startAlphaAnimation
(
binding
.
pb
,
800
,
null
)
{
Animation
Utils
.
startAlphaAnimation
(
binding
.
pb
,
800
,
null
)
{
callback
.
invoke
()
}
}
...
...
@@ -121,15 +120,15 @@ class Splash2Activity : BaseActivity<ActivitySplash2Binding>(),
else
->
R
.
mipmap
.
d_qing
}
binding
.
ivWeather
.
setImageResource
(
icon
)
Animation
Helper
.
startAlphaAnimation
(
binding
.
ivWeather
,
800
,
null
)
{
Animation
Helper
.
startAlphaAnimation
(
binding
.
tvDate
,
800
,
null
)
{
Animation
Helper
.
startAlphaAnimation
(
binding
.
tvTemperature
,
800
,
null
)
{
Animation
Utils
.
startAlphaAnimation
(
binding
.
ivWeather
,
800
,
null
)
{
Animation
Utils
.
startAlphaAnimation
(
binding
.
tvDate
,
800
,
null
)
{
Animation
Utils
.
startAlphaAnimation
(
binding
.
tvTemperature
,
800
,
null
)
{
if
(
isAgree
)
{
Animation
Helper
.
startAlphaAnimation
(
binding
.
pb
,
800
,
null
)
{
Animation
Utils
.
startAlphaAnimation
(
binding
.
pb
,
800
,
null
)
{
callback
.
invoke
()
}
}
else
{
Animation
Helper
.
startAlphaAnimation
(
binding
.
idTvStart
,
1200
,
{
Animation
Utils
.
startAlphaAnimation
(
binding
.
idTvStart
,
1200
,
{
val
set1
=
AnimatorSet
()
// 创建缩放动画的ObjectAnimator
val
scaleUpAnimator1
=
ObjectAnimator
.
ofFloat
(
binding
.
idTvStart
,
"scaleX"
,
1f
,
0.95f
,
1.05f
)
...
...
@@ -151,11 +150,11 @@ class Splash2Activity : BaseActivity<ActivitySplash2Binding>(),
}
}
else
{
if
(
isAgree
)
{
Animation
Helper
.
startAlphaAnimation
(
binding
.
pb
,
800
,
null
)
{
Animation
Utils
.
startAlphaAnimation
(
binding
.
pb
,
800
,
null
)
{
callback
.
invoke
()
}
}
else
{
Animation
Helper
.
startAlphaAnimation
(
binding
.
idTvStart
,
1200
,
{
Animation
Utils
.
startAlphaAnimation
(
binding
.
idTvStart
,
1200
,
{
val
set1
=
AnimatorSet
()
// 创建缩放动画的ObjectAnimator
val
scaleUpAnimator1
=
ObjectAnimator
.
ofFloat
(
binding
.
idTvStart
,
"scaleX"
,
1f
,
0.95f
,
1.05f
)
...
...
@@ -186,7 +185,7 @@ class Splash2Activity : BaseActivity<ActivitySplash2Binding>(),
}
override
fun
onAgreePrivacy
(
isStart
:
Boolean
)
{
Event
Utils
.
event
(
"app_start"
)
Event
Helper
.
event
(
"app_start"
)
if
(
jumpType
==
0
)
{
startStayNotification
()
}
...
...
@@ -241,13 +240,13 @@ class Splash2Activity : BaseActivity<ActivitySplash2Binding>(),
override
fun
onPause
()
{
super
.
onPause
()
isPause
=
true
Event
Utils
.
event
(
"onPause"
)
Event
Helper
.
event
(
"onPause"
)
}
override
fun
onResume
()
{
super
.
onResume
()
isPause
=
false
Event
Utils
.
event
(
"onResume"
)
Event
Helper
.
event
(
"onResume"
)
}
override
fun
onStop
()
{
...
...
app/src/main/java/com/base/browserwhite/ui/activity/splash/StartUtils.kt
View file @
3527c425
...
...
@@ -3,7 +3,15 @@ package com.base.browserwhite.ui.activity.splash
import
android.app.Activity
import
android.content.Intent
import
android.util.Log
import
com.base.browserwhite.bean.ConstObject.ID_APP_PROCESS
import
com.base.browserwhite.bean.ConstObject.ID_JUNK_CLEANER
import
com.base.browserwhite.bean.ConstObject.ID_NEWS
import
com.base.browserwhite.bean.ConstObject.ID_SCAN_CODE
import
com.base.browserwhite.ui.activity.MainActivity
import
com.base.browserwhite.ui.activity.appprocess.AppProcessActivity
import
com.base.browserwhite.ui.activity.cleanjunk.ScanJunkActivity
import
com.base.browserwhite.ui.activity.news.NewsActivity
import
com.base.browserwhite.ui.activity.scanqrc.ScanQRCActivity
object
StartUtils
{
...
...
@@ -22,9 +30,21 @@ object StartUtils {
}
}
when
(
jumpType
)
{
//=================================主动广播=======================================
ID_JUNK_CLEANER
->
{
context
.
startActivity
(
Intent
(
context
,
ScanJunkActivity
::
class
.
java
))
}
ID_NEWS
->
{
context
.
startActivity
(
Intent
(
context
,
NewsActivity
::
class
.
java
))
}
//================================被动广播=========================================
ID_SCAN_CODE
->
{
context
.
startActivity
(
Intent
(
context
,
ScanQRCActivity
::
class
.
java
))
}
ID_APP_PROCESS
->
{
context
.
startActivity
(
Intent
(
context
,
AppProcessActivity
::
class
.
java
))
}
else
->
{
val
isHotLaunch
=
context
.
intent
?.
extras
?.
getBoolean
(
"isHotLaunch"
,
false
)
?:
false
...
...
app/src/main/java/com/base/browserwhite/ui/activity/webbrowser/WebBrowserActivity.kt
View file @
3527c425
...
...
@@ -14,6 +14,7 @@ import com.base.browserwhite.ads.AdmobMaxHelper
import
com.base.browserwhite.ads.AdmobMaxHelper.lastShowInter
import
com.base.browserwhite.bean.ConstObject
import
com.base.browserwhite.bean.ConstObject.GOOGLE
import
com.base.browserwhite.bean.ConstObject.searchEngineSp
import
com.base.browserwhite.databinding.ActivityWebBrowserBinding
import
com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.ui.views.DialogViews.showSearchEngineDialog
...
...
@@ -23,6 +24,7 @@ import com.base.browserwhite.utils.LinkSearchUtils.getBingSearch
import
com.base.browserwhite.utils.LinkSearchUtils.getDuckDuckGoSearch
import
com.base.browserwhite.utils.LinkSearchUtils.getGoogleSearch
import
com.base.browserwhite.utils.LinkSearchUtils.getSearchUrl
import
com.base.browserwhite.utils.LinkSearchUtils.getSpSearchAction
import
com.base.browserwhite.utils.LinkSearchUtils.getYahooSearch
import
com.base.browserwhite.utils.LinkSearchUtils.getYandexSearch
import
com.base.browserwhite.utils.LinkSearchUtils.handleInput
...
...
@@ -35,7 +37,7 @@ class WebBrowserActivity : BaseActivity<ActivityWebBrowserBinding>() {
}
private
val
fragmentList
=
arrayListOf
<
Fragment
>()
private
var
currentFragment
:
WebViewFragment
?
=
null
private
var
searchAction
:
(
context
:
String
)
->
String
=
::
get
BaiduSearch
private
var
searchAction
:
(
context
:
String
)
->
String
=
::
get
SpSearchAction
var
from
:
String
=
""
...
...
@@ -165,35 +167,31 @@ class WebBrowserActivity : BaseActivity<ActivityWebBrowserBinding>() {
}
binding
.
flSearchEngine
.
setOnClickListener
{
showSearchEngineDialog
{
website
->
searchEngineSp
=
website
searchAction
=
::
getSpSearchAction
when
(
website
)
{
ConstObject
.
GOOGLE
->
{
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
h_s_google
)
searchAction
=
::
getGoogleSearch
}
ConstObject
.
BING
->
{
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
h_s_bing
)
searchAction
=
::
getBingSearch
}
ConstObject
.
YAHOO
->
{
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
h_s_yahoo
)
searchAction
=
::
getYahooSearch
}
ConstObject
.
DUCKDUCKGO
->
{
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
h_s_xuckd
)
searchAction
=
::
getDuckDuckGoSearch
}
ConstObject
.
YANDEX
->
{
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
h_s_yandex
)
searchAction
=
::
getYandexSearch
}
ConstObject
.
BAIDU
->
{
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
h_s_baidu
)
searchAction
=
::
getBaiduSearch
}
}
...
...
app/src/main/java/com/base/browserwhite/ui/activity/webbrowser/WebViewFragment.kt
View file @
3527c425
...
...
@@ -21,9 +21,9 @@ import com.base.browserwhite.databinding.FragmentWebViewBinding
import
com.base.browserwhite.ui.activity.download.DownloadAdapter
import
com.base.browserwhite.ui.fragment.BaseFragment
import
com.base.browserwhite.ui.activity.download.DownloadDialog.showDownloadVideoDialog
import
com.base.browserwhite.utils.Download
Helper
.getDownloadJson
import
com.base.browserwhite.utils.Download
Helper
.getDownloadJsonBean
import
com.base.browserwhite.utils.Download
Helper
.saveDownloadRecordFile
import
com.base.browserwhite.utils.Download
Utils
.getDownloadJson
import
com.base.browserwhite.utils.Download
Utils
.getDownloadJsonBean
import
com.base.browserwhite.utils.Download
Utils
.saveDownloadRecordFile
import
com.base.browserwhite.utils.LogEx
import
com.google.gson.Gson
import
com.liulishuo.filedownloader.FileDownloader
...
...
app/src/main/java/com/base/browserwhite/ui/fragment/FileFragment.kt
View file @
3527c425
...
...
@@ -26,8 +26,8 @@ import com.base.browserwhite.utils.MediaStoreUtils.getMediaFile
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaPhotoCountSize
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaVideoCountSize
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaZipCountSize
import
com.base.browserwhite.utils.Permission
Help
.checkStorePermission
import
com.base.browserwhite.utils.Permission
Help
.requestStorePermission
import
com.base.browserwhite.utils.Permission
Utils
.checkStorePermission
import
com.base.browserwhite.utils.Permission
Utils
.requestStorePermission
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.launch
import
java.io.File
...
...
app/src/main/java/com/base/browserwhite/ui/fragment/HomeFragment.kt
View file @
3527c425
...
...
@@ -26,7 +26,6 @@ import com.base.browserwhite.bean.webSiteGroupBeanList
import
com.base.browserwhite.databinding.FragmentHomeBinding
import
com.base.browserwhite.fcm.NotificationUtil
import
com.base.browserwhite.help.NewsUtils.requestNews
import
com.base.browserwhite.service.StayNotificationService.Companion.restartStartStayNotification
import
com.base.browserwhite.ui.activity.appprocess.AppProcessActivity
import
com.base.browserwhite.ui.activity.cleanjunk.ScanJunkActivity
import
com.base.browserwhite.ui.activity.news.NewsActivity
...
...
@@ -45,6 +44,7 @@ import com.base.browserwhite.utils.LinkSearchUtils.getBaiduSearch
import
com.base.browserwhite.utils.LinkSearchUtils.getBingSearch
import
com.base.browserwhite.utils.LinkSearchUtils.getDuckDuckGoSearch
import
com.base.browserwhite.utils.LinkSearchUtils.getGoogleSearch
import
com.base.browserwhite.utils.LinkSearchUtils.getSpSearchAction
import
com.base.browserwhite.utils.LinkSearchUtils.getYahooSearch
import
com.base.browserwhite.utils.LinkSearchUtils.getYandexSearch
import
com.base.browserwhite.utils.LogEx
...
...
@@ -65,7 +65,7 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
private
lateinit
var
helper
:
QuickAdapterHelper
private
var
isLoading
=
false
private
var
headWebsiteAdapter
:
HeadWebsiteAdapter
?
=
null
private
var
searchAction
:
(
context
:
String
)
->
String
=
::
getBaiduSearch
private
var
searchAction
=
::
getSpSearchAction
private
var
searchEngine
:
String
=
GOOGLE
override
fun
setView
()
{
...
...
@@ -203,6 +203,8 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
requireContext
().
showSearchEngineDialog
{
website
->
searchEngine
=
website
searchEngineSp
=
website
when
(
website
)
{
GOOGLE
->
{
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
h_s_google
)
...
...
app/src/main/java/com/base/browserwhite/ui/views/DialogViews.kt
View file @
3527c425
...
...
@@ -22,6 +22,7 @@ import com.base.browserwhite.bean.ConstObject.DUCKDUCKGO
import
com.base.browserwhite.bean.ConstObject.GOOGLE
import
com.base.browserwhite.bean.ConstObject.YAHOO
import
com.base.browserwhite.bean.ConstObject.YANDEX
import
com.base.browserwhite.bean.ConstObject.searchEngineSp
import
com.base.browserwhite.databinding.DialogDefaultBrowserBinding
import
com.base.browserwhite.databinding.DialogDeleteTipBinding
import
com.base.browserwhite.databinding.DialogMediaMoreBinding
...
...
@@ -29,6 +30,7 @@ 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.RoleManagerUtils.requestRoleBrowser
import
com.google.android.material.bottomsheet.BottomSheetBehavior
import
com.google.android.material.bottomsheet.BottomSheetDialog
...
...
@@ -74,7 +76,7 @@ object DialogViews {
return
dialog
}
fun
Context
.
showSearchEngineDialog
(
selectWebSite
:
String
=
GOOGLE
,
confirmAction
:
(
webSite
:
String
)
->
Unit
)
{
fun
Context
.
showSearchEngineDialog
(
confirmAction
:
(
webSite
:
String
)
->
Unit
)
{
val
binding
=
DialogSearchEngineBinding
.
inflate
(
LayoutInflater
.
from
(
this
))
val
dialog
=
AlertDialog
.
Builder
(
this
).
create
()
...
...
@@ -92,7 +94,7 @@ object DialogViews {
dialog
.
dismiss
()
}
when
(
se
lectWebSite
)
{
when
(
se
archEngineSp
)
{
GOOGLE
->
binding
.
llGoogle
.
isSelected
=
true
BING
->
binding
.
llBing
.
isSelected
=
true
YAHOO
->
binding
.
llYahoo
.
isSelected
=
true
...
...
@@ -163,6 +165,31 @@ object DialogViews {
//展开
behavior
.
state
=
BottomSheetBehavior
.
STATE_EXPANDED
binding
.
tvSearchEngines
.
text
=
searchEngineSp
when
(
searchEngineSp
)
{
GOOGLE
->
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
m_google
)
BING
->
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
m_bing
)
YAHOO
->
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
m_yahoo
)
DUCKDUCKGO
->
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
m_xuckd
)
YANDEX
->
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
m_yandex
)
BAIDU
->
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
m_baidu
)
}
binding
.
flSearchEngine
.
setOnClickListener
{
showSearchEngineDialog
{
searchEngineSp
=
it
when
(
searchEngineSp
)
{
GOOGLE
->
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
m_google
)
BING
->
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
m_bing
)
YAHOO
->
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
m_yahoo
)
DUCKDUCKGO
->
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
m_xuckd
)
YANDEX
->
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
m_yandex
)
BAIDU
->
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
m_baidu
)
}
}
}
binding
.
tvCancel
.
setOnClickListener
{
dialog
.
dismiss
()
}
...
...
@@ -247,24 +274,7 @@ object DialogViews {
binding
.
tvBtn
.
setOnClickListener
{
dialog
.
dismiss
()
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
)
}
else
if
(
roleManager
.
isRoleHeld
(
"android.app.role.BROWSER"
))
{
val
intent
=
Intent
(
Settings
.
ACTION_MANAGE_DEFAULT_APPS_SETTINGS
)
startActivity
(
intent
)
}
else
{
val
intent
=
roleManager
.
createRequestRoleIntent
(
"android.app.role.BROWSER"
)
launcher
.
launch
(
intent
)
}
}
else
{
val
intent
=
Intent
(
Settings
.
ACTION_MANAGE_DEFAULT_APPS_SETTINGS
)
startActivity
(
intent
)
}
requestRoleBrowser
(
launcher
)
}
}
...
...
app/src/main/java/com/base/browserwhite/utils/Animation
Helper
.java
→
app/src/main/java/com/base/browserwhite/utils/Animation
Utils
.java
View file @
3527c425
...
...
@@ -5,7 +5,7 @@ import android.animation.AnimatorListenerAdapter;
import
android.animation.ObjectAnimator
;
import
android.view.View
;
public
class
Animation
Helper
{
public
class
Animation
Utils
{
/**
* 开始透明度渐变动画,并设置动画结束时的回调。
...
...
app/src/main/java/com/base/browserwhite/utils/Download
Helper
.kt
→
app/src/main/java/com/base/browserwhite/utils/Download
Utils
.kt
View file @
3527c425
...
...
@@ -2,7 +2,6 @@ package com.base.browserwhite.utils
import
android.content.Context
import
android.os.Environment
import
androidx.lifecycle.lifecycleScope
import
com.base.browserwhite.R
import
com.base.browserwhite.bean.DownloadBean
import
com.base.browserwhite.bean.downloadBeanGson
...
...
@@ -13,7 +12,7 @@ import com.liulishuo.filedownloader.model.FileDownloadStatus
import
java.io.File
import
java.lang.reflect.Type
object
Download
Helper
{
object
Download
Utils
{
private
val
TAG
=
"DownloadHelper"
fun
Context
.
getDownloadJson
():
File
{
...
...
app/src/main/java/com/base/browserwhite/utils/LinkSearchUtils.kt
View file @
3527c425
package
com.base.browserwhite.utils
import
com.base.browserwhite.R
import
com.base.browserwhite.bean.ConstObject
import
com.base.browserwhite.bean.ConstObject.searchEngineSp
import
java.net.MalformedURLException
import
java.net.URL
import
java.net.URLEncoder
...
...
@@ -129,5 +131,20 @@ object LinkSearchUtils {
return
"https://www.baidu.com/s?wd=$encodedQuery"
}
fun
getSpSearchAction
(
content
:
String
):
String
{
val
action
:
(
content
:
String
)
->
String
=
when
(
searchEngineSp
)
{
ConstObject
.
GOOGLE
->
::
getGoogleSearch
ConstObject
.
BING
->
::
getBingSearch
ConstObject
.
YAHOO
->
::
getYahooSearch
ConstObject
.
DUCKDUCKGO
->
::
getDuckDuckGoSearch
ConstObject
.
YANDEX
->
::
getYandexSearch
ConstObject
.
BAIDU
->
::
getBaiduSearch
else
->
::
getGoogleSearch
}
return
action
.
invoke
(
content
)
}
}
app/src/main/java/com/base/browserwhite/utils/Permission
Help
.kt
→
app/src/main/java/com/base/browserwhite/utils/Permission
Utils
.kt
View file @
3527c425
...
...
@@ -10,7 +10,7 @@ import android.os.Environment
import
android.provider.Settings
import
androidx.core.app.ActivityCompat
object
Permission
Help
{
object
Permission
Utils
{
fun
Context
.
checkCameraPermission
():
Boolean
{
return
PackageManager
.
PERMISSION_GRANTED
==
ActivityCompat
.
checkSelfPermission
(
this
,
Manifest
.
permission
.
CAMERA
)
...
...
app/src/main/java/com/base/browserwhite/utils/RoleManagerUtils.kt
0 → 100644
View file @
3527c425
package
com.base.browserwhite.utils
import
android.app.role.RoleManager
import
android.content.Context
import
android.content.Intent
import
android.os.Build
import
android.provider.Settings
object
RoleManagerUtils
{
fun
Context
.
requestRoleBrowser
(
launcher
:
ActivityLauncher
)
{
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
)
}
else
if
(
roleManager
.
isRoleHeld
(
"android.app.role.BROWSER"
))
{
val
intent
=
Intent
(
Settings
.
ACTION_MANAGE_DEFAULT_APPS_SETTINGS
)
startActivity
(
intent
)
}
else
{
val
intent
=
roleManager
.
createRequestRoleIntent
(
"android.app.role.BROWSER"
)
launcher
.
launch
(
intent
)
}
}
else
{
val
intent
=
Intent
(
Settings
.
ACTION_MANAGE_DEFAULT_APPS_SETTINGS
)
startActivity
(
intent
)
}
}
}
\ No newline at end of file
app/src/main/java/com/base/browserwhite/utils/ShortcutHelper.java
deleted
100644 → 0
View file @
ac75cd3a
package
com
.
base
.
browserwhite
.
utils
;
import
android.app.PendingIntent
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.pm.ShortcutInfo
;
import
android.content.pm.ShortcutManager
;
import
android.graphics.drawable.Icon
;
import
android.os.Build
;
public
class
ShortcutHelper
{
/**
* 请求创建桌面快捷方式。
*
* @param context 应用上下文。
* @param shortcutId 快捷方式的唯一标识符。
* @param shortLabel 快捷方式的简短标签。
* @param longLabel 快捷方式的长标签。
* @param activityClass 快捷方式要启动的Activity。
* @param iconResId 快捷方式的图标资源ID。
*/
public
static
void
requestCreateShortcut
(
Context
context
,
String
shortcutId
,
String
shortLabel
,
String
longLabel
,
Class
<?>
activityClass
,
int
iconResId
)
{
// 创建启动Activity的Intent
if
(
Build
.
VERSION
.
SDK_INT
<
Build
.
VERSION_CODES
.
N_MR1
){
return
;}
Intent
intent
=
new
Intent
(
context
,
activityClass
);
intent
.
setAction
(
Intent
.
ACTION_VIEW
);
// 创建ShortcutInfo实例
ShortcutInfo
shortcut
=
new
ShortcutInfo
.
Builder
(
context
,
shortcutId
)
.
setShortLabel
(
shortLabel
)
.
setLongLabel
(
longLabel
)
.
setIcon
(
Icon
.
createWithResource
(
context
,
iconResId
))
.
setIntent
(
intent
)
.
build
();
// 获取ShortcutManager实例
ShortcutManager
shortcutManager
=
(
ShortcutManager
)
context
.
getSystemService
(
Context
.
SHORTCUT_SERVICE
);
// 检查API级别和是否支持请求创建快捷方式
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
O
)
{
if
(
shortcutManager
!=
null
&&
shortcutManager
.
isRequestPinShortcutSupported
())
{
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
O
)
{
// Android 8.0及以上,直接请求创建快捷方式
shortcutManager
.
requestPinShortcut
(
shortcut
,
null
);
}
else
{
// Android 7.1 (API级别25) 使用广播接收用户响应
Intent
pinnedShortcutCallbackIntent
=
shortcutManager
.
createShortcutResultIntent
(
shortcut
);
PendingIntent
successCallback
=
PendingIntent
.
getBroadcast
(
context
,
0
,
new
Intent
(
"com.example.SUCCESS"
),
PendingIntent
.
FLAG_UPDATE_CURRENT
);
PendingIntent
failureCallback
=
PendingIntent
.
getBroadcast
(
context
,
0
,
new
Intent
(
"com.example.FAILURE"
),
PendingIntent
.
FLAG_UPDATE_CURRENT
);
shortcutManager
.
requestPinShortcut
(
shortcut
,
successCallback
.
getIntentSender
());
}
}
}
}
}
\ No newline at end of file
app/src/main/java/com/base/browserwhite/utils/ShortcutUtils.kt
View file @
3527c425
package
com.base.browserwhite.utils
import
android.app.PendingIntent
import
android.content.Context
import
android.content.Intent
import
android.content.pm.ShortcutInfo
import
android.content.pm.ShortcutManager
import
android.graphics.drawable.Icon
import
android.os.Build
import
androidx.core.content.ContextCompat
import
com.base.browserwhite.R
import
com.base.browserwhite.bean.ConstObject
import
com.base.browserwhite.ui.activity.MainActivity
import
com.base.browserwhite.ui.activity.splash.Splash2Activity
object
ShortcutUtils
{
/**
* 请求创建桌面快捷方式。
*
* @param context 应用上下文。
* @param shortcutId 快捷方式的唯一标识符。
* @param shortLabel 快捷方式的简短标签。
* @param longLabel 快捷方式的长标签。
* @param activityClass 快捷方式要启动的Activity。
* @param iconResId 快捷方式的图标资源ID。
*/
fun
requestCreateShortcut
(
context
:
Context
,
shortcutId
:
String
?,
shortLabel
:
String
?,
longLabel
:
String
?,
activityClass
:
Class
<
*
>?,
iconResId
:
Int
)
{
// 创建启动Activity的Intent
if
(
Build
.
VERSION
.
SDK_INT
<
Build
.
VERSION_CODES
.
N_MR1
)
{
return
}
val
intent
=
Intent
(
context
,
activityClass
)
intent
.
setAction
(
Intent
.
ACTION_VIEW
)
// 创建ShortcutInfo实例
val
shortcut
=
ShortcutInfo
.
Builder
(
context
,
shortcutId
)
.
setShortLabel
(
shortLabel
!!
)
.
setLongLabel
(
longLabel
!!
)
.
setIcon
(
Icon
.
createWithResource
(
context
,
iconResId
))
.
setIntent
(
intent
)
.
build
()
fun
Context
.
createShortcut
()
{
// 获取ShortcutManager实例
val
shortcutManager
=
context
.
getSystemService
(
Context
.
SHORTCUT_SERVICE
)
as
ShortcutManager
// 检查API级别和是否支持请求创建快捷方式
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
O
)
{
val
shortcutManager
=
getSystemService
(
Context
.
SHORTCUT_SERVICE
)
as
ShortcutManager
shortcutManager
.
isRequestPinShortcutSupported
val
shortcutInfo
=
ShortcutInfo
.
Builder
(
this
,
"shortcut_id"
)
.
setShortLabel
(
"快捷方式标题"
)
.
setLongLabel
(
"快捷方式的详细描述"
)
.
setIcon
(
Icon
.
createWithResource
(
this
,
R
.
mipmap
.
logo
))
.
setIntent
(
Intent
(
this
,
Splash2Activity
::
class
.
java
).
apply
{
// 设置Intent的额外信息,例如:
// putExtra("EXTRA_KEY", "extra_value")
// 设置标志,避免在启动Activity时重新启动
addFlags
(
Intent
.
FLAG_ACTIVITY_NEW_TASK
)
if
(
shortcutManager
!=
null
&&
shortcutManager
.
isRequestPinShortcutSupported
)
{
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
O
)
{
// Android 8.0及以上,直接请求创建快捷方式
shortcutManager
.
requestPinShortcut
(
shortcut
,
null
)
}
else
{
// Android 7.1 (API级别25) 使用广播接收用户响应
val
pinnedShortcutCallbackIntent
=
shortcutManager
.
createShortcutResultIntent
(
shortcut
)
val
successCallback
=
PendingIntent
.
getBroadcast
(
context
,
0
,
Intent
(
"com.example.SUCCESS"
),
PendingIntent
.
FLAG_UPDATE_CURRENT
)
val
failureCallback
=
PendingIntent
.
getBroadcast
(
context
,
0
,
Intent
(
"com.example.FAILURE"
),
PendingIntent
.
FLAG_UPDATE_CURRENT
)
shortcutManager
.
requestPinShortcut
(
shortcut
,
successCallback
.
intentSender
)
}
}
}
}
fun
Context
.
aaaaa
()
{
//获取ShortcutManager对象
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
N_MR1
)
{
val
shortcutManager
:
ShortcutManager
=
getSystemService
(
ShortcutManager
::
class
.
java
)
as
ShortcutManager
val
shortcut1
=
ShortcutInfo
.
Builder
(
this
,
"11111"
)
.
setShortLabel
(
"Scan QR code"
)
.
setIcon
(
Icon
.
createWithResource
(
this
,
R
.
mipmap
.
notifi_scancode
))
.
setIntent
(
Intent
(
Intent
.
ACTION_MAIN
,
null
,
this
,
Splash2Activity
::
class
.
java
).
apply
{
putExtra
(
"actionId"
,
ConstObject
.
ID_SCAN_CODE
)
})
.
build
()
shortcutManager
.
addDynamicShortcuts
(
listOf
(
shortcutInfo
))
val
shortcut2
=
ShortcutInfo
.
Builder
(
this
,
"22222"
)
.
setShortLabel
(
"Search"
)
.
setIcon
(
Icon
.
createWithResource
(
this
,
R
.
mipmap
.
sousuo
))
.
setIntent
(
Intent
(
Intent
.
ACTION_MAIN
,
null
,
this
,
Splash2Activity
::
class
.
java
))
.
build
()
val
shortcut3
=
ShortcutInfo
.
Builder
(
this
,
"33333"
)
.
setShortLabel
(
"Clean Junk"
)
.
setIcon
(
Icon
.
createWithResource
(
this
,
R
.
mipmap
.
notifi_cleanjunk
))
.
setIntent
(
Intent
(
Intent
.
ACTION_MAIN
,
null
,
this
,
Splash2Activity
::
class
.
java
).
apply
{
putExtra
(
"actionId"
,
ConstObject
.
ID_JUNK_CLEANER
)
})
.
build
()
val
shortcut4
=
ShortcutInfo
.
Builder
(
this
,
"44444"
)
.
setShortLabel
(
"App Process"
)
.
setIcon
(
Icon
.
createWithResource
(
this
,
R
.
mipmap
.
notifi_process
))
.
setIntent
(
Intent
(
Intent
.
ACTION_MAIN
,
null
,
this
,
Splash2Activity
::
class
.
java
).
apply
{
putExtra
(
"actionId"
,
ConstObject
.
ID_APP_PROCESS
)
})
.
build
()
//setDynamicShortcuts()方法来设置快捷方式
shortcutManager
.
setDynamicShortcuts
(
listOf
(
shortcut1
,
shortcut2
,
shortcut3
,
shortcut4
))
}
}
...
...
app/src/main/res/drawable/splash_bp.xml
View file @
3527c425
<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<
!-- <item android:drawable="@color/white"/>--
>
<
item
android:drawable=
"@color/white"
/
>
<item
android:drawable=
"@drawable/qidongyebg"
/>
<!-- <item-->
<!-- android:top="130dp"-->
...
...
app/src/main/res/layout/activity_splash_2.xml
View file @
3527c425
...
...
@@ -22,32 +22,32 @@
tools:ignore=
"UseCompoundDrawables"
>
<ImageView
android:alpha=
"0"
android:id=
"@+id/iv_weather"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_horizontal"
android:alpha=
"0"
tools:ignore=
"ContentDescription"
tools:src=
"@mipmap/duoyun_splash"
/>
<TextView
android:alpha=
"0"
android:id=
"@+id/tv_date"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_horizontal"
android:layout_marginTop=
"25dp"
android:alpha=
"0"
android:textColor=
"@color/white"
android:textSize=
"31sp"
tools:text=
"August 27th"
/>
<TextView
android:id=
"@+id/tv_temperature"
android:alpha=
"0"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_horizontal"
android:layout_marginTop=
"20dp"
android:alpha=
"0"
android:textColor=
"@color/white"
android:textSize=
"25sp"
tools:text=
"23℃/39℃"
/>
...
...
@@ -64,13 +64,13 @@
app:layout_constraintBottom_toBottomOf=
"parent"
>
<ProgressBar
android:alpha=
"0"
android:id=
"@+id/pb"
style=
"@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width=
"129dp"
android:layout_height=
"8dp"
android:layout_marginHorizontal=
"32dp"
android:layout_marginTop=
"5dp"
android:alpha=
"0"
android:max=
"100"
android:progressDrawable=
"@drawable/shape_splash_s"
tools:progress=
"50"
/>
...
...
@@ -98,12 +98,12 @@
app:layout_constraintBottom_toBottomOf=
"parent"
>
<TextView
android:layout_marginTop=
"5dp"
android:alpha=
"0"
android:id=
"@+id/id_tv_start"
android:layout_width=
"match_parent"
android:layout_height=
"59dp"
android:layout_marginHorizontal=
"20dp"
android:layout_marginTop=
"5dp"
android:alpha=
"0"
android:background=
"@drawable/bg_stroke_ffffff_30"
android:gravity=
"center"
android:text=
"START TO USE"
...
...
@@ -122,7 +122,7 @@
android:layout_marginTop=
"18dp"
android:layout_marginBottom=
"30dp"
android:text=
"Privacy Policy"
android:textColor=
"
#676767
"
android:textColor=
"
@color/white
"
android:textSize=
"14sp"
tools:ignore=
"HardcodedText"
/>
...
...
app/src/main/res/layout/dialog_default_browser.xml
View file @
3527c425
...
...
@@ -178,7 +178,7 @@
android:layout_width=
"338dp"
android:layout_height=
"50dp"
android:layout_gravity=
"center_horizontal"
android:layout_marginTop=
"2
0
dp"
android:layout_marginTop=
"2
5
dp"
android:background=
"@drawable/bg_0571ed_25"
android:gravity=
"center"
android:text=
"Set as default"
...
...
app/src/main/res/layout/dialog_my_account.xml
View file @
3527c425
...
...
@@ -72,6 +72,7 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:id=
"@+id/cl_search_engine"
android:layout_height=
"wrap_content"
>
<FrameLayout
...
...
@@ -84,6 +85,7 @@
app:layout_constraintTop_toTopOf=
"parent"
>
<ImageView
android:id=
"@+id/iv_search_engine"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:src=
"@mipmap/m_google"
...
...
@@ -141,7 +143,7 @@
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:src=
"@mipmap/m
_google
"
android:src=
"@mipmap/m
oren
"
tools:ignore=
"ContentDescription"
/>
</FrameLayout>
...
...
@@ -186,6 +188,7 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:visibility=
"gone"
android:layout_height=
"wrap_content"
>
<FrameLayout
...
...
app/src/main/res/layout/fragment_file.xml
View file @
3527c425
...
...
@@ -69,7 +69,7 @@
<TextView
android:id=
"@+id/tv_clean"
android:layout_width=
"90dp"
android:layout_height=
"3
4
dp"
android:layout_height=
"3
0
dp"
android:layout_marginStart=
"16dp"
android:background=
"@drawable/bg_f95242_17"
android:gravity=
"center"
...
...
@@ -80,7 +80,7 @@
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintVertical_bias=
"0.
6
"
app:layout_constraintVertical_bias=
"0.
525
"
tools:ignore=
"HardcodedText"
/>
<LinearLayout
...
...
app/src/main/res/layout/fragment_home.xml
View file @
3527c425
...
...
@@ -135,7 +135,7 @@
android:hint=
"Search or enter website address"
android:imeOptions=
"actionDone"
android:inputType=
"textUri"
android:paddingHorizontal=
"
1
5dp"
android:paddingHorizontal=
"5dp"
android:singleLine=
"true"
android:textColorHint=
"#858587"
android:textSize=
"14sp"
...
...
app/src/main/res/mipmap-xxhdpi/m_baidu.png
0 → 100644
View file @
3527c425
4.77 KB
app/src/main/res/mipmap-xxhdpi/m_bing.png
0 → 100644
View file @
3527c425
6.54 KB
app/src/main/res/mipmap-xxhdpi/m_xuckd.png
0 → 100644
View file @
3527c425
12.8 KB
app/src/main/res/mipmap-xxhdpi/m_yahoo.png
0 → 100644
View file @
3527c425
3.79 KB
app/src/main/res/mipmap-xxhdpi/m_yandex.png
0 → 100644
View file @
3527c425
3.83 KB
app/src/main/res/mipmap-xxhdpi/moren.png
0 → 100644
View file @
3527c425
5.56 KB
app/src/main/res/mipmap-xxhdpi/sousuo.png
0 → 100644
View file @
3527c425
28.1 KB
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