Browse Source

6.17合并版

王冲冲 6 years ago
parent
commit
04244cb005
34 changed files with 1964 additions and 1 deletions
  1. 1 1
      app/app.iml
  2. 2 0
      app/build.gradle
  3. 10 0
      app/src/main/AndroidManifest.xml
  4. 200 0
      app/src/main/java/com/silence/commonframe/activity/AirGuardActivity.java
  5. 136 0
      app/src/main/java/com/silence/commonframe/activity/AirGuardDetailActivity.java
  6. 258 0
      app/src/main/java/com/silence/commonframe/activity/AirGuardNewTimeActivity.java
  7. 81 0
      app/src/main/java/com/silence/commonframe/activity/AirGuardTimeClockActivity.java
  8. 209 0
      app/src/main/java/com/silence/commonframe/activity/AirGuardWordTimeActivity.java
  9. 214 0
      app/src/main/java/com/silence/commonframe/adapter/AirGuardWorKTimeAdapter.java
  10. 59 0
      app/src/main/java/com/silence/commonframe/adapter/MyWheelAdapter.java
  11. 130 0
      app/src/main/java/com/silence/commonframe/utils/LinearItemDecoration.java
  12. BIN
      app/src/main/res/drawable/bg_airguard.png
  13. BIN
      app/src/main/res/drawable/bg_airguard_bottom.png
  14. 4 0
      app/src/main/res/drawable/bg_rect_number.xml
  15. 10 0
      app/src/main/res/drawable/bg_switch_thumb_gray.xml
  16. 10 0
      app/src/main/res/drawable/bg_switch_thumb_white.xml
  17. 5 0
      app/src/main/res/drawable/bg_switch_whitethumb.xml
  18. 5 0
      app/src/main/res/drawable/cursor_color.xml
  19. 5 0
      app/src/main/res/drawable/decoration_item.xml
  20. 178 0
      app/src/main/res/layout/activity_air_guard.xml
  21. 102 0
      app/src/main/res/layout/activity_air_guard_detail.xml
  22. 149 0
      app/src/main/res/layout/activity_air_guard_new_time.xml
  23. 67 0
      app/src/main/res/layout/activity_air_guard_time_clock.xml
  24. 22 0
      app/src/main/res/layout/activity_air_guard_word_time.xml
  25. 63 0
      app/src/main/res/layout/item_airguard_worktime.xml
  26. 15 0
      app/src/main/res/layout/item_worktime_picker.xml
  27. BIN
      app/src/main/res/mipmap-xhdpi/bg_airguard_power.png
  28. BIN
      app/src/main/res/mipmap-xhdpi/bg_airguard_worktime.png
  29. BIN
      app/src/main/res/mipmap-xhdpi/bg_buzzer.png
  30. BIN
      app/src/main/res/mipmap-xhdpi/bg_time_clock.png
  31. BIN
      app/src/main/res/mipmap-xhdpi/power_off.png
  32. BIN
      app/src/main/res/mipmap-xhdpi/power_on.png
  33. 23 0
      app/src/main/res/values/strings.xml
  34. 6 0
      app/src/main/res/values/styles.xml

+ 1 - 1
app/app.iml

@@ -96,7 +96,6 @@
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/javac" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/legacy_multidex_aapt_derived_proguard_rules" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/legacy_multidex_main_dex_list" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_assets" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_manifests" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/prebuild" />
@@ -178,6 +177,7 @@
     <orderEntry type="library" name="Gradle: com.android.support:coordinatorlayout-28.0.0" level="project" />
     <orderEntry type="library" name="Gradle: cn.bingoogolapple:bga-refreshlayout-1.1.7" level="project" />
     <orderEntry type="library" name="Gradle: de.hdodenhof:circleimageview-3.0.0" level="project" />
+    <orderEntry type="library" name="Gradle: com.wx.wheelview:wheelview-1.3.3" level="project" />
     <orderEntry type="library" name="Gradle: com.youth.banner:banner-1.4.9" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:multidex-1.0.3" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:swiperefreshlayout-28.0.0" level="project" />

+ 2 - 0
app/build.gradle

@@ -133,4 +133,6 @@ dependencies {
     implementation project(path: ':photolibrary')
 
     implementation 'top.zibin:Luban:1.1.8'
+    //滚轮选择器
+    implementation 'com.wx.wheelview:wheelview:1.3.3'
 }

+ 10 - 0
app/src/main/AndroidManifest.xml

@@ -333,6 +333,16 @@
         <activity
             android:name="com.yalantis.ucrop.UCropActivity"
             android:screenOrientation="portrait" />
+        <!--空气卫士主界面-->
+        <activity android:name=".activity.AirGuardActivity" android:screenOrientation="portrait"/>
+        <!--空气卫士工作时间段界面-->
+        <activity android:name=".activity.AirGuardWordTimeActivity" android:screenOrientation="portrait"/>
+        <!--空气卫士添加时间段界面-->
+        <activity android:name=".activity.AirGuardNewTimeActivity" android:screenOrientation="portrait"/>
+        <!--空气卫士同步实时时间界面-->
+        <activity android:name=".activity.AirGuardTimeClockActivity" android:screenOrientation="portrait"/>
+        <!--空气卫士详情界面-->
+        <activity android:name=".activity.AirGuardDetailActivity" android:screenOrientation="portrait"></activity>
     </application>
 
 </manifest>

+ 200 - 0
app/src/main/java/com/silence/commonframe/activity/AirGuardActivity.java

