diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java index 41dffb39d1..551ec8e41c 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java @@ -11,8 +11,12 @@ import androidx.annotation.Nullable; import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.commons.mvp.MvpFragment; +import com.mogo.module.extensions.userinfo.UserInfo; +import com.mogo.utils.logger.Logger; /** + * 天气,消息,个人头像 + * * @author congtaowang * @since 2020-01-05 *

@@ -92,4 +96,9 @@ public class ExtensionsFragment extends MvpFragment< ExtensionsView, ExtensionsP mMsgContainer.setVisibility( hasMsg ? View.VISIBLE : View.GONE ); mMsgCounter.setText( amount > MAX_DISPLAY_MSG_AMOUNT ? getString( R.string.module_ext_str_dots ) : String.valueOf( amount ) ); } + + @Override + public void renderUserInfo(UserInfo userInfo) { + Logger.d(TAG, "renderUserInfo: " + userInfo); + } } diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java index f779f76aec..85d0463965 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java @@ -1,17 +1,36 @@ package com.mogo.module.extensions; +import android.util.ArrayMap; + import androidx.annotation.NonNull; import androidx.lifecycle.LifecycleOwner; import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.commons.mvp.Presenter; +import com.mogo.module.extensions.net.UserInfoNetApiServices; +import com.mogo.module.extensions.userinfo.UserInfo; +import com.mogo.module.extensions.userinfo.UserInfoConstant; +import com.mogo.module.extensions.userinfo.UserInfoResponse; +import com.mogo.module.extensions.utils.ExtensionsConfig; import com.mogo.module.extensions.weather.Phenomena; import com.mogo.module.extensions.weather.WeatherCallback; import com.mogo.module.extensions.weather.WeatherInfo; import com.mogo.module.extensions.weather.WeatherModel; +import com.mogo.service.IMogoServiceApis; import com.mogo.service.MogoServicePaths; +import com.mogo.service.network.IMogoNetwork; import com.mogo.service.statusmanager.IMogoMsgCenter; import com.mogo.service.statusmanager.IMogoMsgCenterListener; +import com.mogo.utils.digest.DigestUtils; +import com.mogo.utils.logger.Logger; +import com.zhidao.auto.platform.util.DeviceUtil; + +import java.util.Map; + +import io.reactivex.SingleObserver; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.disposables.Disposable; +import io.reactivex.schedulers.Schedulers; /** @@ -29,9 +48,13 @@ public class ExtensionsPresenter extends Presenter< ExtensionsView > implements private IMogoMsgCenter mMsgCenter; + private IMogoNetwork mNetWork; + public ExtensionsPresenter( ExtensionsView view ) { super( view ); mWeatherModel = new WeatherModel( getContext() ); + mNetWork = + ((IMogoServiceApis) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(view.getContext())).getNetworkApi(); } @Override @@ -65,6 +88,10 @@ public class ExtensionsPresenter extends Presenter< ExtensionsView > implements @Override public void onResume( @NonNull LifecycleOwner owner ) { super.onResume( owner ); + if(ExtensionsConfig.needRequestUserInfo()){ + // 相当于每次onResume都会请求一下个人信息,目的是能够相对及时的同步手机端的个人信息修改 + requestUserInfo(); + } } @Override @@ -82,4 +109,49 @@ public class ExtensionsPresenter extends Presenter< ExtensionsView > implements mMsgCenter.unregisterMsgCenterListener( this ); } } + + private UserInfo userInfo; + public void requestUserInfo() { + Map params = new ArrayMap<>(); + params.put("sn", DeviceUtil.getSn()); + params.put("source", "2"); + String sign = createSign(params, "JGqZw9"); + params.put("sig", sign); + mNetWork.create(UserInfoNetApiServices.class, UserInfoConstant.getUserInfoBaseUrl()).requestUserInfo(params).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new SingleObserver() { + @Override + public void onSubscribe(Disposable d) { + } + + @Override + public void onSuccess(UserInfoResponse userInfoBaseResponse) { + userInfo = userInfoBaseResponse.getResult(); + Logger.d(TAG, "获取个人信息成功: " + userInfo); + mView.renderUserInfo(userInfo); + } + + @Override + public void onError(Throwable e) { + e.printStackTrace(); + Logger.e(TAG, e, "获取个人信息失败=="); + } + }); + } + + private String createSign(Map map, String salt) { + try { + StringBuilder queryString = new StringBuilder(); + for (Map.Entry entry : map.entrySet()) { + queryString.append(entry.getKey()) + .append("=") + .append(entry.getValue()) + .append("&"); + } + queryString.append("key=").append(DigestUtils.shaHex(salt)); + return DigestUtils.shaHex(queryString.toString()).toUpperCase(); + } catch (Exception e) { + e.printStackTrace(); + Logger.e(TAG, e, "createSign()"); + return ""; + } + } } diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsView.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsView.java index fa1ef5e128..873761780f 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsView.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsView.java @@ -1,6 +1,7 @@ package com.mogo.module.extensions; import com.mogo.commons.mvp.IView; +import com.mogo.module.extensions.userinfo.UserInfo; import com.mogo.module.extensions.weather.WeatherInfo; /** @@ -27,4 +28,10 @@ public interface ExtensionsView extends IView { * @param amount 消息数量 */ void renderMsgInfo( boolean hasMsg, int amount ); + + /** + * 刷新个人信息 + * @param userInfo 个人信息 + */ + void renderUserInfo(UserInfo userInfo); } diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java index 8240544ce2..465c4bff54 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java @@ -553,9 +553,4 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent // 30s 后无论成功与否,停止动画 mUploadFrameAnimHandler.sendEmptyMessageDelayed( MSG_STOP_ANIM, 30_000 ); } - - @Override - public void refreshUserInfo( UserInfo userInfo ) { - Logger.d( TAG, "刷新用户信息: " + userInfo ); - } } diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java index eab934bfcf..7d84b9bb31 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java @@ -65,9 +65,6 @@ public class EntrancePresenter extends Presenter { private String mVoiceCmdType; //一级命令 private String mVoiceCmdShareType; //对某些一级命令里面细分的类型做处理 private IMogoStatusManager mStatusManager; - private IMogoNetwork mNetWork; - - private UserInfo userInfo = null; public EntrancePresenter(Context context, EntranceView view, IMogoAuthorizeModuleManager authorizeModuleManager) { @@ -79,8 +76,6 @@ public class EntrancePresenter extends Presenter { mogoIntentManager = apis.getIntentManagerApi(); mIMogoAuthorizeModuleManager = authorizeModuleManager; mStatusManager = apis.getStatusManagerApi(); - mNetWork = apis.getNetworkApi(); - registerUnWake(); registerAwakeVoice(); @@ -100,9 +95,6 @@ public class EntrancePresenter extends Presenter { @Override public void onResume(@NonNull LifecycleOwner owner) { super.onResume(owner); - if (ExtensionsConfig.needRequestUserInfo() && userInfo == null) { - requestUserInfo(); - } } /** @@ -415,48 +407,4 @@ public class EntrancePresenter extends Presenter { AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK); AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE); } - - public void requestUserInfo() { - Map params = new ArrayMap<>(); - params.put("sn", DeviceUtil.getSn()); - params.put("source", "2"); - String sign = createSign(params, "JGqZw9"); - params.put("sig", sign); - mNetWork.create(UserInfoNetApiServices.class, UserInfoConstant.getUserInfoBaseUrl()).requestUserInfo(params).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new SingleObserver() { - @Override - public void onSubscribe(Disposable d) { - } - - @Override - public void onSuccess(UserInfoResponse userInfoBaseResponse) { - userInfo = userInfoBaseResponse.getResult(); - Logger.d(TAG, "获取个人信息成功: " + userInfo); - mView.refreshUserInfo(userInfo); - } - - @Override - public void onError(Throwable e) { - e.printStackTrace(); - Logger.e(TAG, e, "获取个人信息失败=="); - } - }); - } - - private String createSign(Map map, String salt) { - try { - StringBuilder queryString = new StringBuilder(); - for (Map.Entry entry : map.entrySet()) { - queryString.append(entry.getKey()) - .append("=") - .append(entry.getValue()) - .append("&"); - } - queryString.append("key=").append(DigestUtils.shaHex(salt)); - return DigestUtils.shaHex(queryString.toString()).toUpperCase(); - } catch (Exception e) { - e.printStackTrace(); - Logger.e(TAG, e, "createSign()"); - return ""; - } - } } diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceView.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceView.java index 51fe0b568f..5f37f0256d 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceView.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceView.java @@ -10,7 +10,4 @@ import com.mogo.module.extensions.userinfo.UserInfo; * 描述 */ public interface EntranceView extends IView { - - void refreshUserInfo(UserInfo userInfo); - } diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/userinfo/UserInfo.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/userinfo/UserInfo.java index 9526e292a9..4a0fffd814 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/userinfo/UserInfo.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/userinfo/UserInfo.java @@ -95,4 +95,19 @@ public class UserInfo { public void setActiveTime(String activeTime) { this.activeTime = activeTime; } + + @Override + public String toString() { + return "UserInfo{" + + "userId='" + userId + '\'' + + ", phone='" + phone + '\'' + + ", displayName='" + displayName + '\'' + + ", additionalOne=" + additionalOne + + ", headImgurl='" + headImgurl + '\'' + + ", ownerAuthState=" + ownerAuthState + + ", score=" + score + + ", memberLevel='" + memberLevel + '\'' + + ", activeTime='" + activeTime + '\'' + + '}'; + } }