结构调整

main
chenglifeng 8 months ago
parent bbf6a62804
commit 7d57e01bfe
  1. 5
      app/build.gradle
  2. 19
      app/src/main/java/com/project/survey/extend/FloatExt.kt
  3. 12
      app/src/main/java/com/project/survey/extend/ToastExt.kt
  4. 27
      app/src/main/java/com/project/survey/extend/ViewExt.kt
  5. 26
      app/src/main/java/com/project/survey/logic/viewmodel/BaseViewModel.kt
  6. 14
      app/src/main/java/com/project/survey/logic/viewmodel/LoginViewModel.kt
  7. 4
      app/src/main/java/com/project/survey/network/Api.kt
  8. 59
      app/src/main/java/com/project/survey/network/RetrofitClient.kt
  9. 91
      app/src/main/java/com/project/survey/ui/MainActivity.kt
  10. 7
      app/src/main/java/com/project/survey/ui/SplashActivity.kt
  11. 35
      app/src/main/java/com/project/survey/ui/base/BaseBindingActivity.kt
  12. 43
      app/src/main/java/com/project/survey/ui/base/BaseBindingFragment.kt
  13. 6
      app/src/main/java/com/project/survey/ui/base/BaseFragmentBinding.java
  14. 43
      app/src/main/java/com/project/survey/ui/home/HomeFragment.kt
  15. 88
      app/src/main/java/com/project/survey/ui/home/InstrumentFragment.kt
  16. 33
      app/src/main/java/com/project/survey/ui/home/MeFragment.kt
  17. 2
      app/src/main/java/com/project/survey/ui/instrument/coordinatesystem/BingCeCoordinateSystemActivity.java
  18. 6
      app/src/main/java/com/project/survey/ui/interfacee/ImmersionAction.kt
  19. 20
      app/src/main/java/com/project/survey/ui/login/LoginActivity.kt
  20. 6
      app/src/main/java/com/project/survey/ui/project/ProjectListActivity.kt
  21. 13
      app/src/main/java/com/project/survey/util/ActivityNavUtil.kt
  22. 15
      app/src/main/java/com/project/survey/util/param/Param.java
  23. 82
      app/src/main/java/com/project/survey/util/param/ParamUtil.kt
  24. 38
      app/src/main/java/com/project/survey/widget/SectionItemWidget.kt
  25. 0
      app/src/main/res/drawable-xhdpi/icon_home_selected.png
  26. 0
      app/src/main/res/drawable-xhdpi/icon_home_unselected.png
  27. 0
      app/src/main/res/drawable-xhdpi/icon_instrument_selected.png
  28. 0
      app/src/main/res/drawable-xhdpi/icon_instrument_unselected.png
  29. 0
      app/src/main/res/drawable-xhdpi/icon_me_selected.png
  30. 0
      app/src/main/res/drawable-xhdpi/icon_me_unselected.png
  31. 12
      app/src/main/res/drawable/bg_badge.xml
  32. 9
      app/src/main/res/drawable/bg_section_r_8.xml
  33. 11
      app/src/main/res/drawable/bg_section_r_8_top.xml
  34. 0
      app/src/main/res/drawable/icon_dedicated_control_network.xml
  35. 0
      app/src/main/res/drawable/icon_head_control_network.xml
  36. 0
      app/src/main/res/drawable/icon_initiated.xml
  37. 0
      app/src/main/res/drawable/icon_lofting.xml
  38. 0
      app/src/main/res/drawable/icon_point_measurement.xml
  39. 0
      app/src/main/res/drawable/icon_processed.xml
  40. 36
      app/src/main/res/drawable/icon_to_be_processed.xml
  41. 12
      app/src/main/res/drawable/img_login_top.xml
  42. 21
      app/src/main/res/layout/activity_login.xml
  43. 13
      app/src/main/res/layout/activity_main.xml
  44. 325
      app/src/main/res/layout/fragment_home.xml
  45. 301
      app/src/main/res/layout/fragment_instrument.xml
  46. 44
      app/src/main/res/layout/widget_section_item.xml
  47. 6
      app/src/main/res/mipmap-anydpi/ic_launcher.xml
  48. 6
      app/src/main/res/mipmap-anydpi/ic_launcher_round.xml
  49. BIN
      app/src/main/res/mipmap-hdpi/ic_launcher.webp
  50. BIN
      app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
  51. BIN
      app/src/main/res/mipmap-mdpi/ic_launcher.webp
  52. BIN
      app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
  53. BIN
      app/src/main/res/mipmap-xhdpi/ic_launcher.webp
  54. BIN
      app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
  55. BIN
      app/src/main/res/mipmap-xxhdpi/ic_launcher.png
  56. BIN
      app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
  57. BIN
      app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
  58. BIN
      app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
  59. BIN
      app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
  60. 5
      app/src/main/res/values/attr.xml
  61. 8
      app/src/main/res/values/color.xml
  62. 7
      app/src/main/res/values/dimens.xml
  63. 4
      app/src/main/res/values/strings.xml

