Skip to content

Commit 8e58e79

Browse files
tomaszrybakiewiczabhishek1508
authored andcommitted
New repo structure.
- Moved all examples to individual packages. - Updated build.gradle to register all resources folders with main source set. - Updated CONTRIBUTING.md guide to include "Adding new example" instructions.
1 parent fe02dcb commit 8e58e79

File tree

53 files changed

+254
-177
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+254
-177
lines changed

CONTRIBUTING.md

+32-1
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,35 @@ If you want to contribute code:
1616

1717
### Gradle tasks
1818
- _./gradlew ktlint_ - run ktlint to check code-style
19-
- _./gradlew ktlintFormat_ - run ktlint and try to fix code-style issues. Return non-0 if cannot fix all issues
19+
- _./gradlew ktlintFormat_ - run ktlint and try to fix code-style issues. Return non-0 if cannot fix all issues
20+
21+
## Adding new example
22+
23+
Each example must be self contained. All source and resource files must be placed in a single package.
24+
25+
To add new example:
26+
27+
1. Create new package with `res` folder in `app/src/main/java/com/mapbox/navigation/examples/`
28+
29+
```
30+
mapbox-navigation-android-examples/
31+
app/
32+
src/main/
33+
java/com/mapbox/navigation/examples/
34+
myexample/
35+
res/
36+
layout/
37+
mapbox_activity_myexample.xml
38+
values/
39+
colors.xml
40+
strings.xml
41+
styles.xml
42+
MyExampleActivity.kt
43+
```
44+
2. Sync project with Gradle files to ensure new resource folder is registered with `main` source set.
45+
3. Create new Activity and add its entry to `app/src/main/java/com/mapbox/navigation/examples/ExamplesList.kt`
46+
47+
Include short name, description and a screenshot (570x362).
48+
> Don't forget to register your activity in AndroidManifest.xml
49+
50+

app/build.gradle

+13
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,19 @@ android {
5252
buildFeatures {
5353
viewBinding true
5454
}
55+
56+
sourceSets {
57+
main {
58+
def srcDirs = file("$projectDir/src/main/java/com/mapbox/navigation/examples")
59+
.listFiles({ it.isDirectory() } as FileFilter)
60+
.collect { it.name }
61+
62+
res.srcDirs = ['src/main/res']
63+
srcDirs.forEach {
64+
res.srcDirs += 'src/main/java/com/mapbox/navigation/examples/' + it + '/res'
65+
}
66+
}
67+
}
5568
}
5669

