Skip to content

Commit e08daec

Browse files
authored
Merge pull request #225 from 2gis/feature-SDK-#-add-preset-option-to-navigation
[SDK] Added a graphics preset switcher to the navigation
2 parents 9e06c48 + 5bcaf82 commit e08daec

File tree

2 files changed

+57
-0
lines changed

2 files changed

+57
-0
lines changed

app/src/main/java/ru/dgis/sdk/demo/NavigationActivity.kt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import android.os.Bundle
44
import android.view.Gravity
55
import android.view.View
66
import android.view.ViewGroup
7+
import android.widget.RadioGroup
78
import android.widget.Toast
89
import androidx.activity.OnBackPressedCallback
910
import androidx.appcompat.app.AppCompatActivity
@@ -25,6 +26,7 @@ import ru.dgis.sdk.demo.databinding.ActivityNavigationBinding
2526
import ru.dgis.sdk.demo.vm.NavigationViewModel
2627
import ru.dgis.sdk.geometry.point
2728
import ru.dgis.sdk.map.DgisMapObject
29+
import ru.dgis.sdk.map.GraphicsPreset
2830
import ru.dgis.sdk.map.Map
2931
import ru.dgis.sdk.map.MapView
3032
import ru.dgis.sdk.map.ScreenDistance
@@ -42,6 +44,7 @@ class NavigationActivity : AppCompatActivity(), TouchEventsObserver {
4244

4345
private var viewModel: NavigationViewModel? = null
4446

47+
private lateinit var graphicPreset: RadioGroup
4548
private lateinit var map: Map
4649
private lateinit var mapView: MapView
4750
private lateinit var binding: ActivityNavigationBinding
@@ -56,6 +59,8 @@ class NavigationActivity : AppCompatActivity(), TouchEventsObserver {
5659
binding = ActivityNavigationBinding.inflate(layoutInflater)
5760
setContentView(binding.root)
5861

62+
graphicPreset = findViewById(R.id.graphicPreset)
63+
graphicPreset.check(R.id.normalPreset)
5964
mapView = findViewById(R.id.mapView)
6065
routeEditorView = findViewById(R.id.routeEditorView)
6166
navigationView = findViewById(R.id.navigationView)
@@ -76,6 +81,22 @@ class NavigationActivity : AppCompatActivity(), TouchEventsObserver {
7681
)
7782
}
7883
)
84+
when (it.graphicsPresetHintChannel.value) {
85+
GraphicsPreset.LITE -> graphicPreset.check(R.id.litePreset)
86+
GraphicsPreset.NORMAL -> graphicPreset.check(R.id.normalPreset)
87+
GraphicsPreset.IMMERSIVE -> graphicPreset.check(R.id.immersivePreset)
88+
else -> {}
89+
}
90+
}
91+
}
92+
93+
graphicPreset.setOnCheckedChangeListener { _, checkedId ->
94+
mapView.getMapAsync { map ->
95+
when (checkedId) {
96+
R.id.litePreset -> map.graphicsPreset = GraphicsPreset.LITE
97+
R.id.normalPreset -> map.graphicsPreset = GraphicsPreset.NORMAL
98+
R.id.immersivePreset -> map.graphicsPreset = GraphicsPreset.IMMERSIVE
99+
}
79100
}
80101
}
81102

app/src/main/res/layout/activity_navigation.xml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,41 @@
163163
android:text="Use simulation"
164164
tools:ignore="HardcodedText" />
165165

166+
<RadioGroup
167+
android:id="@+id/graphicPreset"
168+
android:layout_width="match_parent"
169+
android:layout_height="wrap_content"
170+
android:layout_marginTop="16dp"
171+
android:orientation="horizontal"
172+
android:paddingStart="24dp"
173+
android:paddingEnd="24dp">
174+
175+
<RadioButton
176+
android:id="@+id/litePreset"
177+
android:layout_width="wrap_content"
178+
android:layout_height="wrap_content"
179+
android:layout_weight="1"
180+
android:text="Lite"
181+
tools:ignore="HardcodedText" />
182+
183+
<RadioButton
184+
android:id="@+id/normalPreset"
185+
android:layout_width="wrap_content"
186+
android:layout_height="wrap_content"
187+
android:layout_weight="1"
188+
android:text="Normal"
189+
tools:ignore="HardcodedText" />
190+
191+
<RadioButton
192+
android:id="@+id/immersivePreset"
193+
android:layout_width="wrap_content"
194+
android:layout_height="wrap_content"
195+
android:layout_weight="1"
196+
android:text="Immersive"
197+
tools:ignore="HardcodedText" />
198+
199+
</RadioGroup>
200+
166201
<TextView
167202
android:id="@+id/availabilityTextView"
168203
android:layout_width="match_parent"
@@ -173,6 +208,7 @@
173208
tools:ignore="HardcodedText" />
174209
</LinearLayout>
175210
</androidx.coordinatorlayout.widget.CoordinatorLayout>
211+
176212
<androidx.constraintlayout.widget.Group
177213
android:id="@+id/route_editing_group"
178214
android:layout_width="wrap_content"

0 commit comments

Comments
 (0)