@ -176,7 +176,10 @@ dependencies {
implementation "com.github.zagum:Android-SwitchIcon:1.4.0"//
implementation 'io.github.inflationx:calligraphy3:3.1.1'
// implementation 'io.github.inflationx:viewpump:2.0.3'
implementation 'com.gyf.immersionbar:immersionbar:3.0.0-beta05'
// https://github.com/gyf-dev/ImmersionBar
implementation 'com.geyifeng.immersionbar:immersionbar:3.2.2' //
implementation 'com.geyifeng.immersionbar:immersionbar-ktx:3.2.2' // kotlin扩展
implementation 'com.github.getActivity:ShapeView:9.2'
implementation 'com.sherlockshi.widget:sherlockspinner:1.0.2'
implementation 'com.zhy:flowlayout-lib:1.0.3'

@ -0,0 +1,19 @@
package com.project.survey.extend
import blankj.utilcode.util.ConvertUtils
fun Float.dp2px(): Int {
return ConvertUtils.dp2px(this)
}
fun Float.px2dp(): Int {
return ConvertUtils.px2dp(this)
}
fun Float.sp2px(): Int {
return ConvertUtils.sp2px(this)
}
fun Float.px2sp(): Int {
return ConvertUtils.px2sp(this)
}

@ -0,0 +1,12 @@
package com.project.survey.extend
import androidx.annotation.StringRes
import blankj.utilcode.util.ToastUtils
fun toast(text: CharSequence?) {
ToastUtils.showShort(text)
}
fun toast(@StringRes resId: Int) {
ToastUtils.showShort(resId)
}

@ -0,0 +1,27 @@
package com.project.survey.extend
import android.view.View
/**
* 防止重复点击
*/
var lastTime = 0L
fun View.setOnClickNoRepeatListener(interval: Long = 300, onClick: (View) -> Unit) {
setOnClickListener {
val currentTime = System.currentTimeMillis()
if (lastTime != 0L && (currentTime - lastTime < interval)) {
return@setOnClickListener
}
lastTime = currentTime
onClick(it)
}
}
fun View.isVisibleOrInvisible(visible: Boolean){
this.visibility = if (visible) View.VISIBLE else View.INVISIBLE
}
fun View.isVisibleOrGone(visible: Boolean){
this.visibility = if (visible) View.VISIBLE else View.GONE
}

@ -0,0 +1,26 @@
package com.project.survey.logic.viewmodel
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
open class BaseViewModel : ViewModel() {
val errorResponse = MutableLiveData<String?>()
fun launch(block: suspend CoroutineScope.() -> Unit) {
viewModelScope.launch {
withContext(Dispatchers.IO) {
try {
block()
} catch (e: Exception) {
errorResponse.postValue(e.message)
}
}
}
}
}

@ -0,0 +1,14 @@
package com.project.survey.logic.viewmodel
import com.project.survey.network.RetrofitClient
class LoginViewModel : BaseViewModel(){
val api = RetrofitClient.createApiService()
fun test(){
launch {
}
}
}

@ -0,0 +1,4 @@
package com.project.survey.network
interface Api {
}

@ -0,0 +1,59 @@
package com.project.survey.network
import com.bingce.http.HttpsTrustUtil
import com.project.survey.BuildConfig
import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor
import retrofit2.Retrofit
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
import retrofit2.converter.gson.GsonConverterFactory
import java.util.concurrent.TimeUnit
object RetrofitClient {
fun createApiService(): Api {
return createService<Api>()
}
inline fun <reified T> createService(): T {
return createRetrofit().create(T::class.java)
}
fun createRetrofit(): Retrofit {
return Retrofit.Builder()
.baseUrl("")
.client(createOkHttpClient())
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create()) //retrofit默认支持Call返回类型,改为支持Observable返回类型
.build()
}
private fun createOkHttpClient(): OkHttpClient {
return OkHttpClient.Builder()
.connectTimeout(60L, TimeUnit.SECONDS)
.readTimeout(60L, TimeUnit.SECONDS)
.writeTimeout(60L, TimeUnit.SECONDS)
.addInterceptor { chain ->
val originalRequest = chain.request()
val updateRequest = originalRequest.newBuilder()
.header("Content-Type", "application/json;charset=UTF-8")
.header("User-Agent", "ANDROID")
.header("System-Type", "APP_TOKEN")
.build()
return@addInterceptor chain.proceed(updateRequest)
}
.addInterceptor(HttpLoggingInterceptor().apply {
level = if (BuildConfig.DEBUG)
HttpLoggingInterceptor.Level.BODY
else
HttpLoggingInterceptor.Level.NONE
})
.sslSocketFactory(
HttpsTrustUtil.createSSLSocketFactory(),
HttpsTrustUtil.TrustAllManager()
)
.hostnameVerifier(HttpsTrustUtil.TrustAllHostnameVerifier())
.build()
}
}