@@ -0,0 +1,200 @@
+package com.silence.commonframe.activity;
+
+import android.content.Intent;
+import android.graphics.Color;
+import android.os.Build;
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.CompoundButton;
+import android.widget.ImageView;
+import android.widget.RelativeLayout;
+import android.widget.Switch;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.silence.commonframe.R;
+import com.silence.commonframe.utils.AtyContainer;
+import com.silence.commonframe.utils.TitlePopupMenu;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+
+/**
+ * 空气卫士界面
+ * @author 郑嘉明
+ * id: airguard_pic_top(顶部图片)、airguard_timeclock(实时时钟)、airguard_worktime(工作时间段)、airguard_buzzer(蜂鸣器)、buzzer_switch(蜂鸣器开关)、airguard_power(电源开关)、img_power(电源开关标志)
+ */
+public class AirGuardActivity extends AppCompatActivity implements View.OnClickListener {
+
+    /**
+     * 导航栏信息
+     * back_pic、navi_head_back_text(透明)、navi_head_text、navi_head_text_right(右侧文字)、navi_head_img_right(右侧图片)
+     */
+    @BindView(R.id.navi_head_text)
+    TextView navi_head_text;    //标题
+    @BindView(R.id.navi_head_text_right)
+    TextView navi_head_text_right;      //右侧文字
+
+    @BindView(R.id.airguard_timeclock)
+    RelativeLayout airguard_timeclock;      //实时时钟
+    @BindView(R.id.airguard_worktime)
+    RelativeLayout airguard_worktime;      //工作时间段
+    @BindView(R.id.airguard_buzzer)
+    RelativeLayout airguard_buzzer;      //蜂鸣器
+    @BindView(R.id.airguard_power)
+    RelativeLayout airguard_power;      //电源开关
+    @BindView(R.id.buzzer_switch)
+    Switch buzzer_switch;               //蜂鸣器开关
+    @BindView(R.id.img_power)
+    ImageView img_power;                //电源开关标志
+
+    private TitlePopupMenu titlePopupMenu;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_air_guard);
+        ButterKnife.bind(this);
+        AtyContainer.getInstance().addActivity(this);
+        navi_head_text.setText(R.string.device_airguard);       //设置标题
+        navi_head_text_right.setText(R.string.more);            //设置右侧文字
+        //设置全屏
+        initWindows();
+
+        //设置
+        init();
+    }
+
+    /**
+     * 基本的设置
+     */
+    private void init() {
+        airguard_timeclock.setOnClickListener(this);
+        airguard_worktime.setOnClickListener(this);
+        airguard_buzzer.setOnClickListener(this);
+        airguard_power.setOnClickListener(this);
+
+        //蜂鸣器开关监听
+        buzzerCheckedChangeListener();
+
+        //更多菜单
+        titlePopupMenu = new TitlePopupMenu(AirGuardActivity.this, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+        titlePopupMenu.setItemOnClickListener(new TitlePopupMenu.OnItemOnClickListener() {
+            @Override
+            public void onItemClick(String desc) {
+                showToast(desc);
+            }
+        });
+        titlePopupMenu.addItem(getResources().getDrawable(R.mipmap.camerasetup),
+                "设备详情");
+
+        navi_head_text_right.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                titlePopupMenu.show(v, TitlePopupMenu.STYLE_ALIGN_THIS_BOTTOM_WINDOW_RIGHT);
+            }
+        });
+    }
+
+    /**
+     * 更多菜单
+     */
+    private void showToast(String msg) {
+        if (msg.equals("设备详情")) {
+                Intent intent = new Intent(AirGuardActivity.this,AirGuardDetailActivity.class);
+                //应该要传ID和名称
+                startActivity(intent);
+        }
+    }
+
+    /**
+     * 蜂鸣器开关监听
+     */
+    private void buzzerCheckedChangeListener() {
+        buzzer_switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                if (isChecked){
+                    Toast.makeText(AirGuardActivity.this,"蜂鸣器开",Toast.LENGTH_SHORT).show();
+                }else {
+                    Toast.makeText(AirGuardActivity.this,"蜂鸣器关",Toast.LENGTH_SHORT).show();
+                }
+            }
+        });
+    }
+
+    /**
+     * 点击事件
+     */
+    @Override
+    public void onClick(View v) {
+        switch (v.getId()){
+            case R.id.airguard_timeclock:{
+                Intent intent = new Intent(AirGuardActivity.this, AirGuardTimeClockActivity.class);
+                startActivity(intent);
+            }
+                break;
+            case R.id.airguard_worktime:{
+                Intent intent = new Intent(AirGuardActivity.this, AirGuardWordTimeActivity.class);
+                startActivity(intent);
+            }
+            break;
+            case R.id.airguard_buzzer:{
+                buzzerSwitch();
+            }
+            break;
+            case R.id.airguard_power:{
+                powerSwitch();
+            }
+            break;
+        }
+    }
+
+    /**
+     * 电源的开关事件
+     */
+    private void powerSwitch() {
+        //要判断是否开了
+        Toast.makeText(AirGuardActivity.this,"电源开关",Toast.LENGTH_SHORT).show();
+        img_power.setImageResource(R.mipmap.power_on);
+    }
+
+    /**
+     * 蜂鸣器开关事件
+     */
+    private void buzzerSwitch() {
+        if (buzzer_switch.isChecked()){
+            buzzer_switch.setChecked(false);
+        }else {
+            buzzer_switch.setChecked(true);
+        }
+    }
+
+    /**
+     * 页面全屏
+     */
+    private void initWindows() {
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+            Window window = getWindow();
+            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
+                    | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
+            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
+            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
+            window.setStatusBarColor(Color.TRANSPARENT);
+            window.setNavigationBarColor(Color.BLACK);
+        }
+    }
+
+    /**
+     * 返回按钮
+     */
+    public void click_back(View view) {
+        finish();
+    }
+
+}

+ 136 - 0
app/src/main/java/com/silence/commonframe/activity/AirGuardDetailActivity.java

@@ -0,0 +1,136 @@
+package com.silence.commonframe.activity;
+
+import android.content.DialogInterface;
+import android.graphics.Color;
+import android.os.Build;
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+import android.view.KeyEvent;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+import android.view.inputmethod.EditorInfo;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.silence.commonframe.Dialog.CDialog;
+import com.silence.commonframe.R;
+import com.silence.commonframe.utils.AtyContainer;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+
+/**
+ * 空气卫士-设备详情
+ * @author 郑嘉明
+ * tv_airguard_id、et_airguard_name、airguard_update_name
+ */
+public class AirGuardDetailActivity extends AppCompatActivity {
+
+    /**
+     * 导航栏信息
+     * back_pic、navi_head_back_text(透明)、navi_head_text、navi_head_text_right(右侧文字)、navi_head_img_right(右侧图片)
+     */
+    @BindView(R.id.navi_head_text)
+    TextView navi_head_text;    //标题
+
+    @BindView(R.id.tv_airguard_id)
+    TextView tv_airguard_id;            //编号
+    @BindView(R.id.et_airguard_name)
+    EditText et_airguard_name;          //名称
+    @BindView(R.id.airguard_update_name)
+    ImageView airguard_update_name;     //(笔)修改名称
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_air_guard_detail);
+        ButterKnife.bind(this);
+        AtyContainer.getInstance().addActivity(this);
+        navi_head_text.setText(R.string.airguard_detail);       //设置标题
+        //设置全屏
+        initWindows();
+
+        //修改名字事件
+        updateAirName();
+
+    }
+
+    /**
+     * 修改名字操作
+     */
+    private void updateAirName() {
+        //输入框右边“笔”的点击事件
+        airguard_update_name.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                //修改名称提示框
+                dialogUpdateName();
+            }
+        });
+
+        //键盘回车事件
+        et_airguard_name.setOnEditorActionListener(new TextView.OnEditorActionListener() {
+            @Override
+            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
+                if (actionId == EditorInfo.IME_ACTION_DONE || (event != null && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)){
+                    //修改名称提示框
+                    dialogUpdateName();
+                    return true;
+                }
+                return false;
+            }
+        });
+    }
+
+    /**
+     * 修改名字提示框
+     */
+    private void dialogUpdateName() {
+        CDialog.Builder builder = new CDialog.Builder(AirGuardDetailActivity.this);
+        builder.setCancelable(false);
+        builder.setTitle(getResources().getString(R.string.tips));
+        builder.setMessage(getResources().getString(R.string.dialog_update_name));
+        builder.setPositiveButton(getResources().getString(R.string.sure), new DialogInterface.OnClickListener() {
+            @Override
+            public void onClick(DialogInterface dialog, int which) {
+                //确定修改后的操作
+                Toast.makeText(AirGuardDetailActivity.this,"确定修改",Toast.LENGTH_SHORT).show();
+                //这里修改名称的接口
+            }
+        });
+        builder.setNegativeButton(getResources().getString(R.string.cancle), new DialogInterface.OnClickListener() {
+            @Override
+            public void onClick(DialogInterface dialog, int which) {
+                dialog.dismiss();
+            }
+        });
+        builder.show();
+    }
+
+    /**
+     * 页面全屏
+     */
+    private void initWindows() {
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+            Window window = getWindow();
+            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
+                    | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
+            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
+            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
+            window.setStatusBarColor(Color.TRANSPARENT);
+            window.setNavigationBarColor(Color.BLACK);
+        }
+    }
+
+    /**
+     * 返回按钮
+     */
+    public void click_back(View view) {
+        finish();
+    }
+
+}

+ 258 - 0
app/src/main/java/com/silence/commonframe/activity/AirGuardNewTimeActivity.java

