riku
2022-01-20 5a0fff8095cd5356f57c181b7e7b820e0f7efacf
将项目拆分为两个子项目,监管和督察
已修改32个文件
已删除1个文件
已添加4个文件
735 ■■■■■ 文件已修改
.idea/compiler.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/gradle.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/misc.xml 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/runConfigurations.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/AndroidManifest.xml 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdappmodule/CommonApplication.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdappmodule/activity/LoginActivity.java 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdappmodule/activity/ScenseMapActivity.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdappmodule/activity/SplashActivity.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdappmodule/adapter/ContentFragmentAdapter.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdappmodule/fragment/SettingFragment.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdappmodule/module/inspection/InspectionDetailActivity.kt 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdappmodule/module/inspectioninfo/ProblemChangeActivity.kt 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdappmodule/module/login/CardFragment.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdappmodule/module/task/NewSubTaskViewModel.kt 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdappmodule/module/task/TaskFragment.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/cn/flightfeather/thirdappmodule/util/Domain.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
appDucha/src/main/AndroidManifest.xml 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
appDucha/src/main/java/com/flightfeather/ducha/DuChaApplication.kt 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
appDucha/src/main/java/com/flightfeather/ducha/module/DCMainActivity.kt 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
appDucha/src/main/java/com/flightfeather/ducha/module/DCSplashActivity.kt 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
appDucha/src/main/java/com/flightfeather/ducha/module/login/DCCardFragment.kt 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
appDucha/src/main/java/com/flightfeather/ducha/module/login/DCLoginActivity.kt 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
appDucha/src/main/java/com/flightfeather/ducha/module/login/DCSettingFragment.kt 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
appDucha/src/main/java/com/flightfeather/ducha/module/task/DCNewTempTaskActivity.kt 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
appDucha/src/main/java/com/flightfeather/ducha/module/task/DCTaskFragment.java 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
appDucha/src/main/res/drawable/ic_bg_blue.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
appDucha/src/main/res/drawable/ic_bg_green.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
appDucha/src/main/res/drawable/ic_bg_red.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
appDucha/src/main/res/layout/dc_activity_new_temp_task.xml 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
appDucha/src/main/res/layout/dc_fragment_task.xml 284 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
appDucha/src/main/res/mipmap-xhdpi/ic_new_scene.png 补丁 | 查看 | 原始文档 | blame | 历史
appDucha/src/main/res/mipmap-xhdpi/ic_new_subtask.png 补丁 | 查看 | 原始文档 | blame | 历史
appDucha/src/main/res/mipmap-xhdpi/ic_top_task.png 补丁 | 查看 | 原始文档 | blame | 历史
appDucha/src/main/res/values/styles.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
appsupervision/build.gradle 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
appsupervision/src/main/AndroidManifest.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/compiler.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="CompilerConfiguration">
    <bytecodeTargetLevel target="11" />
    <bytecodeTargetLevel target="1.8" />
  </component>
</project>
.idea/gradle.xml
@@ -5,7 +5,7 @@
    <option name="linkedExternalProjectsSettings">
      <GradleProjectSettings>
        <option name="delegatedBuild" value="false" />
        <option name="testRunner" value="PLATFORM" />
        <option name="testRunner" value="GRADLE" />
        <option name="distributionType" value="DEFAULT_WRAPPED" />
        <option name="externalProjectPath" value="$PROJECT_DIR$" />
        <option name="modules">
.idea/misc.xml
@@ -1,5 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="DesignSurface">
    <option name="filePathToZoomLevelMap">
      <map>
        <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/drawable/selector_image_right_or_false.xml" value="0.2604166666666667" />
        <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/drawable/shape_bg_gradient_reverse.xml" value="0.31145833333333334" />
        <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/drawable/shape_button_green.xml" value="0.309375" />
        <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/activity_base_map.xml" value="0.29739583333333336" />
        <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/activity_new_month_task.xml" value="0.29739583333333336" />
        <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/activity_night_work.xml" value="0.2989583333333333" />
        <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/activity_problem_change_detail.xml" value="0.30364583333333334" />
        <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/activity_problem_change_pollution_scene.xml" value="0.33489583333333334" />
        <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/activity_task.xml" value="0.29739583333333336" />
        <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/fragment_rank_content.xml" value="0.21458333333333332" />
        <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/item_night_work_no_more.xml" value="0.2989583333333333" />
        <entry key="..\:/AndroidStudioProjects/supervision_online/branches/customer_pollution_scene/app/src/main/res/layout/item_problem_change_pollution_scene.xml" value="0.33" />
      </map>
    </option>
  </component>
  <component name="EntryPointsManager">
    <list size="1">
      <item index="0" class="java.lang.String" itemvalue="org.greenrobot.eventbus.Subscribe" />
@@ -31,7 +49,7 @@
    </option>
    <option name="myNotNulls">
      <value>
        <list size="14">
        <list size="15">
          <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
          <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
          <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
@@ -46,11 +64,12 @@
          <item index="11" class="java.lang.String" itemvalue="org.eclipse.jdt.annotation.NonNull" />
          <item index="12" class="java.lang.String" itemvalue="io.reactivex.annotations.NonNull" />
          <item index="13" class="java.lang.String" itemvalue="io.reactivex.rxjava3.annotations.NonNull" />
          <item index="14" class="java.lang.String" itemvalue="lombok.NonNull" />
        </list>
      </value>
    </option>
  </component>
  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK" />
  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="11" project-jdk-type="JavaSDK" />
  <component name="SvnBranchConfigurationManager">
    <option name="myConfigurationMap">
      <map>
.idea/runConfigurations.xml
ÎļþÒÑɾ³ý
app/src/main/AndroidManifest.xml
@@ -48,9 +48,7 @@
        tools:ignore="GoogleAppIndexingWarning, LockedOrientationActivity"
        tools:targetApi="n">
        <!-- è°ƒè¯•版高德地图Key,根据开发电脑不同可能有所改变 -->
        <meta-data
            android:name="com.amap.api.v2.apikey"
            android:value="bf77391d8502be39f44c93b1f233ca91" /> <!-- android:value="5639b2f9853e650f74b874b5f98fc4ba" /> -->
         <!-- android:value="5639b2f9853e650f74b874b5f98fc4ba" /> -->
        <!-- android:value="0d875b71afa9e207e64cc6a0ee9fbda8" /> -->
        <!-- android:value="5639b2f9853e650f74b874b5f98fc4ba"   linli -->
        <!-- android:value="0d875b71afa9e207e64cc6a0ee9fbda8"   æœåŠ¡ç«¯ -->