@ -1,7 +1,6 @@
package com.project.survey.ui
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentPagerAdapter
import androidx.viewpager.widget.ViewPager
import blankj.utilcode.util.AppUtils
@ -10,7 +9,6 @@ import com.bingce.ui.TabEntity
import com.bingce.utils.AppUtil
import com.bingce.utils.RegisterUtil
import com.bingce.utils.SdkUtils
import com.flyco.tablayout.listener.CustomTabEntity
import com.flyco.tablayout.listener.OnTabSelectListener
import com.project.survey.R
import com.project.survey.databinding.ActivityMainBinding
@ -18,16 +16,21 @@ import com.project.survey.ui.base.BaseBindingActivity
import com.project.survey.ui.home.HomeFragment
import com.project.survey.ui.home.InstrumentFragment
import com.project.survey.ui.home.MeFragment
import com.project.survey.util.ActivityNavUtil
/**
* 主页
*/
class MainActivity : BaseBindingActivity<ActivityMainBinding>() {
private val mFragments = mutableListOf<Fragment>()
override fun getBinding(): ActivityMainBinding {
return ActivityMainBinding.inflate(layoutInflater)
companion object {
fun start() {
ActivityNavUtil.startActivity<MainActivity> {}
}
}
override fun getBinding(): ActivityMainBinding = ActivityMainBinding.inflate(layoutInflater)
override fun initView() {
verifySdk()
initTabFragment()
@ -49,35 +52,33 @@ class MainActivity : BaseBindingActivity<ActivityMainBinding>() {
)
}
override fun initData() {
}
private fun initTabFragment() {
//设置tab
val mTabEntities = ArrayList<CustomTabEntity>()
mTabEntities.add(
TabEntity(
"首页",
R.mipmap.icon_home_selected,
R.mipmap.icon_home_selected_not
)
)
mTabEntities.add(
TabEntity(
"仪器",
R.mipmap.icon_instrument_selected,
R.mipmap.icon_instrument_selected_not
mBinding.tabLayout.setTabData(
arrayListOf(
TabEntity(
getString(R.string.tab_home_page),
R.drawable.icon_home_selected,
R.drawable.icon_home_unselected
),
TabEntity(
getString(R.string.tab_instrument),
R.drawable.icon_instrument_selected,
R.drawable.icon_instrument_unselected
),
TabEntity(
getString(R.string.tab_mine),
R.drawable.icon_me_selected,
R.drawable.icon_me_unselected
)
)
)
mTabEntities.add(
TabEntity(
"我的",
R.mipmap.icon_me_selected,
R.mipmap.icon_me_selected_not
)
)
mBinding.tabLayout.setTabData(mTabEntities)
mBinding.tabLayout.setOnTabSelectListener(object : OnTabSelectListener {
override fun onTabSelect(position: Int) {
mBinding.vp.setCurrentItem(position)
mBinding.vp.currentItem = position
}
override fun onTabReselect(position: Int) {
@ -85,10 +86,17 @@ class MainActivity : BaseBindingActivity<ActivityMainBinding>() {
})
//设置viewPager
mFragments.add(HomeFragment())
mFragments.add(InstrumentFragment())
mFragments.add(MeFragment())
mBinding.vp.adapter = MyPagerAdapter(supportFragmentManager)
val fragments = arrayListOf(
HomeFragment(),
InstrumentFragment(),
MeFragment()
)
mBinding.vp.adapter = object : FragmentPagerAdapter(supportFragmentManager) {
override fun getCount(): Int = fragments.size
override fun getItem(position: Int): Fragment = fragments[position]
}
mBinding.vp.offscreenPageLimit = 3
mBinding.vp.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrolled(
@ -108,20 +116,5 @@ class MainActivity : BaseBindingActivity<ActivityMainBinding>() {
})
}
override fun initData() {
}
private inner class MyPagerAdapter : FragmentPagerAdapter {
constructor(fm: FragmentManager) : super(fm)
constructor(fm: FragmentManager, behavior: Int) : super(fm, behavior)
override fun getItem(position: Int): Fragment {
return mFragments[position]
}
override fun getCount(): Int {
return mFragments.size
}
}
}

@ -1,6 +1,5 @@
package com.project.survey.ui
import android.content.Intent
import com.project.survey.databinding.ActivitySplashBinding
import com.project.survey.ui.base.BaseBindingActivity
@ -9,12 +8,10 @@ import com.project.survey.ui.base.BaseBindingActivity
*/
class SplashActivity : BaseBindingActivity<ActivitySplashBinding>() {
override fun getBinding(): ActivitySplashBinding {
return ActivitySplashBinding.inflate(layoutInflater)
}
override fun getBinding(): ActivitySplashBinding = ActivitySplashBinding.inflate(layoutInflater)
override fun initView() {
startActivity(Intent(this, MainActivity::class.java))
MainActivity.start()
finish()
}

@ -8,16 +8,22 @@ import androidx.annotation.StringRes
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.app.AppCompatDelegate
import androidx.appcompat.widget.Toolbar
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.viewbinding.ViewBinding
import blankj.utilcode.util.Utils
import com.project.survey.App
import com.project.survey.R
import com.project.survey.ui.interfacee.ImmersionAction
import com.project.survey.util.Tools
import com.project.survey.util.param.ParamUtil
import org.polaric.colorful.Colorful
abstract class BaseBindingActivity<VB : ViewBinding> : AppCompatActivity() {
protected val mBinding get() = _binding!!
private var _binding: VB? = null
private lateinit var _binding: VB
protected val mBinding: VB
get() = _binding
private var toolBar: Toolbar? = null
@ -27,9 +33,11 @@ abstract class BaseBindingActivity<VB : ViewBinding> : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(getContentView())
//设置背景色
mBinding.root.setBackgroundColor(Tools.getColor(R.color.bg_content))
ParamUtil.initParam(this)
_binding = getBinding()
setContentView(mBinding.root)
// //设置背景色
// mBinding.root.setBackgroundColor(Tools.getColor(R.color.bg_content))
initToolBar()
initView()
@ -50,23 +58,6 @@ abstract class BaseBindingActivity<VB : ViewBinding> : AppCompatActivity() {
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
// )
// )
return mBinding.root
}
protected open fun initToolBar() {
toolBar = findViewById(R.id.toolbar)
setSupportActionBar(toolBar)

@ -0,0 +1,43 @@
package com.project.survey.ui.base
import android.content.Context
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.viewbinding.ViewBinding
import com.project.survey.util.param.ParamUtil
abstract class BaseBindingFragment<VB : ViewBinding> : Fragment() {
private lateinit var _binding: VB
protected val binding: VB
get() = _binding
abstract fun getBinding(inflater: LayoutInflater, container: ViewGroup?): VB
abstract fun initView()
abstract fun initData()
abstract fun initListener()
override fun onAttach(context: Context) {
super.onAttach(context)
ParamUtil.initParam(this)
}
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
_binding = getBinding(inflater, container)
return _binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initView()
initListener()
initData()
}
}

@ -1,5 +1,6 @@
package com.project.survey.ui.base;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@ -14,6 +15,11 @@ import androidx.viewbinding.ViewBinding;
public abstract class BaseFragmentBinding<VB extends ViewBinding> extends Fragment {
protected VB mBinding;
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

@ -3,47 +3,54 @@ package com.project.survey.ui.home
import android.view.LayoutInflater
import android.view.ViewGroup
import com.project.survey.databinding.FragmentHomeBinding
import com.project.survey.extend.setOnClickNoRepeatListener
import com.project.survey.ui.approval.ApprovalActivity
import com.project.survey.ui.base.BaseFragmentBinding
import com.project.survey.ui.base.BaseBindingFragment
import com.project.survey.ui.controlnet.ControlNetFirstListActivity
import com.project.survey.ui.controlnet.ControlNetSpeciaListActivity
import com.project.survey.ui.lofting.LoftingListActivity
import com.project.survey.ui.pointmeasure.PointMeasureListActivity
class HomeFragment : BaseFragmentBinding<FragmentHomeBinding>() {
override fun getViewBinding(
inflater: LayoutInflater,
container: ViewGroup?
): FragmentHomeBinding {
/**
* 首页
*/
class HomeFragment : BaseBindingFragment<FragmentHomeBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentHomeBinding {
return FragmentHomeBinding.inflate(inflater, container, false)
}
override fun initView() {
mBinding.tvPointMeasure.setOnClickListener {
//点测量
binding.tvProject.text = "哈哈哈哈哈"
}
override fun initData() {
binding.itemToBeProcessed.setBadge(4)
}
override fun initListener() {
//点测量
binding.itemPointMeasure.setOnClickNoRepeatListener {
PointMeasureListActivity.launch(requireContext())
}
mBinding.tvLofting.setOnClickListener {
//放样
//放样
binding.itemLofting.setOnClickNoRepeatListener {
LoftingListActivity.launch(requireContext())
}
mBinding.rlApprovalWait.setOnClickListener {
binding.itemToBeProcessed.setOnClickNoRepeatListener {
ApprovalActivity.launch(requireContext(), ApprovalActivity.TYPE_WAIT)
}
mBinding.tvApprovalProcessed.setOnClickListener {
binding.itemProcessed.setOnClickNoRepeatListener {
ApprovalActivity.launch(requireContext(), ApprovalActivity.TYPE_PROCESSED)
}
mBinding.tvApprovalInitated.setOnClickListener {
binding.itemInitiated.setOnClickNoRepeatListener {
ApprovalActivity.launch(requireContext(), ApprovalActivity.TYPE_INITIATED)
}
mBinding.tvControlNetFirst.setOnClickListener {
binding.itemControlNetFirst.setOnClickNoRepeatListener {
ControlNetFirstListActivity.launch(requireContext())
}
mBinding.tvControlNetSpecial.setOnClickListener {
binding.itemControlNetSpecial.setOnClickNoRepeatListener {
ControlNetSpeciaListActivity.launch(requireContext())
}
}
override fun initData() {
}
}

@ -4,8 +4,6 @@ import android.content.Intent
import android.view.LayoutInflater
import android.view.ViewGroup
import blankj.utilcode.util.AppUtils
import blankj.utilcode.util.ToastUtils
import blankj.utilcode.util.Utils
import com.bingce.device.Device
import com.bingce.device.enums.ConnectTypeEnum
import com.bingce.device.enums.DeviceTypeEnum
@ -15,16 +13,23 @@ import com.bingce.rtk.command.RTK
import com.bingce.rtk.config.GnssConfigManager
import com.project.survey.R
import com.project.survey.databinding.FragmentInstrumentBinding
import com.project.survey.ui.base.BaseFragmentBinding
import com.project.survey.extend.setOnClickNoRepeatListener
import com.project.survey.extend.toast
import com.project.survey.ui.base.BaseBindingFragment
import com.project.survey.ui.instrument.basestationtranslation.RtkBaseCorrectActivity
import com.project.survey.ui.instrument.coordinatesystem.BingCeCoordinateSystemActivity
import com.project.survey.ui.instrument.mobilestationmode.GnssConfigSetActivity
import com.project.survey.ui.instrument.mobilestationmode.base.RtkPointCorrectActivity
import com.project.survey.ui.instrument.satellitosis.SatelliteStatusActivity
import com.project.survey.ui.instrument.setupstation.InstrumentSetFragmentSetupStationTypeUtils
import com.project.survey.util.ActivityNavUtil
class InstrumentFragment : BaseFragmentBinding<FragmentInstrumentBinding>() {
override fun getViewBinding(
/**
* 仪器
*/
class InstrumentFragment : BaseBindingFragment<FragmentInstrumentBinding>() {
override fun getBinding(
inflater: LayoutInflater,
container: ViewGroup?
): FragmentInstrumentBinding {
@ -32,24 +37,32 @@ class InstrumentFragment : BaseFragmentBinding<FragmentInstrumentBinding>() {
}
override fun initView() {
mBinding.tvConnectTSActivity.setOnClickListener {
//全站仪联机
}
override fun initData() {
binding.tvProject.text = "哈哈哈哈哈"
}
override fun initListener() {
//全站仪联机
binding.itemConnectTotalStation.setOnClickNoRepeatListener {
ConnectTSActivity.start(requireContext())
}
mBinding.tvConnectRtkActivity.setOnClickListener {
//RTK联机
//RTK联机
binding.itemConnectRTK.setOnClickNoRepeatListener {
ConnectRtkActivity.start(this)
}
mBinding.tvSatelliteStatusActivity.setOnClickListener {
//卫星状态
startActivity(Intent(requireContext(), SatelliteStatusActivity::class.java))
//卫星状态
binding.itemSatelliteStatus.setOnClickNoRepeatListener {
ActivityNavUtil.startActivity<SatelliteStatusActivity> { }
}
mBinding.tvTotalStationSetupStation.setOnClickListener {
//全站仪设站
//全站仪设站
binding.itemTotalStationSetupStation.setOnClickListener {
InstrumentSetFragmentSetupStationTypeUtils.chooseSetupStationType(this)
}
mBinding.tvMobileStationMode.setOnClickListener {
//移动站模式
//移动站模式
binding.itemMobileStationMode.setOnClickListener {
if (Device.getInstance().isDeviceConnected || AppUtils.isAppDebug()) {
if (RTK.getInstance().isSupportRoverSetting) {
GnssConfigManager.reset() //重置配置,防止未退出重新连接其他品牌型号导致配置集未改变的问题
@ -57,14 +70,14 @@ class InstrumentFragment : BaseFragmentBinding<FragmentInstrumentBinding>() {
roverIntent.putExtra("sysMode", 0)
startActivity(roverIntent)
} else {
ToastUtils.showShort(R.string.device_not_support_this_mode)
toast(R.string.device_not_support_this_mode)
}
} else {
ToastUtils.showShort(R.string.rtk_not_connected)
toast(R.string.rtk_not_connected)
}
}
mBinding.tvBaseStationMode.setOnClickListener {
//基准站模式
//基准站模式
binding.itemBaseStationMode.setOnClickListener {
if (Device.getInstance().isDeviceConnected || AppUtils.isAppDebug()) {
if (RTK.getInstance().isSupportBaseSetting) {
GnssConfigManager.reset() //重置配置,防止未退出重新连接其他品牌型号导致配置集未改变的问题
@ -72,50 +85,41 @@ class InstrumentFragment : BaseFragmentBinding<FragmentInstrumentBinding>() {
baseIntent.putExtra("sysMode", 1)
startActivity(baseIntent)
} else {
ToastUtils.showShort(R.string.device_not_support_this_mode)
toast(R.string.device_not_support_this_mode)
}
} else {
ToastUtils.showShort(R.string.rtk_not_connected)
toast(R.string.rtk_not_connected)
}
}
mBinding.tvBaseStationTranslation.setOnClickListener {
//基站平移
//基站平移
binding.itemBaseStationTranslation.setOnClickListener {
startBaseStationTranslation()
}
mBinding.tvCoordinateSystem.setOnClickListener {
//坐标系统
//坐标系统
binding.itemCoordinateSystem.setOnClickListener {
BingCeCoordinateSystemActivity.viewAndModifyCurrentCoordinateSystem(requireContext())
}
mBinding.tvPointCorrection.setOnClickListener {
//点校正
startActivity(Intent(Utils.getApp(), RtkPointCorrectActivity::class.java))
//点校正
binding.itemPointCorrection.setOnClickListener {
ActivityNavUtil.startActivity<RtkPointCorrectActivity> { }
}
}
private fun startBaseStationTranslation() {
if (!AppUtils.isAppDebug()) {
if (Device.getInstance().deviceType == DeviceTypeEnum.DEVICE_TYPE_TS) {
ToastUtils.showShort(R.string.please_choose_rtk_instrument)
toast(R.string.please_choose_rtk_instrument)
return
}
if (Device.getInstance().connectType == ConnectTypeEnum.CONNECT_TYPE_PHONE_LOCATION) {
ToastUtils.showShort(R.string.rtk_native_unnecessary)
toast(R.string.rtk_native_unnecessary)
return
}
if (!Device.getInstance().isDeviceConnected) {
ToastUtils.showShort(R.string.please_connect_bluetooth)
toast(R.string.please_connect_bluetooth)
return
}
}
val intent504 = Intent(
Utils.getApp(),
RtkBaseCorrectActivity::class.java
)
startActivity(intent504)
}
override fun initData() {
ActivityNavUtil.startActivity<RtkBaseCorrectActivity> { }
}
}

@ -1,33 +1,34 @@
package com.project.survey.ui.home
import android.content.Intent
import android.view.LayoutInflater
import android.view.ViewGroup
import com.project.survey.databinding.FragmentMeBinding
import com.project.survey.ui.base.BaseFragmentBinding
import com.project.survey.extend.setOnClickNoRepeatListener
import com.project.survey.ui.base.BaseBindingFragment
import com.project.survey.ui.login.LoginActivity
import com.project.survey.ui.project.ProjectListActivity
class MeFragment : BaseFragmentBinding<FragmentMeBinding>() {
override fun getViewBinding(
inflater: LayoutInflater,
container: ViewGroup?
): FragmentMeBinding {
/**
* 我的
*/
class MeFragment : BaseBindingFragment<FragmentMeBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentMeBinding {
return FragmentMeBinding.inflate(inflater, container, false)
}
override fun initView() {
mBinding.llLogin.setOnClickListener {
startActivity(Intent(context, LoginActivity::class.java))
}
mBinding.llSwitchProject.setOnClickListener {
startActivity(Intent(requireContext(), ProjectListActivity::class.java))
}
}
override fun initData() {
}
override fun initListener() {
binding.llLogin.setOnClickNoRepeatListener {
LoginActivity.start()
}
binding.llSwitchProject.setOnClickNoRepeatListener {
ProjectListActivity.start()
}
}
}

@ -31,7 +31,7 @@ public class BingCeCoordinateSystemActivity extends AutoLandscapeBingCeActivity
ActivityCoordinateSystemBinding binding = ActivityCoordinateSystemBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
Toolbar mToolbar = findViewById(R.id.toolbar);
mToolbar.setTitle(R.string.coordinate_system);
// mToolbar.setTitle(R.string.coordinate_system);
setSupportActionBar(mToolbar);
if (getSupportActionBar() != null)
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

@ -0,0 +1,6 @@
package com.project.survey.ui.interfacee
interface ImmersionAction {
fun immersion()
}

@ -2,20 +2,28 @@ package com.project.survey.ui.login
import android.content.Intent
import android.view.View
import com.gyf.immersionbar.ImmersionBar
import com.project.survey.R
import com.project.survey.ui.base.BaseBindingActivity
import com.project.survey.databinding.ActivityLoginBinding
import com.project.survey.util.ActivityNavUtil
import com.project.survey.util.Tools
class LoginActivity : BaseBindingActivity<ActivityLoginBinding>() {
private var isOutLogin = false//默认集团登录
override fun getBinding(): ActivityLoginBinding {
return ActivityLoginBinding.inflate(layoutInflater)
companion object{
fun start(){
ActivityNavUtil.startActivity<LoginActivity> { }
}
}
override fun getBinding(): ActivityLoginBinding = ActivityLoginBinding.inflate(layoutInflater)
private var isOutLogin = false//默认集团登录
override fun initView() {
ImmersionBar.with(this).statusBarDarkFont(true).init()
mBinding.tvShowOutLogin.setOnClickListener {
//切换到外部登录
isOutLogin = true
@ -47,7 +55,6 @@ class LoginActivity : BaseBindingActivity<ActivityLoginBinding>() {
* 内部登录
*/
private fun loginByInner() {
startActivity(Intent(this, LoginInputCodeActivity::class.java))
}
@ -83,4 +90,7 @@ class LoginActivity : BaseBindingActivity<ActivityLoginBinding>() {
}
}

@ -6,6 +6,7 @@ import com.flyco.tablayout.listener.CustomTabEntity
import com.project.survey.R
import com.project.survey.ui.base.BaseBindingActivity
import com.project.survey.databinding.ActivityProjectListBinding
import com.project.survey.util.ActivityNavUtil
class ProjectListActivity : BaseBindingActivity<ActivityProjectListBinding>() {
override fun getBinding(): ActivityProjectListBinding {
@ -42,4 +43,9 @@ class ProjectListActivity : BaseBindingActivity<ActivityProjectListBinding>() {
override fun initData() {
}
companion object {
fun start(){
ActivityNavUtil.startActivity<ProjectListActivity> { }
}
}
}

@ -0,0 +1,13 @@
package com.project.survey.util
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import blankj.utilcode.util.ActivityUtils
object ActivityNavUtil {
inline fun <reified T : AppCompatActivity> startActivity(block: Bundle.() -> Unit) {
ActivityUtils.startActivity(Bundle().apply(block), T::class.java)
}
}

@ -0,0 +1,15 @@
package com.project.survey.util.param;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* des 参数解析注解
*/
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Param {
String value() default "";
}

@ -0,0 +1,82 @@
package com.project.survey.util.param
import android.app.Activity
import android.os.Bundle
import android.text.TextUtils
import androidx.fragment.app.Fragment
/**
* 页面跳转传参 注解+反射获取页面入参
*/
object ParamUtil {
/**
* Fragment
*/
fun initParam(fragment: Fragment) {
val javaClass = fragment.javaClass
fragment.arguments?.apply {
setParam(fragment, this)
}
}
/**
* Activity
*/
fun initParam(activity: Activity) {
activity.intent.extras?.apply {
setParam(activity, this)
}
}
private fun setParam(obj: Any, intent: Bundle) {
val javaClass = obj.javaClass
val fields = javaClass.declaredFields
for (item in fields) {
if (item.isAnnotationPresent(Param::class.java)) {
item.getAnnotation(Param::class.java)?.let {
val key: String = if (TextUtils.isEmpty(it.value)) item.name else it.value
if (intent.containsKey(key)) {
val type = item.type
when (type) {
Boolean::class.javaPrimitiveType -> {
intent.getBoolean(key, false)
}
Int::class.javaPrimitiveType -> {
intent.getInt(key, 0)
}
Long::class.javaPrimitiveType -> {
intent.getLong(key, 0L)
}
String::class.java -> {
intent.getString(key)
}
Double::class.javaPrimitiveType -> {
intent.getDouble(key, 0.0)
}
Byte::class.javaPrimitiveType -> {
intent.getByte(key, "".toByte())
}
Char::class.javaPrimitiveType -> {
intent.getChar(key, '\u0000')
}
Float::class.javaPrimitiveType -> {
intent.getFloat(key, 0f)
}
else -> {
intent.getParcelable(key)
}
}?.apply {
item.isAccessible = true
try {
item[obj] = this
} catch (e: IllegalAccessException) {
e.printStackTrace()
}
item.isAccessible = false
}
}
}
}
}
}
}

@ -0,0 +1,38 @@
package com.project.survey.widget
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import androidx.appcompat.widget.LinearLayoutCompat
import com.project.survey.R
import com.project.survey.databinding.WidgetSectionItemBinding
import com.project.survey.extend.isVisibleOrGone
class SectionItemWidget @JvmOverloads constructor(
context: Context,
val attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : LinearLayoutCompat(context, attrs, defStyleAttr) {
private val binding: WidgetSectionItemBinding
init {
binding = WidgetSectionItemBinding.inflate(LayoutInflater.from(context), this, true)
val typeArray = context.obtainStyledAttributes(attrs, R.styleable.SectionItemWidget)
val icon = typeArray.getResourceId(R.styleable.SectionItemWidget_siw_icon, -1)
binding.ivIcon.setImageResource(icon)
binding.tvName.text = typeArray.getString(R.styleable.SectionItemWidget_siw_name)
typeArray.recycle()
}
/**
* 设置未读数
*/
fun setBadge(count: Int): SectionItemWidget = apply {
binding.tvBadge.isVisibleOrGone(count > 0)
binding.tvBadge.text = "$count"
}
}

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<size
android:width="14dp"
android:height="14dp" />
<solid android:color="#CC5155" />
<stroke
android:width="1dp"
android:color="#FFFFFF" />
</shape>

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="8dp" />
<solid android:color="@color/bg_color_fff" />
</shape>

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:topLeftRadius="8dp"
android:topRightRadius="8dp" />
<solid android:color="@color/bg_color_fff" />
</shape>

@ -0,0 +1,36 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="32.775dp"
android:height="37.05dp"
android:viewportWidth="32.775"
android:viewportHeight="37.05">
<path
android:pathData="M0,34.2L0,35.1Q0,35.199 0.019,35.295Q0.038,35.392 0.076,35.483Q0.114,35.574 0.169,35.656Q0.223,35.737 0.293,35.807Q0.363,35.877 0.444,35.931Q0.526,35.986 0.617,36.024Q0.708,36.062 0.805,36.081Q0.902,36.1 1,36.1L2.01,36.1L15.728,36.1C13.855,34.012 12.821,31.305 12.825,28.5C12.825,22.204 17.929,17.1 24.225,17.1C26.816,17.096 29.33,17.979 31.351,19.601L31.35,1.9C31.35,0.851 30.499,0 29.45,0L1,0Q0.902,0 0.805,0.019Q0.708,0.038 0.617,0.076Q0.526,0.114 0.444,0.169Q0.363,0.223 0.293,0.293Q0.223,0.363 0.169,0.444Q0.114,0.526 0.076,0.617Q0.038,0.708 0.019,0.805Q0,0.902 0,1L0,34.2ZM7.125,6.175L21.85,6.175L21.934,6.177C22.704,6.222 23.298,6.871 23.276,7.642C23.253,8.413 22.621,9.026 21.85,9.025L7.125,9.025L7.041,9.023C6.271,8.978 5.677,8.329 5.699,7.558C5.722,6.787 6.354,6.174 7.125,6.175ZM7.125,12.825L13.3,12.825L13.384,12.827C14.154,12.872 14.748,13.521 14.726,14.292C14.703,15.063 14.071,15.676 13.3,15.675L7.125,15.675L7.041,15.673C6.271,15.628 5.677,14.979 5.699,14.208C5.722,13.437 6.354,12.824 7.125,12.825Z"
android:fillType="evenOdd">
<aapt:attr name="android:fillColor">
<gradient
android:startX="12.047"
android:startY="7.338"
android:endX="23.302"
android:endY="36.1"
android:type="linear">
<item android:offset="0" android:color="#FF308AF4"/>
<item android:offset="1" android:color="#FF1555D6"/>
</gradient>
</aapt:attr>
</path>
<path
android:pathData="M24.225,19.95C28.947,19.95 32.775,23.778 32.775,28.5C32.775,33.222 28.947,37.05 24.225,37.05C19.503,37.05 15.675,33.222 15.675,28.5C15.675,23.778 19.503,19.95 24.225,19.95ZM24.225,23.513C23.599,23.512 23.081,23.998 23.04,24.622L23.038,24.7L23.038,28.5L23.04,28.578C23.079,29.172 23.552,29.646 24.147,29.685L24.225,29.688L27.55,29.688L27.628,29.685C28.222,29.646 28.695,29.173 28.735,28.578L28.738,28.5L28.735,28.422C28.696,27.828 28.223,27.355 27.628,27.315L27.55,27.313L25.413,27.313L25.413,24.7L25.41,24.622C25.369,23.998 24.851,23.513 24.225,23.513Z">
<aapt:attr name="android:fillColor">
<gradient
android:startX="19.069"
android:startY="21.094"
android:endX="26.302"
android:endY="32.729"
android:type="linear">
<item android:offset="0" android:color="#FF4AEAF4"/>
<item android:offset="1" android:color="#FF10C8F2"/>
</gradient>
</aapt:attr>
</path>
</vector>

File diff suppressed because one or more lines are too long

@ -3,27 +3,14 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="true"
android:focusableInTouchMode="true"
android:orientation="vertical"
android:paddingHorizontal="@dimen/sw_22dp">
android:paddingHorizontal="@dimen/margin_side">
<TextView
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/sw_55dp"
android:text="@string/engineering_surveying_integrated_management_system"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_22sp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/engineering_surveying_integrated_management_system_en"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_9sp"
android:textStyle="bold" />
android:layout_marginTop="100dp"
android:src="@drawable/img_login_top" />
<TextView
android:id="@+id/tvAccountDesc"

@ -1,9 +1,9 @@
<?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:background="@color/bg_color_home_page"
android:orientation="vertical">
<androidx.viewpager.widget.ViewPager
@ -16,16 +16,15 @@
android:id="@+id/tabLayout"
android:layout_width="match_parent"
android:layout_height="54dp"
android:background="#ffffff"
android:background="@color/bg_color_main_tab"
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_textSelectColor="@color/text_color_tab_selected"
tl:tl_textUnselectColor="@color/text_color_tab_unselected"
tl:tl_textsize="12sp"
tl:tl_underline_color="#cfcfcf"
tl:tl_underline_color="@color/bg_color_main_underline_color"
tl:tl_underline_gravity="TOP"
tl:tl_underline_height="1dp" />
tl:tl_underline_height="0.5dp" />
</LinearLayout>

@ -1,230 +1,195 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:layout_width="match_parent"
android:layout_height="@dimen/sw_160dp"
android:layout_height="209dp"
android:background="@drawable/bg_top_blue"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tvProject"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/sw_20dp"
android:layout_marginTop="@dimen/sw_20dp"
android:text="某工程"
android:textColor="@color/white"
android:textSize="@dimen/sw_20sp"
android:layout_marginHorizontal="@dimen/margin_side"
android:layout_marginTop="@dimen/margin_side"
android:textColor="@color/text_color_fff"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toTopOf="parent"
tools:text="某工程" />
<LinearLayout
android:id="@+id/llFirst"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layoutFirst"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/sw_20dp"
android:layout_marginTop="@dimen/sw_16dp"
android:background="@drawable/bg_white_round_8"
android:orientation="vertical"
android:padding="@dimen/sw_18dp"
android:layout_marginHorizontal="@dimen/margin_side"
android:layout_marginTop="@dimen/margin_side"
android:background="@drawable/bg_section_r_8_top"
android:padding="@dimen/padding_side"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvProject">
<TextView
android:id="@+id/tvTitle1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/beidou_application"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_14sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:textColor="@color/text_color_main"
android:textSize="@dimen/text_size_section_title"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.project.survey.widget.SectionItemWidget
android:id="@+id/itemPointMeasure"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/sw_12dp"
android:orientation="horizontal"
android:weightSum="3">
<TextView
android:id="@+id/tvPointMeasure"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawablePadding="@dimen/sw_8dp"
android:gravity="center"
android:text="@string/point_measurement"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_13sp"
app:drawableTopCompat="@drawable/ic_point_measurement" />
<TextView
android:id="@+id/tvLofting"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawablePadding="@dimen/sw_8dp"
android:gravity="center"
android:text="@string/stakeout"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_13sp"
app:drawableTopCompat="@drawable/stakeout" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/llSecond"
app:layout_constraintEnd_toStartOf="@id/itemLofting"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvTitle1"
app:siw_icon="@drawable/icon_point_measurement"
app:siw_name="@string/point_measurement" />
<com.project.survey.widget.SectionItemWidget
android:id="@+id/itemLofting"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintEnd_toStartOf="@id/viewSpacer1"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toEndOf="@id/itemPointMeasure"
app:layout_constraintTop_toTopOf="@id/itemPointMeasure"
app:siw_icon="@drawable/icon_lofting"
app:siw_name="@string/stakeout" />
<View
android:id="@+id/viewSpacer1"
android:layout_width="0dp"
android:layout_height="1dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toEndOf="@id/itemLofting"
app:layout_constraintTop_toTopOf="@id/itemPointMeasure" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layoutSecond"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/sw_20dp"
android:layout_marginTop="@dimen/sw_16dp"
android:background="@drawable/bg_white_round_8"
android:orientation="vertical"
android:padding="@dimen/sw_18dp"
android:layout_marginHorizontal="@dimen/margin_side"
android:layout_marginTop="@dimen/margin_side"
android:background="@drawable/bg_section_r_8"
android:padding="@dimen/padding_side"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/llFirst">
app:layout_constraintTop_toBottomOf="@+id/layoutFirst">
<TextView
android:id="@+id/tvTitle2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/process_approval"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_14sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:textColor="@color/text_color_main"
android:textSize="@dimen/text_size_section_title"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.project.survey.widget.SectionItemWidget
android:id="@+id/itemToBeProcessed"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintEnd_toStartOf="@id/itemProcessed"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvTitle2"
app:siw_icon="@drawable/icon_to_be_processed"
app:siw_name="@string/to_be_processed" />
<com.project.survey.widget.SectionItemWidget
android:id="@+id/itemProcessed"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/sw_12dp"
android:orientation="horizontal"
android:weightSum="3">
<RelativeLayout
android:id="@+id/rlApprovalWait"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center">
<TextView
android:id="@+id/tvA"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawablePadding="@dimen/sw_8dp"
android:gravity="center"
android:text="@string/to_be_processed"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_13sp"
app:drawableTopCompat="@drawable/processed" />
<TextView
android:id="@+id/tvWaitNum"
android:layout_width="@dimen/sw_16dp"
android:layout_height="@dimen/sw_16dp"
android:layout_alignTop="@+id/tvA"
android:layout_alignRight="@+id/tvA"
android:background="@drawable/bg_red_circle"
android:gravity="center"
android:text="1"
android:textColor="@color/white"
android:textSize="@dimen/sw_10dp"
android:visibility="visible" />
</RelativeLayout>
<TextView
android:id="@+id/tvApprovalProcessed"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawablePadding="@dimen/sw_8dp"
android:gravity="center"
android:text="@string/processed"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_13sp"
app:drawableTopCompat="@drawable/processed" />
<TextView
android:id="@+id/tvApprovalInitated"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawablePadding="@dimen/sw_8dp"
android:gravity="center"
android:text="@string/initiated"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_13sp"
app:drawableTopCompat="@drawable/initiated" />
</LinearLayout>
</LinearLayout>
<LinearLayout
app:layout_constraintEnd_toStartOf="@id/itemInitiated"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toEndOf="@id/itemToBeProcessed"
app:layout_constraintTop_toTopOf="@id/itemToBeProcessed"
app:siw_icon="@drawable/icon_processed"
app:siw_name="@string/processed" />
<com.project.survey.widget.SectionItemWidget
android:id="@+id/itemInitiated"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toEndOf="@id/itemProcessed"
app:layout_constraintTop_toTopOf="@id/itemToBeProcessed"
app:siw_icon="@drawable/icon_initiated"
app:siw_name="@string/initiated" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/llThird"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/sw_20dp"
android:layout_marginTop="@dimen/sw_16dp"
android:background="@drawable/bg_white_round_8"
android:orientation="vertical"
android:padding="@dimen/sw_18dp"
android:layout_marginHorizontal="@dimen/margin_side"
android:layout_marginTop="@dimen/margin_side"
android:background="@drawable/bg_section_r_8"
android:padding="@dimen/padding_side"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/llSecond">
app:layout_constraintTop_toBottomOf="@+id/layoutSecond">
<TextView
android:id="@+id/tvTitle3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/engineering_control_network"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_14sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:textColor="@color/text_color_main"
android:textSize="@dimen/text_size_section_title"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.project.survey.widget.SectionItemWidget
android:id="@+id/itemControlNetFirst"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintEnd_toStartOf="@id/itemControlNetSpecial"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvTitle3"
app:siw_icon="@drawable/icon_head_control_network"
app:siw_name="@string/head_control_network" />
<com.project.survey.widget.SectionItemWidget
android:id="@+id/itemControlNetSpecial"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/sw_12dp"
android:orientation="horizontal"
android:weightSum="3">
<TextView
android:id="@+id/tvControlNetFirst"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawablePadding="@dimen/sw_8dp"
android:gravity="center"
android:text="@string/head_control_network"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_13sp"
app:drawableTopCompat="@drawable/head_control_network" />
<TextView
android:id="@+id/tvControlNetSpecial"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawablePadding="@dimen/sw_8dp"
android:gravity="center"
android:text="@string/dedicated_control_network"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_13sp"
app:drawableTopCompat="@drawable/dedicated_control_network" />
</LinearLayout>
</LinearLayout>
app:layout_constraintEnd_toStartOf="@id/viewSpacer3"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toEndOf="@id/itemControlNetFirst"
app:layout_constraintTop_toTopOf="@id/itemControlNetFirst"
app:siw_icon="@drawable/icon_dedicated_control_network"
app:siw_name="@string/dedicated_control_network" />
<View
android:id="@+id/viewSpacer3"
android:layout_width="0dp"
android:layout_height="1dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toEndOf="@id/itemControlNetSpecial"
app:layout_constraintTop_toTopOf="@id/itemControlNetFirst" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

@ -1,209 +1,174 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:layout_width="match_parent"
android:layout_height="@dimen/sw_160dp"
android:layout_height="209dp"
android:background="@drawable/bg_top_blue"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tvProject"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/sw_20dp"
android:layout_marginTop="@dimen/sw_20dp"
android:text="某工程"
android:textColor="@color/white"
android:textSize="@dimen/sw_20sp"
android:layout_marginHorizontal="@dimen/margin_side"
android:layout_marginTop="@dimen/margin_side"
android:textColor="@color/text_color_fff"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toTopOf="parent"
tools:text="某工程" />
<LinearLayout
android:id="@+id/llFirst"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layoutFirst"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/sw_20dp"
android:layout_marginTop="@dimen/sw_16dp"
android:background="@drawable/bg_white_round_8"
android:orientation="vertical"
android:padding="@dimen/sw_18dp"
android:layout_marginHorizontal="@dimen/margin_side"
android:layout_marginTop="@dimen/margin_side"
android:background="@drawable/bg_section_r_8_top"
android:padding="@dimen/padding_side"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvProject">
<TextView
android:id="@+id/tvTitle1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/instrument_online"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_14sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:textColor="@color/text_color_main"
android:textSize="@dimen/text_size_section_title"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.project.survey.widget.SectionItemWidget
android:id="@+id/itemConnectTotalStation"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintEnd_toStartOf="@id/itemConnectRTK"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvTitle1"
app:siw_icon="@drawable/total_station_online"
app:siw_name="@string/total_station_online" />
<com.project.survey.widget.SectionItemWidget
android:id="@+id/itemConnectRTK"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintEnd_toStartOf="@id/itemSatelliteStatus"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toEndOf="@id/itemConnectTotalStation"
app:layout_constraintTop_toTopOf="@id/itemConnectTotalStation"
app:siw_icon="@drawable/rtk_online"
app:siw_name="@string/rtk_online" />
<com.project.survey.widget.SectionItemWidget
android:id="@+id/itemSatelliteStatus"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/sw_12dp"
android:orientation="horizontal"
android:weightSum="3">
<TextView
android:id="@+id/tvConnectTSActivity"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawablePadding="@dimen/sw_8dp"
android:gravity="center"
android:text="@string/total_station_online"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_13sp"
app:drawableTopCompat="@drawable/total_station_online" />
<TextView
android:id="@+id/tvConnectRtkActivity"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawablePadding="@dimen/sw_8dp"
android:gravity="center"
android:text="@string/rtk_online"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_13sp"
app:drawableTopCompat="@drawable/rtk_online" />
<TextView
android:id="@+id/tvSatelliteStatusActivity"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawablePadding="@dimen/sw_8dp"
android:gravity="center"
android:text="@string/satellite_status"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_13sp"
app:drawableTopCompat="@drawable/satellite_status" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/llSecond"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toEndOf="@id/itemConnectRTK"
app:layout_constraintTop_toTopOf="@id/itemConnectTotalStation"
app:siw_icon="@drawable/satellite_status"
app:siw_name="@string/satellite_status" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layoutSecond"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/sw_20dp"
android:layout_marginTop="@dimen/sw_16dp"
android:background="@drawable/bg_white_round_8"
android:orientation="vertical"
android:padding="@dimen/sw_18dp"
android:layout_marginHorizontal="@dimen/margin_side"
android:layout_marginTop="@dimen/margin_side"
android:background="@drawable/bg_section_r_8"
android:padding="@dimen/padding_side"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/llFirst">
app:layout_constraintTop_toBottomOf="@+id/layoutFirst">
<TextView
android:id="@+id/tvTitle2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/job_settings"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_14sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:textColor="@color/text_color_main"
android:textSize="@dimen/text_size_section_title"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.project.survey.widget.SectionItemWidget
android:id="@+id/itemTotalStationSetupStation"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintEnd_toStartOf="@id/itemMobileStationMode"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvTitle2"
app:siw_icon="@drawable/total_station_instrumentation_station"
app:siw_name="@string/total_station_instrumentation_station" />
<com.project.survey.widget.SectionItemWidget
android:id="@+id/itemMobileStationMode"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintEnd_toStartOf="@id/itemBaseStationMode"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toEndOf="@id/itemTotalStationSetupStation"
app:layout_constraintTop_toTopOf="@id/itemTotalStationSetupStation"
app:siw_icon="@drawable/mobile_station_mode"
app:siw_name="@string/mobile_station_mode" />
<com.project.survey.widget.SectionItemWidget
android:id="@+id/itemBaseStationMode"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toEndOf="@id/itemMobileStationMode"
app:layout_constraintTop_toTopOf="@id/itemTotalStationSetupStation"
app:siw_icon="@drawable/base_station_mode"
app:siw_name="@string/base_station_mode" />
<com.project.survey.widget.SectionItemWidget
android:id="@+id/itemBaseStationTranslation"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintEnd_toStartOf="@id/itemCoordinateSystem"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/itemTotalStationSetupStation"
app:siw_icon="@drawable/base_station_translation"
app:siw_name="@string/base_station_translation" />
<com.project.survey.widget.SectionItemWidget
android:id="@+id/itemCoordinateSystem"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/sw_12dp"
android:orientation="horizontal"
android:weightSum="3">
<TextView
android:id="@+id/tvTotalStationSetupStation"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawablePadding="@dimen/sw_8dp"
android:gravity="center"
android:text="@string/total_station_instrumentation_station"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_13sp"
app:drawableTopCompat="@drawable/total_station_instrumentation_station" />
<TextView
android:id="@+id/tvMobileStationMode"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawablePadding="@dimen/sw_8dp"
android:gravity="center"
android:text="@string/mobile_station_mode"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_13sp"
app:drawableTopCompat="@drawable/mobile_station_mode" />
<TextView
android:id="@+id/tvBaseStationMode"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawablePadding="@dimen/sw_8dp"
android:gravity="center"
android:text="@string/base_station_mode"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_13sp"
app:drawableTopCompat="@drawable/base_station_mode" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
app:layout_constraintEnd_toStartOf="@id/itemPointCorrection"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toEndOf="@id/itemBaseStationTranslation"
app:layout_constraintTop_toTopOf="@id/itemBaseStationTranslation"
app:siw_icon="@drawable/coordinate_system"
app:siw_name="@string/coordinate_system" />
<com.project.survey.widget.SectionItemWidget
android:id="@+id/itemPointCorrection"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/sw_12dp"
android:orientation="horizontal"
android:weightSum="3">
<TextView
android:id="@+id/tvBaseStationTranslation"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawablePadding="@dimen/sw_8dp"
android:gravity="center"
android:text="@string/base_station_translation"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_13sp"
app:drawableTopCompat="@drawable/base_station_translation" />
<TextView
android:id="@+id/tvCoordinateSystem"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawablePadding="@dimen/sw_8dp"
android:gravity="center"
android:text="@string/coordinate_system"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_13sp"
app:drawableTopCompat="@drawable/coordinate_system" />
<TextView
android:id="@+id/tvPointCorrection"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawablePadding="@dimen/sw_8dp"
android:gravity="center"
android:text="@string/point_correction"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_13sp"
app:drawableTopCompat="@drawable/point_correction" />
</LinearLayout>
</LinearLayout>
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toEndOf="@id/itemCoordinateSystem"
app:layout_constraintTop_toTopOf="@id/itemBaseStationTranslation"
app:siw_icon="@drawable/point_correction"
app:siw_name="@string/point_correction" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="12dp">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/ivIcon"
android:layout_width="44dp"
android:layout_height="44dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:src="@mipmap/ic_launcher" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tvBadge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg_badge"
android:gravity="center"
android:textColor="@color/text_color_fff"
android:textSize="9sp"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="@id/ivIcon"
app:layout_constraintTop_toTopOf="@id/ivIcon"
tools:text="99"
tools:visibility="visible" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tvName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textColor="@color/text_color_main"
android:textSize="@dimen/text_size_section_item"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/ivIcon"
tools:text="@string/app_name" />
</androidx.constraintlayout.widget.ConstraintLayout>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
<monochrome android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
<monochrome android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 982 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

@ -28,4 +28,9 @@
<item name="android:backgroundDimEnabled">true</item>
</style>
<declare-styleable name="SectionItemWidget">
<attr name="siw_icon" format="reference" />
<attr name="siw_name" format="string|reference" />
</declare-styleable>
</resources>

@ -17,5 +17,13 @@
<color name="c_10000000">#10000000</color>
<color name="item_bg">#e5e5e5</color>
<color name="text_color_tab_selected">#396BD0</color>
<color name="text_color_tab_unselected">#5B5A5E</color>
<color name="text_color_main">#333333</color>
<color name="text_color_fff">#FFFFFF</color>
<color name="bg_color_home_page">#F9FAFB</color>
<color name="bg_color_main_tab">#FFFFFF</color>
<color name="bg_color_main_underline_color">#EBEBEB</color>
<color name="bg_color_fff">#FFFFFF</color>
</resources>

@ -1,6 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<dimen name="margin_side">20dp</dimen>
<dimen name="padding_side">20dp</dimen>
<dimen name="text_size_section_title">14sp</dimen>
<dimen name="text_size_section_item">13sp</dimen>
<dimen name="_sw_1080dp">-1559.52dp</dimen>
<dimen name="_sw_1079dp">-1558.08dp</dimen>
<dimen name="_sw_1078dp">-1556.63dp</dimen>

@ -340,4 +340,8 @@
<string name="remarks_keyword_explain">备注里包含关键词的所有记录都将被筛选</string>
<string name="sort">排序</string>
<string name="tab_home_page">首页</string>
<string name="tab_instrument">仪器</string>
<string name="tab_mine">我的</string>
</resources>
Loading…
Cancel
Save