endian11
2020-08-13 a927c72c0f06ef5bd771e5ae00bc35155c271762
重构代码;修改mapId为-1的exam_status表,表示考试状态
1个文件已删除
66个文件已修改
4个文件已添加
1 文件已重命名
1220 ■■■■■ 已修改文件
BaseCommonLib/build.gradle 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BaseCommonLib/src/androidTest/java/com/anyun/basecommonlib/ExampleInstrumentedTest.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BaseCommonLib/src/main/AndroidManifest.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BaseCommonLib/src/main/java/com/anyun/basecommonlib/MyLog.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BaseCommonLib/src/test/java/com/anyun/basecommonlib/ExampleUnitTest.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/build.gradle 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/assets/signal_config_file.json 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/Constant.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/StudentInfoUpdateWork.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIIIWorker.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIIWorker.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIWorker.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusInitWorker.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusViewModel.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusWoker.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusWorkRepo.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjRepository.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjWorker.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKWorkRepository.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/signalConfigdb/SignalConfigDao.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/signalConfigdb/SignalConfigInitWorker.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/signalConfigdb/SingalConfig.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/MainActivity.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/adapter/WrapContentLinearLayoutManager.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/app.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/bean/ScoreBean.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/customview/MyDialog.kt 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/GpsInfoFragment.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/InspectSignalFragment.java 93 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/RTKConfigFragment.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/RoadDriveMapFragment.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/RoadDriveMapFragmentaa.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/SetArgumentsFragment.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/SignalConfigFragment.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/TakePhotoFragment.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/VPFragment.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/im/IMSEventListener.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/receiver/BootFinishReceiver.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/receiver/ReBootBroadcastReceiver.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/receiver/ShutdownBroadcastReceiver.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/util/CThreadPoolExecutor.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/util/DataInit.kt 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/util/FileUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/util/Utils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/viewmodels/ExamPlatformModel.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/viewmodels/MainViewModel.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/worker/MCUUpgradeWorker.kt 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/worker/TimeWorker.kt 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/layout_base_datas.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/layout_check_signal.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/layout_gps_info.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/layout_signal_slice.xml 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/layout_sys_setting.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/layout_train_fragment.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/values/arrays.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/values/styles.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
im_lib/build.gradle 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
im_lib/src/main/java/com/anyun/im_lib/HeartbeatHandler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lib/build.gradle 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lib/src/main/java/com/anyun/exam/lib/MyLog.java 485 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
settings.gradle 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BaseCommonLib/build.gradle
New file
@@ -0,0 +1,31 @@
apply plugin: 'com.android.library'
android {
    compileSdkVersion 30
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        consumerProguardFiles "consumer-rules.pro"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}
dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
BaseCommonLib/src/androidTest/java/com/anyun/basecommonlib/ExampleInstrumentedTest.java
New file
@@ -0,0 +1,26 @@
package com.anyun.basecommonlib;
import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
 * Instrumented test, which will execute on an Android device.
 *
 * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
 */
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
    @Test
    public void useAppContext() {
        // Context of the app under test.
        Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
        assertEquals("com.anyun.basecommonlib.test", appContext.getPackageName());
    }
}
BaseCommonLib/src/main/AndroidManifest.xml
New file
@@ -0,0 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.anyun.basecommonlib">
    /