5770
dependencies {

app/src/main/AndroidManifest.xml

+12-12
Original file line numberDiff line numberDiff line change
@@ -19,61 +19,61 @@
1919
</intent-filter>
2020
</activity>
2121

22-
<activity android:name=".basics.FetchARouteActivity"
22+
<activity android:name=".fetchroute.FetchARouteActivity"
2323
android:screenOrientation="portrait"
2424
android:exported="false"
2525
/>
2626

27-
<activity android:name=".basics.ShowCurrentLocationActivity"
27+
<activity android:name=".location.ShowCurrentLocationActivity"
2828
android:screenOrientation="portrait"
2929
android:exported="false"
3030
/>
3131

32-
<activity android:name=".basics.RenderRouteLineActivity"
32+
<activity android:name=".routeline.RenderRouteLineActivity"
3333
android:screenOrientation="portrait"
3434
android:exported="false"
3535
/>
3636

37-
<activity android:name=".basics.ShowCameraTransitionsActivity"
37+
<activity android:name=".camera.ShowCameraTransitionsActivity"
3838
android:screenOrientation="portrait"
3939
android:exported="false"
4040
/>
4141

42-
<activity android:name=".basics.ShowTripProgressActivity"
42+
<activity android:name=".tripprogress.ShowTripProgressActivity"
4343
android:screenOrientation="portrait"
4444
android:exported="false"
4545
/>
4646

47-
<activity android:name=".basics.ShowManeuversActivity"
47+
<activity android:name=".maneuvers.ShowManeuversActivity"
4848
android:screenOrientation="portrait"
4949
android:exported="false"
5050
/>
5151

52-
<activity android:name=".basics.PlayVoiceInstructionsActivity"
52+
<activity android:name=".voice.PlayVoiceInstructionsActivity"
5353
android:screenOrientation="portrait"
5454
android:exported="false"
5555
/>
5656

57-
<activity android:name=".basics.ShowSpeedLimitActivity"
57+
<activity android:name=".speedlimit.ShowSpeedLimitActivity"
5858
android:screenOrientation="portrait"
5959
android:exported="false"
6060
/>
6161

62-
<activity android:name=".basics.ShowBuildingExtrusionsActivity"
62+
<activity android:name=".building.ShowBuildingExtrusionsActivity"
6363
android:screenOrientation="portrait"
6464
android:exported="false"
6565
/>
6666

67-
<activity android:name=".basics.TurnByTurnExperienceActivity"
67+
<activity android:name=".turnbyturn.TurnByTurnExperienceActivity"
6868
android:exported="false"
6969
/>
7070

71-
<activity android:name=".basics.MultipleWaypointsActivity"
71+
<activity android:name=".multiplewaypoints.MultipleWaypointsActivity"
7272
android:screenOrientation="portrait"
7373
android:exported="false"
7474
/>
7575

76-
<activity android:name=".basics.CustomArrivalActivity"
76+
<activity android:name=".arrival.CustomArrivalActivity"
7777
android:screenOrientation="portrait"
7878
android:exported="false"
7979
/>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
package com.mapbox.navigation.examples
2+
3+
import android.content.Context
4+
import androidx.core.content.ContextCompat
5+
import com.mapbox.navigation.examples.arrival.CustomArrivalActivity
6+
import com.mapbox.navigation.examples.building.ShowBuildingExtrusionsActivity
7+
import com.mapbox.navigation.examples.camera.ShowCameraTransitionsActivity
8+
import com.mapbox.navigation.examples.fetchroute.FetchARouteActivity
9+
import com.mapbox.navigation.examples.location.ShowCurrentLocationActivity
10+
import com.mapbox.navigation.examples.maneuvers.ShowManeuversActivity
11+
import com.mapbox.navigation.examples.multiplewaypoints.MultipleWaypointsActivity
12+
import com.mapbox.navigation.examples.routeline.RenderRouteLineActivity
13+
import com.mapbox.navigation.examples.speedlimit.ShowSpeedLimitActivity
14+
import com.mapbox.navigation.examples.tripprogress.ShowTripProgressActivity
15+
import com.mapbox.navigation.examples.turnbyturn.TurnByTurnExperienceActivity
16+
import com.mapbox.navigation.examples.voice.PlayVoiceInstructionsActivity
17+
18+
fun Context.examplesList() = listOf(
19+
MapboxExample(
20+
ContextCompat.getDrawable(this, R.drawable.mapbox_ic_user_current_location),
21+
getString(R.string.title_current_location),
22+
getString(R.string.description_current_location),
23+
ShowCurrentLocationActivity::class.java
24+
),
25+
MapboxExample(
26+
ContextCompat.getDrawable(this, R.drawable.mapbox_screenshot_fetch_a_route),
27+
getString(R.string.title_fetch_route),
28+
getString(R.string.description_fetch_route),
29+
FetchARouteActivity::class.java
30+
),
31+
MapboxExample(
32+
ContextCompat.getDrawable(this, R.drawable.mapbox_ic_route_line),
33+
getString(R.string.title_route),
34+
getString(R.string.description_route),
35+
RenderRouteLineActivity::class.java
36+
),
37+
MapboxExample(
38+
ContextCompat.getDrawable(this, R.drawable.mapbox_screenshot_basic_camera),
39+
getString(R.string.title_camera_transitions),
40+
getString(R.string.description_camera_transitions),
41+
ShowCameraTransitionsActivity::class.java
42+
),
43+
MapboxExample(
44+
ContextCompat.getDrawable(this, R.drawable.mapbox_screenshot_trip_progress),
45+
getString(R.string.title_trip_progress),
46+
getString(R.string.description_trip_progress),
47+
ShowTripProgressActivity::class.java
48+
),
49+
MapboxExample(
50+
ContextCompat.getDrawable(this, R.drawable.mapbox_screenshot_maneuvers),
51+
getString(R.string.title_maneuver),
52+
getString(R.string.description_maneuver),
53+
ShowManeuversActivity::class.java
54+
),
55+
MapboxExample(
56+
ContextCompat.getDrawable(this, R.drawable.mapbox_screenshot_voice),
57+
getString(R.string.title_voice),
58+
getString(R.string.description_voice),
59+
PlayVoiceInstructionsActivity::class.java
60+
),
61+
MapboxExample(
62+
ContextCompat.getDrawable(this, R.drawable.mapbox_screenshot_speed_limit),
63+
getString(R.string.title_speed_limit),
64+
getString(R.string.description_speed_limit),
65+
ShowSpeedLimitActivity::class.java
66+
),
67+
MapboxExample(
68+
ContextCompat.getDrawable(this, R.drawable.mapbox_screenshot_building_extrusion),
69+
getString(R.string.title_building_extrusions),
70+
getString(R.string.description_building_extrusions),
71+
ShowBuildingExtrusionsActivity::class.java
72+
),
73+
MapboxExample(
74+
ContextCompat.getDrawable(this, R.drawable.mapbox_screenshot_tbt_experience),
75+
getString(R.string.title_turn_by_turn),
76+
getString(R.string.description_turn_by_turn),
77+
TurnByTurnExperienceActivity::class.java
78+
),
79+
MapboxExample(
80+
ContextCompat.getDrawable(this, R.drawable.mapbox_screenshot_multiple_waypoints),
81+
getString(R.string.title_multiple_way_points),
82+
getString(R.string.description_multiple_way_points),
83+
MultipleWaypointsActivity::class.java
84+
),
85+
MapboxExample(
86+
ContextCompat.getDrawable(this, R.drawable.mapbox_screenshot_building_extrusion),
87+
getString(R.string.title_building_extrusions_custom_arrival),
88+
getString(R.string.description_building_extrusions_custom_arrival),
89+
CustomArrivalActivity::class.java
90+
)
91+
)

app/src/main/java/com/mapbox/navigation/examples/MainActivity.kt

+3-98
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,6 @@ import androidx.recyclerview.widget.LinearLayoutManager
1313
import com.mapbox.android.core.permissions.PermissionsListener
1414
import com.mapbox.android.core.permissions.PermissionsManager
1515
import com.mapbox.android.core.permissions.PermissionsManager.areLocationPermissionsGranted
16-
import com.mapbox.navigation.examples.basics.CustomArrivalActivity
17-
import com.mapbox.navigation.examples.basics.FetchARouteActivity
18-
import com.mapbox.navigation.examples.basics.MultipleWaypointsActivity
19-
import com.mapbox.navigation.examples.basics.PlayVoiceInstructionsActivity
20-
import com.mapbox.navigation.examples.basics.RenderRouteLineActivity
21-
import com.mapbox.navigation.examples.basics.ShowBuildingExtrusionsActivity
22-
import com.mapbox.navigation.examples.basics.ShowCameraTransitionsActivity
23-
import com.mapbox.navigation.examples.basics.ShowCurrentLocationActivity
24-
import com.mapbox.navigation.examples.basics.ShowManeuversActivity
25-
import com.mapbox.navigation.examples.basics.ShowSpeedLimitActivity
26-
import com.mapbox.navigation.examples.basics.ShowTripProgressActivity
27-
import com.mapbox.navigation.examples.basics.TurnByTurnExperienceActivity
2816
import com.mapbox.navigation.examples.databinding.ActivityMainBinding
2917

3018
class MainActivity : AppCompatActivity(), PermissionsListener {
@@ -98,9 +86,9 @@ class MainActivity : AppCompatActivity(), PermissionsListener {
9886
}
9987

10088
private fun bindExamples() {
101-
val examplesList = buildExamplesList()
102-
examplesAdapter = MapboxExamplesAdapter(examplesList) {
103-
startActivity(Intent(this@MainActivity, examplesList[it].activity))
89+
val examples = examplesList()
90+
examplesAdapter = MapboxExamplesAdapter(examples) {
91+
startActivity(Intent(this@MainActivity, examples[it].activity))
10492
}
10593
binding.examplesRecycler.apply {
10694
layoutManager = LinearLayoutManager(
@@ -112,89 +100,6 @@ class MainActivity : AppCompatActivity(), PermissionsListener {
112100
}
113101
}
114102

115-
private fun buildExamplesList(): List<MapboxExample> {
116-
return listOf(
117-
MapboxExample(
118-
ContextCompat.getDrawable(this, R.drawable.mapbox_ic_user_current_location),
119-
getString(R.string.title_current_location),
120-
getString(R.string.description_current_location),
121-
ShowCurrentLocationActivity::class.java
122-
),
123-
MapboxExample(
124-
ContextCompat.getDrawable(this, R.drawable.mapbox_screenshot_fetch_a_route),
125-
getString(R.string.title_fetch_route),
126-
getString(R.string.description_fetch_route),
127-
FetchARouteActivity::class.java
128-
),
129-
MapboxExample(
130-
ContextCompat.getDrawable(this, R.drawable.mapbox_ic_route_line),
131-
getString(R.string.title_route),
132-
getString(R.string.description_route),
133-
RenderRouteLineActivity::class.java
134-
),
135-
MapboxExample(
136-
ContextCompat.getDrawable(this, R.drawable.mapbox_screenshot_basic_camera),
137-
getString(R.string.title_camera_transitions),
138-
getString(R.string.description_camera_transitions),
139-
ShowCameraTransitionsActivity::class.java
140-
),
141-
MapboxExample(
142-
ContextCompat.getDrawable(this, R.drawable.mapbox_screenshot_trip_progress),
143-
getString(R.string.title_trip_progress),
144-
getString(R.string.description_trip_progress),
145-
ShowTripProgressActivity::class.java
146-
),
147-
MapboxExample(
148-
ContextCompat.getDrawable(this, R.drawable.mapbox_screenshot_maneuvers),
149-
getString(R.string.title_maneuver),
150-
getString(R.string.description_maneuver),
151-
ShowManeuversActivity::class.java
152-
),
153-
MapboxExample(
154-
ContextCompat.getDrawable(this, R.drawable.mapbox_screenshot_voice),
155-
getString(R.string.title_voice),
156-
getString(R.string.description_voice),
157-
PlayVoiceInstructionsActivity::class.java
158-
),
159-
MapboxExample(
160-
ContextCompat.getDrawable(this, R.drawable.mapbox_screenshot_speed_limit),
161-
getString(R.string.title_speed_limit),
162-
getString(R.string.description_speed_limit),
163-
ShowSpeedLimitActivity::class.java
164-
),
165-
MapboxExample(
166-
ContextCompat.getDrawable(
167-
this,
168-
R.drawable.mapbox_screenshot_building_extrusion
169-
),
170-
getString(R.string.title_building_extrusions),
171-
getString(R.string.description_building_extrusions),
172-
ShowBuildingExtrusionsActivity::class.java
173-
),
174-
MapboxExample(
175-
ContextCompat.getDrawable(this, R.drawable.mapbox_screenshot_tbt_experience),
176-
getString(R.string.title_turn_by_turn),
177-
getString(R.string.description_turn_by_turn),
178-
TurnByTurnExperienceActivity::class.java
179-
),
180-
MapboxExample(
181-
ContextCompat.getDrawable(this, R.drawable.mapbox_screenshot_multiple_waypoints),
182-
getString(R.string.title_multiple_way_points),
183-
getString(R.string.description_multiple_way_points),
184-
MultipleWaypointsActivity::class.java
185-
),
186-
MapboxExample(
187-
ContextCompat.getDrawable(
188-
this,
189-
R.drawable.mapbox_screenshot_building_extrusion
190-
),
191-
getString(R.string.title_building_extrusions_custom_arrival),
192-
getString(R.string.description_building_extrusions_custom_arrival),
193-
CustomArrivalActivity::class.java
194-
)
195-
)
196-
}
197-
198103
private fun isMapboxTokenProvided() =
199104
getString(R.string.mapbox_access_token) != MAPBOX_ACCESS_TOKEN_PLACEHOLDER
200105

app/src/main/java/com/mapbox/navigation/examples/basics/CustomArrivalActivity.kt renamed to app/src/main/java/com/mapbox/navigation/examples/arrival/CustomArrivalActivity.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.mapbox.navigation.examples.basics
1+
package com.mapbox.navigation.examples.arrival
22

33
import android.annotation.SuppressLint
44
import android.location.Location
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<resources>
2+
3+
<!-- Custom Arrival Building Extrusions -->
4+
<string name="title_building_extrusions_custom_arrival">Render building extrusion based on custom arrival criteria.</string>
5+
<string name="description_building_extrusions_custom_arrival">Use the example to render building extrusions on arrival using building API and MapboxBuildingView.</string>
6+
7+
</resources>

app/src/main/java/com/mapbox/navigation/examples/basics/ShowBuildingExtrusionsActivity.kt renamed to app/src/main/java/com/mapbox/navigation/examples/building/ShowBuildingExtrusionsActivity.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.mapbox.navigation.examples.basics
1+
package com.mapbox.navigation.examples.building
22

33
import android.annotation.SuppressLint
44
import android.location.Location
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<resources>
2+
3+
<!-- Building Extrusions -->
4+
<string name="title_building_extrusions">Render building extrusion on arrival</string>
5+
<string name="description_building_extrusions">Use the example to render building extrusions on arrival using building API and MapboxBuildingView.</string>
6+
7+
</resources>

app/src/main/java/com/mapbox/navigation/examples/basics/ShowCameraTransitionsActivity.kt renamed to app/src/main/java/com/mapbox/navigation/examples/camera/ShowCameraTransitionsActivity.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.mapbox.navigation.examples.basics
1+
package com.mapbox.navigation.examples.camera
22

33
import android.annotation.SuppressLint
44
import android.content.res.Resources
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<resources>
2+
3+
<!-- Show camera transitions -->
4+
<string name="title_camera_transitions">Use camera to frame the map</string>
5+
<string name="description_camera_transitions">Use NavigationCamera to show various map camera transitions using live location and routing data.</string>
6+
7+
</resources>

app/src/main/java/com/mapbox/navigation/examples/basics/FetchARouteActivity.kt renamed to app/src/main/java/com/mapbox/navigation/examples/fetchroute/FetchARouteActivity.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.mapbox.navigation.examples.basics
1+
package com.mapbox.navigation.examples.fetchroute
22

33
import android.annotation.SuppressLint
44
import android.location.Location

0 commit comments

Comments
 (0)