@@ -0,0 +1,258 @@
+package com.silence.commonframe.activity;
+
+import android.content.Intent;
+import android.graphics.Color;
+import android.os.Build;
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.FrameLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.silence.commonframe.R;
+import com.silence.commonframe.adapter.MyWheelAdapter;
+import com.silence.commonframe.utils.AtyContainer;
+import com.wx.wheelview.widget.WheelView;
+
+import java.util.ArrayList;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+
+/**
+ * 空气卫士-新建时间段
+ * @author 郑嘉明
+ * start_time_hour、start_time_minute、end_time_hour、end_time_minute、wind_speed_level(风速等级)、wind_speed_reduce(降低风速)、wind_speed_increase(提高风速)
+ */
+public class AirGuardNewTimeActivity extends AppCompatActivity {
+
+    public static int WHEEL_SIZE = 5;      //显示的滚动的数量
+    public static int WIND_SPEED_HIGN = 20;     //最高风速
+
+    /**
+     * 导航栏信息
+     * back_pic、navi_head_back_text(透明)、navi_head_text、navi_head_text_right(右侧文字)、navi_head_img_right(右侧图片)
+     */
+    @BindView(R.id.navi_head_text)
+    TextView navi_head_text;    //标题
+    @BindView(R.id.navi_head_text_right)
+    TextView navi_head_text_right;
+
+    @BindView(R.id.start_time_hour)
+    WheelView<String> start_time_hour;      //开始时间-小时
+    @BindView(R.id.start_time_minute)
+    WheelView<String> start_time_minute;    //开始时间-分钟
+    @BindView(R.id.end_time_hout)
+    WheelView<String> end_time_hour;        //结束时间-小时
+    @BindView(R.id.end_time_minute)
+    WheelView<String> end_time_minute;      //结束时间-分钟
+
+    @BindView(R.id.wind_speed_level)
+    TextView wind_speed_level;          //风速等级
+    @BindView(R.id.wind_speed_reduce)
+    FrameLayout wind_speed_reduce;      //降低风速
+    @BindView(R.id.wind_speed_increase)
+    FrameLayout wind_speed_increase;    //提高风速
+
+    private String start_time;
+    private String end_time;
+
+    private int wind_speed = 0;
+    private String type;
+
+    private Intent intent;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_air_guard_new_time);
+        ButterKnife.bind(this);
+        AtyContainer.getInstance().addActivity(this);
+        navi_head_text.setText(R.string.airguard_newtime);       //设置标题
+        navi_head_text_right.setText(R.string.sure);            //设置导航右侧文字
+        //设置全屏
+        initWindows();
+
+        //设置滚动时间控件的属性
+        initTimeWheel();
+
+        intent = getIntent();
+        wind_speed = intent.getIntExtra("wind_speed",0);
+        wind_speed_level.setText(String.valueOf(wind_speed));
+
+        type = intent.getStringExtra("type");
+
+        wind_speed_increase.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (wind_speed < WIND_SPEED_HIGN){
+                    wind_speed++;
+                }
+                wind_speed_level.setText(String.valueOf(wind_speed));
+            }
+        });
+
+        wind_speed_reduce.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (wind_speed > 0){
+                    wind_speed--;
+                }
+                wind_speed_level.setText(String.valueOf(wind_speed));
+            }
+        });
+
+        //确定点击事件
+        sureToAddTime();
+    }
+
+    /**
+     * 确定添加时间事件
+     */
+    private void sureToAddTime() {
+        navi_head_text_right.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Object start_hour = start_time_hour.getSelectionItem();
+                Object start_min = start_time_minute.getSelectionItem();
+                Object end_hour = end_time_hour.getSelectionItem();
+                Object end_min = end_time_minute.getSelectionItem();
+                int start_hour2 = Integer.valueOf(String.valueOf(start_hour));
+                int start_min2 = Integer.valueOf(String.valueOf(start_min));
+                int end_hour2 = Integer.valueOf(String.valueOf(end_hour));
+                int end_min2 = Integer.valueOf(String.valueOf(end_min));
+
+                if (start_hour2 > end_hour2 || ((start_hour2 == end_hour2 ) && start_min2 >= end_min2 )){
+                    Toast.makeText(AirGuardNewTimeActivity.this,getResources().getString(R.string.airguard_tips_starttime_morethan_endtime),Toast.LENGTH_SHORT).show();
+                    //重置时间
+                    start_time_hour.setSelection(0);
+                    start_time_minute.setSelection(0);
+                    end_time_hour.setSelection(12);
+                    end_time_minute.setSelection(0);
+                }else {
+                    ArrayList<String> listHour;
+                    ArrayList<String> listMin;
+                    listHour = getHourData();
+                    listMin = getMinuteData();
+                    start_time = listHour.get(start_hour2) + ":" + listMin.get(start_min2);
+                    end_time = listHour.get(end_hour2) + ":" +listMin.get(end_min2);
+
+                    String work_time = start_time + "-" + end_time;
+                    Intent intent_result = new Intent();
+                    intent_result.putExtra("worktime",work_time);
+                    intent_result.putExtra("wind_speed",wind_speed);
+                    if ("add".equals(type)){
+                        setResult(222,intent_result);
+                        finish();
+                    }else if ("update".equals(type)){
+                        intent_result.putExtra("position",intent.getIntExtra("position",-1));
+                        setResult(333,intent_result);
+                        finish();
+                    }
+
+                }
+            }
+        });
+    }
+
+    /**
+     * 初始化时间选择的属性
+     */
+    private void initTimeWheel() {
+        WheelView.WheelViewStyle wheelViewStyle = new WheelView.WheelViewStyle();
+        wheelViewStyle.selectedTextColor = Color.parseColor("#444444");        //选中字体颜色
+        wheelViewStyle.textColor = Color.parseColor("#444444");                //未选中字体颜色
+        wheelViewStyle.backgroundColor = Color.parseColor("#00000000");
+        wheelViewStyle.textAlpha = 0.3f;
+        start_time_hour.setStyle(wheelViewStyle);
+        start_time_minute.setStyle(wheelViewStyle);
+        end_time_hour.setStyle(wheelViewStyle);
+        end_time_minute.setStyle(wheelViewStyle);
+        start_time_hour.setLoop(true);
+        start_time_minute.setLoop(true);
+        end_time_hour.setLoop(true);
+        end_time_minute.setLoop(true);
+        start_time_hour.setWheelSize(WHEEL_SIZE);
+        start_time_minute.setWheelSize(WHEEL_SIZE);
+        end_time_hour.setWheelSize(WHEEL_SIZE);
+        end_time_minute.setWheelSize(WHEEL_SIZE);
+
+        //开始时间
+        start_time_hour.setWheelAdapter(new MyWheelAdapter(AirGuardNewTimeActivity.this));
+        start_time_hour.setWheelData(getHourData());
+        start_time_hour.setSelection(0);
+        start_time_minute.setWheelAdapter(new MyWheelAdapter(AirGuardNewTimeActivity.this));
+        start_time_minute.setWheelData(getMinuteData());
+        start_time_minute.setSelection(0);
+
+        //结束时间
+        MyWheelAdapter myWheelAdapter3 = new MyWheelAdapter(AirGuardNewTimeActivity.this);
+        end_time_hour.setWheelAdapter(myWheelAdapter3);
+        end_time_hour.setWheelData(getHourData());
+        end_time_hour.setSelection(12);
+        end_time_minute.setWheelAdapter(new MyWheelAdapter(AirGuardNewTimeActivity.this));
+        end_time_minute.setWheelData(getMinuteData());
+        end_time_minute.setSelection(0);
+    }
+
+    /**
+     * 获取小时
+     * @return listHour
+     */
+    private ArrayList<String> getHourData(){
+        ArrayList<String> listHour = new ArrayList<>();
+        for (int i = 0 ; i < 24; i++){
+            String hour = String.valueOf(i);
+            if (i < 10){
+                listHour.add("0" + hour);
+            }else {
+                listHour.add(hour);
+            }
+        }
+        return listHour;
+    }
+
+    /**
+     * 获取分钟
+     * @return listMin
+     */
+    private ArrayList<String> getMinuteData(){
+        ArrayList<String> listMin = new ArrayList<>();
+        for (int i = 0 ; i < 60; i++){
+            String min = String.valueOf(i);
+            if (i < 10){
+                listMin.add("0" + min);
+            }else {
+                listMin.add(min);
+            }
+        }
+        return listMin;
+    }
+
+    /**
+     * 页面全屏
+     */
+    private void initWindows() {
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+            Window window = getWindow();
+            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
+                    | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
+            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
+            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
+            window.setStatusBarColor(Color.TRANSPARENT);
+            window.setNavigationBarColor(Color.BLACK);
+        }
+    }
+
+    /**
+     * 返回按钮
+     */
+    public void click_back(View view) {
+        finish();
+    }
+
+}

