diff --git a/app/build.gradle b/app/build.gradle index 02005d693e..4d48864bb1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -268,6 +268,9 @@ dependencies { implementation(project(':module_login')) { exclude group: 'androidx.swiperefreshlayout' } + implementation(project(':module_setting')) { + exclude group: 'androidx.swiperefreshlayout' + } // 默认不接入光能模块,提高编译速度 // debugImplementation(project(':module_energy')) { // exclude group: 'androidx.swiperefreshlayout' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8b7fa1f0ea..05325f2057 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -148,10 +148,6 @@ android:name="com.gh.gamecenter.NewsDetailActivity" android:screenOrientation="portrait" /> - - @@ -219,18 +215,6 @@ android:name="com.gh.gamecenter.SelectUserIconActivity" android:screenOrientation="portrait" /> - - - - - - - - @@ -586,14 +566,6 @@ android:name=".qa.video.publish.VideoPublishActivity" android:screenOrientation="portrait" /> - - - - diff --git a/app/src/main/java/com/gh/common/DefaultJsApi.kt b/app/src/main/java/com/gh/common/DefaultJsApi.kt index de1a8ef4de..b4adb20d7d 100644 --- a/app/src/main/java/com/gh/common/DefaultJsApi.kt +++ b/app/src/main/java/com/gh/common/DefaultJsApi.kt @@ -10,7 +10,9 @@ import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.FragmentActivity import com.gh.common.util.* import com.gh.common.util.LogUtils -import com.gh.gamecenter.* +import com.gh.gamecenter.BuildConfig +import com.gh.gamecenter.ImageViewerActivity +import com.gh.gamecenter.WebActivity import com.gh.gamecenter.common.callback.BiCallback import com.gh.gamecenter.common.constant.Constants import com.gh.gamecenter.common.entity.NotificationUgc @@ -30,13 +32,14 @@ import com.gh.gamecenter.entity.MtaEvent import com.gh.gamecenter.help.QaFeedbackDialogFragment import com.gh.gamecenter.login.entity.Badge import com.gh.gamecenter.login.user.LoginTag -import com.gh.gamecenter.login.view.LoginActivity import com.gh.gamecenter.login.user.UserManager -import com.gh.gamecenter.personalhome.border.AvatarBorderActivity -import com.gh.gamecenter.security.BindPhoneActivity import com.gh.gamecenter.login.user.UserRepository import com.gh.gamecenter.login.utils.LoginHelper import com.gh.gamecenter.login.utils.QuickLoginHelper +import com.gh.gamecenter.login.view.LoginActivity +import com.gh.gamecenter.personalhome.border.AvatarBorderActivity +import com.gh.gamecenter.setting.view.AboutActivity +import com.gh.gamecenter.setting.view.security.BindPhoneActivity import com.halo.assistant.HaloApp import com.lightgame.utils.Utils import org.json.JSONObject diff --git a/app/src/main/java/com/gh/common/constant/Config.java b/app/src/main/java/com/gh/common/constant/Config.java index e019ae0198..24b6138c93 100644 --- a/app/src/main/java/com/gh/common/constant/Config.java +++ b/app/src/main/java/com/gh/common/constant/Config.java @@ -309,26 +309,6 @@ public class Config { return mDefaultSharedPreferences; } - public static boolean isExistHideFunction() { - SharedPreferences preferences = getPreferences(); - if (!preferences.getBoolean(FIX_DOWNLOAD_KEY, false)) return true; - if (!preferences.getBoolean(FIX_PLUGIN_KEY, false)) return true; - if (!preferences.getBoolean(FIX_COMMUNITY_KEY, false)) return true; - if (!preferences.getBoolean(FIX_ARTICLE_KEY, false)) return true; - return false; - } - - public static void fixHideFunction() { - SharedPreferences preferences = PreferenceManager. - getDefaultSharedPreferences(HaloApp.getInstance().getApplication()); - SharedPreferences.Editor editor = preferences.edit(); - editor.putBoolean(Config.FIX_DOWNLOAD_KEY, true); - editor.putBoolean(Config.FIX_ARTICLE_KEY, true); - editor.putBoolean(Config.FIX_COMMUNITY_KEY, true); - editor.putBoolean(Config.FIX_PLUGIN_KEY, true); - editor.apply(); - } - @SuppressLint("CheckResult") public static void getGhzsSettings() { String channel = HaloApp.getInstance().getChannel(); diff --git a/app/src/main/java/com/gh/common/dialog/DeviceRemindDialog.kt b/app/src/main/java/com/gh/common/dialog/DeviceRemindDialog.kt index 374243547c..92bcfaf99d 100644 --- a/app/src/main/java/com/gh/common/dialog/DeviceRemindDialog.kt +++ b/app/src/main/java/com/gh/common/dialog/DeviceRemindDialog.kt @@ -29,8 +29,8 @@ import com.gh.gamecenter.common.utils.ImageUtils import com.gh.gamecenter.databinding.DialogDeviceRemindBinding import com.gh.gamecenter.entity.DeviceDialogEntity import com.gh.gamecenter.entity.GameEntity +import com.gh.gamecenter.setting.view.GameDownloadSettingFragment import com.google.gson.reflect.TypeToken -import com.gh.gamecenter.setting.GameDownloadSettingFragment.Companion.AUTO_INSTALL_SP_KEY import com.lightgame.download.DataWatcher import com.lightgame.download.DownloadEntity import com.lightgame.download.DownloadStatus @@ -53,7 +53,7 @@ class DeviceRemindDialog(context: Context, val entity: DeviceDialogEntity, val g private val dataWatcher = object : DataWatcher() { override fun onDataChanged(downloadEntity: DownloadEntity) { if (downloadEntity.status == DownloadStatus.done && downloadEntity.name == gameEntity.name) { - val autoInstall = SPUtils.getBoolean(AUTO_INSTALL_SP_KEY, true) + val autoInstall = SPUtils.getBoolean(GameDownloadSettingFragment.AUTO_INSTALL_SP_KEY, true) if (autoInstall) { dismiss() } diff --git a/app/src/main/java/com/gh/common/provider/AppProviderImpl.kt b/app/src/main/java/com/gh/common/provider/AppProviderImpl.kt index f6ca5c27ab..26ba0462c6 100644 --- a/app/src/main/java/com/gh/common/provider/AppProviderImpl.kt +++ b/app/src/main/java/com/gh/common/provider/AppProviderImpl.kt @@ -33,6 +33,10 @@ class AppProviderImpl : IAppProvider { return HaloApp.getInstance().channel ?: "" } + override fun setChannel(channel: String) { + HaloApp.getInstance().channel = channel + } + override fun getUserAgent(): String { return HaloApp.getInstance().userAgent ?: "" } diff --git a/app/src/main/java/com/gh/common/provider/BrowserInstallHelperProviderImpl.kt b/app/src/main/java/com/gh/common/provider/BrowserInstallHelperProviderImpl.kt new file mode 100644 index 0000000000..fd017ab719 --- /dev/null +++ b/app/src/main/java/com/gh/common/provider/BrowserInstallHelperProviderImpl.kt @@ -0,0 +1,23 @@ +package com.gh.common.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.download.server.BrowserInstallHelper +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IBrowserInstallHelperProvider + +@Route(path = RouteConsts.provider.browserInstallHelper, name = "BrowserInstallHelper暴露服务") +class BrowserInstallHelperProviderImpl : IBrowserInstallHelperProvider { + override fun isUseBrowserToInstallEnabled(): Boolean = BrowserInstallHelper.isUseBrowserToInstallEnabled() + + override fun shouldUseBrowserToInstall(): Boolean = BrowserInstallHelper.shouldUseBrowserToInstall() + + override fun logSwitchInstallSettingEvent() { + BrowserInstallHelper.logOrdinaryBrowserEvent(BrowserInstallHelper.Type.SWITCH_INSTALL_SETTING) + } + + + override fun init(context: Context?) { + // Do nothing + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/provider/ConfigProviderImpl.kt b/app/src/main/java/com/gh/common/provider/ConfigProviderImpl.kt index 01429e9536..db029864cb 100644 --- a/app/src/main/java/com/gh/common/provider/ConfigProviderImpl.kt +++ b/app/src/main/java/com/gh/common/provider/ConfigProviderImpl.kt @@ -72,6 +72,10 @@ class ConfigProviderImpl : IConfigProvider { return Config.WEIBO_APPKEY } + override fun getNightModeSetting(): Boolean { + return Config.getNightModeSetting()?.setting ?: false + } + override fun init(context: Context?) { // Do nothing } diff --git a/app/src/main/java/com/gh/common/provider/DialogUtilsProviderImpl.kt b/app/src/main/java/com/gh/common/provider/DialogUtilsProviderImpl.kt index 0877c2c0ed..b05d17c448 100644 --- a/app/src/main/java/com/gh/common/provider/DialogUtilsProviderImpl.kt +++ b/app/src/main/java/com/gh/common/provider/DialogUtilsProviderImpl.kt @@ -1,5 +1,6 @@ package com.gh.common.provider +import android.app.Dialog import android.content.Context import com.alibaba.android.arouter.facade.annotation.Route import com.gh.common.util.DialogUtils @@ -22,6 +23,46 @@ class DialogUtilsProviderImpl : IDialogUtilsProvider { }) } + override fun showWaitDialog(context: Context, string: String): Dialog = DialogUtils.showWaitDialog(context, string) + + override fun showForceDialog( + context: Context, + title: String, + message: CharSequence, + positive: String, + negative: String, + confirm: () -> Unit, + cancel: () -> Unit + ) { + DialogUtils.showForceDialog(context, title, message, positive, negative, + { confirm.invoke() }, object :CancelListener{ + override fun onCancel() { + cancel.invoke() + } + }) + } + + override fun showUsageStatsDialog(context: Context, confirm: () -> Unit, cancel: () -> Unit) { + DialogUtils.showUsageStatsDialog(context, + { confirm.invoke() }, object :CancelListener{ + override fun onCancel() { + cancel.invoke() + } + }) + } + + override fun showNoticeDialog( + context: Context, + title: String, + content: String, + confirm: () -> Unit + ) { + DialogUtils.showNoticeDialog(context, title, content + ) { confirm.invoke() } + } + + override fun showBindPhoneDialog(context: Context, confirm: () -> Unit): Dialog = DialogUtils.showBindPhoneDialog(context) { confirm.invoke() } + override fun init(context: Context?) { // Do nothing } diff --git a/app/src/main/java/com/gh/common/provider/DirectProviderImpl.kt b/app/src/main/java/com/gh/common/provider/DirectProviderImpl.kt index ea27204487..9a860a3924 100644 --- a/app/src/main/java/com/gh/common/provider/DirectProviderImpl.kt +++ b/app/src/main/java/com/gh/common/provider/DirectProviderImpl.kt @@ -49,6 +49,14 @@ class DirectProviderImpl : IDirectProvider { DirectUtils.directToLotteryParadisePage(context) } + override fun directDouyin(context: Context, userId: String) { + DirectUtils.directDouyin(context, userId) + } + + override fun directToSuggestionFromDiagnosis(context: Context, diagnosis: String) { + DirectUtils.directToSuggestion(context, diagnosis = diagnosis) + } + override fun init(context: Context?) { // Do nothing } diff --git a/app/src/main/java/com/gh/common/provider/HistoryHelperProviderImpl.kt b/app/src/main/java/com/gh/common/provider/HistoryHelperProviderImpl.kt new file mode 100644 index 0000000000..594b435254 --- /dev/null +++ b/app/src/main/java/com/gh/common/provider/HistoryHelperProviderImpl.kt @@ -0,0 +1,18 @@ +package com.gh.common.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.common.history.HistoryHelper +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IHistoryHelperProvider + +@Route(path = RouteConsts.provider.historyHelper, name = "HistoryHelper暴露服务") +class HistoryHelperProviderImpl : IHistoryHelperProvider { + override fun emptyDatabase() { + HistoryHelper.emptyDatabase() + } + + override fun init(context: Context?) { + // Do nothing + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/provider/MainProviderImpl.kt b/app/src/main/java/com/gh/common/provider/MainProviderImpl.kt new file mode 100644 index 0000000000..91c1a5495b --- /dev/null +++ b/app/src/main/java/com/gh/common/provider/MainProviderImpl.kt @@ -0,0 +1,20 @@ +package com.gh.common.provider + +import android.content.Context +import android.content.Intent +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.gamecenter.MainActivity +import com.gh.gamecenter.WebActivity +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IMainProvider + +@Route(path = RouteConsts.provider.mainActivity, name = "MainActivity暴露服务") +class MainProviderImpl : IMainProvider { + override fun skipToMainActivity(context: Context, position: Int) { + MainActivity.skipToMainActivity(context, position) + } + + override fun init(context: Context?) { + // Do nothing + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/provider/ShellProviderImpl.kt b/app/src/main/java/com/gh/common/provider/ShellProviderImpl.kt new file mode 100644 index 0000000000..1bb22173d2 --- /dev/null +++ b/app/src/main/java/com/gh/common/provider/ShellProviderImpl.kt @@ -0,0 +1,19 @@ +package com.gh.common.provider + +import android.content.Context +import android.content.Intent +import android.os.Parcelable +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.gamecenter.ShellActivity +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IShellProvider + +@Route(path = RouteConsts.provider.shellActivity, name = "ShellActivity暴露服务") +class ShellProviderImpl : IShellProvider { + override fun getSwitchInstallMethodIntent(context: Context, extraParcelable: Parcelable?): Intent = + ShellActivity.getIntent(context, ShellActivity.Type.SWITCH_INSTALL_METHOD, extraParcelable) + + override fun init(context: Context?) { + // Do nothing + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/provider/UpdateManagerProviderImpl.kt b/app/src/main/java/com/gh/common/provider/UpdateManagerProviderImpl.kt new file mode 100644 index 0000000000..c000db44c4 --- /dev/null +++ b/app/src/main/java/com/gh/common/provider/UpdateManagerProviderImpl.kt @@ -0,0 +1,19 @@ +package com.gh.common.provider + +import android.content.Context +import android.os.Handler +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IUpdateManagerProvider +import com.gh.gamecenter.manager.UpdateManager + +@Route(path = RouteConsts.provider.updateManager, name = "UpdateManager暴露服务") +class UpdateManagerProviderImpl: IUpdateManagerProvider { + override fun checkUpdate(context: Context, isAutoCheck: Boolean, handler: Handler) { + UpdateManager.getInstance(context).checkUpdate(isAutoCheck, handler) + } + + override fun init(context: Context?) { + // Do nothing + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/provider/UsageStatsHelperProviderImpl.kt b/app/src/main/java/com/gh/common/provider/UsageStatsHelperProviderImpl.kt new file mode 100644 index 0000000000..ca54e6eb37 --- /dev/null +++ b/app/src/main/java/com/gh/common/provider/UsageStatsHelperProviderImpl.kt @@ -0,0 +1,23 @@ +package com.gh.common.provider + +import android.content.Context +import android.os.Build +import androidx.annotation.RequiresApi +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.common.util.UsageStatsHelper +import com.gh.common.util.WechatBindHelper +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IUsageStatsHelperProvider + +@Route(path = RouteConsts.provider.usageStatsHelper, name = "UsageStatsHelper暴露服务") +class UsageStatsHelperProviderImpl : IUsageStatsHelperProvider { + @RequiresApi(Build.VERSION_CODES.LOLLIPOP_MR1) + override fun checkForPermission(): Boolean = UsageStatsHelper.checkForPermission() + override fun skipToUsageStats(context: Context, requestCode: Int) { + UsageStatsHelper.skipToUsageStats(context, requestCode) + } + + override fun init(context: Context?) { + // Do nothing + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/provider/WebProviderImpl.kt b/app/src/main/java/com/gh/common/provider/WebProviderImpl.kt index cea0b172b1..7d72dd50d5 100644 --- a/app/src/main/java/com/gh/common/provider/WebProviderImpl.kt +++ b/app/src/main/java/com/gh/common/provider/WebProviderImpl.kt @@ -17,6 +17,14 @@ class WebProviderImpl : IWebProvider { return WebActivity.getWebIntent(context, title, url) } + override fun getBindWechatIntent(context: Context): Intent { + return WebActivity.getBindWechatIntent(context) + } + + override fun getSecurityCertificationIntent(context: Context): Intent { + return WebActivity.getSecurityCertificationIntent(context) + } + override fun init(context: Context?) { // Do nothing } diff --git a/app/src/main/java/com/gh/common/provider/WechatHelperProviderImpl.kt b/app/src/main/java/com/gh/common/provider/WechatHelperProviderImpl.kt index c1f70ee124..d594b52248 100644 --- a/app/src/main/java/com/gh/common/provider/WechatHelperProviderImpl.kt +++ b/app/src/main/java/com/gh/common/provider/WechatHelperProviderImpl.kt @@ -8,8 +8,10 @@ import com.gh.gamecenter.core.provider.IWechatBindHelperProvider @Route(path = RouteConsts.provider.wechatHelper, name = "WechatHelper暴露服务") class WechatHelperProviderImpl : IWechatBindHelperProvider { - override fun getWechatConfig() { - WechatBindHelper.getWechatConfig() + override fun getWechatConfig(callback: (() -> Unit)?) { + WechatBindHelper.getWechatConfig { + callback?.invoke() + } } override fun init(context: Context?) { diff --git a/app/src/main/java/com/gh/common/util/DialogUtils.java b/app/src/main/java/com/gh/common/util/DialogUtils.java index 5140f7d833..12c531c614 100644 --- a/app/src/main/java/com/gh/common/util/DialogUtils.java +++ b/app/src/main/java/com/gh/common/util/DialogUtils.java @@ -93,8 +93,8 @@ import com.gh.gamecenter.entity.SettingsEntity; import com.gh.gamecenter.entity.SimpleGameEntity; import com.gh.gamecenter.entity.TrackableEntity; import com.gh.gamecenter.login.entity.Badge; -import com.gh.gamecenter.security.BindPhoneActivity; -import com.gh.gamecenter.setting.GameDownloadSettingFragment; +import com.gh.gamecenter.setting.view.security.BindPhoneActivity; +import com.gh.gamecenter.setting.view.GameDownloadSettingFragment; import com.gh.gamecenter.suggest.SuggestType; import com.lightgame.adapter.BaseRecyclerAdapter; import com.lightgame.download.DownloadEntity; diff --git a/app/src/main/java/com/gh/common/util/DirectUtils.kt b/app/src/main/java/com/gh/common/util/DirectUtils.kt index 22499a596a..c950d23216 100644 --- a/app/src/main/java/com/gh/common/util/DirectUtils.kt +++ b/app/src/main/java/com/gh/common/util/DirectUtils.kt @@ -9,31 +9,31 @@ import android.os.Build import android.os.Bundle import android.text.TextUtils import androidx.appcompat.app.AppCompatActivity -import com.gh.gamecenter.common.base.activity.BaseActivity -import com.gh.gamecenter.common.base.activity.BaseActivity_TabLayout -import com.gh.gamecenter.common.base.activity.ToolBarActivity -import com.gh.gamecenter.common.base.fragment.BaseFragment_TabLayout -import com.gh.gamecenter.core.AppExecutor import com.gh.common.constant.Config -import com.gh.gamecenter.common.constant.Constants import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureEvent.Companion.createEvent import com.gh.common.exposure.ExposureManager.log import com.gh.common.exposure.ExposureTraceUtils.appendTrace import com.gh.common.exposure.ExposureType -import com.gh.gamecenter.common.constant.EntranceConsts.* -import com.gh.common.util.EntranceUtils.* +import com.gh.common.util.EntranceUtils.jumpActivity import com.gh.gamecenter.* import com.gh.gamecenter.amway.AmwayActivity import com.gh.gamecenter.catalog.CatalogActivity import com.gh.gamecenter.category.CategoryDirectoryActivity import com.gh.gamecenter.category2.CategoryV2Activity +import com.gh.gamecenter.common.base.activity.BaseActivity +import com.gh.gamecenter.common.base.activity.BaseActivity_TabLayout +import com.gh.gamecenter.common.base.activity.ToolBarActivity +import com.gh.gamecenter.common.base.fragment.BaseFragment_TabLayout +import com.gh.gamecenter.common.constant.Constants import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.constant.EntranceConsts.* import com.gh.gamecenter.common.entity.CommunityEntity import com.gh.gamecenter.common.entity.Display import com.gh.gamecenter.common.entity.LinkEntity import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.AppExecutor import com.gh.gamecenter.core.utils.ToastUtils import com.gh.gamecenter.discovery.DiscoveryActivity import com.gh.gamecenter.download.DownloadFragment.Companion.INDEX_UPDATE @@ -63,9 +63,10 @@ import com.gh.gamecenter.qa.questions.newdetail.NewQuestionDetailActivity import com.gh.gamecenter.qa.subject.CommunitySubjectActivity import com.gh.gamecenter.qa.video.detail.ForumVideoDetailActivity import com.gh.gamecenter.retrofit.RetrofitManager -import com.gh.gamecenter.security.BindPhoneActivity import com.gh.gamecenter.servers.GameServerTestActivity import com.gh.gamecenter.servers.GameServersActivity +import com.gh.gamecenter.setting.view.security.BindPhoneActivity +import com.gh.gamecenter.setting.view.SettingActivity import com.gh.gamecenter.subject.SubjectActivity import com.gh.gamecenter.suggest.SuggestType import com.gh.gamecenter.tag.TagsActivity diff --git a/app/src/main/java/com/gh/common/util/DownloadObserver.kt b/app/src/main/java/com/gh/common/util/DownloadObserver.kt index e21841dd47..95dc77293c 100644 --- a/app/src/main/java/com/gh/common/util/DownloadObserver.kt +++ b/app/src/main/java/com/gh/common/util/DownloadObserver.kt @@ -23,7 +23,7 @@ import com.gh.gamecenter.entity.SimpleGameEntity import com.gh.gamecenter.entity.SimulatorEntity import com.gh.gamecenter.eventbus.EBDownloadStatus import com.gh.gamecenter.retrofit.RetrofitManager -import com.gh.gamecenter.setting.GameDownloadSettingFragment +import com.gh.gamecenter.setting.view.GameDownloadSettingFragment import com.gh.gamecenter.suggest.SuggestType import com.gh.vspace.VHelper import com.halo.assistant.HaloApp diff --git a/app/src/main/java/com/gh/common/util/NewFlatLogUtils.kt b/app/src/main/java/com/gh/common/util/NewFlatLogUtils.kt index 810efdfb15..9462e4886f 100644 --- a/app/src/main/java/com/gh/common/util/NewFlatLogUtils.kt +++ b/app/src/main/java/com/gh/common/util/NewFlatLogUtils.kt @@ -461,17 +461,6 @@ object NewFlatLogUtils { log(json, "event", false) } - //设置点击深色模式跟随系统切换开关 - @JvmStatic - fun logHaloSelfNightModeOsSwitch(isOn: Boolean) { - val json = json { - "event" to "halo_self_night_mode_os_switch" - "is_on" to isOn - parseAndPutMeta().invoke(this) - } - log(json, "event", false) - } - //触发关闭深色模式跟随系统切换弹窗 @JvmStatic fun logHaloSelfNightModeOsDialog(buttonText: String) { diff --git a/app/src/main/java/com/gh/common/util/NewLogUtils.kt b/app/src/main/java/com/gh/common/util/NewLogUtils.kt index 144556efb5..218248115b 100644 --- a/app/src/main/java/com/gh/common/util/NewLogUtils.kt +++ b/app/src/main/java/com/gh/common/util/NewLogUtils.kt @@ -1896,20 +1896,6 @@ object NewLogUtils { log(json, "appointment", false) } - //点击微信提醒 - @JvmStatic - fun logWechatRemindConfigClick(wechatConfigEntity: WechatConfigEntity) { - val json = json { - "event" to "appointment_wechat_remind_config_click" - "wechat_is_bind" to wechatConfigEntity.bind - "wechat_is_follow" to wechatConfigEntity.follow - "wechat_is_remind" to wechatConfigEntity.notice - "timestamp" to System.currentTimeMillis() / 1000 - parseAndPutMeta().invoke(this) - } - log(json, "appointment", false) - } - //选择图片上传方式 @JvmStatic fun logShowGameCollectionCoverTypeDialog() { diff --git a/app/src/main/java/com/gh/download/PackageObserver.kt b/app/src/main/java/com/gh/download/PackageObserver.kt index dc76fe4746..f6d7e8da44 100644 --- a/app/src/main/java/com/gh/download/PackageObserver.kt +++ b/app/src/main/java/com/gh/download/PackageObserver.kt @@ -22,7 +22,7 @@ import com.gh.gamecenter.login.user.UserManager import com.gh.gamecenter.packagehelper.PackageRepository import com.gh.gamecenter.packagehelper.PackageViewModel import com.gh.gamecenter.retrofit.RetrofitManager -import com.gh.gamecenter.setting.GameDownloadSettingFragment.Companion.CONCERN_GAME_SP_KEY +import com.gh.gamecenter.setting.view.GameDownloadSettingFragment import com.halo.assistant.HaloApp import com.lightgame.download.DownloadEntity import com.lightgame.download.FileUtils @@ -109,7 +109,7 @@ object PackageObserver { DownloadManager.getInstance().cancel(mDownloadEntity.url, false, true, false) - if (SPUtils.getBoolean(CONCERN_GAME_SP_KEY, true)) { //设置页面控制是否安装后自动关注 + if (SPUtils.getBoolean(GameDownloadSettingFragment.CONCERN_GAME_SP_KEY, true)) { //设置页面控制是否安装后自动关注 // 安装后关注游戏 val finalDownloadEntity = mDownloadEntity RetrofitManager.getInstance().api diff --git a/app/src/main/java/com/gh/gamecenter/CleanApkActivity.java b/app/src/main/java/com/gh/gamecenter/CleanApkActivity.java index 60b6aa7f17..a3aa19d053 100644 --- a/app/src/main/java/com/gh/gamecenter/CleanApkActivity.java +++ b/app/src/main/java/com/gh/gamecenter/CleanApkActivity.java @@ -6,13 +6,16 @@ import android.os.Bundle; import androidx.annotation.NonNull; +import com.alibaba.android.arouter.facade.annotation.Route; import com.gh.gamecenter.common.base.activity.ToolBarActivity; import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.constant.RouteConsts; import com.halo.assistant.fragment.ApkCleanerFragment; /** * Created by khy on 2017/1/24. */ +@Route(path = RouteConsts.activity.cleanApkActivity) public class CleanApkActivity extends ToolBarActivity { @NonNull diff --git a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java index 6fefc022e6..222f64a7e6 100644 --- a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java @@ -59,7 +59,7 @@ import com.gh.gamecenter.eventbus.EBPackage; import com.gh.gamecenter.common.eventbus.EBReuse; import com.gh.gamecenter.newsdetail.NewsDetailAdapter; import com.gh.gamecenter.retrofit.RetrofitManager; -import com.halo.assistant.fragment.SettingsFragment; +import com.gh.gamecenter.setting.view.SettingsFragment; import com.lightgame.download.DataWatcher; import com.lightgame.download.DownloadEntity; import com.lightgame.utils.Utils; diff --git a/app/src/main/java/com/gh/gamecenter/forum/home/ForumScrollCalculatorHelper.kt b/app/src/main/java/com/gh/gamecenter/forum/home/ForumScrollCalculatorHelper.kt index c6872e1965..128aa0bf76 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/home/ForumScrollCalculatorHelper.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/home/ForumScrollCalculatorHelper.kt @@ -7,12 +7,12 @@ import android.text.TextUtils import android.view.View import androidx.recyclerview.widget.RecyclerView import com.gh.gamecenter.common.constant.Constants -import com.gh.gamecenter.core.utils.MD5Utils import com.gh.gamecenter.common.utils.NetworkUtils -import com.gh.gamecenter.core.utils.SPUtils import com.gh.gamecenter.common.utils.safelyGetInRelease +import com.gh.gamecenter.core.utils.MD5Utils +import com.gh.gamecenter.core.utils.SPUtils import com.gh.gamecenter.entity.ForumVideoEntity -import com.gh.gamecenter.setting.VideoSettingFragment +import com.gh.gamecenter.setting.view.VideoSettingFragment import com.gh.gamecenter.video.detail.CustomManager import com.halo.assistant.HaloApp import com.shuyu.gsyvideoplayer.video.base.GSYBaseVideoPlayer diff --git a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt index 5eaf5711a2..2eddba5902 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt @@ -18,6 +18,7 @@ import com.gh.common.exposure.ExposureType import com.gh.common.exposure.IExposable import com.gh.common.util.* import com.gh.common.util.LogUtils +import com.gh.common.util.NewFlatLogUtils import com.gh.common.util.NewLogUtils import com.gh.gamecenter.BlockActivity import com.gh.gamecenter.GameDetailActivity diff --git a/app/src/main/java/com/gh/gamecenter/game/GameViewModel.kt b/app/src/main/java/com/gh/gamecenter/game/GameViewModel.kt index 5578aafe4e..d99c9ae68d 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/game/GameViewModel.kt @@ -31,7 +31,7 @@ import com.gh.gamecenter.game.rank.RankCollectionAdapter import com.gh.gamecenter.gamecollection.square.GameCollectionListItemData import com.gh.gamecenter.home.BlankDividerViewHolder import com.gh.gamecenter.retrofit.RetrofitManager -import com.halo.assistant.fragment.SettingsFragment +import com.gh.gamecenter.setting.view.SettingsFragment import com.lightgame.utils.Utils import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers diff --git a/app/src/main/java/com/gh/gamecenter/game/upload/GameSubmissionActivity.kt b/app/src/main/java/com/gh/gamecenter/game/upload/GameSubmissionActivity.kt index e6375e88b6..ac6ce4e4cc 100644 --- a/app/src/main/java/com/gh/gamecenter/game/upload/GameSubmissionActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/game/upload/GameSubmissionActivity.kt @@ -3,15 +3,18 @@ package com.gh.gamecenter.game.upload import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.gamecenter.common.base.activity.ToolBarActivity +import com.alibaba.android.arouter.facade.annotation.Route import com.gh.gamecenter.R import com.gh.gamecenter.common.base.activity.BaseActivity +import com.gh.gamecenter.common.base.activity.ToolBarActivity import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.constant.RouteConsts import com.gh.gamecenter.common.utils.updateStatusBarColor /** * 游戏投稿 */ +@Route(path = RouteConsts.activity.gameSubmissionActivity) class GameSubmissionActivity : ToolBarActivity() { companion object { @JvmStatic diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionDetailFragment.kt index 10ec68e884..7747159edc 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionDetailFragment.kt @@ -44,12 +44,12 @@ import com.gh.gamecenter.eventbus.EBUserFollow import com.gh.gamecenter.gamedetail.GameDetailFragment import com.gh.gamecenter.home.video.ScrollCalculatorHelper import com.gh.gamecenter.login.user.UserManager +import com.gh.gamecenter.login.user.UserViewModel import com.gh.gamecenter.qa.article.detail.CommentItemData import com.gh.gamecenter.qa.comment.CommentActivity import com.gh.gamecenter.qa.comment.base.BaseCommentAdapter import com.gh.gamecenter.qa.comment.base.BaseCommentViewModel -import com.gh.gamecenter.setting.VideoSettingFragment -import com.gh.gamecenter.login.user.UserViewModel +import com.gh.gamecenter.setting.view.VideoSettingFragment import com.gh.gamecenter.video.detail.CustomManager import com.google.android.material.appbar.AppBarLayout import com.halo.assistant.HaloApp diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt index e6b3224f9b..f87b78aa6e 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt @@ -40,6 +40,7 @@ import com.gh.common.simulator.SimulatorGameManager import com.gh.common.util.* import com.gh.common.util.DialogUtils import com.gh.common.util.LogUtils +import com.gh.common.util.NewFlatLogUtils import com.gh.common.util.NewLogUtils import com.gh.common.view.FlexLinearLayout import com.gh.common.xapk.XapkInstaller @@ -75,7 +76,7 @@ import com.gh.gamecenter.gamedetail.video.TopVideoView import com.gh.gamecenter.home.video.ScrollCalculatorHelper import com.gh.gamecenter.login.user.UserViewModel import com.gh.gamecenter.packagehelper.PackageViewModel -import com.gh.gamecenter.setting.VideoSettingFragment +import com.gh.gamecenter.setting.view.VideoSettingFragment import com.gh.gamecenter.simulatorgame.SimulatorGameActivity import com.gh.gamecenter.tag.TagsActivity import com.gh.gamecenter.video.detail.CustomManager diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescAdapter.kt index 4ead9cde4e..45e177eaf3 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescAdapter.kt @@ -29,6 +29,7 @@ import com.gh.common.exposure.ExposureSource import com.gh.common.util.* import com.gh.common.util.DialogUtils import com.gh.common.util.LogUtils +import com.gh.common.util.NewFlatLogUtils import com.gh.common.util.NewLogUtils import com.gh.gamecenter.GameNewsActivity import com.gh.gamecenter.R diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameGalleryAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameGalleryAdapter.kt index 7a8dd8893e..1e734fe178 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameGalleryAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameGalleryAdapter.kt @@ -9,6 +9,7 @@ import androidx.recyclerview.widget.RecyclerView import com.facebook.drawee.view.SimpleDraweeView import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.common.util.* +import com.gh.common.util.NewFlatLogUtils import com.gh.gamecenter.common.view.WrapContentDraweeView import com.gh.gamecenter.ImageViewerActivity import com.gh.gamecenter.R diff --git a/app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.kt b/app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.kt index b35e454d81..3039fac3a6 100644 --- a/app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.kt @@ -11,7 +11,6 @@ import com.gh.common.exposure.ExposureSource import com.gh.common.exposure.IExposable import com.gh.common.util.DirectUtils import com.gh.common.util.NewLogUtils -import com.gh.gamecenter.AboutActivity import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.ReuseViewHolder @@ -36,6 +35,7 @@ import com.gh.gamecenter.home.amway.HomeAmwayListViewHolder import com.gh.gamecenter.home.gamecollection.HomeGameCollectionViewHolder import com.gh.gamecenter.home.slide.HomeSlideListAdapter import com.gh.gamecenter.home.slide.HomeSlideListViewHolder +import com.gh.gamecenter.setting.view.AboutActivity import com.gh.vspace.HomeRecentVGameAdapter import com.gh.vspace.HomeRecentVGameViewHolder import com.gh.vspace.VHelper diff --git a/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt b/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt index 3ebdf3f2c5..7223fd2a52 100644 --- a/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt @@ -26,10 +26,10 @@ import com.gh.gamecenter.game.rank.RankCollectionAdapter import com.gh.gamecenter.gamecollection.square.GameCollectionListItemData import com.gh.gamecenter.packagehelper.PackageRepository import com.gh.gamecenter.retrofit.RetrofitManager +import com.gh.gamecenter.setting.view.SettingsFragment import com.gh.vspace.VGameItemData import com.gh.vspace.VHelper import com.halo.assistant.HaloApp -import com.halo.assistant.fragment.SettingsFragment import com.lightgame.download.DownloadEntity import com.lightgame.utils.Utils import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListAdapter.kt b/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListAdapter.kt index b48374cb46..8794af7104 100644 --- a/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListAdapter.kt @@ -10,18 +10,18 @@ import androidx.recyclerview.widget.RecyclerView import com.gh.common.databind.BindingAdapters import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureSource -import com.gh.gamecenter.core.runOnIoThread -import com.gh.common.util.* -import com.gh.gamecenter.AboutActivity +import com.gh.common.util.DirectUtils import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.common.utils.DataLogUtils import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.core.runOnIoThread import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.core.utils.PageSwitchDataHelper import com.gh.gamecenter.databinding.HomeSlideListItemBinding import com.gh.gamecenter.entity.HomeSlide import com.gh.gamecenter.home.HomeItemData +import com.gh.gamecenter.setting.view.AboutActivity import com.lightgame.adapter.BaseRecyclerAdapter import com.lightgame.download.DownloadEntity import java.lang.ref.WeakReference diff --git a/app/src/main/java/com/gh/gamecenter/home/video/ScrollCalculatorHelper.kt b/app/src/main/java/com/gh/gamecenter/home/video/ScrollCalculatorHelper.kt index 7dd6b6573b..8d1a7ad744 100644 --- a/app/src/main/java/com/gh/gamecenter/home/video/ScrollCalculatorHelper.kt +++ b/app/src/main/java/com/gh/gamecenter/home/video/ScrollCalculatorHelper.kt @@ -6,10 +6,10 @@ import android.os.Looper import android.view.View import androidx.recyclerview.widget.RecyclerView import com.gh.gamecenter.common.constant.Constants -import com.gh.gamecenter.core.utils.MD5Utils import com.gh.gamecenter.common.utils.NetworkUtils +import com.gh.gamecenter.core.utils.MD5Utils import com.gh.gamecenter.core.utils.SPUtils -import com.gh.gamecenter.setting.VideoSettingFragment +import com.gh.gamecenter.setting.view.VideoSettingFragment import com.gh.gamecenter.video.detail.CustomManager import com.halo.assistant.HaloApp import com.shuyu.gsyvideoplayer.video.base.GSYBaseVideoPlayer diff --git a/app/src/main/java/com/gh/gamecenter/mygame/MyReservationAdapter.kt b/app/src/main/java/com/gh/gamecenter/mygame/MyReservationAdapter.kt index 2201b3bccd..3138707320 100644 --- a/app/src/main/java/com/gh/gamecenter/mygame/MyReservationAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/mygame/MyReservationAdapter.kt @@ -14,6 +14,7 @@ import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureSource import com.gh.common.exposure.IExposable import com.gh.common.util.* +import com.gh.common.util.NewFlatLogUtils import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.common.viewholder.FooterViewHolder diff --git a/app/src/main/java/com/gh/gamecenter/mygame/PlayedGameAdapter.kt b/app/src/main/java/com/gh/gamecenter/mygame/PlayedGameAdapter.kt index 8bb3860e91..fa6dc7339b 100644 --- a/app/src/main/java/com/gh/gamecenter/mygame/PlayedGameAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/mygame/PlayedGameAdapter.kt @@ -22,6 +22,7 @@ import com.gh.common.exposure.ExposureSource import com.gh.common.exposure.IExposable import com.gh.common.util.* import com.gh.common.util.DialogUtils +import com.gh.common.util.NewFlatLogUtils import com.gh.gamecenter.common.view.BugFixedPopupWindow import com.gh.gamecenter.common.view.DrawableView import com.gh.gamecenter.GameDetailActivity diff --git a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java index 7960f0b093..00d62729f8 100644 --- a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java @@ -74,7 +74,7 @@ import com.gh.gamecenter.entity.NewsDetailEntity; import com.gh.gamecenter.entity.NewsEntity; import com.gh.gamecenter.qa.editor.OnLinkClickListener; import com.gh.gamecenter.retrofit.RetrofitManager; -import com.halo.assistant.fragment.SettingsFragment; +import com.gh.gamecenter.setting.view.SettingsFragment; import com.lightgame.adapter.BaseRecyclerAdapter; import com.lightgame.utils.Utils; diff --git a/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalBannerAdapter.kt b/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalBannerAdapter.kt index f3358fd1f4..92695a5621 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalBannerAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalBannerAdapter.kt @@ -15,7 +15,7 @@ import com.gh.gamecenter.entity.AddonLinkEntity import com.gh.gamecenter.game.upload.GameSubmissionActivity import com.gh.gamecenter.login.user.UserManager import com.gh.gamecenter.message.MessageUnreadRepository -import com.gh.gamecenter.security.SecurityActivity +import com.gh.gamecenter.setting.view.security.SecurityActivity import com.gh.gamecenter.simulatorgame.SimulatorGameActivity import com.gh.gamecenter.teenagermode.TeenagerModeActivity import com.gh.gamecenter.toolbox.ToolBoxBlockActivity diff --git a/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalFragment.kt b/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalFragment.kt index 44393d7ef2..f164f15786 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalFragment.kt @@ -16,14 +16,20 @@ import androidx.recyclerview.widget.PagerSnapHelper import androidx.recyclerview.widget.RecyclerView import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat import androidx.viewpager2.widget.ViewPager2 +import com.alibaba.android.arouter.launcher.ARouter import com.gh.common.constant.Config import com.gh.common.databind.BindingAdapters import com.gh.common.util.* import com.gh.common.util.DialogUtils import com.gh.common.util.LogUtils +import com.gh.common.util.NewFlatLogUtils import com.gh.common.util.NewLogUtils import com.gh.gamecenter.* +import com.gh.gamecenter.common.base.activity.BaseActivity +import com.gh.gamecenter.common.base.activity.ToolBarActivity import com.gh.gamecenter.common.base.fragment.BaseLazyFragment +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.constant.RouteConsts import com.gh.gamecenter.common.eventbus.EBReuse import com.gh.gamecenter.common.retrofit.ApiResponse import com.gh.gamecenter.common.utils.* @@ -50,6 +56,7 @@ import com.gh.gamecenter.mygame.MyGameActivity import com.gh.gamecenter.mypost.MyPostActivity import com.gh.gamecenter.personalhome.UserHomeViewModel import com.gh.gamecenter.room.AppDatabase +import com.gh.gamecenter.setting.view.SettingActivity import com.google.android.material.appbar.AppBarLayout import com.halo.assistant.HaloApp import com.jakewharton.rxbinding2.view.RxView diff --git a/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalFunctionAdapter.kt b/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalFunctionAdapter.kt index 5996ba36ea..79f477cfe3 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalFunctionAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalFunctionAdapter.kt @@ -19,7 +19,7 @@ import com.gh.gamecenter.entity.AddonLinkEntity import com.gh.gamecenter.game.upload.GameSubmissionActivity import com.gh.gamecenter.login.user.UserManager import com.gh.gamecenter.message.MessageUnreadRepository -import com.gh.gamecenter.security.SecurityActivity +import com.gh.gamecenter.setting.view.security.SecurityActivity import com.gh.gamecenter.simulatorgame.SimulatorGameActivity import com.gh.gamecenter.teenagermode.TeenagerModeActivity import com.gh.gamecenter.toolbox.ToolBoxBlockActivity diff --git a/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalRecommendAdapter.kt b/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalRecommendAdapter.kt index a537b9f167..54d63c496d 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalRecommendAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalRecommendAdapter.kt @@ -20,7 +20,7 @@ import com.gh.gamecenter.entity.AddonLinkEntity import com.gh.gamecenter.game.upload.GameSubmissionActivity import com.gh.gamecenter.login.user.UserManager import com.gh.gamecenter.message.MessageUnreadRepository -import com.gh.gamecenter.security.SecurityActivity +import com.gh.gamecenter.setting.view.security.SecurityActivity import com.gh.gamecenter.simulatorgame.SimulatorGameActivity import com.gh.gamecenter.teenagermode.TeenagerModeActivity import com.gh.gamecenter.toolbox.ToolBoxBlockActivity diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryFragment.kt b/app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryFragment.kt index 2451180b4d..6188a8aa4b 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryFragment.kt @@ -9,6 +9,7 @@ import androidx.core.os.bundleOf import androidx.recyclerview.widget.RecyclerView import com.gh.gamecenter.core.AppExecutor import com.gh.common.util.* +import com.gh.common.util.NewFlatLogUtils import com.gh.gamecenter.R import com.gh.gamecenter.common.baselist.ListAdapter import com.gh.gamecenter.common.baselist.ListFragment diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserCommentHistoryAdapter.kt b/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserCommentHistoryAdapter.kt index 9318eb9625..a4be8052c3 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserCommentHistoryAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserCommentHistoryAdapter.kt @@ -10,6 +10,7 @@ import androidx.recyclerview.widget.RecyclerView import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.util.* +import com.gh.common.util.NewFlatLogUtils import com.gh.gamecenter.R import com.gh.gamecenter.common.viewholder.FooterViewHolder import com.gh.gamecenter.common.baselist.ListAdapter diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchDefaultFragment.kt b/app/src/main/java/com/gh/gamecenter/search/SearchDefaultFragment.kt index 2aea6af395..fd824c4d20 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchDefaultFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/search/SearchDefaultFragment.kt @@ -20,6 +20,7 @@ import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureManager import com.gh.common.exposure.ExposureSource import com.gh.common.util.* +import com.gh.common.util.NewFlatLogUtils import com.gh.gamecenter.R import com.gh.gamecenter.common.utils.* import com.gh.gamecenter.common.view.DrawableView diff --git a/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt b/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt index 0fc3ee7daf..d5e78c8cd0 100644 --- a/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt +++ b/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt @@ -39,9 +39,9 @@ import com.gh.gamecenter.entity.VideoEntity import com.gh.gamecenter.eventbus.EBRecommed import com.gh.gamecenter.login.user.UserManager import com.gh.gamecenter.qa.comment.CommentActivity +import com.gh.gamecenter.setting.view.SettingsFragment import com.gh.gamecenter.video.game.GameVideoActivity import com.halo.assistant.HaloApp -import com.halo.assistant.fragment.SettingsFragment import com.jakewharton.rxbinding2.view.RxView import com.lightgame.utils.Utils import com.shuyu.gsyvideoplayer.listener.VideoAllCallBack diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0749006cf3..39f5418162 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -37,7 +37,6 @@ 设置 我的游戏 光环用户 - 新版本 请输入搜索关键字 搜索 44.5% @@ -124,39 +123,15 @@ 接收文件需要开启热点 \n 如果出现获取权限的提示,请点击允许 为了避免消耗流量,请关闭你手机的移动网络 从手机相册中选择 - 账号与安全 - 深色模式跟随系统切换 - 视频播放 - 游戏下载 - 一键修复 - 下载完成自动安装游戏 - 安装完成自动关注游戏 - 切换安装方式 - 微信提醒 1.光环助手下载应用后,通过跳转默认浏览器安装已下载的应用(不会重复消耗流量),即可完成免密码安装2.内存较大的游戏在浏览器解压时间较长,需要等待片刻,您也可以通过浏览器的“下载记录”查看解压进度 以上未能解决安装需要密码的,可查看使用教程> 直接使用光环助手下载应用,但%s手机自身安全性检测,下载后需要进行验证账户密码、指纹等解锁后安装 直接使用光环助手下载应用,但部分手机可能存在无法安装的问题 非Wi-Fi环境播放视频提醒 - 非Wi-Fi环境下载游戏提醒 - 非Wi-Fi环境播放首页视频 - 统计游戏时长 - 开启后可以帮你记录玩过每款游戏的时长 - 通知权限 - 开启后你可以及时收到重要通知 - 个性化推荐 - 开启功能后,您在本应用的使用信息(如下载信息),将用于个性化内容推荐,以提升您在本应用的体验 + 非Wi-Fi环境播放首页视频> 安装完成自动删除安装包 …/GH-KC - …/gh-files - …/pictures/ghzhushou 免流量传送接收目录 - 游戏下载目录 - 图片保存目录 - 清除缓存 - 0.0M - 关于我们 - 关于我们(长按可更改渠道号) 用户协议 隐私政策 安装包清理 @@ -165,11 +140,6 @@ 接入第三方SDK目录 权限申请与使用情况说明 儿童隐私保护声明 - 任何网络下都自动播放 - 仅WIFI条件下自动播放 - 关闭自动播放 - 默认静音播放视频 - 开启后以上位置的视频均默认静音播放 1 创建热点 正在创建热点... @@ -251,7 +221,6 @@ 目前还没有评论 没有更多评论啦 加载失败,点击重试 - 关于 发送游戏 安装包清理 选择安装包 @@ -280,7 +249,6 @@ 游戏上传 历史版本 我的游戏评论 - Copyright %1$s GHZhuShou Team All Rights Reserved. 资讯 关注 @@ -289,7 +257,6 @@ 正在反馈... 下载管理 - 版本更新 个人中心 一键删除(%1$d个,释放%2$s) 保存 @@ -436,7 +403,6 @@ 已安装的游戏(%1$d) 收到%1$d个赞 - 已是最新版本 小编回复:%1$s]]> %1$d票 光环客服 @@ -714,25 +680,6 @@ 还有其他问题? 联系客服 账户安全中心 - 跳过 - 绑定手机 - 绑定手机号 - 更换手机号 - 绑定手机后手机号将用于光环助手活动奖励领取、安全验证等用途 - 下一步 - 完成 - 手机号绑定冲突 - 遇到冲突如何换绑 - 1、请先退出当前号【我的光环--设置--退出账号】 - 2、再重新登录冲突号,在【我的光环--账户安全】\n或【我的光环--设置--账户安全】更换手机号 - 3、冲突号成功更换新手机号后,再退出冲突号,\n并重新登录当前号进行绑定 - 当前号 - 冲突号 - 换个手机号试试 - 取消绑定 - 更换手机号 - 新手机号与当前手机号相同,暂不支持本\n次绑定 - 我知道了 点击立即查看 查看更多 @@ -760,8 +707,6 @@ 点击更换背景 - 提交反馈 - 求游戏 求功能 @@ -808,7 +753,6 @@ 完美,太棒了 将已安装游戏标记为玩过的游戏 - https://v.douyin.com/C9UHr6/ 你有%1$d]]>款预约的游戏上线啦 欢迎您使用光环助手!\n在您使用光环助手之前,请您认真阅读《用户协议》和《隐私政策》的全部内容,以了解用户权利义务和个人信息处理规则。主要内容向您说明如下:\n1.为了正常地提供优质的产品服务,基于您的授权我们会获取必要的个人信息,您有权拒绝或取消授权\n2.我们会采取合理的安全措施保护您的个人信息,防止数据被不当使用或未经授权的情况下被访问、公开披露、使用、修改、损坏、丢失或泄漏。\n3.未经您同意,我们不会从第三方处获取、共享或向其提供您的信息\n4.您可以查询、更正、删除您的个人信息,我们也提供账户注销的渠道 此游戏下载资源由第三方提供。若该资源侵犯了您的合法权益或违反了当地法规,请点击页面右上角-版权申诉,按指引发起申诉,我们会尽快联系您并解决。 diff --git a/module_common/src/main/java/com/gh/gamecenter/common/constant/Config.kt b/module_common/src/main/java/com/gh/gamecenter/common/constant/Config.kt index 9b823b63b3..c7bc495186 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/constant/Config.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/constant/Config.kt @@ -7,6 +7,11 @@ import com.gh.gamecenter.core.utils.SPUtils.setString object Config { + const val FIX_DOWNLOAD_KEY = "isFixDownload" + const val FIX_PLUGIN_KEY = "isFixPlugin" + const val FIX_ARTICLE_KEY = "isFixArticle" + const val FIX_COMMUNITY_KEY = "isFixCommunity" + const val DEFAULT_CHANNEL = "GH_TEST3" const val DEFAULT_CHANNEL_FOR_RELEASE = "GH_LOST" // 正式包的缺省渠道,避免因渠道丢失而回落到测试渠道 private var mDefaultSharedPreferences: SharedPreferences? = null @@ -37,4 +42,22 @@ object Config { } return mDefaultSharedPreferences!! } + + fun isExistHideFunction(): Boolean { + if (!getPreferences().getBoolean(FIX_DOWNLOAD_KEY, false)) return true + if (!getPreferences().getBoolean(FIX_PLUGIN_KEY, false)) return true + if (!getPreferences().getBoolean(FIX_COMMUNITY_KEY, false)) return true + if (!getPreferences().getBoolean(FIX_ARTICLE_KEY, false)) return true + return false + } + + fun fixHideFunction() { + getPreferences().edit().run { + putBoolean(FIX_DOWNLOAD_KEY, true) + putBoolean(FIX_ARTICLE_KEY, true) + putBoolean(FIX_COMMUNITY_KEY, true) + putBoolean(FIX_PLUGIN_KEY, true) + apply() + } + } } \ No newline at end of file diff --git a/module_common/src/main/java/com/gh/gamecenter/common/constant/RouteConsts.kt b/module_common/src/main/java/com/gh/gamecenter/common/constant/RouteConsts.kt index 5ce712cb76..e4c046e536 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/constant/RouteConsts.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/constant/RouteConsts.kt @@ -5,13 +5,17 @@ object RouteConsts { object activity { const val splashActivity = "/app/SplashScreenActivity" - const val aboutActivity = "/setting/AboutActivity" + const val aboutActivity = "/settings/AboutActivity" const val webActivity = "/setting/WebActivity" const val weiBoShareActivity = "/setting/weiBoShareActivity" const val loginActivity = "/login/LoginActivity" const val bindPhoneActivity = "/security/BindPhoneActivity" + + const val cleanApkActivity = "/app/cleanApkActivity" + const val gameSubmissionActivity = "/app/gameSubmissionActivity" + const val suggestionActivity = "/app/suggestionActivity" } object fragment { @@ -44,6 +48,12 @@ object RouteConsts { const val floatingBackViewManager = "/services/floatingBackViewManager" const val linkDirectUtils = "/services/linkDirectUtils" const val handleGameResponse = "/services/handleGameResponse" + const val usageStatsHelper = "/services/usageStatsHelper" + const val mainActivity = "/services/mainActivity" + const val shellActivity = "/services/shellActivity" + const val browserInstallHelper = "/services/browserInstallHelper" + const val historyHelper = "/services/historyHelper" + const val updateManager = "/services/updateManager" const val userManager = "/login/userManager" const val quickLogin = "/login/quickLogin" diff --git a/module_common/src/main/java/com/gh/gamecenter/common/utils/NewFlatLogUtils.kt b/module_common/src/main/java/com/gh/gamecenter/common/utils/NewFlatLogUtils.kt new file mode 100644 index 0000000000..33c123ef03 --- /dev/null +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/NewFlatLogUtils.kt @@ -0,0 +1,36 @@ +package com.gh.gamecenter.common.utils + +import com.gh.gamecenter.common.json.JsonObjectBuilder +import com.gh.gamecenter.common.json.json +import com.gh.gamecenter.common.loghub.LoghubUtils +import com.lightgame.utils.Utils +import org.json.JSONObject + + +object NewFlatLogUtils { + private fun log(jsonObject: JSONObject, logStore: String, uploadImmediately: Boolean) { + Utils.log("NewLogUtils", jsonObject.toString(4)) + LoghubUtils.log(jsonObject, logStore, uploadImmediately) + } + + private fun parseAndPutMeta(): JsonObjectBuilder.() -> Unit = { + val meta = LogUtils.getNewMetaObject() + val metaKeys = meta.keys() + while (metaKeys.hasNext()) { + val key: String = metaKeys.next().toString() + val value = meta.getString(key) + key to value + } + } + + //设置点击深色模式跟随系统切换开关 + @JvmStatic + fun logHaloSelfNightModeOsSwitch(isOn: Boolean) { + val json = json { + "event" to "halo_self_night_mode_os_switch" + "is_on" to isOn + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } +} \ No newline at end of file diff --git a/module_common/src/main/java/com/gh/gamecenter/common/utils/NewLogUtils.kt b/module_common/src/main/java/com/gh/gamecenter/common/utils/NewLogUtils.kt index 5f49fcef3f..bb1621f468 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/utils/NewLogUtils.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/NewLogUtils.kt @@ -70,4 +70,18 @@ object NewLogUtils { } log(json, "event", false) } + + //点击微信提醒 + @JvmStatic + fun logWechatRemindConfigClick(isBind: Boolean, isFollow: Boolean, isRemind: Boolean) { + val json = json { + "event" to "appointment_wechat_remind_config_click" + "wechat_is_bind" to isBind + "wechat_is_follow" to isFollow + "wechat_is_remind" to isRemind + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "appointment", false) + } } \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IAppProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IAppProvider.kt index 60a5510c39..015d7caf7a 100644 --- a/module_core/src/main/java/com/gh/gamecenter/core/provider/IAppProvider.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IAppProvider.kt @@ -14,6 +14,8 @@ interface IAppProvider : IProvider { fun getChannel(): String + fun setChannel(channel: String) + fun getUserAgent(): String fun getServerUserMark(): String diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IBrowserInstallHelperProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IBrowserInstallHelperProvider.kt new file mode 100644 index 0000000000..b9b495e4a5 --- /dev/null +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IBrowserInstallHelperProvider.kt @@ -0,0 +1,9 @@ +package com.gh.gamecenter.core.provider + +import com.alibaba.android.arouter.facade.template.IProvider + +interface IBrowserInstallHelperProvider : IProvider { + fun isUseBrowserToInstallEnabled(): Boolean + fun shouldUseBrowserToInstall(): Boolean + fun logSwitchInstallSettingEvent() +} \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IConfigProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IConfigProvider.kt index 3306057c5c..22637b9ad6 100644 --- a/module_core/src/main/java/com/gh/gamecenter/core/provider/IConfigProvider.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IConfigProvider.kt @@ -19,4 +19,5 @@ interface IConfigProvider : IProvider { fun getQuickLoginAppId(): String fun getQuickLoginAppKey(): String fun getWeiboAppKey(): String + fun getNightModeSetting(): Boolean } \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IDialogUtilsProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IDialogUtilsProvider.kt index 7290261546..3da2c5f35b 100644 --- a/module_core/src/main/java/com/gh/gamecenter/core/provider/IDialogUtilsProvider.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IDialogUtilsProvider.kt @@ -1,9 +1,20 @@ package com.gh.gamecenter.core.provider +import android.app.Dialog import android.content.Context import com.alibaba.android.arouter.facade.template.IProvider interface IDialogUtilsProvider : IProvider { fun showRegulationTestDialog(context: Context, confirm: () -> Unit, cancel: () -> Unit) + + fun showWaitDialog(context: Context, string: String): Dialog + + fun showForceDialog(context: Context, title: String, message: CharSequence, positive: String, negative: String, confirm: () -> Unit, cancel: () -> Unit) + + fun showUsageStatsDialog(context: Context, confirm: () -> Unit, cancel: () -> Unit) + + fun showNoticeDialog(context: Context, title: String, content: String, confirm: () -> Unit) + + fun showBindPhoneDialog(context: Context, confirm: () -> Unit): Dialog } \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IDirectProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IDirectProvider.kt index a861f68e94..589643b1c9 100644 --- a/module_core/src/main/java/com/gh/gamecenter/core/provider/IDirectProvider.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IDirectProvider.kt @@ -23,4 +23,8 @@ interface IDirectProvider : IProvider { fun directToExchangeCommodityPage(context: Context) fun directToLotteryParadisePage(context: Context) + + fun directDouyin(context: Context, userId: String) + + fun directToSuggestionFromDiagnosis(context: Context, diagnosis: String) } \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IHistoryHelperProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IHistoryHelperProvider.kt new file mode 100644 index 0000000000..d4e1e788fd --- /dev/null +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IHistoryHelperProvider.kt @@ -0,0 +1,7 @@ +package com.gh.gamecenter.core.provider + +import com.alibaba.android.arouter.facade.template.IProvider + +interface IHistoryHelperProvider : IProvider { + fun emptyDatabase() +} \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IMainProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IMainProvider.kt new file mode 100644 index 0000000000..867a78739c --- /dev/null +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IMainProvider.kt @@ -0,0 +1,9 @@ +package com.gh.gamecenter.core.provider + +import android.content.Context +import android.content.Intent +import com.alibaba.android.arouter.facade.template.IProvider + +interface IMainProvider : IProvider { + fun skipToMainActivity(context: Context, position: Int) +} \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IShellProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IShellProvider.kt new file mode 100644 index 0000000000..3eb5a9752d --- /dev/null +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IShellProvider.kt @@ -0,0 +1,10 @@ +package com.gh.gamecenter.core.provider + +import android.content.Context +import android.content.Intent +import android.os.Parcelable +import com.alibaba.android.arouter.facade.template.IProvider + +interface IShellProvider : IProvider { + fun getSwitchInstallMethodIntent(context: Context, extraParcelable: Parcelable?): Intent? +} \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IUpdateManagerProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IUpdateManagerProvider.kt new file mode 100644 index 0000000000..a84c93006d --- /dev/null +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IUpdateManagerProvider.kt @@ -0,0 +1,9 @@ +package com.gh.gamecenter.core.provider + +import android.content.Context +import android.os.Handler +import com.alibaba.android.arouter.facade.template.IProvider + +interface IUpdateManagerProvider: IProvider { + fun checkUpdate(context: Context, isAutoCheck: Boolean, handler: Handler) +} \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IUsageStatsHelperProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IUsageStatsHelperProvider.kt new file mode 100644 index 0000000000..2a97cc203b --- /dev/null +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IUsageStatsHelperProvider.kt @@ -0,0 +1,9 @@ +package com.gh.gamecenter.core.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.template.IProvider + +interface IUsageStatsHelperProvider : IProvider { + fun checkForPermission(): Boolean + fun skipToUsageStats(context: Context, requestCode: Int) +} \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IWebProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IWebProvider.kt index bedcb5ff3a..1d03a29b2d 100644 --- a/module_core/src/main/java/com/gh/gamecenter/core/provider/IWebProvider.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IWebProvider.kt @@ -8,4 +8,8 @@ interface IWebProvider : IProvider { fun getIntent(context: Context, url: String, autoCompletionTitle: Boolean): Intent? fun getWebIntent(context: Context, title: String, url: String): Intent? + + fun getBindWechatIntent(context: Context): Intent? + + fun getSecurityCertificationIntent(context: Context): Intent? } \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IWechatBindHelperProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IWechatBindHelperProvider.kt index f6db0e06d3..7fbf565b4e 100644 --- a/module_core/src/main/java/com/gh/gamecenter/core/provider/IWechatBindHelperProvider.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IWechatBindHelperProvider.kt @@ -3,5 +3,5 @@ package com.gh.gamecenter.core.provider import com.alibaba.android.arouter.facade.template.IProvider interface IWechatBindHelperProvider : IProvider { - fun getWechatConfig() + fun getWechatConfig(callback: (() -> Unit)? = null) } \ No newline at end of file diff --git a/module_energy/src/energy/java/com/gh/gamecenter/energy/provider/AppProviderImpl.kt b/module_energy/src/energy/java/com/gh/gamecenter/energy/provider/AppProviderImpl.kt index e205ace42f..dc0829ab1d 100644 --- a/module_energy/src/energy/java/com/gh/gamecenter/energy/provider/AppProviderImpl.kt +++ b/module_energy/src/energy/java/com/gh/gamecenter/energy/provider/AppProviderImpl.kt @@ -21,6 +21,10 @@ class AppProviderImpl : IAppProvider { return "" } + override fun refreshGid() { + // Do nothing + } + override fun getOaid(): String { return "" } @@ -29,6 +33,10 @@ class AppProviderImpl : IAppProvider { return "" } + override fun setChannel(channel: String) { + // Do nothing + } + override fun getUserAgent(): String { return "" } diff --git a/module_energy/src/energy/java/com/gh/gamecenter/energy/provider/ConfigProviderImpl.kt b/module_energy/src/energy/java/com/gh/gamecenter/energy/provider/ConfigProviderImpl.kt index 4118c38282..64c9aadaac 100644 --- a/module_energy/src/energy/java/com/gh/gamecenter/energy/provider/ConfigProviderImpl.kt +++ b/module_energy/src/energy/java/com/gh/gamecenter/energy/provider/ConfigProviderImpl.kt @@ -72,6 +72,10 @@ class ConfigProviderImpl : IConfigProvider { return BuildConfig.WEIBO_APPKEY } + override fun getNightModeSetting(): Boolean { + return false + } + override fun init(context: Context?) { // Do nothing } diff --git a/module_energy/src/energy/java/com/gh/gamecenter/energy/provider/DialogUtilsProviderImpl.kt b/module_energy/src/energy/java/com/gh/gamecenter/energy/provider/DialogUtilsProviderImpl.kt index efb1d9eb9c..3e7e8a3955 100644 --- a/module_energy/src/energy/java/com/gh/gamecenter/energy/provider/DialogUtilsProviderImpl.kt +++ b/module_energy/src/energy/java/com/gh/gamecenter/energy/provider/DialogUtilsProviderImpl.kt @@ -1,5 +1,6 @@ package com.gh.gamecenter.energy.provider +import android.app.Dialog import android.content.Context import com.alibaba.android.arouter.facade.annotation.Route import com.gh.gamecenter.common.constant.RouteConsts @@ -12,6 +13,41 @@ class DialogUtilsProviderImpl : IDialogUtilsProvider { ToastUtils.toast("调用->DialogUtilsProviderImpl.showRegulationTestDialog") } + override fun showWaitDialog(context: Context, string: String): Dialog { + ToastUtils.toast("调用->DialogUtilsProviderImpl.showWaitDialog") + return Dialog(context) + } + + override fun showForceDialog( + context: Context, + title: String, + message: CharSequence, + positive: String, + negative: String, + confirm: () -> Unit, + cancel: () -> Unit + ) { + ToastUtils.toast("调用->DialogUtilsProviderImpl.showForceDialog") + } + + override fun showUsageStatsDialog(context: Context, confirm: () -> Unit, cancel: () -> Unit) { + ToastUtils.toast("调用->DialogUtilsProviderImpl.showUsageStatsDialog") + } + + override fun showNoticeDialog( + context: Context, + title: String, + content: String, + confirm: () -> Unit + ) { + ToastUtils.toast("调用->DialogUtilsProviderImpl.showNoticeDialog") + } + + override fun showBindPhoneDialog(context: Context, confirm: () -> Unit): Dialog { + ToastUtils.toast("调用->DialogUtilsProviderImpl.showBindPhoneDialog") + return Dialog(context) + } + override fun init(context: Context?) { // Do nothing } diff --git a/module_energy/src/energy/java/com/gh/gamecenter/energy/provider/DirectProviderImpl.kt b/module_energy/src/energy/java/com/gh/gamecenter/energy/provider/DirectProviderImpl.kt index 68fad8ce04..93a1065513 100644 --- a/module_energy/src/energy/java/com/gh/gamecenter/energy/provider/DirectProviderImpl.kt +++ b/module_energy/src/energy/java/com/gh/gamecenter/energy/provider/DirectProviderImpl.kt @@ -49,6 +49,14 @@ class DirectProviderImpl : IDirectProvider { ToastUtils.toast("调用->DirectProviderImpl.directToLotteryParadisePage") } + override fun directDouyin(context: Context, userId: String) { + ToastUtils.toast("调用->DirectProviderImpl.directDouyin") + } + + override fun directToSuggestionFromDiagnosis(context: Context, diagnosis: String) { + ToastUtils.toast("调用->DirectProviderImpl.directToSuggestionFromDiagnosis") + } + override fun init(context: Context?) { // Do nothing } diff --git a/module_energy/src/energy/java/com/gh/gamecenter/energy/provider/WebProviderImpl.kt b/module_energy/src/energy/java/com/gh/gamecenter/energy/provider/WebProviderImpl.kt index efda786524..eb60b797b8 100644 --- a/module_energy/src/energy/java/com/gh/gamecenter/energy/provider/WebProviderImpl.kt +++ b/module_energy/src/energy/java/com/gh/gamecenter/energy/provider/WebProviderImpl.kt @@ -16,6 +16,14 @@ class WebProviderImpl : IWebProvider { return null } + override fun getBindWechatIntent(context: Context): Intent? { + return null + } + + override fun getSecurityCertificationIntent(context: Context): Intent? { + return null + } + override fun init(context: Context?) { // Do nothing } diff --git a/module_energy/src/energy/java/com/gh/gamecenter/energy/provider/WechatHelperProviderImpl.kt b/module_energy/src/energy/java/com/gh/gamecenter/energy/provider/WechatHelperProviderImpl.kt index 1548b9c80a..7f840ef709 100644 --- a/module_energy/src/energy/java/com/gh/gamecenter/energy/provider/WechatHelperProviderImpl.kt +++ b/module_energy/src/energy/java/com/gh/gamecenter/energy/provider/WechatHelperProviderImpl.kt @@ -7,7 +7,7 @@ import com.gh.gamecenter.core.provider.IWechatBindHelperProvider @Route(path = RouteConsts.provider.wechatHelper, name = "WechatHelper暴露服务") class WechatHelperProviderImpl : IWechatBindHelperProvider { - override fun getWechatConfig() { + override fun getWechatConfig(callback: (() -> Unit)?) { // Do nothing } diff --git a/module_login/src/main/java/com/gh/gamecenter/login/user/UserRepository.java b/module_login/src/main/java/com/gh/gamecenter/login/user/UserRepository.java index 4b4e90ece6..70adf29fd9 100644 --- a/module_login/src/main/java/com/gh/gamecenter/login/user/UserRepository.java +++ b/module_login/src/main/java/com/gh/gamecenter/login/user/UserRepository.java @@ -143,10 +143,14 @@ public class UserRepository { SPUtils.setString(Constants.SP_REGULATION_TEST_PASS_STATUS, ""); IReservationRepositoryProvider reservationRepository = (IReservationRepositoryProvider) ARouter.getInstance().build(RouteConsts.provider.reservationRepository).navigation(); - reservationRepository.clearReservations(); + if (reservationRepository != null) { + reservationRepository.clearReservations(); + } IGameSubstituteRepositoryProvider gameSubstituteRepository = (IGameSubstituteRepositoryProvider) ARouter.getInstance().build(RouteConsts.provider.gameSubstituteRepository).navigation(); - gameSubstituteRepository.updateSubstitutableGames(); + if (gameSubstituteRepository != null) { + gameSubstituteRepository.updateSubstitutableGames(); + } // 通知页面更新 EventBus.getDefault().post(new EBReuse(LOGOUT_TAG)); @@ -240,7 +244,7 @@ public class UserRepository { IGameSubstituteRepositoryProvider gameSubstituteRepository = (IGameSubstituteRepositoryProvider) ARouter.getInstance().build(RouteConsts.provider.gameSubstituteRepository).navigation(); gameSubstituteRepository.updateSubstitutableGames(); IWechatBindHelperProvider wechatBindHelper = (IWechatBindHelperProvider) ARouter.getInstance().build(RouteConsts.provider.wechatHelper).navigation(); - wechatBindHelper.getWechatConfig(); + wechatBindHelper.getWechatConfig(null); if (callback != null) { callback.onFirst(response); diff --git a/module_setting/.gitignore b/module_setting/.gitignore new file mode 100644 index 0000000000..42afabfd2a --- /dev/null +++ b/module_setting/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/module_setting/build.gradle b/module_setting/build.gradle new file mode 100644 index 0000000000..20cf274e8a --- /dev/null +++ b/module_setting/build.gradle @@ -0,0 +1,93 @@ +if (isRelease.toBoolean()) { + apply plugin: 'com.android.library' +} else { + apply plugin: 'com.android.application' +} +apply plugin: 'org.jetbrains.kotlin.android' +apply plugin: 'kotlin-kapt' +apply plugin: 'kotlin-parcelize' + +android { + compileSdkVersion rootProject.ext.compileSdkVersion + + defaultConfig { + if (!isRelease.toBoolean()) { + applicationId "com.gh.setting" + multiDexEnabled true + + buildConfigField "String", "API_HOST", "\"${API_HOST}\"" + } + minSdk rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion + versionCode rootProject.ext.versionCode + versionName rootProject.ext.versionName + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + sourceSets { + main { + if (isRelease.toBoolean()) { + manifest.srcFile 'src/main/AndroidManifest.xml' + java { + exclude 'manifest/**' + } + } else { + java { + srcDirs = ['src/main/java', "src/setting/java"] + } + manifest.srcFile 'src/main/manifest/AndroidManifest.xml' + } + } + } + + buildFeatures { + viewBinding true + } + + kapt { + arguments { + arg("AROUTER_MODULE_NAME", project.name) + } + } + + buildTypes { + debug { + if (!isRelease.toBoolean()) { + buildConfigField "String", "DEV_API_HOST", "\"${DEV_API_HOST}\"" + } + } + + release { + consumerProguardFiles 'proguard-rules.pro' + } + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = '1.8' + } +} + +dependencies { + implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs') + kapt "com.alibaba:arouter-compiler:$arouterVersion" + if (!isRelease.toBoolean()) { + implementation "androidx.multidex:multidex:${multiDex}" + } + + implementation(project(path: ":module_common")) { + exclude group: 'androidx.swiperefreshlayout' + } + implementation(project(path: ":module_login")) { + exclude group: 'androidx.swiperefreshlayout' + } + + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' +} \ No newline at end of file diff --git a/module_setting/proguard-rules.pro b/module_setting/proguard-rules.pro new file mode 100644 index 0000000000..5d7aedf5bf --- /dev/null +++ b/module_setting/proguard-rules.pro @@ -0,0 +1,29 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile + +-renamesourcefileattribute SourceFile +# Keep Attribute +-keepattributes *Annotation*,Signature,InnerClasses,EnclosingMethod,SourceFile,LineNumberTable + +### keep models +-keep class com.gh.gamecenter.setting.entity.* {*;} +-keep class com.gh.gamecenter.setting.retrofit.* {*;} \ No newline at end of file diff --git a/module_setting/src/androidTest/java/com/gh/gamecenter/setting/ExampleInstrumentedTest.kt b/module_setting/src/androidTest/java/com/gh/gamecenter/setting/ExampleInstrumentedTest.kt new file mode 100644 index 0000000000..faec418941 --- /dev/null +++ b/module_setting/src/androidTest/java/com/gh/gamecenter/setting/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package com.gh.gamecenter.setting + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("com.gh.gamecenter.setting", appContext.packageName) + } +} \ No newline at end of file diff --git a/module_setting/src/main/AndroidManifest.xml b/module_setting/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..4fd81e865c --- /dev/null +++ b/module_setting/src/main/AndroidManifest.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/module_setting/src/main/assets/lottie/switch_turnoff_dark.json b/module_setting/src/main/assets/lottie/switch_turnoff_dark.json new file mode 100644 index 0000000000..4e0290ccb4 --- /dev/null +++ b/module_setting/src/main/assets/lottie/switch_turnoff_dark.json @@ -0,0 +1 @@ +{"v":"5.9.1","fr":60,"ip":0,"op":36,"w":120,"h":66,"nm":"开关动画-关闭","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"按钮手柄","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.667,"y":0},"t":0,"s":[87,33,0],"to":[7.682,0,0],"ti":[-13.443,0,0]},{"i":{"x":0.333,"y":1},"o":{"x":0.333,"y":0},"t":18,"s":[31,33,0],"to":[2.306,0,0],"ti":[-1.318,0,0]},{"t":24,"s":[33,33,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[16,16],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"椭圆形","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"指示器-on","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.667],"y":[0]},"t":0,"s":[100]},{"t":18,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[33,33,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.667,0.667],"y":[0,0]},"t":0,"s":[6.5,6.5]},{"t":18,"s":[4.5,4.5]}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":40,"ix":4},"w":{"a":0,"k":1.5,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"椭圆形","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"指示器-off","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[87,33,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.667,0.667],"y":[0,0]},"t":0,"s":[1.5,4]},{"t":18,"s":[1.5,6]}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0.75,"ix":4},"nm":"矩形路径 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":20,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":90,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.667],"y":[0]},"t":0,"s":[0]},{"t":18,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"矩形","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"按钮背景","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[60,33,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,22],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":12,"ix":4},"nm":"矩形路径 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.667],"y":[0]},"t":0,"s":[0.156862750649,0.533333361149,0.878431379795,1]},{"t":18,"s":[1,1,1,1]}],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.667],"y":[0]},"t":0,"s":[100]},{"t":18,"s":[8]}],"ix":5},"r":1,"bm":0,"nm":"filling","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.118,0.006],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"矩形","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":37,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/module_setting/src/main/assets/lottie/switch_turnoff_light.json b/module_setting/src/main/assets/lottie/switch_turnoff_light.json new file mode 100644 index 0000000000..7b0d088767 --- /dev/null +++ b/module_setting/src/main/assets/lottie/switch_turnoff_light.json @@ -0,0 +1 @@ +{"v":"5.9.1","fr":60,"ip":0,"op":36,"w":120,"h":66,"nm":"开关动画-关闭","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"按钮手柄","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.667,"y":0},"t":0,"s":[87,33,0],"to":[7.682,0,0],"ti":[-13.443,0,0]},{"i":{"x":0.333,"y":1},"o":{"x":0.333,"y":0},"t":18,"s":[31,33,0],"to":[2.306,0,0],"ti":[-1.318,0,0]},{"t":24,"s":[33,33,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[16,16],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"椭圆形","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"指示器-on","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.667],"y":[0]},"t":0,"s":[100]},{"t":18,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[33,33,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.667,0.667],"y":[0,0]},"t":0,"s":[6.5,6.5]},{"t":18,"s":[4.5,4.5]}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":40,"ix":4},"w":{"a":0,"k":1.5,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"椭圆形","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"指示器-off","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[87,33,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.667,0.667],"y":[0,0]},"t":0,"s":[1.5,4]},{"t":18,"s":[1.5,6]}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0.75,"ix":4},"nm":"矩形路径 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":5,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":90,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.667],"y":[0]},"t":0,"s":[0]},{"t":18,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"矩形","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"按钮背景","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[60,33,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,22],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":12,"ix":4},"nm":"矩形路径 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.667],"y":[0]},"t":0,"s":[0.141176477075,0.588235318661,1,1]},{"t":18,"s":[0.933333337307,0.933333337307,0.933333337307,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"filling","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.118,0.006],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"矩形","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":37,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/module_setting/src/main/assets/lottie/switch_turnon_dark.json b/module_setting/src/main/assets/lottie/switch_turnon_dark.json new file mode 100644 index 0000000000..a897cea988 --- /dev/null +++ b/module_setting/src/main/assets/lottie/switch_turnon_dark.json @@ -0,0 +1 @@ +{"v":"5.9.1","fr":60,"ip":0,"op":36,"w":120,"h":66,"nm":"开关动画-打开","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"按钮手柄","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.667,"y":0},"t":0,"s":[33,33,0],"to":[7.682,0,0],"ti":[-13.443,0,0]},{"i":{"x":0.333,"y":1},"o":{"x":0.333,"y":0},"t":18,"s":[89,33,0],"to":[2.306,0,0],"ti":[-1.318,0,0]},{"t":24,"s":[87,33,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[16,16],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"椭圆形","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"指示器-on","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.667],"y":[0]},"t":0,"s":[0]},{"t":18,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[33,33,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.667,0.667],"y":[0,0]},"t":0,"s":[4.5,4.5]},{"t":18,"s":[6.5,6.5]}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":40,"ix":4},"w":{"a":0,"k":1.5,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"椭圆形","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"指示器-off","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[87,33,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.667,0.667],"y":[0,0]},"t":0,"s":[1.5,6]},{"t":18,"s":[1.5,4]}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0.75,"ix":4},"nm":"矩形路径 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":20,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":90,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.667],"y":[0]},"t":0,"s":[100]},{"t":18,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"矩形","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"按钮背景","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[60,33,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,22],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":12,"ix":4},"nm":"矩形路径 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.667],"y":[0]},"t":0,"s":[1,1,1,1]},{"t":18,"s":[0.156862750649,0.533333361149,0.878431379795,1]}],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.667],"y":[0]},"t":0,"s":[8]},{"t":18,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"filling","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.118,0.006],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"矩形","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":37,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/module_setting/src/main/assets/lottie/switch_turnon_light.json b/module_setting/src/main/assets/lottie/switch_turnon_light.json new file mode 100644 index 0000000000..31f139b617 --- /dev/null +++ b/module_setting/src/main/assets/lottie/switch_turnon_light.json @@ -0,0 +1 @@ +{"v":"5.9.1","fr":60,"ip":0,"op":36,"w":120,"h":66,"nm":"开关动画-打开","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"按钮手柄","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.667,"y":0},"t":0,"s":[33,33,0],"to":[7.682,0,0],"ti":[-13.443,0,0]},{"i":{"x":0.333,"y":1},"o":{"x":0.333,"y":0},"t":18,"s":[89,33,0],"to":[2.306,0,0],"ti":[-1.318,0,0]},{"t":24,"s":[87,33,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[16,16],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"椭圆形","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"指示器-on","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.667],"y":[0]},"t":0,"s":[0]},{"t":18,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[33,33,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.667,0.667],"y":[0,0]},"t":0,"s":[4.5,4.5]},{"t":18,"s":[6.5,6.5]}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":40,"ix":4},"w":{"a":0,"k":1.5,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"椭圆形","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"指示器-off","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[87,33,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.667,0.667],"y":[0,0]},"t":0,"s":[1.5,6]},{"t":18,"s":[1.5,4]}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0.75,"ix":4},"nm":"矩形路径 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":5,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":90,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.667],"y":[0]},"t":0,"s":[100]},{"t":18,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"矩形","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":37,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"按钮背景","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[60,33,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,22],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":12,"ix":4},"nm":"矩形路径 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.667],"y":[0]},"t":0,"s":[0.933332979679,0.933332979679,0.933332979679,1]},{"t":18,"s":[0.141176477075,0.588235318661,1,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"filling","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.118,0.006],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"矩形","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":37,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/module_setting/src/main/java/com/gh/gamecenter/setting/HaloApp.kt b/module_setting/src/main/java/com/gh/gamecenter/setting/HaloApp.kt new file mode 100644 index 0000000000..deecb33e68 --- /dev/null +++ b/module_setting/src/main/java/com/gh/gamecenter/setting/HaloApp.kt @@ -0,0 +1,44 @@ +package com.gh.gamecenter.setting + +import android.app.Application +import android.content.res.Configuration +import com.gh.gamecenter.core.iinterface.IApplication +import com.google.auto.service.AutoService + +@AutoService(IApplication::class) +class HaloApp : IApplication { + + override fun attachBaseContext() { + // Do nothing + } + + override fun onCreate(application: Application) { + mApp = application + } + + + override fun onLowMemory() { + // Do nothing + } + + override fun onTerminate() { + // Do nothing + } + + override fun onTrimMemory(level: Int) { + // Do nothing + } + + override fun onConfigurationChanged(newConfig: Configuration) { + // Do nothing + } + + companion object { + private lateinit var mApp: Application + + @JvmStatic + fun getInstance(): Application { + return mApp + } + } +} diff --git a/module_setting/src/main/java/com/gh/gamecenter/setting/entity/ConflictUserEntity.kt b/module_setting/src/main/java/com/gh/gamecenter/setting/entity/ConflictUserEntity.kt new file mode 100644 index 0000000000..b965f94e19 --- /dev/null +++ b/module_setting/src/main/java/com/gh/gamecenter/setting/entity/ConflictUserEntity.kt @@ -0,0 +1,23 @@ +package com.gh.gamecenter.setting.entity + +import android.os.Parcelable +import androidx.annotation.Keep +import com.gh.gamecenter.login.entity.Badge +import com.google.gson.annotations.SerializedName +import kotlinx.parcelize.Parcelize + +@Keep +@Parcelize +data class ConflictUserEntity( + val user: User? = null, + @SerializedName("register_type") + var registerType: String = "" +) : Parcelable + +@Parcelize +data class User( + @SerializedName("_id") + var id: String = "", + var name: String = "", + var icon: String = "", + var badge: Badge? = null) : Parcelable \ No newline at end of file diff --git a/module_setting/src/main/java/com/gh/gamecenter/setting/entity/WechatConfigEntity.kt b/module_setting/src/main/java/com/gh/gamecenter/setting/entity/WechatConfigEntity.kt new file mode 100644 index 0000000000..d64c71e22f --- /dev/null +++ b/module_setting/src/main/java/com/gh/gamecenter/setting/entity/WechatConfigEntity.kt @@ -0,0 +1,11 @@ +package com.gh.gamecenter.setting.entity + +import com.google.gson.annotations.SerializedName + +data class WechatConfigEntity( + var bind: Boolean = false,//用户是否绑定微信 + var follow: Boolean = false,//绑定的微信是否关注光环助手 + var notice: Boolean = false,//是否打开微信通知开关 + @SerializedName("nickname") + var nickName: String = "", +) \ No newline at end of file diff --git a/module_setting/src/main/java/com/gh/gamecenter/setting/retrofit/ApiService.kt b/module_setting/src/main/java/com/gh/gamecenter/setting/retrofit/ApiService.kt new file mode 100644 index 0000000000..cba3f580e9 --- /dev/null +++ b/module_setting/src/main/java/com/gh/gamecenter/setting/retrofit/ApiService.kt @@ -0,0 +1,26 @@ +package com.gh.gamecenter.setting.retrofit + +import io.reactivex.Single +import okhttp3.RequestBody +import okhttp3.ResponseBody +import retrofit2.http.Body +import retrofit2.http.Headers +import retrofit2.http.POST +import retrofit2.http.Query + +interface ApiService { + /** + * 绑定手机 + */ + @Headers("Content-Type: application/json", "Accept: application/json") + @POST("./mobile:bind") + fun bindPhone(@Query("step") step: Int, @Body body: RequestBody): Single + + /** + * 换绑手机 + */ + @Headers("Content-Type: application/json", "Accept: application/json") + @POST("./mobile:rebind") + fun reBindPhone(@Query("step") step: Int, @Body body: RequestBody): Single + +} \ No newline at end of file diff --git a/module_setting/src/main/java/com/gh/gamecenter/setting/retrofit/RetrofitManager.kt b/module_setting/src/main/java/com/gh/gamecenter/setting/retrofit/RetrofitManager.kt new file mode 100644 index 0000000000..38c32a4fa9 --- /dev/null +++ b/module_setting/src/main/java/com/gh/gamecenter/setting/retrofit/RetrofitManager.kt @@ -0,0 +1,19 @@ +package com.gh.gamecenter.setting.retrofit + +import com.gh.gamecenter.common.retrofit.BaseRetrofitManager +import com.gh.gamecenter.common.utils.EnvHelper.getHost +import com.gh.gamecenter.core.utils.SingletonHolder +import com.gh.gamecenter.setting.HaloApp + +class RetrofitManager private constructor(): BaseRetrofitManager() { + + val api: ApiService + + init { + val context = HaloApp.getInstance().applicationContext + val okHttpNormalConfig = getOkHttpConfig(context, 0, 2) + api = provideService(okHttpNormalConfig, getHost(), ApiService::class.java) + } + + companion object: SingletonHolder(::RetrofitManager) +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/AboutActivity.java b/module_setting/src/main/java/com/gh/gamecenter/setting/view/AboutActivity.java similarity index 94% rename from app/src/main/java/com/gh/gamecenter/AboutActivity.java rename to module_setting/src/main/java/com/gh/gamecenter/setting/view/AboutActivity.java index 23fead2e18..542aff3977 100644 --- a/app/src/main/java/com/gh/gamecenter/AboutActivity.java +++ b/module_setting/src/main/java/com/gh/gamecenter/setting/view/AboutActivity.java @@ -1,4 +1,4 @@ -package com.gh.gamecenter; +package com.gh.gamecenter.setting.view; import android.content.Context; import android.content.Intent; @@ -11,7 +11,7 @@ import com.gh.gamecenter.common.base.activity.ToolBarActivity; import com.gh.gamecenter.common.constant.EntranceConsts; import com.gh.gamecenter.common.constant.RouteConsts; import com.gh.gamecenter.common.utils.ExtensionsKt; -import com.halo.assistant.fragment.AboutFragment; +import com.gh.gamecenter.setting.R; /** * Created by khy on 2017/2/28. @@ -42,4 +42,4 @@ public class AboutActivity extends ToolBarActivity { super.onDarkModeChanged(); ExtensionsKt.updateStatusBarColor(this, R.color.background_white, R.color.background_white); } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/halo/assistant/fragment/AboutFragment.kt b/module_setting/src/main/java/com/gh/gamecenter/setting/view/AboutFragment.kt similarity index 67% rename from app/src/main/java/com/halo/assistant/fragment/AboutFragment.kt rename to module_setting/src/main/java/com/gh/gamecenter/setting/view/AboutFragment.kt index b755bc8c1f..eae89e765d 100644 --- a/app/src/main/java/com/halo/assistant/fragment/AboutFragment.kt +++ b/module_setting/src/main/java/com/gh/gamecenter/setting/view/AboutFragment.kt @@ -1,4 +1,4 @@ -package com.halo.assistant.fragment +package com.gh.gamecenter.setting.view import android.annotation.SuppressLint import android.app.Activity @@ -11,24 +11,21 @@ import android.preference.PreferenceManager import android.text.TextUtils import android.view.View import androidx.core.content.ContextCompat -import com.gh.common.util.* -import com.gh.gamecenter.R -import com.gh.gamecenter.WebActivity +import com.alibaba.android.arouter.launcher.ARouter import com.gh.gamecenter.common.base.fragment.ToolbarFragment import com.gh.gamecenter.common.constant.Constants import com.gh.gamecenter.common.constant.EntranceConsts -import com.gh.gamecenter.common.utils.* -import com.gh.gamecenter.core.utils.MtaHelper.onEvent -import com.gh.gamecenter.core.utils.SPUtils -import com.gh.gamecenter.core.utils.StringUtils -import com.gh.gamecenter.core.utils.TimeUtils.getFormatTime -import com.gh.gamecenter.core.utils.ToastUtils -import com.gh.gamecenter.databinding.FragmentAboutBinding -import com.gh.gamecenter.manager.UpdateManager -import com.halo.assistant.HaloApp +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.common.utils.PackageFlavorHelper +import com.gh.gamecenter.common.utils.copyTextAndToast +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.core.provider.* +import com.gh.gamecenter.core.utils.* +import com.gh.gamecenter.setting.R +import com.gh.gamecenter.setting.databinding.FragmentAboutBinding import java.util.* - class AboutFragment : ToolbarFragment() { private lateinit var mBinding: FragmentAboutBinding @@ -64,15 +61,16 @@ class AboutFragment : ToolbarFragment() { val serverTime = PreferenceManager.getDefaultSharedPreferences(requireContext()) .getLong("server_time", 1587693163L) - val year = getFormatTime(serverTime, "yyyy") + val year = TimeUtils.getFormatTime(serverTime, "yyyy") mBinding.copyrightTv.text = getString(R.string.copyright_hint, year) if (arguments != null && requireArguments().getBoolean(EntranceConsts.KEY_VERSION_UPDATE)) { - UpdateManager.getInstance(context).checkUpdate(false, mBaseHandler) // 检查更新 + val updateManager = ARouter.getInstance().build(RouteConsts.provider.updateManager).navigation() as? IUpdateManagerProvider + updateManager?.checkUpdate(requireContext(), false, mBaseHandler) // 检查更新 } mBinding.aboutGhIcon.setOnLongClickListener { - onEvent("我的光环_设置", "关于光环", "图标长按") + MtaHelper.onEvent("我的光环_设置", "关于光环", "图标长按") if (PackageFlavorHelper.IS_TEST_FLAVOR) { DialogHelper.showDialog( requireContext(), @@ -88,7 +86,8 @@ class AboutFragment : ToolbarFragment() { }, extraConfig = DialogHelper.Config(centerTitle = true, centerContent = true) ) } else { - toast(HaloApp.getInstance().channel) + val appProvider = ARouter.getInstance().build(RouteConsts.provider.app).navigation() as? IAppProvider + toast(appProvider?.getChannel()) } false } @@ -97,14 +96,18 @@ class AboutFragment : ToolbarFragment() { @SuppressLint("SetTextI18n") private fun initView() { - mBinding.aboutTvVersion.text = "V" + PackageUtils.getGhVersionName() + val packageUtils = ARouter.getInstance().build(RouteConsts.provider.packageUtils).navigation() as? IPackageUtilsProvider + val webActivity = ARouter.getInstance().build(RouteConsts.provider.webActivity).navigation() as? IWebProvider + + mBinding.aboutTvVersion.text = "V" + packageUtils?.getGhVersionName() if (PackageFlavorHelper.IS_TEST_FLAVOR == true) { var channel = SPUtils.getString(Constants.SP_TEST_FLAVOR_CHANNEL) if (channel == null || TextUtils.isEmpty(channel)) { - channel = HaloApp.getInstance().channel + val appProvider = ARouter.getInstance().build(RouteConsts.provider.app).navigation() as? IAppProvider + channel = appProvider?.getChannel() ?: "" } - mBinding.aboutTvVersion.text = "V" + PackageUtils.getGhVersionName() + "($channel)" + mBinding.aboutTvVersion.text = "V" + packageUtils?.getGhVersionName() + "($channel)" } mBinding.updateItem.run { @@ -112,17 +115,18 @@ class AboutFragment : ToolbarFragment() { contentTv.text = "" contentTv.visibility = View.VISIBLE root.setOnClickListener { - onEvent("我的光环_设置", "关于光环", "版本更新") - UpdateManager.getInstance(context).checkUpdate(false, mBaseHandler) // 检查更新 + MtaHelper.onEvent("我的光环_设置", "关于光环", "版本更新") + val updateManager = ARouter.getInstance().build(RouteConsts.provider.updateManager).navigation() as? IUpdateManagerProvider + updateManager?.checkUpdate(requireContext(), false, mBaseHandler) // 检查更新 } } mBinding.userProtocolItem.run { titleTv.text = "用户协议" textMoreTv.visibility = View.VISIBLE root.setOnClickListener { - onEvent("我的光环_设置", "关于光环", "用户协议") + MtaHelper.onEvent("我的光环_设置", "关于光环", "用户协议") startActivity( - WebActivity.getWebIntent( + webActivity?.getWebIntent( requireContext(), requireContext().getString(R.string.disclaimer_title), requireContext().getString(R.string.disclaimer_url) @@ -134,9 +138,9 @@ class AboutFragment : ToolbarFragment() { titleTv.text = "隐私政策" textMoreTv.visibility = View.VISIBLE root.setOnClickListener { - onEvent("我的光环_设置", "关于光环", "隐私政策") + MtaHelper.onEvent("我的光环_设置", "关于光环", "隐私政策") startActivity( - WebActivity.getWebIntent( + webActivity?.getWebIntent( requireContext(), requireContext().getString(R.string.privacy_policy_title), requireContext().getString(R.string.privacy_policy_url) @@ -149,17 +153,18 @@ class AboutFragment : ToolbarFragment() { textMoreTv.text = "光环助手APP" textMoreTv.visibility = View.VISIBLE root.setOnClickListener { - onEvent("我的光环_设置", "关于光环", "抖音") + MtaHelper.onEvent("我的光环_设置", "关于光环", "抖音") val url = getString(R.string.gh_douyin_url) url.copyTextAndToast(String.format(Locale.CHINA, "已成功复制%s ,打开抖音可直达", url)) - DirectUtils.directDouyin(requireContext(), "1402577827140941") + val directUtils = ARouter.getInstance().build(RouteConsts.provider.directUtils).navigation() as? IDirectProvider + directUtils?.directDouyin(requireContext(), "1402577827140941") } } mBinding.aboutBottom.setOnLongClickListener { - onEvent("我的光环_设置", "关于光环", "底部长按") + MtaHelper.onEvent("我的光环_设置", "关于光环", "底部长按") if (context == null) return@setOnLongClickListener true if (context is Activity && (context as Activity).isFinishing) return@setOnLongClickListener true - startActivity(WebActivity.getSecurityCertificationIntent(requireContext())) + startActivity(webActivity?.getSecurityCertificationIntent(requireContext())) true } mBinding.aboutTvVersion.setOnLongClickListener { diff --git a/app/src/main/java/com/gh/gamecenter/setting/GameDownloadSettingActivity.kt b/module_setting/src/main/java/com/gh/gamecenter/setting/view/GameDownloadSettingActivity.kt similarity index 94% rename from app/src/main/java/com/gh/gamecenter/setting/GameDownloadSettingActivity.kt rename to module_setting/src/main/java/com/gh/gamecenter/setting/view/GameDownloadSettingActivity.kt index 7715680fc2..314eb8bbf1 100644 --- a/app/src/main/java/com/gh/gamecenter/setting/GameDownloadSettingActivity.kt +++ b/module_setting/src/main/java/com/gh/gamecenter/setting/view/GameDownloadSettingActivity.kt @@ -1,12 +1,12 @@ -package com.gh.gamecenter.setting +package com.gh.gamecenter.setting.view import android.content.Context import android.content.Intent import android.os.Bundle import com.gh.gamecenter.common.base.activity.ToolBarActivity -import com.gh.gamecenter.R import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.common.utils.updateStatusBarColor +import com.gh.gamecenter.setting.R class GameDownloadSettingActivity : ToolBarActivity() { diff --git a/app/src/main/java/com/gh/gamecenter/setting/GameDownloadSettingFragment.kt b/module_setting/src/main/java/com/gh/gamecenter/setting/view/GameDownloadSettingFragment.kt similarity index 71% rename from app/src/main/java/com/gh/gamecenter/setting/GameDownloadSettingFragment.kt rename to module_setting/src/main/java/com/gh/gamecenter/setting/view/GameDownloadSettingFragment.kt index 4d0ca72e2b..681a688ee8 100644 --- a/app/src/main/java/com/gh/gamecenter/setting/GameDownloadSettingFragment.kt +++ b/module_setting/src/main/java/com/gh/gamecenter/setting/view/GameDownloadSettingFragment.kt @@ -1,4 +1,4 @@ -package com.gh.gamecenter.setting +package com.gh.gamecenter.setting.view import android.content.Intent import android.net.Uri @@ -8,16 +8,19 @@ import android.os.Environment import android.text.TextUtils import android.view.View import androidx.core.content.FileProvider -import com.gh.common.util.PackageUtils -import com.gh.gamecenter.BuildConfig -import com.gh.gamecenter.CleanApkActivity -import com.gh.gamecenter.R +import com.alibaba.android.arouter.launcher.ARouter +import com.gh.gamecenter.common.base.activity.ToolBarActivity import com.gh.gamecenter.common.base.fragment.ToolbarFragment +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.constant.RouteConsts import com.gh.gamecenter.common.utils.setSwitchAnimation import com.gh.gamecenter.common.utils.toColor -import com.gh.gamecenter.core.utils.MtaHelper.onEvent +import com.gh.gamecenter.core.provider.IBuildConfigProvider +import com.gh.gamecenter.core.provider.IPackageUtilsProvider +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.core.utils.SPUtils -import com.gh.gamecenter.databinding.FragmentGameDownloadSettingBinding +import com.gh.gamecenter.setting.R +import com.gh.gamecenter.setting.databinding.FragmentGameDownloadSettingBinding import java.io.File class GameDownloadSettingFragment : ToolbarFragment() { @@ -42,8 +45,8 @@ class GameDownloadSettingFragment : ToolbarFragment() { root.setOnClickListener { if (switchLottie.isAnimating) return@setOnClickListener val status = SPUtils.getBoolean(AUTO_INSTALL_SP_KEY, true) - onEvent("我的光环_设置", "设置功能", "下载完成自动安装游戏") - onEvent("我的光环_设置", "自动安装游戏", if (status) "关闭" else "打开") + MtaHelper.onEvent("我的光环_设置", "设置功能", "下载完成自动安装游戏") + MtaHelper.onEvent("我的光环_设置", "自动安装游戏", if (status) "关闭" else "打开") switchLottie.setSwitchAnimation(status) switchLottie.playAnimation() SPUtils.setBoolean(AUTO_INSTALL_SP_KEY, !status) @@ -55,8 +58,8 @@ class GameDownloadSettingFragment : ToolbarFragment() { root.setOnClickListener { if (switchLottie.isAnimating) return@setOnClickListener val status = SPUtils.getBoolean(CONCERN_GAME_SP_KEY, true) - onEvent("我的光环_设置", "设置功能", "安装完成自动关注游戏") - onEvent("我的光环_设置", "自动关注游戏", if (status) "关闭" else "打开") + MtaHelper.onEvent("我的光环_设置", "设置功能", "安装完成自动关注游戏") + MtaHelper.onEvent("我的光环_设置", "自动关注游戏", if (status) "关闭" else "打开") switchLottie.setSwitchAnimation(status) switchLottie.playAnimation() SPUtils.setBoolean(CONCERN_GAME_SP_KEY, !status) @@ -78,7 +81,7 @@ class GameDownloadSettingFragment : ToolbarFragment() { contentTv.text = getString(R.string.setting_download_path_des) contentTv.visibility = View.VISIBLE root.setOnClickListener { - onEvent("我的光环_设置", "设置功能", "游戏下载目录") + MtaHelper.onEvent("我的光环_设置", "设置功能", "游戏下载目录") if (TextUtils.isEmpty(dirPath)) dirPath = Environment.getExternalStorageDirectory().path + "/gh-files" startFilePath(dirPath) } @@ -88,7 +91,7 @@ class GameDownloadSettingFragment : ToolbarFragment() { contentTv.text = getString(R.string.setting_pic_path_des) contentTv.visibility = View.VISIBLE root.setOnClickListener { - onEvent("我的光环_设置", "设置功能", "图片保存目录") + MtaHelper.onEvent("我的光环_设置", "设置功能", "图片保存目录") if (TextUtils.isEmpty(dirPath)) dirPath = Environment.getExternalStorageDirectory().path + "/pictures/ghzhushou" startFilePath(dirPath) @@ -98,8 +101,13 @@ class GameDownloadSettingFragment : ToolbarFragment() { titleTv.text = getString(R.string.setting_clean_package) textMoreTv.visibility = View.VISIBLE root.setOnClickListener { - onEvent("我的光环_设置", "设置功能", "安装包清理") - startActivity(CleanApkActivity.getIntent(requireContext())) + MtaHelper.onEvent("我的光环_设置", "设置功能", "安装包清理") + ARouter.getInstance().build(RouteConsts.activity.cleanApkActivity) + .withString(ToolBarActivity.NORMAL_FRAGMENT_NAME, "com.halo.assistant.fragment.ApkCleanerFragment") + .withBundle( + ToolBarActivity.NORMAL_FRAGMENT_BUNDLE, + Bundle().apply { putBoolean(EntranceConsts.KEY_IS_CHOOSE_APK, false) }) + .navigation() } } mBinding?.run { @@ -112,7 +120,9 @@ class GameDownloadSettingFragment : ToolbarFragment() { private fun startFilePath(dirPath: String) { val intent = Intent(Intent.ACTION_GET_CONTENT) val uri = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - FileProvider.getUriForFile(requireContext(), BuildConfig.APPLICATION_ID, File(dirPath)) + val buildConfig = + ARouter.getInstance().build(RouteConsts.provider.buildConfig).navigation() as? IBuildConfigProvider + FileProvider.getUriForFile(requireContext(), buildConfig?.getApplicationId() ?: "", File(dirPath)) } else { Uri.fromFile(File(dirPath)) } @@ -144,7 +154,9 @@ class GameDownloadSettingFragment : ToolbarFragment() { @JvmStatic fun getTrafficDownloadHintKey(): String { - return PackageUtils.getGhVersionName() + "traffic_download_hint" + val packageUtils = + ARouter.getInstance().build(RouteConsts.provider.packageUtils).navigation() as? IPackageUtilsProvider + return packageUtils?.getGhVersionName() + "traffic_download_hint" } } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/NetworkDiagnosisActivity.kt b/module_setting/src/main/java/com/gh/gamecenter/setting/view/NetworkDiagnosisActivity.kt similarity index 93% rename from app/src/main/java/com/gh/gamecenter/NetworkDiagnosisActivity.kt rename to module_setting/src/main/java/com/gh/gamecenter/setting/view/NetworkDiagnosisActivity.kt index 917172306e..04ffee3f01 100644 --- a/app/src/main/java/com/gh/gamecenter/NetworkDiagnosisActivity.kt +++ b/module_setting/src/main/java/com/gh/gamecenter/setting/view/NetworkDiagnosisActivity.kt @@ -1,4 +1,4 @@ -package com.gh.gamecenter +package com.gh.gamecenter.setting.view import android.annotation.SuppressLint import android.graphics.Bitmap @@ -17,12 +17,16 @@ import android.webkit.WebView import android.webkit.WebViewClient import android.widget.ScrollView import android.widget.TextView +import com.alibaba.android.arouter.launcher.ARouter import com.gh.gamecenter.common.base.activity.ToolBarActivity -import com.gh.common.util.* -import com.gh.gamecenter.common.utils.DialogHelper -import com.gh.gamecenter.common.utils.tryCatchInRelease -import com.gh.gamecenter.common.utils.DeviceUtils +import com.gh.gamecenter.common.constant.RouteConsts import com.gh.gamecenter.common.retrofit.Response +import com.gh.gamecenter.common.utils.DeviceUtils +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.common.utils.copyTextAndToast +import com.gh.gamecenter.common.utils.tryCatchInRelease +import com.gh.gamecenter.core.provider.IDirectProvider +import com.gh.gamecenter.setting.R import io.reactivex.Observable import io.reactivex.ObservableOnSubscribe import io.reactivex.android.schedulers.AndroidSchedulers @@ -235,9 +239,11 @@ class NetworkDiagnosisActivity : ToolBarActivity() { mSuggestBtn.run { visibility = View.VISIBLE setOnClickListener { - DirectUtils.directToSuggestion( - context = this@NetworkDiagnosisActivity, - diagnosis = builder.toString().replace(mSuccessHint, "") + val directUtils = ARouter.getInstance().build(RouteConsts.provider.directUtils) + .navigation() as? IDirectProvider + directUtils?.directToSuggestionFromDiagnosis( + this@NetworkDiagnosisActivity, + builder.toString().replace(mSuccessHint, "") ) } } @@ -250,7 +256,7 @@ class NetworkDiagnosisActivity : ToolBarActivity() { } override fun onClick(widget: View) { - CommentUtils.copyText(builder.toString().replace(mSuccessHint, ""), applicationContext) + builder.toString().replace(mSuccessHint, "").copyTextAndToast("复制成功") } }, builder.length - mSuccessHint.length, builder.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) diff --git a/app/src/main/java/com/gh/gamecenter/SettingActivity.kt b/module_setting/src/main/java/com/gh/gamecenter/setting/view/SettingActivity.kt similarity index 84% rename from app/src/main/java/com/gh/gamecenter/SettingActivity.kt rename to module_setting/src/main/java/com/gh/gamecenter/setting/view/SettingActivity.kt index 9e82b78ab8..2c4824d1cf 100644 --- a/app/src/main/java/com/gh/gamecenter/SettingActivity.kt +++ b/module_setting/src/main/java/com/gh/gamecenter/setting/view/SettingActivity.kt @@ -1,4 +1,4 @@ -package com.gh.gamecenter +package com.gh.gamecenter.setting.view import android.content.Context import android.content.Intent @@ -6,7 +6,7 @@ import android.os.Bundle import com.gh.gamecenter.common.base.activity.ToolBarActivity import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.common.utils.updateStatusBarColor -import com.halo.assistant.fragment.SettingsFragment +import com.gh.gamecenter.setting.R class SettingActivity : ToolBarActivity() { override fun onCreate(savedInstanceState: Bundle?) { @@ -21,6 +21,10 @@ class SettingActivity : ToolBarActivity() { updateStatusBarColor(R.color.background_white, R.color.background_white) } + override fun provideNormalIntent(): Intent { + return getTargetIntent(this, SettingActivity::class.java, SettingsFragment::class.java) + } + companion object { fun getIntent(context: Context, isUpdate: Boolean, entrance: String): Intent { return getTargetIntent( diff --git a/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.kt b/module_setting/src/main/java/com/gh/gamecenter/setting/view/SettingsFragment.kt similarity index 74% rename from app/src/main/java/com/halo/assistant/fragment/SettingsFragment.kt rename to module_setting/src/main/java/com/gh/gamecenter/setting/view/SettingsFragment.kt index b4f06b1eca..3ce9828a30 100644 --- a/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.kt +++ b/module_setting/src/main/java/com/gh/gamecenter/setting/view/SettingsFragment.kt @@ -1,4 +1,4 @@ -package com.halo.assistant.fragment +package com.gh.gamecenter.setting.view import android.annotation.SuppressLint import android.app.AlertDialog @@ -18,41 +18,33 @@ import android.widget.TextView import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModelProvider -import com.gh.common.constant.Config -import com.gh.common.history.HistoryHelper -import com.gh.common.util.* -import com.gh.common.util.DialogUtils -import com.gh.common.util.NewLogUtils -import com.gh.download.server.BrowserInstallHelper -import com.gh.gamecenter.* +import com.alibaba.android.arouter.launcher.ARouter import com.gh.gamecenter.common.BuildConfig +import com.gh.gamecenter.common.base.activity.BaseActivity import com.gh.gamecenter.common.base.fragment.ToolbarFragment -import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.constant.Config import com.gh.gamecenter.common.constant.Constants import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.constant.RouteConsts import com.gh.gamecenter.common.eventbus.EBReuse import com.gh.gamecenter.common.retrofit.ApiResponse import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.provider.* import com.gh.gamecenter.core.runOnIoThread import com.gh.gamecenter.core.utils.DisplayUtils import com.gh.gamecenter.core.utils.EmptyCallback import com.gh.gamecenter.core.utils.GsonUtils import com.gh.gamecenter.core.utils.SPUtils -import com.gh.gamecenter.databinding.FragmentSettingBinding -import com.gh.gamecenter.energy.EnergyBridge -import com.gh.gamecenter.entity.WechatConfigEntity -import com.gh.gamecenter.fragment.MainWrapperFragment -import com.gh.gamecenter.game.upload.GameSubmissionActivity import com.gh.gamecenter.login.entity.UserInfoEntity import com.gh.gamecenter.login.user.UserManager import com.gh.gamecenter.login.user.UserRepository import com.gh.gamecenter.login.user.UserViewModel import com.gh.gamecenter.login.utils.LoginUtils -import com.gh.gamecenter.security.SecurityActivity -import com.gh.gamecenter.setting.GameDownloadSettingActivity -import com.gh.gamecenter.setting.VideoSettingActivity +import com.gh.gamecenter.setting.R +import com.gh.gamecenter.setting.databinding.FragmentSettingBinding +import com.gh.gamecenter.setting.entity.WechatConfigEntity +import com.gh.gamecenter.setting.view.security.SecurityActivity import com.gh.gid.GidHelper -import com.halo.assistant.HaloApp import com.lightgame.download.FileUtils import com.lightgame.utils.Utils import io.reactivex.Observable @@ -90,16 +82,18 @@ class SettingsFragment : ToolbarFragment() { mBinding.aboutItem.contentTv.setBackgroundResource(R.drawable.message_unread_hint) } else { // Jenkins 打的包附带个打包时间在版本后面 + val packageUtils = ARouter.getInstance().build(RouteConsts.provider.packageUtils).navigation() as? IPackageUtilsProvider if (BuildConfig.BUILD_TIME == 0L) { - mBinding.aboutItem.contentTv.text = "V" + PackageUtils.getGhVersionName() + mBinding.aboutItem.contentTv.text = "V" + packageUtils?.getGhVersionName() } else { mBinding.aboutItem.contentTv.text = - "V" + PackageUtils.getGhVersionName() + " " + BuildConfig.BUILD_TIME + "V" + packageUtils?.getGhVersionName() + " " + BuildConfig.BUILD_TIME } if (PackageFlavorHelper.IS_TEST_FLAVOR == true) { var channel = SPUtils.getString(Constants.SP_TEST_FLAVOR_CHANNEL) if (channel == null || TextUtils.isEmpty(channel)) { - channel = HaloApp.getInstance().channel + val appProvider = ARouter.getInstance().build(RouteConsts.provider.app).navigation() as? IAppProvider + channel = appProvider?.getChannel() ?: "" } mBinding.aboutItem.contentTv.text = "($channel)" } @@ -118,7 +112,8 @@ class SettingsFragment : ToolbarFragment() { Config.fixHideFunction() toast("修复成功") EventBus.getDefault().post(EBReuse("Refresh")) - MainActivity.skipToMainActivity(context, MainWrapperFragment.INDEX_HOME) + val mainActivity = ARouter.getInstance().build(RouteConsts.provider.mainActivity).navigation() as? IMainProvider + mainActivity?.skipToMainActivity(requireContext(), 0) } } @@ -142,7 +137,8 @@ class SettingsFragment : ToolbarFragment() { mUserViewModel.loginObsUserinfo.observe(this) { response: ApiResponse? -> if (response != null && response.data != null) { - WechatBindHelper.getWechatConfig { + val wechatBindHelper = ARouter.getInstance().build(RouteConsts.provider.wechatHelper).navigation() as? IWechatBindHelperProvider + wechatBindHelper?.getWechatConfig { initWechatBindStatus() } } else { @@ -181,9 +177,11 @@ class SettingsFragment : ToolbarFragment() { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP_MR1) { return } - if (UsageStatsHelper.checkForPermission() && SPUtils.getBoolean(UsageStatsHelper.USAGE_STATUS_SP_KEY, true)) { + val usageStatsHelper = ARouter.getInstance().build(RouteConsts.provider.usageStatsHelper).navigation() as? IUsageStatsHelperProvider + if (usageStatsHelper?.checkForPermission() == true && SPUtils.getBoolean(USAGE_STATUS_SP_KEY, true)) { mUsageStatus = true - EnergyBridge.postEnergyTask("open_game_time") + val energyTaskHelper = ARouter.getInstance().build(RouteConsts.provider.energyTask).navigation() as? IEnergyTaskProvider + energyTaskHelper?.postEnergyTask("open_game_time") } else { mUsageStatus = false } @@ -195,9 +193,7 @@ class SettingsFragment : ToolbarFragment() { titleTv.text = getString(R.string.setting_security) textMoreTv.visibility = View.VISIBLE root.setOnClickListener { - CheckLoginUtils.checkLogin( - context, "设置-账号与安全-请先登录" - ) { + ifLogin("设置-账号与安全-请先登录") { startActivityForResult( SecurityActivity.getIntent( requireContext(), @@ -209,7 +205,8 @@ class SettingsFragment : ToolbarFragment() { } } mBinding.systemDarkModeItem.run { - root.goneIf(!(Config.getNightModeSetting()?.setting ?: false)) { + val config = ARouter.getInstance().build(RouteConsts.provider.config).navigation() as? IConfigProvider + root.goneIf(!(config?.getNightModeSetting() ?: false)) { titleTv.text = getString(R.string.setting_system_dark_mode) switchLottie.visibility = View.VISIBLE switchLottie.setSwitchAnimation(DarkModeUtils.isFollowSystemDarkModeFromSp()) @@ -243,14 +240,14 @@ class SettingsFragment : ToolbarFragment() { titleTv.text = getString(R.string.setting_game_submission) textMoreTv.visibility = View.VISIBLE root.setOnClickListener { - CheckLoginUtils.checkLogin( - context, "设置-游戏投稿-请先登录" - ) { + ifLogin("设置-游戏投稿-请先登录") { PermissionHelper.checkStoragePermissionBeforeAction( requireContext(), object : EmptyCallback { override fun onCallback() { - startActivity(GameSubmissionActivity.getIntent(requireContext(), mEntrance, "游戏上传")) + ARouter.getInstance().build(RouteConsts.activity.gameSubmissionActivity) + .withString(EntranceConsts.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(mEntrance, "游戏上传")) + .navigation() } }) } @@ -265,28 +262,28 @@ class SettingsFragment : ToolbarFragment() { switchLottie.visibility = View.VISIBLE if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) { root.setOnClickListener { - if (UsageStatsHelper.checkForPermission()) { + val usageStatsHelper = ARouter.getInstance().build(RouteConsts.provider.usageStatsHelper).navigation() as? IUsageStatsHelperProvider + if (usageStatsHelper?.checkForPermission() == true) { DialogHelper.showDialog(requireContext(), "提示", "关闭后将无法统计游戏时长,确定要关闭吗?", "确定关闭", "暂不关闭", { - UsageStatsHelper.skipToUsageStats( + usageStatsHelper.skipToUsageStats( requireContext(), - UsageStatsHelper.USAGE_STATUS_REQUEST_CODE + USAGE_STATUS_REQUEST_CODE ) }, {}, DialogHelper.Config(centerContent = true, centerTitle = true) ) } else { - DialogUtils.showUsageStatsDialog( - requireContext(), object : ConfirmListener { - override fun onConfirm() { - UsageStatsHelper.skipToUsageStats( - requireContext(), - UsageStatsHelper.USAGE_STATUS_REQUEST_CODE - ) - } - }, null + val dialogUtils = ARouter.getInstance().build(RouteConsts.provider.dialogUtils).navigation() as? IDialogUtilsProvider + dialogUtils?.showUsageStatsDialog( + requireContext(), { + usageStatsHelper?.skipToUsageStats( + requireContext(), + USAGE_STATUS_REQUEST_CODE + ) + }, {} ) } } @@ -300,11 +297,12 @@ class SettingsFragment : ToolbarFragment() { val json = SPUtils.getString(Constants.SP_WECHAT_CONFIG) val entity = GsonUtils.fromJson(json, WechatConfigEntity::class.java) if (entity != null) { - NewLogUtils.logWechatRemindConfigClick(entity) + NewLogUtils.logWechatRemindConfigClick(entity.bind, entity.follow, entity.notice) } - requireContext().startActivity(WebActivity.getBindWechatIntent(requireContext())) + val webActivity = ARouter.getInstance().build(RouteConsts.provider.webActivity).navigation() as? IWebProvider + requireContext().startActivity(webActivity?.getBindWechatIntent(requireContext())) } else { - CheckLoginUtils.checkLogin(requireContext(), "我的光环_设置") {} + ifLogin("我的光环_设置") {} } } } @@ -318,7 +316,8 @@ class SettingsFragment : ToolbarFragment() { //这种方案适用于 API 26, 即8.0(含8.0)以上可以用 val notifyIntent = Intent() notifyIntent.action = Settings.ACTION_APP_NOTIFICATION_SETTINGS - notifyIntent.putExtra(Settings.EXTRA_APP_PACKAGE, com.gh.gamecenter.BuildConfig.APPLICATION_ID) + val buildConfig = ARouter.getInstance().build(RouteConsts.provider.buildConfig).navigation() as? IBuildConfigProvider + notifyIntent.putExtra(Settings.EXTRA_APP_PACKAGE, buildConfig?.getApplicationId()) startActivity(notifyIntent) } else { PermissionHelper.toPermissionSetting(requireActivity()) @@ -362,8 +361,10 @@ class SettingsFragment : ToolbarFragment() { DialogHelper.showCenterWarningDialog(requireContext(), "清除缓存", "确定要清除缓存吗?", object : EmptyCallback { override fun onCallback() { - loadingDialog = DialogUtils.showWaitDialog(context, "清除缓存中...") - HistoryHelper.emptyDatabase() + val dialogUtils = ARouter.getInstance().build(RouteConsts.provider.dialogUtils).navigation() as? IDialogUtilsProvider + loadingDialog = dialogUtils?.showWaitDialog(requireContext(), "清除缓存中...") + val historyHelper = ARouter.getInstance().build(RouteConsts.provider.historyHelper).navigation() as? IHistoryHelperProvider + historyHelper?.emptyDatabase() clearCache() } }) @@ -385,18 +386,17 @@ class SettingsFragment : ToolbarFragment() { } } mBinding.settingLogout.setOnClickListener { - DialogUtils.showForceDialog( - context, "退出登录", "退出账号即会回到游客状态,很多功能将无法使用(例如评论、客服消息),确定退出吗?", - "确定退出", "取消", object : ConfirmListener { - override fun onConfirm() { - loadingDialog = DialogUtils.showWaitDialog(context, "退出登录中...") - LoginUtils.logout { - UserRepository.getInstance().logout() - if (loadingDialog != null) loadingDialog!!.dismiss() - if (activity != null) requireActivity().finish() - } + val dialogUtils = ARouter.getInstance().build(RouteConsts.provider.dialogUtils).navigation() as? IDialogUtilsProvider + dialogUtils?.showForceDialog( + requireContext(), "退出登录", "退出账号即会回到游客状态,很多功能将无法使用(例如评论、客服消息),确定退出吗?", + "确定退出", "取消", { + loadingDialog = dialogUtils.showWaitDialog(requireContext(), "退出登录中...") + LoginUtils.logout { + UserRepository.getInstance().logout() + if (loadingDialog != null) loadingDialog!!.dismiss() + if (activity != null) requireActivity().finish() } - }, null + }, {} ) } } @@ -415,7 +415,8 @@ class SettingsFragment : ToolbarFragment() { val editText = EditText(context) var channel = SPUtils.getString(Constants.SP_TEST_FLAVOR_CHANNEL) if (channel == null || TextUtils.isEmpty(channel)) { - channel = HaloApp.getInstance().channel + val appProvider = ARouter.getInstance().build(RouteConsts.provider.app).navigation() as? IAppProvider + channel = appProvider?.getChannel() ?: "" SPUtils.setString(Constants.SP_TEST_FLAVOR_CHANNEL, channel) } editText.setText(channel, TextView.BufferType.EDITABLE) @@ -433,7 +434,8 @@ class SettingsFragment : ToolbarFragment() { inputDialog.setPositiveButton("确定") { _, _ -> if (!TextUtils.isEmpty(editText.text)) { SPUtils.setString(Constants.SP_TEST_FLAVOR_CHANNEL, editText.text.toString()) - HaloApp.getInstance().channel = editText.text.toString() + val appProvider = ARouter.getInstance().build(RouteConsts.provider.app).navigation() as? IAppProvider + appProvider?.setChannel(editText.text.toString()) } }.show() } @@ -473,9 +475,13 @@ class SettingsFragment : ToolbarFragment() { override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) - if (requestCode == UsageStatsHelper.USAGE_STATUS_REQUEST_CODE && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) { - if (UsageStatsHelper.checkForPermission()) EnergyBridge.postEnergyTask("open_game_time") - SPUtils.setBoolean(UsageStatsHelper.USAGE_STATUS_SP_KEY, UsageStatsHelper.checkForPermission()) + if (requestCode == USAGE_STATUS_REQUEST_CODE && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) { + val usageStatsHelper = ARouter.getInstance().build(RouteConsts.provider.usageStatsHelper).navigation() as? IUsageStatsHelperProvider + if (usageStatsHelper?.checkForPermission() == true) { + val energyTaskHelper = ARouter.getInstance().build(RouteConsts.provider.energyTask).navigation() as? IEnergyTaskProvider + energyTaskHelper?.postEnergyTask("open_game_time") + } + SPUtils.setBoolean(USAGE_STATUS_SP_KEY, usageStatsHelper?.checkForPermission() == true) initUsageStats() } @@ -498,21 +504,19 @@ class SettingsFragment : ToolbarFragment() { mBinding.notificationAuthorityItem.switchLottie.setSwitchAnimation(NotificationHelper.notificationIsEnable()) - if (BrowserInstallHelper.isUseBrowserToInstallEnabled()) { - if (BrowserInstallHelper.shouldUseBrowserToInstall()) { + val browserInstallHelper = ARouter.getInstance().build(RouteConsts.provider.browserInstallHelper).navigation() as? IBrowserInstallHelperProvider + if (browserInstallHelper?.isUseBrowserToInstallEnabled() == true) { + if (browserInstallHelper.shouldUseBrowserToInstall()) { mBinding.installMethodItem.textMoreTv.text = "浏览器安装" } else { mBinding.installMethodItem.textMoreTv.text = "助手安装" } mBinding.installMethodContainer.visibility = View.VISIBLE mBinding.installMethodItem.root.setOnClickListener { - val intent = ShellActivity.getIntent( - requireContext(), - ShellActivity.Type.SWITCH_INSTALL_METHOD, - null - ) + val shellActivity = ARouter.getInstance().build(RouteConsts.provider.shellActivity).navigation() as? IShellProvider + val intent = shellActivity?.getSwitchInstallMethodIntent(requireContext(), null) requireContext().startActivity(intent) - BrowserInstallHelper.logOrdinaryBrowserEvent(BrowserInstallHelper.Type.SWITCH_INSTALL_SETTING) + browserInstallHelper.logSwitchInstallSettingEvent() } } } @@ -587,7 +591,8 @@ class SettingsFragment : ToolbarFragment() { const val TRAFFIC_VIDEO_SP_KEY = "tranfficvideo" const val FONT_SIZE_SP_KEY = "fontsize" const val PERSONAL_RECOMMEND_SP_KEY = "personalrecommend" - + const val USAGE_STATUS_SP_KEY = "usage_status_sp_key" const val INSERT_MOBILE_CODE = 411 + const val USAGE_STATUS_REQUEST_CODE = 233 } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/setting/VideoSettingActivity.kt b/module_setting/src/main/java/com/gh/gamecenter/setting/view/VideoSettingActivity.kt similarity index 94% rename from app/src/main/java/com/gh/gamecenter/setting/VideoSettingActivity.kt rename to module_setting/src/main/java/com/gh/gamecenter/setting/view/VideoSettingActivity.kt index 6b0f3267c8..9e189ae0e6 100644 --- a/app/src/main/java/com/gh/gamecenter/setting/VideoSettingActivity.kt +++ b/module_setting/src/main/java/com/gh/gamecenter/setting/view/VideoSettingActivity.kt @@ -1,13 +1,13 @@ -package com.gh.gamecenter.setting +package com.gh.gamecenter.setting.view import android.content.Context import android.content.Intent import android.os.Bundle import android.view.View import com.gh.gamecenter.common.base.activity.ToolBarActivity -import com.gh.gamecenter.R import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.common.utils.updateStatusBarColor +import com.gh.gamecenter.setting.R class VideoSettingActivity : ToolBarActivity() { diff --git a/app/src/main/java/com/gh/gamecenter/setting/VideoSettingFragment.kt b/module_setting/src/main/java/com/gh/gamecenter/setting/view/VideoSettingFragment.kt similarity index 98% rename from app/src/main/java/com/gh/gamecenter/setting/VideoSettingFragment.kt rename to module_setting/src/main/java/com/gh/gamecenter/setting/view/VideoSettingFragment.kt index 032d7e2667..5d44a82a49 100644 --- a/app/src/main/java/com/gh/gamecenter/setting/VideoSettingFragment.kt +++ b/module_setting/src/main/java/com/gh/gamecenter/setting/view/VideoSettingFragment.kt @@ -1,14 +1,14 @@ -package com.gh.gamecenter.setting +package com.gh.gamecenter.setting.view import android.os.Bundle import android.view.View -import com.gh.gamecenter.R import com.gh.gamecenter.common.base.fragment.ToolbarFragment import com.gh.gamecenter.common.constant.Constants import com.gh.gamecenter.common.utils.setSwitchAnimation import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.core.utils.SPUtils -import com.gh.gamecenter.databinding.FragmentVideoSettingBinding +import com.gh.gamecenter.setting.R +import com.gh.gamecenter.setting.databinding.FragmentVideoSettingBinding class VideoSettingFragment : ToolbarFragment() { diff --git a/app/src/main/java/com/gh/gamecenter/security/BindPhoneActivity.kt b/module_setting/src/main/java/com/gh/gamecenter/setting/view/security/BindPhoneActivity.kt similarity index 94% rename from app/src/main/java/com/gh/gamecenter/security/BindPhoneActivity.kt rename to module_setting/src/main/java/com/gh/gamecenter/setting/view/security/BindPhoneActivity.kt index cffef17529..8ecfecdd37 100644 --- a/app/src/main/java/com/gh/gamecenter/security/BindPhoneActivity.kt +++ b/module_setting/src/main/java/com/gh/gamecenter/setting/view/security/BindPhoneActivity.kt @@ -1,15 +1,15 @@ -package com.gh.gamecenter.security +package com.gh.gamecenter.setting.view.security import android.content.Context import android.content.Intent import android.os.Bundle import com.alibaba.android.arouter.facade.annotation.Route import com.gh.gamecenter.common.base.activity.ToolBarActivity -import com.gh.gamecenter.R import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.common.constant.RouteConsts import com.gh.gamecenter.common.utils.updateStatusBarColor -import com.gh.gamecenter.entity.ConflictUserEntity +import com.gh.gamecenter.setting.R +import com.gh.gamecenter.setting.entity.ConflictUserEntity @Route(path = RouteConsts.activity.bindPhoneActivity) class BindPhoneActivity : ToolBarActivity() { diff --git a/app/src/main/java/com/gh/gamecenter/security/BindPhoneConflictFragment.kt b/module_setting/src/main/java/com/gh/gamecenter/setting/view/security/BindPhoneConflictFragment.kt similarity index 94% rename from app/src/main/java/com/gh/gamecenter/security/BindPhoneConflictFragment.kt rename to module_setting/src/main/java/com/gh/gamecenter/setting/view/security/BindPhoneConflictFragment.kt index 51bd051635..b6e6ecd5ed 100644 --- a/app/src/main/java/com/gh/gamecenter/security/BindPhoneConflictFragment.kt +++ b/module_setting/src/main/java/com/gh/gamecenter/setting/view/security/BindPhoneConflictFragment.kt @@ -1,18 +1,18 @@ -package com.gh.gamecenter.security +package com.gh.gamecenter.setting.view.security import android.annotation.SuppressLint import android.os.Bundle import android.view.View import android.view.ViewGroup import android.widget.PopupWindow -import com.gh.gamecenter.R -import com.gh.gamecenter.common.constant.EntranceConsts -import com.gh.gamecenter.common.utils.dip2px -import com.gh.gamecenter.common.utils.ImageUtils -import com.gh.gamecenter.databinding.FragmentBindPhoneConflictBinding -import com.gh.gamecenter.entity.ConflictUserEntity -import com.gh.gamecenter.login.user.UserManager import com.gh.gamecenter.common.base.fragment.ToolbarFragment +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.login.user.UserManager +import com.gh.gamecenter.setting.R +import com.gh.gamecenter.setting.databinding.FragmentBindPhoneConflictBinding +import com.gh.gamecenter.setting.entity.ConflictUserEntity class BindPhoneConflictFragment : ToolbarFragment() { diff --git a/app/src/main/java/com/gh/gamecenter/security/BindPhoneFragment.kt b/module_setting/src/main/java/com/gh/gamecenter/setting/view/security/BindPhoneFragment.kt similarity index 90% rename from app/src/main/java/com/gh/gamecenter/security/BindPhoneFragment.kt rename to module_setting/src/main/java/com/gh/gamecenter/setting/view/security/BindPhoneFragment.kt index 909fdb7308..993c07b540 100644 --- a/app/src/main/java/com/gh/gamecenter/security/BindPhoneFragment.kt +++ b/module_setting/src/main/java/com/gh/gamecenter/setting/view/security/BindPhoneFragment.kt @@ -1,4 +1,4 @@ -package com.gh.gamecenter.security +package com.gh.gamecenter.setting.view.security import android.app.Dialog import android.content.Intent @@ -6,19 +6,20 @@ import android.os.Bundle import android.os.Message import android.view.View import androidx.lifecycle.Observer -import com.gh.gamecenter.common.constant.Constants -import com.gh.common.util.DialogUtils -import com.gh.gamecenter.R +import com.alibaba.android.arouter.launcher.ARouter import com.gh.gamecenter.common.BuildConfig import com.gh.gamecenter.common.base.activity.ToolBarActivity -import com.gh.gamecenter.common.callback.ConfirmListener -import com.gh.gamecenter.common.constant.EntranceConsts -import com.gh.gamecenter.common.utils.* -import com.gh.gamecenter.core.utils.* -import com.gh.gamecenter.databinding.FragmentBindPhoneBinding -import com.gh.gamecenter.login.user.UserManager import com.gh.gamecenter.common.base.fragment.ToolbarFragment -import com.gh.gamecenter.energy.EnergyBridge +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.provider.IDialogUtilsProvider +import com.gh.gamecenter.core.provider.IEnergyTaskProvider +import com.gh.gamecenter.core.utils.* +import com.gh.gamecenter.login.user.UserManager +import com.gh.gamecenter.setting.R +import com.gh.gamecenter.setting.databinding.FragmentBindPhoneBinding import com.lightgame.utils.Utils class BindPhoneFragment : ToolbarFragment() { @@ -130,13 +131,15 @@ class BindPhoneFragment : ToolbarFragment() { mViewModel.finishLiveData.observe(viewLifecycleOwner, Observer { isSuccess -> if (isSuccess) { // 上报光能任务 - EnergyBridge.postEnergyTask("bind_mobile") + val energyTaskHelper = + ARouter.getInstance().build(RouteConsts.provider.energyTask).navigation() as? IEnergyTaskProvider + energyTaskHelper?.postEnergyTask("bind_mobile") // 已完成填写邀请码 val inviteCode = mBinding.bindPhoneInviteEt.text.toString().trim() if (inviteCode.isNotBlank()) { SPUtils.setBoolean(Constants.SP_HAS_COMPLETE_INVITE_CODE, true) - EnergyBridge.postInviteCodeTask(inviteCode, "mobile_binding", {}) + energyTaskHelper?.postInviteCodeTask(inviteCode, "mobile_binding") {} } // 更新本地用户已绑定手机的信息 @@ -241,15 +244,11 @@ class BindPhoneFragment : ToolbarFragment() { mBinding.bindPhoneEt.text.toString().trim { it <= ' ' }.replace(" ".toRegex(), "") // 更换手机号,当输入手机号和当前手机号相同则弹出提示 if (mChangePhone && phoneNum == oldPhoneNum) { - DialogUtils.showNoticeDialog( - requireContext(), - null, - getString(R.string.change_phone_same), - object : ConfirmListener { - override fun onConfirm() { - mBinding.bindPhoneEt.setText("") - } - }) + val dialogUtils = ARouter.getInstance().build(RouteConsts.provider.dialogUtils) + .navigation() as? IDialogUtilsProvider + dialogUtils?.showNoticeDialog(requireContext(), "", getString(R.string.change_phone_same)) { + mBinding.bindPhoneEt.setText("") + } return } @@ -289,11 +288,11 @@ class BindPhoneFragment : ToolbarFragment() { } private fun showBindPhoneDialog() { - mDialog = DialogUtils.showBindPhoneDialog(requireContext(), object : ConfirmListener { - override fun onConfirm() { - requireActivity().finish() - } - }) + val dialogUtils = + ARouter.getInstance().build(RouteConsts.provider.dialogUtils).navigation() as? IDialogUtilsProvider + mDialog = dialogUtils?.showBindPhoneDialog(requireContext()) { + requireActivity().finish() + } } override fun onStop() { diff --git a/app/src/main/java/com/gh/gamecenter/security/BindPhoneViewModel.kt b/module_setting/src/main/java/com/gh/gamecenter/setting/view/security/BindPhoneViewModel.kt similarity index 98% rename from app/src/main/java/com/gh/gamecenter/security/BindPhoneViewModel.kt rename to module_setting/src/main/java/com/gh/gamecenter/setting/view/security/BindPhoneViewModel.kt index 6a5b27dae1..f69e80a6f1 100644 --- a/app/src/main/java/com/gh/gamecenter/security/BindPhoneViewModel.kt +++ b/module_setting/src/main/java/com/gh/gamecenter/setting/view/security/BindPhoneViewModel.kt @@ -1,17 +1,17 @@ -package com.gh.gamecenter.security +package com.gh.gamecenter.setting.view.security import android.annotation.SuppressLint import android.app.Application import android.content.Context import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.common.utils.DeviceUtils import com.gh.gamecenter.core.utils.GsonUtils import com.gh.gamecenter.core.utils.ToastUtils -import com.gh.gamecenter.entity.ConflictUserEntity -import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.login.utils.LoginUtils -import com.gh.gamecenter.retrofit.RetrofitManager +import com.gh.gamecenter.setting.entity.ConflictUserEntity +import com.gh.gamecenter.setting.retrofit.RetrofitManager import com.lightgame.utils.Utils import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers diff --git a/app/src/main/java/com/gh/gamecenter/security/SecurityActivity.kt b/module_setting/src/main/java/com/gh/gamecenter/setting/view/security/SecurityActivity.kt similarity index 94% rename from app/src/main/java/com/gh/gamecenter/security/SecurityActivity.kt rename to module_setting/src/main/java/com/gh/gamecenter/setting/view/security/SecurityActivity.kt index 38f6b0434b..09b8c100b5 100644 --- a/app/src/main/java/com/gh/gamecenter/security/SecurityActivity.kt +++ b/module_setting/src/main/java/com/gh/gamecenter/setting/view/security/SecurityActivity.kt @@ -1,12 +1,12 @@ -package com.gh.gamecenter.security +package com.gh.gamecenter.setting.view.security import android.content.Context import android.content.Intent import android.os.Bundle import com.gh.gamecenter.common.base.activity.ToolBarActivity -import com.gh.gamecenter.R import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.common.utils.updateStatusBarColor +import com.gh.gamecenter.setting.R class SecurityActivity : ToolBarActivity() { diff --git a/app/src/main/java/com/gh/gamecenter/security/SecurityFragment.kt b/module_setting/src/main/java/com/gh/gamecenter/setting/view/security/SecurityFragment.kt similarity index 76% rename from app/src/main/java/com/gh/gamecenter/security/SecurityFragment.kt rename to module_setting/src/main/java/com/gh/gamecenter/setting/view/security/SecurityFragment.kt index 2e712fb218..d2b1fe883f 100644 --- a/app/src/main/java/com/gh/gamecenter/security/SecurityFragment.kt +++ b/module_setting/src/main/java/com/gh/gamecenter/setting/view/security/SecurityFragment.kt @@ -1,16 +1,19 @@ -package com.gh.gamecenter.security +package com.gh.gamecenter.setting.view.security import android.content.Intent import android.os.Bundle import android.view.View -import com.gh.gamecenter.common.constant.Constants -import com.gh.common.util.DirectUtils -import com.gh.gamecenter.common.utils.EnvHelper -import com.gh.gamecenter.R -import com.gh.gamecenter.databinding.FragmentSecurityBinding -import com.gh.gamecenter.common.eventbus.EBReuse -import com.gh.gamecenter.login.user.UserManager +import com.alibaba.android.arouter.launcher.ARouter import com.gh.gamecenter.common.base.fragment.ToolbarFragment +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.common.eventbus.EBReuse +import com.gh.gamecenter.common.utils.EnvHelper +import com.gh.gamecenter.core.provider.IDirectProvider +import com.gh.gamecenter.login.user.UserManager +import com.gh.gamecenter.setting.R +import com.gh.gamecenter.setting.databinding.FragmentSecurityBinding import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode @@ -40,8 +43,9 @@ class SecurityFragment : ToolbarFragment() { } private fun initView() { + val directUtils = ARouter.getInstance().build(RouteConsts.provider.directUtils).navigation() as? IDirectProvider mBinding.securityContact.setOnClickListener { - DirectUtils.directToQqConversation(requireContext(), "800177318") + directUtils?.directToQqConversation(requireContext(), "800177318") } if (arguments?.getString(DISPLAY_TYPE) == DisplayType.DEFAULT.value) { mBinding.registerWayItem.run { @@ -57,9 +61,9 @@ class SecurityFragment : ToolbarFragment() { textMoreTv.visibility = View.VISIBLE root.setOnClickListener { if (EnvHelper.isDevEnv) { - DirectUtils.directToWebView(requireContext(), Constants.LOGOUT_ADDRESS_DEV, mEntrance) + directUtils?.directToWebView(requireContext(), Constants.LOGOUT_ADDRESS_DEV, mEntrance) } else { - DirectUtils.directToWebView(requireContext(), Constants.LOGOUT_ADDRESS, mEntrance) + directUtils?.directToWebView(requireContext(), Constants.LOGOUT_ADDRESS, mEntrance) } } } @@ -70,17 +74,10 @@ class SecurityFragment : ToolbarFragment() { titleTv.text = getString(R.string.bind_phone_key) textMoreTv.visibility = View.VISIBLE root.setOnClickListener { - if (UserManager.getInstance().userInfoEntity?.loginMobile.isNullOrEmpty()) { - startActivityForResult( - BindPhoneActivity.getNormalIntent(requireContext(), false), - INSERT_MOBILE_CODE - ) - } else { - startActivityForResult( - BindPhoneActivity.getNormalIntent(requireContext(), true), - INSERT_MOBILE_CODE - ) - } + ARouter.getInstance().build(RouteConsts.activity.bindPhoneActivity) + .withBoolean(EntranceConsts.KEY_FROM_LOGIN, false) + .withBoolean(EntranceConsts.KEY_CHANGE_PHONE, !UserManager.getInstance().userInfoEntity?.loginMobile.isNullOrEmpty()) + .navigation(requireActivity(), INSERT_MOBILE_CODE) } } mBinding.safeCenterItem.run { diff --git a/module_setting/src/main/manifest/AndroidManifest.xml b/module_setting/src/main/manifest/AndroidManifest.xml new file mode 100644 index 0000000000..feb8fe33a2 --- /dev/null +++ b/module_setting/src/main/manifest/AndroidManifest.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/module_setting/src/main/res/drawable-night/icon_more.xml b/module_setting/src/main/res/drawable-night/icon_more.xml new file mode 100644 index 0000000000..e961c16f9d --- /dev/null +++ b/module_setting/src/main/res/drawable-night/icon_more.xml @@ -0,0 +1,13 @@ + + + diff --git a/app/src/main/res/drawable-xxhdpi/bg_doubt.webp b/module_setting/src/main/res/drawable-xxhdpi/bg_doubt.webp similarity index 100% rename from app/src/main/res/drawable-xxhdpi/bg_doubt.webp rename to module_setting/src/main/res/drawable-xxhdpi/bg_doubt.webp diff --git a/app/src/main/res/drawable-xxhdpi/icon_doubt.png b/module_setting/src/main/res/drawable-xxhdpi/icon_doubt.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/icon_doubt.png rename to module_setting/src/main/res/drawable-xxhdpi/icon_doubt.png diff --git a/app/src/main/res/drawable-xxhdpi/icon_doubt_gray.webp b/module_setting/src/main/res/drawable-xxhdpi/icon_doubt_gray.webp similarity index 100% rename from app/src/main/res/drawable-xxhdpi/icon_doubt_gray.webp rename to module_setting/src/main/res/drawable-xxhdpi/icon_doubt_gray.webp diff --git a/app/src/main/res/drawable-xxxhdpi/bg_doubt.webp b/module_setting/src/main/res/drawable-xxxhdpi/bg_doubt.webp similarity index 100% rename from app/src/main/res/drawable-xxxhdpi/bg_doubt.webp rename to module_setting/src/main/res/drawable-xxxhdpi/bg_doubt.webp diff --git a/module_setting/src/main/res/drawable-xxxhdpi/ic_setting_switch_off.webp b/module_setting/src/main/res/drawable-xxxhdpi/ic_setting_switch_off.webp new file mode 100644 index 0000000000..db59c3a9a2 Binary files /dev/null and b/module_setting/src/main/res/drawable-xxxhdpi/ic_setting_switch_off.webp differ diff --git a/module_setting/src/main/res/drawable-xxxhdpi/ic_setting_switch_on.webp b/module_setting/src/main/res/drawable-xxxhdpi/ic_setting_switch_on.webp new file mode 100644 index 0000000000..05d4f807fb Binary files /dev/null and b/module_setting/src/main/res/drawable-xxxhdpi/ic_setting_switch_on.webp differ diff --git a/app/src/main/res/drawable-xxxhdpi/icon_doubt.png b/module_setting/src/main/res/drawable-xxxhdpi/icon_doubt.png similarity index 100% rename from app/src/main/res/drawable-xxxhdpi/icon_doubt.png rename to module_setting/src/main/res/drawable-xxxhdpi/icon_doubt.png diff --git a/app/src/main/res/drawable-xxxhdpi/icon_doubt_gray.webp b/module_setting/src/main/res/drawable-xxxhdpi/icon_doubt_gray.webp similarity index 100% rename from app/src/main/res/drawable-xxxhdpi/icon_doubt_gray.webp rename to module_setting/src/main/res/drawable-xxxhdpi/icon_doubt_gray.webp diff --git a/module_setting/src/main/res/drawable/button_border_blue_oval.xml b/module_setting/src/main/res/drawable/button_border_blue_oval.xml new file mode 100644 index 0000000000..36a9716d72 --- /dev/null +++ b/module_setting/src/main/res/drawable/button_border_blue_oval.xml @@ -0,0 +1,13 @@ + + + + + + + + + + \ No newline at end of file diff --git a/module_setting/src/main/res/drawable/ic_selector_default.xml b/module_setting/src/main/res/drawable/ic_selector_default.xml new file mode 100644 index 0000000000..edc57afcbf --- /dev/null +++ b/module_setting/src/main/res/drawable/ic_selector_default.xml @@ -0,0 +1,11 @@ + + + diff --git a/module_setting/src/main/res/drawable/ic_selector_selected.xml b/module_setting/src/main/res/drawable/ic_selector_selected.xml new file mode 100644 index 0000000000..3a3a851d57 --- /dev/null +++ b/module_setting/src/main/res/drawable/ic_selector_selected.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/module_setting/src/main/res/drawable/icon_more.xml b/module_setting/src/main/res/drawable/icon_more.xml new file mode 100644 index 0000000000..5efd89f935 --- /dev/null +++ b/module_setting/src/main/res/drawable/icon_more.xml @@ -0,0 +1,13 @@ + + + diff --git a/module_setting/src/main/res/drawable/message_unread_hint.xml b/module_setting/src/main/res/drawable/message_unread_hint.xml new file mode 100644 index 0000000000..e85952fd0f --- /dev/null +++ b/module_setting/src/main/res/drawable/message_unread_hint.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/module_setting/src/main/res/drawable/oval_message_hint_bg.xml b/module_setting/src/main/res/drawable/oval_message_hint_bg.xml new file mode 100644 index 0000000000..e987c9e0f8 --- /dev/null +++ b/module_setting/src/main/res/drawable/oval_message_hint_bg.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/module_setting/src/main/res/drawable/selector_ic_setting_switch.xml b/module_setting/src/main/res/drawable/selector_ic_setting_switch.xml new file mode 100644 index 0000000000..03a4068394 --- /dev/null +++ b/module_setting/src/main/res/drawable/selector_ic_setting_switch.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_network_diagnosis.xml b/module_setting/src/main/res/layout/activity_network_diagnosis.xml similarity index 100% rename from app/src/main/res/layout/activity_network_diagnosis.xml rename to module_setting/src/main/res/layout/activity_network_diagnosis.xml diff --git a/app/src/main/res/layout/dialog_conflict_guide.xml b/module_setting/src/main/res/layout/dialog_conflict_guide.xml similarity index 100% rename from app/src/main/res/layout/dialog_conflict_guide.xml rename to module_setting/src/main/res/layout/dialog_conflict_guide.xml diff --git a/app/src/main/res/layout/fragment_about.xml b/module_setting/src/main/res/layout/fragment_about.xml similarity index 100% rename from app/src/main/res/layout/fragment_about.xml rename to module_setting/src/main/res/layout/fragment_about.xml diff --git a/app/src/main/res/layout/fragment_bind_phone.xml b/module_setting/src/main/res/layout/fragment_bind_phone.xml similarity index 100% rename from app/src/main/res/layout/fragment_bind_phone.xml rename to module_setting/src/main/res/layout/fragment_bind_phone.xml diff --git a/app/src/main/res/layout/fragment_bind_phone_conflict.xml b/module_setting/src/main/res/layout/fragment_bind_phone_conflict.xml similarity index 100% rename from app/src/main/res/layout/fragment_bind_phone_conflict.xml rename to module_setting/src/main/res/layout/fragment_bind_phone_conflict.xml diff --git a/app/src/main/res/layout/fragment_game_download_setting.xml b/module_setting/src/main/res/layout/fragment_game_download_setting.xml similarity index 100% rename from app/src/main/res/layout/fragment_game_download_setting.xml rename to module_setting/src/main/res/layout/fragment_game_download_setting.xml diff --git a/app/src/main/res/layout/fragment_security.xml b/module_setting/src/main/res/layout/fragment_security.xml similarity index 100% rename from app/src/main/res/layout/fragment_security.xml rename to module_setting/src/main/res/layout/fragment_security.xml diff --git a/app/src/main/res/layout/fragment_setting.xml b/module_setting/src/main/res/layout/fragment_setting.xml similarity index 100% rename from app/src/main/res/layout/fragment_setting.xml rename to module_setting/src/main/res/layout/fragment_setting.xml diff --git a/app/src/main/res/layout/fragment_video_setting.xml b/module_setting/src/main/res/layout/fragment_video_setting.xml similarity index 100% rename from app/src/main/res/layout/fragment_video_setting.xml rename to module_setting/src/main/res/layout/fragment_video_setting.xml diff --git a/module_setting/src/main/res/layout/layout_setting_item.xml b/module_setting/src/main/res/layout/layout_setting_item.xml new file mode 100644 index 0000000000..175a2ff414 --- /dev/null +++ b/module_setting/src/main/res/layout/layout_setting_item.xml @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/module_setting/src/main/res/layout/layout_setting_title_item.xml b/module_setting/src/main/res/layout/layout_setting_title_item.xml new file mode 100644 index 0000000000..3884a1d8f3 --- /dev/null +++ b/module_setting/src/main/res/layout/layout_setting_title_item.xml @@ -0,0 +1,12 @@ + + \ No newline at end of file diff --git a/module_setting/src/main/res/layout/piece_setting_divider.xml b/module_setting/src/main/res/layout/piece_setting_divider.xml new file mode 100644 index 0000000000..45ce215a32 --- /dev/null +++ b/module_setting/src/main/res/layout/piece_setting_divider.xml @@ -0,0 +1,15 @@ + + + + + \ No newline at end of file diff --git a/module_setting/src/main/res/mipmap-xxxhdpi/logo_for_in_app_display.webp b/module_setting/src/main/res/mipmap-xxxhdpi/logo_for_in_app_display.webp new file mode 100644 index 0000000000..289b419873 Binary files /dev/null and b/module_setting/src/main/res/mipmap-xxxhdpi/logo_for_in_app_display.webp differ diff --git a/module_setting/src/main/res/values/strings.xml b/module_setting/src/main/res/values/strings.xml new file mode 100644 index 0000000000..d3969eedef --- /dev/null +++ b/module_setting/src/main/res/values/strings.xml @@ -0,0 +1,64 @@ + + 设置 + 新版本 + 账号与安全 + 深色模式跟随系统切换 + 视频播放 + 游戏下载 + 一键修复 + 下载完成自动安装游戏 + 安装完成自动关注游戏 + 切换安装方式 + 微信提醒 + 非Wi-Fi环境下载游戏提醒 + 统计游戏时长 + 通知权限 + 开启后你可以及时收到重要通知 + 个性化推荐 + 开启功能后,您在本应用的使用信息(如下载信息),将用于个性化内容推荐,以提升您在本应用的体验 + …/gh-files + …/pictures/ghzhushou + 游戏下载目录 + 图片保存目录 + 清除缓存 + 0.0M + 关于我们 + 关于我们(长按可更改渠道号) + 安装包清理 + 游戏投稿 + 设置 + 注册方式 + 还有其他问题? + 联系客服 + 账户安全中心 + 任何网络下都自动播放 + 仅WIFI条件下自动播放 + 关闭自动播放 + 默认静音播放视频 + 开启后以上位置的视频均默认静音播放 + 已是最新版本 + 关于 + Copyright %1$s GHZhuShou Team All Rights Reserved. + https://v.douyin.com/C9UHr6/ + 版本更新 + 提交反馈 + 跳过 + 绑定手机 + 绑定手机号 + 更换手机号 + 绑定手机后手机号将用于光环助手活动奖励领取、安全验证等用途 + 下一步 + 完成 + 手机号绑定冲突 + 遇到冲突如何换绑 + 1、请先退出当前号【我的光环--设置--退出账号】 + 2、再重新登录冲突号,在【我的光环--账户安全】\n或【我的光环--设置--账户安全】更换手机号 + 3、冲突号成功更换新手机号后,再退出冲突号,\n并重新登录当前号进行绑定 + 当前号 + 冲突号 + 换个手机号试试 + 取消绑定 + 更换手机号 + 新手机号与当前手机号相同,暂不支持本\n次绑定 + 我知道了 + \ No newline at end of file diff --git a/module_setting/src/setting/java/com/gh/gamecenter/setting/DataUtils.java b/module_setting/src/setting/java/com/gh/gamecenter/setting/DataUtils.java new file mode 100644 index 0000000000..e00111bd60 --- /dev/null +++ b/module_setting/src/setting/java/com/gh/gamecenter/setting/DataUtils.java @@ -0,0 +1,66 @@ +package com.gh.gamecenter.setting; + +import android.app.Application; +import android.content.Context; +import com.gh.gamecenter.core.AppExecutor; +import com.lightgame.config.CommonDebug; + +import io.sentry.Sentry; +import io.sentry.android.core.SentryAndroid; + +/** + * Created by LGT on 2016/6/15. + * 数据收集 工具类 (TalkingData、MTA) + */ +public class DataUtils { + + private DataUtils() { + throw new IllegalStateException("Utility class"); + } + + /** + * 初始化各种统计工具,仅在release build(非debug)模式启用统计 + */ + public static void init(final Application context, String channel) { + if (CommonDebug.IS_DEBUG) { + return; + } + + // 初始化 Sentry 约占用 90ms,这里切换到子线程初始化 + AppExecutor.getIoExecutor().execute(() -> initSentry(context, channel)); + } + + private static void initSentry(Context context, String channel) { + SentryAndroid.init(context, options -> { + // Sentry 疯狂报 ANR (很大一部分还是莫名奇妙的 ANR)严重影响到其它闪退日志的收集 + // 这里将它局限到只有官网渠道的包才统计 ANR + if ("GH_206".equals(channel) || "GH_BETA".equals(channel)) { + options.setAnrEnabled(true); + options.setAnrTimeoutIntervalMillis(6000); + } else { + options.setAnrEnabled(false); + } + + options.setDebug(BuildConfig.DEBUG); + options.setEnableSessionTracking(true); + options.setDsn("https://6b1caf0d17c1408e8680f3f73ff80bd0@sentry.shanqu.cc/22"); + + options.setBeforeSend((event, hint) -> { + if (BuildConfig.DEBUG) { + return null; + } else { + return event; + } + }); + }); + + Sentry.configureScope(scope -> { + if (com.gh.gamecenter.common.BuildConfig.BUILD_TIME != 0L) { + scope.setTag("alias", "内测版" + BuildConfig.VERSION_NAME); + } else { + scope.setTag("alias", "正式版" + BuildConfig.VERSION_NAME); + scope.setTag("channel", channel); + } + }); + } +} diff --git a/module_setting/src/setting/java/com/gh/gamecenter/setting/SettingModuleApp.kt b/module_setting/src/setting/java/com/gh/gamecenter/setting/SettingModuleApp.kt new file mode 100644 index 0000000000..fa7fe431f6 --- /dev/null +++ b/module_setting/src/setting/java/com/gh/gamecenter/setting/SettingModuleApp.kt @@ -0,0 +1,101 @@ +package com.gh.gamecenter.setting + +import android.os.Build +import androidx.multidex.MultiDexApplication +import com.alibaba.android.arouter.launcher.ARouter +import com.facebook.animated.giflite.GifDecoder +import com.facebook.common.logging.FLog +import com.facebook.imageformat.DefaultImageFormats +import com.facebook.imagepipeline.core.ImagePipelineConfig +import com.facebook.imagepipeline.core.ImageTranscoderType +import com.facebook.imagepipeline.core.MemoryChunkType +import com.facebook.imagepipeline.decoder.ImageDecoderConfig +import com.gh.gamecenter.common.image.EmptyDecoder +import com.gh.gamecenter.common.utils.ImageUtils.disableAnimatedImage +import com.gh.gamecenter.common.utils.ImageUtils.isFrescoInitialized +import com.gh.gamecenter.common.utils.TimestampUtils +import com.gh.gamecenter.core.iinterface.IApplication +import com.github.piasy.biv.BigImageViewer +import com.github.piasy.biv.loader.fresco.FrescoImageLoader +import java.util.* + +class SettingModuleApp: MultiDexApplication() { + + private val mApplicationList = ServiceLoader.load(IApplication::class.java, this.javaClass.classLoader) + + override fun onCreate() { + super.onCreate() + initArouter() + mApp = this + for (application in mApplicationList) { + application.onCreate(this) + } + TimestampUtils.initMap() + initFresco() + DataUtils.init(this, "") + } + + private fun initArouter() { + if (BuildConfig.DEBUG) { // 这两行必须写在init之前,否则这些配置在init过程中将无效 + ARouter.openLog() // 打印日志 + ARouter.openDebug() // 开启调试模式(如果在InstantRun模式下运行,必须开启调试模式!线上版本需要关闭,否则有安全风险) + } + ARouter.init(this) // 尽可能早,推荐在Application中初始化 + } + + fun initFresco() { + // 初始化 Fresco(BigImageViewer 已包含Fresco) + if (!isFrescoInitialized()) { + // 在 5.0 & 5.1 设备上 disable native code,原因是应用附带了 arm64 的 SO 以后在部分 5.0/5.1 设备 + // 会出现找不到 arm64 so 的情况,具体可见 + // https://sentry.ghzs.com/organizations/lightgame/issues/53107/ + // 所以这里尝试在 5.0 & 5.1 设备上关闭 fresco 的 native 解码,应该会让 5.0 & 5.1 的设备 OOM 概率提高,但先试试效果 + // 同时禁用动图 + val pipelineConfigBuilder = ImagePipelineConfig.newBuilder(this) + val decodeConfigBuilder = ImageDecoderConfig.newBuilder() + if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP + || Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP_MR1 + ) { + pipelineConfigBuilder.setMemoryChunkType(MemoryChunkType.BUFFER_MEMORY) + .setImageTranscoderType(ImageTranscoderType.JAVA_TRANSCODER) + decodeConfigBuilder.overrideDecoder(DefaultImageFormats.GIF, GifDecoder()).build() + val manufacture = Build.MANUFACTURER.lowercase(Locale.getDefault()) + + // OPPO 和 VIVO 的 5.1.1 设备还会去加载 WEBP_ANIMATED 的 SO, + // 实测没有发现有地方使用 WEBP_ANIMATED 的图片,这里用空占位图来替换 WEBP 动图 + if ("oppo" == manufacture || "vivo" == manufacture) { + decodeConfigBuilder.overrideDecoder( + DefaultImageFormats.WEBP_ANIMATED, + EmptyDecoder() + ).build() + } + pipelineConfigBuilder + .setImageDecoderConfig(decodeConfigBuilder.build()) + .experiment() + .setNativeCodeDisabled(true) + + // 图片仅加载静态图片 + disableAnimatedImage() + } + try { + BigImageViewer.initialize( + FrescoImageLoader.with( + this, + pipelineConfigBuilder.build() + ) + ) + } catch (e: Throwable) { + e.printStackTrace() + } + FLog.setMinimumLoggingLevel(FLog.VERBOSE) + } + } + + companion object { + private lateinit var mApp: SettingModuleApp + + fun getInstance(): SettingModuleApp { + return mApp + } + } +} \ No newline at end of file diff --git a/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/AppProviderImpl.kt b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/AppProviderImpl.kt new file mode 100644 index 0000000000..f07c60244d --- /dev/null +++ b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/AppProviderImpl.kt @@ -0,0 +1,59 @@ +package com.gh.gamecenter.setting.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IAppProvider +import com.gh.gamecenter.setting.HaloApp +import com.gh.gamecenter.setting.R + +@Route(path = RouteConsts.provider.app, name = "Application暴露服务") +class AppProviderImpl : IAppProvider { + override fun init(context: Context?) { + // Do nothing + } + + override fun getAppName(): String { + return HaloApp.getInstance().getString(R.string.app_name) + } + + override fun getGid(): String { + return "" + } + + override fun refreshGid() { + // Do nothing + } + + override fun getOaid(): String { + return "" + } + + override fun getChannel(): String { + return "" + } + + override fun setChannel(channel: String) { + // Do nothing + } + + override fun getUserAgent(): String { + return "" + } + + override fun getServerUserMark(): String { + return "" + } + + override fun getDeviceRamSize(): Long { + return 0L + } + + override fun getTemporaryLocalDeviceId(): String { + return "" + } + + override fun isUserAcceptPrivacyPolicy(context: Context): Boolean { + return true + } +} \ No newline at end of file diff --git a/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/BrowserInstallHelperProviderImpl.kt b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/BrowserInstallHelperProviderImpl.kt new file mode 100644 index 0000000000..07b4a485ba --- /dev/null +++ b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/BrowserInstallHelperProviderImpl.kt @@ -0,0 +1,27 @@ +package com.gh.gamecenter.setting.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IBrowserInstallHelperProvider +import com.gh.gamecenter.core.utils.ToastUtils + +@Route(path = RouteConsts.provider.browserInstallHelper, name = "BrowserInstallHelper暴露服务") +class BrowserInstallHelperProviderImpl : IBrowserInstallHelperProvider { + override fun isUseBrowserToInstallEnabled(): Boolean { + return false + } + + override fun shouldUseBrowserToInstall(): Boolean { + return false + } + + override fun logSwitchInstallSettingEvent() { + ToastUtils.toast("调用->BrowserInstallHelperProviderImpl.logSwitchInstallSettingEvent") + } + + + override fun init(context: Context?) { + // Do nothing + } +} \ No newline at end of file diff --git a/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/BuildConfigImpl.kt b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/BuildConfigImpl.kt new file mode 100644 index 0000000000..88474c2517 --- /dev/null +++ b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/BuildConfigImpl.kt @@ -0,0 +1,35 @@ +package com.gh.gamecenter.setting.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IBuildConfigProvider +import com.gh.gamecenter.setting.BuildConfig + +@Route(path = RouteConsts.provider.buildConfig, name = "BuildConfig暴露服务") +class BuildConfigImpl : IBuildConfigProvider { + override fun init(context: Context?) { + // Do nothing + } + + override fun getApplicationId(): String = BuildConfig.APPLICATION_ID + + override fun getVersionName(): String = BuildConfig.VERSION_NAME + + override fun getExposureVersion(): String = "" + + override fun isDebug(): Boolean = BuildConfig.DEBUG + + override fun getApiHost(): String = BuildConfig.API_HOST + + override fun getDevApiHost(): String = BuildConfig.DEV_API_HOST + + override fun getNewApiHost(): String = "" + + override fun getNewDevApiHost(): String = "" + + override fun getVApiHost() = "" + + override fun getVDevApiHost() = "" + +} \ No newline at end of file diff --git a/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/ConfigProviderImpl.kt b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/ConfigProviderImpl.kt new file mode 100644 index 0000000000..3971315de3 --- /dev/null +++ b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/ConfigProviderImpl.kt @@ -0,0 +1,81 @@ +package com.gh.gamecenter.setting.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IConfigProvider + +@Route(path = RouteConsts.provider.config, name = "Config暴露服务") +class ConfigProviderImpl : IConfigProvider { + override fun getTencentAppId(): String { + return "" + } + + override fun getWechatAppId(): String { + return "" + } + + override fun getWechatSecret(): String { + return "" + } + + override fun getUploadLimitSize(): Long { + return 0L + } + + override fun getSize(): Int { + return 0 + } + + override fun getRatio(): Int { + return 0 + } + + override fun getQuality(): Int { + return 0 + } + + override fun getGif(): String { + return "" + } + + override fun getJpeg(): String { + return "" + } + + override fun getWebp(): String { + return "" + } + + override fun getGitThumb(): String { + return "" + } + + override fun getGifWaterMark(): String { + return "" + } + + override fun getQQ(): String { + return "" + } + + override fun getQuickLoginAppId(): String { + return "" + } + + override fun getQuickLoginAppKey(): String { + return "" + } + + override fun getWeiboAppKey(): String { + return "" + } + + override fun getNightModeSetting(): Boolean { + return false + } + + override fun init(context: Context?) { + // Do nothing + } +} \ No newline at end of file diff --git a/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/DataUtilsProviderImpl.kt b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/DataUtilsProviderImpl.kt new file mode 100644 index 0000000000..01b8e2f5d1 --- /dev/null +++ b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/DataUtilsProviderImpl.kt @@ -0,0 +1,18 @@ +package com.gh.gamecenter.setting.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IDataUtilsProvider + +@Route(path = RouteConsts.provider.dataUtils, name = "DataUtils暴露服务") +class DataUtilsProviderImpl : IDataUtilsProvider { + + override fun getDeviceCertification() { + // Do nothing + } + + override fun init(context: Context?) { + // Do nothing + } +} \ No newline at end of file diff --git a/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/DialogUtilsProviderImpl.kt b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/DialogUtilsProviderImpl.kt new file mode 100644 index 0000000000..de69bb849e --- /dev/null +++ b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/DialogUtilsProviderImpl.kt @@ -0,0 +1,54 @@ +package com.gh.gamecenter.setting.provider + +import android.app.Dialog +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IDialogUtilsProvider +import com.gh.gamecenter.core.utils.ToastUtils + +@Route(path = RouteConsts.provider.dialogUtils, name = "DialogUtils暴露服务") +class DialogUtilsProviderImpl : IDialogUtilsProvider { + override fun showRegulationTestDialog(context: Context, confirm: () -> Unit, cancel: () -> Unit) { + ToastUtils.toast("调用->DialogUtilsProviderImpl.showRegulationTestDialog") + } + + override fun showWaitDialog(context: Context, string: String): Dialog { + ToastUtils.toast("调用->DialogUtilsProviderImpl.showWaitDialog") + return Dialog(context) + } + + override fun showForceDialog( + context: Context, + title: String, + message: CharSequence, + positive: String, + negative: String, + confirm: () -> Unit, + cancel: () -> Unit + ) { + ToastUtils.toast("调用->DialogUtilsProviderImpl.showForceDialog") + } + + override fun showUsageStatsDialog(context: Context, confirm: () -> Unit, cancel: () -> Unit) { + ToastUtils.toast("调用->DialogUtilsProviderImpl.showUsageStatsDialog") + } + + override fun showNoticeDialog( + context: Context, + title: String, + content: String, + confirm: () -> Unit + ) { + ToastUtils.toast("调用->DialogUtilsProviderImpl.showNoticeDialog") + } + + override fun showBindPhoneDialog(context: Context, confirm: () -> Unit): Dialog { + ToastUtils.toast("调用->DialogUtilsProviderImpl.showBindPhoneDialog") + return Dialog(context) + } + + override fun init(context: Context?) { + // Do nothing + } +} \ No newline at end of file diff --git a/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/DirectProviderImpl.kt b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/DirectProviderImpl.kt new file mode 100644 index 0000000000..9ae13a7eed --- /dev/null +++ b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/DirectProviderImpl.kt @@ -0,0 +1,63 @@ +package com.gh.gamecenter.setting.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IDirectProvider +import com.gh.gamecenter.core.utils.ToastUtils + +@Route(path = RouteConsts.provider.directUtils, name = "DirectUtils暴露服务") +class DirectProviderImpl : IDirectProvider { + + override fun directToWebView(context: Context, url: String, entrance: String?) { + ToastUtils.toast("调用->DirectProviderImpl.directToWebView") + } + + override fun directToRegulationTestPage(context: Context) { + ToastUtils.toast("调用->DirectProviderImpl.directToRegulationTestPage") + } + + override fun directToQqConversation(context: Context, qq: String) { + ToastUtils.toast("调用->DirectProviderImpl.directToQqConversation") + } + + override fun directToCommodityDetail(context: Context, commodityId: String) { + ToastUtils.toast("调用->DirectProviderImpl.directToCommodityDetail") + } + + override fun directToEnergyRecord(context: Context) { + ToastUtils.toast("调用->DirectProviderImpl.directToEnergyRecord") + } + + override fun directToEnergyRulePage(context: Context) { + ToastUtils.toast("调用->DirectProviderImpl.directToEnergyRulePage") + } + + override fun directToInviteFriends(context: Context) { + ToastUtils.toast("调用->DirectProviderImpl.directToInviteFriends") + } + + override fun directToExchangeRulePage(context: Context) { + ToastUtils.toast("调用->DirectProviderImpl.directToExchangeRulePage") + } + + override fun directToExchangeCommodityPage(context: Context) { + ToastUtils.toast("调用->DirectProviderImpl.directToExchangeCommodityPage") + } + + override fun directToLotteryParadisePage(context: Context) { + ToastUtils.toast("调用->DirectProviderImpl.directToLotteryParadisePage") + } + + override fun directDouyin(context: Context, userId: String) { + ToastUtils.toast("调用->DirectProviderImpl.directDouyin") + } + + override fun directToSuggestionFromDiagnosis(context: Context, diagnosis: String) { + ToastUtils.toast("调用->DirectProviderImpl.directToSuggestionFromDiagnosis") + } + + override fun init(context: Context?) { + // Do nothing + } +} \ No newline at end of file diff --git a/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/HistoryHelperProviderImpl.kt b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/HistoryHelperProviderImpl.kt new file mode 100644 index 0000000000..dcafd2baad --- /dev/null +++ b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/HistoryHelperProviderImpl.kt @@ -0,0 +1,18 @@ +package com.gh.gamecenter.setting.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IHistoryHelperProvider +import com.gh.gamecenter.core.utils.ToastUtils + +@Route(path = RouteConsts.provider.historyHelper, name = "HistoryHelper暴露服务") +class HistoryHelperProviderImpl : IHistoryHelperProvider { + override fun emptyDatabase() { + ToastUtils.toast("调用->HistoryHelperProviderImpl.emptyDatabase") + } + + override fun init(context: Context?) { + // Do nothing + } +} \ No newline at end of file diff --git a/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/MainProviderImpl.kt b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/MainProviderImpl.kt new file mode 100644 index 0000000000..80572389e7 --- /dev/null +++ b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/MainProviderImpl.kt @@ -0,0 +1,18 @@ +package com.gh.gamecenter.setting.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IMainProvider +import com.gh.gamecenter.core.utils.ToastUtils + +@Route(path = RouteConsts.provider.mainActivity, name = "MainActivity暴露服务") +class MainProviderImpl : IMainProvider { + override fun skipToMainActivity(context: Context, position: Int) { + ToastUtils.toast("调用->MainProviderImpl.skipToMainActivity") + } + + override fun init(context: Context?) { + // Do nothing + } +} \ No newline at end of file diff --git a/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/PackageUtilsProviderImpl.kt b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/PackageUtilsProviderImpl.kt new file mode 100644 index 0000000000..7faf92b48a --- /dev/null +++ b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/PackageUtilsProviderImpl.kt @@ -0,0 +1,38 @@ +package com.gh.gamecenter.setting.provider + +import android.content.Context +import android.content.pm.PackageInfo +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IPackageUtilsProvider + +@Route(path = RouteConsts.provider.packageUtils, name = "PackageUtils暴露服务") +class PackageUtilsProviderImpl : IPackageUtilsProvider { + override fun obtainProcessName(context: Context): String { + return "" + } + + override fun getGhVersionName(): String { + return "" + } + + override fun getGhVersionCode(): Int { + return 0 + } + + override fun getInstalledPackages(context: Context, flag: Int): List { + return emptyList() + } + + override fun getApkSignatureByPackageName(context: Context, packageName: String): Array { + return emptyArray() + } + + override fun getSideLoadedInfo(): MutableMap? { + return null + } + + override fun init(context: Context?) { + // Do nothing + } +} \ No newline at end of file diff --git a/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/ShellProviderImpl.kt b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/ShellProviderImpl.kt new file mode 100644 index 0000000000..91a67b2a88 --- /dev/null +++ b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/ShellProviderImpl.kt @@ -0,0 +1,19 @@ +package com.gh.gamecenter.setting.provider + +import android.content.Context +import android.content.Intent +import android.os.Parcelable +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IShellProvider + +@Route(path = RouteConsts.provider.shellActivity, name = "ShellActivity暴露服务") +class ShellProviderImpl : IShellProvider { + override fun getSwitchInstallMethodIntent(context: Context, extraParcelable: Parcelable?): Intent? { + return null + } + + override fun init(context: Context?) { + // Do nothing + } +} \ No newline at end of file diff --git a/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/UpdateManagerProviderImpl.kt b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/UpdateManagerProviderImpl.kt new file mode 100644 index 0000000000..d7332d0e40 --- /dev/null +++ b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/UpdateManagerProviderImpl.kt @@ -0,0 +1,19 @@ +package com.gh.gamecenter.setting.provider + +import android.content.Context +import android.os.Handler +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IUpdateManagerProvider +import com.gh.gamecenter.core.utils.ToastUtils + +@Route(path = RouteConsts.provider.updateManager, name = "UpdateManager暴露服务") +class UpdateManagerProviderImpl: IUpdateManagerProvider { + override fun checkUpdate(context: Context, isAutoCheck: Boolean, handler: Handler) { + ToastUtils.toast("调用->UpdateManagerProviderImpl.checkUpdate") + } + + override fun init(context: Context?) { + // Do nothing + } +} \ No newline at end of file diff --git a/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/UsageStatsHelperProviderImpl.kt b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/UsageStatsHelperProviderImpl.kt new file mode 100644 index 0000000000..76477e9f0c --- /dev/null +++ b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/UsageStatsHelperProviderImpl.kt @@ -0,0 +1,24 @@ +package com.gh.gamecenter.setting.provider + +import android.content.Context +import android.os.Build +import androidx.annotation.RequiresApi +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IUsageStatsHelperProvider +import com.gh.gamecenter.core.utils.ToastUtils + +@Route(path = RouteConsts.provider.usageStatsHelper, name = "UsageStatsHelper暴露服务") +class UsageStatsHelperProviderImpl : IUsageStatsHelperProvider { + @RequiresApi(Build.VERSION_CODES.LOLLIPOP_MR1) + override fun checkForPermission(): Boolean { + return false + } + override fun skipToUsageStats(context: Context, requestCode: Int) { + ToastUtils.toast("调用->UsageStatsHelperProviderImpl.skipToUsageStats") + } + + override fun init(context: Context?) { + // Do nothing + } +} \ No newline at end of file diff --git a/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/WebProviderImpl.kt b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/WebProviderImpl.kt new file mode 100644 index 0000000000..aeb92417b3 --- /dev/null +++ b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/WebProviderImpl.kt @@ -0,0 +1,30 @@ +package com.gh.gamecenter.setting.provider + +import android.content.Context +import android.content.Intent +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IWebProvider + +@Route(path = RouteConsts.provider.webActivity, name = "WebActivity暴露服务") +class WebProviderImpl : IWebProvider { + override fun getIntent(context: Context, url: String, autoCompletionTitle: Boolean): Intent? { + return null + } + + override fun getWebIntent(context: Context, title: String, url: String): Intent? { + return null + } + + override fun getBindWechatIntent(context: Context): Intent? { + return null + } + + override fun getSecurityCertificationIntent(context: Context): Intent? { + return null + } + + override fun init(context: Context?) { + // Do nothing + } +} \ No newline at end of file diff --git a/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/WechatHelperProviderImpl.kt b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/WechatHelperProviderImpl.kt new file mode 100644 index 0000000000..1588308ddd --- /dev/null +++ b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/WechatHelperProviderImpl.kt @@ -0,0 +1,18 @@ +package com.gh.gamecenter.setting.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IWechatBindHelperProvider +import com.gh.gamecenter.core.utils.ToastUtils + +@Route(path = RouteConsts.provider.wechatHelper, name = "WechatHelper暴露服务") +class WechatHelperProviderImpl : IWechatBindHelperProvider { + override fun getWechatConfig(callback: (() -> Unit)?) { + ToastUtils.toast("调用->WechatHelperProviderImpl.getWechatConfig") + } + + override fun init(context: Context?) { + // Do nothing + } +} \ No newline at end of file diff --git a/module_setting/src/test/java/com/gh/gamecenter/setting/ExampleUnitTest.kt b/module_setting/src/test/java/com/gh/gamecenter/setting/ExampleUnitTest.kt new file mode 100644 index 0000000000..9496e9afc4 --- /dev/null +++ b/module_setting/src/test/java/com/gh/gamecenter/setting/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package com.gh.gamecenter.setting + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 858a5ca09b..f85223d42c 100644 --- a/settings.gradle +++ b/settings.gradle @@ -7,3 +7,4 @@ include ':module_core' include ':module_common' include ':module_login' include ':module_energy' +include ':module_setting'