Skip to content

Commit d80e20c

Browse files
committed
added baato service to integrate search api
1 parent 8dc8ab9 commit d80e20c

File tree

17 files changed

+1116
-29
lines changed

17 files changed

+1116
-29
lines changed

app/build.gradle

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ android {
1717
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
1818
}
1919
}
20+
compileOptions {
21+
sourceCompatibility = 1.8
22+
targetCompatibility = 1.8
23+
}
2024
}
2125

2226
dependencies {
@@ -28,7 +32,14 @@ dependencies {
2832
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
2933

3034
//toaster library
31-
implementation 'com.github.Ichchhie:Toaster-Library:0.2.0'
35+
implementation 'com.github.Ichchhie:Toaster-Library:0.3.0'
36+
37+
implementation ('com.mapbox.mapboxsdk:mapbox-android-sdk:8.6.2'){
38+
exclude group: 'group_name', module: 'module_name'
39+
}
40+
41+
// implementation 'com.mapbox.mapboxsdk:mapbox-android-navigation:0.42.5'
42+
// implementation 'com.mapbox.mapboxsdk:mapbox-android-navigation-ui:0.42.5'
3243
//graphhopper navigation
3344
// implementation 'com.graphhopper.navigation:navigation-android:0.1.0'
3445
}
Lines changed: 136 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,152 @@
11
package com.kathmandulivinglabs.osmnavigationapp;
22

3+
import androidx.annotation.NonNull;
34
import androidx.appcompat.app.AppCompatActivity;
45

56
import android.os.Bundle;
7+
import android.util.Log;
68

7-
//import com.kathmandulivinglabs.navigationlibrary.ToasterMessage;
9+
import com.google.android.material.snackbar.Snackbar;
10+
import com.kathmandulivinglabs.navigationlibrary.BaatoUtil;
11+
import com.kathmandulivinglabs.navigationlibrary.ToasterMessage;
12+
import com.kathmandulivinglabs.navigationlibrary.models.Geometry;
13+
import com.mapbox.api.directions.v5.models.DirectionsResponse;
14+
import com.mapbox.api.directions.v5.models.DirectionsRoute;
15+
import com.mapbox.geojson.Point;
16+
import com.mapbox.mapboxsdk.Mapbox;
17+
import com.mapbox.mapboxsdk.geometry.LatLng;
18+
import com.mapbox.mapboxsdk.location.LocationComponent;
19+
import com.mapbox.mapboxsdk.location.modes.CameraMode;
20+
import com.mapbox.mapboxsdk.location.modes.RenderMode;
21+
import com.mapbox.mapboxsdk.maps.MapView;
22+
import com.mapbox.mapboxsdk.maps.MapboxMap;
23+
import com.mapbox.mapboxsdk.maps.OnMapReadyCallback;
24+
import com.mapbox.mapboxsdk.maps.Style;
25+
import com.mapbox.services.android.navigation.ui.v5.route.NavigationMapRoute;
26+
import com.mapbox.services.android.navigation.v5.navigation.NavigationRoute;
827

9-
public class MainActivity extends AppCompatActivity {
28+
import java.util.List;
29+
30+
import retrofit2.Call;
31+
import retrofit2.Callback;
32+
import retrofit2.Response;
33+
34+
public class MainActivity extends AppCompatActivity implements OnMapReadyCallback,
35+
MapboxMap.OnMapLongClickListener, Callback<DirectionsResponse> {
36+
37+
private static final String TAG = "apple";
38+
private MapboxMap mapboxMap;
39+
private MapView mapView;
40+
private NavigationMapRoute navigationMapRoute;
41+
String encoded = "wv{gD_`lhOQvAO^c@h@Yj@IZKhADXj@|ABrAElB@NLLp@LHFDJJvDb@pBx@~B`AjBBP@fCArBW|KSxEQbHGbAYhBKVmA`C}A`EuBrGcAxC}@hBA^BJb@`@dBr@tBbAh@RdDbBs@fCYxAmBnKy@`F_Gj[]zBS~AWjDC~AA|BBbBj@|JpB~YRrDbAjONlDD~AAbCuArj@o@nSkB~w@CzB{@x\\e@rLa@jN@zBO|DE|EQjBKp@W~@Sf@o@dAs@x@i@d@_@RkAj@_AP_AJmCDkBD}IDoFF_ETc@@iARyAf@UKa@_@YKk@KuBGu@Kq@MkA[k@SsB{@wCwAgAo@g@SsDiBa@OcJmE{IcEiAm@kJmEmAc@U?QA[IUK]EmI_@wBCk@Dm@FiCt@k@ViNvJ_BlAcAj@{@Xc@JuALsGN{@F_@Da@NeAn@WXWb@]fAIf@Al@Bt@`AvKVhDDpAMjB[jASb@yAzBiAvAuCfEYxAe@SmE}AsGeA_FiBwG_CsB_@sGq@{AWcA]eASuC{@g@IiDs@_BWy@FiG`BqCx@sFvA{JlC_APq@DqA?[CcAOgCg@qFqAgGkA{@Gk@@i@Dg@Je@NmAl@_^~R^p@lAlAdAv@^T~Al@t@l@F?b@MjChANBl@ATIDCFl@APNH?Ho@`CTf@HJ`@FJN?Je@fA[d@CJBJHJ@POv@HPFVd@ZBJAJa@v@bAf@JjAw@`@yAf@s@d@SHQAAf@c@C@p@YAm@R?n@SPkAPAB?|@g@HCLaAB";
1042

1143
@Override
1244
protected void onCreate(Bundle savedInstanceState) {
1345
super.onCreate(savedInstanceState);
46+
Mapbox.getInstance(this, getString(R.string.mapbox_access_token));
1447
setContentView(R.layout.activity_main);
48+
mapView = findViewById(R.id.mapView);
49+
mapView.onCreate(savedInstanceState);
50+
mapView.getMapAsync(this);
51+
ToasterMessage.s(this, "Hello Good Morning");
52+
Geometry geometry = BaatoUtil.getGeoJsonFromEncodedPolyLine(encoded);
53+
NavigationRoute.builder(this)
54+
.accessToken(Mapbox.getAccessToken())
55+
.origin(Point.fromLngLat(85.4278774, 27.6721352))
56+
.destination(Point.fromLngLat(85.3346386, 27.7340328))
57+
.alternatives(true)
58+
.build()
59+
.getRoute(this);
60+
Log.d("hello", "onCreate: " + geometry.coordinates);
61+
}
62+
63+
@Override
64+
public boolean onMapLongClick(@NonNull LatLng point) {
65+
return false;
66+
}
1567

16-
// ToasterMessage.s(this,"Hello Good Morning");
68+
@Override
69+
public void onMapReady(@NonNull MapboxMap mapboxMap) {
70+
this.mapboxMap = mapboxMap;
71+
mapboxMap.setStyle(Style.MAPBOX_STREETS, style -> {
72+
initializeLocationComponent(mapboxMap);
73+
navigationMapRoute = new NavigationMapRoute(null, mapView, mapboxMap);
74+
mapboxMap.addOnMapLongClickListener(this);
75+
Snackbar.make(mapView, "Long press to select route", Snackbar.LENGTH_SHORT).show();
76+
});
77+
}
1778

79+
@SuppressWarnings("MissingPermission")
80+
private void initializeLocationComponent(MapboxMap mapboxMap) {
81+
LocationComponent locationComponent = mapboxMap.getLocationComponent();
82+
locationComponent.activateLocationComponent(this, mapboxMap.getStyle());
83+
locationComponent.setLocationComponentEnabled(true);
84+
locationComponent.setRenderMode(RenderMode.COMPASS);
85+
locationComponent.setCameraMode(CameraMode.TRACKING);
86+
locationComponent.zoomWhileTracking(10d);
1887
}
88+
89+
@Override
90+
public void onResponse(Call<DirectionsResponse> call, Response<DirectionsResponse> response) {
91+
if (response.isSuccessful()
92+
&& response.body() != null
93+
&& !response.body().routes().isEmpty()) {
94+
List<DirectionsRoute> routes = response.body().routes();
95+
navigationMapRoute.addRoutes(routes);
96+
}
97+
}
98+
99+
@Override
100+
public void onFailure(Call<DirectionsResponse> call, Throwable t) {
101+
Log.d(TAG, "onFailure: " + t.getMessage());
102+
}
103+
104+
@Override
105+
public void onResume() {
106+
super.onResume();
107+
mapView.onResume();
108+
}
109+
110+
@Override
111+
protected void onStart() {
112+
super.onStart();
113+
mapView.onStart();
114+
if (navigationMapRoute != null) {
115+
navigationMapRoute.onStart();
116+
}
117+
}
118+
119+
@Override
120+
protected void onStop() {
121+
super.onStop();
122+
mapView.onStop();
123+
if (navigationMapRoute != null) {
124+
navigationMapRoute.onStop();
125+
}
126+
}
127+
128+
@Override
129+
public void onPause() {
130+
super.onPause();
131+
mapView.onPause();
132+
}
133+
134+
@Override
135+
public void onLowMemory() {
136+
super.onLowMemory();
137+
mapView.onLowMemory();
138+
}
139+
140+
@Override
141+
protected void onDestroy() {
142+
super.onDestroy();
143+
mapView.onDestroy();
144+
}
145+
146+
@Override
147+
protected void onSaveInstanceState(Bundle outState) {
148+
super.onSaveInstanceState(outState);
149+
mapView.onSaveInstanceState(outState);
150+
}
151+
19152
}
Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,15 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
2+
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
33
xmlns:app="http://schemas.android.com/apk/res-auto"
44
xmlns:tools="http://schemas.android.com/tools"
55
android:layout_width="match_parent"
66
android:layout_height="match_parent"
77
tools:context=".MainActivity">
88

9-
<TextView
10-
android:layout_width="wrap_content"
11-
android:layout_height="wrap_content"
12-
android:text="Hello World!"
13-
app:layout_constraintBottom_toBottomOf="parent"
14-
app:layout_constraintLeft_toLeftOf="parent"
15-
app:layout_constraintRight_toRightOf="parent"
16-
app:layout_constraintTop_toTopOf="parent" />
9+
<com.mapbox.mapboxsdk.maps.MapView
10+
android:id="@+id/mapView"
11+
android:layout_width="match_parent"
12+
android:layout_height="match_parent"
13+
app:mapbox_cameraZoom="12" />
1714

18-
</androidx.constraintlayout.widget.ConstraintLayout>
15+
</RelativeLayout>
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<resources>
22
<string name="app_name">OSM Navigation App</string>
3-
<String name="encoded_polyline">wv{gD_`lhOQvAO^c@h@Yj@IZKhADXj@|ABrAElB@NLLp@LHFDJJvDb@pBx@~B`AjBBP@fCArBW|KSxEQbHGbAYhBKVmA`C}A`EuBrGcAxC}@hBA^BJb@`@dBr@tBbAh@RdDbBs@fCYxAmBnKy@`F_Gj[]zBS~AWjDC~AA|BBbBj@|JpB~YRrDbAjONlDD~AAbCuArj@o@nSkB~w@CzB{@x\e@rLa@jN@zBO|DE|EQjBKp@W~@Sf@o@dAs@x@i@d@_@RkAj@_AP_AJmCDkBD}IDoFF_ETc@@iARyAf@UKa@_@YKk@KuBGu@Kq@MkA[k@SsB{@wCwAgAo@g@SsDiBa@OcJmE{IcEiAm@kJmEmAc@U?QA[IUK]EmI_@wBCk@Dm@FiCt@k@ViNvJ_BlAcAj@{@Xc@JuALsGN{@F_@Da@NeAn@WXWb@]fAIf@Al@Bt@`AvKVhDDpAMjB[jASb@yAzBiAvAuCfEYxAe@SmE}AsGeA_FiBwG_CsB_@sGq@{AWcA]eASuC{@g@IiDs@_BWy@FiG`BqCx@sFvA{JlC_APq@DqA?[CcAOgCg@qFqAgGkA{@Gk@@i@Dg@Je@NmAl@_^~R^p@lAlAdAv@^T~Al@t@l@F?b@MjChANBl@ATIDCFl@APNH?Ho@`CTf@HJ`@FJN?Je@fA[d@CJBJHJ@POv@HPFVd@ZBJAJa@v@bAf@JjAw@`@yAf@s@d@SHQAAf@c@C@p@YAm@R?n@SPkAPAB?|@g@HCLaAB</String>
3+
<string name="mapbox_access_token">pk.eyJ1IjoiaWNoY2hoYSIsImEiOiJjazcxaGt3cWEwNm4wM2xuMWRvYXMzcm04In0.yjRl4vLGSphHfixjMolOtA</string>
4+
<string name="encoded_polyline">wv{gD_`lhOQvAO^c@h@Yj@IZKhADXj@|ABrAElB@NLLp@LHFDJJvDb@pBx@~B`AjBBP@fCArBW|KSxEQbHGbAYhBKVmA`C}A`EuBrGcAxC}@hBA^BJb@`@dBr@tBbAh@RdDbBs@fCYxAmBnKy@`F_Gj[]zBS~AWjDC~AA|BBbBj@|JpB~YRrDbAjONlDD~AAbCuArj@o@nSkB~w@CzB{@x\e@rLa@jN@zBO|DE|EQjBKp@W~@Sf@o@dAs@x@i@d@_@RkAj@_AP_AJmCDkBD}IDoFF_ETc@@iARyAf@UKa@_@YKk@KuBGu@Kq@MkA[k@SsB{@wCwAgAo@g@SsDiBa@OcJmE{IcEiAm@kJmEmAc@U?QA[IUK]EmI_@wBCk@Dm@FiCt@k@ViNvJ_BlAcAj@{@Xc@JuALsGN{@F_@Da@NeAn@WXWb@]fAIf@Al@Bt@`AvKVhDDpAMjB[jASb@yAzBiAvAuCfEYxAe@SmE}AsGeA_FiBwG_CsB_@sGq@{AWcA]eASuC{@g@IiDs@_BWy@FiG`BqCx@sFvA{JlC_APq@DqA?[CcAOgCg@qFqAgGkA{@Gk@@i@Dg@Je@NmAl@_^~R^p@lAlAdAv@^T~Al@t@l@F?b@MjChANBl@ATIDCFl@APNH?Ho@`CTf@HJ`@FJN?Je@fA[d@CJBJHJ@POv@HPFVd@ZBJAJa@v@bAf@JjAw@`@yAf@s@d@SHQAAf@c@C@p@YAm@R?n@SPkAPAB?|@g@HCLaAB</string>
45
</resources>

build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ allprojects {
1818
google()
1919
jcenter()
2020
maven { url 'https://jitpack.io' }
21+
maven { url 'https://mapbox.bintray.com/mapbox' }
2122

2223
}
2324
}

toasterlibrary/build.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,8 @@ dependencies {
3131
testImplementation 'junit:junit:4.12'
3232
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
3333
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
34+
35+
//retrofit
36+
implementation 'com.squareup.retrofit2:retrofit:2.6.0'
37+
implementation 'com.squareup.retrofit2:converter-gson:2.6.0'
3438
}
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,6 @@
11
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2-
package="com.kathmandulivinglabs.navigationlibrary" />
2+
package="com.kathmandulivinglabs.navigationlibrary" >
3+
4+
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
5+
<uses-permission android:name="android.permission.INTERNET"/>
6+
</manifest>

toasterlibrary/src/main/java/com/kathmandulivinglabs/navigationlibrary/ToasterMessage.java

Lines changed: 0 additions & 12 deletions
This file was deleted.
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package com.kathmandulivinglabs.navigationlibrary.application;
2+
3+
import android.app.Application;
4+
import android.content.Context;
5+
import android.net.ConnectivityManager;
6+
import android.net.NetworkInfo;
7+
8+
import java.io.IOException;
9+
10+
import okhttp3.Interceptor;
11+
import okhttp3.OkHttpClient;
12+
import okhttp3.Request;
13+
import okhttp3.Response;
14+
import retrofit2.Retrofit;
15+
import retrofit2.converter.gson.GsonConverterFactory;
16+
17+
public class App extends Application {
18+
private static TinyDB tinyDB;
19+
20+
@Override
21+
public void onCreate() {
22+
super.onCreate();
23+
//tiny db config
24+
tinyDB = new TinyDB(getApplicationContext());
25+
}
26+
27+
28+
public static TinyDB db() {
29+
return tinyDB;
30+
}
31+
32+
public static Retrofit retrofit(final String token) {
33+
Retrofit.Builder builder = new Retrofit.Builder()
34+
.baseUrl("http://178.128.59.143/api/v1/")
35+
.addConverterFactory(GsonConverterFactory.create());
36+
37+
OkHttpClient.Builder okHttpBuilder = new OkHttpClient.Builder();
38+
okHttpBuilder.addInterceptor(new Interceptor() {
39+
@Override
40+
public Response intercept(Chain chain) throws IOException {
41+
Request original = chain.request();
42+
Request request = original.newBuilder()
43+
.header("Authorization", "Bearer " + token)
44+
.method(original.method(), original.body())
45+
.build();
46+
47+
return chain.proceed(request);
48+
}
49+
});
50+
builder.client(okHttpBuilder.build());
51+
Retrofit retrofit = builder.build();
52+
return retrofit;
53+
}
54+
55+
public static boolean isConnectedToNetwork(Context context) {
56+
ConnectivityManager connectivityManager =
57+
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
58+
59+
boolean isConnected = false;
60+
if (connectivityManager != null) {
61+
NetworkInfo activeNetwork = connectivityManager.getActiveNetworkInfo();
62+
isConnected = (activeNetwork != null) && (activeNetwork.isConnectedOrConnecting());
63+
}
64+
return isConnected;
65+
}
66+
}

0 commit comments

Comments
 (0)