diff --git a/app/src/main/java/com/gh/common/DefaultJsApi.kt b/app/src/main/java/com/gh/common/DefaultJsApi.kt index 68a8166e31..2e51324f70 100644 --- a/app/src/main/java/com/gh/common/DefaultJsApi.kt +++ b/app/src/main/java/com/gh/common/DefaultJsApi.kt @@ -136,8 +136,8 @@ class DefaultJsApi(var context: Context) { } @JavascriptInterface - fun refreshWechatBindData(msg: Any){ - WechatBindHelper.getWechatConfig() + fun refreshWechatBindData(msg: Any) { + WechatBindHelper.getWechatConfig(null) } @JavascriptInterface 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 dad8ac5a72..dff535fb35 100644 --- a/app/src/main/java/com/gh/common/util/DialogUtils.java +++ b/app/src/main/java/com/gh/common/util/DialogUtils.java @@ -74,7 +74,7 @@ import com.gh.gamecenter.databinding.DialogPackageParseErrorBinding; import com.gh.gamecenter.databinding.DialogQuickLoginPermissionBinding; import com.gh.gamecenter.databinding.DialogReceiveLibaoSuccessBinding; import com.gh.gamecenter.databinding.DialogReportReasonBinding; -import com.gh.gamecenter.databinding.DialogWecahtReserveSuccessBinding; +import com.gh.gamecenter.databinding.DialogWechatReserveSuccessBinding; import com.gh.gamecenter.databinding.ImprintContentItemBinding; import com.gh.gamecenter.databinding.PrivacyItemBinding; import com.gh.gamecenter.entity.ApkEntity; @@ -2213,7 +2213,7 @@ public class DialogUtils { context = checkDialogContext(context); final Dialog dialog = new Dialog(context, R.style.DialogWindowTransparent); - DialogWecahtReserveSuccessBinding binding = DialogWecahtReserveSuccessBinding.inflate(LayoutInflater.from(context)); + DialogWechatReserveSuccessBinding binding = DialogWechatReserveSuccessBinding.inflate(LayoutInflater.from(context)); binding.closeBtn.setOnClickListener(v -> { cancelListener.onCancel(); dialog.dismiss(); diff --git a/app/src/main/java/com/gh/common/util/WechatBindHelper.kt b/app/src/main/java/com/gh/common/util/WechatBindHelper.kt index 36d8e51015..ea8dddc410 100644 --- a/app/src/main/java/com/gh/common/util/WechatBindHelper.kt +++ b/app/src/main/java/com/gh/common/util/WechatBindHelper.kt @@ -1,6 +1,7 @@ package com.gh.common.util import android.annotation.SuppressLint +import androidx.annotation.Nullable import com.gh.common.constant.Constants import com.gh.gamecenter.entity.WechatConfigEntity import com.gh.gamecenter.manager.UserManager @@ -15,15 +16,16 @@ object WechatBindHelper { @JvmStatic @SuppressLint("CheckResult") - fun getWechatConfig() { + fun getWechatConfig(callback: ((WechatConfigEntity) -> Unit)? = null) { if (!UserManager.getInstance().isLoggedIn) return RetrofitManager.getInstance() .api .wechatConfig - .subscribeOn(Schedulers.io()) + .compose(singleToMain()) .subscribe(object : BiResponse() { override fun onSuccess(data: WechatConfigEntity) { SPUtils.setString(Constants.SP_WECHAT_CONFIG, data.toJson()) + callback?.invoke(data) } }) } diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index 6353345695..cebc859ead 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -328,7 +328,7 @@ public class MainActivity extends BaseActivity { deleteSimulatorGame(); QuickLoginHelper.getPhoneInfo(this); - WechatBindHelper.getWechatConfig(); + WechatBindHelper.getWechatConfig(null); initWBSDK(); } diff --git a/app/src/main/java/com/gh/gamecenter/user/UserRepository.java b/app/src/main/java/com/gh/gamecenter/user/UserRepository.java index 94787fa522..48f0d31aa4 100644 --- a/app/src/main/java/com/gh/gamecenter/user/UserRepository.java +++ b/app/src/main/java/com/gh/gamecenter/user/UserRepository.java @@ -241,7 +241,7 @@ public class UserRepository { PushManager.getAndSetAlias(); GameSubstituteRepositoryHelper.updateSubstitutableGames(); - WechatBindHelper.getWechatConfig(); + WechatBindHelper.getWechatConfig(null); if (callback != null) { callback.onFirst(response); diff --git a/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.java b/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.java index 8ebb48139e..942d7cba17 100644 --- a/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.java +++ b/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.java @@ -17,6 +17,7 @@ import android.widget.TextView; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.core.content.ContextCompat; +import androidx.lifecycle.ViewModelProvider; import com.gh.common.constant.Config; import com.gh.common.constant.Constants; @@ -35,6 +36,7 @@ import com.gh.common.util.PackageUtils; import com.gh.common.util.PermissionHelper; import com.gh.common.util.SPUtils; import com.gh.common.util.UsageStatsHelper; +import com.gh.common.util.WechatBindHelper; import com.gh.download.server.BrowserInstallHelper; import com.gh.gamecenter.AboutActivity; import com.gh.gamecenter.BuildConfig; @@ -44,6 +46,7 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.ShellActivity; import com.gh.gamecenter.WebActivity; import com.gh.gamecenter.entity.LoginTokenEntity; +import com.gh.gamecenter.entity.UserInfoEntity; import com.gh.gamecenter.entity.WechatConfigEntity; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.fragment.MainWrapperFragment; @@ -53,7 +56,9 @@ import com.gh.gamecenter.normal.NormalFragment; import com.gh.gamecenter.security.SecurityActivity; import com.gh.gamecenter.setting.GameDownloadSettingActivity; import com.gh.gamecenter.setting.VideoSettingActivity; +import com.gh.gamecenter.user.ApiResponse; import com.gh.gamecenter.user.UserRepository; +import com.gh.gamecenter.user.UserViewModel; import com.lightgame.download.FileUtils; import com.lightgame.utils.Utils; import com.lightgame.view.CheckableImageView; @@ -69,6 +74,8 @@ import io.reactivex.Observer; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; import io.reactivex.schedulers.Schedulers; +import kotlin.Unit; +import kotlin.jvm.functions.Function1; import static com.gh.gamecenter.R.id.setting_rl_about; import static java.lang.Thread.sleep; @@ -107,6 +114,8 @@ public class SettingsFragment extends NormalFragment { public static final int INSERT_MOBILE_CODE = 411; + private UserViewModel mUserViewModel; + private SharedPreferences sp; private Dialog loadingDialog = null; @@ -161,6 +170,9 @@ public class SettingsFragment extends NormalFragment { } } + UserViewModel.Factory factory = new UserViewModel.Factory(requireActivity().getApplication()); + mUserViewModel = new ViewModelProvider(this, factory).get(UserViewModel.class); + sp = PreferenceManager.getDefaultSharedPreferences(getContext()); // 未打开下载按钮,显示修复下载按钮 @@ -186,6 +198,17 @@ public class SettingsFragment extends NormalFragment { if (checkSizeIndex == 0) { checkSizeIndex = 1; } + + mUserViewModel.getLoginObsUserinfo().observe(this, response -> { + if (response != null && response.getData() != null) { + WechatBindHelper.getWechatConfig(entity -> { + initWechatBindStatus(); + return null; + }); + } else { + initWechatBindStatus(); + } + }); //fontTextSize(checkSizeIndex); initLoginStatus(); @@ -221,17 +244,15 @@ public class SettingsFragment extends NormalFragment { BrowserInstallHelper.INSTANCE.logOrdinaryBrowserEvent(BrowserInstallHelper.Type.SWITCH_INSTALL_SETTING); }); } - initWechatBindStatus(); } private void initWechatBindStatus() { if (UserManager.getInstance().isLoggedIn()) { String json = SPUtils.getString(Constants.SP_WECHAT_CONFIG); WechatConfigEntity entity = GsonUtils.fromJson(json, WechatConfigEntity.class); - mSettingWechatRemindTv.setVisibility(View.VISIBLE); mSettingWechatRemindTv.setText(entity.getNotice() ? "已开启" : "已关闭"); } else { - mSettingWechatRemindTv.setVisibility(View.GONE); + mSettingWechatRemindTv.setText(""); } } @@ -458,6 +479,9 @@ public class SettingsFragment extends NormalFragment { NewLogUtils.logWechatRemindConfigClick(entity); } requireContext().startActivity(WebActivity.getBindWechatIntent(requireContext())); + } else { + CheckLoginUtils.checkLogin(requireContext(), "我的光环_设置", () -> { + }); } break; default: diff --git a/app/src/main/res/layout/dialog_wecaht_reserve_success.xml b/app/src/main/res/layout/dialog_wechat_reserve_success.xml similarity index 100% rename from app/src/main/res/layout/dialog_wecaht_reserve_success.xml rename to app/src/main/res/layout/dialog_wechat_reserve_success.xml diff --git a/app/src/main/res/layout/fragment_setting.xml b/app/src/main/res/layout/fragment_setting.xml index d65f1ed8b1..fd513cf5fd 100644 --- a/app/src/main/res/layout/fragment_setting.xml +++ b/app/src/main/res/layout/fragment_setting.xml @@ -256,7 +256,6 @@ android:layout_centerVertical="true" android:drawableRight="@drawable/icon_more" android:drawablePadding="3dp" - android:text="已关闭" android:textColor="@color/text_subtitleDesc" android:textSize="14sp" />