Skip to content

Commit c42c3ad

Browse files
committed
Add example test Activity for Navigation Test Application
1 parent 8d359dd commit c42c3ad

40 files changed

+1519
-121
lines changed

app/build.gradle

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
apply plugin: 'com.android.application'
2+
apply plugin: 'kotlin-android'
3+
apply plugin: 'kotlin-android-extensions'
24

35
android {
46
compileSdkVersion androidVersions.compileSdkVersion
@@ -39,10 +41,15 @@ android {
3941
}
4042

4143
dependencies {
44+
// Kotlin support
45+
implementation dependenciesList.kotlinStdLib
46+
implementation dependenciesList.ankoCommon
47+
4248
// Mapbox Navigation SDK
4349
implementation project(':libandroid-navigation-ui')
4450
implementation dependenciesList.mapboxMapSdk
4551
implementation dependenciesList.locationLayerPlugin
52+
implementation dependenciesList.searchSdk
4653

4754
// Support libraries
4855
implementation dependenciesList.supportAppcompatV7

app/src/main/AndroidManifest.xml

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
package="com.mapbox.services.android.navigation.testapp">
44

55
<uses-permission android:name="android.permission.VIBRATE"/>
6-
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
7-
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
6+
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
7+
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
88

99
<application
1010
android:name=".NavigationApplication"
@@ -15,13 +15,23 @@
1515
android:supportsRtl="true"
1616
android:theme="@style/AppTheme">
1717

18-
<activity android:name=".MainActivity">
18+
<activity
19+
android:name=".example.ui.ExampleActivity"
20+
android:screenOrientation="portrait"
21+
android:windowSoftInputMode="adjustNothing">
1922
<intent-filter>
2023
<action android:name="android.intent.action.MAIN"/>
2124
<category android:name="android.intent.category.LAUNCHER"/>
25+
<action android:name="android.intent.action.VIEW"/>
2226
</intent-filter>
2327
</activity>
2428

29+
<activity android:name=".MainActivity">
30+
<meta-data
31+
android:name="android.support.PARENT_ACTIVITY"
32+
android:value=".NavigationSettingsActivity"/>
33+
</activity>
34+
2535
<activity
2636
android:name=".activity.MockNavigationActivity"
2737
android:label="@string/title_mock_navigation">
@@ -79,11 +89,11 @@
7989
</activity>
8090

8191
<activity
82-
android:name=".activity.navigationui.NavigationViewSettingsActivity"
92+
android:name=".NavigationSettingsActivity"
8393
android:label="@string/settings">
8494
<meta-data
8595
android:name="android.support.PARENT_ACTIVITY"
86-
android:value=".activity.navigationui.NavigationLauncherActivity"/>
96+
android:value=".example.ui.ExampleActivity"/>
8797
</activity>
8898

8999
<activity

app/src/main/java/com/mapbox/services/android/navigation/testapp/NavigationApplication.java

Lines changed: 0 additions & 40 deletions
This file was deleted.
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package com.mapbox.services.android.navigation.testapp
2+
3+
import android.app.Application
4+
import android.os.StrictMode
5+
import android.text.TextUtils
6+
import com.mapbox.android.search.MapboxSearch
7+
import com.mapbox.android.search.MapboxSearchOptions
8+
import com.mapbox.mapboxsdk.Mapbox
9+
import com.mapbox.services.android.navigation.testapp.example.utils.DelegatesExt
10+
import com.squareup.leakcanary.LeakCanary
11+
import timber.log.Timber
12+
13+
class NavigationApplication : Application() {
14+
15+
companion object {
16+
var instance: NavigationApplication by DelegatesExt.notNullSingleValue()
17+
const val DEFAULT_MAPBOX_ACCESS_TOKEN = "YOUR_MAPBOX_ACCESS_TOKEN_GOES_HERE"
18+
}
19+
20+
override fun onCreate() {
21+
super.onCreate()
22+
instance = this
23+
setupTimber()
24+
setupStrictMode()
25+
setupCanary()
26+
setupMapbox()
27+
}
28+
29+
private fun setupTimber() {
30+
if (BuildConfig.DEBUG) {
31+
Timber.plant(Timber.DebugTree())
32+
}
33+
}
34+
35+
private fun setupStrictMode() {
36+
if (BuildConfig.DEBUG) {
37+
StrictMode.setThreadPolicy(StrictMode.ThreadPolicy.Builder()
38+
.detectAll()
39+
.penaltyLog()
40+
.build())
41+
StrictMode.setVmPolicy(StrictMode.VmPolicy.Builder()
42+
.detectAll()
43+
.penaltyLog()
44+
.build())
45+
}
46+
}
47+
48+
private fun setupCanary() {
49+
if (LeakCanary.isInAnalyzerProcess(this)) {
50+
// This process is dedicated to LeakCanary for heap analysis.
51+
// You should not init your app in this process.
52+
return
53+
}
54+
LeakCanary.install(this)
55+
}
56+
57+
private fun setupMapbox() {
58+
val mapboxAccessToken = Utils.getMapboxAccessToken(applicationContext)
59+
if (TextUtils.isEmpty(mapboxAccessToken) || mapboxAccessToken == DEFAULT_MAPBOX_ACCESS_TOKEN) {
60+
Timber.w("Mapbox access token isn't set!")
61+
}
62+
63+
val cachingMode = MapboxSearchOptions().setCachingMode(MapboxSearchOptions.CACHE_EXTERNAL)
64+
MapboxSearch.getInstance(applicationContext, mapboxAccessToken, cachingMode)
65+
Mapbox.getInstance(applicationContext, mapboxAccessToken)
66+
}
67+
}
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.mapbox.services.android.navigation.testapp.activity.navigationui;
1+
package com.mapbox.services.android.navigation.testapp;
22

33

44
import android.content.Intent;
@@ -8,25 +8,24 @@
88
import android.preference.PreferenceFragment;
99
import android.preference.PreferenceManager;
1010

11-
import com.mapbox.services.android.navigation.testapp.R;
11+
public class NavigationSettingsActivity extends PreferenceActivity {
1212

13-
public class NavigationViewSettingsActivity extends PreferenceActivity {
14-
private SharedPreferences.OnSharedPreferenceChangeListener listener;
15-
static final String UNIT_TYPE_CHANGED = "unit_type_changed";
16-
static final String LANGUAGE_CHANGED = "language_changed";
13+
public static final String UNIT_TYPE_CHANGED = "unit_type_changed";
14+
public static final String LANGUAGE_CHANGED = "language_changed";
1715

1816
@Override
1917
public void onCreate(Bundle savedInstanceState) {
2018
super.onCreate(savedInstanceState);
21-
listener = (sharedPreferences, key) -> {
19+
SharedPreferences.OnSharedPreferenceChangeListener listener = (sharedPreferences, key) -> {
2220
Intent resultIntent = new Intent();
2321
resultIntent.putExtra(UNIT_TYPE_CHANGED, key.equals(getString(R.string.unit_type_key)));
2422
resultIntent.putExtra(LANGUAGE_CHANGED, key.equals(getString(R.string.language_key)));
2523
setResult(RESULT_OK, resultIntent);
2624
};
2725
PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(listener);
2826
getFragmentManager().beginTransaction().replace(
29-
android.R.id.content, new NavigationViewPreferenceFragment()).commit();
27+
android.R.id.content, new NavigationViewPreferenceFragment()
28+
).commit();
3029
}
3130

3231
@Override
@@ -38,8 +37,8 @@ public static class NavigationViewPreferenceFragment extends PreferenceFragment
3837
@Override
3938
public void onCreate(final Bundle savedInstanceState) {
4039
super.onCreate(savedInstanceState);
41-
addPreferencesFromResource(R.xml.fragment_navigation_view_preferences);
42-
PreferenceManager.setDefaultValues(getActivity(), R.xml.fragment_navigation_view_preferences, false);
40+
addPreferencesFromResource(R.xml.fragment_navigation_preferences);
41+
PreferenceManager.setDefaultValues(getActivity(), R.xml.fragment_navigation_preferences, false);
4342
}
4443
}
4544
}

app/src/main/java/com/mapbox/services/android/navigation/testapp/activity/navigationui/NavigationLauncherActivity.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import com.mapbox.mapboxsdk.maps.OnMapReadyCallback;
4040
import com.mapbox.mapboxsdk.plugins.locationlayer.LocationLayerPlugin;
4141
import com.mapbox.mapboxsdk.plugins.locationlayer.modes.RenderMode;
42+
import com.mapbox.services.android.navigation.testapp.NavigationSettingsActivity;
4243
import com.mapbox.services.android.navigation.testapp.R;
4344
import com.mapbox.services.android.navigation.ui.v5.NavigationLauncher;
4445
import com.mapbox.services.android.navigation.ui.v5.NavigationLauncherOptions;
@@ -117,15 +118,15 @@ public boolean onOptionsItemSelected(MenuItem item) {
117118
}
118119

119120
private void showSettings() {
120-
startActivityForResult(new Intent(this, NavigationViewSettingsActivity.class), CHANGE_SETTING_REQUEST_CODE);
121+
startActivityForResult(new Intent(this, NavigationSettingsActivity.class), CHANGE_SETTING_REQUEST_CODE);
121122
}
122123

123124
@Override
124125
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
125126
super.onActivityResult(requestCode, resultCode, data);
126127
if (requestCode == CHANGE_SETTING_REQUEST_CODE && resultCode == RESULT_OK) {
127-
boolean shouldRefetch = data.getBooleanExtra(NavigationViewSettingsActivity.UNIT_TYPE_CHANGED, false)
128-
|| data.getBooleanExtra(NavigationViewSettingsActivity.LANGUAGE_CHANGED, false);
128+
boolean shouldRefetch = data.getBooleanExtra(NavigationSettingsActivity.UNIT_TYPE_CHANGED, false)
129+
|| data.getBooleanExtra(NavigationSettingsActivity.LANGUAGE_CHANGED, false);
129130
if (destination != null && shouldRefetch) {
130131
fetchRoute();
131132
}

0 commit comments

Comments
 (0)