Bladeren bron

刮奖区域提示信息展示;
上次刮奖时间判断修改为这个周期之前

zengjiebin 7 jaren geleden
bovenliggende
commit
e4ba01d005

+ 2 - 2
app/src/main/java/com/sheep/gamegroup/util/TestUtil.java

@@ -645,7 +645,7 @@ public class TestUtil {
     }
     //开启后可 测试充值与绑定微信和身份信息逻辑 等
     public static boolean isDev() {
-//        return BuildConfig.DEBUG;
-        return false;
+        return BuildConfig.DEBUG;
+//        return false;
     }
 }

+ 79 - 0
app/src/main/java/com/sheep/gamegroup/util/TimeUtil.java

@@ -129,6 +129,85 @@ public class TimeUtil {
     }
 
     /**
+     * time在x天内 x为正,代表x天前,为负,代表-x天后
+     * @param time 判断的时间点
+     * @param x 从今天24点算起,x天内,x可以为负
+     * @return
+     */
+    public static boolean isTimeInXDay(long time, int x) {
+        time = time < 10_000_000_000L ? time * 1000 : time;//秒的时间戳为10位数,要x1000  10_000_000_000L对应时间为2286-11-21 01:46:40
+        Calendar timeCalendar = Calendar.getInstance();
+        timeCalendar.setTimeInMillis(time);
+        //今日24点的时间
+        Calendar cur24Calendar = Calendar.getInstance();
+        applyDayEnd(cur24Calendar);
+        if(x < 0) {
+            boolean isBeforeCur24 = timeCalendar.before(cur24Calendar);
+            if(TestUtil.isDev())
+                LogUtil.println("isTimeInXDay", "isBeforeCur24", isBeforeCur24, cur24Calendar.getTimeInMillis());
+            cur24Calendar.add(Calendar.DAY_OF_MONTH, x);
+            boolean isAfterXDay = timeCalendar.after(cur24Calendar);
+            if(TestUtil.isDev())
+                LogUtil.println("isTimeInXDay", "isAfterXDay", isAfterXDay, cur24Calendar.getTimeInMillis());
+            return isBeforeCur24 && isAfterXDay;
+        } else if(x > 0) {
+            boolean isAfterCur24 = timeCalendar.after(cur24Calendar);
+            if(TestUtil.isDev())
+                LogUtil.println("isTimeInXDay", "isAfterCur24", isAfterCur24, cur24Calendar.getTimeInMillis());
+            cur24Calendar.add(Calendar.DAY_OF_MONTH, x);
+            boolean isBeforeXDay = timeCalendar.before(cur24Calendar);
+            if(TestUtil.isDev())
+                LogUtil.println("isTimeInXDay", "isBeforeXDay", isBeforeXDay, cur24Calendar.getTimeInMillis());
+            return isBeforeXDay && isAfterCur24;
+        }
+        return false;
+    }
+    /**
+     * time在x天前或者-x天后 x为正,代表x天前,为负,代表-x天后
+     * @param time 判断的时间点
+     * @param x 从今天24点算起,x天内,x可以为负
+     * @return
+     */
+    public static boolean isTimeXDay(long time, int x) {
+        time = time < 10_000_000_000L ? time * 1000 : time;//秒的时间戳为10位数,要x1000  10_000_000_000L对应时间为2286-11-21 01:46:40
+        Calendar timeCalendar = Calendar.getInstance();
+        timeCalendar.setTimeInMillis(time);
+        //今日24点的时间
+        Calendar cur24Calendar = Calendar.getInstance();
+        applyDayEnd(cur24Calendar);
+        if(x > 0) {
+            cur24Calendar.add(Calendar.DAY_OF_MONTH, x);
+            boolean isAfterXDay = timeCalendar.after(cur24Calendar);
+            if(TestUtil.isDev())
+                LogUtil.println("isTimeXDay", "isAfterXDay", isAfterXDay, cur24Calendar.getTimeInMillis());
+            return isAfterXDay;
+        } else if(x < 0) {
+            cur24Calendar.add(Calendar.DAY_OF_MONTH, x);
+            boolean isBeforeXDay = timeCalendar.before(cur24Calendar);
+            if(TestUtil.isDev())
+                LogUtil.println("isTimeXDay", "isBeforeXDay", isBeforeXDay, cur24Calendar.getTimeInMillis());
+            return isBeforeXDay;
+        }
+        return false;
+    }
+    //时间转换为一天的开始,也是前一天的结束
+    public static Calendar applyDayBegin(Calendar calendar){
+        calendar.set(Calendar.HOUR_OF_DAY, 0);
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.SECOND, 0);
+        calendar.set(Calendar.MILLISECOND, 0);
+        return calendar;
+    }
+    //时间转换为一天的结束,也是后一天的开始
+    public static Calendar applyDayEnd(Calendar calendar){
+        calendar.set(Calendar.HOUR_OF_DAY, 24);
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.SECOND, 0);
+        calendar.set(Calendar.MILLISECOND, 0);
+        return calendar;
+    }
+
+    /**
      * 是否大于今天
      */
     public boolean big2Today(String dateStr, String dateFormat){

+ 14 - 0
app/src/main/java/com/sheep/gamegroup/view/customview/ErasableTextView.java

@@ -10,6 +10,7 @@ import android.graphics.Paint;
 import android.graphics.Path;
 import android.graphics.PorterDuff;
 import android.graphics.PorterDuffXfermode;
+import android.graphics.Rect;
 import android.graphics.RectF;
 import android.support.v7.widget.AppCompatTextView;
 import android.util.AttributeSet;
@@ -197,6 +198,19 @@ public class ErasableTextView extends AppCompatTextView {
             mCanvas = new Canvas(mErasableBitmap);
             // 背景色
             mCanvas.drawColor(mErasableColor);
+            //文字
+            Rect targetRect = new Rect(0, 0, mErasableWidth, mErasableHeight);
+            Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
+            paint.setStrokeWidth(3);
+            paint.setTextSize(getTextSize());
+            paint.setColor(Color.BLACK);
+            Paint.FontMetricsInt fontMetrics = paint.getFontMetricsInt();
+            // 转载请注明出处:http://blog.csdn.net/hursing
+            int baseline = (targetRect.bottom + targetRect.top - fontMetrics.bottom - fontMetrics.top) / 2;
+            // 下面这行是实现水平居中,drawText对应改为传入targetRect.centerX()
+            paint.setTextAlign(Paint.Align.CENTER);
+            mCanvas.drawText("刮奖区", targetRect.centerX(), baseline, paint);
+
         } catch (IllegalArgumentException e) {
             Log.e(TAG, "请在调用setErasable之前\n\n设置可擦除的宽度和高度, 调用方法为setErasableWidth, setErasableHeight");
             e.printStackTrace();

+ 0 - 15
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPersonalCenter.java

@@ -517,19 +517,4 @@ public class FgtPersonalCenter extends BaseFragment {
         }
     }
 
-    private boolean isFirstOnResume = true;//第一次onResume
-
-    @Override
-    public void onResume() {
-        super.onResume();
-        if (!isFirstOnResume) {
-            try {
-                initData();
-            } catch (Exception e) {
-                e.printStackTrace();
-                G.showToast(e.getMessage());
-            }
-        }
-        isFirstOnResume = false;
-    }
 }

+ 2 - 2
app/src/main/java/com/sheep/jiuyan/samllsheep/ui/activity/SignActivity.java

@@ -287,11 +287,11 @@ public class SignActivity extends BaseActivity implements UMShareListener {
     private void updateSignGuaJiang() {
         if(TestUtil.isDev())
             return;
-        //一个周期完成且今日没有刮奖时,可以进行刮奖
+        //一个周期完成且这个周期内没有刮奖时,可以进行刮奖
         ViewUtil.setVisibility(sign_gua_jiang_qu, canSignGuaJiang());
     }
     private boolean canSignGuaJiang(){
-        return isFinishInitLastScratch && ListUtil.size(userSignList) == SIGN_PERIOD && (rechargeLogEntity == null || !rechargeLogEntity.isToday());
+        return isFinishInitLastScratch && ListUtil.size(userSignList) == SIGN_PERIOD && (rechargeLogEntity == null || TimeUtil.isTimeXDay(rechargeLogEntity.getCreate_time(), -SIGN_PERIOD));
     }
 
     //签到周期