commit
f1340d38bd
59 changed files with 84681 additions and 0 deletions
@ -0,0 +1,31 @@ |
|||||||
|
#git submodule update --init --recursive |
||||||
|
*.hprof |
||||||
|
build/ |
||||||
|
.vscode/ |
||||||
|
.gradle |
||||||
|
/local.properties |
||||||
|
/.idea |
||||||
|
.DS_Store |
||||||
|
/captures |
||||||
|
/build |
||||||
|
/app/build |
||||||
|
/app/release |
||||||
|
/app/mapping.txt |
||||||
|
/app/src/main/libs |
||||||
|
/app/src/main/obj |
||||||
|
/controlapp/mapping.txt |
||||||
|
/controlapp/release |
||||||
|
/alpha/build |
||||||
|
/alpha/release |
||||||
|
/alpha/mapping.txt |
||||||
|
/alpha/src/main/schemas/zone.a.dimap.db.RecordsDataBase/1.json |
||||||
|
*.iml |
||||||
|
.idea |
||||||
|
*.jks |
||||||
|
obj/ |
||||||
|
.cxx/ |
||||||
|
*.class |
||||||
|
#定制版本 |
||||||
|
/app/*/release |
||||||
|
/alpha/*/release |
||||||
|
/pad/*/release |
Binary file not shown.
@ -0,0 +1,2 @@ |
|||||||
|
configurations.maybeCreate("default") |
||||||
|
artifacts.add("default", file('base-release.aar')) |
@ -0,0 +1,2 @@ |
|||||||
|
/build |
||||||
|
*/release |
@ -0,0 +1,5 @@ |
|||||||
|
打包注意事项: |
||||||
|
1.检查 Test.java 中的DEBUG是否为false; |
||||||
|
2.检查 打包版本号; |
||||||
|
3.检查数据库版本号; |
||||||
|
4.检查changelog.xml内容 |
@ -0,0 +1,147 @@ |
|||||||
|
import com.bingce.AndroidSdk |
||||||
|
import com.bingce.AndroidX |
||||||
|
import com.bingce.Libs |
||||||
|
import com.bingce.ModuleName |
||||||
|
|
||||||
|
apply plugin: 'com.android.application' |
||||||
|
apply plugin: 'org.jetbrains.kotlin.android' |
||||||
|
apply plugin: 'kotlin-kapt' |
||||||
|
apply plugin: 'kotlin-parcelize' |
||||||
|
|
||||||
|
android { |
||||||
|
useLibrary Libs.httpLegacy |
||||||
|
compileSdk AndroidSdk.compileSdkVersion |
||||||
|
namespace "com.project.survey" |
||||||
|
|
||||||
|
defaultConfig { |
||||||
|
minSdkVersion AndroidSdk.minSdkVersion |
||||||
|
targetSdkVersion AndroidSdk.targetSdkVersion |
||||||
|
ndk {} |
||||||
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" |
||||||
|
multiDexEnabled true |
||||||
|
|
||||||
|
javaCompileOptions { |
||||||
|
annotationProcessorOptions { |
||||||
|
arguments = [ |
||||||
|
//数据库room |
||||||
|
"room.schemaLocation": "$projectDir/src/main/schemas".toString() |
||||||
|
] |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
buildFeatures { |
||||||
|
viewBinding true |
||||||
|
buildConfig true |
||||||
|
} |
||||||
|
|
||||||
|
signingConfigs { |
||||||
|
debug { |
||||||
|
storeFile file('./debug.keystore') |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
buildTypes { |
||||||
|
debug { |
||||||
|
signingConfig signingConfigs.debug |
||||||
|
minifyEnabled false |
||||||
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' |
||||||
|
} |
||||||
|
release { |
||||||
|
minifyEnabled true |
||||||
|
shrinkResources true |
||||||
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
splits { |
||||||
|
// Split apks on build target ABI, view all options for the splits here: |
||||||
|
// http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits |
||||||
|
abi { |
||||||
|
enable true |
||||||
|
reset() |
||||||
|
include 'arm64-v8a', 'armeabi-v7a'//,'armeabi-v7a', 'x86'//, 'x86_64', 'mips','armeabi', |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
//为了解决部分第三方库重复打包了META-INF的问题 |
||||||
|
packagingOptions { |
||||||
|
exclude 'META-INF/DEPENDENCIES' |
||||||
|
exclude 'META-INF/LICENSE.txt' |
||||||
|
exclude 'META-INF/NOTICE.txt' |
||||||
|
exclude 'META-INF/LICENSE' |
||||||
|
exclude 'META-INF/NOTICE' |
||||||
|
|
||||||
|
exclude 'META-INF/*.kotlin_module' |
||||||
|
exclude '/META-INF/{AL2.0,LGPL2.1}'//适配compose |
||||||
|
} |
||||||
|
|
||||||
|
lintOptions { |
||||||
|
abortOnError false |
||||||
|
disable 'GoogleAppIndexingWarning' |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
dependencies { |
||||||
|
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs') |
||||||
|
|
||||||
|
def moduleName = new ModuleName(project) |
||||||
|
implementation project(moduleName.bingceModule("appBase")) |
||||||
|
implementation project(moduleName.bingceModule("repository")) |
||||||
|
implementation project(moduleName.bingceModule("base")) |
||||||
|
// implementation project(moduleName.bingceModule("leancloud")) |
||||||
|
implementation project(moduleName.bingceModule("base-java")) |
||||||
|
implementation project(moduleName.bingceModule("utils")) |
||||||
|
implementation project(moduleName.bingceModule("coordlib")) |
||||||
|
implementation project(moduleName.bingceModule("device")) |
||||||
|
implementation project(moduleName.bingceModule("device-ui")) |
||||||
|
implementation project(moduleName.bingceModule("rtk")) |
||||||
|
implementation project(moduleName.bingceModule("totalstation")) |
||||||
|
implementation project(moduleName.bingceModule("level")) |
||||||
|
implementation project(moduleName.bingceModule("bcdialog-style")) |
||||||
|
implementation project(moduleName.openSourceModule("utilcode")) |
||||||
|
implementation project(moduleName.openSourceModule("colorful"))//选择主题颜色 |
||||||
|
implementation project(moduleName.openSourceModule("dragExpandGrid"))//管理里的布局 |
||||||
|
implementation project(moduleName.openSourceModule("lsettingitemlibrary"))//用户信息里 |
||||||
|
implementation project(moduleName.openSourceModule("spinkit"))//loading控件 导出使用 |
||||||
|
implementation project(moduleName.openSourceModule("splashview"))//广告view |
||||||
|
implementation project(moduleName.openSourceModule("poishadowjar"))//导入excel |
||||||
|
implementation project(moduleName.openSourceModule("safFilePicker"))//选择文件 |
||||||
|
implementation project(moduleName.openSourceModule("fastjson")) |
||||||
|
implementation project(moduleName.openSourceModule("agentweb")) |
||||||
|
implementation project(":opensource:exFilePicker") |
||||||
|
implementation project(":sdk:tensorFlowTTS")//语音播报 |
||||||
|
implementation Libs.RxImagePicker.core |
||||||
|
// implementation Libs.RxImagePicker.support |
||||||
|
// implementation Libs.RxImagePicker.supportWechat |
||||||
|
|
||||||
|
constraints { |
||||||
|
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.10") { |
||||||
|
because("kotlin-stdlib-jdk7 is now a part of kotlin-stdlib") |
||||||
|
} |
||||||
|
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10") { |
||||||
|
because("kotlin-stdlib-jdk8 is now a part of kotlin-stdlib") |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// implementation "cn.leancloud:storage-android:8.2.5" |
||||||
|
// implementation "cn.leancloud:realtime-android:8.2.5" |
||||||
|
implementation Libs.LeanCloud.storage |
||||||
|
implementation Libs.LeanCloud.realtime |
||||||
|
implementation AndroidX.multidex |
||||||
|
implementation AndroidX.material |
||||||
|
implementation AndroidX.appcompat |
||||||
|
|
||||||
|
testImplementation "junit:junit:4.13.2" |
||||||
|
androidTestImplementation "androidx.test:runner:1.1.0" |
||||||
|
androidTestImplementation "androidx.test:rules:1.1.0" |
||||||
|
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0' |
||||||
|
|
||||||
|
implementation 'com.google.android.gms:play-services-auth:20.7.0' |
||||||
|
|
||||||
|
|
||||||
|
implementation Libs.flycoTabLayout |
||||||
|
|
||||||
|
|
||||||
|
} |
Binary file not shown.
@ -0,0 +1,44 @@ |
|||||||
|
{ |
||||||
|
"_type": "Project", |
||||||
|
"_id": "AAAAAAFF+h6SjaM2Hec=", |
||||||
|
"name": "Untitled", |
||||||
|
"ownedElements": [ |
||||||
|
{ |
||||||
|
"_type": "UMLModel", |
||||||
|
"_id": "AAAAAAFF+qBWK6M3Z8Y=", |
||||||
|
"_parent": { |
||||||
|
"$ref": "AAAAAAFF+h6SjaM2Hec=" |
||||||
|
}, |
||||||
|
"name": "Model", |
||||||
|
"ownedElements": [ |
||||||
|
{ |
||||||
|
"_type": "UMLStateMachine", |
||||||
|
"_id": "AAAAAAF5RXOA7okfG2A=", |
||||||
|
"_parent": { |
||||||
|
"$ref": "AAAAAAFF+qBWK6M3Z8Y=" |
||||||
|
}, |
||||||
|
"name": "StateMachine1", |
||||||
|
"ownedElements": [ |
||||||
|
{ |
||||||
|
"_type": "UMLStatechartDiagram", |
||||||
|
"_id": "AAAAAAF5RXOA7okhiTg=", |
||||||
|
"_parent": { |
||||||
|
"$ref": "AAAAAAF5RXOA7okfG2A=" |
||||||
|
}, |
||||||
|
"name": "StatechartDiagram1" |
||||||
|
} |
||||||
|
], |
||||||
|
"regions": [ |
||||||
|
{ |
||||||
|
"_type": "UMLRegion", |
||||||
|
"_id": "AAAAAAF5RXOA7okgaKU=", |
||||||
|
"_parent": { |
||||||
|
"$ref": "AAAAAAF5RXOA7okfG2A=" |
||||||
|
} |
||||||
|
} |
||||||
|
] |
||||||
|
} |
||||||
|
] |
||||||
|
} |
||||||
|
] |
||||||
|
} |
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,276 @@ |
|||||||
|
# Add project specific ProGuard rules here. |
||||||
|
# By default, the flags in this file are appended to flags specified |
||||||
|
# in C:\Users\Administrator\AppData\Local\Android\sdk/tools/proguard/proguard-android.txt |
||||||
|
# You can edit the include path and order by changing the proguardFiles |
||||||
|
# directive in build.gradle. |
||||||
|
# |
||||||
|
# For more details, see |
||||||
|
# http://developer.android.com/guide/developing/tools/proguard.html |
||||||
|
|
||||||
|
# Add any project specific keep options here: |
||||||
|
|
||||||
|
# If your project uses WebView with JS, uncomment the following |
||||||
|
# and specify the fully qualified class name to the JavaScript interface |
||||||
|
# class: |
||||||
|
#-keepclassmembers class fqcn.of.javascript.interface.for.webview { |
||||||
|
# public *; |
||||||
|
#} |
||||||
|
-keepclassmembers class * { |
||||||
|
public <init>(org.json.JSONObject); |
||||||
|
} |
||||||
|
-keep public class cn.liuyanbing.surveyor.R$*{ |
||||||
|
public static final int *; |
||||||
|
} |
||||||
|
-keepclassmembers enum * { |
||||||
|
public static **[] values(); |
||||||
|
public static ** valueOf(java.lang.String); |
||||||
|
} |
||||||
|
#混淆前后的映射 |
||||||
|
-printmapping mapping.txt |
||||||
|
|
||||||
|
-keep class androidx.appcompat.widget.SearchView { *; } |
||||||
|
-keep class cn.aigestudio.datepicker.**{*;} |
||||||
|
|
||||||
|
-dontwarn javax.** |
||||||
|
|
||||||
|
-keep class com.tencent.mm.sdk.** { |
||||||
|
*; |
||||||
|
} |
||||||
|
|
||||||
|
-dontwarn com.tencent.** |
||||||
|
-keep class com.tencent.** {*;} |
||||||
|
|
||||||
|
-ignorewarnings |
||||||
|
|
||||||
|
# Apache POI |
||||||
|
-dontwarn org.apache.** |
||||||
|
-dontwarn org.openxmlformats.schemas.** |
||||||
|
-dontwarn org.etsi.** |
||||||
|
-dontwarn org.w3.** |
||||||
|
-dontwarn com.microsoft.schemas.** |
||||||
|
-dontwarn com.fasterxml.** |
||||||
|
-dontwarn javax.naming.** |
||||||
|
-dontwarn java.lang.management.** |
||||||
|
-dontwarn org.slf4j.impl.** |
||||||
|
|
||||||
|
-dontnote org.apache.** |
||||||
|
-dontnote org.openxmlformats.schemas.** |
||||||
|
-dontnote org.etsi.** |
||||||
|
-dontnote org.w3.** |
||||||
|
-dontnote com.microsoft.schemas.** |
||||||
|
-dontnote com.fasterxml.** |
||||||
|
-dontnote javax.naming.** |
||||||
|
-dontnote java.lang.management.** |
||||||
|
-dontnote org.slf4j.impl.** |
||||||
|
|
||||||
|
-keeppackagenames org.apache.poi.ss.formula.function |
||||||
|
|
||||||
|
-keep class org.apache.** {*;} |
||||||
|
-keep class org.openxmlformats.** {*;} |
||||||
|
-keep class org.etsi.** {*;} |
||||||
|
-keep class org.w3.** {*;} |
||||||
|
-keep class com.microsoft.** {*;} |
||||||
|
-keep class com.fasterxml.** {*;} |
||||||
|
-keep class schemaorg_apache_xmlbeans.** {*;} |
||||||
|
|
||||||
|
# ------------------------ leancloud sdk ------------------------ |
||||||
|
-keepattributes Signature |
||||||
|
-dontwarn com.jcraft.jzlib.** |
||||||
|
-keep class com.jcraft.jzlib.** { *;} |
||||||
|
|
||||||
|
-dontwarn sun.misc.** |
||||||
|
-keep class sun.misc.** { *;} |
||||||
|
|
||||||
|
-dontwarn alibaba.fastjson.** |
||||||
|
-dontnote alibaba.fastjson.** |
||||||
|
-keep class alibaba.fastjson.** { *;} |
||||||
|
|
||||||
|
-dontwarn sun.security.** |
||||||
|
-keep class sun.security.** { *; } |
||||||
|
|
||||||
|
-dontwarn com.google.** |
||||||
|
-keep class com.google.** { *;} |
||||||
|
|
||||||
|
-dontwarn com.avos.** |
||||||
|
-dontnote com.avos.** |
||||||
|
-keep class com.avos.** { *;} |
||||||
|
|
||||||
|
-dontwarn cn.leancloud.** |
||||||
|
-dontnote cn.leancloud.** |
||||||
|
-keep class cn.leancloud.** { *;} |
||||||
|
|
||||||
|
-keep public class android.net.http.SslError |
||||||
|
-keep public class android.webkit.WebViewClient |
||||||
|
|
||||||
|
-dontwarn android.webkit.WebView |
||||||
|
-dontwarn android.net.http.SslError |
||||||
|
-dontwarn android.webkit.WebViewClient |
||||||
|
-dontnote android.net.http.** |
||||||
|
|
||||||
|
-dontwarn android.support.** |
||||||
|
|
||||||
|
-dontwarn org.jivesoftware.smack.** |
||||||
|
-keep class org.jivesoftware.smack.** { *;} |
||||||
|
|
||||||
|
-dontwarn com.loopj.** |
||||||
|
-keep class com.loopj.** { *;} |
||||||
|
|
||||||
|
-dontwarn com.squareup.okhttp.** |
||||||
|
-keep class com.squareup.okhttp.** { *;} |
||||||
|
-keep interface com.squareup.okhttp.** { *; } |
||||||
|
|
||||||
|
# keep okhttp3、okio |
||||||
|
-dontwarn okhttp3.** |
||||||
|
-keep class okhttp3.** { *;} |
||||||
|
-keep interface okhttp3.** { *; } |
||||||
|
-dontwarn okio.** |
||||||
|
|
||||||
|
-keep class com.google.protobuf.** { *; } |
||||||
|
-keep public class * extends com.google.protobuf.** { *; } |
||||||
|
-dontwarn com.google.protobuf.** |
||||||
|
|
||||||
|
-dontwarn org.xbill.** |
||||||
|
-keep class org.xbill.** { *;} |
||||||
|
|
||||||
|
-keepattributes *Annotation* |
||||||
|
|
||||||
|
|
||||||
|
# ------------------------ ChatKit ------------------------ |
||||||
|
-dontwarn cn.leancloud.chatkit.** |
||||||
|
-keep class cn.leancloud.chatkit.** { *;} |
||||||
|
-dontnote cn.leancloud.chatkit.** |
||||||
|
|
||||||
|
# ------------------------ picasso ------------------------ |
||||||
|
-dontwarn com.squareup.picasso** |
||||||
|
-keep class com.squareup.picasso.**{*;} |
||||||
|
|
||||||
|
# ------------------------ eventbus ------------------------ |
||||||
|
-keepattributes *Annotation* |
||||||
|
-keepclassmembers class * { |
||||||
|
@org.greenrobot.eventbus.Subscribe <methods>; |
||||||
|
} |
||||||
|
-keep enum org.greenrobot.eventbus.ThreadMode { *; } |
||||||
|
|
||||||
|
# Only required if you use AsyncExecutor |
||||||
|
-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent { |
||||||
|
<init>(java.lang.Throwable); |
||||||
|
} |
||||||
|
#--------------------------工具集----------------------------- |
||||||
|
-keep class blankj.utilcode.** { *; } |
||||||
|
-keepclassmembers class blankj.utilcode.** { *; } |
||||||
|
-dontwarn blankj.utilcode.** |
||||||
|
|
||||||
|
-keep class com.chad.library.adapter.** { |
||||||
|
*; |
||||||
|
} |
||||||
|
-keep public class * extends com.chad.library.adapter.base.BaseQuickAdapter |
||||||
|
-keep public class * extends com.chad.library.adapter.base.BaseViewHolder |
||||||
|
-keepclassmembers class **$** extends com.chad.library.adapter.base.BaseViewHolder { |
||||||
|
<init>(...); |
||||||
|
} |
||||||
|
|
||||||
|
# glide 的混淆代码 |
||||||
|
-keep public class * implements com.bumptech.glide.module.GlideModule |
||||||
|
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** { |
||||||
|
**[] $VALUES; |
||||||
|
public *; |
||||||
|
} |
||||||
|
# banner 的混淆代码 |
||||||
|
-keep class com.youth.banner.** { |
||||||
|
*; |
||||||
|
} |
||||||
|
# 华测sdk |
||||||
|
-keep class com.chc.gnss.sdk.** { *; } |
||||||
|
-dontwarn com.chc.gnss.sdk.** |
||||||
|
# 中国移动sdk |
||||||
|
-keep class com.cmcc.sy.hap.** { *; } |
||||||
|
-dontwarn com.cmcc.sy.hap.** |
||||||
|
# 梦想CAD sdk |
||||||
|
-keep class org.cocos2dx.** { *; } |
||||||
|
-dontwarn org.cocos2dx.** |
||||||
|
-keep class com.chukong.cocosplay.client.** { *; } |
||||||
|
-dontwarn com.chukong.cocosplay.client.** |
||||||
|
-keep class com.MxDraw.** { *; } |
||||||
|
-dontwarn com.MxDraw.** |
||||||
|
#agentweb |
||||||
|
-keep class com.just.agentweb.** { |
||||||
|
*; |
||||||
|
} |
||||||
|
-dontwarn com.just.agentweb.** |
||||||
|
|
||||||
|
#androidx |
||||||
|
-keep class com.google.android.material.** {*;} |
||||||
|
-keep class androidx.** {*;} |
||||||
|
-keep public class * extends androidx.** |
||||||
|
-keep interface androidx.** {*;} |
||||||
|
-dontwarn com.google.android.material.** |
||||||
|
-dontnote com.google.android.material.** |
||||||
|
-dontwarn androidx.** |
||||||
|
|
||||||
|
# 南方坐标转换 |
||||||
|
-keep class com.qxwz.sdk.** { *; } |
||||||
|
-dontwarn com.qxwz.sdk.** |
||||||
|
|
||||||
|
-keep class com.bingce.device.rtk.configuration.** { *; } |
||||||
|
-keep class com.bingce.device.rtk.model.** { *; } |
||||||
|
-keep class com.bingce.totalstation.TsConfig { *; } |
||||||
|
|
||||||
|
#OkSocket |
||||||
|
-dontwarn xuhao.didi.socket.client.** |
||||||
|
-dontwarn xuhao.didi.socket.common.** |
||||||
|
-dontwarn xuhao.didi.socket.server.** |
||||||
|
-dontwarn xuhao.didi.core.** |
||||||
|
|
||||||
|
-keep class xuhao.didi.socket.client.** { *; } |
||||||
|
-keep class xuhao.didi.socket.common.** { *; } |
||||||
|
-keep class xuhao.didi.socket.server.** { *; } |
||||||
|
-keep class xuhao.didi.core.** { *; } |
||||||
|
|
||||||
|
-keep class xuhao.didi.socket.client.sdk.client.OkSocketOptions$* { |
||||||
|
*; |
||||||
|
} |
||||||
|
-keep class xuhao.didi.socket.server.impl.OkServerOptions$* { |
||||||
|
*; |
||||||
|
} |
||||||
|
|
||||||
|
#gsyvideoplayer |
||||||
|
-keep class com.shuyu.gsyvideoplayer.video.** { *; } |
||||||
|
-dontwarn com.shuyu.gsyvideoplayer.video.** |
||||||
|
-keep class com.shuyu.gsyvideoplayer.video.base.** { *; } |
||||||
|
-dontwarn com.shuyu.gsyvideoplayer.video.base.** |
||||||
|
-keep class com.shuyu.gsyvideoplayer.utils.** { *; } |
||||||
|
-dontwarn com.shuyu.gsyvideoplayer.utils.** |
||||||
|
-keep class tv.danmaku.ijk.** { *; } |
||||||
|
-dontwarn tv.danmaku.ijk.** |
||||||
|
|
||||||
|
-keep public class * extends android.view.View{ |
||||||
|
*** get*(); |
||||||
|
void set*(***); |
||||||
|
public <init>(android.content.Context); |
||||||
|
public <init>(android.content.Context, android.util.AttributeSet); |
||||||
|
public <init>(android.content.Context, android.util.AttributeSet, int); |
||||||
|
} |
||||||
|
|
||||||
|
# # keep rx |
||||||
|
# -dontwarn sun.misc.** |
||||||
|
# -keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* { |
||||||
|
# long producerIndex; |
||||||
|
# long consumerIndex; |
||||||
|
# } |
||||||
|
# -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef { |
||||||
|
# rx.internal.util.atomic.LinkedQueueNode producerNode; |
||||||
|
# } |
||||||
|
# -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef { |
||||||
|
# rx.internal.util.atomic.LinkedQueueNode consumerNode; |
||||||
|
# } |
||||||
|
# |
||||||
|
# -keep class cn.liuyanbing.surveyor.model.base.SerializableStringArray { *; } |
||||||
|
|
||||||
|
-dontwarn com.yalantis.ucrop** |
||||||
|
-keep class com.yalantis.ucrop** { *; } |
||||||
|
-keep interface com.yalantis.ucrop** { *; } |
||||||
|
|
||||||
|
-keep class com.bingce.event.WxLoginSuccessEvent{ *; } |
||||||
|
|
||||||
|
# 友盟 |
||||||
|
-keep class com.umeng.** {*;} |
@ -0,0 +1,43 @@ |
|||||||
|
import org.junit.Test |
||||||
|
|
||||||
|
class HelloKotlin { |
||||||
|
|
||||||
|
@Test |
||||||
|
fun test() { |
||||||
|
// runBlocking { |
||||||
|
// |
||||||
|
// launch { |
||||||
|
// Log.d("hwhw", "请求1") |
||||||
|
// |
||||||
|
// delay(1000) |
||||||
|
// Log.d("hwhw", "请求1 delay") |
||||||
|
// |
||||||
|
// val apiCall = RetrofitClient.apiCall { |
||||||
|
// RetrofitClient.createService<CommonService>().getPassageData() |
||||||
|
// } |
||||||
|
// |
||||||
|
// apiCall?.let { |
||||||
|
// Log.d("hwhw", "请求成功1,$it") |
||||||
|
// } |
||||||
|
// } |
||||||
|
// |
||||||
|
// launch { |
||||||
|
// Log.d("hwhw", "请求2") |
||||||
|
// |
||||||
|
// delay(1000) |
||||||
|
// Log.d("hwhw", "请求2 delay") |
||||||
|
// |
||||||
|
// val apiCall1 = RetrofitClient.apiCall { |
||||||
|
// RetrofitClient.createService<CommonService>().getPassageData() |
||||||
|
// } |
||||||
|
// apiCall1?.let { |
||||||
|
// Log.d("hwhw", "请求成功2,$it") |
||||||
|
// } |
||||||
|
// } |
||||||
|
// |
||||||
|
// |
||||||
|
// } |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
@ -0,0 +1,90 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
xmlns:tools="http://schemas.android.com/tools"> |
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> |
||||||
|
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> |
||||||
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> |
||||||
|
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> |
||||||
|
<uses-permission android:name="android.permission.CALL_PHONE" /> |
||||||
|
<uses-permission android:name="android.permission.CAMERA" /> |
||||||
|
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> |
||||||
|
<uses-permission android:name="android.permission.FLASHLIGHT" /> |
||||||
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> |
||||||
|
<uses-permission android:name="android.permission.GET_TASKS" /> |
||||||
|
<uses-permission android:name="android.permission.INTERNET" /> |
||||||
|
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> |
||||||
|
<uses-permission android:name="android.permission.RECORD_AUDIO" /> |
||||||
|
<uses-permission android:name="android.permission.VIBRATE" /> |
||||||
|
<uses-permission android:name="android.permission.WAKE_LOCK" /> |
||||||
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> |
||||||
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> |
||||||
|
<uses-permission |
||||||
|
android:name="android.permission.MANAGE_EXTERNAL_STORAGE" |
||||||
|
tools:ignore="ScopedStorage" /> |
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH" /> <!-- 蓝牙 --> |
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> |
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> |
||||||
|
<uses-permission |
||||||
|
android:name="android.permission.BLUETOOTH_SCAN" |
||||||
|
android:usesPermissionFlags="neverForLocation" /> |
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" /> |
||||||
|
|
||||||
|
<application |
||||||
|
android:name="com.project.survey.App" |
||||||
|
android:allowBackup="false" |
||||||
|
android:extractNativeLibs="true" |
||||||
|
android:icon="@mipmap/ic_launcher" |
||||||
|
android:label="@string/app_name" |
||||||
|
android:networkSecurityConfig="@xml/network_security_config" |
||||||
|
android:requestLegacyExternalStorage="true" |
||||||
|
android:theme="@style/CustomThemeLight" |
||||||
|
tools:replace="android:label,android:allowBackup"> |
||||||
|
<!-- the following MUST be in application, not activity --> |
||||||
|
<uses-library |
||||||
|
android:name="org.apache.http.legacy" |
||||||
|
android:required="false" /> |
||||||
|
|
||||||
|
<activity |
||||||
|
android:name=".activity.MainActivity" |
||||||
|
android:configChanges="orientation|keyboardHidden|screenSize" |
||||||
|
android:exported="true" |
||||||
|
android:label="@string/app_name" |
||||||
|
android:windowSoftInputMode="adjustResize|stateHidden"> |
||||||
|
|
||||||
|
<intent-filter> |
||||||
|
<action android:name="android.intent.action.MAIN" /> |
||||||
|
|
||||||
|
<category android:name="android.intent.category.LAUNCHER" /> |
||||||
|
</intent-filter> |
||||||
|
|
||||||
|
</activity> |
||||||
|
|
||||||
|
<!-- <activity--> |
||||||
|
<!-- android:name="com.bingce.surveyor.agentweb.AgentWebActivity"--> |
||||||
|
<!-- android:configChanges="orientation|keyboardHidden|screenSize"--> |
||||||
|
<!-- android:exported="true"--> |
||||||
|
<!-- android:hardwareAccelerated="true"--> |
||||||
|
<!-- android:windowSoftInputMode="adjustUnspecified|stateHidden" />--> |
||||||
|
|
||||||
|
<activity |
||||||
|
android:name=".activity.SplashActivity" |
||||||
|
android:configChanges="orientation|keyboardHidden|screenSize" |
||||||
|
android:exported="true"> |
||||||
|
|
||||||
|
|
||||||
|
<!-- <meta-data--> |
||||||
|
<!-- android:name="android.app.shortcuts"--> |
||||||
|
<!-- android:resource="@xml/shortcuts" />--> |
||||||
|
</activity> |
||||||
|
|
||||||
|
<!-- <activity--> |
||||||
|
<!-- android:name=".activity.user.LoginActivity"--> |
||||||
|
<!-- android:configChanges="orientation|keyboardHidden|screenSize"--> |
||||||
|
<!-- android:exported="true"--> |
||||||
|
<!-- android:label="@string/log_in" />--> |
||||||
|
|
||||||
|
|
||||||
|
</application> |
||||||
|
|
||||||
|
</manifest> |
@ -0,0 +1,58 @@ |
|||||||
|
package com.project.survey; |
||||||
|
|
||||||
|
import static com.bingce.AppChannel.customChannel; |
||||||
|
|
||||||
|
import android.app.Application; |
||||||
|
import android.util.Log; |
||||||
|
|
||||||
|
import com.bingce.AppChannel; |
||||||
|
|
||||||
|
import org.polaric.colorful.Colorful; |
||||||
|
|
||||||
|
import blankj.utilcode.util.Utils; |
||||||
|
import io.reactivex.functions.Consumer; |
||||||
|
import io.reactivex.plugins.RxJavaPlugins; |
||||||
|
|
||||||
|
public class App extends Application { |
||||||
|
|
||||||
|
private static App app; |
||||||
|
|
||||||
|
@Override |
||||||
|
public void onCreate() { |
||||||
|
customChannel = AppChannel.CUSTOM_CONTROL_PRO;//AppChannel.CUSTOM_PUBLIC;
|
||||||
|
super.onCreate(); |
||||||
|
app = this; |
||||||
|
|
||||||
|
initThemeDark(); |
||||||
|
|
||||||
|
RxJavaPlugins.setErrorHandler(new Consumer<Throwable>() { |
||||||
|
@Override |
||||||
|
public void accept(Throwable throwable) { |
||||||
|
Log.e("rxThrowable", String.valueOf(throwable)); |
||||||
|
} |
||||||
|
}); |
||||||
|
|
||||||
|
|
||||||
|
Utils.init(this); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
private void initThemeDark() { |
||||||
|
Colorful.defaults() |
||||||
|
.primaryColor(Colorful.ThemeColor.BLUE) |
||||||
|
.accentColor(Colorful.ThemeColor.BLUE) |
||||||
|
.translucent(false) |
||||||
|
.dark(false); |
||||||
|
Colorful.init(this); |
||||||
|
|
||||||
|
Colorful.config(this).primaryColor(Colorful.ThemeColor.BROWN).apply(); |
||||||
|
Colorful.config(this).accentColor(Colorful.ThemeColor.BROWN).apply(); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public static App getApp() { |
||||||
|
return app; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
@ -0,0 +1,16 @@ |
|||||||
|
package com.project.survey.activity |
||||||
|
|
||||||
|
import com.project.survey.activity.base.BaseBindingActivity |
||||||
|
import com.project.survey.databinding.ActivityMainBinding |
||||||
|
|
||||||
|
class MainActivity : BaseBindingActivity<ActivityMainBinding>() { |
||||||
|
override fun getBinding(): ActivityMainBinding { |
||||||
|
return ActivityMainBinding.inflate(layoutInflater) |
||||||
|
} |
||||||
|
|
||||||
|
override fun initView() { |
||||||
|
} |
||||||
|
|
||||||
|
override fun initData() { |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,6 @@ |
|||||||
|
package com.project.survey.activity |
||||||
|
|
||||||
|
import com.project.survey.activity.base.BaseBindingActivity |
||||||
|
|
||||||
|
class SplashActivity :BaseBindingActivity<> { |
||||||
|
} |
@ -0,0 +1,100 @@ |
|||||||
|
package com.project.survey.activity.base |
||||||
|
|
||||||
|
import android.os.Bundle |
||||||
|
import android.view.MenuItem |
||||||
|
import android.view.View |
||||||
|
import android.view.ViewGroup |
||||||
|
import android.view.WindowManager |
||||||
|
import android.widget.LinearLayout |
||||||
|
import androidx.annotation.StringRes |
||||||
|
import androidx.appcompat.app.AppCompatActivity |
||||||
|
import androidx.appcompat.app.AppCompatDelegate |
||||||
|
import androidx.appcompat.widget.Toolbar |
||||||
|
import androidx.core.content.ContextCompat |
||||||
|
import androidx.viewbinding.ViewBinding |
||||||
|
import blankj.utilcode.util.Utils |
||||||
|
import com.project.survey.App |
||||||
|
import com.project.survey.R |
||||||
|
import com.project.survey.databinding.ActivityBaseBindingBinding |
||||||
|
|
||||||
|
import org.polaric.colorful.Colorful |
||||||
|
|
||||||
|
abstract class BaseBindingActivity<VB : ViewBinding> : AppCompatActivity() { |
||||||
|
protected val mBinding get() = _binding!! |
||||||
|
private var _binding: VB? = null |
||||||
|
|
||||||
|
private lateinit var toolBar: Toolbar |
||||||
|
|
||||||
|
|
||||||
|
abstract fun getBinding(): VB |
||||||
|
abstract fun initView() |
||||||
|
abstract fun initData() |
||||||
|
|
||||||
|
override fun onCreate(savedInstanceState: Bundle?) { |
||||||
|
initTheme() |
||||||
|
super.onCreate(savedInstanceState) |
||||||
|
setContentView(getContentView()) |
||||||
|
initToolBar() |
||||||
|
initView() |
||||||
|
initData() |
||||||
|
} |
||||||
|
|
||||||
|
private fun initTheme() { |
||||||
|
setTheme(Colorful.getThemeDelegate().styleResBase) |
||||||
|
getTheme().applyStyle(Colorful.getThemeDelegate().styleResPrimary, true) |
||||||
|
getTheme().applyStyle(Colorful.getThemeDelegate().styleResAccent, true) |
||||||
|
val app = Utils.getApp() as App |
||||||
|
delegate.localNightMode = AppCompatDelegate.MODE_NIGHT_YES |
||||||
|
// if (app.isThemeDark) { |
||||||
|
// delegate.localNightMode = AppCompatDelegate.MODE_NIGHT_YES |
||||||
|
// } else { |
||||||
|
// delegate.localNightMode = AppCompatDelegate.MODE_NIGHT_NO |
||||||
|
// } |
||||||
|
window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); |
||||||
|
} |
||||||
|
|
||||||
|
private fun getContentView(): View { |
||||||
|
val baseBinding = ActivityBaseBindingBinding.inflate(layoutInflater) |
||||||
|
val layoutParams = LinearLayout.LayoutParams( |
||||||
|
ViewGroup.LayoutParams.MATCH_PARENT, |
||||||
|
ViewGroup.LayoutParams.MATCH_PARENT |
||||||
|
) |
||||||
|
_binding = getBinding() |
||||||
|
baseBinding.llParent.addView(mBinding.root, layoutParams) |
||||||
|
baseBinding.llParent.setBackgroundColor( |
||||||
|
ContextCompat.getColor( |
||||||
|
this, |
||||||
|
R.color.bg_content_new |
||||||
|
) |
||||||
|
) |
||||||
|
|
||||||
|
toolBar = baseBinding.ilToolBar.toolbar |
||||||
|
return baseBinding.root |
||||||
|
} |
||||||
|
|
||||||
|
protected open fun initToolBar() { |
||||||
|
setSupportActionBar(toolBar) |
||||||
|
if (supportActionBar != null) supportActionBar!!.setDisplayHomeAsUpEnabled(true) |
||||||
|
} |
||||||
|
|
||||||
|
protected fun setToolbarTitle(text: String?) { |
||||||
|
toolBar.setTitle(text) |
||||||
|
} |
||||||
|
|
||||||
|
protected fun setToolbarTitle(@StringRes text: Int) { |
||||||
|
toolBar.setTitle(text) |
||||||
|
} |
||||||
|
|
||||||
|
override fun onOptionsItemSelected(item: MenuItem): Boolean { |
||||||
|
if (item.itemId == android.R.id.home) { |
||||||
|
if (isFinishAtOnce()) |
||||||
|
finish() |
||||||
|
} |
||||||
|
return super.onOptionsItemSelected(item) |
||||||
|
} |
||||||
|
|
||||||
|
protected open fun isFinishAtOnce(): Boolean { |
||||||
|
return true |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,6 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<translate xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
android:duration="150" |
||||||
|
android:fromYDelta="100%" |
||||||
|
android:interpolator="@android:anim/linear_interpolator" |
||||||
|
android:toYDelta="0" /> |
@ -0,0 +1,6 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<translate xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
android:duration="150" |
||||||
|
android:fromYDelta="0" |
||||||
|
android:interpolator="@android:anim/linear_interpolator" |
||||||
|
android:toYDelta="100%" /> |
@ -0,0 +1,5 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<alpha xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
android:duration="200" |
||||||
|
android:fromAlpha="0.0" |
||||||
|
android:toAlpha="1.0" /> |
@ -0,0 +1,5 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<alpha xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
android:duration="200" |
||||||
|
android:fromAlpha="1.0" |
||||||
|
android:toAlpha="0.0" /> |
@ -0,0 +1,9 @@ |
|||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
android:shareInterpolator="false"> |
||||||
|
<translate |
||||||
|
android:duration="@android:integer/config_mediumAnimTime" |
||||||
|
android:fromXDelta="-100%" |
||||||
|
android:fromYDelta="0%" |
||||||
|
android:toXDelta="0%" |
||||||
|
android:toYDelta="0%" /> |
||||||
|
</set> |
@ -0,0 +1,9 @@ |
|||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
android:shareInterpolator="false"> |
||||||
|
<translate |
||||||
|
android:duration="@android:integer/config_mediumAnimTime" |
||||||
|
android:fromXDelta="100%" |
||||||
|
android:fromYDelta="0%" |
||||||
|
android:toXDelta="0%" |
||||||
|
android:toYDelta="0%" /> |
||||||
|
</set> |
@ -0,0 +1,9 @@ |
|||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
android:shareInterpolator="false"> |
||||||
|
<translate |
||||||
|
android:duration="@android:integer/config_mediumAnimTime" |
||||||
|
android:fromXDelta="0%" |
||||||
|
android:fromYDelta="0%" |
||||||
|
android:toXDelta="-100%" |
||||||
|
android:toYDelta="0%" /> |
||||||
|
</set> |
@ -0,0 +1,9 @@ |
|||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
android:shareInterpolator="false"> |
||||||
|
<translate |
||||||
|
android:duration="@android:integer/config_mediumAnimTime" |
||||||
|
android:fromXDelta="0%" |
||||||
|
android:fromYDelta="0%" |
||||||
|
android:toXDelta="100%" |
||||||
|
android:toYDelta="0%" /> |
||||||
|
</set> |
@ -0,0 +1,12 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
android:id="@+id/llParent" |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="match_parent" |
||||||
|
android:orientation="vertical"> |
||||||
|
|
||||||
|
<include |
||||||
|
android:id="@+id/ilToolBar" |
||||||
|
layout="@layout/toolbar" /> |
||||||
|
|
||||||
|
</LinearLayout> |
@ -0,0 +1,31 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
xmlns:custom="http://schemas.android.com/apk/res-auto" |
||||||
|
xmlns:tl="http://schemas.android.com/apk/res-auto" |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="match_parent" |
||||||
|
android:orientation="vertical"> |
||||||
|
|
||||||
|
<androidx.viewpager.widget.ViewPager |
||||||
|
android:id="@+id/activity_main_viewpager" |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="0dp" |
||||||
|
android:layout_weight="1" /> |
||||||
|
|
||||||
|
<com.flyco.tablayout.CommonTabLayout |
||||||
|
android:id="@+id/activity_main_tab_layout" |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="54dp" |
||||||
|
android:background="#ffffff" |
||||||
|
tl:tl_iconHeight="23dp" |
||||||
|
tl:tl_iconWidth="23dp" |
||||||
|
tl:tl_indicator_color="#3498db" |
||||||
|
tl:tl_indicator_height="0dp" |
||||||
|
tl:tl_textSelectColor="#3498db" |
||||||
|
tl:tl_textUnselectColor="#666666" |
||||||
|
tl:tl_textsize="12sp" |
||||||
|
tl:tl_underline_color="#cfcfcf" |
||||||
|
tl:tl_underline_gravity="TOP" |
||||||
|
tl:tl_underline_height="1dp" /> |
||||||
|
|
||||||
|
</LinearLayout> |
@ -0,0 +1,31 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
xmlns:custom="http://schemas.android.com/apk/res-auto" |
||||||
|
xmlns:tl="http://schemas.android.com/apk/res-auto" |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="match_parent" |
||||||
|
android:orientation="vertical"> |
||||||
|
|
||||||
|
<androidx.viewpager.widget.ViewPager |
||||||
|
android:id="@+id/activity_main_viewpager" |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="0dp" |
||||||
|
android:layout_weight="1" /> |
||||||
|
|
||||||
|
<com.flyco.tablayout.CommonTabLayout |
||||||
|
android:id="@+id/activity_main_tab_layout" |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="54dp" |
||||||
|
android:background="#ffffff" |
||||||
|
tl:tl_iconHeight="23dp" |
||||||
|
tl:tl_iconWidth="23dp" |
||||||
|
tl:tl_indicator_color="#3498db" |
||||||
|
tl:tl_indicator_height="0dp" |
||||||
|
tl:tl_textSelectColor="#3498db" |
||||||
|
tl:tl_textUnselectColor="#666666" |
||||||
|
tl:tl_textsize="12sp" |
||||||
|
tl:tl_underline_color="#cfcfcf" |
||||||
|
tl:tl_underline_gravity="TOP" |
||||||
|
tl:tl_underline_height="1dp" /> |
||||||
|
|
||||||
|
</LinearLayout> |
@ -0,0 +1,7 @@ |
|||||||
|
<menu xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"> |
||||||
|
<item |
||||||
|
android:id="@+id/menu_activity_main_settings" |
||||||
|
android:title="@string/settings" |
||||||
|
app:showAsAction="never" /> |
||||||
|
</menu> |
@ -0,0 +1,271 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<resources> |
||||||
|
<string-array name="instrument_connect_types"> |
||||||
|
<item>Classic BT</item> |
||||||
|
<item>BLE</item> |
||||||
|
<item>Hotspot</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="project_parameter_list"> |
||||||
|
<item>Known Control Point</item> |
||||||
|
<item>Unknown Point</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="lenth_accuracy_entries"> |
||||||
|
<item>1</item> |
||||||
|
<item>0.1</item> |
||||||
|
<item>0.01</item> |
||||||
|
<item>0.001</item> |
||||||
|
<item>0.0001</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="lenth_accuracy_entry_values"> |
||||||
|
<item>0</item> |
||||||
|
<item>1</item> |
||||||
|
<item>2</item> |
||||||
|
<item>3</item> |
||||||
|
<item>4</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="angle_accuracy_entries"> |
||||||
|
<item>0°00′00″</item> |
||||||
|
<item>0°00′00.0″</item> |
||||||
|
<item>0°00′00.00″</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="angle_accuracy_entry_values"> |
||||||
|
<item>0</item> |
||||||
|
<item>1</item> |
||||||
|
<item>2</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="display_unit_entries"> |
||||||
|
<item>m</item> |
||||||
|
<item>cm</item> |
||||||
|
<item>mm</item> |
||||||
|
<item>auto</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="display_unit_entry_values"> |
||||||
|
<item>0</item> |
||||||
|
<item>1</item> |
||||||
|
<item>2</item> |
||||||
|
<item>3</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="volume_plus_function_entries"> |
||||||
|
<item>none</item> |
||||||
|
<item>calculate</item> |
||||||
|
<item>survey</item> |
||||||
|
<item>record</item> |
||||||
|
<item>last</item> |
||||||
|
<item>next</item> |
||||||
|
<item>survey not send result</item> |
||||||
|
<item>survey and record</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="volume_plus_function_entry_values"> |
||||||
|
<item>0</item> |
||||||
|
<item>1</item> |
||||||
|
<item>2</item> |
||||||
|
<item>3</item> |
||||||
|
<item>4</item> |
||||||
|
<item>5</item> |
||||||
|
<item>6</item> |
||||||
|
<item>7</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="volume_minus_function_entries"> |
||||||
|
<item>none</item> |
||||||
|
<item>calculate</item> |
||||||
|
<item>survey</item> |
||||||
|
<item>record</item> |
||||||
|
<item>last</item> |
||||||
|
<item>next</item> |
||||||
|
<item>survey not send result</item> |
||||||
|
<item>survey and record</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="volume_minus_function_entry_values"> |
||||||
|
<item>0</item> |
||||||
|
<item>1</item> |
||||||
|
<item>2</item> |
||||||
|
<item>3</item> |
||||||
|
<item>4</item> |
||||||
|
<item>5</item> |
||||||
|
<item>6</item> |
||||||
|
<item>7</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="hor_cal_method_entries"> |
||||||
|
<item>Common</item> |
||||||
|
<item>Trapezoid</item> |
||||||
|
<item>Simpson</item> |
||||||
|
<item>Romberg</item> |
||||||
|
<item>Gauss-Legendre3</item> |
||||||
|
<item>Gauss-Legendre4</item> |
||||||
|
<item>Gauss-Legendre5</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="hor_cal_method_entry_values"> |
||||||
|
<item>0</item> |
||||||
|
<item>1</item> |
||||||
|
<item>2</item> |
||||||
|
<item>3</item> |
||||||
|
<item>4</item> |
||||||
|
<item>5</item> |
||||||
|
<item>6</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="ver_cal_method_entries"> |
||||||
|
<item>Second parabola</item> |
||||||
|
<item>Round curve</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="ver_cal_method_entry_values"> |
||||||
|
<item>0</item> |
||||||
|
<item>1</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="setup_station_type"> |
||||||
|
<item>View Current Instrument Station</item> |
||||||
|
<item>Phone * Last Station</item> |
||||||
|
<item>Phone * Known Back Sight Setup Station</item> |
||||||
|
<item>Phone * Resection Setup Station</item> |
||||||
|
<item>Instrument * Input Station(Only Face1)</item> |
||||||
|
<item>Instrument * Skip(Only Face1)</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="main_activity_setup_station_type"> |
||||||
|
<item>Phone * Last Station</item> |
||||||
|
<item>Phone * Known Back Sight Setup Station</item> |
||||||
|
<item>Phone * Resection Setup Station</item> |
||||||
|
<item>Instrument * Input Station(Only Face1)</item> |
||||||
|
<item>Instrument * Skip(Only Face1)</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="navigation_display_items"> |
||||||
|
<item>Road</item> |
||||||
|
<item>Feature coordinate</item> |
||||||
|
<item>Mileage</item> |
||||||
|
<item>Control coordinate</item> |
||||||
|
<item>CAD</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="navigation_source_items"> |
||||||
|
<item>Phone GPS</item> |
||||||
|
<item>RTK</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="tcs_backbreak_send_content_items"> |
||||||
|
<item>BackBreak</item> |
||||||
|
<item>UpDown</item> |
||||||
|
<item>LeftRight</item> |
||||||
|
<item>Feature UpDown</item> |
||||||
|
<item>Feature LeftRight</item> |
||||||
|
<item>Measured XYZ</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="xyz2k_send_content_items"> |
||||||
|
<item>Side move</item> |
||||||
|
<item>Up Dwon</item> |
||||||
|
<item>Kilometer</item> |
||||||
|
<item>Distance to middle</item> |
||||||
|
<item>Measured XYZ</item> |
||||||
|
<item>Design Measured</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="k2xyz_send_content_items"> |
||||||
|
<item>K move D move</item> |
||||||
|
<item>Foreback leftRight move</item> |
||||||
|
<item>Up Down</item> |
||||||
|
<item>Measured XYZ</item> |
||||||
|
<item>Design Measured</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="side_send_content_items"> |
||||||
|
<item>BackBreak</item> |
||||||
|
<item>UpDown</item> |
||||||
|
<item>LeftRight</item> |
||||||
|
<item>Feature UpDown</item> |
||||||
|
<item>Feature LeftRight</item> |
||||||
|
<item>Kilometer</item> |
||||||
|
<item>Measured XYZ</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="known_staking_fragment_send_content_items"> |
||||||
|
<item>K move D move</item> |
||||||
|
<item>Foreback leftRight move</item> |
||||||
|
<item>Up Down</item> |
||||||
|
<item>Measured XYZ</item> |
||||||
|
<item>Design Measured</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="known_staking_activity_send_content_items"> |
||||||
|
<item>K move D move</item> |
||||||
|
<item>Up Down</item> |
||||||
|
<item>Measured XYZ</item> |
||||||
|
<item>Design Measured</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="cad_staking_send_content_items"> |
||||||
|
<item>K move D move</item> |
||||||
|
<item>Up Down</item> |
||||||
|
<item>Measured XYZ</item> |
||||||
|
<item>Design Measured</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="tts_speak_times"> |
||||||
|
<item>once</item> |
||||||
|
<item>twice</item> |
||||||
|
<item>three times</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="tts_speak_times_values"> |
||||||
|
<item>0</item> |
||||||
|
<item>1</item> |
||||||
|
<item>2</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="multi_xy2k_result_choose_entries"> |
||||||
|
<item>Nearest to the midline</item> |
||||||
|
<item>Minimum mileage</item> |
||||||
|
<item>Maximum mileage</item> |
||||||
|
<item>Nearest to the mileage</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="multi_xy2k_result_choose_entry_values"> |
||||||
|
<item>0</item> |
||||||
|
<item>1</item> |
||||||
|
<item>2</item> |
||||||
|
<item>3</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="xy2k_d_range_entries"> |
||||||
|
<item>Not limit</item> |
||||||
|
<item>Input allow distance</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="xy2k_d_range_entry_values"> |
||||||
|
<item>0</item> |
||||||
|
<item>1</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="staking_move_method"> |
||||||
|
<item>Mileage</item> |
||||||
|
<item>Left Right Fore Back</item> |
||||||
|
<item>Direction</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="road_parameter_list"> |
||||||
|
<item>Break Chain</item> |
||||||
|
<item>Hor</item> |
||||||
|
<item>Vertical</item> |
||||||
|
<item>Standard Cross Section</item> |
||||||
|
<item>Super</item> |
||||||
|
<item>Widen</item> |
||||||
|
<item>Tunnel Section Library</item> |
||||||
|
<item>Tunnel Section Matching</item> |
||||||
|
<item>Middle Offset</item> |
||||||
|
<item>Center Up Down</item> |
||||||
|
<item>Tunnel Feature Point</item> |
||||||
|
<item>Tunnel Embedded</item> |
||||||
|
<item>Tunnel Rotate</item> |
||||||
|
<item>Side Section Library</item> |
||||||
|
<item>Side Section Matching</item> |
||||||
|
<item>SubWay Info</item> |
||||||
|
<item>Tbm Ref</item> |
||||||
|
<item>Pier Template Library</item> |
||||||
|
<item>Bridge Pier Layout</item> |
||||||
|
<item>Road Control Point</item> |
||||||
|
</string-array> |
||||||
|
|
||||||
|
<string-array name="navigation_map_type"> |
||||||
|
<item>Amap Map</item> |
||||||
|
<item>Baidu Map</item> |
||||||
|
<item>Tencent Map</item> |
||||||
|
</string-array> |
||||||
|
|
||||||
|
<string-array name="efp__sorting_types"> |
||||||
|
<item>By name, ascending</item> |
||||||
|
<item>By name, descending</item> |
||||||
|
<item>By size, ascending</item> |
||||||
|
<item>By size, descending</item> |
||||||
|
<item>By date, ascending</item> |
||||||
|
<item>By date, descending</item> |
||||||
|
</string-array> |
||||||
|
<string-array name="efp__size_units"> |
||||||
|
<item>B</item> |
||||||
|
<item>KB</item> |
||||||
|
<item>MB</item> |
||||||
|
<item>GB</item> |
||||||
|
<item>TB</item> |
||||||
|
<item>PB</item> |
||||||
|
</string-array> |
||||||
|
</resources> |
@ -0,0 +1,70 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<resources> |
||||||
|
<!--以下全部为ChatUI的属性--> |
||||||
|
<declare-styleable name="BubbleView"> |
||||||
|
<attr name="arrowWidth" format="dimension" /> |
||||||
|
<attr name="angle" format="dimension" /> |
||||||
|
<attr name="arrowHeight" format="dimension" /> |
||||||
|
<attr name="arrowPosition" format="dimension" /> |
||||||
|
<attr name="bubbleColor" format="color" /> |
||||||
|
<attr name="arrowLocation" format="enum"> |
||||||
|
<enum name="left" value="0x00" /> |
||||||
|
<enum name="right" value="0x01" /> |
||||||
|
<enum name="top" value="0x02" /> |
||||||
|
<enum name="bottom" value="0x03" /> |
||||||
|
</attr> |
||||||
|
</declare-styleable> |
||||||
|
|
||||||
|
<declare-styleable name="RotateLayout"> |
||||||
|
<!-- Child view of this layout will be rotated by this angle. --> |
||||||
|
<attr name="rotate_angle" format="integer" /> |
||||||
|
</declare-styleable> |
||||||
|
|
||||||
|
<declare-styleable name="TextItem"> |
||||||
|
<attr name="text" format="string" /> |
||||||
|
<attr name="text_size" format="dimension" /> |
||||||
|
<attr name="text_color" format="color" /> |
||||||
|
<attr name="dividerVisible" format="enum"> |
||||||
|
<enum name="visible" value="0" /> |
||||||
|
<enum name="invisible" value="1" /> |
||||||
|
</attr> |
||||||
|
<attr name="text_gravity" format="enum"> |
||||||
|
<enum name="start" value="0" /> |
||||||
|
<enum name="center" value="1" /> |
||||||
|
<enum name="end" value="2" /> |
||||||
|
</attr> |
||||||
|
</declare-styleable> |
||||||
|
|
||||||
|
<declare-styleable name="TextItemWithDescribe"> |
||||||
|
<attr name="describeValue" format="string" /> |
||||||
|
</declare-styleable> |
||||||
|
|
||||||
|
<declare-styleable name="customAttrs"> |
||||||
|
<attr name="efp__selected_item_background" format="reference" /> |
||||||
|
<attr name="efp__ic_action_cancel" format="reference" /> |
||||||
|
<attr name="efp__ic_action_deselect" format="reference" /> |
||||||
|
<attr name="efp__ic_action_grid" format="reference" /> |
||||||
|
<attr name="efp__ic_action_invert_selection" format="reference" /> |
||||||
|
<attr name="efp__ic_action_list" format="reference" /> |
||||||
|
<attr name="efp__ic_action_new_folder" format="reference" /> |
||||||
|
<attr name="efp__ic_action_ok" format="reference" /> |
||||||
|
<attr name="efp__ic_action_select_all" format="reference" /> |
||||||
|
<attr name="efp__ic_action_sort" format="reference" /> |
||||||
|
<attr name="efp__ic_action_storage" format="reference" /> |
||||||
|
</declare-styleable> |
||||||
|
|
||||||
|
<declare-styleable name="SwitchWithText"> |
||||||
|
<attr name="name" format="string" /> |
||||||
|
<attr name="onText" format="string" /> |
||||||
|
<attr name="offText" format="string" /> |
||||||
|
<attr name="onChecked" format="boolean" /> |
||||||
|
</declare-styleable> |
||||||
|
|
||||||
|
<declare-styleable name="EditSpinner"> |
||||||
|
<attr name="hint" format="string"/> |
||||||
|
<attr name="rightImage" format="reference"/> |
||||||
|
<attr name="Background" format="reference"/> |
||||||
|
<attr name="maxLine" format="integer"/> |
||||||
|
</declare-styleable> |
||||||
|
|
||||||
|
</resources> |
@ -0,0 +1,13 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<resources> |
||||||
|
<!--新增--> |
||||||
|
<color name="bg_content_new">#f2f3f5</color> |
||||||
|
<color name="hor_line">#f2f2f2</color> |
||||||
|
<color name="text_color_1">#000</color> |
||||||
|
<color name="text_color_2">#999</color> |
||||||
|
<color name="text_color_desc">#F3AE42</color> |
||||||
|
<color name="divide_line">#1A000000</color> |
||||||
|
<color name="text_color_disable">#AAA</color> |
||||||
|
<color name="green_gnss">#00B050</color> |
||||||
|
<color name="yellow_gnss">#FFFF00</color> |
||||||
|
</resources> |
@ -0,0 +1,44 @@ |
|||||||
|
<resources> |
||||||
|
<!-- Default screen margins, per the Android Design guidelines. --> |
||||||
|
<dimen name="activity_horizontal_margin">16dp</dimen> |
||||||
|
<dimen name="activity_vertical_margin">16dp</dimen> |
||||||
|
<dimen name="content_horizontal_margin">10dp</dimen> |
||||||
|
<dimen name="content_vertical_margin">10dp</dimen> |
||||||
|
<dimen name="content_small">5dp</dimen> |
||||||
|
|
||||||
|
<!-- fragment_viewpager.xml --> |
||||||
|
<dimen name="tab_layout_height">50dp</dimen> |
||||||
|
<dimen name="item_height_record">80dp</dimen> |
||||||
|
<dimen name="item_height_point">80dp</dimen> |
||||||
|
<dimen name="app_bar_height">180dp</dimen> |
||||||
|
<dimen name="fab_margin">16dp</dimen> |
||||||
|
<dimen name="text_margin">16dp</dimen> |
||||||
|
|
||||||
|
<!--calculator--> |
||||||
|
<dimen name="calculator_norm_button_text">40sp</dimen> |
||||||
|
|
||||||
|
<!-- chatui字体大小 --> |
||||||
|
<dimen name="text_title">19sp</dimen> |
||||||
|
<dimen name="text_subhead">17sp</dimen> |
||||||
|
<dimen name="text_body">15sp</dimen> |
||||||
|
<dimen name="text_caption">13sp</dimen> |
||||||
|
<dimen name="divider_height">1dp</dimen> |
||||||
|
|
||||||
|
<dimen name="default_elevation">1dp</dimen> |
||||||
|
|
||||||
|
<dimen name="middle_text">18sp</dimen> |
||||||
|
|
||||||
|
<dimen name="files_list_item_height">64dp</dimen> |
||||||
|
<dimen name="files_list_item_thumbnail_size">60dp</dimen> |
||||||
|
<dimen name="files_list_item_thumbnail_margin_right">8dp</dimen> |
||||||
|
<dimen name="files_grid_item_thumbnail_size">60dp</dimen> |
||||||
|
<dimen name="files_grid_item_thumbnail_margin">4dp</dimen> |
||||||
|
<dimen name="files_grid_filename_text_size">12sp</dimen> |
||||||
|
<dimen name="files_grid_item_size">100dp</dimen> |
||||||
|
<dimen name="files_grid_item_margin_top">8dp</dimen> |
||||||
|
<dimen name="files_grid_item_text_margin_side">4dp</dimen> |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</resources> |
@ -0,0 +1,7 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
|
||||||
|
<resources> |
||||||
|
<item name="FriendLife_Position" type="id" /> |
||||||
|
|
||||||
|
<item name="menu_id_delete" type="id" /> |
||||||
|
</resources> |
@ -0,0 +1,15 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> |
||||||
|
<string name="app_name">Control Network</string> |
||||||
|
|
||||||
|
<string name="temperature_hint">Please enter the temperature</string> |
||||||
|
<string name="humidity_hint">Please enter humidity</string> |
||||||
|
<string name="air_pressure_hint">Please enter air pressure</string> |
||||||
|
<string name="addition_constant_hint">Please enter the addition constant</string> |
||||||
|
<string name="multiply_constant_hint">Please enter the multiplication constant</string> |
||||||
|
<string name="instrument_height_hint">Please enter the instrument height</string> |
||||||
|
<string name="notice_list_left_swipe_delete">Note: Swipe left on the list to delete it</string> |
||||||
|
<string name="create_i_angle_detection">NEW I CORNER DETECTION</string> |
||||||
|
<string name="please_choose">Please choose</string> |
||||||
|
|
||||||
|
</resources> |
@ -0,0 +1,157 @@ |
|||||||
|
<resources> |
||||||
|
|
||||||
|
<style name="CustomThemeLight" parent="Theme.AppCompat.Light.NoActionBar"> |
||||||
|
<!-- 窗口状态栏颜色可以设置为和背景色一致 --> |
||||||
|
<item name="colorPrimaryDark">@color/white</item> |
||||||
|
<!-- <!– 窗口的背景,替代启动时候出现的白屏 –>--> |
||||||
|
<!-- <item name="android:windowBackground">@drawable/bg_splash</item>--> |
||||||
|
|
||||||
|
<item name="android:textAllCaps">false</item> |
||||||
|
</style> |
||||||
|
|
||||||
|
<style name="CustomThemeDark" parent="Theme.AppCompat.NoActionBar"> |
||||||
|
<!-- 窗口状态栏颜色可以设置为和背景色一致 --> |
||||||
|
<item name="colorPrimaryDark">@color/white</item> |
||||||
|
<!-- <!– 窗口的背景,替代启动时候出现的白屏 –>--> |
||||||
|
<!-- <item name="android:windowBackground">@drawable/bg_splash</item>--> |
||||||
|
</style> |
||||||
|
|
||||||
|
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> |
||||||
|
|
||||||
|
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> |
||||||
|
|
||||||
|
<style name="item_text"> |
||||||
|
<item name="android:textSize">25sp</item> |
||||||
|
<item name="android:layout_margin">10dp</item> |
||||||
|
<item name="android:layout_marginStart">20dp</item> |
||||||
|
<item name="android:textColor">@color/black</item> |
||||||
|
<item name="android:gravity">start|center_vertical</item> |
||||||
|
</style> |
||||||
|
|
||||||
|
<style name="small_item_text" parent="item_text"> |
||||||
|
<item name="android:textSize">18sp</item> |
||||||
|
<item name="android:textColor">#99000000</item> |
||||||
|
</style> |
||||||
|
|
||||||
|
<style name="item_text_little_without_margin"> |
||||||
|
<item name="android:textSize">18sp</item> |
||||||
|
<item name="android:textColor">#AA000000</item> |
||||||
|
<item name="android:gravity">start|center_vertical</item> |
||||||
|
</style> |
||||||
|
|
||||||
|
<style name="text_surveyor_station_point"> |
||||||
|
<item name="android:layout_width">0dp</item> |
||||||
|
<item name="android:layout_weight">1</item> |
||||||
|
<item name="android:maxLines">1</item> |
||||||
|
<item name="android:gravity">center</item> |
||||||
|
<item name="android:ellipsize">end</item> |
||||||
|
<item name="android:textColor">@color/value_1_normal</item> |
||||||
|
<item name="android:layout_height">wrap_content</item> |
||||||
|
<item name="android:textAppearance">?attr/textAppearanceListItemSecondary</item> |
||||||
|
</style> |
||||||
|
|
||||||
|
<style name="Dialog.FullScreen" parent="ThemeOverlay.AppCompat.Dialog"> |
||||||
|
<item name="android:windowNoTitle">true</item> |
||||||
|
<item name="android:windowBackground">@color/transparent</item> |
||||||
|
<item name="android:windowIsFloating">false</item> |
||||||
|
<item name="android:windowSoftInputMode">adjustResize</item> |
||||||
|
</style> |
||||||
|
|
||||||
|
<style name="animate_dialog"> |
||||||
|
<item name="android:windowEnterAnimation">@anim/slide_up</item> |
||||||
|
<item name="android:windowExitAnimation">@anim/slide_down</item> |
||||||
|
</style> |
||||||
|
|
||||||
|
<style name="animate_full_dialog"> |
||||||
|
<item name="android:windowEnterAnimation">@anim/fade_in_quick</item> |
||||||
|
<item name="android:windowExitAnimation">@anim/fade_out_quick</item> |
||||||
|
</style> |
||||||
|
|
||||||
|
<style name="DefaultButtonStyle"> |
||||||
|
<item name="android:layout_width">wrap_content</item> |
||||||
|
<item name="android:layout_height">wrap_content</item> |
||||||
|
<item name="android:textAllCaps">false</item> |
||||||
|
<item name="android:textColor">@android:color/white</item> |
||||||
|
<item name="android:textSize">16sp</item> |
||||||
|
<item name="cornerRadius">30dp</item> |
||||||
|
</style> |
||||||
|
|
||||||
|
<style name="label_text"> |
||||||
|
<item name="android:textColor">@color/black</item> |
||||||
|
<item name="android:textSize">19sp</item> |
||||||
|
</style> |
||||||
|
|
||||||
|
<style name="alert_dialog_button_color" parent="Widget.AppCompat.Button.ButtonBar.AlertDialog" /> |
||||||
|
|
||||||
|
<style name="alert_dialog_button_normal" parent="Widget.AppCompat.Button.Borderless" /> |
||||||
|
|
||||||
|
|
||||||
|
<!-- <style name="textview_add_button">--> |
||||||
|
<!-- <item name="android:background">@drawable/transparent_ripple_bg</item>--> |
||||||
|
<!-- <item name="android:clickable">true</item>--> |
||||||
|
<!-- <item name="android:focusable">true</item>--> |
||||||
|
<!-- <item name="android:gravity">center</item>--> |
||||||
|
<!-- <item name="android:text">+</item>--> |
||||||
|
<!-- <item name="android:textColor">?colorPrimary</item>--> |
||||||
|
<!-- <item name="android:textSize">25sp</item>--> |
||||||
|
<!-- <item name="android:paddingStart">20dp</item>--> |
||||||
|
<!-- <item name="android:paddingEnd">20dp</item>--> |
||||||
|
<!-- </style>--> |
||||||
|
|
||||||
|
<style name="textview_title" parent="@android:style/TextAppearance.DialogWindowTitle" /> |
||||||
|
|
||||||
|
<style name="textview_content" parent="@android:style/TextAppearance.Widget.TextView" /> |
||||||
|
|
||||||
|
<style name="textview_small"> |
||||||
|
<item name="android:textAppearance">?attr/textAppearanceListItemSmall</item> |
||||||
|
<item name="android:textSize">15sp</item> |
||||||
|
</style> |
||||||
|
|
||||||
|
<style name="my_checkbox"> |
||||||
|
<item name="android:checkboxStyle"> |
||||||
|
@style/Widget.MaterialComponents.Button.TextButton.Dialog.Flush |
||||||
|
</item> |
||||||
|
</style> |
||||||
|
|
||||||
|
<style name="loading_dialog" parent="android:style/Theme.Dialog"> |
||||||
|
<item name="android:windowFrame">@null</item> |
||||||
|
<item name="android:windowNoTitle">true</item> |
||||||
|
<item name="android:windowBackground">@android:color/transparent</item> |
||||||
|
<item name="android:windowIsFloating">true</item> |
||||||
|
<item name="android:backgroundDimEnabled">true</item> |
||||||
|
<item name="android:windowContentOverlay">@null</item> |
||||||
|
</style> |
||||||
|
|
||||||
|
<style name="ExFilePickerThemeCustom" parent="Theme.AppCompat.Light.NoActionBar"> |
||||||
|
<item name="efp__ic_action_cancel">@drawable/efp_dark__ic_action_cancel</item> |
||||||
|
<item name="efp__ic_action_deselect">@drawable/efp_dark__ic_action_deselect</item> |
||||||
|
<item name="efp__ic_action_grid">@drawable/efp_dark__ic_action_grid</item> |
||||||
|
<item name="efp__ic_action_invert_selection"> |
||||||
|
@drawable/efp_dark__ic_action_invert_selection |
||||||
|
</item> |
||||||
|
<item name="efp__ic_action_list">@drawable/efp_dark__ic_action_list</item> |
||||||
|
<item name="efp__ic_action_new_folder">@drawable/efp_dark__ic_action_new_folder</item> |
||||||
|
<item name="efp__ic_action_ok">@drawable/efp_dark__ic_action_ok</item> |
||||||
|
<item name="efp__ic_action_select_all">@drawable/efp_dark__ic_action_select_all</item> |
||||||
|
<item name="efp__ic_action_sort">@drawable/efp_dark__ic_action_sort</item> |
||||||
|
<item name="efp__ic_action_storage">@drawable/efp_dark__ic_action_storage</item> |
||||||
|
</style> |
||||||
|
|
||||||
|
<!-- <style name="textview_add_button_black">--> |
||||||
|
<!-- <item name="android:background">@drawable/transparent_ripple_bg</item>--> |
||||||
|
<!-- <item name="android:clickable">true</item>--> |
||||||
|
<!-- <item name="android:focusable">true</item>--> |
||||||
|
<!-- <item name="android:gravity">center</item>--> |
||||||
|
<!-- <item name="android:text">+</item>--> |
||||||
|
<!-- <item name="android:textColor">@color/black</item>--> |
||||||
|
<!-- <item name="android:textSize">25sp</item>--> |
||||||
|
<!-- <item name="android:paddingStart">20dp</item>--> |
||||||
|
<!-- <item name="android:paddingEnd">20dp</item>--> |
||||||
|
<!-- </style>--> |
||||||
|
|
||||||
|
<style name="BottomDialogAnimation" parent="android:Animation"> |
||||||
|
<item name="android:windowEnterAnimation">@anim/dialog_enter_bottom</item> |
||||||
|
<item name="android:windowExitAnimation">@anim/dialog_exit_bottom</item> |
||||||
|
</style> |
||||||
|
|
||||||
|
</resources> |
@ -0,0 +1,4 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<network-security-config> |
||||||
|
<base-config cleartextTrafficPermitted="true" /> |
||||||
|
</network-security-config> |
@ -0,0 +1,9 @@ |
|||||||
|
import org.junit.Test; |
||||||
|
|
||||||
|
public class TestCase { |
||||||
|
|
||||||
|
@Test |
||||||
|
public void test() { |
||||||
|
|
||||||
|
} |
||||||
|
} |
@ -0,0 +1,37 @@ |
|||||||
|
|
||||||
|
import org.junit.Test |
||||||
|
|
||||||
|
class Hello { |
||||||
|
@Test |
||||||
|
fun main() { |
||||||
|
|
||||||
|
// runBlocking { |
||||||
|
// retrofit { |
||||||
|
// api { |
||||||
|
// val createService = RetrofitClient.createService<CommonService>() |
||||||
|
// val passageData = createService.getPassageData() |
||||||
|
// Log.d("hwhw","sfsdf") |
||||||
|
// passageData |
||||||
|
// } |
||||||
|
// } |
||||||
|
// } |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// // 调用高阶函数 |
||||||
|
// kotlinDSL { |
||||||
|
// // 这个 lambda 的接收者类型为StringBuilder |
||||||
|
// append(" DSL") |
||||||
|
// println(this) |
||||||
|
// } |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
// 声明接收者 |
||||||
|
fun kotlinDSL(block: StringBuilder.() -> Unit) { |
||||||
|
block(StringBuilder()) |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
@ -0,0 +1,30 @@ |
|||||||
|
buildscript { |
||||||
|
repositories { |
||||||
|
mavenCentral() |
||||||
|
google() |
||||||
|
maven { url 'https://oss.sonatype.org/content/groups/public/' } |
||||||
|
maven { url 'https://developer.huawei.com/repo/' } |
||||||
|
maven { url "https://jitpack.io" } |
||||||
|
} |
||||||
|
dependencies { |
||||||
|
// classpath Libs.ButterKnife.plugin |
||||||
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.20" |
||||||
|
classpath "com.android.tools.build:gradle:7.3.1" |
||||||
|
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0' |
||||||
|
|
||||||
|
// classpath 'com.android.tools.build:gradle:7.4.2' |
||||||
|
// classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.10' |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
allprojects { |
||||||
|
repositories { |
||||||
|
flatDir { dirs 'libs' } |
||||||
|
mavenCentral() |
||||||
|
google() |
||||||
|
maven { url 'https://jitpack.io' } |
||||||
|
maven { url 'https://oss.sonatype.org/content/groups/public/' } |
||||||
|
maven { url 'https://developer.huawei.com/repo/' } |
||||||
|
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' } |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,7 @@ |
|||||||
|
repositories { |
||||||
|
mavenCentral() |
||||||
|
} |
||||||
|
|
||||||
|
plugins { |
||||||
|
`kotlin-dsl` |
||||||
|
} |
@ -0,0 +1,9 @@ |
|||||||
|
package com.bingce; |
||||||
|
|
||||||
|
import org.gradle.api.Project; |
||||||
|
|
||||||
|
public class AarCopyUtilsJava { |
||||||
|
public static void configCopyTask(Project project, boolean aarOrJava) { |
||||||
|
AarCopyUtilsKt.Companion.configCopyTask(project, aarOrJava); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,79 @@ |
|||||||
|
package com.bingce |
||||||
|
|
||||||
|
import org.gradle.api.Project |
||||||
|
import org.gradle.api.tasks.Copy |
||||||
|
import java.io.File |
||||||
|
|
||||||
|
class AarCopyUtilsKt { |
||||||
|
companion object { |
||||||
|
private fun copyToXXX( |
||||||
|
taskName: String, |
||||||
|
project: Project, |
||||||
|
destination: String, |
||||||
|
aarOrJava: Boolean |
||||||
|
): Copy { |
||||||
|
val projectName = project.name |
||||||
|
return project.tasks.register(taskName, Copy::class.java) { |
||||||
|
|
||||||
|
outputs.upToDateWhen { false } |
||||||
|
|
||||||
|
from(if (aarOrJava) "build/outputs/aar/${projectName}-release.aar" else "build/libs/${projectName}.jar") // 源目录,这里假设生成物在 build/libs 目录下 |
||||||
|
into(destination) // 目标目录 |
||||||
|
enabled = destination.isNotEmpty() && destination.isNotBlank() // 取消任务 |
||||||
|
}.get() |
||||||
|
} |
||||||
|
|
||||||
|
fun configCopyTask(project: Project, aarOrJava: Boolean) { |
||||||
|
val surveyorCopyTaskName = "copy2Surveyor" |
||||||
|
val alphaCopyTaskName = "copy2Alpha" |
||||||
|
val tjCopyTaskName = "copy2Tj" |
||||||
|
|
||||||
|
val projectName = project.name |
||||||
|
|
||||||
|
val copy2Surveyor = |
||||||
|
copyToXXX( |
||||||
|
surveyorCopyTaskName, |
||||||
|
project, |
||||||
|
"../../aar/${project.name}/", |
||||||
|
aarOrJava |
||||||
|
) |
||||||
|
|
||||||
|
val bcFolder = BcFolder(project) |
||||||
|
|
||||||
|
val alphaDestination = bcFolder.folderConfig("alpha.outputDir")?.let { |
||||||
|
File(it, "bingceAAR\\${projectName}").absolutePath |
||||||
|
} ?: "" |
||||||
|
println("alphaDestination: $alphaDestination") |
||||||
|
val copy2Alpha = copyToXXX(alphaCopyTaskName, project, alphaDestination, aarOrJava) |
||||||
|
|
||||||
|
val tjDestination = bcFolder.folderConfig("tj.outputDir")?.let { |
||||||
|
File(it, "aar\\${projectName}").absolutePath |
||||||
|
} ?: "" |
||||||
|
println("tjDestination: $tjDestination") |
||||||
|
val copy2Tj = copyToXXX(tjCopyTaskName, project, tjDestination, aarOrJava) |
||||||
|
|
||||||
|
// 设置任务依赖,确保在 assemble 任务执行完后执行拷贝任务 |
||||||
|
project.tasks.named("assemble").configure { |
||||||
|
copy2Surveyor.enabled = true |
||||||
|
finalizedBy(copy2Surveyor) |
||||||
|
} |
||||||
|
|
||||||
|
val nextTaskName1 = if (alphaDestination.isEmpty() || alphaDestination.isBlank()) { |
||||||
|
surveyorCopyTaskName |
||||||
|
} else { |
||||||
|
project.tasks.named(surveyorCopyTaskName).configure { |
||||||
|
copy2Alpha.enabled = true |
||||||
|
finalizedBy(copy2Alpha) |
||||||
|
} |
||||||
|
alphaCopyTaskName |
||||||
|
} |
||||||
|
|
||||||
|
if (tjDestination.isNotEmpty() && tjDestination.isNotBlank()) { |
||||||
|
project.tasks.named(nextTaskName1).configure { |
||||||
|
copy2Tj.enabled = true |
||||||
|
finalizedBy(copy2Tj) |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,34 @@ |
|||||||
|
package com.bingce |
||||||
|
|
||||||
|
import org.gradle.api.Project |
||||||
|
import java.io.File |
||||||
|
import java.io.FileInputStream |
||||||
|
import java.util.Properties |
||||||
|
|
||||||
|
class BcFolder(project: Project) { |
||||||
|
private val NAME = "local.properties" |
||||||
|
private val properties: Properties = Properties() |
||||||
|
private val rootProject = project.rootProject |
||||||
|
|
||||||
|
init { |
||||||
|
val config1 = File(rootProject.projectDir.parent, NAME) |
||||||
|
if (config1.exists()) { |
||||||
|
properties.load(FileInputStream(config1)) |
||||||
|
} else { |
||||||
|
properties.load(FileInputStream(project.rootProject.file(NAME))) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
fun rootProjectDir(): File { |
||||||
|
val bcFolder = properties.getProperty("bingce.dir") |
||||||
|
if (bcFolder == null || bcFolder.isEmpty()) return rootProject.projectDir |
||||||
|
|
||||||
|
return File(bcFolder) |
||||||
|
} |
||||||
|
|
||||||
|
fun folderConfig(folderKey: String): File? { |
||||||
|
val folderString = properties.getProperty(folderKey) |
||||||
|
if (folderString == null || folderString.isEmpty()) return null |
||||||
|
return File(folderString) |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,25 @@ |
|||||||
|
package com.bingce |
||||||
|
|
||||||
|
import org.gradle.api.Project |
||||||
|
import java.io.File |
||||||
|
import java.io.FileInputStream |
||||||
|
import java.util.Properties |
||||||
|
|
||||||
|
class ConfigProperties(project: Project) { |
||||||
|
private val NAME = "local.properties" |
||||||
|
private val properties: Properties = Properties() |
||||||
|
|
||||||
|
init { |
||||||
|
val rootProject = project.rootProject |
||||||
|
val config1 = File(rootProject.projectDir.parent, NAME) |
||||||
|
if (config1.exists()) { |
||||||
|
properties.load(FileInputStream(config1)) |
||||||
|
} else { |
||||||
|
properties.load(FileInputStream(project.rootProject.file(NAME))) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
fun getProperty(key: String?): String? { |
||||||
|
return properties.getProperty(key) |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,44 @@ |
|||||||
|
package com.bingce |
||||||
|
|
||||||
|
import org.gradle.api.Project |
||||||
|
import java.io.FileInputStream |
||||||
|
import java.util.* |
||||||
|
|
||||||
|
class ModuleName(project: Project) { |
||||||
|
private val useAAR: String |
||||||
|
private val useBaseAAR: String |
||||||
|
|
||||||
|
init { |
||||||
|
val properties = ConfigProperties(project) |
||||||
|
useAAR = properties.getProperty("useAAR") ?: "true" |
||||||
|
useBaseAAR = properties.getProperty("useBaseAAR") ?: "true" |
||||||
|
} |
||||||
|
|
||||||
|
fun bingceModule(name: String): String { |
||||||
|
return if ("base" == name) { |
||||||
|
if ("false" == useBaseAAR) { |
||||||
|
":bingce:base" |
||||||
|
} else { |
||||||
|
":aar:base" |
||||||
|
} |
||||||
|
} else { |
||||||
|
if ("false" == useAAR) { |
||||||
|
":bingce:$name" |
||||||
|
} else { |
||||||
|
":aar:$name" |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
fun openSourceModule(name: String): String { |
||||||
|
return if ("false" == useAAR) { |
||||||
|
":opensource:$name" |
||||||
|
} else { |
||||||
|
":aar:$name" |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
fun isUseAAR(): Boolean { |
||||||
|
return useAAR == "true" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,13 @@ |
|||||||
|
package com.bingce |
||||||
|
|
||||||
|
object Sample{ |
||||||
|
const val applicationId = "com.bingce.sample" |
||||||
|
const val versionCode = 1 |
||||||
|
const val versionName = "1" |
||||||
|
|
||||||
|
|
||||||
|
const val minSdkVersion = 21 |
||||||
|
const val targetSdkVersion = 28 |
||||||
|
const val compileSdkVersion = 31 |
||||||
|
const val buildToolsVersion = AndroidSdk.buildToolsVersion |
||||||
|
} |
@ -0,0 +1,27 @@ |
|||||||
|
package com.bingce |
||||||
|
|
||||||
|
import org.gradle.api.Project |
||||||
|
import java.util.Calendar |
||||||
|
|
||||||
|
class SurveyorVersionUtils(project: Project) { |
||||||
|
val versionCode: Int |
||||||
|
val versionName: String |
||||||
|
val mappingFolder: String |
||||||
|
|
||||||
|
init { |
||||||
|
val cale = Calendar.getInstance(); |
||||||
|
val year = cale.get(Calendar.YEAR); |
||||||
|
val month = cale.get(Calendar.MONTH) + 1; |
||||||
|
val day = cale.get(Calendar.DATE); |
||||||
|
val hour = cale.get(Calendar.HOUR_OF_DAY); |
||||||
|
val minute = cale.get(Calendar.MINUTE); |
||||||
|
val second = cale.get(Calendar.SECOND); |
||||||
|
|
||||||
|
versionCode = (year - 2000) * 100000 + month * 1000 + day * 10 |
||||||
|
versionName = "" + (year - 2010) + "." + month + "." + day + "." + hour + "." + minute |
||||||
|
|
||||||
|
//检测mapping folder |
||||||
|
val properties = ConfigProperties(project) |
||||||
|
mappingFolder = properties.getProperty("mapping.dir") ?: "" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,29 @@ |
|||||||
|
package com.bingce |
||||||
|
|
||||||
|
object App { |
||||||
|
object Surveyor { |
||||||
|
const val applicationId = "cn.liuyanbing.surveyor" |
||||||
|
} |
||||||
|
|
||||||
|
object Alpha { |
||||||
|
const val applicationId = "zone.a.dimap" |
||||||
|
} |
||||||
|
|
||||||
|
object SurveyorPad { |
||||||
|
const val applicationId = "com.bingce.pad" |
||||||
|
const val versionCode = 2303130 |
||||||
|
const val versionName = "1.0.0" |
||||||
|
} |
||||||
|
|
||||||
|
object ControlNetwork { |
||||||
|
const val applicationId = "com.bingce.controlnetwork" |
||||||
|
const val versionCode = 2212130 |
||||||
|
const val versionName = "1.6.221213" |
||||||
|
} |
||||||
|
|
||||||
|
object GnssServer { |
||||||
|
const val applicationId = "com.bingce.gnssserver" |
||||||
|
const val versionCode = 2212060//注意同步更新DeviceUtil里的checkIfGnssServerReady里的版本 |
||||||
|
const val versionName = "1.0.221206" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,257 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2020 The Android Open Source Project |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0 |
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package com.bingce |
||||||
|
|
||||||
|
import org.gradle.api.JavaVersion |
||||||
|
|
||||||
|
object AndroidSdk { |
||||||
|
const val minSdkVersion = 26 //POI库要求最低26 |
||||||
|
const val targetSdkVersion = 31 |
||||||
|
const val compileSdkVersion = 34 |
||||||
|
const val buildToolsVersion = "33.0.0" |
||||||
|
|
||||||
|
private const val junitVersion = "4.13.2" |
||||||
|
const val junit = "junit:junit:$junitVersion" |
||||||
|
const val runner = "androidx.test:runner:1.4.0" |
||||||
|
const val core = "androidx.test:core:1.4.0" |
||||||
|
const val testJunit = "androidx.test.ext:junit:1.1.5" |
||||||
|
const val testEspresso = "androidx.test.espresso:espresso-core:3.1.0" |
||||||
|
const val androidJUnitRunner = "androidx.test.runner.AndroidJUnitRunner" |
||||||
|
|
||||||
|
val javaVersion: JavaVersion = JavaVersion.VERSION_1_8 |
||||||
|
} |
||||||
|
|
||||||
|
object Kotlin { |
||||||
|
private const val kotlinVersion = "1.9.10" |
||||||
|
const val sdk = "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion" |
||||||
|
const val corountine = "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9" |
||||||
|
const val plugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" |
||||||
|
} |
||||||
|
|
||||||
|
object AndroidX { |
||||||
|
const val appcompat = "androidx.appcompat:appcompat:1.6.1" |
||||||
|
const val localBroadcastManager = "androidx.localbroadcastmanager:localbroadcastmanager:1.0.0" |
||||||
|
const val swipeRefreshLayout = "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0" |
||||||
|
|
||||||
|
private const val legacyVersion = "1.0.0" |
||||||
|
const val legacySupport = "androidx.legacy:legacy-support-v4:$legacyVersion" |
||||||
|
const val legacyPreference = "androidx.legacy:legacy-preference-v14:$legacyVersion" |
||||||
|
|
||||||
|
const val preference = "androidx.preference:preference:1.1.1" |
||||||
|
const val multidex = "androidx.multidex:multidex:2.0.1" |
||||||
|
const val cardView = "androidx.cardview:cardview:1.0.0" |
||||||
|
const val recyclerview = "androidx.recyclerview:recyclerview:1.2.1" |
||||||
|
const val annotationz = "androidx.annotation:annotation:1.1.0" |
||||||
|
const val documentFile = "androidx.documentfile:documentfile:1.0.1" |
||||||
|
const val constraintLayout = "androidx.constraintlayout:constraintlayout:2.1.4" |
||||||
|
const val material = "com.google.android.material:material:1.8.0" |
||||||
|
const val materialDialogs = "com.afollestad.material-dialogs:core:0.9.6.0" |
||||||
|
const val vectorDrawable = "androidx.vectordrawable:vectordrawable:1.1.0" |
||||||
|
|
||||||
|
object Core { |
||||||
|
const val coreKtx = "androidx.core:core-ktx:1.9.0" |
||||||
|
} |
||||||
|
|
||||||
|
object Paging { |
||||||
|
private const val version = "3.2.1" |
||||||
|
const val runtime = "androidx.paging:paging-runtime:$version" |
||||||
|
const val common = "androidx.paging:paging-common:$version" |
||||||
|
} |
||||||
|
|
||||||
|
object Lifecycle { |
||||||
|
private const val lifecycleVersion = "2.2.0" |
||||||
|
const val extensions = "androidx.lifecycle:lifecycle-extensions:$lifecycleVersion" |
||||||
|
const val viewModel = "androidx.lifecycle:lifecycle-viewmodel:$lifecycleVersion" |
||||||
|
const val runtimeKt = "androidx.lifecycle:lifecycle-runtime-ktx:2.4.0"; |
||||||
|
const val viewModelKt = "androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0"; |
||||||
|
} |
||||||
|
|
||||||
|
object Room { |
||||||
|
private const val version = "2.6.1" |
||||||
|
const val runtime = "androidx.room:room-runtime:$version" |
||||||
|
const val ktx = "androidx.room:room-ktx:$version" |
||||||
|
const val compiler = "androidx.room:room-compiler:$version" |
||||||
|
const val paging = "androidx.room:room-paging:$version" |
||||||
|
} |
||||||
|
|
||||||
|
object Ktx { |
||||||
|
private const val version = "1.8.0" |
||||||
|
const val activity = "androidx.activity:activity-ktx:$version" |
||||||
|
const val fragment = "androidx.fragment:fragment-ktx:1.2.5" |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
object Libs { |
||||||
|
const val eventBus = "org.greenrobot:eventbus:3.1.1" |
||||||
|
|
||||||
|
object ButterKnife { |
||||||
|
private const val version = "10.2.3" |
||||||
|
const val core = "com.jakewharton:butterknife:$version" |
||||||
|
const val compiler = "com.jakewharton:butterknife-compiler:$version" |
||||||
|
const val plugin = "com.jakewharton:butterknife-gradle-plugin:$version" |
||||||
|
} |
||||||
|
|
||||||
|
const val jPinYin = "com.github.stuxuhai:jpinyin:1.0" |
||||||
|
|
||||||
|
const val switchIcon = "com.github.zagum:Android-SwitchIcon:1.4.0" |
||||||
|
|
||||||
|
const val zxing = "com.google.zxing:core:3.2.1" |
||||||
|
|
||||||
|
object Rx { |
||||||
|
const val rxJava = "io.reactivex.rxjava2:rxjava:2.2.8" |
||||||
|
const val rxAndroid = "io.reactivex.rxjava2:rxandroid:2.1.1" |
||||||
|
} |
||||||
|
|
||||||
|
object POI { |
||||||
|
const val slf4j_api = "org.slf4j:slf4j-api:1.7.30" |
||||||
|
const val jcl_over_slf4j = "org.slf4j:jcl-over-slf4j:1.7.30" |
||||||
|
const val poi_ooxml = "org.apache.poi:poi-ooxml:4.1.2"//4.0.1版本会造成无法识别Poi的类例如Cell,高于4.1.2又会导致读写xls异常,提示provider未找到,所以4.1.2是最好的选着,不好的一点是,4.1.2要求在minsdk>26(Android8)以上才能编译 |
||||||
|
const val aalto_xml = "com.fasterxml:aalto-xml:1.3.0" |
||||||
|
const val stax_api = "stax:stax-api:1.0.1" |
||||||
|
const val commons_jexl3 = "org.apache.commons:commons-jexl3:3.2" |
||||||
|
const val commons_beanutils = "commons-beanutils:commons-beanutils:1.9.4" |
||||||
|
const val logback_core = "ch.qos.logback:logback-core:1.2.10" |
||||||
|
const val commons_compress = "org.apache.commons:commons-compress:1.21" |
||||||
|
const val commons_lang3 = "org.apache.commons:commons-lang3:3.7" |
||||||
|
} |
||||||
|
|
||||||
|
object UMeng { |
||||||
|
const val common = "com.umeng.umsdk:common:9.6.6" |
||||||
|
const val asms = "com.umeng.umsdk:asms:1.8.0" |
||||||
|
const val apm = "com.umeng.umsdk:apm:1.9.4" |
||||||
|
} |
||||||
|
|
||||||
|
object RxHttp { |
||||||
|
const val core = "com.ljx.rxhttp:rxhttp:2.5.5" |
||||||
|
const val compiler = "com.ljx.rxhttp:rxhttp-compiler:2.5.5" |
||||||
|
} |
||||||
|
|
||||||
|
object Retrofit2 { |
||||||
|
const val core = "com.squareup.retrofit2:retrofit:2.9.0" |
||||||
|
const val converterFastjson = "org.ligboy.retrofit2:converter-fastjson-android:2.1.0" |
||||||
|
} |
||||||
|
|
||||||
|
const val scanplus = "com.huawei.hms:scanplus:2.12.0.301" |
||||||
|
|
||||||
|
object Glide { |
||||||
|
private const val version = "4.9.0" |
||||||
|
const val core = "com.github.bumptech.glide:glide:$version" |
||||||
|
const val compiler = "com.github.bumptech.glide:compiler:$version" |
||||||
|
} |
||||||
|
|
||||||
|
object RxImagePicker { |
||||||
|
private const val version = "2.5.6" |
||||||
|
const val core = "com.github.qingmei2:rximagepicker:$version" |
||||||
|
const val support = "com.github.qingmei2:rximagepicker_support:$version" |
||||||
|
const val supportWechat = "com.github.qingmei2:rximagepicker_support_wechat:$version" |
||||||
|
} |
||||||
|
|
||||||
|
object OkHttp { |
||||||
|
private const val version = "4.9.0" |
||||||
|
const val core = "com.squareup.okhttp3:okhttp:$version" |
||||||
|
const val loggingInterceptor = "com.squareup.okhttp3:logging-interceptor:$version" |
||||||
|
} |
||||||
|
|
||||||
|
// const val fastJson = "com.alibaba:fastjson:1.1.71.android" |
||||||
|
|
||||||
|
object Iconics { |
||||||
|
private const val version = "3.2.5" |
||||||
|
const val core = "com.mikepenz:iconics-core:$version" |
||||||
|
const val views = "com.mikepenz:iconics-views:$version" |
||||||
|
const val materialIconicTypeface = |
||||||
|
"com.mikepenz:material-design-iconic-typeface:2.2.0.4@aar" |
||||||
|
const val typeiconsTypeface = "com.mikepenz:typeicons-typeface:2.0.7.4@aar" |
||||||
|
} |
||||||
|
|
||||||
|
object Filament { |
||||||
|
private const val version = "1.49.1" |
||||||
|
const val android = "com.google.android.filament:filament-android:$version" |
||||||
|
const val gltfio = "com.google.android.filament:gltfio-android:$version" |
||||||
|
const val utils = "com.google.android.filament:filament-utils-android:$version" |
||||||
|
} |
||||||
|
|
||||||
|
const val compressor = "id.zelory:compressor:2.1.1"//图片压缩工具 |
||||||
|
const val picasso = "com.squareup.picasso:picasso:2.71828" |
||||||
|
const val rubberStamp = "com.vinaygaba:rubberstamp:1.0.0"//图像处理 |
||||||
|
const val photoView = "com.github.chrisbanes:PhotoView:2.1.3"//图片缩放库 |
||||||
|
const val circleImage = "de.hdodenhof:circleimageview:3.0.1"//圆角图片 |
||||||
|
|
||||||
|
const val realmPlugin = "io.realm:realm-gradle-plugin:5.14.0" |
||||||
|
const val objectBox = "io.objectbox:objectbox-gradle-plugin:3.5.1" |
||||||
|
|
||||||
|
const val materialEditText = "com.rengwuxian.materialedittext:library:2.1.4" |
||||||
|
const val swipeLayout = "com.daimajia.swipelayout:library:1.2.0@aar" |
||||||
|
const val recyclerviewAnimator = "jp.wasabeef:recyclerview-animators:2.2.7" |
||||||
|
const val fabButton = "com.github.clans:fab:1.6.4"//悬浮按钮 |
||||||
|
const val datePicker = "cn.aigestudio.datepicker:DatePicker:2.2.0"//时间选择器 |
||||||
|
const val changeLog = "com.github.gabrielemariotti.changeloglib:changelog:2.1.0"//变更日志库 |
||||||
|
const val flycoTabLayout = "com.flyco.tablayout:FlycoTabLayout_Lib:2.1.2@aar"//标签库 |
||||||
|
|
||||||
|
// const val utilCodex = "com.blankj:utilcodex:1.31.0"//工具类工具\ |
||||||
|
const val materialAbout = "com.github.jrvansuita:MaterialAbout:0.2.4"//界面风格工具 |
||||||
|
const val banner = "com.youth.banner:banner:2.1.0"//轮播图 |
||||||
|
const val webChatSdk = "com.tencent.mm.opensdk:wechat-sdk-android-without-mta:5.4.3"//腾讯opensdk |
||||||
|
const val appUpdate = "com.github.jenly1314.AppUpdater:app-updater:1.1.3"//app版本更新 |
||||||
|
const val rootBeer = "com.scottyab:rootbeer-lib:0.0.7"//root检查 |
||||||
|
const val tabBar = "devlight.io:navigationtabbar:1.2.5"//tabBar |
||||||
|
const val agentWeb = "com.just.agentweb:agentweb:4.1.2"//网页加载工具 |
||||||
|
const val tencentSonic = "com.tencent.sonic:sdk:2.0.0"//腾讯网页加载工具 |
||||||
|
const val downloader = "com.download.library:Downloader:4.1.2"//下载工具 |
||||||
|
const val keyboardVisibility = |
||||||
|
"net.yslibrary.keyboardvisibilityevent:keyboardvisibilityevent:2.3.0"//软件盘监听工具 |
||||||
|
const val progressBar = "com.daimajia.numberprogressbar:library:1.4@aar"//进度条 |
||||||
|
// const val fastBle = "clj.fastble:FastBleLib:2.3.4"//蓝牙ble |
||||||
|
|
||||||
|
object FastAdapter { |
||||||
|
private const val version = "3.3.1" |
||||||
|
const val core = "com.mikepenz:fastadapter:$version" |
||||||
|
const val itemanimators = "com.mikepenz:itemanimators:1.1.0" |
||||||
|
} |
||||||
|
|
||||||
|
const val pickerView = "com.contrarywind:Android-PickerView:4.1.9" |
||||||
|
const val unCrop = "com.github.yalantis:ucrop:2.2.7" |
||||||
|
const val imageTextButton = "cn.dxjia:imagetextbutton:1.0.0" |
||||||
|
const val threadPoster = "com.techyourchance:threadposter:1.0.1" |
||||||
|
const val fileDownloader = "com.liulishuo.filedownloader:library:1.7.7" |
||||||
|
const val gson = "com.google.code.gson:gson:2.8.9" |
||||||
|
|
||||||
|
object LeanCloud { |
||||||
|
private const val version = "8.2.16" |
||||||
|
const val storage = "cn.leancloud:storage-android:$version" |
||||||
|
const val realtime = "cn.leancloud:realtime-android:$version" |
||||||
|
} |
||||||
|
|
||||||
|
const val dragExpandGrid = "com.nineoldandroids:library:2.4.0"//动画效果库 |
||||||
|
const val giftDrawable = "pl.droidsonroids.gif:android-gif-drawable:1.2.23"//加载gif图 |
||||||
|
const val xxPermissions = "com.github.getActivity:XXPermissions:18.5" |
||||||
|
|
||||||
|
const val httpLegacy = "org.apache.http.legacy" |
||||||
|
|
||||||
|
// const val usbSerial4Android = "com.github.mik3y:usb-serial-for-android:3.4.3" |
||||||
|
const val serialPort = "io.github.xmaihh:serialport:2.1.1" |
||||||
|
const val timber = "com.jakewharton.timber:timber:4.7.1" |
||||||
|
const val loadingView = "com.ldoublem.loadingview:loadingviewlib:1.0" |
||||||
|
|
||||||
|
const val gjygitEditext="com.github.gjygit:editext:3.0" |
||||||
|
|
||||||
|
object RefreshLayout { |
||||||
|
private const val version = "2.0.5" |
||||||
|
const val kernel = "io.github.scwang90:refresh-layout-kernel:$version"//核心必须依赖 |
||||||
|
const val header = "io.github.scwang90:refresh-header-classics:$version"//经典刷新头 |
||||||
|
const val footer = "io.github.scwang90:refresh-footer-classics:$version"//经典加载 |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,50 @@ |
|||||||
|
package com.bingce.flavor; |
||||||
|
|
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
public class FlavorItems { |
||||||
|
|
||||||
|
public static class FlavorItem { |
||||||
|
public final String name; |
||||||
|
public final String STRING_APP; |
||||||
|
public final int CHANNEL_TYPE; |
||||||
|
|
||||||
|
public FlavorItem(String name, String string_app, int channel_type) { |
||||||
|
this.name = name; |
||||||
|
STRING_APP = string_app; |
||||||
|
CHANNEL_TYPE = channel_type; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public static List<FlavorItem> flavorItemList(String configs) { |
||||||
|
List<FlavorItem> flavorItemList = new ArrayList<>(); |
||||||
|
|
||||||
|
String[] contentArray = configs.split("\n"); |
||||||
|
|
||||||
|
String name = ""; |
||||||
|
String STRING_APP = "测量员"; |
||||||
|
int CHANNEL_TYPE = 0; |
||||||
|
for (String str : contentArray) { |
||||||
|
if (str.startsWith("{")) { |
||||||
|
name = ""; |
||||||
|
STRING_APP = "测量员"; |
||||||
|
CHANNEL_TYPE = 0; |
||||||
|
} else if (str.startsWith("}")) { |
||||||
|
flavorItemList.add(new FlavorItem(name, STRING_APP, CHANNEL_TYPE)); |
||||||
|
} else { |
||||||
|
str = str.trim(); |
||||||
|
String[] array = str.split("="); |
||||||
|
if ("name".equals(array[0])) { |
||||||
|
name = array[1]; |
||||||
|
} else if ("STRING_APP".equals(array[0])) { |
||||||
|
STRING_APP = array[1]; |
||||||
|
} else if ("CHANNEL_TYPE".equals(array[0])) { |
||||||
|
CHANNEL_TYPE = Integer.parseInt(array[1]); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
return flavorItemList; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,25 @@ |
|||||||
|
# Project-wide Gradle settings. |
||||||
|
# IDE (e.g. Android Studio) users: |
||||||
|
# Gradle settings configured through the IDE *will override* |
||||||
|
# any settings specified in this file. |
||||||
|
# For more details on how to configure your build environment visit |
||||||
|
# http://www.gradle.org/docs/current/userguide/build_environment.html |
||||||
|
# Specifies the JVM arguments used for the daemon process. |
||||||
|
# The setting is particularly useful for tweaking memory settings. |
||||||
|
# Default value: -Xmx10248m -XX:MaxPermSize=256m |
||||||
|
#org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 |
||||||
|
# When configured, Gradle will run in incubating parallel mode. |
||||||
|
# This option should only be used with decoupled projects. More details, visit |
||||||
|
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects |
||||||
|
org.gradle.daemon=true |
||||||
|
org.gradle.jvmargs=-Xmx8000m -XX:MaxPermSize=8000m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 |
||||||
|
org.gradle.parallel=true |
||||||
|
org.gradle.configureondemand=true |
||||||
|
android.useAndroidX=true |
||||||
|
android.enableJetifier=true |
||||||
|
#android.jetifier.blacklist = doNot.*\\.jar |
||||||
|
#android.enableAapt2=false |
||||||
|
MAPBOX_DOWNLOADS_TOKEN=sk.eyJ1IjoieWFuYmluZzE3NyIsImEiOiJja2p6dHRleHgwYXdiMnhycmZrdXdmY3l0In0.GDgDxGT_JPn4YCsYvh82rA |
||||||
|
|
||||||
|
# all surveyor control |
||||||
|
app=all |
Binary file not shown.
@ -0,0 +1,6 @@ |
|||||||
|
#Fri Sep 16 16:02:22 CST 2022 |
||||||
|
distributionBase=GRADLE_USER_HOME |
||||||
|
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip |
||||||
|
distributionPath=wrapper/dists |
||||||
|
zipStorePath=wrapper/dists |
||||||
|
zipStoreBase=GRADLE_USER_HOME |
@ -0,0 +1,164 @@ |
|||||||
|
#!/usr/bin/env bash |
||||||
|
|
||||||
|
############################################################################## |
||||||
|
## |
||||||
|
## Gradle start up script for UN*X |
||||||
|
## |
||||||
|
############################################################################## |
||||||
|
|
||||||
|
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. |
||||||
|
DEFAULT_JVM_OPTS="" |
||||||
|
|
||||||
|
APP_NAME="Gradle" |
||||||
|
APP_BASE_NAME=`basename "$0"` |
||||||
|
|
||||||
|
# Use the maximum available, or set MAX_FD != -1 to use that value. |
||||||
|
MAX_FD="maximum" |
||||||
|
|
||||||
|
warn ( ) { |
||||||
|
echo "$*" |
||||||
|
} |
||||||
|
|
||||||
|
die ( ) { |
||||||
|
echo |
||||||
|
echo "$*" |
||||||
|
echo |
||||||
|
exit 1 |
||||||
|
} |
||||||
|
|
||||||
|
# OS specific support (must be 'true' or 'false'). |
||||||
|
cygwin=false |
||||||
|
msys=false |
||||||
|
darwin=false |
||||||
|
case "`uname`" in |
||||||
|
CYGWIN* ) |
||||||
|
cygwin=true |
||||||
|
;; |
||||||
|
Darwin* ) |
||||||
|
darwin=true |
||||||
|
;; |
||||||
|
MINGW* ) |
||||||
|
msys=true |
||||||
|
;; |
||||||
|
esac |
||||||
|
|
||||||
|
# For Cygwin, ensure paths are in UNIX format before anything is touched. |
||||||
|
if $cygwin ; then |
||||||
|
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` |
||||||
|
fi |
||||||
|
|
||||||
|
# Attempt to set APP_HOME |
||||||
|
# Resolve links: $0 may be a link |
||||||
|
PRG="$0" |
||||||
|
# Need this for relative symlinks. |
||||||
|
while [ -h "$PRG" ] ; do |
||||||
|
ls=`ls -ld "$PRG"` |
||||||
|
link=`expr "$ls" : '.*-> \(.*\)$'` |
||||||
|
if expr "$link" : '/.*' > /dev/null; then |
||||||
|
PRG="$link" |
||||||
|
else |
||||||
|
PRG=`dirname "$PRG"`"/$link" |
||||||
|
fi |
||||||
|
done |
||||||
|
SAVED="`pwd`" |
||||||
|
cd "`dirname \"$PRG\"`/" >&- |
||||||
|
APP_HOME="`pwd -P`" |
||||||
|
cd "$SAVED" >&- |
||||||
|
|
||||||
|
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar |
||||||
|
|
||||||
|
# Determine the Java command to use to start the JVM. |
||||||
|
if [ -n "$JAVA_HOME" ] ; then |
||||||
|
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then |
||||||
|
# IBM's JDK on AIX uses strange locations for the executables |
||||||
|
JAVACMD="$JAVA_HOME/jre/sh/java" |
||||||
|
else |
||||||
|
JAVACMD="$JAVA_HOME/bin/java" |
||||||
|
fi |
||||||
|
if [ ! -x "$JAVACMD" ] ; then |
||||||
|
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME |
||||||
|
|
||||||
|
Please set the JAVA_HOME variable in your environment to match the |
||||||
|
location of your Java installation." |
||||||
|
fi |
||||||
|
else |
||||||
|
JAVACMD="java" |
||||||
|
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. |
||||||
|
|
||||||
|
Please set the JAVA_HOME variable in your environment to match the |
||||||
|
location of your Java installation." |
||||||
|
fi |
||||||
|
|
||||||
|
# Increase the maximum file descriptors if we can. |
||||||
|
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then |
||||||
|
MAX_FD_LIMIT=`ulimit -H -n` |
||||||
|
if [ $? -eq 0 ] ; then |
||||||
|
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then |
||||||
|
MAX_FD="$MAX_FD_LIMIT" |
||||||
|
fi |
||||||
|
ulimit -n $MAX_FD |
||||||
|
if [ $? -ne 0 ] ; then |
||||||
|
warn "Could not set maximum file descriptor limit: $MAX_FD" |
||||||
|
fi |
||||||
|
else |
||||||
|
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" |
||||||
|
fi |
||||||
|
fi |
||||||
|
|
||||||
|
# For Darwin, add options to specify how the application appears in the dock |
||||||
|
if $darwin; then |
||||||
|
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" |
||||||
|
fi |
||||||
|
|
||||||
|
# For Cygwin, switch paths to Windows format before running java |
||||||
|
if $cygwin ; then |
||||||
|
APP_HOME=`cygpath --path --mixed "$APP_HOME"` |
||||||
|
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` |
||||||
|
|
||||||
|
# We build the pattern for arguments to be converted via cygpath |
||||||
|
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` |
||||||
|
SEP="" |
||||||
|
for dir in $ROOTDIRSRAW ; do |
||||||
|
ROOTDIRS="$ROOTDIRS$SEP$dir" |
||||||
|
SEP="|" |
||||||
|
done |
||||||
|
OURCYGPATTERN="(^($ROOTDIRS))" |
||||||
|
# Add a user-defined pattern to the cygpath arguments |
||||||
|
if [ "$GRADLE_CYGPATTERN" != "" ] ; then |
||||||
|
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" |
||||||
|
fi |
||||||
|
# Now convert the arguments - kludge to limit ourselves to /bin/sh |
||||||
|
i=0 |
||||||
|
for arg in "$@" ; do |
||||||
|
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` |
||||||
|
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option |
||||||
|
|
||||||
|
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition |
||||||
|
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` |
||||||
|
else |
||||||
|
eval `echo args$i`="\"$arg\"" |
||||||
|
fi |
||||||
|
i=$((i+1)) |
||||||
|
done |
||||||
|
case $i in |
||||||
|
(0) set -- ;; |
||||||
|
(1) set -- "$args0" ;; |
||||||
|
(2) set -- "$args0" "$args1" ;; |
||||||
|
(3) set -- "$args0" "$args1" "$args2" ;; |
||||||
|
(4) set -- "$args0" "$args1" "$args2" "$args3" ;; |
||||||
|
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; |
||||||
|
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; |
||||||
|
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; |
||||||
|
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; |
||||||
|
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; |
||||||
|
esac |
||||||
|
fi |
||||||
|
|
||||||
|
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules |
||||||
|
function splitJvmOpts() { |
||||||
|
JVM_OPTS=("$@") |
||||||
|
} |
||||||
|
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS |
||||||
|
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" |
||||||
|
|
||||||
|
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" |
@ -0,0 +1,90 @@ |
|||||||
|
@if "%DEBUG%" == "" @echo off |
||||||
|
@rem ########################################################################## |
||||||
|
@rem |
||||||
|
@rem Gradle startup script for Windows |
||||||
|
@rem |
||||||
|
@rem ########################################################################## |
||||||
|
|
||||||
|
@rem Set local scope for the variables with windows NT shell |
||||||
|
if "%OS%"=="Windows_NT" setlocal |
||||||
|
|
||||||
|
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. |
||||||
|
set DEFAULT_JVM_OPTS= |
||||||
|
|
||||||
|
set DIRNAME=%~dp0 |
||||||
|
if "%DIRNAME%" == "" set DIRNAME=. |
||||||
|
set APP_BASE_NAME=%~n0 |
||||||
|
set APP_HOME=%DIRNAME% |
||||||
|
|
||||||
|
@rem Find java.exe |
||||||
|
if defined JAVA_HOME goto findJavaFromJavaHome |
||||||
|
|
||||||
|
set JAVA_EXE=java.exe |
||||||
|
%JAVA_EXE% -version >NUL 2>&1 |
||||||
|
if "%ERRORLEVEL%" == "0" goto init |
||||||
|
|
||||||
|
echo. |
||||||
|
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. |
||||||
|
echo. |
||||||
|
echo Please set the JAVA_HOME variable in your environment to match the |
||||||
|
echo location of your Java installation. |
||||||
|
|
||||||
|
goto fail |
||||||
|
|
||||||
|
:findJavaFromJavaHome |
||||||
|
set JAVA_HOME=%JAVA_HOME:"=% |
||||||
|
set JAVA_EXE=%JAVA_HOME%/bin/java.exe |
||||||
|
|
||||||
|
if exist "%JAVA_EXE%" goto init |
||||||
|
|
||||||
|
echo. |
||||||
|
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% |
||||||
|
echo. |
||||||
|
echo Please set the JAVA_HOME variable in your environment to match the |
||||||
|
echo location of your Java installation. |
||||||
|
|
||||||
|
goto fail |
||||||
|
|
||||||
|
:init |
||||||
|
@rem Get command-line arguments, handling Windowz variants |
||||||
|
|
||||||
|
if not "%OS%" == "Windows_NT" goto win9xME_args |
||||||
|
if "%@eval[2+2]" == "4" goto 4NT_args |
||||||
|
|
||||||
|
:win9xME_args |
||||||
|
@rem Slurp the command line arguments. |
||||||
|
set CMD_LINE_ARGS= |
||||||
|
set _SKIP=2 |
||||||
|
|
||||||
|
:win9xME_args_slurp |
||||||
|
if "x%~1" == "x" goto execute |
||||||
|
|
||||||
|
set CMD_LINE_ARGS=%* |
||||||
|
goto execute |
||||||
|
|
||||||
|
:4NT_args |
||||||
|
@rem Get arguments from the 4NT Shell from JP Software |
||||||
|
set CMD_LINE_ARGS=%$ |
||||||
|
|
||||||
|
:execute |
||||||
|
@rem Setup the command line |
||||||
|
|
||||||
|
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar |
||||||
|
|
||||||
|
@rem Execute Gradle |
||||||
|
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% |
||||||
|
|
||||||
|
:end |
||||||
|
@rem End local scope for the variables with windows NT shell |
||||||
|
if "%ERRORLEVEL%"=="0" goto mainEnd |
||||||
|
|
||||||
|
:fail |
||||||
|
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of |
||||||
|
rem the _cmd.exe /c_ return code! |
||||||
|
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 |
||||||
|
exit /b 1 |
||||||
|
|
||||||
|
:mainEnd |
||||||
|
if "%OS%"=="Windows_NT" endlocal |
||||||
|
|
||||||
|
:omega |
@ -0,0 +1,36 @@ |
|||||||
|
ECLIPSE ANDROID PROJECT IMPORT SUMMARY |
||||||
|
====================================== |
||||||
|
|
||||||
|
Ignored Files: |
||||||
|
-------------- |
||||||
|
The following files were *not* copied into the new Gradle project; you |
||||||
|
should evaluate whether these are still needed in your project and if |
||||||
|
so manually move them: |
||||||
|
|
||||||
|
* .gitignore |
||||||
|
* proguard-project.txt |
||||||
|
|
||||||
|
Moved Files: |
||||||
|
------------ |
||||||
|
Android Gradle projects use a different directory structure than ADT |
||||||
|
Eclipse projects. Here's how the projects were restructured: |
||||||
|
|
||||||
|
* AndroidManifest.xml => tableFixHeaders\src\main\AndroidManifest.xml |
||||||
|
* assets\ => tableFixHeaders\src\main\assets |
||||||
|
* res\ => tableFixHeaders\src\main\res\ |
||||||
|
* src\ => tableFixHeaders\src\main\java\ |
||||||
|
|
||||||
|
Next Steps: |
||||||
|
----------- |
||||||
|
You can now build the project. The Gradle project needs network |
||||||
|
connectivity to download dependencies. |
||||||
|
|
||||||
|
Bugs: |
||||||
|
----- |
||||||
|
If for some reason your project does not build, and you determine that |
||||||
|
it is due to a bug or limitation of the Eclipse to Gradle importer, |
||||||
|
please file a bug at http://b.android.com with category |
||||||
|
Component-Tools. |
||||||
|
|
||||||
|
(This import summary is for your information only, and can be deleted |
||||||
|
after import once you are satisfied with the results.) |
@ -0,0 +1,145 @@ |
|||||||
|
include ':app' |
||||||
|
|
||||||
|
|
||||||
|
def properties = properties(rootProject) |
||||||
|
def bcDir = properties.getProperty('bingce.dir') |
||||||
|
|
||||||
|
if (bcDir == null || bcDir.empty) throw new RuntimeException("需要在local.properties中设置bingce.dir路径") |
||||||
|
|
||||||
|
// 定义一个方法来获取指定目录下的当前 Git 分支 |
||||||
|
def listGitBranches(File gitDirectory) { |
||||||
|
def command = ['git', 'symbolic-ref', '--short', '-q', 'HEAD'] |
||||||
|
def processBuilder = new ProcessBuilder(command) |
||||||
|
|
||||||
|
// 设置工作目录为指定的 Git 仓库目录 |
||||||
|
processBuilder.directory(gitDirectory) |
||||||
|
|
||||||
|
// 捕获命令输出 |
||||||
|
def process = processBuilder.start() |
||||||
|
def reader = new BufferedReader(new InputStreamReader(process.inputStream)) |
||||||
|
def branches = [] |
||||||
|
String line |
||||||
|
while ((line = reader.readLine()) != null) { |
||||||
|
return line |
||||||
|
} |
||||||
|
|
||||||
|
// 检查进程是否成功执行 |
||||||
|
def exitCode = process.waitFor() |
||||||
|
if (exitCode != 0) { |
||||||
|
// 如果命令执行失败,可以抛出异常或做其他处理 |
||||||
|
throw new RuntimeException("Git command failed with exit code ${exitCode}") |
||||||
|
} |
||||||
|
|
||||||
|
return "" |
||||||
|
} |
||||||
|
|
||||||
|
// 例如,要检测指定目录的 Git 分支,可以调用 getGitBranch 方法 |
||||||
|
//def gitDirectory = new File(bcDir) |
||||||
|
//def currentBranch = listGitBranches(gitDirectory) |
||||||
|
// |
||||||
|
//if (currentBranch != "master_alpha_tj_offline") throw new RuntimeException("需要将${bcDir}仓库切换到master_alpha_tj_offline分支") |
||||||
|
|
||||||
|
|
||||||
|
static def properties(ProjectDescriptor rootProject) { |
||||||
|
Properties properties = new Properties() |
||||||
|
properties.load(new File(rootProject.projectDir, 'local.properties').newDataInputStream()) |
||||||
|
return properties |
||||||
|
} |
||||||
|
|
||||||
|
static def bingceModule(ProjectDescriptor rootProject, String name) { |
||||||
|
def properties = properties(rootProject) |
||||||
|
def useAAR = properties.getProperty('useAAR') |
||||||
|
def useBaseAAR = properties.getProperty('useBaseAAR') |
||||||
|
|
||||||
|
if ("base" == name) { |
||||||
|
if ("false" == useBaseAAR && "false" == useAAR) { |
||||||
|
return ":bingce:base" |
||||||
|
} else { |
||||||
|
return ":aar:base" |
||||||
|
} |
||||||
|
} |
||||||
|
if ("false" == useAAR) { |
||||||
|
return ":bingce:$name" |
||||||
|
} else { |
||||||
|
return ":aar:$name" |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
static def openSourceModule(ProjectDescriptor rootProject, String name) { |
||||||
|
def properties = properties(rootProject) |
||||||
|
def useAAR = properties.getProperty('useAAR') |
||||||
|
|
||||||
|
if ("false" == useAAR) { |
||||||
|
return ":opensource:$name" |
||||||
|
} else { |
||||||
|
return ":aar:$name" |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
static def includeBingceModule(Settings settings, ProjectDescriptor rootProject, String bcDir, String name) { |
||||||
|
def moduleName = bingceModule(rootProject, name) |
||||||
|
settings.include(moduleName) |
||||||
|
if (moduleName == ":aar:base") return // base 模块不需要设置 projectDir |
||||||
|
settings.project(moduleName).projectDir = new File(bcDir, "bingce/$name") |
||||||
|
} |
||||||
|
|
||||||
|
static def includeOpenSourceModule(Settings settings, ProjectDescriptor rootProject, String bcDir, String name) { |
||||||
|
settings.include(openSourceModule(rootProject, name)) |
||||||
|
settings.project(openSourceModule(rootProject, name)).projectDir = new File(bcDir, "opensource/$name") |
||||||
|
} |
||||||
|
|
||||||
|
static def includeSdkModule(Settings settings, ProjectDescriptor rootProject, String bcDir, String name) { |
||||||
|
def moduleName = ":sdk:$name" |
||||||
|
settings.include(moduleName) |
||||||
|
settings.project(moduleName).projectDir = new File(bcDir, "sdk/$name") |
||||||
|
} |
||||||
|
|
||||||
|
includeBingceModule(settings, rootProject, bcDir, "base") |
||||||
|
includeBingceModule(settings, rootProject, bcDir, "base-java") |
||||||
|
includeBingceModule(settings, rootProject, bcDir, "appBase") |
||||||
|
includeBingceModule(settings, rootProject, bcDir, "leancloud") |
||||||
|
includeBingceModule(settings, rootProject, bcDir, "repository") |
||||||
|
includeBingceModule(settings, rootProject, bcDir, "coordlib") |
||||||
|
includeBingceModule(settings, rootProject, bcDir, "device") |
||||||
|
includeBingceModule(settings, rootProject, bcDir, "device-ui") |
||||||
|
includeBingceModule(settings, rootProject, bcDir, "utils") |
||||||
|
includeBingceModule(settings, rootProject, bcDir, "totalstation") |
||||||
|
includeBingceModule(settings, rootProject, bcDir, "rtk") |
||||||
|
includeBingceModule(settings, rootProject, bcDir, "level") |
||||||
|
includeBingceModule(settings, rootProject, bcDir, "bc-dialog") |
||||||
|
includeBingceModule(settings, rootProject, bcDir, "DialogXInterface") |
||||||
|
includeBingceModule(settings, rootProject, bcDir, "bcdialog-style") |
||||||
|
|
||||||
|
|
||||||
|
includeOpenSourceModule(settings, rootProject, bcDir, "hellocharts") |
||||||
|
includeOpenSourceModule(settings, rootProject, bcDir, "gson") |
||||||
|
includeOpenSourceModule(settings, rootProject, bcDir, "fastjson") |
||||||
|
includeOpenSourceModule(settings, rootProject, bcDir, "javadxf") |
||||||
|
includeOpenSourceModule(settings, rootProject, bcDir, "utilcode") |
||||||
|
includeOpenSourceModule(settings, rootProject, bcDir, "colorful") |
||||||
|
includeOpenSourceModule(settings, rootProject, bcDir, "dragExpandGrid") |
||||||
|
includeOpenSourceModule(settings, rootProject, bcDir, "lsettingitemlibrary") |
||||||
|
includeOpenSourceModule(settings, rootProject, bcDir, "spinkit") |
||||||
|
includeOpenSourceModule(settings, rootProject, bcDir, "splashview") |
||||||
|
includeOpenSourceModule(settings, rootProject, bcDir, "poishadowjar") |
||||||
|
includeOpenSourceModule(settings, rootProject, bcDir, "safFilePicker") |
||||||
|
includeOpenSourceModule(settings, rootProject, bcDir, "exFilePicker") |
||||||
|
includeOpenSourceModule(settings, rootProject, bcDir, "agentweb") |
||||||
|
includeOpenSourceModule(settings, rootProject, bcDir, "fastBle") |
||||||
|
includeOpenSourceModule(settings, rootProject, bcDir, "socket-core") |
||||||
|
includeOpenSourceModule(settings, rootProject, bcDir, "socket-common-interface") |
||||||
|
includeOpenSourceModule(settings, rootProject, bcDir, "socket-client") |
||||||
|
includeOpenSourceModule(settings, rootProject, bcDir, "socket-usbSerialForAndroid") |
||||||
|
includeOpenSourceModule(settings, rootProject, bcDir, "usbSerialForAndroid") |
||||||
|
includeOpenSourceModule(settings, rootProject, bcDir, "menuItemBadge") |
||||||
|
includeOpenSourceModule(settings, rootProject, bcDir, "triangle-library") |
||||||
|
|
||||||
|
includeSdkModule(settings, rootProject, bcDir, "jama") |
||||||
|
includeSdkModule(settings, rootProject, bcDir, "libqxwz-sdkcore") |
||||||
|
includeSdkModule(settings, rootProject, bcDir, "libsixents-sdkcore") |
||||||
|
includeSdkModule(settings, rootProject, bcDir, "cmccSdk") |
||||||
|
includeSdkModule(settings, rootProject, bcDir, "luowangSdk") |
||||||
|
includeSdkModule(settings, rootProject, bcDir, "ruide-extension-sdk") |
||||||
|
includeSdkModule(settings, rootProject, bcDir, "huaceRtkSdk") |
||||||
|
includeSdkModule(settings, rootProject, bcDir, "southGnssSdk") |
||||||
|
includeSdkModule(settings, rootProject, bcDir, "tensorFlowTTS") |
Loading…
Reference in new issue