@@ -100,18 +98,6 @@
            android:name="cn.flightfeather.thirdappmodule.activity.NewMonthTaskActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name="cn.flightfeather.thirdappmodule.activity.SplashActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:theme="@style/splashTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity> <!-- <activity -->
        <!-- android:name=".activity.MonitorObjectVersionMap" -->
        <!-- android:theme="@style/AppTheme.NoActionBar" /> -->
        <activity
            android:name="cn.flightfeather.thirdappmodule.activity.PhotoViewerActivity"
            android:screenOrientation="portrait"
@@ -217,6 +203,9 @@
            android:name="cn.flightfeather.thirdappmodule.module.common.OfficeFileManageActivity"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name=".module.common.MapLocationActivity"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name="cn.flightfeather.thirdappmodule.module.inspection.MenuGradeActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme"/>
app/src/main/java/cn/flightfeather/thirdappmodule/CommonApplication.java
@@ -19,7 +19,6 @@
import cn.flightfeather.thirdappmodule.util.GlobalConfig;
import cn.flightfeather.thirdappmodule.util.crashreport.MyCrashHandler;
import cn.flightfeather.thirdappmodule.util.notification.MyNotificationChannel;
import cn.flightfeather.thirdappmodule.util.push.PushService;
import cn.flightfeather.thirdappmodule.util.tbs.Tbs;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
@@ -32,8 +31,8 @@
public class CommonApplication extends Application {
//    public final String ROOT_URL ="http://192.168.0.200:8080/";
//    public final String ROOT_URL_IMAGE ="http://192.168.0.200:8080/images/";
    public final String ROOT_URL ="http://192.168.0.146:8080/";
    public final String ROOT_URL_IMAGE ="http://192.168.0.146:8080/images/";
    public String ROOT_URL ="http://192.168.0.146:8080/";
    public String ROOT_URL_IMAGE ="http://192.168.0.146:8080/images/";
    public String ROOT_URL_RELEASE = "http://47.100.191.150:9005/";
    public String ROOT_URL_RELEASE_IMAGE = ROOT_URL_RELEASE + "images/";
@@ -64,7 +63,7 @@
        MyNotificationChannel.Companion.init(this);
        //初始化移动推送
        PushService.Companion.init(this);
//        PushService.Companion.init(this);
        if (instance == null) {
            instance = this;
app/src/main/java/cn/flightfeather/thirdappmodule/activity/LoginActivity.java
@@ -13,9 +13,9 @@
import java.util.ArrayList;
import java.util.List;
import cn.flightfeather.thirdappmodule.CommonApplication;
import cn.flightfeather.thirdappmodule.R;
import cn.flightfeather.thirdappmodule.adapter.ContentFragmentAdapter;
import cn.flightfeather.thirdappmodule.CommonApplication;
import cn.flightfeather.thirdappmodule.module.login.CardFragment;
import cn.flightfeather.thirdappmodule.util.updateApp.UpdateAppUtil;
import cn.flightfeather.thirdappmodule.view.OrientedViewPager;
@@ -24,7 +24,6 @@
public class LoginActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener {
    //region å®šä¹‰å˜é‡åŠå¯¹è±¡
    //横向ViewPager
    private OrientedViewPager movp_main;
    //线性布局
@@ -39,9 +38,7 @@
    public List<Fragment> fragmentList = new ArrayList<>();
    //当前位置
    private int positionCurrent = 0;
    //endregion
    //region Activity创建
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
@@ -50,8 +47,6 @@
//        MyApplication.getInstance().addActivity(this);
        //初始化控件
        initControl();
        //初始化碎片集合数据
        initFragmentListData();
        //创建内容碎片适配器
        createContentFragmentAdapter();
        //设置横向ViewPager
@@ -64,31 +59,12 @@
        checkUpdate();
    }
    /**
     * Dispatch onResume() to fragments.  Note that for better inter-operation
     * with older versions of the platform, at the point of this call the
     * fragments attached to the activity are <em>not</em> resumed.  This means
     * that in some cases the previous state may still be saved, not allowing
     * fragment transactions that modify the state.  To correctly interact
     * with fragments in their proper state, you should instead override
     * {@link #onResumeFragments()}.
     */
    @Override
    protected void onResume() {
        super.onResume();
    }
    //endregion
    //region è®¾ç½®ç›‘听
    private void setListener() {
        //设置ViewPager滑动监听
        movp_main.setOnPageChangeListener(this);
    }
    //endregion
    //region è®¾ç½®æ¨ªå‘ViewPager
    private void setOrientationViewPager() {
        movp_main.setOrientation(OrientedViewPager.Orientation.VERTICAL);
        movp_main.setOffscreenPageLimit(2);
@@ -101,30 +77,27 @@
        fragmentCurrent = (CardFragment) adapter.instantiateItem(movp_main, positionCurrent);
    }
    //endregion
    //region åˆ›å»ºå†…容碎片适配器
    private void createContentFragmentAdapter() {
        adapter = new ContentFragmentAdapter(getSupportFragmentManager(), fragmentList);
        adapter = new ContentFragmentAdapter(getSupportFragmentManager(), getCardFragments());
    }
    //endregion
    //region åˆå§‹åŒ–Fragment集合数据
    public void initFragmentListData() {
        fragmentList.add(new CardFragment());
        fragmentList.add(new CardFragment());
        fragmentList.add(new CardFragment());
    protected ContentFragmentAdapter.onGetItemInterface getCardFragments() {
        return position -> {
            int a = position%3;
            if (a < 0) a = 0;
            return CardFragment.newInstance(a + 1, position);
        };
//        fragmentList.add(CardFragment.newInstance(1, 0));
//        fragmentList.add(CardFragment.newInstance(2, 1));
//        fragmentList.add(CardFragment.newInstance(3, 2));
    }
    //endregion
    //region åˆå§‹åŒ–控件
    private void initControl() {
        movp_main = (OrientedViewPager) findViewById(R.id.ovp_main);
        mln = (LinearLayout) findViewById(R.id.mln);
    }
    //endregion
    //region åˆå§‹åŒ–半透明状态栏
    public void initTransparentStatsBar() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
@@ -132,9 +105,7 @@
            mln.setPadding(0, getStatusBarHeight(), 0, 0);
        }
    }
    //endregion
    //region èŽ·å¾—çŠ¶æ€æ é«˜åº¦
    public int getStatusBarHeight() {
        int result = 0;
        int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
@@ -143,22 +114,16 @@
        }
        return result;
    }
    //endregion
    //region æ˜¾ç¤ºç™»å½•按钮
    public void showButton() {
        //   fragmentCurrent = adapter.getCardFragment();
        fragmentCurrent.showLoginButton();
    }
    //endregion
    //region éšè—ç™»å½•按钮
    public void hideButton() {
        fragmentCurrent.hideLoginButtion();
    }
    //endregion
    //region ViewPager滑动
    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        if (position == 0 && positionOffsetPixels == 0) {
@@ -167,9 +132,7 @@
            show = false;
        }
    }
    //endregion
    //region ViewPager选中
    @Override
    public void onPageSelected(int position) {
        fragmentCurrent = (CardFragment) adapter.instantiateItem(movp_main, position);
@@ -186,9 +149,7 @@
            fragmentCurrent.changeLoginColor("#f26d44");
        }
    }
    //endregion
    //region ViewPager滑动状态改变
    @Override
    public void onPageScrollStateChanged(int state) {
        if (state == 1) {
@@ -200,17 +161,14 @@
            showButton();
        }
    }
    //endregion
    public void setCurFragment(int pos) {
        movp_main.setCurrentItem(pos);
    }
    //<editor-fold desc="检查更新">
    private void checkUpdate() {
        UpdateAppUtil updateAppUtil = new UpdateAppUtil((CommonApplication) getApplication(), this);
        updateAppUtil.checkUpdateApp(false);
    }
    //</editor-fold>
}
app/src/main/java/cn/flightfeather/thirdappmodule/activity/ScenseMapActivity.java
@@ -1,5 +1,7 @@
package cn.flightfeather.thirdappmodule.activity;
import static cn.flightfeather.thirdappmodule.util.CommonUtils.getDomainItemByCalalogGuid;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
@@ -61,8 +63,6 @@
import cn.flightfeather.thirdappmodule.util.Constant;
import cn.flightfeather.thirdappmodule.util.Domain;
import cn.flightfeather.thirdappmodule.util.NavigationHelper;
import static cn.flightfeather.thirdappmodule.util.CommonUtils.getDomainItemByCalalogGuid;
public class ScenseMapActivity extends AppCompatActivity implements View.OnClickListener,
        RecyclerItemClickListener.OnItemClickListener, DistrictSearch.OnDistrictSearchListener