</manifest>
BaseCommonLib/src/main/java/com/anyun/basecommonlib/MyLog.java
File was renamed from im_lib/src/main/java/com/anyun/im_lib/util/MyLog.java
@@ -1,4 +1,4 @@
package com.anyun.im_lib.util;
package com.anyun.basecommonlib;
@@ -31,7 +31,7 @@
public class MyLog {
    private static final String TAG = "AYJiaKao";
     private static final String TAG = "AYJiaKao";
    // 日志文件在sdcard中的路径
@@ -40,7 +40,7 @@
    private static Boolean MYLOG_SWITCH = true; // 日志文件总开关
    private static Boolean MYLOG_WRITE_TO_FILE = true;// 日志写入文件开关
    private static Boolean MYLOG_WRITE_TO_FILE = false;// 日志写入文件开关
    private static File file;
    // 输入日志类型,w代表只输出告警信息等,v代表输出所有信息
@@ -273,7 +273,7 @@
     * @param text
     */
    static int count=0;
    private static void writeLogtoFile( final String tag, final String text) {// 新建或打开日志文件
    private static synchronized void writeLogtoFile( final String tag, final String text) {// 新建或打开日志文件
        String needWriteMessage = myLogSdf.format(System.currentTimeMillis()) + " " + tag + "  " + text;
@@ -316,7 +316,6 @@
        File tempFile = null;
        for (int j = 0; j < 5; j++) {
            tempFile = new File(dirPath,PREFREIX+j+".txt");
            Log.i(TAG,"tempFIle Name= "+tempFile.getName());
            if (tempFile.length()>20*1024*1024) {
                if (j==4){
@@ -334,7 +333,7 @@
            }else{
                Log.i(TAG,String.format("返回文件%s",tempFile.getName()));
//                Log.i(TAG,String.format("返回文件%s",tempFile.getName()));
                break;
            }
BaseCommonLib/src/test/java/com/anyun/basecommonlib/ExampleUnitTest.java
New file
@@ -0,0 +1,17 @@
package com.anyun.basecommonlib;
import org.junit.Test;
import static org.junit.Assert.*;
/**
 * Example local unit test, which will execute on the development machine (host).
 *
 * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
 */
public class ExampleUnitTest {
    @Test
    public void addition_isCorrect() {
        assertEquals(4, 2 + 2);
    }
}
app/build.gradle
@@ -8,8 +8,8 @@
        applicationId "safeluck.drive.evaluation"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        versionCode 3
        versionName "1.3"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        ndk {
@@ -59,7 +59,7 @@
    implementation "androidx.lifecycle:lifecycle-extensions:$rootProject.lifecycleVersion"
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    // To get SwipeBack feature, rely on both fragmentation & fragmentation-swipeback
    implementation 'me.yokeyword:fragmentation:1.3.6'
    implementation 'me.yokeyword:fragmentationx:1.0.1'
// Swipeback is based on fragmentation. Refer to SwipeBackActivity/Fragment for your Customized SupportActivity/Fragment
    implementation 'me.yokeyword:fragmentation-swipeback:1.3.6'
@@ -71,6 +71,7 @@
    implementation 'com.google.code.gson:gson:2.8.6'
    implementation 'com.facebook.stetho:stetho:1.5.0'
    implementation project(path: ':im_lib')
    implementation project(path: ':BaseCommonLib')
    implementation "androidx.core:core-ktx:+"
    implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.1.0"
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
app/src/main/assets/signal_config_file.json
@@ -1,100 +1,8 @@
[
  {
    "signalName": "雾灯",
    "index":1,
    "func_id":21,
    "highLevel":1,
    "mainBoard":2
  },
  {
    "signalName": "三档",
    "index":15,
    "func_id":11,
    "highLevel":1,
    "mainBoard":2
  },
  {
    "signalName": "手刹",
    "index":3,
    "func_id":3,
    "highLevel":1,
    "mainBoard":2
  },
  {
    "signalName": "一档",
    "index":8,
    "func_id":9,
    "highLevel":1,
    "mainBoard":2
  },
  {
    "signalName": "副刹",
    "index":16,
    "func_id":16,
    "highLevel":1,
    "mainBoard":2
  },
  {
    "signalName": "安全带",
    "index":6,
    "func_id":0,
    "highLevel":1,
    "mainBoard":2
  },
  {
    "signalName": "二档",
    "index":7,
    "func_id":10,
    "highLevel":1,
    "mainBoard":2
  },
  {
    "signalName": "脚刹",
    "index":4,
    "func_id":4,
    "highLevel":1,
    "mainBoard":2
  },
  {
    "signalName": "空挡",
    "index":9,
    "func_id":8,
    "highLevel":1,
    "mainBoard":2
  },
  {
    "signalName": "门锁",
    "func_id":7,
    "index":10,
    "highLevel":1,
    "mainBoard":2
  },
  {
    "signalName": "START位",
    "func_id":15,
    "highLevel":1,
    "index":11,
    "mainBoard":2
  },
  {
    "signalName": "远光",
    "index":12,
    "func_id":6,
    "highLevel":1,
    "mainBoard":2
  },
  {
    "signalName": "绕车一",
    "index":13,
    "func_id":17,
    "highLevel":1,
    "mainBoard":2
  },
  {
    "signalName": "近光",
    "index":14,
    "func_id":5,
    "highLevel":1,
    "mainBoard":2
  },
@@ -112,6 +20,103 @@
    "highLevel":1,
    "mainBoard":2
  },
  {
    "signalName": "手刹",
    "index":3,
    "func_id":3,
    "highLevel":1,
    "mainBoard":2
  },
  {
    "signalName": "脚刹",
    "index":4,
    "func_id":4,
    "highLevel":1,
    "mainBoard":2
  },
  {
    "signalName": "近光",
    "index":14,
    "func_id":5,
    "highLevel":1,
    "mainBoard":2
  },
  {
    "signalName": "远光",
    "index":12,
    "func_id":6,
    "highLevel":1,
    "mainBoard":2
  }
, {
  "signalName": "门锁",
  "index":22,
  "func_id":7,
  "highLevel":1,
  "mainBoard":2
},
  {
    "signalName": "空挡",
    "index":9,
    "func_id":8,
    "highLevel":1,
    "mainBoard":2
  },
  {
    "signalName": "雾灯",
    "index":1,
    "func_id":21,
    "highLevel":1,
    "mainBoard":2
  },
  {
    "signalName": "三档",
    "index":15,
    "func_id":11,
    "highLevel":1,
    "mainBoard":2
  },
  {
    "signalName": "一档",
    "index":8,
    "func_id":9,
    "highLevel":1,
    "mainBoard":2
  },
  {
    "signalName": "副刹",
    "index":16,
    "func_id":16,
    "highLevel":1,
    "mainBoard":2
  },
  {
    "signalName": "二档",
    "index":10,
    "func_id":10,
    "highLevel":1,
    "mainBoard":2
  },
  {
    "signalName": "START位",
    "func_id":15,
    "highLevel":1,
    "index":11,
    "mainBoard":2
  },
  {
    "signalName": "绕车一",
    "index":13,
    "func_id":17,
    "highLevel":1,
    "mainBoard":2
  },
  {
    "signalName": "绕车二",
    "index":17,
@@ -139,5 +144,23 @@
    "func_id":22,
    "highLevel":1,
    "mainBoard":2
  }, {
    "signalName": "四档",
    "index":21,
    "func_id":12,
    "highLevel":1,
    "mainBoard":2
  }, {
    "signalName": "五档",
    "index":23,
    "func_id":13,
    "highLevel":1,
    "mainBoard":2
  }, {
    "signalName": "倒档",
    "index":7,
    "func_id":14,
    "highLevel":1,
    "mainBoard":2
  }
]
app/src/main/java/safeluck/drive/evaluation/DB/Constant.java
@@ -25,4 +25,5 @@
    public static final int EXAM_MAP_TYPE_ANGLE = 5;
    public static final int FINISH_ITEM = 0;//该项场地考试结束(出场地)
    public static final int BEGIN_ITEM = 1;//该项考试开始进入场地
    public static final int EXAM_STATUS_MAP_ID = -1;
}
app/src/main/java/safeluck/drive/evaluation/DB/StudentInfoUpdateWork.java
@@ -8,7 +8,7 @@
import androidx.work.Worker;
import androidx.work.WorkerParameters;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import org.json.JSONException;
import org.json.JSONObject;
app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java
@@ -7,19 +7,19 @@
import androidx.work.Worker;
import androidx.work.WorkerParameters;
import com.anyun.exam.lib.MyLog;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.anyun.basecommonlib.MyLog;
import org.json.JSONException;
import org.json.JSONObject;
import java.lang.reflect.Type;
import safeluck.drive.evaluation.Constant;
import safeluck.drive.evaluation.DB.WorkRoomDataBase;
import safeluck.drive.evaluation.platformMessage.PlatFormConstant;
/**
 * @author Administrator
 */
public class AppStatusWorker extends Worker {
    private static final String TAG = "AppStatusWorker";
app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIIIWorker.java
@@ -6,7 +6,7 @@
import androidx.work.Worker;
import androidx.work.WorkerParameters;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.google.gson.stream.JsonReader;
app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIIWorker.java
@@ -6,7 +6,7 @@
import androidx.work.Worker;
import androidx.work.WorkerParameters;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.google.gson.stream.JsonReader;
app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIWorker.java
@@ -6,7 +6,7 @@
import androidx.work.Worker;
import androidx.work.WorkerParameters;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.google.gson.stream.JsonReader;
app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusDao.java
@@ -29,6 +29,6 @@
    @Query("select startExam from exam_status where map_id=1")
    int getStartExamInt();
    @Query("delete from exam_status")
    @Query("delete from exam_status where map_id >-1")
    void deleteAll();
}
app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusInitWorker.java
@@ -7,10 +7,11 @@
import androidx.work.Worker;
import androidx.work.WorkerParameters;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import java.util.Random;
import safeluck.drive.evaluation.DB.Constant;
import safeluck.drive.evaluation.DB.WorkRoomDataBase;
public class ExamStatusInitWorker extends Worker {
@@ -20,6 +21,7 @@
    public ExamStatusInitWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
        super(context, workerParams);
        Log.i(TAG,"ExamStatusInitWOrker");
        examStatus = new ExamStatus();
    }
@@ -31,7 +33,7 @@
        for (int i = 0; i < 1; i++) {
            examStatus.setEnter(2);//默认待考项目
            examStatus.setStartExam(0);//默认没有开始考试
            examStatus.setMap_id(1);
            examStatus.setMap_id(Constant.EXAM_STATUS_MAP_ID);
            WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getExamStatusDao().insert(examStatus);
        }
app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt
@@ -8,8 +8,8 @@
import androidx.work.Data
import androidx.work.Worker
import androidx.work.WorkerParameters
import com.anyun.basecommonlib.MyLog
import com.anyun.exam.lib.AYSdk
import com.anyun.exam.lib.MyLog
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.google.gson.stream.JsonReader
app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusViewModel.java
@@ -58,4 +58,9 @@
    public void updateItemExamResult(int i, int map_id) {
        examStatusWorkRepo.updateItemResult(i,map_id);
    }
    public void deleteAll() {
        examStatusWorkRepo.deleteAll();
    }
}
app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusWoker.java
@@ -8,7 +8,7 @@
import androidx.work.Worker;
import androidx.work.WorkerParameters;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import org.json.JSONException;
import org.json.JSONObject;
app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusWorkRepo.java
@@ -61,4 +61,13 @@
            }
        });
    }
    public void deleteAll() {
        WorkRoomDataBase.dataBaseWriteExecutor.execute(new Runnable() {
            @Override
            public void run() {
                examStatusDao.deleteAll();
            }
        });
    }
}
app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjRepository.java
@@ -4,11 +4,10 @@
import androidx.lifecycle.LiveData;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import java.util.List;
import safeluck.drive.evaluation.Constant;
import safeluck.drive.evaluation.DB.WorkRoomDataBase;
/**
app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjWorker.java
@@ -6,9 +6,6 @@
import androidx.work.Worker;
import androidx.work.WorkerParameters;
import com.anyun.exam.lib.MyLog;
import safeluck.drive.evaluation.DB.WorkRoomDataBase;
/**
 * MyApplication2
app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt
@@ -7,8 +7,8 @@
import android.widget.Toast
import androidx.work.Worker
import androidx.work.WorkerParameters
import com.anyun.basecommonlib.MyLog
import com.anyun.exam.lib.AYSdk
import com.anyun.exam.lib.MyLog
import com.google.gson.Gson
import okhttp3.ResponseBody
import org.json.JSONException
@@ -128,7 +128,7 @@
                                                MyLog.i(PlatFormConstant.HTTPTAG,"科三场地地图保存成功")
                                                str = gson.toJson(yard.data.map_json)
                                                FileUtil.writeTxtFileToSD(applicationContext,fileName,str,"")
//                                                sendMapInfo()
                                                sendMapInfo()
                                            })
                                        }
                                    }
@@ -146,7 +146,7 @@
                                            str = gson.toJson(car.data.map_json)
                                            MyLog.i(PlatFormConstant.HTTPTAG,"车辆模型保存成功")
                                            FileUtil.writeTxtFileToSD(applicationContext,fileName,str,"")
//                                            sendVehicleInfo()
                                            sendVehicleInfo()
                                        })
                                    }
@@ -161,12 +161,12 @@
            })
        }else{
//            MyLog.i(PlatFormConstant.HTTPTAG,"已存在直接发送车辆和地图"+fileName)
//            when(type){
//                "road" -> sendRoadMapInfo()
//                "yard" -> sendMapInfo()
//                else -> sendVehicleInfo()
//            }
            MyLog.i(PlatFormConstant.HTTPTAG,"已存在直接发送车辆和地图"+fileName)
            when(type){
                "road" -> sendRoadMapInfo()
                "yard" -> sendMapInfo()
                else -> sendVehicleInfo()
            }
        }
    }
app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKWorkRepository.java
@@ -4,7 +4,7 @@
import androidx.lifecycle.LiveData;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import safeluck.drive.evaluation.DB.WorkRoomDataBase;
app/src/main/java/safeluck/drive/evaluation/DB/signalConfigdb/SignalConfigDao.java
@@ -29,6 +29,9 @@
    int getSignalName2Index(String signame);
    //查询所有信号对应的物理所引
    @Query("select `index` from signal_config")
    List<Integer> getAllIndexs();
app/src/main/java/safeluck/drive/evaluation/DB/signalConfigdb/SignalConfigInitWorker.java
@@ -8,7 +8,7 @@
import androidx.work.WorkerParameters;
import com.anyun.exam.lib.AYSdk;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.google.gson.stream.JsonReader;
app/src/main/java/safeluck/drive/evaluation/DB/signalConfigdb/SingalConfig.java
@@ -55,4 +55,15 @@
    public void setMainBoard(int mainBoard) {
        this.mainBoard = mainBoard;
    }
    @Override
    public String toString() {
        return "SingalConfig{" +
                "signalName='" + signalName + '\'' +
                ", index=" + index +
                ", highLevel=" + highLevel +
                ", mainBoard=" + mainBoard +
                ", func_id=" + func_id +
                '}';
    }
}
app/src/main/java/safeluck/drive/evaluation/MainActivity.java
@@ -3,7 +3,7 @@
import android.Manifest;
import android.app.AlertDialog;
import com.anyun.basecommonlib.MyLog;
import android.content.DialogInterface;
import android.os.AsyncTask;
import android.os.Build;
@@ -24,25 +24,20 @@
import androidx.annotation.Nullable;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProviders;
import androidx.work.OneTimeWorkRequest;
import androidx.work.WorkManager;
import me.yokeyword.fragmentation.SupportActivity;
import safeluck.drive.evaluation.DB.appstatusdb.AppStatus;
import safeluck.drive.evaluation.DB.appstatusdb.AppStatusViewModel;
import safeluck.drive.evaluation.DB.exam_status.ExamStatusViewModel;
import safeluck.drive.evaluation.DB.rtktb.RTKConfig;
import safeluck.drive.evaluation.DB.rtktb.RTKConfigViewModel;
import safeluck.drive.evaluation.DB.signalConfigdb.SignalConfigViewModel;
import safeluck.drive.evaluation.DB.signalConfigdb.SingalConfig;
import safeluck.drive.evaluation.bean.ExamPlatformData;
import safeluck.drive.evaluation.bean.SignalConfigRemote;
import safeluck.drive.evaluation.cEventCenter.CEventCenter;
import safeluck.drive.evaluation.cEventCenter.ICEventListener;
import safeluck.drive.evaluation.fragment.HomeFragment;
import com.anyun.exam.lib.AYSdk;
import com.anyun.exam.lib.MyLog;
import com.anyun.im_lib.listener.IMSConnectStatusCallback;
import com.google.gson.Gson;
import com.safeluck.aykj.utils.BytesUtils;
app/src/main/java/safeluck/drive/evaluation/adapter/WrapContentLinearLayoutManager.java
@@ -2,14 +2,12 @@
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import safeluck.drive.evaluation.fragment.BaseDatasFragment;
public class WrapContentLinearLayoutManager extends LinearLayoutManager {
    private static final String TAG = "WrapContentLinearLayoutManager";
app/src/main/java/safeluck/drive/evaluation/app.java
@@ -20,7 +20,7 @@
import me.yokeyword.fragmentation.Fragmentation;
import me.yokeyword.fragmentation.helper.ExceptionHandler;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import com.anyun.exam.lib.crash.CrashHandler;
import com.facebook.stetho.Stetho;
import com.google.gson.JsonArray;
@@ -37,6 +37,7 @@
import safeluck.drive.evaluation.DB.appstatusdb.AppStatusWorker;
import safeluck.drive.evaluation.DB.criterias.CriteriaForI;
import safeluck.drive.evaluation.DB.criterias.CriteriaForIII;
import safeluck.drive.evaluation.DB.exam_status.ExamStatus;
import safeluck.drive.evaluation.DB.exam_status.ExamStatusOutWorker;
import safeluck.drive.evaluation.DB.exam_status.ExamStatusWoker;
import safeluck.drive.evaluation.DB.failitems.FailedProj;
@@ -56,7 +57,6 @@
import safeluck.drive.evaluation.util.FileUtil;
import safeluck.drive.evaluation.util.SystemUtil;
import safeluck.drive.evaluation.util.Utils;
import safeluck.drive.evaluation.worker.MCUUpgradeWorker;
/**
 * MyApplication2
@@ -87,7 +87,6 @@
            crashHandler.init(getApplicationContext());
            AYSdk.getInstance().init(getApplicationContext());
            AYSdk.getInstance().registListener(this);
            MyLog.createIfNotExist();
            Stetho.initializeWithDefaults(this);
            appContext = this;
@@ -140,6 +139,9 @@
    private String lastStr;
    private String lastSn;
    private int mapId = 0;
    int type = 0;
    int enter_status = -1;
    @Override
    public void callBackMsg(final int cmd, String json) {
        String strConent = String.format("收到命令[%d],Json内容为%s", cmd, json);
@@ -181,11 +183,8 @@
                if(!TextUtils.isEmpty(json)){
                    final JKMessage0203 jkMessage0203 = new JKMessage0203();
//                    Data judgeData = new Data.Builder().putString(Constant.TTS,json).build();
                    final JsonArray jsonArray = (JsonArray) JsonParser.parseString(json);
//
//                    OneTimeWorkRequest ttswoker = new OneTimeWorkRequest.Builder(TTSWorker.class).setInputData(judgeData).build();
//                    WorkManager.getInstance(getAppContext()).enqueue(ttswoker);
                    CThreadPoolExecutor.runInBackground(new Runnable() {
                        @Override
@@ -324,12 +323,13 @@
                WorkManager.getInstance(getApplicationContext()).enqueue(gpsinfoWorkRequest);
                break;
            case Constant.ENTER_OR_EXIT_ITEM:
                int type = 0;
                int enter_status = -1;
                try {
                    JSONObject rtkConfigUpdtea = new JSONObject(json);
                    type = rtkConfigUpdtea.getInt("type");
                    enter_status = rtkConfigUpdtea.getInt("enter");
                    mapId = rtkConfigUpdtea.getInt("map_id");
                    String itemstr=ExamPlatformData.getInstance().getItemStatusStr(type);
                    MyLog.i(PlatFormConstant.LUKAO,String.format("%s",itemstr+(enter_status==Constant.EXIT_CURRENT_ITEM?"结束":"开始")));
                    if (ExamPlatformData.getInstance().getTrainingMode()== ExamPlatformData.TRAINING_MODE){
@@ -355,9 +355,21 @@
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                Data exam_enter_exitdata = new Data.Builder().putString(Constant.exam_enter_exitdata,json).build();
                OneTimeWorkRequest examStatusWorker = new OneTimeWorkRequest.Builder(ExamStatusWoker.class).setInputData(exam_enter_exitdata).build();
                WorkManager.getInstance(getApplicationContext()).enqueue(examStatusWorker);
                MyLog.i("收到命令13="+json);
                CThreadPoolExecutor.runInBackground(new Runnable() {
                    @Override
                    public void run() {
                        ExamStatus examStatus = new ExamStatus();
                        examStatus.setEnter(enter_status);
                        examStatus.setMap_id(mapId);
                        examStatus.setMap_item(type);
                        WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getExamStatusDao().insert(examStatus);
                    }
                });
//                Data exam_enter_exitdata = new Data.Builder().putString(Constant.exam_enter_exitdata,json).build();
//                OneTimeWorkRequest examStatusWorker = new OneTimeWorkRequest.Builder(ExamStatusWoker.class).setInputData(exam_enter_exitdata).build();
//                WorkManager.getInstance(getApplicationContext()).enqueue(examStatusWorker);
                break;
            case Constant.REAL_TIME_CAR_POS:
                try {
app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
@@ -10,7 +10,7 @@
import androidx.work.OneTimeWorkRequest;
import androidx.work.WorkManager;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import com.anyun.exam.lib.util.Speaker;
import java.util.ArrayList;
app/src/main/java/safeluck/drive/evaluation/bean/ScoreBean.java
@@ -1,6 +1,6 @@
package safeluck.drive.evaluation.bean;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import safeluck.drive.evaluation.util.Utils;
app/src/main/java/safeluck/drive/evaluation/customview/MyDialog.kt
@@ -35,10 +35,10 @@
    lateinit var onClick:MyOnClickListener
    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        if(dialog!=null){
            var windown = dialog.window;
           windown.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
            windown.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE)
            dialog.setOnShowListener { windown.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE)
            var windown = dialog!!.window;
           windown?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
            windown?.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE)
            dialog?.setOnShowListener { windown?.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE)
            hideBottomUIMenu()}
        }
        var view = inflater.inflate(R.layout.layout_dlg,container,false)
@@ -67,13 +67,13 @@
     */
    protected fun hideBottomUIMenu() { //隐藏虚拟按键,并且全屏
        if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower api
            val v = this.dialog.window.decorView
            v.systemUiVisibility = View.GONE
            val v = this.dialog?.window?.decorView
            v?.systemUiVisibility = View.GONE
        } else if (Build.VERSION.SDK_INT >= 19) { //for new api versions.
            val decorView = dialog.window.decorView
            val decorView = dialog?.window?.decorView
            val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                    or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY or View.SYSTEM_UI_FLAG_FULLSCREEN)
            decorView.systemUiVisibility = uiOptions
            decorView?.systemUiVisibility = uiOptions
        }
    }
