aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2022-01-16 18:56:00 -0600
committerIván Ávalos <avalos@disroot.org>2022-01-16 18:56:00 -0600
commit62bd831586fee041a830366c97b07d2cdb52a1b6 (patch)
treea6a2fe6af07009dea1bc5f4b8351e696e719f208
parentf133dc96d4072c3bf4f9794b000b1e0ab946f96b (diff)
downloadetbsa-trackermap-mobile-62bd831586fee041a830366c97b07d2cdb52a1b6.tar.gz
etbsa-trackermap-mobile-62bd831586fee041a830366c97b07d2cdb52a1b6.tar.bz2
etbsa-trackermap-mobile-62bd831586fee041a830366c97b07d2cdb52a1b6.zip
Added device category icon to unit information and commands views
-rw-r--r--androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/DetailsActivity.kt5
-rw-r--r--androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/UnitDetailsAdapter.kt3
-rw-r--r--androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/commands/UnitCommandsFragment.kt16
-rw-r--r--androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/information/UnitInformationFragment.kt14
-rw-r--r--androidApp/src/main/java/mx/trackermap/TrackerMap/android/devices/DevicesFragment.kt1
-rw-r--r--androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/UnitMapFragment.kt1
-rw-r--r--androidApp/src/main/res/layout/unit_details_commands.xml3
-rw-r--r--androidApp/src/main/res/layout/unit_details_information.xml3
8 files changed, 43 insertions, 3 deletions
diff --git a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/DetailsActivity.kt b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/DetailsActivity.kt
index c6d260b..7fd1203 100644
--- a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/DetailsActivity.kt
+++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/DetailsActivity.kt
@@ -22,10 +22,12 @@ class DetailsActivity : AppCompatActivity() {
private lateinit var adapter: UnitDetailsAdapter
private var deviceId: Int = 0
private var deviceName: String = ""
+ private var deviceCategory: String = ""
companion object {
const val DEVICE_ID_EXTRA = "device_id"
const val DEVICE_NAME_EXTRA = "device_name"
+ const val DEVICE_CATEGORY_EXTRA = "device_category"
const val ACTION_EXTRA = "action"
}
@@ -47,11 +49,12 @@ class DetailsActivity : AppCompatActivity() {
private fun initialize() {
deviceId = intent.getIntExtra(DEVICE_ID_EXTRA, 0)
deviceName = intent.getStringExtra(DEVICE_NAME_EXTRA) ?: ""
+ deviceCategory = intent.getStringExtra(DEVICE_CATEGORY_EXTRA) ?: "default"
val initialSection = intent.getSerializableExtra(ACTION_EXTRA) as UnitRenderData.Action
Log.d("DetailsActivity", "Device ID - $deviceId")
Log.d("DetailsActivity", "Initial Section - $initialSection")
- adapter = UnitDetailsAdapter(this, deviceId, deviceName)
+ adapter = UnitDetailsAdapter(this, deviceId, deviceName, deviceCategory)
binding.detailsPager.adapter = adapter
TabLayoutMediator(binding.detailsTabs, binding.detailsPager) { tab, position ->
tab.text = when (position) {
diff --git a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/UnitDetailsAdapter.kt b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/UnitDetailsAdapter.kt
index aed2bd5..8987af1 100644
--- a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/UnitDetailsAdapter.kt
+++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/UnitDetailsAdapter.kt
@@ -14,11 +14,13 @@ class UnitDetailsAdapter(
activity: FragmentActivity,
private val deviceId: Int,
private val deviceName: String,
+ private val deviceCategory: String
) : FragmentStateAdapter(activity) {
companion object {
const val DEVICE_ID_ARG = "device_id"
const val DEVICE_NAME_ARG = "device_name"
+ const val DEVICE_CATEGORY_ARG = "device_category"
}
override fun getItemCount(): Int = 3
@@ -32,6 +34,7 @@ class UnitDetailsAdapter(
fragment.arguments = Bundle().apply {
putInt(DEVICE_ID_ARG, deviceId)
putString(DEVICE_NAME_ARG, deviceName)
+ putString(DEVICE_CATEGORY_ARG, deviceCategory)
}
return fragment
}
diff --git a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/commands/UnitCommandsFragment.kt b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/commands/UnitCommandsFragment.kt
index 822d351..5fc9d7c 100644
--- a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/commands/UnitCommandsFragment.kt
+++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/commands/UnitCommandsFragment.kt
@@ -7,11 +7,13 @@ import android.view.View
import android.view.ViewGroup
import android.widget.ArrayAdapter
import androidx.appcompat.app.AlertDialog
+import androidx.core.content.res.ResourcesCompat
import androidx.fragment.app.Fragment
import kotlinx.coroutines.DelicateCoroutinesApi
import mx.trackermap.TrackerMap.android.R
import mx.trackermap.TrackerMap.android.databinding.UnitDetailsCommandsBinding
import mx.trackermap.TrackerMap.android.details.UnitDetailsAdapter
+import mx.trackermap.TrackerMap.android.shared.MarkerTransformations
import org.koin.androidx.viewmodel.ext.android.viewModel
@DelicateCoroutinesApi
@@ -20,6 +22,7 @@ class UnitCommandsFragment: Fragment() {
private val binding get() = _binding!!
private var deviceName: String? = null
+ private var deviceCategory: String? = null
private val unitCommandsViewModel: UnitCommandsViewModel by viewModel()
@@ -57,7 +60,20 @@ class UnitCommandsFragment: Fragment() {
val id = arguments?.getInt(UnitDetailsAdapter.DEVICE_ID_ARG)
deviceName = arguments?.getString(UnitDetailsAdapter.DEVICE_NAME_ARG)
+ deviceCategory = arguments?.getString(UnitDetailsAdapter.DEVICE_CATEGORY_ARG)
+
binding.nameDetail.text = deviceName
+ context?.let {
+ binding.nameDetail.setCompoundDrawablesRelativeWithIntrinsicBounds(
+ ResourcesCompat.getDrawable(
+ it.resources,
+ MarkerTransformations.categoryToResourceId(deviceCategory),
+ it.theme
+ ), null, null, null
+ )
+ }
+ binding.nameDetail.compoundDrawablePadding =
+ resources.getDimensionPixelSize(R.dimen.card_icon_margin)
unitCommandsViewModel.fetchCommands(id)
}
diff --git a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/information/UnitInformationFragment.kt b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/information/UnitInformationFragment.kt
index 6c15ae4..e448b0b 100644
--- a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/information/UnitInformationFragment.kt
+++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/information/UnitInformationFragment.kt
@@ -9,6 +9,7 @@ import android.view.View
import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.TextView
+import androidx.core.content.res.ResourcesCompat
import androidx.core.widget.TextViewCompat
import androidx.fragment.app.Fragment
import com.google.android.material.button.MaterialButton
@@ -17,6 +18,7 @@ import kotlinx.serialization.json.longOrNull
import mx.trackermap.TrackerMap.android.R
import mx.trackermap.TrackerMap.android.databinding.UnitDetailsInformationBinding
import mx.trackermap.TrackerMap.android.details.UnitDetailsAdapter
+import mx.trackermap.TrackerMap.android.shared.MarkerTransformations
import mx.trackermap.TrackerMap.client.models.UnitInformation
import mx.trackermap.TrackerMap.utils.Formatter
import mx.trackermap.TrackerMap.utils.SpeedUnit
@@ -64,8 +66,20 @@ class UnitInformationFragment : Fragment() {
private fun fetchInformation() {
val id = arguments?.getInt(UnitDetailsAdapter.DEVICE_ID_ARG)
val name = arguments?.getString(UnitDetailsAdapter.DEVICE_NAME_ARG)
+ val category = arguments?.getString(UnitDetailsAdapter.DEVICE_CATEGORY_ARG)
unitInformationViewModel.fetchUnit(id ?: 0)
binding.nameDetail.text = name
+ context?.let {
+ binding.nameDetail.setCompoundDrawablesRelativeWithIntrinsicBounds(
+ ResourcesCompat.getDrawable(
+ it.resources,
+ MarkerTransformations.categoryToResourceId(category),
+ it.theme
+ ), null, null, null
+ )
+ }
+ binding.nameDetail.compoundDrawablePadding =
+ resources.getDimensionPixelSize(R.dimen.card_icon_margin)
binding.reportLoading.root.visibility = View.VISIBLE
}
diff --git a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/devices/DevicesFragment.kt b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/devices/DevicesFragment.kt
index b1a3663..923feab 100644
--- a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/devices/DevicesFragment.kt
+++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/devices/DevicesFragment.kt
@@ -91,6 +91,7 @@ class DevicesFragment(private val unitsViewModel: UnitsViewModel) : UnitFragment
val intent = Intent(activity.applicationContext, DetailsActivity::class.java)
intent.putExtra(DetailsActivity.DEVICE_ID_EXTRA, unit.device.id)
intent.putExtra(DetailsActivity.DEVICE_NAME_EXTRA, unit.device.name)
+ intent.putExtra(DetailsActivity.DEVICE_CATEGORY_EXTRA, unit.device.category)
intent.putExtra(DetailsActivity.ACTION_EXTRA, action)
startActivity(intent)
}
diff --git a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/UnitMapFragment.kt b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/UnitMapFragment.kt
index 6ea5f82..90ee36a 100644
--- a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/UnitMapFragment.kt
+++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/UnitMapFragment.kt
@@ -127,6 +127,7 @@ class UnitMapFragment(private val unitsViewModel: UnitsViewModel) : UnitFragment
val intent = Intent(activity.applicationContext, DetailsActivity::class.java)
intent.putExtra(DetailsActivity.DEVICE_ID_EXTRA, unit.device.id)
intent.putExtra(DetailsActivity.DEVICE_NAME_EXTRA, unit.device.name)
+ intent.putExtra(DetailsActivity.DEVICE_CATEGORY_EXTRA, unit.device.category)
intent.putExtra(DetailsActivity.ACTION_EXTRA, action)
startActivity(intent)
}
diff --git a/androidApp/src/main/res/layout/unit_details_commands.xml b/androidApp/src/main/res/layout/unit_details_commands.xml
index 01aefb8..c3d69a1 100644
--- a/androidApp/src/main/res/layout/unit_details_commands.xml
+++ b/androidApp/src/main/res/layout/unit_details_commands.xml
@@ -35,9 +35,10 @@
android:textColor="@color/colorPrimaryDark"
android:layout_margin="@dimen/card_padding"
android:layout_marginBottom="@dimen/margin"
+ tools:drawableStart="@drawable/map_default"
app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toTopOf="@id/commandsList"
tools:text="1AAUTO" />
diff --git a/androidApp/src/main/res/layout/unit_details_information.xml b/androidApp/src/main/res/layout/unit_details_information.xml
index cc8bbb7..b935455 100644
--- a/androidApp/src/main/res/layout/unit_details_information.xml
+++ b/androidApp/src/main/res/layout/unit_details_information.xml
@@ -30,6 +30,7 @@
android:id="@+id/detailsLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:layout_marginBottom="@dimen/padding"
android:orientation="vertical">
<TextView
@@ -37,8 +38,8 @@
style="@style/TextAppearance.AppCompat.Headline"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ tools:drawableStart="@drawable/map_default"
android:textColor="@color/colorPrimaryDark"
- android:layout_marginBottom="@dimen/padding"
tools:text="1AAUTO" />
</LinearLayout>