@@ -310,29 +310,29 @@
                + ";town:" + curArea.getTownCode() + curArea.getTownName());
        switch (curArea.getLevel()) {
            case Domain.LEVEL_PROVINCE:
                qb = mScenseDao.queryBuilder().where(ScenseDao.Properties.Provincecode.eq(curArea.getProvinceCode()))
                qb = mScenseDao.queryBuilder().where(ScenseDao.Properties.Provincecode.eq(curArea.getProvinceCode()), ScenseDao.Properties.Extension1.notEq("0"))
                        .orderAsc(ScenseDao.Properties.Typeid);
                break;
            case Domain.LEVEL_CITY:
                qb = mScenseDao.queryBuilder().where(ScenseDao.Properties.Provincecode.eq(curArea.getProvinceCode()),
                        ScenseDao.Properties.Citycode.eq(curArea.getCityCode()))
                        ScenseDao.Properties.Citycode.eq(curArea.getCityCode()), ScenseDao.Properties.Extension1.notEq("0"))
                        .orderAsc(ScenseDao.Properties.Typeid);
                break;
            case Domain.LEVEL_DISTRICT:
                qb = mScenseDao.queryBuilder().where(ScenseDao.Properties.Provincecode.eq(curArea.getProvinceCode()),
                        ScenseDao.Properties.Citycode.eq(curArea.getCityCode()),
                        ScenseDao.Properties.Districtcode.eq(curArea.getDistrictCode()))
                        ScenseDao.Properties.Districtcode.eq(curArea.getDistrictCode()), ScenseDao.Properties.Extension1.notEq("0"))
                        .orderAsc(ScenseDao.Properties.Typeid);
                break;
            case Domain.LEVEL_TOWN:
                qb = mScenseDao.queryBuilder().where(ScenseDao.Properties.Provincecode.eq(curArea.getProvinceCode()),
                        ScenseDao.Properties.Citycode.eq(curArea.getCityCode()),
                        ScenseDao.Properties.Districtcode.eq(curArea.getDistrictCode()),
                        ScenseDao.Properties.Towncode.eq(curArea.getTownCode()))
                        ScenseDao.Properties.Towncode.eq(curArea.getTownCode()), ScenseDao.Properties.Extension1.notEq("0"))
                        .orderAsc(ScenseDao.Properties.Typeid);
                break;
            default:
                qb = mScenseDao.queryBuilder().where(ScenseDao.Properties.Provincecode.eq(curArea.getProvinceCode()))
                qb = mScenseDao.queryBuilder().where(ScenseDao.Properties.Provincecode.eq(curArea.getProvinceCode()), ScenseDao.Properties.Extension1.notEq("0"))
                        .orderAsc(ScenseDao.Properties.Typeid);
                break;
        }
app/src/main/java/cn/flightfeather/thirdappmodule/activity/SplashActivity.java
@@ -49,11 +49,14 @@
        }
    };
    protected int getLayoutId() {
        return R.layout.activity_splash;
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);
        setContentView(getLayoutId());
        application = (CommonApplication) getApplication();
        showPermissionDialog();
    }
