@ -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() |
||||
} |
||||
} |
@ -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,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() |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,6 @@ |
||||
package com.project.survey.ui.interfacee |
||||
|
||||
interface ImmersionAction { |
||||
|
||||
fun immersion() |
||||
} |
@ -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" |
||||
} |
||||
} |
Before Width: | Height: | Size: 906 B After Width: | Height: | Size: 906 B |
Before Width: | Height: | Size: 983 B After Width: | Height: | Size: 983 B |
Before Width: | Height: | Size: 954 B After Width: | Height: | Size: 954 B |
Before Width: | Height: | Size: 963 B After Width: | Height: | Size: 963 B |
Before Width: | Height: | Size: 933 B After Width: | Height: | Size: 933 B |
Before Width: | Height: | Size: 958 B After Width: | Height: | Size: 958 B |
@ -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> |
@ -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> |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 982 B |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 7.5 KiB |
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 5.8 KiB |
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 7.6 KiB |