浏览代码

上课禁用期间禁止打电话和使用监听功能

YangJianguo 10 年之前
父节点
当前提交
a1cb07a69e

二进制
app/ArtimenV1.3.7.apk


+ 3 - 3
app/build.gradle

@@ -14,7 +14,7 @@ android {
         minSdkVersion 14
         targetSdkVersion 21
         versionCode 1
-        versionName "1.3.6"
+        versionName "1.3.7"
         //manifestPlaceholders=[UMENG_CHANNEL_VALUE:name]
 
     }
@@ -32,14 +32,14 @@ android {
 
          debug{
                //storeFile file("/home/allen/.android/debug.keystore")
-             storeFile file("/home/allen/Documents/android_keystore/release_keystore.jks")
+             storeFile file("/Users/yangjianguo/Desktop/Kido-And/release_keystore.jks")
              storePassword "artimen2014"
              keyAlias "ArtimenReleaseKey"
              keyPassword "artimen2014"
          }
 
           release{
-              storeFile file("/home/allen/Documents/android_keystore/release_keystore.jks")
+              storeFile file("/Users/yangjianguo/Desktop/Kido-And/release_keystore.jks")
               storePassword "artimen2014"
               keyAlias "ArtimenReleaseKey"
               keyPassword "artimen2014"

+ 7 - 0
app/src/main/java/cn/artimen/appring/data/bean/ChildTrackInfo.java

@@ -32,6 +32,9 @@ public class ChildTrackInfo implements Serializable {
     //默认男孩
     //private boolean Sex = true;
     private int Sex=1;
+
+    private ClassScheduleBean Schedule;
+
     @Expose
     private String address;
 
@@ -142,6 +145,10 @@ public class ChildTrackInfo implements Serializable {
         Sex = sex;
     }
 
+    public ClassScheduleBean getSchedule() { return Schedule; }
+
+    public void setSchedule(ClassScheduleBean schedule) { Schedule = schedule; }
+
     public String getAddress() {
         return address;
     }

+ 50 - 0
app/src/main/java/cn/artimen/appring/data/bean/ClassScheduleBean.java

@@ -1,5 +1,8 @@
 package cn.artimen.appring.data.bean;
 
+import org.json.JSONException;
+import org.json.JSONObject;
+
 import java.io.Serializable;
 
 /**
@@ -16,6 +19,7 @@ public class ClassScheduleBean implements Serializable{
     private String WeekDay;
     private String CreateTime;
     private String UpdateTime;
+    private boolean ValidFlag;
 
     @Override
     public String toString()
@@ -95,4 +99,50 @@ public class ClassScheduleBean implements Serializable{
     public void setUpdateTime(String updateTime) {
         UpdateTime = updateTime;
     }
+
+    public boolean getValidFlag() { return ValidFlag; }
+
+    public void setValidFlag(boolean validFlag) { ValidFlag = validFlag; }
+
+    //weekDay 1 代表星期一,2代表星期二,依次
+    public boolean isInforbidden(int weekDay, int hour, int minute)
+    {
+        if(getValidFlag() == false)
+            return false;
+
+        try {
+            JSONObject weekObj = new JSONObject(getWeekDay());
+            String onoff = weekObj.getString(""+weekDay);
+            if(Integer.parseInt(onoff) == 0)
+                return false;
+
+        } catch (JSONException e) {
+            return false;
+        }
+
+        int amStartTime = getTimeInMinute(getAMStartTime());
+        int amEndTime = getTimeInMinute(getAMEndTime());
+        int pmStartTime = getTimeInMinute(getPMStartTime());
+        int pmEndTime = getTimeInMinute(getPMEndTime());
+
+        int timeNow = hour * 60 + minute;
+        if(timeNow >= amStartTime && timeNow <= amEndTime)
+            return true;
+
+        if(timeNow >= pmStartTime && timeNow <= pmEndTime)
+            return true;
+
+        return false;
+    }
+
+    // 输入“16:30”,返回 16 * 60 + 30
+    private int getTimeInMinute(String timeStr)
+    {
+        int idx = timeStr.indexOf(":");
+        if(idx == -1)
+            return 0;
+        String hour = timeStr.substring(0, idx);
+        String minute = timeStr.substring(idx + 1);
+        return Integer.parseInt(hour) * 60 + Integer.parseInt(minute);
+    }
 }

+ 10 - 2
app/src/main/java/cn/artimen/appring/ui/avtivity/component/baby/SchoolTimeActivity.java

@@ -39,6 +39,7 @@ import cn.artimen.appring.constant.FenceCategoryConstants;
 import cn.artimen.appring.constant.JSONConstants;
 import cn.artimen.appring.constant.OutJsonConstants;
 import cn.artimen.appring.constant.UrlConstants;
+import cn.artimen.appring.data.bean.ChildTrackInfo;
 import cn.artimen.appring.data.bean.SchoolInfoBean;
 import cn.artimen.appring.ui.avtivity.base.BaseActivity;
 import cn.artimen.appring.ui.avtivity.component.left.WatchSettingsActivity;
@@ -87,7 +88,7 @@ public class SchoolTimeActivity extends BaseActivity implements View.OnClickList
         requestSchoolFenceData(true);
     }
 
-    private void requestSchoolFenceData(boolean showProgressFlag)
+    private void requestSchoolFenceData(final boolean showProgressFlag)
     {
         if(!DataManager.checkLoginResponseAndCurrentChildInfo())
         {
@@ -116,7 +117,14 @@ public class SchoolTimeActivity extends BaseActivity implements View.OnClickList
                 Logger.d(TAG,"responseBean.getCircleRadius():"+responseBean.getCircleRadius()+",responseBean.getSchedule:"+responseBean.getSchedule());
                 Logger.d(TAG,"weekday string:"+responseBean.getSchedule().getWeekDay());
                 mSchoolInfoBean=responseBean;
-
+                if(showProgressFlag == false)//修改后,再刷新,更新下当前小孩的信息
+                {
+                    ChildTrackInfo childInfo = DataManager.getInstance().getCurrentChildInfo();
+                    if(childInfo != null)
+                    {
+                        childInfo.setSchedule(mSchoolInfoBean.getSchedule());
+                    }
+                }
                 //setContentData();
                 //Map<Integer,Integer> weekday= GsonUtils.newInstance().string2Map(responseBean.getSchedule().getWeekDay());
                 mWeekDayMap= GsonUtils.newInstance().str2Map(responseBean.getSchedule().getWeekDay());

+ 23 - 0
app/src/main/java/cn/artimen/appring/ui/custom/widget/CustomMenuMapContainerView.java

@@ -40,6 +40,7 @@ import com.umeng.analytics.MobclickAgent;
 
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -128,6 +129,18 @@ public class CustomMenuMapContainerView extends RelativeLayout implements
     private Handler mHandler=new Handler(){
         @Override
         public void handleMessage(Message msg) {
+            ChildTrackInfo currentChild = DataManager.getInstance().getCurrentChildInfo();
+            boolean isForbidden = false;
+            if(currentChild != null && msg.what != MSG_EXPAND)
+            {
+                Calendar calendar = Calendar.getInstance();
+                int weekDay = calendar.get(Calendar.DAY_OF_WEEK) - 1;
+                weekDay = weekDay == 0 ? 7 : weekDay;
+                int hour = calendar.get(Calendar.HOUR_OF_DAY);
+                int minute = calendar.get(Calendar.MINUTE);
+
+                isForbidden = currentChild.getSchedule().isInforbidden(weekDay, hour, minute);
+            }
             switch(msg.what)
             {
                 case MSG_EXPAND:
@@ -136,6 +149,11 @@ public class CustomMenuMapContainerView extends RelativeLayout implements
                     mAnimationPopWindow.expandMenu();
                     break;
                 case MSG_CALL_BABY:
+                    if(isForbidden)
+                    {
+                        ToastUtils.showShortToast(R.string.cannot_make_call_while_inforbidden);
+                        return;
+                    }
                     MobclickAgent.onEvent(getContext(), "ClickPhoneCallFromMain");
                     callBaby();
                     break;
@@ -144,6 +162,11 @@ public class CustomMenuMapContainerView extends RelativeLayout implements
                     showPath();
                     break;
                 case MSG_SEND_SMS:
+                    if(isForbidden)
+                    {
+                        ToastUtils.showShortToast(R.string.cannot_monitor_while_inforbidden);
+                        return;
+                    }
                     MobclickAgent.onEvent(getContext(), "ClickMonitorFromMain");
                     sendSmsToWatch();
                     break;

+ 3 - 0
app/src/main/res/values-zh-rCN/strings.xml

@@ -645,5 +645,8 @@
 
     <string name="voice_length_too_short">语音过短</string>
     <string name="voice_record_canceled">录音取消</string>
+
+    <string name="cannot_make_call_while_inforbidden">上课禁用期间不可以打电话</string>
+    <string name="cannot_monitor_while_inforbidden">上课禁用期间不可以监听</string>
 </resources>
 

+ 3 - 0
app/src/main/res/values/strings.xml

@@ -718,4 +718,7 @@
 
     <string name="voice_length_too_short">Too Short</string>
     <string name="voice_record_canceled">Record Canceled</string>
+
+    <string name="cannot_make_call_while_inforbidden">Cannot make call during forbidden time</string>
+    <string name="cannot_monitor_while_inforbidden">Cannot monitor during forbidden time</string>
 </resources>

二进制
release_keystore.jks