@@ -78,7 +81,7 @@
        dialog.show();
    }
    private void startLogin(){
    protected void startLogin(){
        Intent intent = new Intent(SplashActivity.this,LoginActivity.class);
        startActivity(intent);
        Thread thread = new Thread(new Runnable(){
@@ -92,7 +95,7 @@
            }
        });
        thread.run();
        thread.start();
    }
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
app/src/main/java/cn/flightfeather/thirdappmodule/adapter/ContentFragmentAdapter.java
@@ -10,36 +10,24 @@
import android.support.v4.view.PagerAdapter;
import android.view.View;
import java.util.ArrayList;
import java.util.List;
import cn.flightfeather.thirdappmodule.module.login.CardFragment;
public class ContentFragmentAdapter extends FragmentStatePagerAdapter {
    private List<Fragment> fragments = new ArrayList<>();
    private final onGetItemInterface onGetItemInterface;
    private int itemPosition= PagerAdapter.POSITION_UNCHANGED;
    private CardFragment cardFragment;
    public ContentFragmentAdapter(FragmentManager fm, List<Fragment> fragments) {
    public ContentFragmentAdapter(FragmentManager fm, onGetItemInterface onGetItemInterface) {
        super(fm);
        this.fragments = fragments;
        this.onGetItemInterface = onGetItemInterface;
    }
    @Override
    public Fragment getItem(int position) {
            int a = position%3;
        if (a ==0){
            return  CardFragment.newInstance(1,position);
        }else if (a ==1){
            return CardFragment.newInstance(2,position);
        }else if (a ==2){
            return CardFragment.newInstance(3,position);
        }else {
            return CardFragment.newInstance(1,position);
        }
        int a = position%3;
        if (a < 0) a = 0;
        return onGetItemInterface.getItem(position);
    }
    @Override
@@ -47,11 +35,6 @@
        cardFragment = (CardFragment) object;
        super.setPrimaryItem(container, position, object);
    }
    public CardFragment getCardFragment() {
        return cardFragment;
    }
    @Override
    public int getCount() {
@@ -76,4 +59,7 @@
    }
    public interface onGetItemInterface {
        Fragment getItem(int position);
    }
}
app/src/main/java/cn/flightfeather/thirdappmodule/fragment/SettingFragment.java
@@ -76,14 +76,19 @@
            public void onClick(DialogInterface dialogInterface, int i) {
                LoginInitializer.INSTANCE.onLoginStatusCheck(getContext(), false, application.getCurrentUser().getAcountname());
                Intent intent = new Intent(getActivity(), LoginActivity.class);
                startActivity(intent);
                onLogOut();
                getActivity().finish();
            }
        });
        dialog.setNegativeButton("取消",null);
        dialog.show();
     }
    protected void onLogOut() {
        Intent intent = new Intent(getActivity(), LoginActivity.class);
        startActivity(intent);
    }
     private void changePassword(){
         final View view2 = View.inflate(getContext(), R.layout.dialog_change_password, null);
app/src/main/java/cn/flightfeather/thirdappmodule/module/inspection/InspectionDetailActivity.kt
@@ -632,7 +632,7 @@
                        val l1 = LatLng(lat, lng)
                        val l2 = LatLng(last[1], last[0])
                        val distance = AMapUtils.calculateLineDistance(l1, l2)
                        if (distance >= 1 && distance < 1000 && lat != 0.0 && lng != 0.0) {
                        if (distance >= 0.5 && distance < 1000 && lat != 0.0 && lng != 0.0) {
                            extension1 = "${extension1};${lng},${lat}"
                            //道路监测点和道路类型的场景,直接展示轨迹;其余场景只有管理员和政府部门可以查看
                            if (
@@ -646,7 +646,7 @@
                }
            }
        }
        timer.schedule(timerTask, 0, 10000)
        timer.schedule(timerTask, 0, 2000)
    }
    private fun trackingDone() {
app/src/main/java/cn/flightfeather/thirdappmodule/module/inspectioninfo/ProblemChangeActivity.kt
@@ -43,7 +43,6 @@
    private val POPUP_TITLE = "问题类型"
    private var unbinder: Unbinder? = null
    //</editor-fold>
    //<editor-fold desc="lifecycle">
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    override fun onCreate(savedInstanceState: Bundle?) {
@@ -72,6 +71,7 @@
    }
    //</editor-fold>
    //<editor-fold desc="标题栏">
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@@ -95,6 +95,7 @@
    }
    //</editor-fold>
    //<editor-fold desc="ViewPager初始化">
    private var tabIndicators = mutableListOf<String>()//tab标题
    private var tabFragments = mutableListOf<Fragment>()//内容
app/src/main/java/cn/flightfeather/thirdappmodule/module/login/CardFragment.java
@@ -1,6 +1,8 @@
package cn.flightfeather.thirdappmodule.module.login;
import static android.graphics.PorterDuff.Mode.SRC_IN;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
@@ -37,8 +39,6 @@
import retrofit2.http.Body;
import retrofit2.http.POST;
import static android.graphics.PorterDuff.Mode.SRC_IN;
/**
 * A simple {@link Fragment} subclass.
 */
@@ -46,10 +46,10 @@
    private Button mbtn_login;
    protected TextView mtv_name;
    protected ImageView miv_photo;
    private static String USER_TYPE = "type";
    protected static String USER_TYPE = "type";
    private int type = 0;
    private int position = 0;
    private static String POSITION = "position";
    protected static String POSITION = "position";
    protected String FFUSER = "飞羽环保";
    protected String ADMIN = "主管部门";
    protected String POLLUTION = "企业";
@@ -225,7 +225,7 @@
                    useinfoDao.insert(user);
                    LoginInitializer.INSTANCE.onLoginStatusCheck(getContext(), true, accountName);
                    Toast.makeText(application, "登录成功", Toast.LENGTH_SHORT).show();
                    startActivity(new Intent(getActivity(), MainActivity.class));
                    loginSuccess();
                    getActivity().finish();
                } else {
                    Toast.makeText(application, "登录失败", Toast.LENGTH_SHORT).show();
@@ -239,6 +239,10 @@
        });
    }
    protected void loginSuccess() {
        startActivity(new Intent(getActivity(), MainActivity.class));
    }
    //登录按钮的点击事件
    @Override
    public void onClick(View v) {
app/src/main/java/cn/flightfeather/thirdappmodule/module/task/NewSubTaskViewModel.kt
@@ -149,9 +149,9 @@
                                    unSelectedSceneList.add(s)
                                }
                            }
                            selectedDisplaySceneList.sortByDescending {sc ->
                                sc.extension1
                            }
//                            selectedDisplaySceneList.sortByDescending {sc ->
//                                sc.extension1
//                            }
                            //结果已按照Index å±žæ€§é€’增排序
                            totalSceneList.value  = it
                            getSceneType(it)
