Commit be509ff3 authored by 马乐's avatar 马乐

1.增加欢迎页UI

parent 928a7ec7
This source diff could not be displayed because it is too large. You can view the blob instead.
package com.waytous.anticollision
import android.os.Bundle
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import com.waytous.anticollision.databinding.ActivitySplashBinding
class SplashActivity : AppCompatActivity() {
private lateinit var binding:ActivitySplashBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
window.decorView.apply {
// Hide both the navigation bar and the status bar.
// SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
// a general rule, you should design your app to hide the status bar whenever you
// hide the navigation bar.
systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN
}
binding = ActivitySplashBinding.inflate(layoutInflater)
setContentView(binding.root)
"${getString(R.string.text_progress, 26)}%".also { binding.textProgress.text = it }
binding.loadingProgressBar.progress = 26
binding.loadingProgressBar.show()
}
}
\ No newline at end of file
package com.waytous.anticollision package com.waytous.anticollision.activity
import android.os.Bundle import android.os.Bundle
import android.os.RecoverySystem
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.ui.setupWithNavController import androidx.navigation.ui.setupWithNavController
import com.blankj.utilcode.util.Utils
import com.google.android.material.bottomnavigation.BottomNavigationView import com.google.android.material.bottomnavigation.BottomNavigationView
import com.gyf.immersionbar.ImmersionBar import com.gyf.immersionbar.ImmersionBar
import com.waytous.anticollision.R
import com.waytous.anticollision.config.DeviceConfig import com.waytous.anticollision.config.DeviceConfig
import com.waytous.anticollision.databinding.ActivityMainBinding import com.waytous.anticollision.databinding.ActivityMainBinding
import com.waytous.anticollision.tcp.Session import com.waytous.anticollision.tcp.Session
import io.github.toggery.jt808.messagebody.B8001
import kotlin.concurrent.thread import kotlin.concurrent.thread
class MainActivity : AppCompatActivity() { class MainActivity : AppCompatActivity() {
...@@ -20,7 +18,6 @@ class MainActivity : AppCompatActivity() { ...@@ -20,7 +18,6 @@ class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
supportActionBar?.hide() supportActionBar?.hide()
ImmersionBar.with(this) ImmersionBar.with(this)
.statusBarAlpha(0.0f) .statusBarAlpha(0.0f)
...@@ -32,10 +29,10 @@ class MainActivity : AppCompatActivity() { ...@@ -32,10 +29,10 @@ class MainActivity : AppCompatActivity() {
DeviceConfig.province = 11 DeviceConfig.province = 11
DeviceConfig.city = 0 DeviceConfig.city = 0
DeviceConfig.phoneNumber = "18801011111" DeviceConfig.phoneNumber = "18801022222"
DeviceConfig.HostConfig.host = "192.168.9.48" DeviceConfig.HostConfig.host = "47.100.112.218"
DeviceConfig.HostConfig.port = 6608 DeviceConfig.HostConfig.port = 8808
val session = Session() val session = Session()
thread { session.login() } thread { session.login() }
} }
......
...@@ -7,16 +7,21 @@ import android.view.ViewGroup ...@@ -7,16 +7,21 @@ import android.view.ViewGroup
import android.widget.TextView import android.widget.TextView
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import com.blankj.utilcode.util.LogUtils
import com.mapbox.geojson.Point import com.mapbox.geojson.Point
import com.mapbox.maps.CameraOptions import com.mapbox.maps.CameraOptions
import com.mapbox.maps.MapView import com.mapbox.maps.MapView
import com.mapbox.maps.Style import com.mapbox.maps.Style
import com.mapbox.maps.extension.observable.eventdata.MapLoadingErrorEventData
import com.mapbox.maps.extension.style.layers.generated.lineLayer import com.mapbox.maps.extension.style.layers.generated.lineLayer
import com.mapbox.maps.extension.style.layers.properties.generated.LineCap import com.mapbox.maps.extension.style.layers.properties.generated.LineCap
import com.mapbox.maps.extension.style.layers.properties.generated.LineJoin import com.mapbox.maps.extension.style.layers.properties.generated.LineJoin
import com.mapbox.maps.extension.style.sources.TileSet import com.mapbox.maps.extension.style.sources.TileSet
import com.mapbox.maps.extension.style.sources.generated.geoJsonSource import com.mapbox.maps.extension.style.sources.generated.geoJsonSource
import com.mapbox.maps.extension.style.style import com.mapbox.maps.extension.style.style
import com.mapbox.maps.plugin.delegates.listeners.OnMapLoadErrorListener
import com.mapbox.maps.renderer.RendererError
import com.mapbox.maps.renderer.RendererSetupErrorListener
import com.waytous.anticollision.databinding.FragmentHomeBinding import com.waytous.anticollision.databinding.FragmentHomeBinding
class HomeFragment : Fragment() { class HomeFragment : Fragment() {
...@@ -48,10 +53,19 @@ class HomeFragment : Fragment() { ...@@ -48,10 +53,19 @@ class HomeFragment : Fragment() {
// )) // ))
.zoom(ZOOM).build() .zoom(ZOOM).build()
) )
mapView.getMapboxMap().loadStyle(style(Style.OUTDOORS){ mapView.getMapboxMap().addOnMapLoadErrorListener(object :OnMapLoadErrorListener{
override fun onMapLoadError(eventData: MapLoadingErrorEventData) {
LogUtils.e("OnMapLoadErrorListener:${eventData.message}")
}
})
mapView.addRendererSetupErrorListener {
error -> LogUtils.e("RendererSetupErrorListener:${error}")
}
mapView.getMapboxMap().loadStyle(style(Style.SATELLITE_STREETS){
+geoJsonSource(GEOJSON_SOURCE_ID) +geoJsonSource(GEOJSON_SOURCE_ID)
{ {
url("asset://multiple_geometry_example.geojson") url("asset://xian.geojson")
} }
// +lineLayer("linelayer", GEOJSON_SOURCE_ID) { // +lineLayer("linelayer", GEOJSON_SOURCE_ID) {
// lineCap(LineCap.ROUND) // lineCap(LineCap.ROUND)
...@@ -70,9 +84,9 @@ class HomeFragment : Fragment() { ...@@ -70,9 +84,9 @@ class HomeFragment : Fragment() {
} }
companion object { companion object {
private const val GEOJSON_SOURCE_ID = "geo-json" private const val GEOJSON_SOURCE_ID = "tile"
private const val LATITUDE = -77.0911931991577 private const val LATITUDE = 108.926593
private const val LONGITUDE = 38.95653886174238 private const val LONGITUDE = 34.213389
private const val ZOOM = 14.0 private const val ZOOM = 14.0
} }
} }
\ No newline at end of file
package com.waytous.anticollision.viewmodel.settings
import androidx.lifecycle.ViewModel
import com.waytous.anticollision.config.Settings
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow
class SettingsViewModel: ViewModel() {
private val settingStatus = MutableStateFlow(Settings)
val _settingsStatus = settingStatus.asStateFlow()
}
\ No newline at end of file
<?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"
tools:context=".SplashActivity">
<ImageView
android:layout_width="166dp"
android:layout_height="25.5dp"
android:contentDescription="@string/waytous_logo"
android:src="@mipmap/waytous_logo"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/loading"
android:textSize="12sp"
android:textColor="@color/color_ff333333"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginBottom="88dp"
/>
<androidx.core.widget.ContentLoadingProgressBar
android:id="@+id/loadingProgressBar"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="340dp"
android:layout_height="10dp"
android:progress="26"
android:visibility="visible"
android:progressDrawable="@drawable/drawable_loading_progress"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginBottom="62dp"
/>
<TextView
android:id="@+id/textProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/text_progress"
android:textSize="10sp"
android:textColor="@color/color_0052D8"
android:layout_marginStart="12.5dp"
app:layout_constraintLeft_toRightOf="@id/loadingProgressBar"
app:layout_constraintTop_toTopOf="@id/loadingProgressBar"
app:layout_constraintBottom_toBottomOf="@id/loadingProgressBar"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?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" />
</adaptive-icon>
\ No newline at end of file
<?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" />
</adaptive-icon>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<navigation 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:id="@+id/activity_navigation"
app:startDestination="@id/splashActivity">
<activity
android:id="@+id/splashActivity"
android:name="com.waytous.anticollision.SplashActivity"
android:label="activity_splash"
tools:layout="@layout/activity_splash" />
<activity
android:id="@+id/mainActivity"
android:name="com.waytous.anticollision.activity.MainActivity"
android:label="MainActivity"
/>
</navigation>
\ No newline at end of file
...@@ -9,8 +9,23 @@ ...@@ -9,8 +9,23 @@
<item name="colorSecondary">@color/teal_200</item> <item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_200</item> <item name="colorSecondaryVariant">@color/teal_200</item>
<item name="colorOnSecondary">@color/black</item> <item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. --> <!--设置顶部状态栏是否为透明-->
<!-- <item name="android:statusBarColor">?attr/colorPrimaryVariant</item>--> <item name="android:windowTranslucentStatus">false</item>
<!-- Customize your theme here. -->
<!--Android 5.x开始需要把颜色设置透明,否则顶部导航栏会呈现系统默认的浅灰色-->
<item name="android:statusBarColor">@android:color/transparent</item>
<!--设置顶部状态栏和底部导航栏是否为透明-->
<item name="android:windowTranslucentNavigation">true</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>
<!-- 启动页 -->
<style name="SplashTheme" parent="Theme.HTAnticollision">
<item name="android:windowDisablePreview">false</item>
</style> </style>
</resources> </resources>
\ No newline at end of file
...@@ -7,4 +7,6 @@ ...@@ -7,4 +7,6 @@
<color name="teal_700">#FF018786</color> <color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color> <color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color> <color name="white">#FFFFFFFF</color>
<color name="color_ff333333">#ff333333</color>
<color name="color_0052D8">#ff0052d8</color>
</resources> </resources>
\ No newline at end of file
...@@ -3,6 +3,8 @@ ...@@ -3,6 +3,8 @@
<string name="title_home">Home</string> <string name="title_home">Home</string>
<string name="title_dashboard">Dashboard</string> <string name="title_dashboard">Dashboard</string>
<string name="title_notifications">Notifications</string> <string name="title_notifications">Notifications</string>
<string name="waytous_logo">waytous</string>
<string name="loading">Loading…</string>
<string name="text_progress">%1$d</string>
<string name="map_box_public_key">pk.eyJ1IjoibWFybGxlciIsImEiOiJjbGVhMXlmeXIwdmRzM29vNmM4aDA1M202In0.tfLD_AOs1OPmg5rLERcbfw</string> <string name="map_box_public_key">pk.eyJ1IjoibWFybGxlciIsImEiOiJjbGVhMXlmeXIwdmRzM29vNmM4aDA1M202In0.tfLD_AOs1OPmg5rLERcbfw</string>
</resources> </resources>
\ No newline at end of file
...@@ -9,8 +9,23 @@ ...@@ -9,8 +9,23 @@
<item name="colorSecondary">@color/teal_200</item> <item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_700</item> <item name="colorSecondaryVariant">@color/teal_700</item>
<item name="colorOnSecondary">@color/black</item> <item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. --> </style>
<!-- <item name="android:statusBarColor">?attr/colorPrimaryVariant</item>--> <!-- 启动页 -->
<!-- Customize your theme here. --> <style name="SplashTheme" parent="Theme.HTAnticollision">
<!--给window窗口设置背景图-->
<item name="android:windowBackground">@mipmap/splash_background</item>
<!--设置顶部状态栏是否为透明-->
<item name="android:windowTranslucentStatus">false</item>
<!--Android 5.x开始需要把颜色设置透明,否则顶部导航栏会呈现系统默认的浅灰色-->
<item name="android:statusBarColor">@android:color/transparent</item>
<!--设置顶部状态栏和底部导航栏是否为透明-->
<item name="android:windowTranslucentNavigation">true</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowDisablePreview">false</item>
</style> </style>
</resources> </resources>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment