Browse Source

feat 增加选择界面

RobinTan1024 4 years ago
parent
commit
ff3180861f

+ 13 - 11
app/src/main/java/com/doverfuelingsolutions/issp/utils/ActivityUtil.kt

@@ -1,31 +1,33 @@
 package com.doverfuelingsolutions.issp.utils
 
-import android.os.Build
-import android.os.Handler
 import android.view.View
-import android.view.WindowInsets
 import androidx.appcompat.app.AppCompatActivity
+import androidx.lifecycle.lifecycleScope
 import com.doverfuelingsolutions.issp.utils.log.DFSLog
+import kotlinx.coroutines.delay
 
 class ActivityUtil {
 
     companion object {
 
+        @Suppress("DEPRECATION")
         fun setFullscreen(activity: AppCompatActivity) {
             makeFullscreen(activity)
-            Handler(activity.mainLooper).postDelayed({
-                makeFullscreen(activity)
-            }, 1000)
 
+            activity.window.decorView.setOnSystemUiVisibilityChangeListener {
+                makeFullscreen(activity)
+            }
         }
 
         @Suppress("DEPRECATION")
         private fun makeFullscreen(activity: AppCompatActivity) {
-            if (activity.isFinishing || activity.isDestroyed) return
-
-            activity.supportActionBar?.hide()
-            activity.window.decorView.systemUiVisibility =
-                View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY or View.SYSTEM_UI_FLAG_FULLSCREEN or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+            val systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY or View.SYSTEM_UI_FLAG_FULLSCREEN or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+            activity.lifecycleScope.launchWhenStarted {
+                activity.supportActionBar?.hide()
+                activity.window.decorView.systemUiVisibility = systemUiVisibility
+                delay(1000)
+                activity.window.decorView.systemUiVisibility = systemUiVisibility
+            }
         }
     }
 }

+ 23 - 8
app/src/main/java/com/doverfuelingsolutions/issp/view/MainActivity.kt

@@ -7,13 +7,17 @@ import android.os.Bundle
 import android.view.View
 import androidx.appcompat.app.AppCompatActivity
 import androidx.databinding.DataBindingUtil
+import androidx.fragment.app.add
 import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.ViewModel
+import androidx.lifecycle.lifecycleScope
 import com.doverfuelingsolutions.issp.R
 import com.doverfuelingsolutions.issp.data.DataStore
 import com.doverfuelingsolutions.issp.databinding.ActivityMainBinding
 import com.doverfuelingsolutions.issp.fusion.FusionManager
 import com.doverfuelingsolutions.issp.utils.ActivityUtil
+import com.doverfuelingsolutions.issp.view.fragment.SearchTypeFragment
+import com.doverfuelingsolutions.issp.view.fragment.SettingsFragment
 import com.youth.banner.adapter.BannerImageAdapter
 import com.youth.banner.holder.BannerImageHolder
 import kotlinx.coroutines.CoroutineScope
@@ -32,8 +36,6 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
     private lateinit var activityMainBinding: ActivityMainBinding
     private val mainViewModel = MainViewModel()
 
-    private val coroutineScope = CoroutineScope(Dispatchers.Main)
-
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         activityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main)
@@ -47,7 +49,9 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
 
         lifecycle.addObserver(FusionManager)
 
-        activityMainBinding.textClock.setOnClickListener(this)
+        supportFragmentManager.beginTransaction()
+            .add(R.id.mainFragment, SearchTypeFragment())
+            .commit()
     }
 
     override fun onResume() {
@@ -57,7 +61,12 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
 
     override fun onClick(v: View?) {
         when (v) {
-            activityMainBinding.textClock -> SettingsActivity.start(this)
+            activityMainBinding.textClock -> {
+                supportFragmentManager.beginTransaction()
+                    .add(R.id.mainFragment, SettingsFragment())
+                    .addToBackStack(SettingsFragment::class.java.simpleName)
+                    .commit()
+            }
         }
     }
 
@@ -65,11 +74,17 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
         activityMainBinding.banner.run {
             addBannerLifecycleObserver(this@MainActivity)
             scrollTime = 500
-            adapter = object : BannerImageAdapter<Int>(listOf(R.mipmap.banner_1, R.mipmap.banner_2)) {
-                override fun onBindView(holder: BannerImageHolder, data: Int, position: Int, size: Int) {
-                    holder.imageView.setImageResource(data)
+            adapter =
+                object : BannerImageAdapter<Int>(listOf(R.mipmap.banner_1, R.mipmap.banner_2)) {
+                    override fun onBindView(
+                        holder: BannerImageHolder,
+                        data: Int,
+                        position: Int,
+                        size: Int
+                    ) {
+                        holder.imageView.setImageResource(data)
+                    }
                 }
-            }
         }
     }
 

+ 20 - 0
app/src/main/java/com/doverfuelingsolutions/issp/view/fragment/SearchTypeFragment.kt

@@ -0,0 +1,20 @@
+package com.doverfuelingsolutions.issp.view.fragment
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.databinding.DataBindingUtil
+import androidx.fragment.app.Fragment
+import com.doverfuelingsolutions.issp.R
+import com.doverfuelingsolutions.issp.databinding.FragmentSearchTypeBinding
+
+class SearchTypeFragment : Fragment() {
+
+    private lateinit var binding: FragmentSearchTypeBinding
+
+    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
+        binding = DataBindingUtil.inflate(inflater, R.layout.fragment_search_type, container, false)
+        return binding.root
+    }
+}

+ 4 - 3
app/src/main/res/layout/activity_main.xml

@@ -39,7 +39,7 @@
                 android:layout_marginStart="30dp"
                 android:layout_weight="1"
                 android:text="@{ mainViewModel.stationName, default=@string/example_company_name }"