+ 81 - 0
app/src/main/java/com/silence/commonframe/activity/AirGuardTimeClockActivity.java

@@ -0,0 +1,81 @@
+package com.silence.commonframe.activity;
+
+import android.graphics.Color;
+import android.os.Build;
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.Button;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.silence.commonframe.R;
+import com.silence.commonframe.utils.AtyContainer;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+
+/**
+ * 空气卫士-实时闹钟
+ * @author 郑嘉明
+ * id:airguard_current_time(当前时间)、bt_syn_nettime(同步时间按钮)
+ */
+public class AirGuardTimeClockActivity extends AppCompatActivity {
+
+    /**
+     * 导航栏信息
+     * back_pic、navi_head_back_text(透明)、navi_head_text、navi_head_text_right(右侧文字)、navi_head_img_right(右侧图片)
+     */
+    @BindView(R.id.navi_head_text)
+    TextView navi_head_text;    //标题
+
+    @BindView(R.id.airguard_current_time)
+    TextView airguard_current_time;
+    @BindView(R.id.bt_syn_nettime)
+    Button bt_syn_nettime;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_air_guard_time_clock);
+        ButterKnife.bind(this);
+        AtyContainer.getInstance().addActivity(this);
+        navi_head_text.setText(R.string.airguard_timeclock);       //设置标题
+        //设置全屏
+        initWindows();
+
+        //同步网络时间
+        bt_syn_nettime.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Toast.makeText(AirGuardTimeClockActivity.this,"同步",Toast.LENGTH_SHORT).show();
+            }
+        });
+
+    }
+
+    /**
+     * 页面全屏
+     */
+    private void initWindows() {
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+            Window window = getWindow();
+            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
+                    | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
+            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
+            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
+            window.setStatusBarColor(Color.TRANSPARENT);
+            window.setNavigationBarColor(Color.BLACK);
+        }
+    }
+
+    /**
+     * 返回按钮
+     */
+    public void click_back(View view) {
+        finish();
+    }
+}

+ 209 - 0
app/src/main/java/com/silence/commonframe/activity/AirGuardWordTimeActivity.java

@@ -0,0 +1,209 @@
+package com.silence.commonframe.activity;
+
+import android.content.Intent;
+import android.graphics.Color;
+import android.os.Build;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.silence.commonframe.R;
+import com.silence.commonframe.adapter.AirGuardWorKTimeAdapter;
+import com.silence.commonframe.utils.AtyContainer;
+import com.silence.commonframe.utils.LinearItemDecoration;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+
+/**
+ * 空气卫士-工作时间段
+ * @author 郑嘉明
+ */
+public class AirGuardWordTimeActivity extends AppCompatActivity {
+
+    /**
+     * 导航栏信息
+     * back_pic、navi_head_back_text(透明)、navi_head_text、navi_head_text_right(右侧文字)、navi_head_img_right(右侧图片)
+     */
+    @BindView(R.id.navi_head_text)
+    TextView navi_head_text;    //标题
+    @BindView(R.id.navi_head_text_right)
+    TextView navi_head_text_right;      //右侧文字
+
+    @BindView(R.id.worktime_recyclerview)
+    RecyclerView worktime_recyclerview;     //时间列表
+
+    AirGuardWorKTimeAdapter airGuardWorKTimeAdapter;    //工作时间适配器
+
+    List<HashMap<String,String>> listTime = new ArrayList<>();
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_air_guard_word_time);
+        ButterKnife.bind(this);
+        AtyContainer.getInstance().addActivity(this);
+        navi_head_text.setText(R.string.airguard_worktime);       //设置标题
+        navi_head_text_right.setText(R.string.add);            //设置右侧文字
+        //设置全屏
+        initWindows();
+
+        /**
+         * 这里获取接口数据给listTime
+         */
+//        //测试数据
+//        HashMap<String, String> hashMap = new HashMap<>();
+//        hashMap.put("time","00:18-18:30");
+//        hashMap.put("switch","0");
+//        listTime.add(hashMap);
+//        HashMap<String, String> hashMap2 = new HashMap<>();
+//        hashMap2.put("time","12:22-22:21");
+//        hashMap2.put("switch_state","1");
+//        listTime.add(hashMap2);
+//        //测试数据
+
+        //设置工作时间数据
+        setTimeDate();
+
+        //导航栏添加按钮点击事件
+        addNewTimeListener();
+
+    }
+
+    /**
+     * 导航栏添加按钮点击事件
+     */
+    private void addNewTimeListener() {
+        //导航栏“添加”按钮点击事件
+        navi_head_text_right.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent intent = new Intent(AirGuardWordTimeActivity.this,AirGuardNewTimeActivity.class);
+                intent.putExtra("wind_speed",0);
+                intent.putExtra("type","add");
+                startActivityForResult(intent,222);
+            }
+        });
+    }
+
+    /**
+     * 获取添加和修改的时间,添加修改时间的接口在这加
+     * @param requestCode 222
+     * @param resultCode 222
+     * @param data worktime
+     */
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (requestCode == 222 && resultCode == 222){
+            assert data != null;
+            String newtime = data.getStringExtra("worktime");
+            int wind_speed = data.getIntExtra("wind_speed",0);
+            HashMap<String,String> hashMap = new HashMap<>();
+            hashMap.put("time",newtime);
+            hashMap.put("wind_speed",String.valueOf(wind_speed));
+            airGuardWorKTimeAdapter.addWorkTime(hashMap);           //适配器增加数据刷新
+            //这里加添加时间的接口方法。
+
+        }else if (requestCode == 333 && resultCode == 333){
+            assert data != null;
+            String newtime = data.getStringExtra("worktime");
+            int pos = data.getIntExtra("position",-1);
+            int wind_speed = data.getIntExtra("wind_speed",0);
+            HashMap<String,String> hashMap = new HashMap<>();
+            hashMap.put("time",newtime);
+            hashMap.put("wind_speed",String.valueOf(wind_speed));
+            hashMap.put("switch_state","0");            //开关状态,0是关,1是开。有接口后要传值
+            airGuardWorKTimeAdapter.updateWorkTime(hashMap,pos);           //适配器修改数据刷新
+            //这里加修改时间的接口方法。
+
+        }
+    }
+
+    /**
+     * 设置工作时间数据
+     */
+    private void setTimeDate() {
+
+        airGuardWorKTimeAdapter = new AirGuardWorKTimeAdapter(AirGuardWordTimeActivity.this,listTime);
+        worktime_recyclerview.setLayoutManager(new LinearLayoutManager(AirGuardWordTimeActivity.this));
+        worktime_recyclerview.addItemDecoration(new LinearItemDecoration(AirGuardWordTimeActivity.this,LinearLayoutManager.HORIZONTAL,R.drawable.decoration_item));     //设置分割线
+        worktime_recyclerview.setAdapter(airGuardWorKTimeAdapter);
+
+        airGuardWorKTimeAdapter.setOnItenClickListener(new AirGuardWorKTimeAdapter.OnItemClickLitener() {
+            @Override
+            public void onItemClick(View view, int position) {
+
+            }
+
+            @Override
+            public void onDeleteClick(int position) {
+                //删除操作,删除的接口在这写
+                Toast.makeText(AirGuardWordTimeActivity.this,"删除成功",Toast.LENGTH_SHORT).show();
+                airGuardWorKTimeAdapter.deleteWorkTime(position);           //适配器删除数据刷新
+                //这里加删除时间的接口方法。
+
+            }
+
+            @Override
+            public void onUpdateClick(int position,int wind) {
+//                Toast.makeText(AirGuardWordTimeActivity.this,"编辑",Toast.LENGTH_SHORT).show();
+                Intent intent = new Intent(AirGuardWordTimeActivity.this,AirGuardNewTimeActivity.class);
+                intent.putExtra("wind_speed",wind);
+                intent.putExtra("type","update");
+                intent.putExtra("position",position);
+                startActivityForResult(intent,333);
+            }
+
+            @Override
+            public void onSwitchListener(Boolean isCheck, int position) {
+                //蜂鸣器的开关
+                if (isCheck){
+                    Toast.makeText(AirGuardWordTimeActivity.this,"打开",Toast.LENGTH_SHORT).show();
+
+                }else {
+                    Toast.makeText(AirGuardWordTimeActivity.this,"关闭",Toast.LENGTH_SHORT).show();
+
+                }
+            }
+
+        });
+
+        airGuardWorKTimeAdapter.notifyDataSetChanged();
+    }
+
+    /**
+     * 页面全屏
+     */
+    private void initWindows() {
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+            Window window = getWindow();
+            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
+                    | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
+            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
+            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
+            window.setStatusBarColor(Color.TRANSPARENT);
+            window.setNavigationBarColor(Color.BLACK);
+        }
+    }
+
+    /**
+     * 返回按钮
+     */
+    public void click_back(View view) {
+        finish();
+    }
+
+}

