@ -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 |
package com.project.survey.ui.home |
||||||
|
|
||||||
import android.content.Intent |
|
||||||
import android.view.LayoutInflater |
import android.view.LayoutInflater |
||||||
import android.view.ViewGroup |
import android.view.ViewGroup |
||||||
import com.project.survey.databinding.FragmentMeBinding |
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.login.LoginActivity |
||||||
import com.project.survey.ui.project.ProjectListActivity |
import com.project.survey.ui.project.ProjectListActivity |
||||||
|
|
||||||
class MeFragment : BaseFragmentBinding<FragmentMeBinding>() { |
/** |
||||||
override fun getViewBinding( |
* 我的 |
||||||
inflater: LayoutInflater, |
*/ |
||||||
container: ViewGroup? |
class MeFragment : BaseBindingFragment<FragmentMeBinding>() { |
||||||
): FragmentMeBinding { |
|
||||||
|
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentMeBinding { |
||||||
return FragmentMeBinding.inflate(inflater, container, false) |
return FragmentMeBinding.inflate(inflater, container, false) |
||||||
} |
} |
||||||
|
|
||||||
override fun initView() { |
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 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"?> |
<?xml version="1.0" encoding="utf-8"?> |
||||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" |
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
xmlns:app="http://schemas.android.com/apk/res-auto" |
xmlns:app="http://schemas.android.com/apk/res-auto" |
||||||
|
xmlns:tools="http://schemas.android.com/tools" |
||||||
android:layout_width="match_parent" |
android:layout_width="match_parent" |
||||||
android:layout_height="match_parent" |
android:layout_height="match_parent" |
||||||
android:orientation="vertical"> |
android:orientation="vertical"> |
||||||
|
|
||||||
<ImageView |
<ImageView |
||||||
android:layout_width="match_parent" |
android:layout_width="match_parent" |
||||||
android:layout_height="@dimen/sw_160dp" |
android:layout_height="209dp" |
||||||
android:background="@drawable/bg_top_blue" |
android:background="@drawable/bg_top_blue" |
||||||
app:layout_constraintStart_toStartOf="parent" |
|
||||||
app:layout_constraintTop_toTopOf="parent" /> |
app:layout_constraintTop_toTopOf="parent" /> |
||||||
|
|
||||||
<TextView |
<TextView |
||||||
android:id="@+id/tvProject" |
android:id="@+id/tvProject" |
||||||
android:layout_width="wrap_content" |
android:layout_width="wrap_content" |
||||||
android:layout_height="wrap_content" |
android:layout_height="wrap_content" |
||||||
android:layout_marginHorizontal="@dimen/sw_20dp" |
android:layout_marginHorizontal="@dimen/margin_side" |
||||||
android:layout_marginTop="@dimen/sw_20dp" |
android:layout_marginTop="@dimen/margin_side" |
||||||
android:text="某工程" |
android:textColor="@color/text_color_fff" |
||||||
android:textColor="@color/white" |
android:textSize="20sp" |
||||||
android:textSize="@dimen/sw_20sp" |
|
||||||
android:textStyle="bold" |
android:textStyle="bold" |
||||||
app:layout_constraintStart_toStartOf="parent" |
app:layout_constraintStart_toStartOf="parent" |
||||||
app:layout_constraintTop_toTopOf="parent" /> |
app:layout_constraintTop_toTopOf="parent" |
||||||
|
tools:text="某工程" /> |
||||||
|
|
||||||
<LinearLayout |
<androidx.constraintlayout.widget.ConstraintLayout |
||||||
android:id="@+id/llFirst" |
android:id="@+id/layoutFirst" |
||||||
android:layout_width="match_parent" |
android:layout_width="match_parent" |
||||||
android:layout_height="wrap_content" |
android:layout_height="wrap_content" |
||||||
android:layout_marginHorizontal="@dimen/sw_20dp" |
android:layout_marginHorizontal="@dimen/margin_side" |
||||||
android:layout_marginTop="@dimen/sw_16dp" |
android:layout_marginTop="@dimen/margin_side" |
||||||
android:background="@drawable/bg_white_round_8" |
android:background="@drawable/bg_section_r_8_top" |
||||||
android:orientation="vertical" |
android:padding="@dimen/padding_side" |
||||||
android:padding="@dimen/sw_18dp" |
|
||||||
app:layout_constraintStart_toStartOf="parent" |
app:layout_constraintStart_toStartOf="parent" |
||||||
app:layout_constraintTop_toBottomOf="@+id/tvProject"> |
app:layout_constraintTop_toBottomOf="@+id/tvProject"> |
||||||
|
|
||||||
<TextView |
<TextView |
||||||
|
android:id="@+id/tvTitle1" |
||||||
android:layout_width="wrap_content" |
android:layout_width="wrap_content" |
||||||
android:layout_height="wrap_content" |
android:layout_height="wrap_content" |
||||||
android:gravity="center" |
|
||||||
android:text="@string/beidou_application" |
android:text="@string/beidou_application" |
||||||
android:textColor="@color/text_color_1" |
android:textColor="@color/text_color_main" |
||||||
android:textSize="@dimen/sw_14sp" |
android:textSize="@dimen/text_size_section_title" |
||||||
android:textStyle="bold" /> |
android:textStyle="bold" |
||||||
|
app:layout_constraintStart_toStartOf="parent" |
||||||
<LinearLayout |
app:layout_constraintTop_toTopOf="parent" /> |
||||||
android:layout_width="match_parent" |
|
||||||
|
<com.project.survey.widget.SectionItemWidget |
||||||
|
android:id="@+id/itemPointMeasure" |
||||||
|
android:layout_width="0dp" |
||||||
android:layout_height="wrap_content" |
android:layout_height="wrap_content" |
||||||
android:layout_marginTop="@dimen/sw_12dp" |
app:layout_constraintEnd_toStartOf="@id/itemLofting" |
||||||
android:orientation="horizontal" |
app:layout_constraintHorizontal_weight="1" |
||||||
android:weightSum="3"> |
app:layout_constraintStart_toStartOf="parent" |
||||||
|
app:layout_constraintTop_toBottomOf="@id/tvTitle1" |
||||||
<TextView |
app:siw_icon="@drawable/icon_point_measurement" |
||||||
android:id="@+id/tvPointMeasure" |
app:siw_name="@string/point_measurement" /> |
||||||
android:layout_width="0dp" |
|
||||||
android:layout_height="wrap_content" |
<com.project.survey.widget.SectionItemWidget |
||||||
android:layout_weight="1" |
android:id="@+id/itemLofting" |
||||||
android:drawablePadding="@dimen/sw_8dp" |
android:layout_width="0dp" |
||||||
android:gravity="center" |
android:layout_height="wrap_content" |
||||||
android:text="@string/point_measurement" |
app:layout_constraintEnd_toStartOf="@id/viewSpacer1" |
||||||
android:textColor="@color/text_color_1" |
app:layout_constraintHorizontal_weight="1" |
||||||
android:textSize="@dimen/sw_13sp" |
app:layout_constraintStart_toEndOf="@id/itemPointMeasure" |
||||||
app:drawableTopCompat="@drawable/ic_point_measurement" /> |
app:layout_constraintTop_toTopOf="@id/itemPointMeasure" |
||||||
|
app:siw_icon="@drawable/icon_lofting" |
||||||
<TextView |
app:siw_name="@string/stakeout" /> |
||||||
android:id="@+id/tvLofting" |
|
||||||
android:layout_width="0dp" |
<View |
||||||
android:layout_height="wrap_content" |
android:id="@+id/viewSpacer1" |
||||||
android:layout_weight="1" |
android:layout_width="0dp" |
||||||
android:drawablePadding="@dimen/sw_8dp" |
android:layout_height="1dp" |
||||||
android:gravity="center" |
app:layout_constraintEnd_toEndOf="parent" |
||||||
android:text="@string/stakeout" |
app:layout_constraintHorizontal_weight="1" |
||||||
android:textColor="@color/text_color_1" |
app:layout_constraintStart_toEndOf="@id/itemLofting" |
||||||
android:textSize="@dimen/sw_13sp" |
app:layout_constraintTop_toTopOf="@id/itemPointMeasure" /> |
||||||
app:drawableTopCompat="@drawable/stakeout" /> |
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout> |
||||||
</LinearLayout> |
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout |
||||||
</LinearLayout> |
android:id="@+id/layoutSecond" |
||||||
|
|
||||||
<LinearLayout |
|
||||||
android:id="@+id/llSecond" |
|
||||||
android:layout_width="match_parent" |
android:layout_width="match_parent" |
||||||
android:layout_height="wrap_content" |
android:layout_height="wrap_content" |
||||||
android:layout_marginHorizontal="@dimen/sw_20dp" |
android:layout_marginHorizontal="@dimen/margin_side" |
||||||
android:layout_marginTop="@dimen/sw_16dp" |
android:layout_marginTop="@dimen/margin_side" |
||||||
android:background="@drawable/bg_white_round_8" |
android:background="@drawable/bg_section_r_8" |
||||||
android:orientation="vertical" |
android:padding="@dimen/padding_side" |
||||||
android:padding="@dimen/sw_18dp" |
|
||||||
app:layout_constraintStart_toStartOf="parent" |
app:layout_constraintStart_toStartOf="parent" |
||||||
app:layout_constraintTop_toBottomOf="@+id/llFirst"> |
app:layout_constraintTop_toBottomOf="@+id/layoutFirst"> |
||||||
|
|
||||||
<TextView |
<TextView |
||||||
|
android:id="@+id/tvTitle2" |
||||||
android:layout_width="wrap_content" |
android:layout_width="wrap_content" |
||||||
android:layout_height="wrap_content" |
android:layout_height="wrap_content" |
||||||
android:gravity="center" |
|
||||||
android:text="@string/process_approval" |
android:text="@string/process_approval" |
||||||
android:textColor="@color/text_color_1" |
android:textColor="@color/text_color_main" |
||||||
android:textSize="@dimen/sw_14sp" |
android:textSize="@dimen/text_size_section_title" |
||||||
android:textStyle="bold" /> |
android:textStyle="bold" |
||||||
|
app:layout_constraintStart_toStartOf="parent" |
||||||
<LinearLayout |
app:layout_constraintTop_toTopOf="parent" /> |
||||||
android:layout_width="match_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_height="wrap_content" |
||||||
android:layout_marginTop="@dimen/sw_12dp" |
app:layout_constraintEnd_toStartOf="@id/itemInitiated" |
||||||
android:orientation="horizontal" |
app:layout_constraintHorizontal_weight="1" |
||||||
android:weightSum="3"> |
app:layout_constraintStart_toEndOf="@id/itemToBeProcessed" |
||||||
|
app:layout_constraintTop_toTopOf="@id/itemToBeProcessed" |
||||||
<RelativeLayout |
app:siw_icon="@drawable/icon_processed" |
||||||
android:id="@+id/rlApprovalWait" |
app:siw_name="@string/processed" /> |
||||||
android:layout_width="0dp" |
|
||||||
android:layout_height="wrap_content" |
<com.project.survey.widget.SectionItemWidget |
||||||
android:layout_weight="1" |
android:id="@+id/itemInitiated" |
||||||
android:gravity="center"> |
android:layout_width="0dp" |
||||||
|
android:layout_height="wrap_content" |
||||||
<TextView |
app:layout_constraintEnd_toEndOf="parent" |
||||||
android:id="@+id/tvA" |
app:layout_constraintHorizontal_weight="1" |
||||||
android:layout_width="wrap_content" |
app:layout_constraintStart_toEndOf="@id/itemProcessed" |
||||||
android:layout_height="wrap_content" |
app:layout_constraintTop_toTopOf="@id/itemToBeProcessed" |
||||||
android:drawablePadding="@dimen/sw_8dp" |
app:siw_icon="@drawable/icon_initiated" |
||||||
android:gravity="center" |
app:siw_name="@string/initiated" /> |
||||||
android:text="@string/to_be_processed" |
|
||||||
android:textColor="@color/text_color_1" |
</androidx.constraintlayout.widget.ConstraintLayout> |
||||||
android:textSize="@dimen/sw_13sp" |
|
||||||
app:drawableTopCompat="@drawable/processed" /> |
<androidx.constraintlayout.widget.ConstraintLayout |
||||||
|
|
||||||
<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 |
|
||||||
android:id="@+id/llThird" |
android:id="@+id/llThird" |
||||||
android:layout_width="match_parent" |
android:layout_width="match_parent" |
||||||
android:layout_height="wrap_content" |
android:layout_height="wrap_content" |
||||||
android:layout_marginHorizontal="@dimen/sw_20dp" |
android:layout_marginHorizontal="@dimen/margin_side" |
||||||
android:layout_marginTop="@dimen/sw_16dp" |
android:layout_marginTop="@dimen/margin_side" |
||||||
android:background="@drawable/bg_white_round_8" |
android:background="@drawable/bg_section_r_8" |
||||||
android:orientation="vertical" |
android:padding="@dimen/padding_side" |
||||||
android:padding="@dimen/sw_18dp" |
|
||||||
app:layout_constraintStart_toStartOf="parent" |
app:layout_constraintStart_toStartOf="parent" |
||||||
app:layout_constraintTop_toBottomOf="@+id/llSecond"> |
app:layout_constraintTop_toBottomOf="@+id/layoutSecond"> |
||||||
|
|
||||||
<TextView |
<TextView |
||||||
|
android:id="@+id/tvTitle3" |
||||||
android:layout_width="wrap_content" |
android:layout_width="wrap_content" |
||||||
android:layout_height="wrap_content" |
android:layout_height="wrap_content" |
||||||
android:gravity="center" |
|
||||||
android:text="@string/engineering_control_network" |
android:text="@string/engineering_control_network" |
||||||
android:textColor="@color/text_color_1" |
android:textColor="@color/text_color_main" |
||||||
android:textSize="@dimen/sw_14sp" |
android:textSize="@dimen/text_size_section_title" |
||||||
android:textStyle="bold" /> |
android:textStyle="bold" |
||||||
|
app:layout_constraintStart_toStartOf="parent" |
||||||
<LinearLayout |
app:layout_constraintTop_toTopOf="parent" /> |
||||||
android:layout_width="match_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_height="wrap_content" |
||||||
android:layout_marginTop="@dimen/sw_12dp" |
app:layout_constraintEnd_toStartOf="@id/viewSpacer3" |
||||||
android:orientation="horizontal" |
app:layout_constraintHorizontal_weight="1" |
||||||
android:weightSum="3"> |
app:layout_constraintStart_toEndOf="@id/itemControlNetFirst" |
||||||
|
app:layout_constraintTop_toTopOf="@id/itemControlNetFirst" |
||||||
<TextView |
app:siw_icon="@drawable/icon_dedicated_control_network" |
||||||
android:id="@+id/tvControlNetFirst" |
app:siw_name="@string/dedicated_control_network" /> |
||||||
android:layout_width="0dp" |
|
||||||
android:layout_height="wrap_content" |
<View |
||||||
android:layout_weight="1" |
android:id="@+id/viewSpacer3" |
||||||
android:drawablePadding="@dimen/sw_8dp" |
android:layout_width="0dp" |
||||||
android:gravity="center" |
android:layout_height="1dp" |
||||||
android:text="@string/head_control_network" |
app:layout_constraintEnd_toEndOf="parent" |
||||||
android:textColor="@color/text_color_1" |
app:layout_constraintHorizontal_weight="1" |
||||||
android:textSize="@dimen/sw_13sp" |
app:layout_constraintStart_toEndOf="@id/itemControlNetSpecial" |
||||||
app:drawableTopCompat="@drawable/head_control_network" /> |
app:layout_constraintTop_toTopOf="@id/itemControlNetFirst" /> |
||||||
|
|
||||||
<TextView |
</androidx.constraintlayout.widget.ConstraintLayout> |
||||||
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> |
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout> |
</androidx.constraintlayout.widget.ConstraintLayout> |
@ -1,209 +1,174 @@ |
|||||||
<?xml version="1.0" encoding="utf-8"?> |
<?xml version="1.0" encoding="utf-8"?> |
||||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" |
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
xmlns:app="http://schemas.android.com/apk/res-auto" |
xmlns:app="http://schemas.android.com/apk/res-auto" |
||||||
|
xmlns:tools="http://schemas.android.com/tools" |
||||||
android:layout_width="match_parent" |
android:layout_width="match_parent" |
||||||
android:layout_height="match_parent" |
android:layout_height="match_parent" |
||||||
android:orientation="vertical"> |
android:orientation="vertical"> |
||||||
|
|
||||||
<ImageView |
<ImageView |
||||||
android:layout_width="match_parent" |
android:layout_width="match_parent" |
||||||
android:layout_height="@dimen/sw_160dp" |
android:layout_height="209dp" |
||||||
android:background="@drawable/bg_top_blue" |
android:background="@drawable/bg_top_blue" |
||||||
app:layout_constraintStart_toStartOf="parent" |
|
||||||
app:layout_constraintTop_toTopOf="parent" /> |
app:layout_constraintTop_toTopOf="parent" /> |
||||||
|
|
||||||
<TextView |
<TextView |
||||||
android:id="@+id/tvProject" |
android:id="@+id/tvProject" |
||||||
android:layout_width="wrap_content" |
android:layout_width="wrap_content" |
||||||
android:layout_height="wrap_content" |
android:layout_height="wrap_content" |
||||||
android:layout_marginHorizontal="@dimen/sw_20dp" |
android:layout_marginHorizontal="@dimen/margin_side" |
||||||
android:layout_marginTop="@dimen/sw_20dp" |
android:layout_marginTop="@dimen/margin_side" |
||||||
android:text="某工程" |
android:textColor="@color/text_color_fff" |
||||||
android:textColor="@color/white" |
android:textSize="20sp" |
||||||
android:textSize="@dimen/sw_20sp" |
|
||||||
android:textStyle="bold" |
android:textStyle="bold" |
||||||
app:layout_constraintStart_toStartOf="parent" |
app:layout_constraintStart_toStartOf="parent" |
||||||
app:layout_constraintTop_toTopOf="parent" /> |
app:layout_constraintTop_toTopOf="parent" |
||||||
|
tools:text="某工程" /> |
||||||
|
|
||||||
<LinearLayout |
<androidx.constraintlayout.widget.ConstraintLayout |
||||||
android:id="@+id/llFirst" |
android:id="@+id/layoutFirst" |
||||||
android:layout_width="match_parent" |
android:layout_width="match_parent" |
||||||
android:layout_height="wrap_content" |
android:layout_height="wrap_content" |
||||||
android:layout_marginHorizontal="@dimen/sw_20dp" |
android:layout_marginHorizontal="@dimen/margin_side" |
||||||
android:layout_marginTop="@dimen/sw_16dp" |
android:layout_marginTop="@dimen/margin_side" |
||||||
android:background="@drawable/bg_white_round_8" |
android:background="@drawable/bg_section_r_8_top" |
||||||
android:orientation="vertical" |
android:padding="@dimen/padding_side" |
||||||
android:padding="@dimen/sw_18dp" |
|
||||||
app:layout_constraintStart_toStartOf="parent" |
app:layout_constraintStart_toStartOf="parent" |
||||||
app:layout_constraintTop_toBottomOf="@+id/tvProject"> |
app:layout_constraintTop_toBottomOf="@+id/tvProject"> |
||||||
|
|
||||||
<TextView |
<TextView |
||||||
|
android:id="@+id/tvTitle1" |
||||||
android:layout_width="wrap_content" |
android:layout_width="wrap_content" |
||||||
android:layout_height="wrap_content" |
android:layout_height="wrap_content" |
||||||
android:gravity="center" |
|
||||||
android:text="@string/instrument_online" |
android:text="@string/instrument_online" |
||||||
android:textColor="@color/text_color_1" |
android:textColor="@color/text_color_main" |
||||||
android:textSize="@dimen/sw_14sp" |
android:textSize="@dimen/text_size_section_title" |
||||||
android:textStyle="bold" /> |
android:textStyle="bold" |
||||||
|
app:layout_constraintStart_toStartOf="parent" |
||||||
<LinearLayout |
app:layout_constraintTop_toTopOf="parent" /> |
||||||
android:layout_width="match_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_height="wrap_content" |
||||||
android:layout_marginTop="@dimen/sw_12dp" |
app:layout_constraintEnd_toEndOf="parent" |
||||||
android:orientation="horizontal" |
app:layout_constraintHorizontal_weight="1" |
||||||
android:weightSum="3"> |
app:layout_constraintStart_toEndOf="@id/itemConnectRTK" |
||||||
|
app:layout_constraintTop_toTopOf="@id/itemConnectTotalStation" |
||||||
<TextView |
app:siw_icon="@drawable/satellite_status" |
||||||
android:id="@+id/tvConnectTSActivity" |
app:siw_name="@string/satellite_status" /> |
||||||
android:layout_width="0dp" |
</androidx.constraintlayout.widget.ConstraintLayout> |
||||||
android:layout_height="wrap_content" |
|
||||||
android:layout_weight="1" |
<androidx.constraintlayout.widget.ConstraintLayout |
||||||
android:drawablePadding="@dimen/sw_8dp" |
android:id="@+id/layoutSecond" |
||||||
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" |
|
||||||
android:layout_width="match_parent" |
android:layout_width="match_parent" |
||||||
android:layout_height="wrap_content" |
android:layout_height="wrap_content" |
||||||
android:layout_marginHorizontal="@dimen/sw_20dp" |
android:layout_marginHorizontal="@dimen/margin_side" |
||||||
android:layout_marginTop="@dimen/sw_16dp" |
android:layout_marginTop="@dimen/margin_side" |
||||||
android:background="@drawable/bg_white_round_8" |
android:background="@drawable/bg_section_r_8" |
||||||
android:orientation="vertical" |
android:padding="@dimen/padding_side" |
||||||
android:padding="@dimen/sw_18dp" |
|
||||||
app:layout_constraintStart_toStartOf="parent" |
app:layout_constraintStart_toStartOf="parent" |
||||||
app:layout_constraintTop_toBottomOf="@+id/llFirst"> |
app:layout_constraintTop_toBottomOf="@+id/layoutFirst"> |
||||||
|
|
||||||
<TextView |
<TextView |
||||||
|
android:id="@+id/tvTitle2" |
||||||
android:layout_width="wrap_content" |
android:layout_width="wrap_content" |
||||||
android:layout_height="wrap_content" |
android:layout_height="wrap_content" |
||||||
android:gravity="center" |
|
||||||
android:text="@string/job_settings" |
android:text="@string/job_settings" |
||||||
android:textColor="@color/text_color_1" |
android:textColor="@color/text_color_main" |
||||||
android:textSize="@dimen/sw_14sp" |
android:textSize="@dimen/text_size_section_title" |
||||||
android:textStyle="bold" /> |
android:textStyle="bold" |
||||||
|
app:layout_constraintStart_toStartOf="parent" |
||||||
<LinearLayout |
app:layout_constraintTop_toTopOf="parent" /> |
||||||
android:layout_width="match_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_height="wrap_content" |
||||||
android:layout_marginTop="@dimen/sw_12dp" |
app:layout_constraintEnd_toStartOf="@id/itemPointCorrection" |
||||||
android:orientation="horizontal" |
app:layout_constraintHorizontal_weight="1" |
||||||
android:weightSum="3"> |
app:layout_constraintStart_toEndOf="@id/itemBaseStationTranslation" |
||||||
|
app:layout_constraintTop_toTopOf="@id/itemBaseStationTranslation" |
||||||
<TextView |
app:siw_icon="@drawable/coordinate_system" |
||||||
android:id="@+id/tvTotalStationSetupStation" |
app:siw_name="@string/coordinate_system" /> |
||||||
android:layout_width="0dp" |
|
||||||
android:layout_height="wrap_content" |
<com.project.survey.widget.SectionItemWidget |
||||||
android:layout_weight="1" |
android:id="@+id/itemPointCorrection" |
||||||
android:drawablePadding="@dimen/sw_8dp" |
android:layout_width="0dp" |
||||||
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" |
|
||||||
android:layout_height="wrap_content" |
android:layout_height="wrap_content" |
||||||
android:layout_marginTop="@dimen/sw_12dp" |
app:layout_constraintEnd_toEndOf="parent" |
||||||
android:orientation="horizontal" |
app:layout_constraintHorizontal_weight="1" |
||||||
android:weightSum="3"> |
app:layout_constraintStart_toEndOf="@id/itemCoordinateSystem" |
||||||
|
app:layout_constraintTop_toTopOf="@id/itemBaseStationTranslation" |
||||||
<TextView |
app:siw_icon="@drawable/point_correction" |
||||||
android:id="@+id/tvBaseStationTranslation" |
app:siw_name="@string/point_correction" /> |
||||||
android:layout_width="0dp" |
|
||||||
android:layout_height="wrap_content" |
</androidx.constraintlayout.widget.ConstraintLayout> |
||||||
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> |
|
||||||
|
|
||||||
</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 |