Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
supplier
Overview
Overview
Details
Activity
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王宇航
supplier
Commits
fad94245
Commit
fad94245
authored
Feb 29, 2020
by
王宇航
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加切換服務器頁面
parent
3b6c598e
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
424 additions
and
25 deletions
+424
-25
arms/src/main/java/com/jess/arms/utils/ArmsUtils.java
+1
-3
public-base/src/main/java/com/gingersoft/gsa/cloud/base/utils/constans/HttpsConstans.java
+4
-3
user-login/src/main/debug/AndroidManifest.xml
+8
-8
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/di/component/SwitchServerComponent.java
+42
-0
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/di/module/SwitchServerModule.java
+31
-0
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/contract/LoginContract.java
+3
-1
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/contract/SwitchServerContract.java
+29
-0
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/model/SwitchServerModel.java
+47
-0
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/presenter/LoginPresenter.java
+11
-8
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/presenter/SwitchServerPresenter.java
+53
-0
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/ui/activity/LoginActivity.java
+6
-2
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/ui/activity/SwitchServerActivity.java
+139
-0
user-login/src/main/res/layout/activity_switch_server.xml
+50
-0
No files found.
arms/src/main/java/com/jess/arms/utils/ArmsUtils.java
View file @
fad94245
...
...
@@ -219,9 +219,7 @@ public class ArmsUtils {
mToast
.
cancel
();
mToast
=
null
;
}
if
(
mToast
==
null
)
{
mToast
=
Toast
.
makeText
(
context
,
string
,
Toast
.
LENGTH_SHORT
);
}
mToast
=
Toast
.
makeText
(
context
,
string
,
Toast
.
LENGTH_SHORT
);
mToast
.
setText
(
string
);
mToast
.
show
();
}
...
...
public-base/src/main/java/com/gingersoft/gsa/cloud/base/utils/constans/HttpsConstans.java
View file @
fad94245
...
...
@@ -4,9 +4,10 @@ package com.gingersoft.gsa.cloud.base.utils.constans;
* Created by Wyh on 2019/12/21.
*/
public
class
HttpsConstans
{
// public static String ROOT_SERVER_ADDRESS_FORMAL = "http://gingersoft.tpddns.cn:58201/ricepon-cloud-gsa/api/";// 深圳服务器
public
static
String
ROOT_SERVER_ADDRESS_FORMAL
=
"http://a.ricepon.com:58201/ricepon-cloud-gsa/api/"
;
// 香港服务器
//默認為深圳
public
static
String
ROOT_SERVER_ADDRESS_FORMAL
=
"http://gingersoft.tpddns.cn:58201/ricepon-cloud-gsa/api/"
;
public
static
final
String
ROOT_SERVER_ADDRESS_FORMAL_SZ
=
"http://gingersoft.tpddns.cn:58201/ricepon-cloud-gsa/api/"
;
// 深圳服务器
public
static
final
String
ROOT_SERVER_ADDRESS_FORMAL_HK
=
"http://a.ricepon.com:58201/ricepon-cloud-gsa/api/"
;
// 香港服务器
public
static
String
ROOT_SERVER_ADDRESS_FORMAL2
=
"http://gingersoft.tpddns.cn:53000/mock/49/ricepon-cloud-gsa/api/"
;
//測試服務器
...
...
user-login/src/main/debug/AndroidManifest.xml
View file @
fad94245
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
package=
"com.gingersoft.gsa.cloud.user.login"
>
...
...
@@ -15,25 +16,24 @@
android:allowBackup=
"true"
android:icon=
"@mipmap/ic_launcher"
android:label=
"@string/user_login_name"
tools:replace=
"android:label"
android:roundIcon=
"@mipmap/ic_launcher_round"
android:supportsRtl=
"true"
android:theme=
"@style/AppTheme"
>
android:theme=
"@style/AppTheme"
tools:replace=
"android:label"
>
<activity
android:name=
".mvp.ui.activity.SwitchServerActivity"
></activity>
<activity
android:name=
".mvp.ui.activity.LoginActivity"
>
<intent-filter>
<action
android:name=
"android.intent.action.MAIN"
/>
<action
android:name=
"android.intent.action.VIEW"
/>
<category
android:name=
"android.intent.category.LAUNCHER"
/>
</intent-filter>
</activity>
<activity
android:name=
".mvp.ui.activity.LoginOutActivity"
/>
<activity
android:name=
".mvp.ui.activity.LoginOutActivity"
/>
<meta-data
android:name=
"com.gingersoft.gsa.cloud.globalconfig.GlobalConfiguration"
android:value=
"ConfigModule"
/>
<meta-data
android:name=
"design_width_in_dp"
android:value=
"360"
/>
...
...
@@ -42,5 +42,4 @@
android:value=
"540"
/>
</application>
</manifest>
</manifest>
\ No newline at end of file
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/di/component/SwitchServerComponent.java
0 → 100644
View file @
fad94245
package
com
.
gingersoft
.
gsa
.
cloud
.
user
.
login
.
di
.
component
;
import
dagger.BindsInstance
;
import
dagger.Component
;
import
com.jess.arms.di.component.AppComponent
;
import
com.gingersoft.gsa.cloud.user.login.di.module.SwitchServerModule
;
import
com.gingersoft.gsa.cloud.user.login.mvp.contract.SwitchServerContract
;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.gingersoft.gsa.cloud.user.login.mvp.ui.activity.SwitchServerActivity
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 02/29/2020 20:49
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@ActivityScope
@Component
(
modules
=
SwitchServerModule
.
class
,
dependencies
=
AppComponent
.
class
)
public
interface
SwitchServerComponent
{
void
inject
(
SwitchServerActivity
activity
);
@Component
.
Builder
interface
Builder
{
@BindsInstance
SwitchServerComponent
.
Builder
view
(
SwitchServerContract
.
View
view
);
SwitchServerComponent
.
Builder
appComponent
(
AppComponent
appComponent
);
SwitchServerComponent
build
();
}
}
\ No newline at end of file
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/di/module/SwitchServerModule.java
0 → 100644
View file @
fad94245
package
com
.
gingersoft
.
gsa
.
cloud
.
user
.
login
.
di
.
module
;
import
com.jess.arms.di.scope.ActivityScope
;
import
dagger.Binds
;
import
dagger.Module
;
import
dagger.Provides
;
import
com.gingersoft.gsa.cloud.user.login.mvp.contract.SwitchServerContract
;
import
com.gingersoft.gsa.cloud.user.login.mvp.model.SwitchServerModel
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 02/29/2020 20:49
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@Module
public
abstract
class
SwitchServerModule
{
@Binds
abstract
SwitchServerContract
.
Model
bindSwitchServerModel
(
SwitchServerModel
model
);
}
\ No newline at end of file
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/contract/LoginContract.java
View file @
fad94245
package
com
.
gingersoft
.
gsa
.
cloud
.
user
.
login
.
mvp
.
contract
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.jess.arms.mvp.IView
;
import
com.jess.arms.mvp.IModel
;
import
com.jess.arms.mvp.IView
;
import
io.reactivex.Observable
;
import
okhttp3.RequestBody
;
...
...
@@ -26,6 +26,8 @@ public interface LoginContract {
void
loginSuccess
(
LoginBean
info
);
void
loginOut
();
void
startToSwitchServer
();
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
...
...
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/contract/SwitchServerContract.java
0 → 100644
View file @
fad94245
package
com
.
gingersoft
.
gsa
.
cloud
.
user
.
login
.
mvp
.
contract
;
import
com.jess.arms.mvp.IView
;
import
com.jess.arms.mvp.IModel
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 02/29/2020 20:49
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public
interface
SwitchServerContract
{
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface
View
extends
IView
{
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface
Model
extends
IModel
{
}
}
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/model/SwitchServerModel.java
0 → 100644
View file @
fad94245
package
com
.
gingersoft
.
gsa
.
cloud
.
user
.
login
.
mvp
.
model
;
import
android.app.Application
;
import
com.google.gson.Gson
;
import
com.jess.arms.integration.IRepositoryManager
;
import
com.jess.arms.mvp.BaseModel
;
import
com.jess.arms.di.scope.ActivityScope
;
import
javax.inject.Inject
;
import
com.gingersoft.gsa.cloud.user.login.mvp.contract.SwitchServerContract
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 02/29/2020 20:49
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@ActivityScope
public
class
SwitchServerModel
extends
BaseModel
implements
SwitchServerContract
.
Model
{
@Inject
Gson
mGson
;
@Inject
Application
mApplication
;
@Inject
public
SwitchServerModel
(
IRepositoryManager
repositoryManager
)
{
super
(
repositoryManager
);
}
@Override
public
void
onDestroy
()
{
super
.
onDestroy
();
this
.
mGson
=
null
;
this
.
mApplication
=
null
;
}
}
\ No newline at end of file
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/presenter/LoginPresenter.java
View file @
fad94245
package
com
.
gingersoft
.
gsa
.
cloud
.
user
.
login
.
mvp
.
presenter
;
import
android.app.Application
;
import
android.util.Log
;
import
com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.
jess.arms.integration.AppManager
;
import
com.
gingersoft.gsa.cloud.user.login.mvp.contract.LoginContract
;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.jess.arms.mvp.BasePresenter
;
import
com.jess.arms.http.imageloader.ImageLoader
;
import
com.jess.arms.integration.AppManager
;
import
com.jess.arms.mvp.BasePresenter
;
import
com.jess.arms.utils.RxLifecycleUtils
;
import
javax.inject.Inject
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.annotations.NonNull
;
...
...
@@ -18,11 +21,6 @@ import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import
okhttp3.FormBody
;
import
okhttp3.RequestBody
;
import
javax.inject.Inject
;
import
com.gingersoft.gsa.cloud.user.login.mvp.contract.LoginContract
;
import
com.jess.arms.utils.RxLifecycleUtils
;
/**
* ================================================
...
...
@@ -63,6 +61,11 @@ public class LoginPresenter extends BasePresenter<LoginContract.Model, LoginCont
public
void
login
(
String
account
,
String
pwd
)
{
if
(
account
.
equals
(
"88888888"
)
&&
pwd
.
equals
(
"cc81081168"
)){
mRootView
.
startToSwitchServer
();
return
;
}
RequestBody
requestBody
;
if
(
account
.
equals
(
""
))
{
...
...
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/presenter/SwitchServerPresenter.java
0 → 100644
View file @
fad94245
package
com
.
gingersoft
.
gsa
.
cloud
.
user
.
login
.
mvp
.
presenter
;
import
android.app.Application
;
import
com.gingersoft.gsa.cloud.user.login.mvp.contract.SwitchServerContract
;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.jess.arms.http.imageloader.ImageLoader
;
import
com.jess.arms.integration.AppManager
;
import
com.jess.arms.mvp.BasePresenter
;
import
javax.inject.Inject
;
import
me.jessyan.rxerrorhandler.core.RxErrorHandler
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 02/29/2020 20:49
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
* 切換服務器頁面
*/
@ActivityScope
public
class
SwitchServerPresenter
extends
BasePresenter
<
SwitchServerContract
.
Model
,
SwitchServerContract
.
View
>
{
@Inject
RxErrorHandler
mErrorHandler
;
@Inject
Application
mApplication
;
@Inject
ImageLoader
mImageLoader
;
@Inject
AppManager
mAppManager
;
@Inject
public
SwitchServerPresenter
(
SwitchServerContract
.
Model
model
,
SwitchServerContract
.
View
rootView
)
{
super
(
model
,
rootView
);
}
@Override
public
void
onDestroy
()
{
super
.
onDestroy
();
this
.
mErrorHandler
=
null
;
this
.
mAppManager
=
null
;
this
.
mImageLoader
=
null
;
this
.
mApplication
=
null
;
}
}
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/ui/activity/LoginActivity.java
View file @
fad94245
...
...
@@ -221,8 +221,7 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
@Override
public
void
showMessage
(
@NonNull
String
message
)
{
if
(
message
!=
null
)
ArmsUtils
.
makeText
(
this
,
message
);
ArmsUtils
.
makeText
(
this
,
message
);
}
@Override
...
...
@@ -380,6 +379,11 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
}
@Override
public
void
startToSwitchServer
()
{
startActivity
(
new
Intent
(
mContext
,
SwitchServerActivity
.
class
));
}
@Override
@OnClick
({
R2
.
id
.
tv_gsa_user_login
,
R2
.
id
.
iv_clear_pwd
,
R2
.
id
.
iv_clear_account
})
public
void
onClick
(
View
v
)
{
switch
(
v
.
getId
())
{
...
...
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/ui/activity/SwitchServerActivity.java
0 → 100644
View file @
fad94245
package
com
.
gingersoft
.
gsa
.
cloud
.
user
.
login
.
mvp
.
ui
.
activity
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.widget.Button
;
import
android.widget.RadioButton
;
import
android.widget.TextView
;
import
com.gingersoft.gsa.cloud.base.utils.constans.HttpsConstans
;
import
com.gingersoft.gsa.cloud.user.login.R
;
import
com.gingersoft.gsa.cloud.user.login.R2
;
import
com.gingersoft.gsa.cloud.user.login.di.component.DaggerSwitchServerComponent
;
import
com.gingersoft.gsa.cloud.user.login.mvp.contract.SwitchServerContract
;
import
com.gingersoft.gsa.cloud.user.login.mvp.presenter.SwitchServerPresenter
;
import
com.jess.arms.base.BaseActivity
;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.utils.ArmsUtils
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
butterknife.BindView
;
import
me.jessyan.retrofiturlmanager.RetrofitUrlManager
;
import
static
com
.
jess
.
arms
.
utils
.
Preconditions
.
checkNotNull
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 02/29/2020 20:49
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public
class
SwitchServerActivity
extends
BaseActivity
<
SwitchServerPresenter
>
implements
SwitchServerContract
.
View
{
@BindView
(
R2
.
id
.
rb_server_sz
)
RadioButton
rbSZ
;
@BindView
(
R2
.
id
.
rb_server_hk
)
RadioButton
rbHK
;
@BindView
(
R2
.
id
.
btn_switch_server
)
Button
switchServer
;
@BindView
(
R2
.
id
.
tv_now_server
)
TextView
tvNowServer
;
@Override
public
void
setupActivityComponent
(
@NonNull
AppComponent
appComponent
)
{
DaggerSwitchServerComponent
//如找不到该类,请编译一下项目
.
builder
()
.
appComponent
(
appComponent
)
.
view
(
this
)
.
build
()
.
inject
(
this
);
}
@Override
public
int
initView
(
@Nullable
Bundle
savedInstanceState
)
{
return
R
.
layout
.
activity_switch_server
;
//如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
}
///RetrofitUrlManager.getInstance().putDomain("common", HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL);
@Override
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
String
nowServer
=
HttpsConstans
.
ROOT_SERVER_ADDRESS_FORMAL
;
tvNowServer
.
setText
(
"當前服務器:"
+
nowServer
);
rbSZ
.
setText
(
"深圳服務器:"
+
HttpsConstans
.
ROOT_SERVER_ADDRESS_FORMAL_SZ
);
rbHK
.
setText
(
"香港服務器:"
+
HttpsConstans
.
ROOT_SERVER_ADDRESS_FORMAL_HK
);
if
(
nowServer
.
equals
(
HttpsConstans
.
ROOT_SERVER_ADDRESS_FORMAL_SZ
))
{
rbSZ
.
setChecked
(
true
);
}
else
{
rbHK
.
setChecked
(
true
);
}
switchServer
.
setOnClickListener
(
v
->
{
if
(
rbSZ
.
isChecked
())
{
RetrofitUrlManager
.
getInstance
().
putDomain
(
"common"
,
HttpsConstans
.
ROOT_SERVER_ADDRESS_FORMAL_SZ
);
}
else
{
RetrofitUrlManager
.
getInstance
().
putDomain
(
"common"
,
HttpsConstans
.
ROOT_SERVER_ADDRESS_FORMAL_HK
);
}
finish
();
});
}
@Override
public
void
initIntent
()
{
}
@Override
public
void
initTopBar
()
{
}
@Override
public
void
initLanguage
()
{
}
@Override
public
void
initLayoutParams
()
{
}
@Override
public
void
initLayoutVisible
()
{
}
@Override
public
void
showLoading
(
String
message
)
{
}
@Override
public
void
hideLoading
()
{
}
@Override
public
void
showMessage
(
@NonNull
String
message
)
{
checkNotNull
(
message
);
ArmsUtils
.
snackbarText
(
message
);
}
@Override
public
void
launchActivity
(
@NonNull
Intent
intent
)
{
checkNotNull
(
intent
);
ArmsUtils
.
startActivity
(
intent
);
}
@Override
public
void
killMyself
()
{
finish
();
}
}
user-login/src/main/res/layout/activity_switch_server.xml
0 → 100644
View file @
fad94245
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
<RadioGroup
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<RadioButton
android:id=
"@+id/rb_server_sz"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:padding=
"@dimen/dp_10"
android:text=
"深圳環境"
android:textColor=
"@color/theme_333_color"
android:textSize=
"@dimen/sp_16"
/>
<RadioButton
android:id=
"@+id/rb_server_hk"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:padding=
"@dimen/dp_10"
android:text=
"香港環境"
android:textColor=
"@color/theme_333_color"
android:textSize=
"@dimen/sp_16"
/>
</RadioGroup>
<TextView
android:id=
"@+id/tv_now_server"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:padding=
"@dimen/dp_10"
android:text=
"當前服務器:"
android:textColor=
"@color/theme_333_color"
android:textSize=
"@dimen/sp_16"
/>
<Button
android:id=
"@+id/btn_switch_server"
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/head_height"
android:layout_margin=
"@dimen/dp_20"
android:background=
"@color/theme_color"
android:text=
"切換環境"
android:textColor=
"@color/white"
android:textSize=
"@dimen/sp_16"
/>
</LinearLayout>
\ No newline at end of file
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