+ 214 - 0
app/src/main/java/com/silence/commonframe/adapter/AirGuardWorKTimeAdapter.java

@@ -0,0 +1,214 @@
+package com.silence.commonframe.adapter;
+
+import android.content.Context;
+import android.support.annotation.NonNull;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.CompoundButton;
+import android.widget.LinearLayout;
+import android.widget.Switch;
+import android.widget.TextView;
+
+import com.silence.commonframe.R;
+import com.silence.commonframe.utils.ItemSlideHelper;
+
+import java.util.HashMap;
+import java.util.List;
+
+public class AirGuardWorKTimeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> implements ItemSlideHelper.Callback {
+
+    private Context context;
+    private List<HashMap<String,String>> listTime;
+    private int windSpeed;
+
+    private RecyclerView mRecyclerView;
+
+    private ItemSlideHelper itemSlideHelper;
+
+    public AirGuardWorKTimeAdapter(Context context, List<HashMap<String,String>> listTime){
+        this.context = context;
+        this.listTime = listTime;
+    }
+
+    @NonNull
+    @Override
+    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
+        View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_airguard_worktime,viewGroup,false);
+        return new MyViewHolder(view);
+    }
+
+    @Override
+    public void onBindViewHolder(@NonNull final RecyclerView.ViewHolder viewHolder, int i) {
+        final MyViewHolder myViewHolder = (MyViewHolder) viewHolder;
+
+        myViewHolder.tv_worktime.setText(listTime.get(i).get("time"));
+        if ("1".equals(listTime.get(i).get("switch_state"))){
+            myViewHolder.switch_worktime.setChecked(true);
+        }else {
+            myViewHolder.switch_worktime.setChecked(false);
+        }
+
+        final String wind_speed = listTime.get(i).get("wind_speed");
+        if (wind_speed != null){
+            windSpeed = Integer.valueOf(wind_speed);
+        }
+
+        if (mListener != null){
+            myViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    int pos = myViewHolder.getAdapterPosition();
+                    mListener.onItemClick(myViewHolder.itemView,pos);
+                }
+            });
+
+            myViewHolder.time_update.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    int pos = myViewHolder.getAdapterPosition();
+                    mListener.onUpdateClick(pos,windSpeed);
+                }
+            });
+
+            myViewHolder.time_delete.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    int pos = myViewHolder.getAdapterPosition();
+                    mListener.onDeleteClick(pos);
+                }
+            });
+
+            myViewHolder.switch_worktime.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+                @Override
+                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                    int pos = myViewHolder.getAdapterPosition();
+                    mListener.onSwitchListener(isChecked,pos);
+                }
+            });
+
+        }
+
+
+    }
+
+    /**
+     * 添加时间
+     * @param time worktime
+     */
+    public void addWorkTime(HashMap<String,String> time){
+        time.put("switch_state","0");
+        listTime.add(time);
+        this.notifyItemInserted(listTime.size() - 1);
+    }
+
+    /**
+     * 删除时间
+     * @param postion delete_position
+     */
+    public void deleteWorkTime(int postion){
+
+        listTime.remove(postion);
+        this.notifyItemRemoved(postion);
+    }
+
+    /**
+     * 修改时间
+     * @param postion delete_position
+     */
+    public void updateWorkTime(HashMap<String,String> time,int postion){
+
+        listTime.set(postion,time);
+        this.notifyDataSetChanged();
+    }
+
+    @Override
+    public int getItemCount() {
+        return listTime != null ? listTime.size():0;
+    }
+
+    @Override
+    public void onAttachedToRecyclerView(@NonNull RecyclerView recyclerView) {
+        super.onAttachedToRecyclerView(recyclerView);
+
+        mRecyclerView = recyclerView;
+        itemSlideHelper = new ItemSlideHelper(mRecyclerView.getContext(),this);
+        mRecyclerView.addOnItemTouchListener(itemSlideHelper);
+    }
+
+    @Override
+    public int getHorizontalRange(RecyclerView.ViewHolder holder) {
+        MyViewHolder myViewHolder = (MyViewHolder) holder;
+        if (myViewHolder.itemView instanceof LinearLayout){
+            ViewGroup viewGroup = (ViewGroup) myViewHolder.itemView;
+            if (viewGroup.getChildCount() == 2){
+                return viewGroup.getChildAt(1).getLayoutParams().width;
+            }
+        }
+
+        return 0;
+    }
+
+    @Override
+    public RecyclerView.ViewHolder getChildViewHolder(View childView) {
+        return mRecyclerView.getChildViewHolder(childView);
+    }
+
+    @Override
+    public View findTargetView(float x, float y) {
+        return mRecyclerView.findChildViewUnder(x,y);
+    }
+
+    public class MyViewHolder extends RecyclerView.ViewHolder{
+
+        TextView tv_worktime;
+        Switch switch_worktime;
+        TextView time_update;
+        TextView time_delete;
+
+        public MyViewHolder(@NonNull View itemView) {
+            super(itemView);
+            tv_worktime = (TextView) itemView.findViewById(R.id.tv_worktime);
+            switch_worktime = (Switch) itemView.findViewById(R.id.switch_worktime);
+            time_update = (TextView) itemView.findViewById(R.id.time_update);
+            time_delete = (TextView) itemView.findViewById(R.id.time_delete);
+        }
+    }
+
+    private OnItemClickLitener mListener;
+
+    public interface OnItemClickLitener {
+        /**
+         * item点击回调
+         * @param view
+         * @param position
+         */
+        void onItemClick(View view, int position);
+
+        /**
+         * 删除按钮回调
+         *
+         * @param position
+         */
+        void onDeleteClick(int position);
+
+
+        /**
+         * 编辑按钮回调
+         * @param position
+         */
+        void onUpdateClick(int position, int wind);
+
+        /**
+         * 开关按钮回调
+         * @param position
+         */
+        void onSwitchListener(Boolean isCheck, int position);
+    }
+
+    public void setOnItenClickListener(OnItemClickLitener listener){
+        mListener = listener;
+    }
+
+}

