Commit 3527c425 authored by wanglei's avatar wanglei

...

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