app/src/main/java/cn/flightfeather/thirdappmodule/module/task/TaskFragment.java
@@ -306,7 +306,11 @@
            showTaskKindDialog();
        } else if (id == R.id.rl_scense_map) {
            Intent intent1 = new Intent(getActivity(), ScenseMapActivity.class);
            intent1.putExtra(Constant.KEY_INTENT_TODAY_TASKLIST, mSubtaskList);
            ArrayList<Subtask> list = new ArrayList<>();
            if (!mSubtaskList.isEmpty()) {
                list.addAll(mSubtaskList.subList(1, mSubtaskList.size()));
            }
            intent1.putExtra(Constant.KEY_INTENT_TODAY_TASKLIST, list);
            getActivity().startActivityForResult(intent1, Constant.REQUESTCODE_FROM_TASKFRAGMENT);
        } else if (id == R.id.rl_add_scense) {
            startActivity(new Intent(getActivity(), SceneDetailActivity.class));
app/src/main/java/cn/flightfeather/thirdappmodule/util/Domain.java
@@ -66,7 +66,7 @@
    //场景是否可用(工地是否完工,码头是否复耕等)
    String SCENSE_AVAILABLE = "";
    String SCENSE_AVAILABLE = "1";
    String SCENSE_UNAVAILABLE = "0";
appDucha/src/main/AndroidManifest.xml
@@ -10,7 +10,12 @@
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        tools:replace="android:name">
        tools:replace="android:name"
        tools:ignore="LockedOrientationActivity" >
        <meta-data
            android:name="com.amap.api.v2.apikey"
            android:value="d19e3ded58044b8a42156bc97833ff05" />
        <provider
            android:name="android.support.v4.content.FileProvider"
@@ -38,20 +43,31 @@
            android:name=".module.DCMainActivity"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar"
            tools:ignore="LockedOrientationActivity" />
        <activity android:name=".module.common.ExportedFileActivity"
            android:screenOrientation="portrait"
            tools:ignore="LockedOrientationActivity" />
        <activity android:name=".module.common.FileExportActivity"
            android:screenOrientation="portrait"
            tools:ignore="LockedOrientationActivity" />
        <activity
            android:name=".module.inspection.DCInspectionDetailActivity"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name=".module.login.DCLoginActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar" >
        </activity>
        <activity android:name=".module.task.DCNewTempTaskActivity"
            android:screenOrientation="portrait"
            tools:ignore="LockedOrientationActivity" />
            tools:ignore="LockedOrientationActivity"
            android:theme="@style/AppTheme.ActionBar"/>
        <activity android:name=".module.inspection.DCInspectionDetailActivity"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity android:name=".module.common.ExportedFileActivity"
            android:screenOrientation="portrait"
            tools:ignore="LockedOrientationActivity"
            android:theme="@style/AppTheme.ActionBar"/>
        <activity android:name=".module.common.FileExportActivity"
            android:screenOrientation="portrait"
            tools:ignore="LockedOrientationActivity"
            android:theme="@style/AppTheme.ActionBar"/>
    </application>
</manifest>
appDucha/src/main/java/com/flightfeather/ducha/DuChaApplication.kt
@@ -10,6 +10,9 @@
    override fun onCreate() {
        released = false
        ROOT_URL = "http://192.168.0.146:8080/"
        ROOT_URL_IMAGE = ROOT_URL + "images/"
//        ROOT_URL_RELEASE = "http://114.215.109.124:8805/"
        ROOT_URL_RELEASE_IMAGE = ROOT_URL_RELEASE + "images/"
        super.onCreate()
appDucha/src/main/java/com/flightfeather/ducha/module/DCMainActivity.kt
@@ -8,6 +8,7 @@
import cn.flightfeather.thirdappmodule.module.home.HomeFragment_scene
import cn.flightfeather.thirdappmodule.module.inspection.InspectionFragment
import cn.flightfeather.thirdappmodule.module.inspectioninfo.InspectionInfoFragment
import com.flightfeather.ducha.module.login.DCSettingFragment
import com.flightfeather.ducha.module.task.DCTaskFragment
import java.util.*
@@ -27,7 +28,7 @@
            fragmentList.add(DCTaskFragment())
            fragmentList.add(InspectionFragment())
            fragmentList.add(SettingFragment())
            fragmentList.add(DCSettingFragment())
            ll_home.visibility = View.GONE
            ll_inspection_infos.visibility = View.GONE
@@ -41,7 +42,7 @@
            fragmentList.add(HomeFragment_comptent())
            fragmentList.add(InspectionFragment())
            fragmentList.add(AnalysisOverViewFragment.newInstance())
            fragmentList.add(SettingFragment())
            fragmentList.add(DCSettingFragment())
            ll_inspection_infos.visibility = View.GONE
            ll_task.visibility = View.GONE
@@ -52,7 +53,7 @@
            fragmentList.add(HomeFragment_scene())
            fragmentList.add(InspectionInfoFragment.newInstance())
            fragmentList.add(SettingFragment())
            fragmentList.add(DCSettingFragment())
            ll_task.visibility = View.GONE
            ll_inspection.visibility = View.GONE
appDucha/src/main/java/com/flightfeather/ducha/module/DCSplashActivity.kt
@@ -1,8 +1,10 @@
package com.flightfeather.ducha.module
import android.content.Intent
import android.os.Bundle
import cn.flightfeather.thirdappmodule.activity.SplashActivity
import com.flightfeather.ducha.R
import com.flightfeather.ducha.module.login.DCLoginActivity
/**
 * @author riku
@@ -10,8 +12,21 @@
 */
class DCSplashActivity : SplashActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.dc_activity_splash)
    override fun getLayoutId(): Int {
        return R.layout.dc_activity_splash
    }
    override fun startLogin() {
        val intent = Intent(this, DCLoginActivity::class.java)
        startActivity(intent)
        val thread = Thread {
            try {
                Thread.sleep(500)
                finish()
            } catch (e: InterruptedException) {
                e.printStackTrace()
            }
        }
        thread.start()
    }
}
appDucha/src/main/java/com/flightfeather/ducha/module/login/DCCardFragment.kt
@@ -1,14 +1,28 @@
package com.flightfeather.ducha.module.login
import android.content.Intent
import android.os.Bundle
import cn.flightfeather.thirdappmodule.module.login.CardFragment
import com.flightfeather.ducha.R
import com.flightfeather.ducha.module.DCMainActivity
/**
 * @author riku
 * Date: 2021/7/29
 */
class DCCardFragment : CardFragment() {
    companion object {
        @JvmStatic
        fun newInstance(type: Int, position: Int): DCCardFragment {
            val dcCardFragment = DCCardFragment()
            val bundle = Bundle()
            bundle.putInt(USER_TYPE, type)
            bundle.putInt(POSITION, position)
            dcCardFragment.arguments = bundle
            return dcCardFragment
        }
    }
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
@@ -32,4 +46,8 @@
            }
        }
    }
    override fun loginSuccess() {
        startActivity(Intent(activity, DCMainActivity::class.java))
    }
}
appDucha/src/main/java/com/flightfeather/ducha/module/login/DCLoginActivity.kt
@@ -1,6 +1,7 @@
package com.flightfeather.ducha.module.login
import cn.flightfeather.thirdappmodule.activity.LoginActivity
import cn.flightfeather.thirdappmodule.adapter.ContentFragmentAdapter.onGetItemInterface
/**
 * @author riku
@@ -8,9 +9,11 @@
 */
