Browse Source

增加会员倒计时刷新

zk 1 year ago
parent
commit
4341950d18

+ 7 - 0
app/src/main/java/com/atmob/voiceai/data/api/bean/MemberInfoBean.java

@@ -8,6 +8,13 @@ public class MemberInfoBean {
     @SerializedName("expireTime")
     private long expireTime;
 
+    @SerializedName("timestamp")
+    private long timestamp;
+
+    public long getTimestamp() {
+        return timestamp;
+    }
+
     public boolean isIsMember() {
         return isMember;
     }

+ 5 - 1
app/src/main/java/com/atmob/voiceai/data/repositories/AccountRepository.java

@@ -1,6 +1,8 @@
 package com.atmob.voiceai.data.repositories;
 
 
+import android.os.Handler;
+
 import androidx.lifecycle.LiveData;
 import androidx.lifecycle.MutableLiveData;
 
@@ -27,6 +29,7 @@ public class AccountRepository {
     private final AtmobApi atmobApi;
     private final MemberRepository memberRepository;
     private boolean requestUserInfoDisabled;
+    private final Handler refreshMemberHandler = new Handler();
 
     @Inject
     public AccountRepository(AtmobApi atmobApi, MemberRepository memberRepository) {
@@ -36,7 +39,6 @@ public class AccountRepository {
     }
 
 
-
     private void refreshUserData() {
         if (requestUserInfoDisabled) {
             return;
@@ -70,6 +72,8 @@ public class AccountRepository {
                 .doOnSuccess(userInfoResponse -> {
                     MemberInfoBean memberInfo = userInfoResponse.getMemberInfo();
                     memberRepository.setIsMember(memberInfo != null && memberInfo.isIsMember());
+                    refreshMemberHandler.removeCallbacksAndMessages(null);
+                    refreshMemberHandler.postDelayed(this::refreshUserData, memberInfo.getExpireTime() - memberInfo.getTimestamp());
                 });
     }
 }