app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java
@@ -30,7 +30,7 @@
import android.widget.Toast;
import com.anyun.exam.lib.AYSdk;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import com.anyun.exam.lib.util.ByteUtil;
import com.google.gson.Gson;
import com.safeluck.aykj.utils.BytesUtils;
app/src/main/java/safeluck/drive/evaluation/fragment/GpsInfoFragment.java
@@ -17,7 +17,7 @@
import androidx.lifecycle.ViewModelProviders;
import com.anyun.exam.lib.AYSdk;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import java.lang.reflect.Field;
import java.util.ArrayList;
app/src/main/java/safeluck/drive/evaluation/fragment/InspectSignalFragment.java
@@ -15,16 +15,21 @@
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.databinding.DataBindingUtil;
import androidx.lifecycle.ViewModelProviders;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import com.anyun.im_lib.util.ByteUtil;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import me.yokeyword.fragmentation.SupportFragment;
import safeluck.drive.evaluation.Constant;
import safeluck.drive.evaluation.DB.signalConfigdb.SignalConfigViewModel;
import safeluck.drive.evaluation.DB.signalConfigdb.SingalConfig;
import safeluck.drive.evaluation.MainActivity;
import safeluck.drive.evaluation.R;
import safeluck.drive.evaluation.bean.MCUInfo;
@@ -52,6 +57,7 @@
    Drawable leftGray ;
    private int  index =0 ;
    private Object object = new Object();
    private int fun_id = 0;
    private ICEventListener icEventListener = new ICEventListener() {
        @Override
        public void onCEvent(String topic, int msgCode, int resultCode, Object obj) {
@@ -76,22 +82,40 @@
                                    MyLog.i(TAG, "run: gpio["+i+"]="+gpios.get(i));
                                }
                                MyLog.i("gpios.size="+gpios.size());
                                bingding.inpsetSignalSlice.tvSeatBelt.setCompoundDrawablesWithIntrinsicBounds(gpios.get(5)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvTrunLeft.setCompoundDrawablesWithIntrinsicBounds(gpios.get(14)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvTurnRight.setCompoundDrawablesWithIntrinsicBounds(gpios.get(15)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvParkingBrake.setCompoundDrawablesWithIntrinsicBounds(gpios.get(2)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvFootBrake.setCompoundDrawablesWithIntrinsicBounds(gpios.get(7)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvLowLamp.setCompoundDrawablesWithIntrinsicBounds(gpios.get(13)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvHighBeam.setCompoundDrawablesWithIntrinsicBounds(gpios.get(11)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvGateLock.setCompoundDrawablesWithIntrinsicBounds(gpios.get(9)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvNullEngine.setCompoundDrawablesWithIntrinsicBounds(gpios.get(8)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvGearOne.setCompoundDrawablesWithIntrinsicBounds(gpios.get(3)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvGearTwo.setCompoundDrawablesWithIntrinsicBounds(gpios.get(6)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvGearThree.setCompoundDrawablesWithIntrinsicBounds(gpios.get(1)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvGearFour.setCompoundDrawablesWithIntrinsicBounds(gpios.get(4)==VALIAD_NUM?leftGreen:leftGray,null,null,null);//副刹
                                bingding.inpsetSignalSlice.tvWindingOne.setCompoundDrawablesWithIntrinsicBounds(gpios.get(12)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvWindingTwo.setCompoundDrawablesWithIntrinsicBounds(gpios.get(10)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                fun_id = 0;
                                //安全带
                                bingding.inpsetSignalSlice.tvSeatBelt.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                Log.i(TAG,"安全带之后,Fun_ID="+fun_id);
                                //左转
                                bingding.inpsetSignalSlice.tvTrunLeft.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                //右转
                                bingding.inpsetSignalSlice.tvTurnRight.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvParkingBrake.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvFootBrake.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvLowLamp.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvHighBeam.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvGateLock.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvNullEngine.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvGearOne.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvGearTwo.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvGearThree.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvGearFour.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvGearFive.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvReverseGear.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                Log.i(TAG,"三挡之后,Fun_ID="+fun_id);
                              //副刹
                                bingding.inpsetSignalSlice.tvSecondaryBrake.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null);//副刹
                                bingding.inpsetSignalSlice.tvWindingOne.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvWindingTwo.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvWindingThree.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvWindingFour.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                bingding.inpsetSignalSlice.tvFoglight.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                                //示宽灯
                                bingding.inpsetSignalSlice.tvWidthLamp.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
                            }
                        });
                    }
@@ -100,18 +124,38 @@
        }
    };
    private int getGpioBitValue(){
        int index = singalConfigList.get(fun_id++).getIndex();
        Log.i(TAG,"fun_id"+(fun_id-1)+"对应index="+index);
        if (index<gpios.size()){
            int value = gpios.get(index-1);
            return value;
        }else{
            Log.i(TAG,"索引超出,所以值返回0,默认灰色信号");
            return 0;
        }
    }
    public static SupportFragment newInstance(){
        return new InspectSignalFragment();
    }
    private List<SingalConfig> singalConfigList = new ArrayList<>();
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        bingding = DataBindingUtil.inflate(inflater,R.layout.layout_check_signal,container,false);
        initView();
        SignalConfigViewModel signalConfigViewModel = ViewModelProviders.of(this).get(SignalConfigViewModel.class);
        signalConfigViewModel.getSignalConfigs().observe(this, singalConfigs -> {
            if (singalConfigs != null && singalConfigs.size()>0){
                singalConfigList.clear();
                singalConfigList = singalConfigs;
                sortSigalConfigList();
            }
        });
        leftGreen = getResources().getDrawable(R.drawable.green_light,null);
        leftGray = getResources().getDrawable(R.drawable.gray_light,null);
@@ -119,6 +163,19 @@
        return bingding.getRoot();
    }
    private void sortSigalConfigList() {
        Collections.sort(singalConfigList, new Comparator<SingalConfig>() {
            @Override
            public int compare(SingalConfig o1, SingalConfig o2) {
                return o1.getFunc_id()-o2.getFunc_id();
            }
        });
        Log.i(TAG,"根据fun_id 升序排列");
        for (int j = 0; j < singalConfigList.size(); j++) {
            Log.i(TAG,singalConfigList.get(j).toString());
        }
    }
    private void initView() {
        Log.i(TAG,"currTopFragment="+getTopFragment().getClass().getSimpleName());
        if (HomeFragment.class.getSimpleName().equals(getTopFragment().getClass().getSimpleName())){
app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java
@@ -23,7 +23,7 @@
import androidx.appcompat.widget.Toolbar;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
@@ -1249,7 +1249,7 @@
                    String newmap = null;
                    String mapPath = ExamPlatformData.getInstance().getMapPath();
                    if (!TextUtils.isEmpty(mapPath)){
                        MyLog.i("调用更新Map路径后的地图"+mapPath);
//                        MyLog.i("调用更新Map路径后的地图"+mapPath);
                        byte[] fileContent = FileUtil.readFile(mapPath);
                        if (fileContent != null){
                            newmap= new String(fileContent);
app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
@@ -33,7 +33,7 @@
import androidx.work.WorkManager;
import com.anyun.exam.lib.AYSdk;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import com.squareup.picasso.Picasso;
import org.json.JSONException;
@@ -727,8 +727,13 @@
        //设置模式为NONE 0
        ExamPlatformData.getInstance().setTrainingMode(ExamPlatformData.MODE_NONE);
        //恢复初始数据
        OneTimeWorkRequest examStatusInitWork = OneTimeWorkRequest.from(ExamStatusInitWorker.class);
        WorkManager.getInstance(_mActivity).enqueue(examStatusInitWork);
//        OneTimeWorkRequest examStatusInitWork = OneTimeWorkRequest.from(ExamStatusInitWorker.class);
//        WorkManager.getInstance(_mActivity).enqueue(examStatusInitWork);
        //恢复初始数据exam_status表
        examStatusViewModel.deleteAll();
        examStatusViewModel.updateItemExamResult(1, safeluck.drive.evaluation.DB.Constant.EXAM_STATUS_MAP_ID);
        examStatusViewModel.updateStartExam(0);
        examStatusViewModel.updateExamStatus(2, safeluck.drive.evaluation.DB.Constant.EXAM_STATUS_MAP_ID);
        item_id = 0;
app/src/main/java/safeluck/drive/evaluation/fragment/RTKConfigFragment.java
@@ -14,7 +14,7 @@
import android.widget.EditText;
import android.widget.TextView;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import com.google.gson.Gson;
import me.yokeyword.fragmentation.SupportFragment;
app/src/main/java/safeluck/drive/evaluation/fragment/RoadDriveMapFragment.java
@@ -17,7 +17,7 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
app/src/main/java/safeluck/drive/evaluation/fragment/RoadDriveMapFragmentaa.java
@@ -24,7 +24,7 @@
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
app/src/main/java/safeluck/drive/evaluation/fragment/SetArgumentsFragment.java
@@ -26,7 +26,7 @@
import androidx.work.WorkManager;
import com.anyun.exam.lib.AYSdk;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import com.anyun.exam.lib.util.ByteUtil;
import com.google.gson.Gson;
import com.safeluck.aykj.utils.BytesUtils;
app/src/main/java/safeluck/drive/evaluation/fragment/SignalConfigFragment.java
@@ -16,6 +16,7 @@
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -23,7 +24,7 @@
import androidx.appcompat.widget.Toolbar;
import androidx.lifecycle.ViewModelProviders;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import java.util.ArrayList;
import java.util.HashMap;
@@ -34,8 +35,10 @@
import safeluck.drive.evaluation.DB.signalConfigdb.SignalConfigViewModel;
import safeluck.drive.evaluation.DB.signalConfigdb.SingalConfig;
import safeluck.drive.evaluation.R;
import safeluck.drive.evaluation.app;
import safeluck.drive.evaluation.bean.SignalConfigBean;
import safeluck.drive.evaluation.util.CThreadPoolExecutor;
import safeluck.drive.evaluation.util.DataInitKt;
/**
@@ -44,7 +47,7 @@
 * 邮箱:632393724@qq.com
 * All Rights Saved! Chongqing AnYun Tech co. LTD
 */
public class SignalConfigFragment extends SupportFragment {
public class SignalConfigFragment extends SupportFragment implements View.OnClickListener {
    private static final int INDEX  = 1;
@@ -78,6 +81,7 @@
        linearLayout = view.findViewById(R.id.ll_container);
        listView =view.findViewById(R.id.lv_signalconf);
        view.findViewById(R.id.btn_save_signals).setOnClickListener(this);
        listView.setDivider(null);
        final MySignalsAdapter mySignalsAdapter = new MySignalsAdapter(_mActivity);
@@ -85,9 +89,9 @@
        signalConfigViewModel.getSignalConfigs().observe(this, singalConfigs -> {
            list.clear();
            signalConfiglist.clear();
            MyLog.i(TAG,"信号配置发生变化");
            MyLog.i(TAG,"信号配置发生变化"+singalConfigs.size());
            for (int i = 0; i < singalConfigs.size(); i++) {
                SingalConfig singalConfig = singalConfigs.get(i);
                i++;
@@ -108,8 +112,19 @@
    }
    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.btn_save_signals:
                Toast.makeText(_mActivity, "发送信号配置", Toast.LENGTH_SHORT).show();
                CThreadPoolExecutor.runInBackground(()->{
                    MyLog.i("click时间,发送信号");
                    DataInitKt.sendSignalConfigToRemote(app.getAppContext());
                });
                break;
        }
    }
    private  class MySignalsAdapter extends BaseAdapter{
@@ -283,8 +298,8 @@
                        @Override
                        public void run() {
                            Log.i(TAG,"CThreadPoolExecutor position="+position+ " s1="+signName1+" s2="+s2);
                            viewHolder.editText1.setSelection(getSigal2Pos(signName1));
                            viewHolder.editText2.setSelection(getSigal2Pos(s2));
                            viewHolder.editText1.setSelection(getSigal2Pos(signName1),true);
                            viewHolder.editText2.setSelection(getSigal2Pos(s2),true);
                        }
                    });
app/src/main/java/safeluck/drive/evaluation/fragment/TakePhotoFragment.java
@@ -61,7 +61,7 @@
import me.yokeyword.fragmentation.SupportFragment;
import safeluck.drive.evaluation.R;
import safeluck.drive.evaluation.customview.AutoFitTextureView;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
/**
 * MyApplication2
app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -36,7 +36,7 @@
import android.widget.Toast;
import com.anyun.exam.lib.AYSdk;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import com.google.gson.Gson;
import org.json.JSONException;
@@ -52,10 +52,7 @@
import safeluck.drive.evaluation.Constant;
import safeluck.drive.evaluation.DB.Student;
import safeluck.drive.evaluation.DB.WokViewModel;
import safeluck.drive.evaluation.DB.appstatusdb.AppStatus;
import safeluck.drive.evaluation.DB.appstatusdb.AppStatusViewModel;
import safeluck.drive.evaluation.DB.exam_status.ExamStatus;
import safeluck.drive.evaluation.DB.exam_status.ExamStatusInitWorker;
import safeluck.drive.evaluation.DB.exam_status.ExamStatusViewModel;
import safeluck.drive.evaluation.DB.failitems.FailedProjViewModel;
import safeluck.drive.evaluation.DB.failitems.FailedProj_select;
@@ -66,13 +63,13 @@
import safeluck.drive.evaluation.bean.ScoreBean;
import safeluck.drive.evaluation.cEventCenter.CEventCenter;
import safeluck.drive.evaluation.cEventCenter.ICEventListener;
import safeluck.drive.evaluation.customview.LoadProgressDialog;
import safeluck.drive.evaluation.customview.MyDialog;
import safeluck.drive.evaluation.customview.QRCodeDialog;
import safeluck.drive.evaluation.customview.SelectDialog;
import safeluck.drive.evaluation.im.MessageProcessor;
import safeluck.drive.evaluation.platformMessage.JKMessage0201;
import safeluck.drive.evaluation.platformMessage.JKMessage0202;
import safeluck.drive.evaluation.platformMessage.JKMessage0204;
import safeluck.drive.evaluation.platformMessage.PlatFormConstant;
import safeluck.drive.evaluation.util.Utils;
@@ -695,13 +692,21 @@
    private void stopExam() {
        MyLog.i(TAG,"结束训练");
        JKMessage0204 jkMessage0204 = new JKMessage0204();
        jkMessage0204.timeBCD = new Date();
        jkMessage0204.score = currTotalScore<0?0:currTotalScore;
        jkMessage0204.stop = JKMessage0204.SUCC_STOP;
        jkMessage0204.exam_id = ExamPlatformData.getInstance().getExam_id();
        MessageProcessor.getInstance().sendMessage(jkMessage0204);
        //设置模式为NONE 0
        ExamPlatformData.getInstance().setTrainingMode(ExamPlatformData.MODE_NONE);
        //恢复初始数据
        OneTimeWorkRequest examStatusInitWork = OneTimeWorkRequest.from(ExamStatusInitWorker.class);
        WorkManager.getInstance(_mActivity).enqueue(examStatusInitWork);
        //恢复初始数据exam_status表
        examStatusViewModel.deleteAll();
        examStatusViewModel.updateItemExamResult(1, safeluck.drive.evaluation.DB.Constant.EXAM_STATUS_MAP_ID);
        examStatusViewModel.updateStartExam(0);
        examStatusViewModel.updateExamStatus(2, safeluck.drive.evaluation.DB.Constant.EXAM_STATUS_MAP_ID);
        item_id = 0;
        currTotalScore = 100;
        failedProjViewModel.deleteAll();
app/src/main/java/safeluck/drive/evaluation/fragment/VPFragment.java
@@ -13,7 +13,7 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
app/src/main/java/safeluck/drive/evaluation/im/IMSEventListener.java
@@ -4,7 +4,7 @@
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import com.anyun.im_lib.listener.OnEventListener;
import safeluck.drive.evaluation.app;
app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java
@@ -7,7 +7,7 @@
import androidx.work.OneTimeWorkRequest;
import androidx.work.WorkManager;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import com.anyun.im_lib.interf.IMSClientInteface;
import com.anyun.im_lib.util.ByteUtil;
import com.google.gson.Gson;
@@ -86,7 +86,7 @@
                sendMessage(jkMessage0101);
                ExamPlatformData.getInstance().setExamplatformStatus(ExamPlatformData.DEV_REGISTERED);
            }else{
                ExamPlatformData.getInstance().setExamplatformStatus(ExamPlatformData.DEV_REGISTERED);
                ExamPlatformData.getInstance().setExamplatformStatus(ExamPlatformData.DEV_NOT_REGISTERED);
            }
        }else if (jk2019MessageBase instanceof JKMessage8001){
            JKMessage8001 jkMessage8001 = (JKMessage8001) jk2019MessageBase;
@@ -181,7 +181,7 @@
                case "0101":
                    return true;
                    default:
                        return false;
                        return true;
            }
        }else{
app/src/main/java/safeluck/drive/evaluation/receiver/BootFinishReceiver.java
@@ -5,10 +5,13 @@
import android.content.Intent;
import android.content.pm.PackageManager;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import safeluck.drive.evaluation.MainActivity;
/**
 * @author Administrator
 */
public class BootFinishReceiver extends BroadcastReceiver {
    private static final String TAG = "BootFinishReceiver";
@@ -18,7 +21,8 @@
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(ACTION)) {
            MyLog.i(TAG,"开机启动完成");
            Intent first= new Intent();  //启动指定页面
            //启动指定页面
            Intent first= new Intent();
            PackageManager packageManager = context.getPackageManager();
            first.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            first.setClass(context,MainActivity.class);
app/src/main/java/safeluck/drive/evaluation/receiver/ReBootBroadcastReceiver.java
@@ -5,12 +5,15 @@
import android.content.Intent;
import com.anyun.exam.lib.AYSdk;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import com.google.gson.Gson;
import safeluck.drive.evaluation.Constant;
import safeluck.drive.evaluation.bean.DeviceWorkMCU;
/**
 * @author Administrator
 */
public class ReBootBroadcastReceiver extends BroadcastReceiver {
    private static final String TAG = "ReBootBroadcastReceiver";
app/src/main/java/safeluck/drive/evaluation/receiver/ShutdownBroadcastReceiver.java
@@ -5,7 +5,7 @@
import android.content.Intent;
import com.anyun.exam.lib.AYSdk;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import com.google.gson.Gson;
import safeluck.drive.evaluation.Constant;
app/src/main/java/safeluck/drive/evaluation/util/CThreadPoolExecutor.java
@@ -5,7 +5,7 @@
import android.os.Looper;
import android.util.Log;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import java.util.HashMap;
import java.util.Iterator;
app/src/main/java/safeluck/drive/evaluation/util/DataInit.kt
@@ -4,7 +4,7 @@
import androidx.work.Data
import androidx.work.ListenableWorker
import com.anyun.exam.lib.AYSdk
import com.anyun.exam.lib.MyLog
import com.anyun.basecommonlib.MyLog
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.google.gson.stream.JsonReader
@@ -142,10 +142,12 @@
    }
}
private var singalConfigs :List<SingalConfig> = ArrayList()
private var singalConfigs :MutableList<SingalConfig> =  mutableListOf()
fun sendSignalConfigToRemote(applicationContext: Context){
    MyLog.i("sendSignalConfigToRemote")
    singalConfigs.clear()
    signalConfiglist.clear()
    singalConfigs = WorkRoomDataBase.getWorkRoomDataBase(applicationContext).signalConfigDao._getSignalConfigs()
    if (singalConfigs ==null){
        MyLog.i("读文件发送信号配置")
@@ -156,13 +158,16 @@
            val gson = Gson()
            val type = object : TypeToken<List<SingalConfig?>?>() {}.type
            val mstus = gson.fromJson<List<SingalConfig>>(jsonReader, type)
            singalConfigs = mstus
            for (j in mstus.indices){
                singalConfigs[j] = mstus[j]
            }
        } catch (e: IOException) {
            e.printStackTrace()
        }
    }else{
        MyLog.i("读到数据库里面的信号配置"+ signalConfiglist.size);
    }
    for (i in singalConfigs.indices) {
        val signalConfigRemote = SignalConfigRemote()
        signalConfigRemote.func_id = singalConfigs.get(i).func_id
@@ -181,6 +186,7 @@
        if (listContainsSameValue(indexs)) {
            MyLog.i("sendSignalConfigsToRemote: 有相同的index,不能发送" + gson.toJson(signalConfiglist))
        } else {
            MyLog.i("调用发送命令接口发送信号配置")
            AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.SEND_CONFIG_SIGNAL, gson.toJson(signalConfiglist))
        }
    }
app/src/main/java/safeluck/drive/evaluation/util/FileUtil.java
@@ -7,7 +7,7 @@
import android.text.TextUtils;
import android.util.Log;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import com.anyun.exam.lib.util.ByteUtil;
import java.io.BufferedOutputStream;
app/src/main/java/safeluck/drive/evaluation/util/Utils.java
@@ -6,7 +6,7 @@
import android.util.Log;
import android.util.TypedValue;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import com.anyun.exam.lib.util.ByteUtil;
import com.google.gson.Gson;
import com.safeluck.aykj.utils.BytesUtils;
app/src/main/java/safeluck/drive/evaluation/viewmodels/ExamPlatformModel.java
@@ -7,7 +7,7 @@
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
import java.util.concurrent.atomic.AtomicInteger;
app/src/main/java/safeluck/drive/evaluation/viewmodels/MainViewModel.java
@@ -9,7 +9,7 @@
import java.util.concurrent.atomic.AtomicInteger;
import com.anyun.exam.lib.MyLog;
import com.anyun.basecommonlib.MyLog;
public class MainViewModel extends ViewModel {
    private static final String TAG = "MainViewModel";
app/src/main/java/safeluck/drive/evaluation/worker/MCUUpgradeWorker.kt
@@ -4,8 +4,8 @@
import androidx.work.Data
import androidx.work.Worker
import androidx.work.WorkerParameters
import com.anyun.basecommonlib.MyLog
import com.anyun.exam.lib.AYSdk
import com.anyun.exam.lib.MyLog
import safeluck.drive.evaluation.Constant
import safeluck.drive.evaluation.util.FileUtil
import java.io.IOException
app/src/main/java/safeluck/drive/evaluation/worker/TimeWorker.kt
@@ -6,7 +6,7 @@
import androidx.work.Data
import androidx.work.Worker
import androidx.work.WorkerParameters
import com.anyun.exam.lib.MyLog
import com.anyun.basecommonlib.MyLog
import safeluck.drive.evaluation.Constant
import safeluck.drive.evaluation.util.Utils
app/src/main/res/layout/layout_base_datas.xml
@@ -5,6 +5,7 @@
    xmlns:lee="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/ic_bground"
    android:layout_marginTop="@dimen/ui_margin_20dp">
    <TextView
        android:layout_width="114dp"
app/src/main/res/layout/layout_check_signal.xml
@@ -4,6 +4,7 @@
        xmlns:lee="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/ic_bground"
        android:orientation="vertical"
        >
        <TextView
app/src/main/res/layout/layout_gps_info.xml
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:background="@drawable/ic_bground"
    android:layout_height="match_parent">
    <ListView
        android:layout_width="match_parent"
app/src/main/res/layout/layout_signal_slice.xml
@@ -14,8 +14,8 @@
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="喇叭"
            android:id="@+id/tv_loudspeaker"
            android:text="雾灯"
            android:id="@+id/tv_foglight"
            android:drawableLeft="@drawable/gray_light"
            android:drawablePadding="5dp"
            android:textSize="@dimen/network_train_textsize22px"
@@ -124,10 +124,10 @@
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="双闪"
            android:text="档位四"
            android:textSize="@dimen/network_train_textsize22px"
            android:layout_marginLeft="30dp"
            android:id="@+id/tv_emergency_flasher"
            android:id="@+id/tv_gear_four"
            android:drawableLeft="@drawable/gray_light"
            android:drawablePadding="5dp"
            android:textColor="@android:color/white"/>
@@ -136,7 +136,8 @@
            android:layout_height="wrap_content"
            android:text="副刹"
            android:layout_marginLeft="30dp"
            android:id="@+id/tv_gear_four"
            android:id="@+id/tv_secondary_brake"
            android:textSize="@dimen/network_train_textsize22px"
            android:drawableLeft="@drawable/gray_light"
            android:drawablePadding="5dp"
@@ -203,10 +204,9 @@
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Signal3-6"
            android:text="绕车二"
            android:layout_marginLeft="30dp"
            android:id="@+id/tv_signal3_6"
            android:visibility="gone"
            android:textSize="@dimen/network_train_textsize22px"
            android:drawableLeft="@drawable/gray_light"
            android:drawablePadding="5dp"
@@ -238,10 +238,9 @@
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Signal3-7"
            android:id="@+id/tv_signal3_7"
            android:text="绕车三"
            android:id="@+id/tv_winding_three"
            android:textSize="@dimen/network_train_textsize22px"
            android:visibility="gone"
            android:layout_marginLeft="30dp"
            android:drawableLeft="@drawable/gray_light"
            android:drawablePadding="5dp"
@@ -263,9 +262,9 @@
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="离合"
            android:text="倒挡"
            android:layout_marginLeft="30dp"
            android:id="@+id/tv_clutch_pedal"
            android:id="@+id/tv_reverse_gear"
            android:textSize="@dimen/network_train_textsize22px"
            android:drawableLeft="@drawable/gray_light"
            android:drawablePadding="5dp"
@@ -273,10 +272,9 @@
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Signal3-8"
            android:visibility="gone"
            android:text="绕车四"
            android:layout_marginLeft="30dp"
            android:id="@+id/tv_signal3_8"
            android:id="@+id/tv_winding_four"
            android:drawableLeft="@drawable/gray_light"
            android:drawablePadding="5dp"
            android:textSize="@dimen/network_train_textsize22px"
app/src/main/res/layout/layout_sys_setting.xml
@@ -2,6 +2,7 @@
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/ic_bground"
    android:orientation="vertical">
    <android.support.design.widget.AppBarLayout
app/src/main/res/layout/layout_train_fragment.xml
@@ -2,6 +2,7 @@
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/ic_bground"
    android:orientation="vertical"
    style="@style/ui_margin"
    >
app/src/main/res/values/arrays.xml
@@ -24,9 +24,9 @@
        <item>一档</item>
        <item>二档</item>
        <item>三档</item>
    <!--    <item>四档</item>
        <item>四档</item>
        <item>五档</item>
        <item>倒档</item>-->
        <item>倒档</item>
        <item>START位</item>
        <item>副刹</item>
        <item>绕车一</item>
app/src/main/res/values/styles.xml
@@ -5,7 +5,7 @@
        <!-- Customize your theme here. -->
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
        <item name="android:windowBackground">@null</item>
        <item name="android:windowBackground">@drawable/ic_bground</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="colorPrimary">@color/colorPrimary</item>
im_lib/build.gradle
@@ -25,7 +25,7 @@
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation project(path: ':BaseCommonLib')
    implementation 'androidx.appcompat:appcompat:1.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
im_lib/src/main/java/com/anyun/im_lib/HeartbeatHandler.java
@@ -1,7 +1,7 @@
package com.anyun.im_lib;
import com.anyun.im_lib.netty.NettyTcpClient;
import com.anyun.im_lib.util.MyLog;
import com.anyun.basecommonlib.MyLog;
import com.safeluck.aykj.utils.BytesUtils;
import io.netty.channel.ChannelHandlerContext;
im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java
@@ -12,7 +12,7 @@
import com.anyun.im_lib.listener.IMSConnectStatusCallback;
import com.anyun.im_lib.listener.OnEventListener;
import com.anyun.im_lib.util.ByteUtil;
import com.anyun.im_lib.util.MyLog;
import com.anyun.basecommonlib.MyLog;
import com.anyun.im_lib.util.PlatFormConstant;
import com.safeluck.aykj.utils.BytesUtils;
lib/build.gradle
@@ -40,7 +40,7 @@
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation project(path: ':BaseCommonLib')
    implementation 'com.android.support:appcompat-v7:28.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
lib/src/main/java/com/anyun/exam/lib/MyLog.java
File was deleted
settings.gradle
@@ -1 +1,2 @@
include ':BaseCommonLib'
include ':app', ':lib', ':im_lib'