+ 59 - 0
app/src/main/java/com/silence/commonframe/adapter/MyWheelAdapter.java

@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2016 venshine.cn@gmail.com
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.silence.commonframe.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.silence.commonframe.R;
+import com.wx.wheelview.adapter.BaseWheelAdapter;
+
+/**
+ * Demo
+ *
+ * @author venshine
+ */
+public class MyWheelAdapter extends BaseWheelAdapter<String> {
+
+    private Context mContext;
+
+    public MyWheelAdapter(Context context) {
+        mContext = context;
+    }
+
+    @Override
+    protected View bindView(int position, View convertView, ViewGroup parent) {
+        ViewHolder viewHolder;
+        if (convertView == null) {
+            viewHolder = new ViewHolder();
+            convertView = LayoutInflater.from(mContext).inflate(R.layout.item_worktime_picker, null);
+            viewHolder.textView = (TextView) convertView.findViewById(R.id.item_name);
+            convertView.setTag(viewHolder);
+        } else {
+            viewHolder = (ViewHolder) convertView.getTag();
+        }
+        viewHolder.textView.setText(mList.get(position));
+        return convertView;
+    }
+
+    static class ViewHolder {
+        TextView textView;
+    }
+
+}

+ 130 - 0
app/src/main/java/com/silence/commonframe/utils/LinearItemDecoration.java

@@ -0,0 +1,130 @@
+package com.silence.commonframe.utils;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.Canvas;
+import android.graphics.Paint;
+import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
+import android.support.annotation.ColorInt;
+import android.support.annotation.NonNull;
+import android.support.v4.content.ContextCompat;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.util.TypedValue;
+import android.view.View;
+
+/**
+ * RecyclerView 分割线
+ */
+public class LinearItemDecoration extends RecyclerView.ItemDecoration{
+
+    private Paint mPaint;
+    private Drawable mDivider;
+    private int mDividerHeight = 1;  //分割线高度,默认值1px
+    private int mOrientation;//分割线方向
+    private static final int[] ATTRS = new int[]{android.R.attr.listDivider};
+
+    /**
+     * 默认分割线
+     * @param context
+     * @param orientation 列表方向
+     */
+    public LinearItemDecoration (Context context,int orientation){
+        if (orientation != LinearLayoutManager.VERTICAL && orientation != LinearLayoutManager.HORIZONTAL){
+            throw new IllegalArgumentException("请输入正确的参数");
+        }
+        mOrientation = orientation;
+
+        final TypedArray a = context.obtainStyledAttributes(ATTRS);
+        mDivider = a.getDrawable(0);
+        a.recycle();
+    }
+
+    /**
+     * 自定义分割线
+     * 方向和图片
+     */
+    public LinearItemDecoration (Context context, int orientation,int drawableId){
+        this(context,orientation);
+        mDivider = ContextCompat.getDrawable(context,drawableId);
+        assert mDivider != null;
+        mDividerHeight = mDivider.getIntrinsicHeight();
+    }
+
+    /**
+     * 自定义分割线
+     * 方向,高度,颜色
+     */
+    public LinearItemDecoration(Context context,int orientation,int dividerHeight,int dividerColor){
+        this(context,orientation);
+        mDividerHeight = dividerHeight;
+        mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
+        mPaint.setColor(dividerColor);
+        mPaint.setStyle(Paint.Style.FILL);
+    }
+
+    /**
+     * 获取分割线尺寸
+     */
+    @Override
+    public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
+        super.getItemOffsets(outRect, view, parent, state);
+        outRect.set(0,0,0,mDividerHeight);
+    }
+
+    @Override
+    public void onDraw(@NonNull Canvas c, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
+        super.onDraw(c, parent, state);
+        if (mOrientation == LinearLayoutManager.VERTICAL){
+            drawVertical(c,parent);
+        }else {
+            drawHorizontal(c,parent);
+        }
+    }
+
+    /**
+     * 绘制横向分割线
+     */
+    private void drawHorizontal(Canvas canvas, RecyclerView parent){
+        final int left = parent.getPaddingLeft();
+        final int right = parent.getMeasuredWidth() - parent.getPaddingRight();
+        final int childSize = parent.getChildCount();
+        for (int i = 0; i < childSize; i++){
+            final View child = parent.getChildAt(i);
+            RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) child.getLayoutParams();
+            final int top = child.getBottom() + layoutParams.bottomMargin;
+            final int bottom = top + mDividerHeight;
+            if (mDivider != null){
+                mDivider.setBounds(left, top, right, bottom);
+                mDivider.draw(canvas);
+            }
+            if (mPaint != null){
+                canvas.drawRect(left,top,right,bottom,mPaint);
+            }
+        }
+    }
+
+    /**
+     * 绘制纵向分割线
+     */
+    private void drawVertical(Canvas canvas, RecyclerView parent){
+        final int top = parent.getPaddingTop();
+        final int bottom = parent.getMeasuredHeight() - parent.getPaddingBottom();
+        final int childSize = parent.getChildCount();
+        for (int i = 0; i < childSize; i++){
+            final View child = parent.getChildAt(i);
+            RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) child.getLayoutParams();
+            final int left = child.getRight() + layoutParams.rightMargin;
+            final int right = left + mDividerHeight;
+            if (mDivider != null){
+                mDivider.setBounds(left,top,right,bottom);
+                mDivider.draw(canvas);
+            }
+            if (mPaint != null){
+                canvas.drawRect(left,top,right,bottom,mPaint);
+            }
+        }
+    }
+
+}

BIN
app/src/main/res/drawable/bg_airguard.png


BIN
app/src/main/res/drawable/bg_airguard_bottom.png


+ 4 - 0
app/src/main/res/drawable/bg_rect_number.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
+    <stroke android:width="0.3dp" android:color="@color/mygray"/>
+</shape>

+ 10 - 0
app/src/main/res/drawable/bg_switch_thumb_gray.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape android:shape="rectangle"
+    xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <size android:height="20dp" android:width="20dp"/>
+
+    <corners android:radius="10dp"/>
+
+    <solid android:color="@color/mygray"/>
+</shape>

+ 10 - 0
app/src/main/res/drawable/bg_switch_thumb_white.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape android:shape="rectangle"
+    xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <size android:height="20dp" android:width="20dp"/>
+
+    <corners android:radius="10dp"/>
+
+    <solid android:color="@color/white"/>
+</shape>

+ 5 - 0
app/src/main/res/drawable/bg_switch_whitethumb.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_checked="true" android:drawable="@drawable/bg_switch_thumb_white"/>
+    <item android:drawable="@drawable/bg_switch_thumb_gray"/>
+</selector>

+ 5 - 0
app/src/main/res/drawable/cursor_color.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
+    <solid android:color="@color/myblue"/>
+    <size android:width="1dp"/>
+</shape>

+ 5 - 0
app/src/main/res/drawable/decoration_item.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
+    <size android:height="0.5dp"/>
+    <solid android:color="@color/mygray"/>
+</shape>

+ 178 - 0
app/src/main/res/layout/activity_air_guard.xml

