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 + '\'' +
+ '}';
+ }
}