class DCLoginActivity : LoginActivity() {
    override fun initFragmentListData() {
        fragmentList.add(DCCardFragment())
        fragmentList.add(DCCardFragment())
        fragmentList.add(DCCardFragment())
    override fun getCardFragments(): onGetItemInterface {
        return onGetItemInterface { position: Int ->
            var a = position % 3
            if (a < 0) a = 0
            DCCardFragment.newInstance(a + 1, position)
        }
    }
}
appDucha/src/main/java/com/flightfeather/ducha/module/login/DCSettingFragment.kt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
package com.flightfeather.ducha.module.login
import android.content.Intent
import cn.flightfeather.thirdappmodule.fragment.SettingFragment
/**
 * @author riku
 * Date: 2021/8/27
 */
class DCSettingFragment : SettingFragment() {
    override fun onLogOut() {
        val intent = Intent(activity, DCLoginActivity::class.java)
        startActivity(intent)
    }
}
appDucha/src/main/java/com/flightfeather/ducha/module/task/DCNewTempTaskActivity.kt
@@ -93,7 +93,7 @@
        supportActionBar?.apply {
            setDisplayHomeAsUpEnabled(true)
            title = "临时任务"
            title = "制订任务"
        }
        initSpinner()
@@ -590,6 +590,8 @@
                        mCurrentTask.executorusernames = userNames.toString()
                        mCurrentTask.executorrealtimes = userRealNames.toString()
                        sp_team_members.text = userRealNames.replace(Constant.CONNECTOR.toRegex(), Constant.CONNECTOR_FOR_VIEW)
                        userInfoViewModel.saveMembers(Triple(mCurrentTask.executorguids, mCurrentTask.executorusernames, mCurrentTask.executorrealtimes))
                        if (memberCheckedArray == null && list.isNotEmpty()) {
                            memberCheckedArray = BooleanArray(list.size)
appDucha/src/main/java/com/flightfeather/ducha/module/task/DCTaskFragment.java
@@ -27,6 +27,7 @@
import java.util.List;
import java.util.Map;
import cn.flightfeather.thirdappmodule.CommonApplication;
import cn.flightfeather.thirdappmodule.activity.NewMonthTaskActivity;
import cn.flightfeather.thirdappmodule.activity.ScenseMapActivity;
import cn.flightfeather.thirdappmodule.activity.TaskActivity;
@@ -78,7 +79,7 @@
        taskViewModel = ViewModelProviders.of(this).get(DCTaskViewModel.class);
        return inflater.inflate(R.layout.fragment_task, container, false);
        return inflater.inflate(R.layout.dc_fragment_task, container, false);
    }
    @Override
@@ -86,20 +87,6 @@
        super.onViewCreated(view, savedInstanceState);
        initUI(view);
        initData();
//        view.findViewById(R.id.ll_container_todytask).setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                try {
//                    int a = 0 / 0;
//                } catch (Exception e) {
//                    MyCrashHandler c = MyCrashHandler.Companion.getInstance();
//                    if (c != null) {
//                        c.catchException(e);
//                    }
//                }
//            }
//        });
    }
    @Override