@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".activity.AirGuardActivity">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical">
+
+        <include layout="@layout/navi_head"/>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:orientation="vertical">
+
+            <ImageView
+                android:id="@+id/airguard_pic_top"
+                android:layout_width="match_parent"
+                android:layout_height="180dp"
+                android:background="@drawable/bg_airguard"/>
+
+            <RelativeLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="20dp"
+                android:layout_marginRight="20dp"
+                android:layout_marginTop="25dp">
+
+                <RelativeLayout
+                    android:id="@+id/airguard_timeclock"
+                    android:layout_width="150dp"
+                    android:layout_height="100dp"
+                    android:layout_alignParentLeft="true"
+                    android:background="@mipmap/bg_time_clock">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="10dp"
+                        android:layout_marginLeft="10dp"
+                        android:textSize="15sp"
+                        android:textColor="@color/white"
+                        android:textStyle="bold"
+                        android:visibility="gone"
+                        android:text="@string/airguard_timeclock"/>
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_alignParentBottom="true"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginBottom="15dp"
+                        android:textSize="13sp"
+                        android:textColor="@color/white"
+                        android:visibility="gone"
+                        android:text="@string/airguard_gotosetup"/>
+
+                </RelativeLayout>
+
+                <RelativeLayout
+                    android:id="@+id/airguard_worktime"
+                    android:layout_width="150dp"
+                    android:layout_height="100dp"
+                    android:layout_alignParentRight="true"
+                    android:background="@mipmap/bg_airguard_worktime">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="10dp"
+                        android:layout_marginLeft="10dp"
+                        android:textSize="15sp"
+                        android:textColor="@color/white"
+                        android:textStyle="bold"
+                        android:visibility="gone"
+                        android:text="@string/airguard_worktime"/>
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_alignParentBottom="true"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginBottom="15dp"
+                        android:textSize="13sp"
+                        android:textColor="@color/white"
+                        android:visibility="gone"
+                        android:text="@string/airguard_gotosetup"/>
+
+                </RelativeLayout>
+
+            </RelativeLayout>
+
+            <RelativeLayout
+                android:id="@+id/airguard_buzzer"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="20dp"
+                android:layout_marginRight="20dp"
+                android:layout_marginTop="25dp">
+
+                <RelativeLayout
+                    android:layout_width="150dp"
+                    android:layout_height="100dp"
+                    android:layout_alignParentLeft="true"
+                    android:background="@mipmap/bg_buzzer">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="10dp"
+                        android:layout_marginLeft="10dp"
+                        android:textSize="15sp"
+                        android:textColor="@color/white"
+                        android:textStyle="bold"
+                        android:visibility="gone"
+                        android:text="@string/airguard_buzzer"/>
+
+                    <Switch
+                        android:id="@+id/buzzer_switch"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_alignParentBottom="true"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginBottom="15dp"
+                        android:track="@drawable/bg_switch_track"
+                        android:thumb="@drawable/bg_switch_whitethumb"
+                        />
+
+                </RelativeLayout>
+
+                <RelativeLayout
+                    android:id="@+id/airguard_power"
+                    android:layout_width="150dp"
+                    android:layout_height="100dp"
+                    android:layout_alignParentRight="true"
+                    android:background="@mipmap/bg_airguard_power">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="10dp"
+                        android:layout_marginLeft="10dp"
+                        android:textSize="15sp"
+                        android:textColor="@color/white"
+                        android:textStyle="bold"
+                        android:visibility="gone"
+                        android:text="@string/airguard_power"/>
+
+                    <ImageView
+                        android:id="@+id/img_power"
+                        android:layout_width="20dp"
+                        android:layout_height="20dp"
+                        android:layout_alignParentBottom="true"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginBottom="15dp"
+                        android:src="@mipmap/power_off"/>
+
+                </RelativeLayout>
+
+            </RelativeLayout>
+
+        </LinearLayout>
+
+        <ImageView
+            android:layout_width="match_parent"
+            android:layout_height="60dp"
+            android:layout_gravity="bottom"
+            android:background="@drawable/bg_airguard_bottom"
+            />
+
+    </LinearLayout>
+
+</android.support.constraint.ConstraintLayout>

+ 102 - 0
app/src/main/res/layout/activity_air_guard_detail.xml

@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".activity.AirGuardDetailActivity">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical">
+
+        <include layout="@layout/navi_head"/>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:padding="10dp">
+
+                <TextView
+                    style="@style/table_textview"
+                    android:text="@string/airguard_id"/>
+
+                <TextView
+                    android:id="@+id/tv_airguard_id"
+                    style="@style/table_textview"
+                    android:text=""/>
+
+            </LinearLayout>
+
+            <include layout="@layout/bottom_line"/>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:gravity="center_vertical"
+                android:paddingLeft="10dp"
+                android:paddingRight="10dp"
+                android:paddingTop="10dp"
+                android:paddingBottom="8dp">
+
+                <TextView
+                    android:text="@string/airguard_name"
+                    android:paddingBottom="2dp"
+                    style="@style/table_textview" />
+
+                <RelativeLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent">
+
+                    <TextView
+                        android:text=":"
+                        android:paddingBottom="2dp"
+                        style="@style/table_textview" />
+
+                    <EditText
+                        android:id="@+id/et_airguard_name"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:gravity="center_vertical"
+                        android:textColor="@color/myblack"
+                        android:textCursorDrawable="@drawable/cursor_color"
+                        android:textSize="16sp"
+                        android:paddingLeft="20dp"
+                        android:singleLine="true"
+                        android:imeOptions="actionDone"
+                        android:background="@null"
+                        />
+
+                    <ImageView
+                        android:id="@+id/airguard_update_name"
+                        android:layout_width="wrap_content"
+                        android:layout_height="match_parent"
+                        android:paddingTop="4dp"
+                        android:paddingBottom="4dp"
+                        android:layout_alignParentRight="true"
+                        android:layout_centerVertical="true"
+                        android:src="@mipmap/pen"/>
+
+                    <View
+                        android:layout_width="match_parent"
+                        android:layout_height="0.5dp"
+                        android:layout_marginLeft="3dp"
+                        android:layout_alignParentBottom="true"
+                        android:background="@color/myblack"/>
+
+                </RelativeLayout>
+
+            </LinearLayout>
+
+            <include layout="@layout/bottom_line"/>
+
+        </LinearLayout>
+
+    </LinearLayout>
+
+</android.support.constraint.ConstraintLayout>

+ 149 - 0
app/src/main/res/layout/activity_air_guard_new_time.xml

