Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
ShenghuoquanBusiness
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
bp
ShenghuoquanBusiness
Commits
812ba198
Commit
812ba198
authored
Jul 29, 2021
by
shiyl
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增运行环境切换功能
parent
3ab5f347
Changes
19
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
303 additions
and
101 deletions
+303
-101
build.gradle
CommonLib/BCommon/build.gradle
+0
-13
AppConfig.kt
...on/src/main/java/com/yidian/bcommon/constant/AppConfig.kt
+6
-7
RunConfig.kt
...on/src/main/java/com/yidian/bcommon/constant/RunConfig.kt
+71
-0
ViewExt.kt
...on/src/main/java/com/yidian/bcommon/extensions/ViewExt.kt
+23
-0
CommonDataSource.kt
...src/main/java/com/yidian/bcommon/http/CommonDataSource.kt
+2
-1
HttpParamsUtils.kt
.../src/main/java/com/yidian/bcommon/http/HttpParamsUtils.kt
+4
-3
UMConfigUtils.kt
...n/src/main/java/com/yidian/bcommon/utils/UMConfigUtils.kt
+12
-11
BNAHttpReqService.kt
...huoquan/bgeneralbusiness/service/net/BNAHttpReqService.kt
+2
-1
MerchantCenterActivity.kt
...uoquan/bmanagercenter/ui/center/MerchantCenterActivity.kt
+1
-1
AndroidManifest.xml
Components/BRoot/src/main/AndroidManifest.xml
+3
-0
BaseInitConfig.kt
...main/java/com/yidian/shenghuoquan/broot/BaseInitConfig.kt
+23
-5
EncryptService.kt
...a/com/yidian/shenghuoquan/broot/service/EncryptService.kt
+0
-3
FlashActivity.kt
...in/java/com/yidian/shenghuoquan/broot/ui/FlashActivity.kt
+7
-0
TestActivity.kt
...ain/java/com/yidian/shenghuoquan/broot/ui/TestActivity.kt
+63
-0
TestViewModel.kt
...va/com/yidian/shenghuoquan/broot/ui/test/TestViewModel.kt
+8
-0
root_activity_test.xml
Components/BRoot/src/main/res/layout/root_activity_test.xml
+78
-0
build.gradle
app/build.gradle
+0
-2
BusinessApplication.kt
...ain/java/com/shenghuoquan/business/BusinessApplication.kt
+0
-18
config.gradle
config/config.gradle
+0
-36
No files found.
CommonLib/BCommon/build.gradle
View file @
812ba198
...
...
@@ -18,15 +18,6 @@ android {
targetSdkVersion
build_versions
.
targetSdkVersion
versionCode
rootProject
.
ext
.
android
.
versionCode
versionName
rootProject
.
ext
.
android
.
versionName
buildConfigField
(
"boolean"
,
"IS_ENCRYPT_DEBUG_KEY"
,
rootProject
.
ext
.
android
.
isEncryptDebugKey
)
buildConfigField
(
"boolean"
,
"IS_UPGRADE_ONLINE"
,
rootProject
.
ext
.
android
.
isUpgradeOnline
)
buildConfigField
(
"String"
,
"SERVICE_VERSION"
,
rootProject
.
ext
.
android
.
serviceVersion
)
buildConfigField
(
"boolean"
,
"IS_ENCRYPT"
,
rootProject
.
ext
.
android
.
isEncrypt
)
buildConfigField
(
"boolean"
,
"IS_UMENG_RELEASE"
,
rootProject
.
ext
.
android
.
isUmengRelease
)
buildConfigField
(
"boolean"
,
"IS_ENCRYPT_DEBUG_KEY"
,
rootProject
.
ext
.
android
.
isEncryptDebugKey
)
buildConfigField
(
"boolean"
,
"IS_UPGRADE_ONLINE"
,
rootProject
.
ext
.
android
.
isUpgradeOnline
)
buildConfigField
(
"int"
,
"TOWER_API_ENV"
,
rootProject
.
ext
.
android
.
TowerApiEnv
)
buildConfigField
(
"int"
,
"XINSIGHT_ENV"
,
rootProject
.
ext
.
android
.
XInsightEnv
)
manifestPlaceholders
=
[
qqappid:
"101923771"
]
...
...
@@ -37,8 +28,6 @@ android {
buildTypes
{
debug
{
buildConfigField
"boolean"
,
"ENV_DEBUG"
,
"true"
buildConfigField
(
"String"
,
"API_URL"
,
rootProject
.
ext
.
buildParams
.
debug
.
API_URL
)
buildConfigField
(
"String"
,
"PROVIDER_NAME"
,
'\"'
+
rootProject
.
ext
.
android
.
applicationId
+
".debug.fileprovider"
+
'\"'
)
manifestPlaceholders
=
[
app_name
:
"商家版测试"
,
...
...
@@ -47,8 +36,6 @@ android {
]
}
release
{
buildConfigField
"boolean"
,
"ENV_DEBUG"
,
"false"
buildConfigField
(
"String"
,
"API_URL"
,
rootProject
.
ext
.
buildParams
.
release
.
API_URL
)
buildConfigField
(
"String"
,
"PROVIDER_NAME"
,
'\"'
+
rootProject
.
ext
.
android
.
applicationId
+
".fileprovider"
+
'\"'
)
manifestPlaceholders
=
[
app_name
:
"生活圈商家版"
,
...
...
CommonLib/BCommon/src/main/java/com/yidian/bcommon/constant/AppConfig.kt
View file @
812ba198
...
...
@@ -4,12 +4,15 @@ import com.yidian.bcommon.BuildConfig
/**
* 应用的配置信息
* 应用的配置信息
(常量配置)
*/
class
AppConfig
{
companion
object
{
// 是否开启加密
const
val
IS_ENCRYPT
=
BuildConfig
.
IS_ENCRYPT
// 域名
const
val
DEV_DOMAIN
=
"http://bp-dev.go2yd.com"
const
val
TEST_DOMAIN
=
"http://bp-test.go2yd.com"
const
val
PROD_DOMAIN
=
"https://bp.go2yd.com"
// 业务线
const
val
appIdMerchantB
=
"merchant-b"
...
...
@@ -18,9 +21,6 @@ class AppConfig {
// 客户端版本号
const
val
cv
=
BuildConfig
.
VERSION_NAME
// 服务端版本号
const
val
version
=
BuildConfig
.
SERVICE_VERSION
// 分发
const
val
distribution
=
"official"
...
...
@@ -35,7 +35,6 @@ class AppConfig {
// TowerPro 通用配置模块
const
val
TowerApiEnvTest
=
0
// 测试环境
const
val
TowerApiEnvPro
=
2
// 外网-正式环境
const
val
TowerApiEnv
=
BuildConfig
.
TOWER_API_ENV
const
val
TowerApiOS
=
"2"
// 0:ios 1:安卓 2:全部
const
val
TowerApiKeyTagMerchantB
=
"function-config"
const
val
TowerApiKeyTagMerchantC
=
"function-config-c"
...
...
CommonLib/BCommon/src/main/java/com/yidian/bcommon/constant/RunConfig.kt
0 → 100644
View file @
812ba198
package
com.yidian.bcommon.constant
/**
* 运行配置,提供切换运行环境的能力(变量配置)
*/
object
RunConfig
{
enum
class
RunEnvironment
{
DEV
,
// 开发环境
TEST
,
// 测试环境
PROD
// 生产环境
}
// 以下配置默认为开发环境,切记以下变量只能在此类中进行赋值,其他均为适用方
var
API_URL
=
AppConfig
.
DEV_DOMAIN
// 服务域名
var
IS_ENCRYPT
:
Boolean
=
false
// true : 开启加密
var
IS_ENCRYPT_DEBUG_KEY
=
true
// false: 使用正式加密key
var
IS_UMENG_RELEASE
=
false
// true : 友盟生产
var
IS_UPGRADE_ONLINE
=
false
// true : 版本升级生产配置
var
SERVICE_VERSION
=
"000100"
// 后台版本,上线前需要和服务端确认并更新
var
TOWER_API_ENV
=
0
// Tower Api环境 0:测试环境 1:内网-正式环境 2:外网-正式环境 3:内网外网-正式环境
var
XINSIGHT_ENV
=
0
// 慧眼SDK环境 0:开发环境 1:测试环境 2:预生产环境 3:生产环境
/**
* 切换环境
*/
fun
switchEnvironment
(
runEnvironment
:
RunEnvironment
)
{
when
(
runEnvironment
)
{
RunEnvironment
.
DEV
->
{
API_URL
=
AppConfig
.
DEV_DOMAIN
IS_ENCRYPT
=
false
IS_ENCRYPT_DEBUG_KEY
=
true
IS_UMENG_RELEASE
=
false
IS_UPGRADE_ONLINE
=
false
TOWER_API_ENV
=
0
XINSIGHT_ENV
=
0
}
RunEnvironment
.
TEST
->
{
API_URL
=
AppConfig
.
TEST_DOMAIN
IS_ENCRYPT
=
true
IS_ENCRYPT_DEBUG_KEY
=
true
IS_UMENG_RELEASE
=
false
IS_UPGRADE_ONLINE
=
false
TOWER_API_ENV
=
0
XINSIGHT_ENV
=
1
}
RunEnvironment
.
PROD
->
{
API_URL
=
AppConfig
.
PROD_DOMAIN
IS_ENCRYPT
=
true
IS_ENCRYPT_DEBUG_KEY
=
false
IS_UMENG_RELEASE
=
true
IS_UPGRADE_ONLINE
=
true
TOWER_API_ENV
=
2
XINSIGHT_ENV
=
3
}
}
}
/**
* 判断当前环境
*/
fun
currentEnvironment
():
RunEnvironment
{
return
when
(
API_URL
)
{
AppConfig
.
DEV_DOMAIN
->
RunEnvironment
.
DEV
AppConfig
.
TEST_DOMAIN
->
RunEnvironment
.
TEST
AppConfig
.
PROD_DOMAIN
->
RunEnvironment
.
PROD
else
->
RunEnvironment
.
DEV
}
}
}
CommonLib/BCommon/src/main/java/com/yidian/bcommon/extensions/ViewExt.kt
View file @
812ba198
...
...
@@ -5,6 +5,7 @@ import android.view.View
import
android.widget.TextView
import
androidx.annotation.ColorRes
import
androidx.core.content.ContextCompat
import
java.util.*
/**
* 按钮点击防抖
...
...
@@ -22,6 +23,28 @@ fun View?.clickAntiShake(intervalMillis: Long = 300, listener: (View) -> Unit) {
}
}
/**
* 指定时间内连续点击触发相应操作
*/
fun
View
?.
continuousClick
(
minimumClicks
:
Int
=
6
,
listener
:
(
View
)
->
Unit
)
{
var
time
:
Long
=
0
//上次点击时间
var
count
=
1
//当前点击次数
this
?.
setOnClickListener
{
val
timeNew
=
Date
().
time
if
((
timeNew
-
time
)
<
2000
)
{
//连续点击间隔
count
+=
1
}
else
{
count
=
1
}
time
=
timeNew
if
(
count
>=
minimumClicks
)
{
//点击次数
listener
.
invoke
(
it
)
//触发后五连点之后需要做的事情
}
}
}
fun
View
.
hide
()
{
this
.
visibility
=
View
.
GONE
}
...
...
CommonLib/BCommon/src/main/java/com/yidian/bcommon/http/CommonDataSource.kt
View file @
812ba198
...
...
@@ -4,6 +4,7 @@ import com.google.gson.reflect.TypeToken
import
com.yidian.bcommon.constant.AppConfig
import
com.yidian.bcommon.BuildConfig
import
com.yidian.bcommon.app.YdBaseApplication
import
com.yidian.bcommon.constant.RunConfig
import
com.yidian.bcommon.http.bean.CommitFeedbackBean
import
com.yidian.bcommon.http.bean.GetCommonConfigBean
import
com.yidian.bcommon.http.bean.GetKSYunObjectIdBean
...
...
@@ -23,7 +24,7 @@ object CommonDataSource {
// Tower-Api 域名
private
val
domainTowerApi
by
lazy
{
if
(
Build
Config
.
TOWER_API_ENV
==
AppConfig
.
TowerApiEnvTest
)
{
if
(
Run
Config
.
TOWER_API_ENV
==
AppConfig
.
TowerApiEnvTest
)
{
CommonService
.
SCHEME_HTTP
+
CommonService
.
DOMAIN_TOWER_API_TEST
}
else
{
CommonService
.
SCHEME_HTTPS
+
CommonService
.
DOMAIN_TOWER_API_PRO
...
...
CommonLib/BCommon/src/main/java/com/yidian/bcommon/http/HttpParamsUtils.kt
View file @
812ba198
...
...
@@ -4,6 +4,7 @@ import com.google.gson.Gson
import
com.google.gson.reflect.TypeToken
import
com.yidian.bcommon.app.YdBaseApplication
import
com.yidian.bcommon.constant.AppConfig
import
com.yidian.bcommon.constant.RunConfig
import
com.yidian.bcommon.sdk.BCommonManager
import
com.yidian.bcommon.utils.NetWorkUtils
import
com.yidian.yac.ftdevicefinger.core.FtDeviceFingerManager
...
...
@@ -19,7 +20,7 @@ class HttpParamsUtils {
val
paramsMap
=
hashMapOf
(
"appid"
to
BCommonManager
.
getAppId
(),
"cv"
to
AppConfig
.
cv
,
"version"
to
AppConfig
.
version
,
"version"
to
RunConfig
.
SERVICE_VERSION
,
"distribution"
to
AppConfig
.
distribution
,
"net"
to
NetWorkUtils
.
getNetWorkType
(
YdBaseApplication
.
context
),
"platform"
to
AppConfig
.
platform
,
...
...
@@ -31,7 +32,7 @@ class HttpParamsUtils {
}
fun
getPrivateParamsMap
(
paramsMap
:
HashMap
<
String
,
String
?
>,
timeStamp
:
Long
):
HashMap
<
String
,
String
?
>
{
return
if
(
App
Config
.
IS_ENCRYPT
)
{
return
if
(
Run
Config
.
IS_ENCRYPT
)
{
paramsMap
[
"secret"
]
=
getSignString
(
getRequestId
(
timeStamp
),
timeStamp
)
paramsMap
[
"ts"
]
=
timeStamp
.
toString
()
// C端身份请求加uid
...
...
@@ -51,7 +52,7 @@ class HttpParamsUtils {
decodeResult
.
reason
=
res
.
reason
decodeResult
.
status
=
res
.
status
if
(
rsaResult
!=
null
)
{
if
(
App
Config
.
IS_ENCRYPT
)
{
if
(
Run
Config
.
IS_ENCRYPT
)
{
val
result
=
BCommonManager
.
getEncryptIml
().
rsaDecrypt
(
rsaResult
as
String
)
Timber
.
tag
(
BCommonManager
.
TAG_HTTP
).
d
(
"response result: $result"
)
val
decryptResult
=
gson
.
fromJson
<
HttpDecryptResult
<
T
>>(
result
,
object
:
TypeToken
<
HttpDecryptResult
<
T
>>()
{}.
type
)
...
...
CommonLib/BCommon/src/main/java/com/yidian/bcommon/utils/UMConfigUtils.kt
View file @
812ba198
...
...
@@ -7,6 +7,7 @@ import com.umeng.commonsdk.UMConfigure
import
com.umeng.message.entity.UMessage
import
com.yidian.bcommon.constant.AppConfig
import
com.yidian.bcommon.BuildConfig
import
com.yidian.bcommon.constant.RunConfig
import
com.yidian.bcommon.constant.XRouterPathConstants
import
com.yidian.xpage.XPageManager
...
...
@@ -17,23 +18,23 @@ import com.yidian.xpage.XPageManager
class
UMConfigUtils
{
companion
object
{
/**
* 预初始化
*/
fun
preInit
(
context
:
Context
)
{
if
(
Build
Config
.
IS_UMENG_RELEASE
)
{
UMConfigure
.
preInit
(
context
,
AppConfig
.
UMAppKey
,
AppConfig
.
UMChannel
)
}
else
{
UMConfigure
.
preInit
(
context
,
AppConfig
.
UMAppTestKey
,
AppConfig
.
UMTestChannel
)
}
}
//
/**
//
* 预初始化
//
*/
//
fun preInit(context: Context) {
// if (Run
Config.IS_UMENG_RELEASE) {
//
UMConfigure.preInit(context, AppConfig.UMAppKey, AppConfig.UMChannel)
//
} else {
//
UMConfigure.preInit(context, AppConfig.UMAppTestKey, AppConfig.UMTestChannel)
//
}
//
}
/**
* 正式初始化
*/
fun
init
(
context
:
Context
)
{
//release环境上报错误信息,参数有:上下文、APPkey、渠道号、设备类型、推送密钥
if
(
Build
Config
.
IS_UMENG_RELEASE
)
{
if
(
Run
Config
.
IS_UMENG_RELEASE
)
{
UMConfigure
.
init
(
context
,
AppConfig
.
UMAppKey
,
AppConfig
.
UMChannel
,
UMConfigure
.
DEVICE_TYPE_PHONE
,
AppConfig
.
UMPushSecret
)
}
else
{
UMConfigure
.
init
(
...
...
Components/BGeneralBusiness/src/main/java/com/yidian/shenghuoquan/bgeneralbusiness/service/net/BNAHttpReqService.kt
View file @
812ba198
...
...
@@ -2,6 +2,7 @@ package com.yidian.shenghuoquan.bgeneralbusiness.service.net
import
com.google.gson.Gson
import
com.yidian.bcommon.BuildConfig
import
com.yidian.bcommon.constant.RunConfig
import
com.yidian.bcommon.http.HttpResult
import
com.yidian.shenghuoquan.bgeneralbusiness.service.net.callback.IBNARequestCallBack
import
com.yidian.xarc.xrouter.ResultResolver
...
...
@@ -27,7 +28,7 @@ class BNAHttpReqService : ZapService() {
//options
val
requestOptions
=
options
as
JSONObject
val
method
=
requestOptions
.
optString
(
"method"
,
"POST"
)
val
host
=
requestOptions
.
optString
(
"host"
,
Build
Config
.
API_URL
)
val
host
=
requestOptions
.
optString
(
"host"
,
Run
Config
.
API_URL
)
val
url
=
host
+
apiPath
val
paramsMap
:
HashMap
<
String
,
String
?>
=
parseParams
(
requestParams
)
...
...
Components/BManagerCenter/src/main/java/com/yidian/shenghuoquan/bmanagercenter/ui/center/MerchantCenterActivity.kt
View file @
812ba198
...
...
@@ -559,7 +559,7 @@ class MerchantCenterActivity : BaseActivity<ActivityMerchantCenterBinding>(), Me
this
,
hashMapOf
(
"appid"
to
BCommonManager
.
getAppId
(),
"env"
to
AppConfig
.
TowerApiEnv
.
toString
(),
"env"
to
RunConfig
.
TOWER_API_ENV
.
toString
(),
"version"
to
AppConfig
.
TowerApiVersion
,
"os"
to
AppConfig
.
TowerApiOS
,
"keytag"
to
BCommonManager
.
getTowerProKeyTag
()
...
...
Components/BRoot/src/main/AndroidManifest.xml
View file @
812ba198
...
...
@@ -13,6 +13,9 @@
<category
android:name=
"android.intent.category.LAUNCHER"
/>
</intent-filter>
</activity>
<activity
android:name=
".ui.TestActivity"
android:launchMode=
"singleTop"
/>
</application>
</manifest>
\ No newline at end of file
Components/BRoot/src/main/java/com/yidian/shenghuoquan/broot/BaseInitConfig.kt
View file @
812ba198
...
...
@@ -7,12 +7,16 @@ import com.scwang.smart.refresh.layout.SmartRefreshLayout
import
com.scwang.smart.refresh.layout.constant.SpinnerStyle
import
com.yidian.bcommon.constant.AppConfig
import
com.yidian.bcommon.BuildConfig
import
com.yidian.bcommon.constant.RunConfig
import
com.yidian.bcommon.http.ApiSaveCookiesInterceptor
import
com.yidian.bcommon.http.ApiSetCookiesInterceptor
import
com.yidian.bcommon.utils.UMConfigUtils
import
com.yidian.framework.mobile.insight.config.ServerUrlConfig
import
com.yidian.framework.mobile.insight.config.XDiamondProvide
import
com.yidian.framework.mobile.insight.manage.XInsight
import
com.yidian.framework.mobile.insight.manage.XInsightConfig
import
com.yidian.framework.mobile.xdiamond.SecretUtil
import
com.yidian.http.ServiceFactory
import
com.yidian.news.util.ProcessUtil
import
com.yidian.xarc.xbase.utils.XLogger
import
com.yidian.xarc.xbrid.*
...
...
@@ -36,6 +40,7 @@ object BaseInitConfig {
// 初始化友盟
UMConfigUtils
.
init
(
context
)
if
(
ProcessUtil
.
isMainProcess
(
context
))
{
initHttp
()
FtDeviceFingerManager
.
init
(
context
)
initXBridManager
(
context
)
// 初始化App升级
...
...
@@ -47,6 +52,19 @@ object BaseInitConfig {
}
}
private
fun
initHttp
()
{
// val header = HashMap<String, String>()
// header["Content-Type"] = "application/json"
// header["charset"] = "UTF-8"
// ServiceFactory.getInstance().addInterceptor(HttpInterceptor(header))
// ServiceFactory.getInstance().init(true, URLs.BASE_URL, 10, 10)
ServiceFactory
.
getInstance
().
init
(
true
,
RunConfig
.
API_URL
,
10
,
10
)
ServiceFactory
.
getInstance
().
addInterceptor
(
ApiSaveCookiesInterceptor
())
ServiceFactory
.
getInstance
().
addInterceptor
(
ApiSetCookiesInterceptor
())
// 初始化磐石SDK
SecretUtil
.
init
(
RunConfig
.
IS_ENCRYPT_DEBUG_KEY
,
BuildConfig
.
DEBUG
)
}
/**
* 初始化XBrid
*
...
...
@@ -57,7 +75,7 @@ object BaseInitConfig {
private
fun
initXBridManager
(
context
:
Context
)
{
XBridManager
.
init
(
XBridApp
(
context
)
{
online
=
Build
Config
.
IS_UPGRADE_ONLINE
// 线上、线下
online
=
Run
Config
.
IS_UPGRADE_ONLINE
// 线上、线下
assetRoot
=
"www/src"
//对应assets目录下存放xbrid资源对应的目录名
appId
=
context
.
packageName
//当前应用包名
platformId
=
AppConfig
.
TowerProXBridUpgradePlatformId
//需要去平台申请
...
...
@@ -120,7 +138,7 @@ object BaseInitConfig {
val
logger
=
XLogger
(
"appUpgrade"
)
logger
.
debugOn
(
BuildConfig
.
DEBUG
)
YDAppUpdateManager
.
init
(
PmUpdateApp
(
context
)
{
online
=
Build
Config
.
IS_UPGRADE_ONLINE
// 线上true、线下false
online
=
Run
Config
.
IS_UPGRADE_ONLINE
// 线上true、线下false
platformId
=
AppConfig
.
TowerProAppUpgradePlatformId
// 平台Id
platform
=
AppConfig
.
TowerProPlatform
// ios/Android
appId
=
context
.
packageName
// 应用包名
...
...
@@ -139,9 +157,9 @@ object BaseInitConfig {
config
.
cv
=
AppConfig
.
cv
config
.
device_finger
=
FtDeviceFingerManager
.
getDeviceFinger
()
config
.
distribution
=
AppConfig
.
distribution
config
.
isEncryption
=
App
Config
.
IS_ENCRYPT
config
.
version
=
AppConfig
.
version
config
.
serverUrlConfig
=
when
(
Build
Config
.
XINSIGHT_ENV
)
{
config
.
isEncryption
=
Run
Config
.
IS_ENCRYPT
config
.
version
=
RunConfig
.
SERVICE_VERSION
config
.
serverUrlConfig
=
when
(
Run
Config
.
XINSIGHT_ENV
)
{
AppConfig
.
XInsightEnvTest
->
ServerUrlConfig
.
TEST_SERVER_URL
AppConfig
.
XInsightEnvPre
->
ServerUrlConfig
.
PRE_SERVER_URL
AppConfig
.
XInsightEnvPro
->
ServerUrlConfig
.
PRO_SERVER_URL
...
...
Components/BRoot/src/main/java/com/yidian/shenghuoquan/broot/service/EncryptService.kt
View file @
812ba198
package
com.yidian.shenghuoquan.broot.service
import
com.yidian.bcommon.BuildConfig
import
com.yidian.bcommon.sdk.BCommonManager
import
com.yidian.bcommon.sdk.IEncryptService
import
com.yidian.bcommon.services.ZapServiceActionConstants
...
...
@@ -18,8 +17,6 @@ import org.json.JSONObject
class
EncryptService
:
ZapService
(),
IEncryptService
{
init
{
// 初始化磐石SDK
SecretUtil
.
init
(
BuildConfig
.
IS_ENCRYPT_DEBUG_KEY
,
BuildConfig
.
DEBUG
)
BCommonManager
.
setEncryptIml
(
this
)
}
...
...
Components/BRoot/src/main/java/com/yidian/shenghuoquan/broot/ui/FlashActivity.kt
View file @
812ba198
...
...
@@ -16,9 +16,11 @@ import com.yidian.bcommon.base.BaseActivity
import
com.yidian.bcommon.constant.AppConfig
import
com.yidian.bcommon.constant.HawkConfig
import
com.yidian.bcommon.constant.XRouterPathConstants
import
com.yidian.bcommon.extensions.continuousClick
import
com.yidian.bcommon.services.AppUpgradeService
import
com.yidian.bcommon.services.ZapServiceActionConstants
import
com.yidian.bcommon.services.ZapServiceNameConstants
import
com.yidian.bcommon.utils.ToastUtils
import
com.yidian.bcommon.webview.PublicWebViewActivity
import
com.yidian.shenghuoquan.broot.BaseInitConfig
import
com.yidian.shenghuoquan.broot.R
...
...
@@ -113,6 +115,11 @@ class FlashActivity : BaseActivity<ActivityFlashBinding>() {
Hawk
.
put
(
HawkConfig
.
ProtocolIsAgree
,
true
)
toLoginOrHome
()
}
// 内容连续点击多次,触发环境切换页面
tvContent
.
continuousClick
{
ToastUtils
.
showShortSafe
(
"进行环境切换"
)
startActivity
(
Intent
(
this
,
TestActivity
::
class
.
java
))
}
builder
.
show
()
}
...
...
Components/BRoot/src/main/java/com/yidian/shenghuoquan/broot/ui/TestActivity.kt
0 → 100644
View file @
812ba198
package
com.yidian.shenghuoquan.broot.ui
import
android.view.View
import
android.widget.RadioButton
import
androidx.activity.viewModels
import
com.yidian.bcommon.constant.RunConfig
import
com.yidian.bcommon.mvvm.BaseMvvmActivity
import
com.yidian.bcommon.utils.ToastUtils
import
com.yidian.shenghuoquan.broot.R
import
com.yidian.shenghuoquan.broot.databinding.RootActivityTestBinding
import
com.yidian.shenghuoquan.broot.ui.test.TestViewModel
/**
* 环境切换
*/
class
TestActivity
:
BaseMvvmActivity
<
RootActivityTestBinding
,
TestViewModel
>()
{
override
val
layoutId
:
Int
=
R
.
layout
.
root_activity_test
override
val
vm
:
TestViewModel
by
viewModels
()
override
fun
initView
()
{
initEnvironment
()
subscribeUiEvent
()
}
private
fun
initEnvironment
()
{
when
(
RunConfig
.
currentEnvironment
())
{
RunConfig
.
RunEnvironment
.
DEV
->
binding
.
radioDev
.
isChecked
=
true
RunConfig
.
RunEnvironment
.
TEST
->
binding
.
radioTest
.
isChecked
=
true
RunConfig
.
RunEnvironment
.
PROD
->
binding
.
radioProd
.
isChecked
=
true
}
}
fun
onRadioButtonClicked
(
view
:
View
)
{
if
(
view
is
RadioButton
)
{
val
checked
=
view
.
isChecked
when
(
view
.
getId
())
{
R
.
id
.
radio_dev
->
if
(
checked
)
{
RunConfig
.
switchEnvironment
(
RunConfig
.
RunEnvironment
.
DEV
)
ToastUtils
.
showShortSafe
(
"切换为开发环境"
)
}
R
.
id
.
radio_test
->
if
(
checked
)
{
RunConfig
.
switchEnvironment
(
RunConfig
.
RunEnvironment
.
TEST
)
ToastUtils
.
showShortSafe
(
"切换为测试环境"
)
}
R
.
id
.
radio_prod
->
if
(
checked
)
{
RunConfig
.
switchEnvironment
(
RunConfig
.
RunEnvironment
.
PROD
)
ToastUtils
.
showShortSafe
(
"切换为生产环境"
)
}
}
finish
()
}
}
private
fun
subscribeUiEvent
()
{
}
}
Components/BRoot/src/main/java/com/yidian/shenghuoquan/broot/ui/test/TestViewModel.kt
0 → 100644
View file @
812ba198
package
com.yidian.shenghuoquan.broot.ui.test
import
com.yidian.bcommon.mvvm.BaseViewModel
class
TestViewModel
:
BaseViewModel
()
{
}
Components/BRoot/src/main/res/layout/root_activity_test.xml
0 → 100644
View file @
812ba198
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
>
<data>
<variable
name=
"vm"
type=
"com.yidian.shenghuoquan.broot.ui.test.TestViewModel"
/>
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<TextView
android:id=
"@+id/tv_title"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp50"
android:text=
"环境切换"
android:textColor=
"@color/color_333333"
android:textSize=
"@dimen/sp18"
android:textStyle=
"bold"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<RadioGroup
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp20"
android:gravity=
"center"
android:orientation=
"vertical"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/tv_title"
>
<RadioButton
android:id=
"@+id/radio_dev"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:onClick=
"onRadioButtonClicked"
android:paddingStart=
"@dimen/dp10"
android:paddingEnd=
"@dimen/dp10"
android:text=
"开发环境"
android:textColor=
"@color/colorAccent"
android:textSize=
"@dimen/sp16"
/>
<RadioButton
android:id=
"@+id/radio_test"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp10"
android:onClick=
"onRadioButtonClicked"
android:paddingStart=
"@dimen/dp10"
android:paddingEnd=
"@dimen/dp10"
android:text=
"测试环境"
android:textColor=
"@color/color_1852F1"
android:textSize=
"@dimen/sp16"
/>
<RadioButton
android:id=
"@+id/radio_prod"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp10"
android:onClick=
"onRadioButtonClicked"
android:paddingStart=
"@dimen/dp10"
android:paddingEnd=
"@dimen/dp10"
android:text=
"生产环境"
android:textColor=
"@color/color_FF3A3A"
android:textSize=
"@dimen/sp16"
/>
</RadioGroup>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
\ No newline at end of file
app/build.gradle
View file @
812ba198
...
...
@@ -13,8 +13,6 @@ android {
targetSdkVersion
build_versions
.
targetSdkVersion
versionCode
rootProject
.
ext
.
android
.
versionCode
versionName
rootProject
.
ext
.
android
.
versionName
buildConfigField
(
"boolean"
,
"IS_ENCRYPT_DEBUG_KEY"
,
rootProject
.
ext
.
android
.
isEncryptDebugKey
)
buildConfigField
(
"boolean"
,
"IS_UPGRADE_ONLINE"
,
rootProject
.
ext
.
android
.
isUpgradeOnline
)
testInstrumentationRunner
"androidx.test.runner.AndroidJUnitRunner"
manifestPlaceholders
=
[
qqappid:
"101923771"
]
...
...
app/src/main/java/com/shenghuoquan/business/BusinessApplication.kt
View file @
812ba198
...
...
@@ -6,15 +6,11 @@ import android.content.res.Configuration
import
android.os.Bundle
import
com.orhanobut.hawk.Hawk
import
com.yidian.bcommon.app.YdBaseApplication
import
com.yidian.bcommon.http.ApiSaveCookiesInterceptor
import
com.yidian.bcommon.http.ApiSetCookiesInterceptor
import
com.yidian.bcommon.services.AppUpgradeService
import
com.yidian.bcommon.services.ImageService
import
com.yidian.bcommon.services.XEventService
import
com.yidian.bcommon.services.XPageService
import
com.yidian.bcommon.utils.UMConfigUtils
import
com.yidian.commonutil.CommonUtilLifecycleModule
import
com.yidian.http.ServiceFactory
import
com.yidian.news.util.ProcessUtil
import
com.yidian.xpage.XPageManager
import
com.yidian.yac.core.core.YacAppSpec
...
...
@@ -38,7 +34,6 @@ class BusinessApplication : YdBaseApplication() {
XPageManager
.
init
(
this
)
loadService
()
registerActivityLifecycleCallbacks
(
activityLifecycle
)
UMConfigUtils
.
preInit
(
context
)
}
}
...
...
@@ -59,7 +54,6 @@ class BusinessApplication : YdBaseApplication() {
private
fun
initCommonUtils
()
{
module
.
onCreate
()
Hawk
.
init
(
this
).
build
()
initHttp
()
}
private
val
module
:
CommonUtilLifecycleModule
by
lazy
{
...
...
@@ -102,18 +96,6 @@ class BusinessApplication : YdBaseApplication() {
}
private
fun
initHttp
()
{
// val header = HashMap<String, String>()
// header["Content-Type"] = "application/json"
// header["charset"] = "UTF-8"
// ServiceFactory.getInstance().addInterceptor(HttpInterceptor(header))
// ServiceFactory.getInstance().init(true, URLs.BASE_URL, 10, 10)
ServiceFactory
.
getInstance
().
init
(
true
,
BuildConfig
.
API_URL
,
10
,
10
)
ServiceFactory
.
getInstance
().
addInterceptor
(
ApiSaveCookiesInterceptor
())
ServiceFactory
.
getInstance
().
addInterceptor
(
ApiSetCookiesInterceptor
())
}
private
fun
loadService
()
{
Zap
.
addService
(
XPageService
.
SERVICE_NAME
,
XPageService
())
Zap
.
addService
(
XEventService
.
SERVICE_NAME
,
XEventService
())
...
...
config/config.gradle
View file @
812ba198
ext
{
// // 开发环境配置
// android = [
// applicationId : "com.shenghuoquan.business",
// versionCode : 101,
// versionName : "1.0.1",
// serviceVersion : '"000100"', // 上线前需要和服务端确认并更新
// isEncrypt : 'false', // 上线时改成true开启加密
// isEncryptDebugKey: 'false', // 上线前需要使用正式加密key 置为false
// isUmengRelease : 'false', // 上线时改成true,使用上线版本的友盟配置
// isApplication : false,
// isUpgradeOnline : 'false', // 上线前需要开启版本升级线上环境 true 此开关同时影响app版本升级和xbrid版本升级
// TowerApiEnv : '0', // Tower Api环境 0:测试环境 1:内网-正式环境 2:外网-正式环境 3:内网外网-正式环境
// XInsightEnv : '0' // 慧眼SDK环境 0:开发环境 1:测试环境 2:预生产环境 3:生产环境
// ]
// 测试环境配置
android
=
[
applicationId
:
"com.shenghuoquan.business"
,
versionCode
:
101
,
versionName
:
"1.0.1"
,
serviceVersion
:
'"000100"'
,
// 上线前需要和服务端确认并更新
isEncrypt
:
'true'
,
// 上线时改成true开启加密
isEncryptDebugKey:
'true'
,
// 上线前需要使用正式加密key 置为false
isUmengRelease
:
'false'
,
// 上线时改成true,使用上线版本的友盟配置
isApplication
:
false
,
isUpgradeOnline
:
'false'
,
// 上线前需要开启版本升级线上环境 true 此开关同时影响app版本升级和xbrid版本升级
TowerApiEnv
:
'0'
,
// Tower Api环境 0:测试环境 1:内网-正式环境 2:外网-正式环境 3:内网外网-正式环境
XInsightEnv
:
'1'
// 慧眼SDK环境 0:开发环境 1:测试环境 2:预生产环境 3:生产环境
]
// // ⚠️⚠️ 上线环境配置
// android = [
// applicationId : "com.shenghuoquan.business",
// versionCode : 101,
// versionName : "1.0.1",
// serviceVersion : '"000100"', // 上线前需要和服务端确认并更新
// isEncrypt : 'true', // 上线时改成true开启加密
// isEncryptDebugKey: 'false', // 上线前需要使用正式加密key 置为false
// isUmengRelease : 'true', // 上线时改成true,使用上线版本的友盟配置
// isApplication : false,
// isUpgradeOnline : 'true', // 上线前需要开启版本升级线上环境 true 此开关同时影响app版本升级和xbrid版本升级
// TowerApiEnv : '2', // Tower Api环境 0:测试环境 1:内网-正式环境 2:外网-正式环境 3:内网外网-正式环境
// XInsightEnv : '3' // 慧眼SDK环境 0:开发环境 1:测试环境 2:预生产环境 3:生产环境
// ]
// 高德地图的key
amap
=
[
amap_debug_key
:
'0b8dd2229f4568b508e51865e402e04a'
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment