Sfoglia il codice sorgente

添加网络接口来获取是否是新设备;
打卡按钮状态修正;
debug模式设备id问题修复

zengjiebin 7 anni fa
parent
commit
281d11a394

+ 6 - 0
app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java

@@ -1005,4 +1005,10 @@ public interface ApiService {
      */
     @GET("app/sdk/{game_key}")
     Observable<BaseMessage> verifactionAuth(@Path("game_key") String game_key);
+    /**
+     * 判断是否是第一次运行的设备
+     * @return
+     */
+    @GET("app/event_tracking/check_user_first")
+    Observable<BaseMessage> checkUserFirst();
 }

+ 4 - 3
app/src/main/java/com/sheep/gamegroup/util/DeviceUtil.java

@@ -25,9 +25,10 @@ public class DeviceUtil {
     }
 
     public static String getDeviceId(Context context) {
-        if(BuildConfig.DEBUG){//debug状态下可以任意接任务
-            return getInstance().getRandomId();
-        }
+        //这里的代码造成了切到正式服时刷设备的bug,现在修改为在测试服才可以,先注释掉,以后测试任务时再开启
+//        if(TestUtil.isTest() && BuildConfig.DEBUG){//debug状态下可以任意接任务
+//            return getInstance().getRandomId();
+//        }
         String deviceId = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
         if(TextUtils.isEmpty(deviceId)){
             try {

+ 12 - 9
app/src/main/java/com/sheep/gamegroup/view/activity/ActSignCard.java

@@ -240,7 +240,7 @@ public class ActSignCard extends BaseActivity {
                         }
                         sign_card_users.setLayoutManager(new GridLayoutManager(SheepApp.getInstance(), userList.size()));
                         sign_card_users.getAdapter().notifyDataSetChanged();
-                        ViewUtil.setText(sign_card_total_bonus, punchAndSign.getSign_up_count());
+                        ViewUtil.setText(sign_card_total_bonus, String.format(Locale.CHINA, "%s元", punchAndSign.getSign_up_count()));
                         ViewUtil.setText(sign_card_total_people, String.format(Locale.CHINA, "当前参与人数%s人", punchAndSign.getSign_up_count()));
                         ViewUtil.setText(sign_card_success_people, punchAndSign.getPunch_count());
                         ViewUtil.setText(sign_card_fail_people, punchAndSign.getNoPunch_count());
@@ -430,17 +430,20 @@ public class ActSignCard extends BaseActivity {
     };
     private long totalTime = INIT;
     private void initBtnState() {
-        if (punchType == 3) {//可以打卡
-            sign_card_join.setEnabled(true);
-            sign_card_join.setText("参加打卡挑战");
-        } else if (initCanSignUp == SUCCESS && isCanSignUp) {//可以报名
-            sign_card_join.setEnabled(true);
-            sign_card_join.setText("报名打卡");
-        } else if(punchAndSign != null && punchAndSign.getCountdown() > 0 && initCanSignUp == SUCCESS && punchType > 2){
-            if(totalTime == INIT) {//只设置一次
+        if(punchAndSign != null && initCanSignUp == SUCCESS && punchType > SUCCESS){//初始化成功
+            if (punchType == 3) {//可以打卡
+                sign_card_join.setEnabled(true);
+                sign_card_join.setText("参加打卡挑战");
+            } else if (isCanSignUp) {//可以报名
+                sign_card_join.setEnabled(true);
+                sign_card_join.setText("报名打卡");
+            } else if(totalTime == INIT) {//只设置一次
                 sign_card_join.setEnabled(false);
                 totalTime = punchAndSign.getCountdown();
                 handler.sendEmptyMessage(0);//开始计时
+            } else {
+                sign_card_join.setEnabled(false);
+                sign_card_join.setText(R.string.service_data_error);
             }
         } else {
             sign_card_join.setEnabled(false);

+ 24 - 9
app/src/main/java/com/sheep/gamegroup/view/activity/SplashAct.java

@@ -14,7 +14,6 @@ import android.provider.Settings;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.support.v7.app.AlertDialog;
-import android.text.TextUtils;
 import android.view.View;
 import android.widget.ImageView;
 import android.widget.TextView;
@@ -31,7 +30,6 @@ import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.RxjavaCountDownTimer;
 import com.sheep.gamegroup.util.SysAppUtil;
-import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 
@@ -119,19 +117,19 @@ public class SplashAct extends BaseActivity implements EasyPermissions.Permissio
             super.handleMessage(msg);
             switch (msg.what){
                 case 0:
-                    if(!isRequestCodePermissions && !isLoaddingData && timerIsFinish())
+                    if(!isRequestCodePermissions && !isLoadingData && timerIsFinish())
                         gotoNext();
                     else
                         sendHandlerMessages(100);
                     break;
                 case 1:
                     if(SysAppUtil.isNewSmallSheep()){//新版本只显示引导页面,不展示弹窗和开屏广告
-                        isLoaddingData = false;
+                        isLoadingData = false;
                         sendHandlerMessages(200);
                     } else {
                         Advertising cacheAdvertising = DataUtil.getInstance().getCacheResult(ApiKey.advertisements(1), Advertising.class);
                         if (cacheAdvertising != null) {
-                            isLoaddingData = false;
+                            isLoadingData = false;
                             advertising = cacheAdvertising;
                             try {
                                 loadAdvertising();
@@ -146,7 +144,7 @@ public class SplashAct extends BaseActivity implements EasyPermissions.Permissio
                                         @Override
                                         public void onNext(BaseMessage baseMessage) {
                                             DataUtil.getInstance().resetCacheTime(ApiKey.advertisements(1), 3600*5);//开屏广告最多缓存5个小时
-                                            isLoaddingData = false;
+                                            isLoadingData = false;
                                             advertising = baseMessage.getData(Advertising.class);
                                             try {
                                                 loadAdvertising();
@@ -157,7 +155,7 @@ public class SplashAct extends BaseActivity implements EasyPermissions.Permissio
 
                                         @Override
                                         public void onError(BaseMessage baseMessage) {
-                                            isLoaddingData = false;
+                                            isLoadingData = false;
                                             sendHandlerMessages(10);
                                         }
                                     });
@@ -196,17 +194,34 @@ public class SplashAct extends BaseActivity implements EasyPermissions.Permissio
 //        } else {
 //            mHandler.sendEmptyMessageDelayed(1, 500);
 //        }
-        mHandler.sendEmptyMessageDelayed(1, 500);
     }
 
     @Override
     public void initListener() {
 
     }
-    private boolean isLoaddingData = true;//是否正在获取开屏广告数据
+    private boolean isLoadingData = true;//是否正在获取开屏广告数据
     private Advertising advertising;
     @Override
     public void initData() {
+        SheepApp.getInstance().getNetComponent().getApiService().checkUserFirst()
+                        .subscribeOn(Schedulers.io())
+                        .observeOn(AndroidSchedulers.mainThread())
+                        .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                            @Override
+                            public void onNext(BaseMessage baseMessage) {
+                                boolean isNewSmallSheep = baseMessage.getData(Boolean.class);
+                                DataUtil.getInstance().setIsNewSmallSheep(isNewSmallSheep);
+                                mHandler.sendEmptyMessageDelayed(1, 300);
+                            }
+
+                            @Override
+                            public void onError(BaseMessage baseMessage) {
+                                //访问出错时,认为不是新设备
+                                DataUtil.getInstance().setIsNewSmallSheep(false);
+                                mHandler.sendEmptyMessageDelayed(1, 300);
+                            }
+                        });
     }
 
     private void loadAdvertising() {