@@ -120,14 +107,24 @@
    private void initUI(View view) {
        ViewGroup rl_addTask = view.findViewById(R.id.rl_add_task);
        ViewGroup rl_add_scense = view.findViewById(R.id.rl_add_scense);
        view.findViewById(R.id.rl_scense_map).setOnClickListener(this);
        view.findViewById(R.id.cl_add_subTask).setOnClickListener(this);
        view.findViewById(R.id.rl_add_scense).setOnClickListener(this);
        view.findViewById(R.id.day_task).setOnClickListener(this);
        view.findViewById(R.id.week_task).setOnClickListener(this);
        view.findViewById(R.id.month_task).setOnClickListener(this);
        view.findViewById(R.id.ll_container_taskadjust).setOnClickListener(this);
        view.findViewById(R.id.rl_container_task_export).setOnClickListener(this);
        // åªæœ‰ç®¡ç†äººå‘˜å¯ä»¥çœ‹åˆ°â€œæ€»ä»»åŠ¡ç®¡ç†â€å’Œâ€œæ–°å¢žåœºæ™¯â€æŒ‰é’®
        if (CommonApplication.getInstance().getCurrentUser().getUsertypeid() == 0) {
            rl_addTask.setOnClickListener(this);
            rl_add_scense.setOnClickListener(this);
        } else {
            rl_addTask.setVisibility(View.GONE);
            rl_add_scense.setVisibility(View.GONE);
        }
        view_waiting = view.findViewById(R.id.view_waiting);
        tv_no_task = view.findViewById(R.id.tv_no_task);
        RecyclerView mRecyclerView = view.findViewById(R.id.rv_container);
@@ -148,7 +145,6 @@
        daytask_circleprogress.setProgress(0, 0);
        weektask_circleprogress.setProgress(0, 0);
        monthtask_circleprogress.setProgress(0, 0);
        rl_addTask.setOnClickListener(this);
    }
    private void getTodaySubTask() {
@@ -274,7 +270,8 @@
                getActivity().startActivityForResult(intent1, Constant.REQUESTCODE_FROM_TASKFRAGMENT);
                break;
            case R.id.cl_add_subTask:
                showTaskKindDialog();
//                showTaskKindDialog();
                startActivity(new Intent(getActivity(), DCNewTempTaskActivity.class));
                break;
            case R.id.rl_add_scense:
                startActivity(new Intent(getActivity(), SceneDetailActivity.class));
appDucha/src/main/res/drawable/ic_bg_blue.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
    <corners android:radius="@dimen/dimen8"/>
    <gradient
        android:startColor="#00E0FD"
        android:endColor="#2AB7FE"
        android:angle="-45" />
</shape>
appDucha/src/main/res/drawable/ic_bg_green.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
    <corners android:radius="@dimen/dimen8"/>
    <gradient
        android:startColor="#48FAD9"
        android:endColor="#17D3A2"
        android:angle="-45" />
</shape>
appDucha/src/main/res/drawable/ic_bg_red.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
    <corners android:radius="@dimen/dimen8"/>
    <gradient
        android:startColor="#FFAF97"
        android:endColor="#FF4B61"
        android:angle="-45" />
</shape>
appDucha/src/main/res/layout/dc_activity_new_temp_task.xml
@@ -41,7 +41,7 @@
                        android:id="@+id/edt_sub_task_name"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        style="@style/TextStyle.EditText"
                        style="@style/TextStyle.Content.Time"
                        android:textSize="@dimen/textSize_14"
                        tools:text="dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"
                        app:layout_constraintStart_toStartOf="parent"
@@ -112,7 +112,7 @@
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        style="@style/SpinnerStyle"
                        tools:listitem="@layout/item_spinner_drop_down_2"
                        tools:listitem="@layout/dc_item_spinner_drop_down_2"
                        android:layout_marginEnd="@dimen/dimen2"
                        app:layout_constraintStart_toEndOf="@id/sp_province"
                        app:layout_constraintEnd_toStartOf="@id/sp_district"
@@ -123,7 +123,7 @@
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        style="@style/SpinnerStyle"
                        tools:listitem="@layout/item_spinner_drop_down_2"
                        tools:listitem="@layout/dc_item_spinner_drop_down_2"
                        app:layout_constraintStart_toEndOf="@id/sp_city"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintTop_toTopOf="@id/sp_province"/>
@@ -136,7 +136,7 @@
                android:id="@+id/cd_2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="@dimen/dimen16"
                android:layout_marginTop="@dimen/dimen8"
                app:layout_constraintTop_toBottomOf="@id/cd_1">
                <android.support.constraint.ConstraintLayout
@@ -158,7 +158,7 @@
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        style="@style/SpinnerStyle"
                        tools:listitem="@layout/item_spinner_drop_down_2"
                        tools:listitem="@layout/dc_item_spinner_drop_down_2"
                        android:layout_marginEnd="@dimen/dimen8"
                        app:layout_constraintStart_toStartOf="parent"
                        app:layout_constraintEnd_toStartOf="@id/sp_scene_type"
@@ -185,7 +185,7 @@
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        style="@style/SpinnerStyle"
                        tools:listitem="@layout/item_spinner_drop_down_2"
                        tools:listitem="@layout/dc_item_spinner_drop_down_2"
                        app:layout_constraintStart_toEndOf="@id/sp_task_type"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintTop_toBottomOf="@id/txt_scene_type" />
@@ -197,7 +197,8 @@
                        android:src="@drawable/ic_location_on_red_700_36dp"
                        app:layout_constraintStart_toEndOf="@id/edt_scene_name"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintTop_toTopOf="@id/edt_scene_name"/>
                        app:layout_constraintTop_toTopOf="@id/edt_scene_name"
                        app:layout_constraintBottom_toBottomOf="@id/edt_scene_name"/>
                    <android.support.constraint.Barrier
                        android:id="@+id/barrier_1"
@@ -210,7 +211,7 @@
                        android:id="@+id/edt_scene_name"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        style="@style/TextStyle.EditText"
                        style="@style/TextStyle.Content.Time"
                        android:visibility="visible"
                        android:hint="场景名称"
                        android:layout_marginTop="@dimen/dimen8"
@@ -223,9 +224,10 @@
                        android:id="@+id/edt_scene_address"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        style="@style/TextStyle.EditText"
                        style="@style/TextStyle.Content.Time"
                        android:visibility="visible"
                        android:hint="场景地址"
                        android:layout_marginTop="@dimen/dimen8"
                        app:layout_constraintStart_toStartOf="parent"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintTop_toBottomOf="@id/edt_scene_name"
@@ -241,7 +243,7 @@
                android:layout_height="wrap_content"
                app:layout_constraintTop_toBottomOf="@id/cd_2"
                app:layout_constraintBottom_toBottomOf="parent"
                android:layout_marginTop="@dimen/dimen16">
                android:layout_marginTop="@dimen/dimen8">
                <android.support.constraint.ConstraintLayout
                    android:layout_width="match_parent"
appDucha/src/main/res/layout/dc_fragment_task.xml
@@ -191,7 +191,7 @@
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@id/card_view"
        app:layout_constraintBottom_toTopOf="@id/rl_add_task">
        app:layout_constraintBottom_toTopOf="@id/ll_btns">
        <LinearLayout
            android:id="@+id/day_task"
@@ -276,154 +276,176 @@
        </LinearLayout>
    </android.support.constraint.ConstraintLayout>
    <android.support.constraint.ConstraintLayout
        android:id="@+id/rl_add_task"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        android:paddingTop="@dimen/dimen8"
        android:paddingStart="@dimen/dimen16"
        android:paddingEnd="@dimen/dimen16"
        android:paddingBottom="@dimen/dimen16"
    <LinearLayout
        android:id="@+id/ll_btns"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:orientation="horizontal"
        android:layout_marginStart="20dp"
        android:layout_marginEnd="20dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toStartOf="@id/cl_add_subTask"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@id/task_progress_llcontainer"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintVertical_bias="1"
        android:background="@mipmap/ic_bg_blue">
        app:layout_constraintHeight_percent="0.25"
        android:baselineAligned="false"
        android:gravity="center">
        <ImageView
            android:id="@+id/iv_add_task"
        <android.support.constraint.ConstraintLayout
            android:id="@+id/rl_add_task"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:background="@mipmap/ic_top_task"
            app:layout_constraintDimensionRatio="w,1:1"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="总任务管理"
            android:textColor="@color/white"
            android:textSize="12sp"
            android:textStyle="bold"
            app:layout_constraintTop_toBottomOf="@id/iv_add_task"
            android:layout_weight="1"
            android:visibility="visible"
            android:padding="@dimen/dimen4"
            android:layout_marginEnd="@dimen/dimen8"
            android:foreground="?attr/selectableItemBackgroundBorderless"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"/>
    </android.support.constraint.ConstraintLayout>
            app:layout_constraintEnd_toStartOf="@id/cl_add_subTask"
            app:layout_constraintTop_toBottomOf="@id/task_progress_llcontainer"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintVertical_bias="1"
            android:background="@drawable/ic_bg_blue">
    <android.support.constraint.ConstraintLayout
        android:id="@+id/cl_add_subTask"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="20dp"
        android:paddingTop="@dimen/dimen8"
        android:paddingStart="@dimen/dimen16"
        android:paddingEnd="@dimen/dimen16"
        android:paddingBottom="@dimen/dimen16"
        app:layout_constraintTop_toTopOf="@id/rl_add_task"
        app:layout_constraintStart_toEndOf="@id/rl_add_task"
        app:layout_constraintEnd_toStartOf="@id/rl_add_scense"
        android:layout_centerHorizontal="true"
        android:background="@mipmap/ic_bg_green"
        android:orientation="vertical">
            <ImageView
                android:id="@+id/iv_add_task"
                android:layout_width="wrap_content"
                android:layout_height="0dp"
                android:background="@mipmap/ic_top_task"
                app:layout_constraintDimensionRatio="w,1:1"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toTopOf="@id/txt_add_task"/>
        <ImageView
            android:id="@+id/iv_add_subTask"
            <TextView
                android:id="@+id/txt_add_task"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="总任务管理"
                android:textColor="@color/white"
                android:textSize="12sp"
                android:textStyle="bold"
                app:layout_constraintTop_toBottomOf="@id/iv_add_task"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintEnd_toEndOf="parent"/>
        </android.support.constraint.ConstraintLayout>
        <android.support.constraint.ConstraintLayout
            android:id="@+id/cl_add_subTask"
            android:layout_width="0dp"
            android:layout_height="0dp"
            app:layout_constraintDimensionRatio="w,1:1"
            android:background="@mipmap/ic_new_subtask"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="制定任务"
            android:textColor="@color/white"
            android:textSize="12sp"
            android:textStyle="bold"
            app:layout_constraintTop_toBottomOf="@id/iv_add_subTask"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"/>
    </android.support.constraint.ConstraintLayout>
            android:layout_weight="1"
            android:padding="@dimen/dimen4"
            android:foreground="?attr/selectableItemBackgroundBorderless"
            app:layout_constraintTop_toBottomOf="@id/task_progress_llcontainer"
            app:layout_constraintStart_toEndOf="@id/rl_add_task"
            app:layout_constraintEnd_toStartOf="@id/rl_add_scense"
            app:layout_constraintBottom_toBottomOf="parent"
            android:background="@drawable/ic_bg_green">
    <android.support.constraint.ConstraintLayout
        android:id="@+id/rl_add_scense"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:background="@mipmap/ic_bg_red"
        android:layout_marginEnd="20dp"
        android:paddingTop="@dimen/dimen8"
        android:paddingStart="@dimen/dimen16"
        android:paddingEnd="@dimen/dimen16"
        android:paddingBottom="@dimen/dimen16"
        app:layout_constraintStart_toEndOf="@id/cl_add_subTask"
        app:layout_constraintEnd_toStartOf="@id/rl_scense_map"
        app:layout_constraintTop_toTopOf="@id/rl_add_task">
            <ImageView
                android:id="@+id/iv_add_subTask"
                android:layout_width="wrap_content"
                android:layout_height="0dp"
                app:layout_constraintDimensionRatio="h,1:1"
                android:background="@mipmap/ic_new_subtask"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toTopOf="@id/txt_add_subTask"/>
        <ImageView
            android:id="@+id/iv_task_check"
            <TextView
                android:id="@+id/txt_add_subTask"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="制定任务"
                android:textColor="@color/white"
                android:textSize="12sp"
                android:textStyle="bold"
                app:layout_constraintTop_toBottomOf="@id/iv_add_subTask"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintEnd_toEndOf="parent"/>
        </android.support.constraint.ConstraintLayout>
        <android.support.constraint.ConstraintLayout
            android:id="@+id/rl_add_scense"
            android:layout_width="0dp"
            android:layout_height="0dp"
            app:layout_constraintDimensionRatio="w,1:1"
            android:background="@mipmap/ic_new_scene"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="新增场景"
            android:textColor="@color/white"
            android:textSize="12sp"
            android:textStyle="bold"
            app:layout_constraintTop_toBottomOf="@id/iv_task_check"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"/>
    </android.support.constraint.ConstraintLayout>
            android:background="@drawable/ic_bg_red"
            android:visibility="visible"
            android:layout_weight="1"
            android:padding="@dimen/dimen4"
            android:layout_marginStart="@dimen/dimen8"
            android:foreground="?attr/selectableItemBackgroundBorderless"
            app:layout_constraintStart_toEndOf="@id/cl_add_subTask"
            app:layout_constraintEnd_toStartOf="@id/rl_scense_map"
            app:layout_constraintTop_toTopOf="@id/cl_add_subTask">
    <android.support.constraint.ConstraintLayout
        android:id="@+id/rl_scense_map"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="20dp"
        android:paddingStart="@dimen/dimen16"
        android:paddingEnd="@dimen/dimen16"
        android:paddingBottom="@dimen/dimen16"
        app:layout_constraintTop_toTopOf="@id/rl_add_scense"
        app:layout_constraintStart_toEndOf="@id/rl_add_scense"
        app:layout_constraintEnd_toEndOf="parent"
        android:layout_centerHorizontal="true"
        android:background="@drawable/shape_green_task_follow"
        android:orientation="vertical"
        android:visibility="gone">
            <ImageView
                android:id="@+id/iv_task_check"
                android:layout_width="wrap_content"
                android:layout_height="0dp"
                app:layout_constraintDimensionRatio="h,1:1"
                android:background="@mipmap/ic_new_scene"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toTopOf="@id/txt_task_check"/>
        <ImageView
            android:id="@+id/iv_task_follow"
            <TextView
                android:id="@+id/txt_task_check"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="新增场景"
                android:textColor="@color/white"
                android:textSize="12sp"
                android:textStyle="bold"
                app:layout_constraintTop_toBottomOf="@id/iv_task_check"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintEnd_toEndOf="parent"/>
        </android.support.constraint.ConstraintLayout>
        <android.support.constraint.ConstraintLayout
            android:id="@+id/rl_scense_map"
            android:layout_width="0dp"
            android:layout_height="0dp"
            app:layout_constraintDimensionRatio="w,1:1"
            android:background="@drawable/icon_task_others_task"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="场景地图"
            android:textColor="@color/white"
            android:textSize="13sp"
            android:textStyle="bold"
            app:layout_constraintTop_toBottomOf="@id/iv_task_follow"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"/>
    </android.support.constraint.ConstraintLayout>
            android:layout_weight="1"
            android:paddingStart="@dimen/dimen16"
            android:paddingEnd="@dimen/dimen16"
            android:paddingBottom="@dimen/dimen16"
            app:layout_constraintTop_toTopOf="@id/rl_add_scense"
            app:layout_constraintStart_toEndOf="@id/rl_add_scense"
            app:layout_constraintEnd_toEndOf="parent"
            android:background="@drawable/shape_green_task_follow"
            android:orientation="vertical"
            android:visibility="gone">
            <ImageView
                android:id="@+id/iv_task_follow"
                android:layout_width="0dp"
                android:layout_height="0dp"
                app:layout_constraintDimensionRatio="w,1:1"
                android:background="@drawable/icon_task_others_task"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toTopOf="parent"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="场景地图"
                android:textColor="@color/white"
                android:textSize="13sp"
                android:textStyle="bold"
                app:layout_constraintTop_toBottomOf="@id/iv_task_follow"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintEnd_toEndOf="parent"/>
        </android.support.constraint.ConstraintLayout>
    </LinearLayout>
</android.support.constraint.ConstraintLayout>
appDucha/src/main/res/mipmap-xhdpi/ic_new_scene.png

appDucha/src/main/res/mipmap-xhdpi/ic_new_subtask.png

appDucha/src/main/res/mipmap-xhdpi/ic_top_task.png

appDucha/src/main/res/values/styles.xml
@@ -1,4 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="AppTheme.ActionBar">
        <item name="windowActionBar">true</item>
        <item name="windowNoTitle">false</item>
        <item name="android:screenOrientation">portrait</item>
    </style>
</resources>
appsupervision/build.gradle
@@ -11,8 +11,8 @@
        applicationId "cn.flightfeather.thirdapp"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 31
        versionName "1.1.14.15"
        versionCode 32
        versionName "1.1.14.16"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        renderscriptTargetApi 25
appsupervision/src/main/AndroidManifest.xml
@@ -9,6 +9,11 @@
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true">
        <meta-data
            android:name="com.amap.api.v2.apikey"
            android:value="bf77391d8502be39f44c93b1f233ca91" />
        <activity
            android:name="cn.flightfeather.thirdappmodule.activity.SplashActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"