-                android:textColor="@color/black"
+                android:textColor="@color/color333"
                 android:textSize="32sp" />
 
             <ImageView
@@ -55,7 +55,7 @@
                 android:format12Hour="@string/format_date"
                 android:format24Hour="@string/format_date"
                 android:text="@string/example_format_date"
-                android:textColor="@color/black"
+                android:textColor="@color/color555"
                 android:textSize="26sp" />
         </LinearLayout>
 
@@ -71,7 +71,8 @@
                 android:layout_height="0dp"
                 android:layout_weight="1" />
 
-            <LinearLayout
+            <RelativeLayout
+                android:id="@+id/mainFragment"
                 android:layout_width="match_parent"
                 android:layout_height="0dp"
                 android:layout_weight="2" />

+ 94 - 0
app/src/main/res/layout/fragment_search_type.xml

@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
+
+    <data>
+
+    </data>
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        style="@style/match"
+        android:paddingStart="50dp"
+        android:paddingEnd="50dp"
+        android:paddingTop="40dp"
+        android:paddingBottom="140dp">
+
+        <TextView
+            android:id="@+id/mainTip"
+            style="@style/wrap"
+            android:text="@string/select_search"
+            android:textColor="@color/color555"
+            android:textSize="52sp"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <LinearLayout
+            style="@style/fullWidth"
+            android:gravity="center"
+            android:orientation="horizontal"
+            app:layout_constraintBottom_toTopOf="@id/bottomInfo"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@id/mainTip">
+
+            <ImageView
+                android:layout_width="500dp"
+                android:layout_height="427dp"
+                android:contentDescription="@string/select_oil"
+                android:src="@mipmap/choose_nozzle" />
+
+            <ImageView
+                android:layout_width="500dp"
+                android:layout_height="427dp"
+                android:layout_marginStart="30dp"
+                android:contentDescription="@string/select_oil"
+                android:src="@mipmap/choose_oil" />
+        </LinearLayout>
+
+        <androidx.constraintlayout.widget.ConstraintLayout
+            android:id="@+id/bottomInfo"
+            style="@style/fullWidth"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintStart_toStartOf="parent">
+
+            <ImageView
+                android:id="@+id/mpEntry"
+                android:layout_width="240dp"
+                android:layout_height="240dp"
+                android:contentDescription="@string/mini_program"
+                android:src="@mipmap/ic_mini_program"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintStart_toEndOf="@id/mainAttention"
+                app:layout_constraintTop_toTopOf="parent" />
+
+            <ImageView
+                android:id="@+id/mainAttention"
+                android:layout_width="652dp"
+                android:layout_height="120dp"
+                android:contentDescription="@string/attention"
+                android:src="@mipmap/ic_please_attention"
+                app:layout_constraintBottom_toBottomOf="@id/mpEntry"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toTopOf="@id/mpEntry" />
+
+            <TextView
+                android:id="@+id/deviceNum"
+                style="@style/wrap"
+                android:layout_marginStart="30dp"
+                android:layout_marginTop="30dp"
+                android:text="@string/device_num_is"
+                android:textSize="28sp"
+                app:layout_constraintStart_toStartOf="@id/mainAttention"
+                app:layout_constraintTop_toBottomOf="@id/mainAttention" />
+
+            <TextView
+                android:id="@+id/versionNum"
+                style="@style/wrap"
+                android:layout_marginStart="30dp"
+                android:layout_marginTop="20dp"
+                android:text="@string/version_is"
+                android:textSize="28sp"
+                app:layout_constraintStart_toStartOf="@id/mainAttention"
+                app:layout_constraintTop_toBottomOf="@id/deviceNum" />
+        </androidx.constraintlayout.widget.ConstraintLayout>
+    </androidx.constraintlayout.widget.ConstraintLayout>
+</layout>

BIN
app/src/main/res/mipmap-mdpi/activity_background.png


BIN
app/src/main/res/mipmap-mdpi/banner_1.png


BIN
app/src/main/res/mipmap-mdpi/banner_2.png


BIN
app/src/main/res/mipmap-mdpi/choose_nozzle.png


BIN
app/src/main/res/mipmap-mdpi/choose_oil.png


BIN
app/src/main/res/mipmap-mdpi/ic_mini_program.png


BIN
app/src/main/res/mipmap-mdpi/ic_please_attention.png


BIN
app/src/main/res/mipmap-mdpi/launcher.png


+ 6 - 0
app/src/main/res/values/colors.xml

@@ -14,4 +14,10 @@
     <color name="gray">#FF888888</color>
     <color name="black">#FF000000</color>
     <color name="white">#FFFFFFFF</color>
+    <color name="color333">#333</color>
+    <color name="color555">#555</color>
+    <color name="color777">#777</color>
+    <color name="color999">#999</color>
+    <color name="colorBBB">#bbb</color>
+    <color name="colorDDD">#ddd</color>
 </resources>

+ 8 - 0
app/src/main/res/values/strings.xml

@@ -36,6 +36,14 @@
     <string name="port">端口</string>
     <string name="not_set">未设置</string>
 
+    <string name="select_search">请选择加油支付</string>
+    <string name="select_oil">选择油品</string>
+    <string name="select_nozzle">选择枪号</string>
+    <string name="mini_program">微信小程序二维码</string>
+    <string name="attention">注意</string>
+    <string name="device_num_is">设备编码:%1$s</string>
+    <string name="version_is">版本号:%1$s</string>
+
     <string name="format_date">yyyy-MM-dd HH:mm:ss</string>
 
     <string name="example_format_date">2020–12–25 12:25:00</string>