diff --git a/app/build.gradle b/app/build.gradle index 6bd59ac..ae31f07 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,11 @@ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - //华为手机需要添加如下配置 - ndk { abiFilters "armeabi", "armeabi-v7a" } + ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } + + manifestPlaceholders = [ + GETUI_APPID: "DR9oeLL9va6aG3DYXy2w39" + ] } buildTypes { @@ -74,4 +77,8 @@ implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1' //图表 implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' + //Excel表格 + implementation 'com.github.huangyanbin:SmartTable:1.7.1' + implementation 'com.getui:gtsdk:3.1.4.0' //个推SDK + implementation 'com.getui:gtc:3.1.0.0' //个推核心组件 } diff --git a/app/build.gradle b/app/build.gradle index 6bd59ac..ae31f07 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,11 @@ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - //华为手机需要添加如下配置 - ndk { abiFilters "armeabi", "armeabi-v7a" } + ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } + + manifestPlaceholders = [ + GETUI_APPID: "DR9oeLL9va6aG3DYXy2w39" + ] } buildTypes { @@ -74,4 +77,8 @@ implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1' //图表 implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' + //Excel表格 + implementation 'com.github.huangyanbin:SmartTable:1.7.1' + implementation 'com.getui:gtsdk:3.1.4.0' //个推SDK + implementation 'com.getui:gtc:3.1.0.0' //个推核心组件 } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5aec328..35a9c86 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,5 +55,18 @@ android:resource="@xml/filepaths" /> + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 6bd59ac..ae31f07 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,11 @@ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - //华为手机需要添加如下配置 - ndk { abiFilters "armeabi", "armeabi-v7a" } + ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } + + manifestPlaceholders = [ + GETUI_APPID: "DR9oeLL9va6aG3DYXy2w39" + ] } buildTypes { @@ -74,4 +77,8 @@ implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1' //图表 implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' + //Excel表格 + implementation 'com.github.huangyanbin:SmartTable:1.7.1' + implementation 'com.getui:gtsdk:3.1.4.0' //个推SDK + implementation 'com.getui:gtc:3.1.0.0' //个推核心组件 } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5aec328..35a9c86 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,5 +55,18 @@ android:resource="@xml/filepaths" /> + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 0972c8a..332d339 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -9,6 +9,9 @@ import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; public class BaseApplication extends Application { + + private static final String TAG = "BaseApplication"; + @Override public void onCreate() { super.onCreate(); @@ -17,7 +20,13 @@ ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); - //ArcGIS注册 -// ArcGISRuntimeEnvironment.setLicense(); + //个推初始化 + com.igexin.sdk.PushManager.getInstance().initialize(this); +// com.igexin.sdk.PushManager.getInstance().setDebugLogger(this, new IUserLoggerInterface() { +// @Override +// public void log(String s) { +// Log.d(TAG, s); +// } +// }); } } diff --git a/app/build.gradle b/app/build.gradle index 6bd59ac..ae31f07 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,11 @@ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - //华为手机需要添加如下配置 - ndk { abiFilters "armeabi", "armeabi-v7a" } + ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } + + manifestPlaceholders = [ + GETUI_APPID: "DR9oeLL9va6aG3DYXy2w39" + ] } buildTypes { @@ -74,4 +77,8 @@ implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1' //图表 implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' + //Excel表格 + implementation 'com.github.huangyanbin:SmartTable:1.7.1' + implementation 'com.getui:gtsdk:3.1.4.0' //个推SDK + implementation 'com.getui:gtc:3.1.0.0' //个推核心组件 } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5aec328..35a9c86 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,5 +55,18 @@ android:resource="@xml/filepaths" /> + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 0972c8a..332d339 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -9,6 +9,9 @@ import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; public class BaseApplication extends Application { + + private static final String TAG = "BaseApplication"; + @Override public void onCreate() { super.onCreate(); @@ -17,7 +20,13 @@ ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); - //ArcGIS注册 -// ArcGISRuntimeEnvironment.setLicense(); + //个推初始化 + com.igexin.sdk.PushManager.getInstance().initialize(this); +// com.igexin.sdk.PushManager.getInstance().setDebugLogger(this, new IUserLoggerInterface() { +// @Override +// public void log(String s) { +// Log.d(TAG, s); +// } +// }); } } diff --git a/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java b/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java new file mode 100644 index 0000000..65dcf2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java @@ -0,0 +1,26 @@ +package com.casic.dcms.bean; + +import com.bin.david.form.annotation.SmartColumn; +import com.bin.david.form.annotation.SmartTable; + +/** + * @author : Pengxh + * @time : 2021/4/16 14:38 + * @email : 290677893@qq.com + **/ +@SmartTable(name = "问题来源统计表表") +public class ExcelDataBean { + + @SmartColumn(id = 0, name = "序号") + private int index; + @SmartColumn(id = 1, name = "问题来源") + private String source; + @SmartColumn(id = 2, name = "上报数量") + private int number; + + public ExcelDataBean(int index, String source, int number) { + this.index = index; + this.source = source; + this.number = number; + } +} diff --git a/app/build.gradle b/app/build.gradle index 6bd59ac..ae31f07 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,11 @@ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - //华为手机需要添加如下配置 - ndk { abiFilters "armeabi", "armeabi-v7a" } + ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } + + manifestPlaceholders = [ + GETUI_APPID: "DR9oeLL9va6aG3DYXy2w39" + ] } buildTypes { @@ -74,4 +77,8 @@ implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1' //图表 implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' + //Excel表格 + implementation 'com.github.huangyanbin:SmartTable:1.7.1' + implementation 'com.getui:gtsdk:3.1.4.0' //个推SDK + implementation 'com.getui:gtc:3.1.0.0' //个推核心组件 } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5aec328..35a9c86 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,5 +55,18 @@ android:resource="@xml/filepaths" /> + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 0972c8a..332d339 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -9,6 +9,9 @@ import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; public class BaseApplication extends Application { + + private static final String TAG = "BaseApplication"; + @Override public void onCreate() { super.onCreate(); @@ -17,7 +20,13 @@ ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); - //ArcGIS注册 -// ArcGISRuntimeEnvironment.setLicense(); + //个推初始化 + com.igexin.sdk.PushManager.getInstance().initialize(this); +// com.igexin.sdk.PushManager.getInstance().setDebugLogger(this, new IUserLoggerInterface() { +// @Override +// public void log(String s) { +// Log.d(TAG, s); +// } +// }); } } diff --git a/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java b/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java new file mode 100644 index 0000000..65dcf2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java @@ -0,0 +1,26 @@ +package com.casic.dcms.bean; + +import com.bin.david.form.annotation.SmartColumn; +import com.bin.david.form.annotation.SmartTable; + +/** + * @author : Pengxh + * @time : 2021/4/16 14:38 + * @email : 290677893@qq.com + **/ +@SmartTable(name = "问题来源统计表表") +public class ExcelDataBean { + + @SmartColumn(id = 0, name = "序号") + private int index; + @SmartColumn(id = 1, name = "问题来源") + private String source; + @SmartColumn(id = 2, name = "上报数量") + private int number; + + public ExcelDataBean(int index, String source, int number) { + this.index = index; + this.source = source; + this.number = number; + } +} diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java new file mode 100644 index 0000000..a38ceb3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java @@ -0,0 +1,58 @@ +package com.casic.dcms.service; + +import android.content.Context; + +import com.igexin.sdk.GTIntentService; +import com.igexin.sdk.message.GTCmdMessage; +import com.igexin.sdk.message.GTNotificationMessage; +import com.igexin.sdk.message.GTTransmitMessage; + +/** + * @author : Pengxh + * @time : 2021/4/16 16:16 + * @email : 290677893@qq.com + **/ +public class GeTuiIntentService extends GTIntentService { + private static final String TAG = "GeTuiIntentService"; + + @Override + public void onReceiveServicePid(Context context, int pid) { + + } + + // 处理透传消息 + @Override + public void onReceiveMessageData(Context context, GTTransmitMessage msg) { + // 透传消息的处理,详看 SDK demo + } + + // 接收 cid + @Override + public void onReceiveClientId(Context context, String clientid) { +// Log.d(TAG, "onReceiveClientId -> " + "clientid = " + clientid); + } + + // cid 离线上线通知 + @Override + public void onReceiveOnlineState(Context context, boolean online) { + + } + + // 各种事件处理回执 + @Override + public void onReceiveCommandResult(Context context, GTCmdMessage cmdMessage) { + + } + + // 通知到达,只有个推通道下发的通知会回调此方法 + @Override + public void onNotificationMessageArrived(Context context, GTNotificationMessage msg) { + + } + + // 通知点击,只有个推通道下发的通知会回调此方法 + @Override + public void onNotificationMessageClicked(Context context, GTNotificationMessage msg) { + + } +} diff --git a/app/build.gradle b/app/build.gradle index 6bd59ac..ae31f07 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,11 @@ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - //华为手机需要添加如下配置 - ndk { abiFilters "armeabi", "armeabi-v7a" } + ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } + + manifestPlaceholders = [ + GETUI_APPID: "DR9oeLL9va6aG3DYXy2w39" + ] } buildTypes { @@ -74,4 +77,8 @@ implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1' //图表 implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' + //Excel表格 + implementation 'com.github.huangyanbin:SmartTable:1.7.1' + implementation 'com.getui:gtsdk:3.1.4.0' //个推SDK + implementation 'com.getui:gtc:3.1.0.0' //个推核心组件 } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5aec328..35a9c86 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,5 +55,18 @@ android:resource="@xml/filepaths" /> + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 0972c8a..332d339 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -9,6 +9,9 @@ import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; public class BaseApplication extends Application { + + private static final String TAG = "BaseApplication"; + @Override public void onCreate() { super.onCreate(); @@ -17,7 +20,13 @@ ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); - //ArcGIS注册 -// ArcGISRuntimeEnvironment.setLicense(); + //个推初始化 + com.igexin.sdk.PushManager.getInstance().initialize(this); +// com.igexin.sdk.PushManager.getInstance().setDebugLogger(this, new IUserLoggerInterface() { +// @Override +// public void log(String s) { +// Log.d(TAG, s); +// } +// }); } } diff --git a/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java b/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java new file mode 100644 index 0000000..65dcf2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java @@ -0,0 +1,26 @@ +package com.casic.dcms.bean; + +import com.bin.david.form.annotation.SmartColumn; +import com.bin.david.form.annotation.SmartTable; + +/** + * @author : Pengxh + * @time : 2021/4/16 14:38 + * @email : 290677893@qq.com + **/ +@SmartTable(name = "问题来源统计表表") +public class ExcelDataBean { + + @SmartColumn(id = 0, name = "序号") + private int index; + @SmartColumn(id = 1, name = "问题来源") + private String source; + @SmartColumn(id = 2, name = "上报数量") + private int number; + + public ExcelDataBean(int index, String source, int number) { + this.index = index; + this.source = source; + this.number = number; + } +} diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java new file mode 100644 index 0000000..a38ceb3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java @@ -0,0 +1,58 @@ +package com.casic.dcms.service; + +import android.content.Context; + +import com.igexin.sdk.GTIntentService; +import com.igexin.sdk.message.GTCmdMessage; +import com.igexin.sdk.message.GTNotificationMessage; +import com.igexin.sdk.message.GTTransmitMessage; + +/** + * @author : Pengxh + * @time : 2021/4/16 16:16 + * @email : 290677893@qq.com + **/ +public class GeTuiIntentService extends GTIntentService { + private static final String TAG = "GeTuiIntentService"; + + @Override + public void onReceiveServicePid(Context context, int pid) { + + } + + // 处理透传消息 + @Override + public void onReceiveMessageData(Context context, GTTransmitMessage msg) { + // 透传消息的处理,详看 SDK demo + } + + // 接收 cid + @Override + public void onReceiveClientId(Context context, String clientid) { +// Log.d(TAG, "onReceiveClientId -> " + "clientid = " + clientid); + } + + // cid 离线上线通知 + @Override + public void onReceiveOnlineState(Context context, boolean online) { + + } + + // 各种事件处理回执 + @Override + public void onReceiveCommandResult(Context context, GTCmdMessage cmdMessage) { + + } + + // 通知到达,只有个推通道下发的通知会回调此方法 + @Override + public void onNotificationMessageArrived(Context context, GTNotificationMessage msg) { + + } + + // 通知点击,只有个推通道下发的通知会回调此方法 + @Override + public void onNotificationMessageClicked(Context context, GTNotificationMessage msg) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java b/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java new file mode 100644 index 0000000..a82f04e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java @@ -0,0 +1,10 @@ +package com.casic.dcms.service; + +/** + * @author : Pengxh + * @time : 2021/4/16 16:09 + * @email : 290677893@qq.com + **/ +public class GeTuiPushService extends com.igexin.sdk.PushService { + +} diff --git a/app/build.gradle b/app/build.gradle index 6bd59ac..ae31f07 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,11 @@ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - //华为手机需要添加如下配置 - ndk { abiFilters "armeabi", "armeabi-v7a" } + ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } + + manifestPlaceholders = [ + GETUI_APPID: "DR9oeLL9va6aG3DYXy2w39" + ] } buildTypes { @@ -74,4 +77,8 @@ implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1' //图表 implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' + //Excel表格 + implementation 'com.github.huangyanbin:SmartTable:1.7.1' + implementation 'com.getui:gtsdk:3.1.4.0' //个推SDK + implementation 'com.getui:gtc:3.1.0.0' //个推核心组件 } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5aec328..35a9c86 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,5 +55,18 @@ android:resource="@xml/filepaths" /> + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 0972c8a..332d339 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -9,6 +9,9 @@ import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; public class BaseApplication extends Application { + + private static final String TAG = "BaseApplication"; + @Override public void onCreate() { super.onCreate(); @@ -17,7 +20,13 @@ ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); - //ArcGIS注册 -// ArcGISRuntimeEnvironment.setLicense(); + //个推初始化 + com.igexin.sdk.PushManager.getInstance().initialize(this); +// com.igexin.sdk.PushManager.getInstance().setDebugLogger(this, new IUserLoggerInterface() { +// @Override +// public void log(String s) { +// Log.d(TAG, s); +// } +// }); } } diff --git a/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java b/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java new file mode 100644 index 0000000..65dcf2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java @@ -0,0 +1,26 @@ +package com.casic.dcms.bean; + +import com.bin.david.form.annotation.SmartColumn; +import com.bin.david.form.annotation.SmartTable; + +/** + * @author : Pengxh + * @time : 2021/4/16 14:38 + * @email : 290677893@qq.com + **/ +@SmartTable(name = "问题来源统计表表") +public class ExcelDataBean { + + @SmartColumn(id = 0, name = "序号") + private int index; + @SmartColumn(id = 1, name = "问题来源") + private String source; + @SmartColumn(id = 2, name = "上报数量") + private int number; + + public ExcelDataBean(int index, String source, int number) { + this.index = index; + this.source = source; + this.number = number; + } +} diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java new file mode 100644 index 0000000..a38ceb3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java @@ -0,0 +1,58 @@ +package com.casic.dcms.service; + +import android.content.Context; + +import com.igexin.sdk.GTIntentService; +import com.igexin.sdk.message.GTCmdMessage; +import com.igexin.sdk.message.GTNotificationMessage; +import com.igexin.sdk.message.GTTransmitMessage; + +/** + * @author : Pengxh + * @time : 2021/4/16 16:16 + * @email : 290677893@qq.com + **/ +public class GeTuiIntentService extends GTIntentService { + private static final String TAG = "GeTuiIntentService"; + + @Override + public void onReceiveServicePid(Context context, int pid) { + + } + + // 处理透传消息 + @Override + public void onReceiveMessageData(Context context, GTTransmitMessage msg) { + // 透传消息的处理,详看 SDK demo + } + + // 接收 cid + @Override + public void onReceiveClientId(Context context, String clientid) { +// Log.d(TAG, "onReceiveClientId -> " + "clientid = " + clientid); + } + + // cid 离线上线通知 + @Override + public void onReceiveOnlineState(Context context, boolean online) { + + } + + // 各种事件处理回执 + @Override + public void onReceiveCommandResult(Context context, GTCmdMessage cmdMessage) { + + } + + // 通知到达,只有个推通道下发的通知会回调此方法 + @Override + public void onNotificationMessageArrived(Context context, GTNotificationMessage msg) { + + } + + // 通知点击,只有个推通道下发的通知会回调此方法 + @Override + public void onNotificationMessageClicked(Context context, GTNotificationMessage msg) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java b/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java new file mode 100644 index 0000000..a82f04e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java @@ -0,0 +1,10 @@ +package com.casic.dcms.service; + +/** + * @author : Pengxh + * @time : 2021/4/16 16:09 + * @email : 290677893@qq.com + **/ +public class GeTuiPushService extends com.igexin.sdk.PushService { + +} diff --git a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java index 019a9dc..78c0b05 100644 --- a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java @@ -6,13 +6,13 @@ import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; -import androidx.viewpager.widget.ViewPager; import com.casic.dcms.R; import com.casic.dcms.adapter.SubViewPagerAdapter; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.ui.fragment.ExcelFragment; import com.casic.dcms.ui.fragment.PieChartFragment; +import com.casic.dcms.widgets.NoScrollViewPager; import com.google.android.material.tabs.TabLayout; import com.qmuiteam.qmui.widget.QMUITopBarLayout; @@ -34,7 +34,7 @@ @BindView(R.id.eventTabLayout) TabLayout eventTabLayout; @BindView(R.id.eventViewPager) - ViewPager eventViewPager; + NoScrollViewPager eventViewPager; private Context context = this; diff --git a/app/build.gradle b/app/build.gradle index 6bd59ac..ae31f07 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,11 @@ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - //华为手机需要添加如下配置 - ndk { abiFilters "armeabi", "armeabi-v7a" } + ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } + + manifestPlaceholders = [ + GETUI_APPID: "DR9oeLL9va6aG3DYXy2w39" + ] } buildTypes { @@ -74,4 +77,8 @@ implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1' //图表 implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' + //Excel表格 + implementation 'com.github.huangyanbin:SmartTable:1.7.1' + implementation 'com.getui:gtsdk:3.1.4.0' //个推SDK + implementation 'com.getui:gtc:3.1.0.0' //个推核心组件 } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5aec328..35a9c86 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,5 +55,18 @@ android:resource="@xml/filepaths" /> + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 0972c8a..332d339 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -9,6 +9,9 @@ import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; public class BaseApplication extends Application { + + private static final String TAG = "BaseApplication"; + @Override public void onCreate() { super.onCreate(); @@ -17,7 +20,13 @@ ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); - //ArcGIS注册 -// ArcGISRuntimeEnvironment.setLicense(); + //个推初始化 + com.igexin.sdk.PushManager.getInstance().initialize(this); +// com.igexin.sdk.PushManager.getInstance().setDebugLogger(this, new IUserLoggerInterface() { +// @Override +// public void log(String s) { +// Log.d(TAG, s); +// } +// }); } } diff --git a/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java b/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java new file mode 100644 index 0000000..65dcf2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java @@ -0,0 +1,26 @@ +package com.casic.dcms.bean; + +import com.bin.david.form.annotation.SmartColumn; +import com.bin.david.form.annotation.SmartTable; + +/** + * @author : Pengxh + * @time : 2021/4/16 14:38 + * @email : 290677893@qq.com + **/ +@SmartTable(name = "问题来源统计表表") +public class ExcelDataBean { + + @SmartColumn(id = 0, name = "序号") + private int index; + @SmartColumn(id = 1, name = "问题来源") + private String source; + @SmartColumn(id = 2, name = "上报数量") + private int number; + + public ExcelDataBean(int index, String source, int number) { + this.index = index; + this.source = source; + this.number = number; + } +} diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java new file mode 100644 index 0000000..a38ceb3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java @@ -0,0 +1,58 @@ +package com.casic.dcms.service; + +import android.content.Context; + +import com.igexin.sdk.GTIntentService; +import com.igexin.sdk.message.GTCmdMessage; +import com.igexin.sdk.message.GTNotificationMessage; +import com.igexin.sdk.message.GTTransmitMessage; + +/** + * @author : Pengxh + * @time : 2021/4/16 16:16 + * @email : 290677893@qq.com + **/ +public class GeTuiIntentService extends GTIntentService { + private static final String TAG = "GeTuiIntentService"; + + @Override + public void onReceiveServicePid(Context context, int pid) { + + } + + // 处理透传消息 + @Override + public void onReceiveMessageData(Context context, GTTransmitMessage msg) { + // 透传消息的处理,详看 SDK demo + } + + // 接收 cid + @Override + public void onReceiveClientId(Context context, String clientid) { +// Log.d(TAG, "onReceiveClientId -> " + "clientid = " + clientid); + } + + // cid 离线上线通知 + @Override + public void onReceiveOnlineState(Context context, boolean online) { + + } + + // 各种事件处理回执 + @Override + public void onReceiveCommandResult(Context context, GTCmdMessage cmdMessage) { + + } + + // 通知到达,只有个推通道下发的通知会回调此方法 + @Override + public void onNotificationMessageArrived(Context context, GTNotificationMessage msg) { + + } + + // 通知点击,只有个推通道下发的通知会回调此方法 + @Override + public void onNotificationMessageClicked(Context context, GTNotificationMessage msg) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java b/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java new file mode 100644 index 0000000..a82f04e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java @@ -0,0 +1,10 @@ +package com.casic.dcms.service; + +/** + * @author : Pengxh + * @time : 2021/4/16 16:09 + * @email : 290677893@qq.com + **/ +public class GeTuiPushService extends com.igexin.sdk.PushService { + +} diff --git a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java index 019a9dc..78c0b05 100644 --- a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java @@ -6,13 +6,13 @@ import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; -import androidx.viewpager.widget.ViewPager; import com.casic.dcms.R; import com.casic.dcms.adapter.SubViewPagerAdapter; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.ui.fragment.ExcelFragment; import com.casic.dcms.ui.fragment.PieChartFragment; +import com.casic.dcms.widgets.NoScrollViewPager; import com.google.android.material.tabs.TabLayout; import com.qmuiteam.qmui.widget.QMUITopBarLayout; @@ -34,7 +34,7 @@ @BindView(R.id.eventTabLayout) TabLayout eventTabLayout; @BindView(R.id.eventViewPager) - ViewPager eventViewPager; + NoScrollViewPager eventViewPager; private Context context = this; diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 937806b..1de7445 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -30,6 +30,7 @@ public class MainActivity extends DoubleClickExitActivity { + private static final String TAG = "MainActivity"; @BindView(R.id.mainTopLayout) QMUITopBarLayout mainTopLayout; @BindView(R.id.mainViewPager) @@ -54,6 +55,8 @@ @Override public void initData() { + //个推初始化 + com.igexin.sdk.PushManager.getInstance().initialize(this); pageList = new ArrayList<>(); pageList.add(new HomePageFragment()); pageList.add(new PhonePageFragment()); @@ -65,10 +68,12 @@ public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action != null) { - String data = intent.getStringExtra("data"); - assert data != null; - if (data.equals("请求成功")) { - finish(); + if (Constant.LOGIN_OUT_ACTION.equals(action)) { + String data = intent.getStringExtra("data"); + assert data != null; + if (data.equals("请求成功")) { + finish(); + } } } } diff --git a/app/build.gradle b/app/build.gradle index 6bd59ac..ae31f07 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,11 @@ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - //华为手机需要添加如下配置 - ndk { abiFilters "armeabi", "armeabi-v7a" } + ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } + + manifestPlaceholders = [ + GETUI_APPID: "DR9oeLL9va6aG3DYXy2w39" + ] } buildTypes { @@ -74,4 +77,8 @@ implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1' //图表 implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' + //Excel表格 + implementation 'com.github.huangyanbin:SmartTable:1.7.1' + implementation 'com.getui:gtsdk:3.1.4.0' //个推SDK + implementation 'com.getui:gtc:3.1.0.0' //个推核心组件 } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5aec328..35a9c86 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,5 +55,18 @@ android:resource="@xml/filepaths" /> + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 0972c8a..332d339 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -9,6 +9,9 @@ import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; public class BaseApplication extends Application { + + private static final String TAG = "BaseApplication"; + @Override public void onCreate() { super.onCreate(); @@ -17,7 +20,13 @@ ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); - //ArcGIS注册 -// ArcGISRuntimeEnvironment.setLicense(); + //个推初始化 + com.igexin.sdk.PushManager.getInstance().initialize(this); +// com.igexin.sdk.PushManager.getInstance().setDebugLogger(this, new IUserLoggerInterface() { +// @Override +// public void log(String s) { +// Log.d(TAG, s); +// } +// }); } } diff --git a/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java b/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java new file mode 100644 index 0000000..65dcf2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java @@ -0,0 +1,26 @@ +package com.casic.dcms.bean; + +import com.bin.david.form.annotation.SmartColumn; +import com.bin.david.form.annotation.SmartTable; + +/** + * @author : Pengxh + * @time : 2021/4/16 14:38 + * @email : 290677893@qq.com + **/ +@SmartTable(name = "问题来源统计表表") +public class ExcelDataBean { + + @SmartColumn(id = 0, name = "序号") + private int index; + @SmartColumn(id = 1, name = "问题来源") + private String source; + @SmartColumn(id = 2, name = "上报数量") + private int number; + + public ExcelDataBean(int index, String source, int number) { + this.index = index; + this.source = source; + this.number = number; + } +} diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java new file mode 100644 index 0000000..a38ceb3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java @@ -0,0 +1,58 @@ +package com.casic.dcms.service; + +import android.content.Context; + +import com.igexin.sdk.GTIntentService; +import com.igexin.sdk.message.GTCmdMessage; +import com.igexin.sdk.message.GTNotificationMessage; +import com.igexin.sdk.message.GTTransmitMessage; + +/** + * @author : Pengxh + * @time : 2021/4/16 16:16 + * @email : 290677893@qq.com + **/ +public class GeTuiIntentService extends GTIntentService { + private static final String TAG = "GeTuiIntentService"; + + @Override + public void onReceiveServicePid(Context context, int pid) { + + } + + // 处理透传消息 + @Override + public void onReceiveMessageData(Context context, GTTransmitMessage msg) { + // 透传消息的处理,详看 SDK demo + } + + // 接收 cid + @Override + public void onReceiveClientId(Context context, String clientid) { +// Log.d(TAG, "onReceiveClientId -> " + "clientid = " + clientid); + } + + // cid 离线上线通知 + @Override + public void onReceiveOnlineState(Context context, boolean online) { + + } + + // 各种事件处理回执 + @Override + public void onReceiveCommandResult(Context context, GTCmdMessage cmdMessage) { + + } + + // 通知到达,只有个推通道下发的通知会回调此方法 + @Override + public void onNotificationMessageArrived(Context context, GTNotificationMessage msg) { + + } + + // 通知点击,只有个推通道下发的通知会回调此方法 + @Override + public void onNotificationMessageClicked(Context context, GTNotificationMessage msg) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java b/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java new file mode 100644 index 0000000..a82f04e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java @@ -0,0 +1,10 @@ +package com.casic.dcms.service; + +/** + * @author : Pengxh + * @time : 2021/4/16 16:09 + * @email : 290677893@qq.com + **/ +public class GeTuiPushService extends com.igexin.sdk.PushService { + +} diff --git a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java index 019a9dc..78c0b05 100644 --- a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java @@ -6,13 +6,13 @@ import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; -import androidx.viewpager.widget.ViewPager; import com.casic.dcms.R; import com.casic.dcms.adapter.SubViewPagerAdapter; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.ui.fragment.ExcelFragment; import com.casic.dcms.ui.fragment.PieChartFragment; +import com.casic.dcms.widgets.NoScrollViewPager; import com.google.android.material.tabs.TabLayout; import com.qmuiteam.qmui.widget.QMUITopBarLayout; @@ -34,7 +34,7 @@ @BindView(R.id.eventTabLayout) TabLayout eventTabLayout; @BindView(R.id.eventViewPager) - ViewPager eventViewPager; + NoScrollViewPager eventViewPager; private Context context = this; diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 937806b..1de7445 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -30,6 +30,7 @@ public class MainActivity extends DoubleClickExitActivity { + private static final String TAG = "MainActivity"; @BindView(R.id.mainTopLayout) QMUITopBarLayout mainTopLayout; @BindView(R.id.mainViewPager) @@ -54,6 +55,8 @@ @Override public void initData() { + //个推初始化 + com.igexin.sdk.PushManager.getInstance().initialize(this); pageList = new ArrayList<>(); pageList.add(new HomePageFragment()); pageList.add(new PhonePageFragment()); @@ -65,10 +68,12 @@ public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action != null) { - String data = intent.getStringExtra("data"); - assert data != null; - if (data.equals("请求成功")) { - finish(); + if (Constant.LOGIN_OUT_ACTION.equals(action)) { + String data = intent.getStringExtra("data"); + assert data != null; + if (data.equals("请求成功")) { + finish(); + } } } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java index 3da2fe2..378bdeb 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java @@ -1,14 +1,43 @@ package com.casic.dcms.ui.fragment; +import android.content.Context; +import android.graphics.Color; +import android.text.TextUtils; + +import com.bin.david.form.core.SmartTable; +import com.bin.david.form.core.TableConfig; +import com.bin.david.form.data.style.FontStyle; import com.casic.dcms.R; import com.casic.dcms.base.BaseFragment; +import com.casic.dcms.bean.EventSourceBean; +import com.casic.dcms.bean.ExcelDataBean; +import com.casic.dcms.mvp.presenter.EventSourcePresenterImpl; +import com.casic.dcms.mvp.view.IEventSourceView; +import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; /** * @author : Pengxh * @time : 2021/4/16 9:42 * @email : 290677893@qq.com **/ -public class ExcelFragment extends BaseFragment { +public class ExcelFragment extends BaseFragment implements IEventSourceView { + + @BindView(R.id.dataTableView) + SmartTable dataTableView; + + private String begTime; + private String endTime; + private EventSourcePresenterImpl eventSourcePresenter; + private Context context; + private List excelDataBeans; + @Override protected int initLayoutView() { return R.layout.fragment_excel; @@ -16,16 +45,50 @@ @Override protected void setupTopBarLayout() { - + context = getContext(); } @Override protected void initData() { - + begTime = (String) SaveKeyValues.getValue("begTime", ""); + endTime = (String) SaveKeyValues.getValue("endTime", ""); + eventSourcePresenter = new EventSourcePresenterImpl(this); + excelDataBeans = new ArrayList<>(); } @Override protected void initEvent() { + if (TextUtils.isEmpty(begTime) || TextUtils.isEmpty(endTime)) { + ToastHelper.showToast("起始时间或者结束时间不对", ToastHelper.ERROR); + return; + } + eventSourcePresenter.onReadyRetrofitRequest(begTime, endTime); + } + @Override + public void obtainEventSourceResult(EventSourceBean resultBean) { +// Log.d(TAG, "obtainEventSourceResult: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + List dataBeanList = resultBean.getData(); + for (int i = 1; i < dataBeanList.size(); i++) { + EventSourceBean.DataBean dataBean = dataBeanList.get(i); + String eventNum = dataBean.getEventNum(); + excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(eventNum))); + } + dataTableView.setData(excelDataBeans); + TableConfig config = dataTableView.getConfig(); + //首行属性 + config.setColumnTitleStyle(new FontStyle(50, Color.DKGRAY));//设置列标题文字样式 + config.setColumnTitleBackgroundColor(Color.LTGRAY); + config.setColumnTitleVerticalPadding(30); + //内容属性 + config.setContentStyle(new FontStyle(50, Color.DKGRAY)); + config.setVerticalPadding(30); + + config.setShowTableTitle(false);//不显示标题 + config.setShowXSequence(false);//不显示横向ABC....序列 + config.setShowYSequence(false);//不显示纵向123....序列 + config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context)); + } } } diff --git a/app/build.gradle b/app/build.gradle index 6bd59ac..ae31f07 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,11 @@ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - //华为手机需要添加如下配置 - ndk { abiFilters "armeabi", "armeabi-v7a" } + ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } + + manifestPlaceholders = [ + GETUI_APPID: "DR9oeLL9va6aG3DYXy2w39" + ] } buildTypes { @@ -74,4 +77,8 @@ implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1' //图表 implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' + //Excel表格 + implementation 'com.github.huangyanbin:SmartTable:1.7.1' + implementation 'com.getui:gtsdk:3.1.4.0' //个推SDK + implementation 'com.getui:gtc:3.1.0.0' //个推核心组件 } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5aec328..35a9c86 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,5 +55,18 @@ android:resource="@xml/filepaths" /> + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 0972c8a..332d339 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -9,6 +9,9 @@ import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; public class BaseApplication extends Application { + + private static final String TAG = "BaseApplication"; + @Override public void onCreate() { super.onCreate(); @@ -17,7 +20,13 @@ ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); - //ArcGIS注册 -// ArcGISRuntimeEnvironment.setLicense(); + //个推初始化 + com.igexin.sdk.PushManager.getInstance().initialize(this); +// com.igexin.sdk.PushManager.getInstance().setDebugLogger(this, new IUserLoggerInterface() { +// @Override +// public void log(String s) { +// Log.d(TAG, s); +// } +// }); } } diff --git a/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java b/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java new file mode 100644 index 0000000..65dcf2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java @@ -0,0 +1,26 @@ +package com.casic.dcms.bean; + +import com.bin.david.form.annotation.SmartColumn; +import com.bin.david.form.annotation.SmartTable; + +/** + * @author : Pengxh + * @time : 2021/4/16 14:38 + * @email : 290677893@qq.com + **/ +@SmartTable(name = "问题来源统计表表") +public class ExcelDataBean { + + @SmartColumn(id = 0, name = "序号") + private int index; + @SmartColumn(id = 1, name = "问题来源") + private String source; + @SmartColumn(id = 2, name = "上报数量") + private int number; + + public ExcelDataBean(int index, String source, int number) { + this.index = index; + this.source = source; + this.number = number; + } +} diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java new file mode 100644 index 0000000..a38ceb3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java @@ -0,0 +1,58 @@ +package com.casic.dcms.service; + +import android.content.Context; + +import com.igexin.sdk.GTIntentService; +import com.igexin.sdk.message.GTCmdMessage; +import com.igexin.sdk.message.GTNotificationMessage; +import com.igexin.sdk.message.GTTransmitMessage; + +/** + * @author : Pengxh + * @time : 2021/4/16 16:16 + * @email : 290677893@qq.com + **/ +public class GeTuiIntentService extends GTIntentService { + private static final String TAG = "GeTuiIntentService"; + + @Override + public void onReceiveServicePid(Context context, int pid) { + + } + + // 处理透传消息 + @Override + public void onReceiveMessageData(Context context, GTTransmitMessage msg) { + // 透传消息的处理,详看 SDK demo + } + + // 接收 cid + @Override + public void onReceiveClientId(Context context, String clientid) { +// Log.d(TAG, "onReceiveClientId -> " + "clientid = " + clientid); + } + + // cid 离线上线通知 + @Override + public void onReceiveOnlineState(Context context, boolean online) { + + } + + // 各种事件处理回执 + @Override + public void onReceiveCommandResult(Context context, GTCmdMessage cmdMessage) { + + } + + // 通知到达,只有个推通道下发的通知会回调此方法 + @Override + public void onNotificationMessageArrived(Context context, GTNotificationMessage msg) { + + } + + // 通知点击,只有个推通道下发的通知会回调此方法 + @Override + public void onNotificationMessageClicked(Context context, GTNotificationMessage msg) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java b/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java new file mode 100644 index 0000000..a82f04e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java @@ -0,0 +1,10 @@ +package com.casic.dcms.service; + +/** + * @author : Pengxh + * @time : 2021/4/16 16:09 + * @email : 290677893@qq.com + **/ +public class GeTuiPushService extends com.igexin.sdk.PushService { + +} diff --git a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java index 019a9dc..78c0b05 100644 --- a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java @@ -6,13 +6,13 @@ import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; -import androidx.viewpager.widget.ViewPager; import com.casic.dcms.R; import com.casic.dcms.adapter.SubViewPagerAdapter; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.ui.fragment.ExcelFragment; import com.casic.dcms.ui.fragment.PieChartFragment; +import com.casic.dcms.widgets.NoScrollViewPager; import com.google.android.material.tabs.TabLayout; import com.qmuiteam.qmui.widget.QMUITopBarLayout; @@ -34,7 +34,7 @@ @BindView(R.id.eventTabLayout) TabLayout eventTabLayout; @BindView(R.id.eventViewPager) - ViewPager eventViewPager; + NoScrollViewPager eventViewPager; private Context context = this; diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 937806b..1de7445 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -30,6 +30,7 @@ public class MainActivity extends DoubleClickExitActivity { + private static final String TAG = "MainActivity"; @BindView(R.id.mainTopLayout) QMUITopBarLayout mainTopLayout; @BindView(R.id.mainViewPager) @@ -54,6 +55,8 @@ @Override public void initData() { + //个推初始化 + com.igexin.sdk.PushManager.getInstance().initialize(this); pageList = new ArrayList<>(); pageList.add(new HomePageFragment()); pageList.add(new PhonePageFragment()); @@ -65,10 +68,12 @@ public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action != null) { - String data = intent.getStringExtra("data"); - assert data != null; - if (data.equals("请求成功")) { - finish(); + if (Constant.LOGIN_OUT_ACTION.equals(action)) { + String data = intent.getStringExtra("data"); + assert data != null; + if (data.equals("请求成功")) { + finish(); + } } } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java index 3da2fe2..378bdeb 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java @@ -1,14 +1,43 @@ package com.casic.dcms.ui.fragment; +import android.content.Context; +import android.graphics.Color; +import android.text.TextUtils; + +import com.bin.david.form.core.SmartTable; +import com.bin.david.form.core.TableConfig; +import com.bin.david.form.data.style.FontStyle; import com.casic.dcms.R; import com.casic.dcms.base.BaseFragment; +import com.casic.dcms.bean.EventSourceBean; +import com.casic.dcms.bean.ExcelDataBean; +import com.casic.dcms.mvp.presenter.EventSourcePresenterImpl; +import com.casic.dcms.mvp.view.IEventSourceView; +import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; /** * @author : Pengxh * @time : 2021/4/16 9:42 * @email : 290677893@qq.com **/ -public class ExcelFragment extends BaseFragment { +public class ExcelFragment extends BaseFragment implements IEventSourceView { + + @BindView(R.id.dataTableView) + SmartTable dataTableView; + + private String begTime; + private String endTime; + private EventSourcePresenterImpl eventSourcePresenter; + private Context context; + private List excelDataBeans; + @Override protected int initLayoutView() { return R.layout.fragment_excel; @@ -16,16 +45,50 @@ @Override protected void setupTopBarLayout() { - + context = getContext(); } @Override protected void initData() { - + begTime = (String) SaveKeyValues.getValue("begTime", ""); + endTime = (String) SaveKeyValues.getValue("endTime", ""); + eventSourcePresenter = new EventSourcePresenterImpl(this); + excelDataBeans = new ArrayList<>(); } @Override protected void initEvent() { + if (TextUtils.isEmpty(begTime) || TextUtils.isEmpty(endTime)) { + ToastHelper.showToast("起始时间或者结束时间不对", ToastHelper.ERROR); + return; + } + eventSourcePresenter.onReadyRetrofitRequest(begTime, endTime); + } + @Override + public void obtainEventSourceResult(EventSourceBean resultBean) { +// Log.d(TAG, "obtainEventSourceResult: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + List dataBeanList = resultBean.getData(); + for (int i = 1; i < dataBeanList.size(); i++) { + EventSourceBean.DataBean dataBean = dataBeanList.get(i); + String eventNum = dataBean.getEventNum(); + excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(eventNum))); + } + dataTableView.setData(excelDataBeans); + TableConfig config = dataTableView.getConfig(); + //首行属性 + config.setColumnTitleStyle(new FontStyle(50, Color.DKGRAY));//设置列标题文字样式 + config.setColumnTitleBackgroundColor(Color.LTGRAY); + config.setColumnTitleVerticalPadding(30); + //内容属性 + config.setContentStyle(new FontStyle(50, Color.DKGRAY)); + config.setVerticalPadding(30); + + config.setShowTableTitle(false);//不显示标题 + config.setShowXSequence(false);//不显示横向ABC....序列 + config.setShowYSequence(false);//不显示纵向123....序列 + config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context)); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java index 3afb0b8..59829d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java @@ -1,6 +1,5 @@ package com.casic.dcms.ui.fragment; -import android.content.Context; import android.graphics.Color; import android.text.TextUtils; @@ -35,7 +34,6 @@ @BindView(R.id.pieChartView) PieChart pieChartView; - private Context context; private EventSourcePresenterImpl eventSourcePresenter; private List entries; private String begTime; @@ -48,7 +46,7 @@ @Override protected void setupTopBarLayout() { - context = getContext(); + } @Override @@ -70,7 +68,6 @@ @Override public void obtainEventSourceResult(EventSourceBean resultBean) { - //将统计数据存本地,提供给表/图页面使用 // Log.d(TAG, "obtainEventSourceResult: " + new Gson().toJson(resultBean)); if (resultBean.isSuccess()) { List dataBeanList = resultBean.getData(); diff --git a/app/build.gradle b/app/build.gradle index 6bd59ac..ae31f07 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,11 @@ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - //华为手机需要添加如下配置 - ndk { abiFilters "armeabi", "armeabi-v7a" } + ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } + + manifestPlaceholders = [ + GETUI_APPID: "DR9oeLL9va6aG3DYXy2w39" + ] } buildTypes { @@ -74,4 +77,8 @@ implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1' //图表 implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' + //Excel表格 + implementation 'com.github.huangyanbin:SmartTable:1.7.1' + implementation 'com.getui:gtsdk:3.1.4.0' //个推SDK + implementation 'com.getui:gtc:3.1.0.0' //个推核心组件 } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5aec328..35a9c86 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,5 +55,18 @@ android:resource="@xml/filepaths" /> + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 0972c8a..332d339 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -9,6 +9,9 @@ import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; public class BaseApplication extends Application { + + private static final String TAG = "BaseApplication"; + @Override public void onCreate() { super.onCreate(); @@ -17,7 +20,13 @@ ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); - //ArcGIS注册 -// ArcGISRuntimeEnvironment.setLicense(); + //个推初始化 + com.igexin.sdk.PushManager.getInstance().initialize(this); +// com.igexin.sdk.PushManager.getInstance().setDebugLogger(this, new IUserLoggerInterface() { +// @Override +// public void log(String s) { +// Log.d(TAG, s); +// } +// }); } } diff --git a/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java b/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java new file mode 100644 index 0000000..65dcf2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java @@ -0,0 +1,26 @@ +package com.casic.dcms.bean; + +import com.bin.david.form.annotation.SmartColumn; +import com.bin.david.form.annotation.SmartTable; + +/** + * @author : Pengxh + * @time : 2021/4/16 14:38 + * @email : 290677893@qq.com + **/ +@SmartTable(name = "问题来源统计表表") +public class ExcelDataBean { + + @SmartColumn(id = 0, name = "序号") + private int index; + @SmartColumn(id = 1, name = "问题来源") + private String source; + @SmartColumn(id = 2, name = "上报数量") + private int number; + + public ExcelDataBean(int index, String source, int number) { + this.index = index; + this.source = source; + this.number = number; + } +} diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java new file mode 100644 index 0000000..a38ceb3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java @@ -0,0 +1,58 @@ +package com.casic.dcms.service; + +import android.content.Context; + +import com.igexin.sdk.GTIntentService; +import com.igexin.sdk.message.GTCmdMessage; +import com.igexin.sdk.message.GTNotificationMessage; +import com.igexin.sdk.message.GTTransmitMessage; + +/** + * @author : Pengxh + * @time : 2021/4/16 16:16 + * @email : 290677893@qq.com + **/ +public class GeTuiIntentService extends GTIntentService { + private static final String TAG = "GeTuiIntentService"; + + @Override + public void onReceiveServicePid(Context context, int pid) { + + } + + // 处理透传消息 + @Override + public void onReceiveMessageData(Context context, GTTransmitMessage msg) { + // 透传消息的处理,详看 SDK demo + } + + // 接收 cid + @Override + public void onReceiveClientId(Context context, String clientid) { +// Log.d(TAG, "onReceiveClientId -> " + "clientid = " + clientid); + } + + // cid 离线上线通知 + @Override + public void onReceiveOnlineState(Context context, boolean online) { + + } + + // 各种事件处理回执 + @Override + public void onReceiveCommandResult(Context context, GTCmdMessage cmdMessage) { + + } + + // 通知到达,只有个推通道下发的通知会回调此方法 + @Override + public void onNotificationMessageArrived(Context context, GTNotificationMessage msg) { + + } + + // 通知点击,只有个推通道下发的通知会回调此方法 + @Override + public void onNotificationMessageClicked(Context context, GTNotificationMessage msg) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java b/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java new file mode 100644 index 0000000..a82f04e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java @@ -0,0 +1,10 @@ +package com.casic.dcms.service; + +/** + * @author : Pengxh + * @time : 2021/4/16 16:09 + * @email : 290677893@qq.com + **/ +public class GeTuiPushService extends com.igexin.sdk.PushService { + +} diff --git a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java index 019a9dc..78c0b05 100644 --- a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java @@ -6,13 +6,13 @@ import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; -import androidx.viewpager.widget.ViewPager; import com.casic.dcms.R; import com.casic.dcms.adapter.SubViewPagerAdapter; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.ui.fragment.ExcelFragment; import com.casic.dcms.ui.fragment.PieChartFragment; +import com.casic.dcms.widgets.NoScrollViewPager; import com.google.android.material.tabs.TabLayout; import com.qmuiteam.qmui.widget.QMUITopBarLayout; @@ -34,7 +34,7 @@ @BindView(R.id.eventTabLayout) TabLayout eventTabLayout; @BindView(R.id.eventViewPager) - ViewPager eventViewPager; + NoScrollViewPager eventViewPager; private Context context = this; diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 937806b..1de7445 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -30,6 +30,7 @@ public class MainActivity extends DoubleClickExitActivity { + private static final String TAG = "MainActivity"; @BindView(R.id.mainTopLayout) QMUITopBarLayout mainTopLayout; @BindView(R.id.mainViewPager) @@ -54,6 +55,8 @@ @Override public void initData() { + //个推初始化 + com.igexin.sdk.PushManager.getInstance().initialize(this); pageList = new ArrayList<>(); pageList.add(new HomePageFragment()); pageList.add(new PhonePageFragment()); @@ -65,10 +68,12 @@ public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action != null) { - String data = intent.getStringExtra("data"); - assert data != null; - if (data.equals("请求成功")) { - finish(); + if (Constant.LOGIN_OUT_ACTION.equals(action)) { + String data = intent.getStringExtra("data"); + assert data != null; + if (data.equals("请求成功")) { + finish(); + } } } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java index 3da2fe2..378bdeb 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java @@ -1,14 +1,43 @@ package com.casic.dcms.ui.fragment; +import android.content.Context; +import android.graphics.Color; +import android.text.TextUtils; + +import com.bin.david.form.core.SmartTable; +import com.bin.david.form.core.TableConfig; +import com.bin.david.form.data.style.FontStyle; import com.casic.dcms.R; import com.casic.dcms.base.BaseFragment; +import com.casic.dcms.bean.EventSourceBean; +import com.casic.dcms.bean.ExcelDataBean; +import com.casic.dcms.mvp.presenter.EventSourcePresenterImpl; +import com.casic.dcms.mvp.view.IEventSourceView; +import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; /** * @author : Pengxh * @time : 2021/4/16 9:42 * @email : 290677893@qq.com **/ -public class ExcelFragment extends BaseFragment { +public class ExcelFragment extends BaseFragment implements IEventSourceView { + + @BindView(R.id.dataTableView) + SmartTable dataTableView; + + private String begTime; + private String endTime; + private EventSourcePresenterImpl eventSourcePresenter; + private Context context; + private List excelDataBeans; + @Override protected int initLayoutView() { return R.layout.fragment_excel; @@ -16,16 +45,50 @@ @Override protected void setupTopBarLayout() { - + context = getContext(); } @Override protected void initData() { - + begTime = (String) SaveKeyValues.getValue("begTime", ""); + endTime = (String) SaveKeyValues.getValue("endTime", ""); + eventSourcePresenter = new EventSourcePresenterImpl(this); + excelDataBeans = new ArrayList<>(); } @Override protected void initEvent() { + if (TextUtils.isEmpty(begTime) || TextUtils.isEmpty(endTime)) { + ToastHelper.showToast("起始时间或者结束时间不对", ToastHelper.ERROR); + return; + } + eventSourcePresenter.onReadyRetrofitRequest(begTime, endTime); + } + @Override + public void obtainEventSourceResult(EventSourceBean resultBean) { +// Log.d(TAG, "obtainEventSourceResult: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + List dataBeanList = resultBean.getData(); + for (int i = 1; i < dataBeanList.size(); i++) { + EventSourceBean.DataBean dataBean = dataBeanList.get(i); + String eventNum = dataBean.getEventNum(); + excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(eventNum))); + } + dataTableView.setData(excelDataBeans); + TableConfig config = dataTableView.getConfig(); + //首行属性 + config.setColumnTitleStyle(new FontStyle(50, Color.DKGRAY));//设置列标题文字样式 + config.setColumnTitleBackgroundColor(Color.LTGRAY); + config.setColumnTitleVerticalPadding(30); + //内容属性 + config.setContentStyle(new FontStyle(50, Color.DKGRAY)); + config.setVerticalPadding(30); + + config.setShowTableTitle(false);//不显示标题 + config.setShowXSequence(false);//不显示横向ABC....序列 + config.setShowYSequence(false);//不显示纵向123....序列 + config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context)); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java index 3afb0b8..59829d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java @@ -1,6 +1,5 @@ package com.casic.dcms.ui.fragment; -import android.content.Context; import android.graphics.Color; import android.text.TextUtils; @@ -35,7 +34,6 @@ @BindView(R.id.pieChartView) PieChart pieChartView; - private Context context; private EventSourcePresenterImpl eventSourcePresenter; private List entries; private String begTime; @@ -48,7 +46,7 @@ @Override protected void setupTopBarLayout() { - context = getContext(); + } @Override @@ -70,7 +68,6 @@ @Override public void obtainEventSourceResult(EventSourceBean resultBean) { - //将统计数据存本地,提供给表/图页面使用 // Log.d(TAG, "obtainEventSourceResult: " + new Gson().toJson(resultBean)); if (resultBean.isSuccess()) { List dataBeanList = resultBean.getData(); diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 2c95016..e9e9f8b 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -51,5 +51,4 @@ public static final String IP_KEY = "BASE_IP"; public static final String LOGIN_OUT_ACTION = "loginOut"; - public static final String EVENT_SOURCE = "eventSourceData"; } diff --git a/app/build.gradle b/app/build.gradle index 6bd59ac..ae31f07 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,11 @@ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - //华为手机需要添加如下配置 - ndk { abiFilters "armeabi", "armeabi-v7a" } + ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } + + manifestPlaceholders = [ + GETUI_APPID: "DR9oeLL9va6aG3DYXy2w39" + ] } buildTypes { @@ -74,4 +77,8 @@ implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1' //图表 implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' + //Excel表格 + implementation 'com.github.huangyanbin:SmartTable:1.7.1' + implementation 'com.getui:gtsdk:3.1.4.0' //个推SDK + implementation 'com.getui:gtc:3.1.0.0' //个推核心组件 } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5aec328..35a9c86 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,5 +55,18 @@ android:resource="@xml/filepaths" /> + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 0972c8a..332d339 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -9,6 +9,9 @@ import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; public class BaseApplication extends Application { + + private static final String TAG = "BaseApplication"; + @Override public void onCreate() { super.onCreate(); @@ -17,7 +20,13 @@ ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); - //ArcGIS注册 -// ArcGISRuntimeEnvironment.setLicense(); + //个推初始化 + com.igexin.sdk.PushManager.getInstance().initialize(this); +// com.igexin.sdk.PushManager.getInstance().setDebugLogger(this, new IUserLoggerInterface() { +// @Override +// public void log(String s) { +// Log.d(TAG, s); +// } +// }); } } diff --git a/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java b/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java new file mode 100644 index 0000000..65dcf2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java @@ -0,0 +1,26 @@ +package com.casic.dcms.bean; + +import com.bin.david.form.annotation.SmartColumn; +import com.bin.david.form.annotation.SmartTable; + +/** + * @author : Pengxh + * @time : 2021/4/16 14:38 + * @email : 290677893@qq.com + **/ +@SmartTable(name = "问题来源统计表表") +public class ExcelDataBean { + + @SmartColumn(id = 0, name = "序号") + private int index; + @SmartColumn(id = 1, name = "问题来源") + private String source; + @SmartColumn(id = 2, name = "上报数量") + private int number; + + public ExcelDataBean(int index, String source, int number) { + this.index = index; + this.source = source; + this.number = number; + } +} diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java new file mode 100644 index 0000000..a38ceb3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java @@ -0,0 +1,58 @@ +package com.casic.dcms.service; + +import android.content.Context; + +import com.igexin.sdk.GTIntentService; +import com.igexin.sdk.message.GTCmdMessage; +import com.igexin.sdk.message.GTNotificationMessage; +import com.igexin.sdk.message.GTTransmitMessage; + +/** + * @author : Pengxh + * @time : 2021/4/16 16:16 + * @email : 290677893@qq.com + **/ +public class GeTuiIntentService extends GTIntentService { + private static final String TAG = "GeTuiIntentService"; + + @Override + public void onReceiveServicePid(Context context, int pid) { + + } + + // 处理透传消息 + @Override + public void onReceiveMessageData(Context context, GTTransmitMessage msg) { + // 透传消息的处理,详看 SDK demo + } + + // 接收 cid + @Override + public void onReceiveClientId(Context context, String clientid) { +// Log.d(TAG, "onReceiveClientId -> " + "clientid = " + clientid); + } + + // cid 离线上线通知 + @Override + public void onReceiveOnlineState(Context context, boolean online) { + + } + + // 各种事件处理回执 + @Override + public void onReceiveCommandResult(Context context, GTCmdMessage cmdMessage) { + + } + + // 通知到达,只有个推通道下发的通知会回调此方法 + @Override + public void onNotificationMessageArrived(Context context, GTNotificationMessage msg) { + + } + + // 通知点击,只有个推通道下发的通知会回调此方法 + @Override + public void onNotificationMessageClicked(Context context, GTNotificationMessage msg) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java b/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java new file mode 100644 index 0000000..a82f04e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java @@ -0,0 +1,10 @@ +package com.casic.dcms.service; + +/** + * @author : Pengxh + * @time : 2021/4/16 16:09 + * @email : 290677893@qq.com + **/ +public class GeTuiPushService extends com.igexin.sdk.PushService { + +} diff --git a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java index 019a9dc..78c0b05 100644 --- a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java @@ -6,13 +6,13 @@ import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; -import androidx.viewpager.widget.ViewPager; import com.casic.dcms.R; import com.casic.dcms.adapter.SubViewPagerAdapter; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.ui.fragment.ExcelFragment; import com.casic.dcms.ui.fragment.PieChartFragment; +import com.casic.dcms.widgets.NoScrollViewPager; import com.google.android.material.tabs.TabLayout; import com.qmuiteam.qmui.widget.QMUITopBarLayout; @@ -34,7 +34,7 @@ @BindView(R.id.eventTabLayout) TabLayout eventTabLayout; @BindView(R.id.eventViewPager) - ViewPager eventViewPager; + NoScrollViewPager eventViewPager; private Context context = this; diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 937806b..1de7445 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -30,6 +30,7 @@ public class MainActivity extends DoubleClickExitActivity { + private static final String TAG = "MainActivity"; @BindView(R.id.mainTopLayout) QMUITopBarLayout mainTopLayout; @BindView(R.id.mainViewPager) @@ -54,6 +55,8 @@ @Override public void initData() { + //个推初始化 + com.igexin.sdk.PushManager.getInstance().initialize(this); pageList = new ArrayList<>(); pageList.add(new HomePageFragment()); pageList.add(new PhonePageFragment()); @@ -65,10 +68,12 @@ public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action != null) { - String data = intent.getStringExtra("data"); - assert data != null; - if (data.equals("请求成功")) { - finish(); + if (Constant.LOGIN_OUT_ACTION.equals(action)) { + String data = intent.getStringExtra("data"); + assert data != null; + if (data.equals("请求成功")) { + finish(); + } } } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java index 3da2fe2..378bdeb 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java @@ -1,14 +1,43 @@ package com.casic.dcms.ui.fragment; +import android.content.Context; +import android.graphics.Color; +import android.text.TextUtils; + +import com.bin.david.form.core.SmartTable; +import com.bin.david.form.core.TableConfig; +import com.bin.david.form.data.style.FontStyle; import com.casic.dcms.R; import com.casic.dcms.base.BaseFragment; +import com.casic.dcms.bean.EventSourceBean; +import com.casic.dcms.bean.ExcelDataBean; +import com.casic.dcms.mvp.presenter.EventSourcePresenterImpl; +import com.casic.dcms.mvp.view.IEventSourceView; +import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; /** * @author : Pengxh * @time : 2021/4/16 9:42 * @email : 290677893@qq.com **/ -public class ExcelFragment extends BaseFragment { +public class ExcelFragment extends BaseFragment implements IEventSourceView { + + @BindView(R.id.dataTableView) + SmartTable dataTableView; + + private String begTime; + private String endTime; + private EventSourcePresenterImpl eventSourcePresenter; + private Context context; + private List excelDataBeans; + @Override protected int initLayoutView() { return R.layout.fragment_excel; @@ -16,16 +45,50 @@ @Override protected void setupTopBarLayout() { - + context = getContext(); } @Override protected void initData() { - + begTime = (String) SaveKeyValues.getValue("begTime", ""); + endTime = (String) SaveKeyValues.getValue("endTime", ""); + eventSourcePresenter = new EventSourcePresenterImpl(this); + excelDataBeans = new ArrayList<>(); } @Override protected void initEvent() { + if (TextUtils.isEmpty(begTime) || TextUtils.isEmpty(endTime)) { + ToastHelper.showToast("起始时间或者结束时间不对", ToastHelper.ERROR); + return; + } + eventSourcePresenter.onReadyRetrofitRequest(begTime, endTime); + } + @Override + public void obtainEventSourceResult(EventSourceBean resultBean) { +// Log.d(TAG, "obtainEventSourceResult: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + List dataBeanList = resultBean.getData(); + for (int i = 1; i < dataBeanList.size(); i++) { + EventSourceBean.DataBean dataBean = dataBeanList.get(i); + String eventNum = dataBean.getEventNum(); + excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(eventNum))); + } + dataTableView.setData(excelDataBeans); + TableConfig config = dataTableView.getConfig(); + //首行属性 + config.setColumnTitleStyle(new FontStyle(50, Color.DKGRAY));//设置列标题文字样式 + config.setColumnTitleBackgroundColor(Color.LTGRAY); + config.setColumnTitleVerticalPadding(30); + //内容属性 + config.setContentStyle(new FontStyle(50, Color.DKGRAY)); + config.setVerticalPadding(30); + + config.setShowTableTitle(false);//不显示标题 + config.setShowXSequence(false);//不显示横向ABC....序列 + config.setShowYSequence(false);//不显示纵向123....序列 + config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context)); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java index 3afb0b8..59829d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java @@ -1,6 +1,5 @@ package com.casic.dcms.ui.fragment; -import android.content.Context; import android.graphics.Color; import android.text.TextUtils; @@ -35,7 +34,6 @@ @BindView(R.id.pieChartView) PieChart pieChartView; - private Context context; private EventSourcePresenterImpl eventSourcePresenter; private List entries; private String begTime; @@ -48,7 +46,7 @@ @Override protected void setupTopBarLayout() { - context = getContext(); + } @Override @@ -70,7 +68,6 @@ @Override public void obtainEventSourceResult(EventSourceBean resultBean) { - //将统计数据存本地,提供给表/图页面使用 // Log.d(TAG, "obtainEventSourceResult: " + new Gson().toJson(resultBean)); if (resultBean.isSuccess()) { List dataBeanList = resultBean.getData(); diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 2c95016..e9e9f8b 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -51,5 +51,4 @@ public static final String IP_KEY = "BASE_IP"; public static final String LOGIN_OUT_ACTION = "loginOut"; - public static final String EVENT_SOURCE = "eventSourceData"; } diff --git a/app/src/main/res/layout/activity_event_resource.xml b/app/src/main/res/layout/activity_event_resource.xml index e7c2bde..993a3f3 100644 --- a/app/src/main/res/layout/activity_event_resource.xml +++ b/app/src/main/res/layout/activity_event_resource.xml @@ -27,7 +27,7 @@ - + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 0972c8a..332d339 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -9,6 +9,9 @@ import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; public class BaseApplication extends Application { + + private static final String TAG = "BaseApplication"; + @Override public void onCreate() { super.onCreate(); @@ -17,7 +20,13 @@ ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); - //ArcGIS注册 -// ArcGISRuntimeEnvironment.setLicense(); + //个推初始化 + com.igexin.sdk.PushManager.getInstance().initialize(this); +// com.igexin.sdk.PushManager.getInstance().setDebugLogger(this, new IUserLoggerInterface() { +// @Override +// public void log(String s) { +// Log.d(TAG, s); +// } +// }); } } diff --git a/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java b/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java new file mode 100644 index 0000000..65dcf2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java @@ -0,0 +1,26 @@ +package com.casic.dcms.bean; + +import com.bin.david.form.annotation.SmartColumn; +import com.bin.david.form.annotation.SmartTable; + +/** + * @author : Pengxh + * @time : 2021/4/16 14:38 + * @email : 290677893@qq.com + **/ +@SmartTable(name = "问题来源统计表表") +public class ExcelDataBean { + + @SmartColumn(id = 0, name = "序号") + private int index; + @SmartColumn(id = 1, name = "问题来源") + private String source; + @SmartColumn(id = 2, name = "上报数量") + private int number; + + public ExcelDataBean(int index, String source, int number) { + this.index = index; + this.source = source; + this.number = number; + } +} diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java new file mode 100644 index 0000000..a38ceb3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java @@ -0,0 +1,58 @@ +package com.casic.dcms.service; + +import android.content.Context; + +import com.igexin.sdk.GTIntentService; +import com.igexin.sdk.message.GTCmdMessage; +import com.igexin.sdk.message.GTNotificationMessage; +import com.igexin.sdk.message.GTTransmitMessage; + +/** + * @author : Pengxh + * @time : 2021/4/16 16:16 + * @email : 290677893@qq.com + **/ +public class GeTuiIntentService extends GTIntentService { + private static final String TAG = "GeTuiIntentService"; + + @Override + public void onReceiveServicePid(Context context, int pid) { + + } + + // 处理透传消息 + @Override + public void onReceiveMessageData(Context context, GTTransmitMessage msg) { + // 透传消息的处理,详看 SDK demo + } + + // 接收 cid + @Override + public void onReceiveClientId(Context context, String clientid) { +// Log.d(TAG, "onReceiveClientId -> " + "clientid = " + clientid); + } + + // cid 离线上线通知 + @Override + public void onReceiveOnlineState(Context context, boolean online) { + + } + + // 各种事件处理回执 + @Override + public void onReceiveCommandResult(Context context, GTCmdMessage cmdMessage) { + + } + + // 通知到达,只有个推通道下发的通知会回调此方法 + @Override + public void onNotificationMessageArrived(Context context, GTNotificationMessage msg) { + + } + + // 通知点击,只有个推通道下发的通知会回调此方法 + @Override + public void onNotificationMessageClicked(Context context, GTNotificationMessage msg) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java b/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java new file mode 100644 index 0000000..a82f04e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java @@ -0,0 +1,10 @@ +package com.casic.dcms.service; + +/** + * @author : Pengxh + * @time : 2021/4/16 16:09 + * @email : 290677893@qq.com + **/ +public class GeTuiPushService extends com.igexin.sdk.PushService { + +} diff --git a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java index 019a9dc..78c0b05 100644 --- a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java @@ -6,13 +6,13 @@ import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; -import androidx.viewpager.widget.ViewPager; import com.casic.dcms.R; import com.casic.dcms.adapter.SubViewPagerAdapter; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.ui.fragment.ExcelFragment; import com.casic.dcms.ui.fragment.PieChartFragment; +import com.casic.dcms.widgets.NoScrollViewPager; import com.google.android.material.tabs.TabLayout; import com.qmuiteam.qmui.widget.QMUITopBarLayout; @@ -34,7 +34,7 @@ @BindView(R.id.eventTabLayout) TabLayout eventTabLayout; @BindView(R.id.eventViewPager) - ViewPager eventViewPager; + NoScrollViewPager eventViewPager; private Context context = this; diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 937806b..1de7445 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -30,6 +30,7 @@ public class MainActivity extends DoubleClickExitActivity { + private static final String TAG = "MainActivity"; @BindView(R.id.mainTopLayout) QMUITopBarLayout mainTopLayout; @BindView(R.id.mainViewPager) @@ -54,6 +55,8 @@ @Override public void initData() { + //个推初始化 + com.igexin.sdk.PushManager.getInstance().initialize(this); pageList = new ArrayList<>(); pageList.add(new HomePageFragment()); pageList.add(new PhonePageFragment()); @@ -65,10 +68,12 @@ public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action != null) { - String data = intent.getStringExtra("data"); - assert data != null; - if (data.equals("请求成功")) { - finish(); + if (Constant.LOGIN_OUT_ACTION.equals(action)) { + String data = intent.getStringExtra("data"); + assert data != null; + if (data.equals("请求成功")) { + finish(); + } } } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java index 3da2fe2..378bdeb 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java @@ -1,14 +1,43 @@ package com.casic.dcms.ui.fragment; +import android.content.Context; +import android.graphics.Color; +import android.text.TextUtils; + +import com.bin.david.form.core.SmartTable; +import com.bin.david.form.core.TableConfig; +import com.bin.david.form.data.style.FontStyle; import com.casic.dcms.R; import com.casic.dcms.base.BaseFragment; +import com.casic.dcms.bean.EventSourceBean; +import com.casic.dcms.bean.ExcelDataBean; +import com.casic.dcms.mvp.presenter.EventSourcePresenterImpl; +import com.casic.dcms.mvp.view.IEventSourceView; +import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; /** * @author : Pengxh * @time : 2021/4/16 9:42 * @email : 290677893@qq.com **/ -public class ExcelFragment extends BaseFragment { +public class ExcelFragment extends BaseFragment implements IEventSourceView { + + @BindView(R.id.dataTableView) + SmartTable dataTableView; + + private String begTime; + private String endTime; + private EventSourcePresenterImpl eventSourcePresenter; + private Context context; + private List excelDataBeans; + @Override protected int initLayoutView() { return R.layout.fragment_excel; @@ -16,16 +45,50 @@ @Override protected void setupTopBarLayout() { - + context = getContext(); } @Override protected void initData() { - + begTime = (String) SaveKeyValues.getValue("begTime", ""); + endTime = (String) SaveKeyValues.getValue("endTime", ""); + eventSourcePresenter = new EventSourcePresenterImpl(this); + excelDataBeans = new ArrayList<>(); } @Override protected void initEvent() { + if (TextUtils.isEmpty(begTime) || TextUtils.isEmpty(endTime)) { + ToastHelper.showToast("起始时间或者结束时间不对", ToastHelper.ERROR); + return; + } + eventSourcePresenter.onReadyRetrofitRequest(begTime, endTime); + } + @Override + public void obtainEventSourceResult(EventSourceBean resultBean) { +// Log.d(TAG, "obtainEventSourceResult: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + List dataBeanList = resultBean.getData(); + for (int i = 1; i < dataBeanList.size(); i++) { + EventSourceBean.DataBean dataBean = dataBeanList.get(i); + String eventNum = dataBean.getEventNum(); + excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(eventNum))); + } + dataTableView.setData(excelDataBeans); + TableConfig config = dataTableView.getConfig(); + //首行属性 + config.setColumnTitleStyle(new FontStyle(50, Color.DKGRAY));//设置列标题文字样式 + config.setColumnTitleBackgroundColor(Color.LTGRAY); + config.setColumnTitleVerticalPadding(30); + //内容属性 + config.setContentStyle(new FontStyle(50, Color.DKGRAY)); + config.setVerticalPadding(30); + + config.setShowTableTitle(false);//不显示标题 + config.setShowXSequence(false);//不显示横向ABC....序列 + config.setShowYSequence(false);//不显示纵向123....序列 + config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context)); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java index 3afb0b8..59829d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java @@ -1,6 +1,5 @@ package com.casic.dcms.ui.fragment; -import android.content.Context; import android.graphics.Color; import android.text.TextUtils; @@ -35,7 +34,6 @@ @BindView(R.id.pieChartView) PieChart pieChartView; - private Context context; private EventSourcePresenterImpl eventSourcePresenter; private List entries; private String begTime; @@ -48,7 +46,7 @@ @Override protected void setupTopBarLayout() { - context = getContext(); + } @Override @@ -70,7 +68,6 @@ @Override public void obtainEventSourceResult(EventSourceBean resultBean) { - //将统计数据存本地,提供给表/图页面使用 // Log.d(TAG, "obtainEventSourceResult: " + new Gson().toJson(resultBean)); if (resultBean.isSuccess()) { List dataBeanList = resultBean.getData(); diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 2c95016..e9e9f8b 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -51,5 +51,4 @@ public static final String IP_KEY = "BASE_IP"; public static final String LOGIN_OUT_ACTION = "loginOut"; - public static final String EVENT_SOURCE = "eventSourceData"; } diff --git a/app/src/main/res/layout/activity_event_resource.xml b/app/src/main/res/layout/activity_event_resource.xml index e7c2bde..993a3f3 100644 --- a/app/src/main/res/layout/activity_event_resource.xml +++ b/app/src/main/res/layout/activity_event_resource.xml @@ -27,7 +27,7 @@ - + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 6bd59ac..ae31f07 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,11 @@ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - //华为手机需要添加如下配置 - ndk { abiFilters "armeabi", "armeabi-v7a" } + ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } + + manifestPlaceholders = [ + GETUI_APPID: "DR9oeLL9va6aG3DYXy2w39" + ] } buildTypes { @@ -74,4 +77,8 @@ implementation 'com.jzxiang.pickerview:TimePickerDialog:1.0.1' //图表 implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' + //Excel表格 + implementation 'com.github.huangyanbin:SmartTable:1.7.1' + implementation 'com.getui:gtsdk:3.1.4.0' //个推SDK + implementation 'com.getui:gtc:3.1.0.0' //个推核心组件 } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5aec328..35a9c86 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,5 +55,18 @@ android:resource="@xml/filepaths" /> + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 0972c8a..332d339 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -9,6 +9,9 @@ import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; public class BaseApplication extends Application { + + private static final String TAG = "BaseApplication"; + @Override public void onCreate() { super.onCreate(); @@ -17,7 +20,13 @@ ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); - //ArcGIS注册 -// ArcGISRuntimeEnvironment.setLicense(); + //个推初始化 + com.igexin.sdk.PushManager.getInstance().initialize(this); +// com.igexin.sdk.PushManager.getInstance().setDebugLogger(this, new IUserLoggerInterface() { +// @Override +// public void log(String s) { +// Log.d(TAG, s); +// } +// }); } } diff --git a/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java b/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java new file mode 100644 index 0000000..65dcf2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ExcelDataBean.java @@ -0,0 +1,26 @@ +package com.casic.dcms.bean; + +import com.bin.david.form.annotation.SmartColumn; +import com.bin.david.form.annotation.SmartTable; + +/** + * @author : Pengxh + * @time : 2021/4/16 14:38 + * @email : 290677893@qq.com + **/ +@SmartTable(name = "问题来源统计表表") +public class ExcelDataBean { + + @SmartColumn(id = 0, name = "序号") + private int index; + @SmartColumn(id = 1, name = "问题来源") + private String source; + @SmartColumn(id = 2, name = "上报数量") + private int number; + + public ExcelDataBean(int index, String source, int number) { + this.index = index; + this.source = source; + this.number = number; + } +} diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java new file mode 100644 index 0000000..a38ceb3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/service/GeTuiIntentService.java @@ -0,0 +1,58 @@ +package com.casic.dcms.service; + +import android.content.Context; + +import com.igexin.sdk.GTIntentService; +import com.igexin.sdk.message.GTCmdMessage; +import com.igexin.sdk.message.GTNotificationMessage; +import com.igexin.sdk.message.GTTransmitMessage; + +/** + * @author : Pengxh + * @time : 2021/4/16 16:16 + * @email : 290677893@qq.com + **/ +public class GeTuiIntentService extends GTIntentService { + private static final String TAG = "GeTuiIntentService"; + + @Override + public void onReceiveServicePid(Context context, int pid) { + + } + + // 处理透传消息 + @Override + public void onReceiveMessageData(Context context, GTTransmitMessage msg) { + // 透传消息的处理,详看 SDK demo + } + + // 接收 cid + @Override + public void onReceiveClientId(Context context, String clientid) { +// Log.d(TAG, "onReceiveClientId -> " + "clientid = " + clientid); + } + + // cid 离线上线通知 + @Override + public void onReceiveOnlineState(Context context, boolean online) { + + } + + // 各种事件处理回执 + @Override + public void onReceiveCommandResult(Context context, GTCmdMessage cmdMessage) { + + } + + // 通知到达,只有个推通道下发的通知会回调此方法 + @Override + public void onNotificationMessageArrived(Context context, GTNotificationMessage msg) { + + } + + // 通知点击,只有个推通道下发的通知会回调此方法 + @Override + public void onNotificationMessageClicked(Context context, GTNotificationMessage msg) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java b/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java new file mode 100644 index 0000000..a82f04e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/service/GeTuiPushService.java @@ -0,0 +1,10 @@ +package com.casic.dcms.service; + +/** + * @author : Pengxh + * @time : 2021/4/16 16:09 + * @email : 290677893@qq.com + **/ +public class GeTuiPushService extends com.igexin.sdk.PushService { + +} diff --git a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java index 019a9dc..78c0b05 100644 --- a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java @@ -6,13 +6,13 @@ import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; -import androidx.viewpager.widget.ViewPager; import com.casic.dcms.R; import com.casic.dcms.adapter.SubViewPagerAdapter; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.ui.fragment.ExcelFragment; import com.casic.dcms.ui.fragment.PieChartFragment; +import com.casic.dcms.widgets.NoScrollViewPager; import com.google.android.material.tabs.TabLayout; import com.qmuiteam.qmui.widget.QMUITopBarLayout; @@ -34,7 +34,7 @@ @BindView(R.id.eventTabLayout) TabLayout eventTabLayout; @BindView(R.id.eventViewPager) - ViewPager eventViewPager; + NoScrollViewPager eventViewPager; private Context context = this; diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 937806b..1de7445 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -30,6 +30,7 @@ public class MainActivity extends DoubleClickExitActivity { + private static final String TAG = "MainActivity"; @BindView(R.id.mainTopLayout) QMUITopBarLayout mainTopLayout; @BindView(R.id.mainViewPager) @@ -54,6 +55,8 @@ @Override public void initData() { + //个推初始化 + com.igexin.sdk.PushManager.getInstance().initialize(this); pageList = new ArrayList<>(); pageList.add(new HomePageFragment()); pageList.add(new PhonePageFragment()); @@ -65,10 +68,12 @@ public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action != null) { - String data = intent.getStringExtra("data"); - assert data != null; - if (data.equals("请求成功")) { - finish(); + if (Constant.LOGIN_OUT_ACTION.equals(action)) { + String data = intent.getStringExtra("data"); + assert data != null; + if (data.equals("请求成功")) { + finish(); + } } } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java index 3da2fe2..378bdeb 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java @@ -1,14 +1,43 @@ package com.casic.dcms.ui.fragment; +import android.content.Context; +import android.graphics.Color; +import android.text.TextUtils; + +import com.bin.david.form.core.SmartTable; +import com.bin.david.form.core.TableConfig; +import com.bin.david.form.data.style.FontStyle; import com.casic.dcms.R; import com.casic.dcms.base.BaseFragment; +import com.casic.dcms.bean.EventSourceBean; +import com.casic.dcms.bean.ExcelDataBean; +import com.casic.dcms.mvp.presenter.EventSourcePresenterImpl; +import com.casic.dcms.mvp.view.IEventSourceView; +import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; /** * @author : Pengxh * @time : 2021/4/16 9:42 * @email : 290677893@qq.com **/ -public class ExcelFragment extends BaseFragment { +public class ExcelFragment extends BaseFragment implements IEventSourceView { + + @BindView(R.id.dataTableView) + SmartTable dataTableView; + + private String begTime; + private String endTime; + private EventSourcePresenterImpl eventSourcePresenter; + private Context context; + private List excelDataBeans; + @Override protected int initLayoutView() { return R.layout.fragment_excel; @@ -16,16 +45,50 @@ @Override protected void setupTopBarLayout() { - + context = getContext(); } @Override protected void initData() { - + begTime = (String) SaveKeyValues.getValue("begTime", ""); + endTime = (String) SaveKeyValues.getValue("endTime", ""); + eventSourcePresenter = new EventSourcePresenterImpl(this); + excelDataBeans = new ArrayList<>(); } @Override protected void initEvent() { + if (TextUtils.isEmpty(begTime) || TextUtils.isEmpty(endTime)) { + ToastHelper.showToast("起始时间或者结束时间不对", ToastHelper.ERROR); + return; + } + eventSourcePresenter.onReadyRetrofitRequest(begTime, endTime); + } + @Override + public void obtainEventSourceResult(EventSourceBean resultBean) { +// Log.d(TAG, "obtainEventSourceResult: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + List dataBeanList = resultBean.getData(); + for (int i = 1; i < dataBeanList.size(); i++) { + EventSourceBean.DataBean dataBean = dataBeanList.get(i); + String eventNum = dataBean.getEventNum(); + excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(eventNum))); + } + dataTableView.setData(excelDataBeans); + TableConfig config = dataTableView.getConfig(); + //首行属性 + config.setColumnTitleStyle(new FontStyle(50, Color.DKGRAY));//设置列标题文字样式 + config.setColumnTitleBackgroundColor(Color.LTGRAY); + config.setColumnTitleVerticalPadding(30); + //内容属性 + config.setContentStyle(new FontStyle(50, Color.DKGRAY)); + config.setVerticalPadding(30); + + config.setShowTableTitle(false);//不显示标题 + config.setShowXSequence(false);//不显示横向ABC....序列 + config.setShowYSequence(false);//不显示纵向123....序列 + config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context)); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java index 3afb0b8..59829d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java @@ -1,6 +1,5 @@ package com.casic.dcms.ui.fragment; -import android.content.Context; import android.graphics.Color; import android.text.TextUtils; @@ -35,7 +34,6 @@ @BindView(R.id.pieChartView) PieChart pieChartView; - private Context context; private EventSourcePresenterImpl eventSourcePresenter; private List entries; private String begTime; @@ -48,7 +46,7 @@ @Override protected void setupTopBarLayout() { - context = getContext(); + } @Override @@ -70,7 +68,6 @@ @Override public void obtainEventSourceResult(EventSourceBean resultBean) { - //将统计数据存本地,提供给表/图页面使用 // Log.d(TAG, "obtainEventSourceResult: " + new Gson().toJson(resultBean)); if (resultBean.isSuccess()) { List dataBeanList = resultBean.getData(); diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 2c95016..e9e9f8b 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -51,5 +51,4 @@ public static final String IP_KEY = "BASE_IP"; public static final String LOGIN_OUT_ACTION = "loginOut"; - public static final String EVENT_SOURCE = "eventSourceData"; } diff --git a/app/src/main/res/layout/activity_event_resource.xml b/app/src/main/res/layout/activity_event_resource.xml index e7c2bde..993a3f3 100644 --- a/app/src/main/res/layout/activity_event_resource.xml +++ b/app/src/main/res/layout/activity_event_resource.xml @@ -27,7 +27,7 @@ - + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + \ No newline at end of file diff --git a/build.gradle b/build.gradle index d149edc..d2f5309 100644 --- a/build.gradle +++ b/build.gradle @@ -19,9 +19,15 @@ allprojects { repositories { + //阿里云镜像 maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } google() + //个推 + maven { + url "http://mvn.gt.getui.com/nexus/content/repositories/releases/" + } jcenter() + //MapBox地图 maven { url 'https://api.mapbox.com/downloads/v2/releases/maven' authentication { @@ -35,6 +41,7 @@ password = project.properties['MAPBOX_DOWNLOADS_TOKEN'] ?: "" } } + //依赖库 maven { url 'https://jitpack.io' } mavenCentral() }