@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    tools:context=".activity.AirGuardNewTimeActivity">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical">
+
+        <include layout="@layout/navi_head"/>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:orientation="vertical">
+            
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:gravity="center_vertical"
+                android:layout_marginTop="10dp"
+                android:layout_marginBottom="10dp"
+                android:orientation="horizontal">
+
+                <View
+                    android:layout_width="25dp"
+                    android:layout_height="match_parent"/>
+
+                <com.wx.wheelview.widget.WheelView
+                    android:id="@+id/start_time_hour"
+                    android:layout_width="0dp"
+                    android:layout_height="150dp"
+                    android:layout_weight="1"
+                    />
+
+                <com.wx.wheelview.widget.WheelView
+                    android:id="@+id/start_time_minute"
+                    android:layout_width="0dp"
+                    android:layout_height="150dp"
+                    android:layout_weight="1"/>
+                
+                <View
+                    android:layout_width="20dp"
+                    android:layout_height="1dp"
+                    android:layout_marginLeft="25dp"
+                    android:layout_marginRight="25dp"
+                    android:background="@color/myblack"/>
+
+                <com.wx.wheelview.widget.WheelView
+                    android:id="@+id/end_time_hout"
+                    android:layout_width="0dp"
+                    android:layout_height="150dp"
+                    android:layout_weight="1"/>
+
+                <com.wx.wheelview.widget.WheelView
+                    android:id="@+id/end_time_minute"
+                    android:layout_width="0dp"
+                    android:layout_height="150dp"
+                    android:layout_weight="1"/>
+
+                <View
+                    android:layout_width="25dp"
+                    android:layout_height="match_parent"/>
+                
+            </LinearLayout>
+
+            <include layout="@layout/bottom_line"/>
+
+            <RelativeLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_margin="@dimen/margin_side">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/wind_speed"
+                    android:textColor="@color/myblack"
+                    android:textSize="18sp"/>
+
+                <LinearLayout
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:orientation="horizontal"
+                    android:layout_centerVertical="true"
+                    android:layout_alignParentRight="true"
+                    android:background="@drawable/bg_rect_number"
+                    android:gravity="center_vertical">
+
+                    <FrameLayout
+                        android:id="@+id/wind_speed_reduce"
+                        android:layout_width="22dp"
+                        android:layout_height="match_parent">
+
+                        <View
+                            android:layout_width="22dp"
+                            android:layout_height="match_parent"
+                            android:background="@color/myblue"/>
+
+                        <View
+                            android:layout_width="10dp"
+                            android:layout_height="1.5dp"
+                            android:layout_gravity="center"
+                            android:background="@color/white"/>
+
+                    </FrameLayout>
+
+                    <TextView
+                        android:id="@+id/wind_speed_level"
+                        android:layout_width="45dp"
+                        android:layout_height="wrap_content"
+                        android:gravity="center"
+                        android:textSize="16sp"
+                        android:textColor="@color/myblack"
+                        android:text=""/>
+
+                    <FrameLayout
+                        android:id="@+id/wind_speed_increase"
+                        android:layout_width="22dp"
+                        android:layout_height="match_parent">
+
+                        <View
+                            android:layout_width="22dp"
+                            android:layout_height="match_parent"
+                            android:background="@color/myblue"/>
+
+                        <ImageView
+                            android:layout_width="13dp"
+                            android:layout_height="13dp"
+                            android:layout_gravity="center"
+                            android:src="@mipmap/add_linkman"/>
+
+                    </FrameLayout>
+
+                </LinearLayout>
+
+            </RelativeLayout>
+
+            <include layout="@layout/bottom_line"/>
+
+        </LinearLayout>
+
+    </LinearLayout>
+
+</android.support.constraint.ConstraintLayout>

+ 67 - 0
app/src/main/res/layout/activity_air_guard_time_clock.xml

@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".activity.AirGuardTimeClockActivity">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical">
+
+        <include layout="@layout/navi_head"/>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:orientation="vertical">
+
+            <RelativeLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="@dimen/margin_side"
+                android:layout_marginRight="@dimen/margin_side"
+                android:layout_marginTop="15dp"
+                android:layout_marginBottom="15dp"
+                >
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/airguard_now_time"
+                    android:textColor="@color/myblack"
+                    android:textSize="16sp"
+                    />
+
+                <TextView
+                    android:id="@+id/airguard_current_time"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_alignParentRight="true"
+                    android:text="00:00"
+                    android:textColor="@color/myblack"
+                    android:textSize="16sp"
+                    />
+
+            </RelativeLayout>
+
+            <include layout="@layout/bottom_line"/>
+
+            <Button
+                android:id="@+id/bt_syn_nettime"
+                android:layout_width="match_parent"
+                android:layout_height="35dp"
+                android:layout_marginTop="80dp"
+                android:layout_marginLeft="@dimen/margin_side"
+                android:layout_marginRight="@dimen/margin_side"
+                android:text="@string/airguard_syntime"
+                android:textColor="@color/white"
+                android:textSize="18dp"
+                android:background="@drawable/bg_corner_submit"/>
+
+        </LinearLayout>
+
+    </LinearLayout>
+
+</android.support.constraint.ConstraintLayout>

+ 22 - 0
app/src/main/res/layout/activity_air_guard_word_time.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".activity.AirGuardWordTimeActivity">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical">
+
+        <include layout="@layout/navi_head"/>
+
+        <android.support.v7.widget.RecyclerView
+            android:id="@+id/worktime_recyclerview"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"/>
+
+    </LinearLayout>
+
+</android.support.constraint.ConstraintLayout>

+ 63 - 0
app/src/main/res/layout/item_airguard_worktime.xml

@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="horizontal">
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingLeft="10dp"
+        android:paddingRight="10dp"
+        android:paddingTop="15dp"
+        android:paddingBottom="15dp">
+
+        <TextView
+            android:id="@+id/tv_worktime"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textColor="@color/myblack"
+            android:textSize="18sp"
+            android:layout_centerVertical="true"
+            android:text="00:52-09:25"/>
+
+        <Switch
+            android:id="@+id/switch_worktime"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerVertical="true"
+            android:layout_alignParentRight="true"
+            android:track="@drawable/bg_switch_track"
+            android:thumb="@drawable/bg_switch_thumb"/>
+
+    </RelativeLayout>
+
+    <LinearLayout
+        android:layout_width="120dp"
+        android:layout_height="match_parent">
+
+        <TextView
+            android:id="@+id/time_update"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:background="#4e69ff"
+            android:gravity="center"
+            android:text="编辑"
+            android:textColor="#ffffff"
+            android:textSize="16sp" />
+
+        <TextView
+            android:id="@+id/time_delete"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:background="#f32e2e"
+            android:gravity="center"
+            android:text="删除"
+            android:textColor="#ffffff"
+            android:textSize="16sp" />
+
+    </LinearLayout>
+
+</LinearLayout>

+ 15 - 0
app/src/main/res/layout/item_worktime_picker.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content">
+
+    <TextView
+        android:id="@+id/item_name"
+        android:layout_width="match_parent"
+        android:layout_height="30dp"
+        android:layout_centerInParent="true"
+        android:gravity="center"
+        android:singleLine="true"
+        android:textSize="20sp"/>
+
+</RelativeLayout>

BIN
app/src/main/res/mipmap-xhdpi/bg_airguard_power.png


BIN
app/src/main/res/mipmap-xhdpi/bg_airguard_worktime.png


BIN
app/src/main/res/mipmap-xhdpi/bg_buzzer.png


BIN
app/src/main/res/mipmap-xhdpi/bg_time_clock.png


BIN
app/src/main/res/mipmap-xhdpi/power_off.png


BIN
app/src/main/res/mipmap-xhdpi/power_on.png


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

@@ -1167,4 +1167,27 @@
     <string name="RecheckMsg_name">复核人员:</string>
     <string name="RecheckMsg_time">处理时间:</string>
     <string name="RecheckMsg_result">处理结果:</string>
+
+    <!-- 空气卫士 -->
+    <string name="airguard_worktime">工作时间段</string>
+    <string name="airguard_newtime">新建时间段</string>
+    <string name="airguard_timeclock">实时时钟</string>
+    <string name="airguard_detail">设备详情</string>
+    <string name="airguard_gotosetup">去设置 》</string>
+    <string name="airguard_buzzer">蜂鸣器</string>
+    <string name="airguard_power">电源开关</string>
+    <string name="airguard_now_time">当前时间</string>
+    <string name="airguard_syntime">同步网络时间</string>
+    <string name="airguard_id">编号:</string>
+    <string name="airguard_name">名称</string>
+    <string name="wind_speed">风速</string>
+    <string name="airguard_tips_starttime_morethan_endtime">开始时间请小于结束时间</string>
+
+    <string name="more">更多</string>
+    <string name="add">添加</string>
+
+    <!-- 弹窗 -->
+    <string name="dialog_save_to_picture">保存到相册?</string>
+    <string name="dialog_update_name">确定修改名称么?</string>
+    <string name="device_airguard">空气卫士</string>
 </resources>

+ 6 - 0
app/src/main/res/values/styles.xml

@@ -14,6 +14,12 @@
 
     </style>
 
+    <style name="table_textview">
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:textSize">16sp</item>
+        <item name="android:textColor">@color/myblack</item>
+    </style>
    <!-- <style name="Text.Tab_Button" parent="@style/TopView">
         <item name="android:textSize">12sp</item>
         <item name="android:layout_width">0dp</item>