Giter Site home page Giter Site logo

aliumujib / nibo Goto Github PK

View Code? Open in Web Editor NEW
167.0 11.0 57.0 4.8 MB

Android Place picker dependent on Google places, made a custom version so I could style it anyway I wanted for my current project, WIP

License: MIT License

Java 100.00%
google-maps google-places

nibo's Introduction

Nibo library for Android

Android library that provides UI for a customizable place picker, origin and destination picker and Google Places autocomplete searchview

Current stable version - 2.0

This version uses Google Play Services 11.6.0 and RxJava 2.0.+

What can you do with this?

  • Easily add a Google Places autocomplete searchview widget to your project
  • Pick a location from a map
  • Can be customized to match the theme of your app
  • Can use customized map markers
  • Can drag map marker to select location
  • Can search for location names
  • uses a fragment which you can overide and add extra functionality
  • Pick a origin location and a destination location (like Uber)
  • Can be customized to match the theme of your app
  • Can use custom map markers for each location
  • Get directions, distance and time from a location with directions API

What does the UI look like?

ROW 1 ROW 2

How do I use this?

Using NiboPlaceAutoCompleteSearchView

Simple. All you need is to do is:

  • Add the following to your layout (You can change the values as you wish)
<com.alium.nibo.autocompletesearchbar.NiboPlacesAutoCompleteSearchView
       android:id="@+id/autocompletesearchbar"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:elevation="4dp"
       app:niboSV_customToolbarHeight="?attr/actionBarSize"
       app:niboSV_displayMode="screen_toolbar"
       app:niboSV_editHintText="Search"
       app:niboSV_editHintTextColor="#757575"
       app:niboSV_editTextColor="#757575"
       app:niboSV_homeButtonMode="nibo_burger"
       app:niboSV_searchCardElevation="2dp"
       app:niboSV_searchTextColor="#757575" />
  • In your fragment or activity, implement NiboAutocompleteSVProvider, and return a valid GoogleAPIClient object and an instance of NiboPlacesAutoCompleteSearchView.SearchListener (see example app for better explanation)

  • Call setmProvider(this) on your seachview.

Using NiboOriginDestinationPickerUI

  • Add the following to your manifest file. NiboOrigDestTheme.NoActionBar gives you the default (white and black) styling.
<activity
           android:name="com.alium.nibo.origindestinationpicker.NiboOriginDestinationPickerActivity"
           android:label="@string/title_activity_origin_destination_picker"
           android:theme="@style/NiboOrigDestTheme.NoActionBar" />
  • To use a custom style, see NiboActivityStyle style in the niboexample project. Make sure your theme has NiboOrigDestTheme.NoActionBar as a parent.

  • To start the activity:

Intent intent = new Intent(this, NiboOriginDestinationPickerActivity.class);

        NiboOriginDestinationPickerActivity.NiboOriginDestinationPickerBuilder config = new NiboOriginDestinationPickerActivity.NiboOriginDestinationPickerBuilder()
                .setDestinationMarkerPinIconRes(R.drawable.ic_map_marker_black_36dp)
                .setOriginMarkerPinIconRes(R.drawable.ic_map_marker_black_36dp)
                .setOriginEditTextHint("Input pick up location")
                .setPrimaryPolyLineColor(R.color.colorPrimary)
                .setSecondaryPolyLineColor(R.color.colorAccent)
                .setDestinationEditTextHint("Input destination")
                .setStyleEnum(NiboStyle.SUBTLE_GREY_SCALE);

        NiboOriginDestinationPickerActivity.setBuilder(config);
        startActivityForResult(intent, REQUEST_CODE);
  • You can customize it other things like the directions Polyline color using the NiboOriginDestinationPickerBuilder as shown above.

Using NiboPlacePickerUI

  • To start the activity:
Intent intent = new Intent(this, NiboPlacePickerActivity.class);
 NiboPlacePickerActivity.NiboPlacePickerBuilder config = new NiboPlacePickerActivity.NiboPlacePickerBuilder()
         .setSearchBarTitle("Search for an area")
         .setConfirmButtonTitle("Pick here bish")
         .setMarkerPinIconRes(R.drawable.ic_map_marker_black_36dp)
         .setStyleEnum(NiboStyle.NIGHT_MODE);
         .setStyleFileID(R.raw.retro);
 NiboPlacePickerActivity.setBuilder(config);
 startActivityForResult(intent, REQUEST_CODE);
  • To retrieve the results:
Intent intent = new Intent(this,
        if (resultCode == Activity.RESULT_OK && requestCode == 300) {
            NiboSelectedPlace selectedPlace = data.getParcelableExtra(NiboConstants.SELECTED_PLACE_RESULT);
            Toast.makeText(this, selectedPlace.getPlaceAddress(), Toast.LENGTH_LONG).show();

            Toast.makeText(this, selectedPlace.getLatitude(), Toast.LENGTH_LONG).show();

              Toast.makeText(this, selectedPlace.getLongitude(), Toast.LENGTH_LONG).show();
        } else if (resultCode == Activity.RESULT_OK && requestCode == 200) {
            NiboSelectedOriginDestination selectedOriginDestination = data.getParcelableExtra(NiboConstants.SELECTED_ORIGIN_DESTINATION_RESULT);
            Toast.makeText(this, selectedOriginDestination.getOriginFullName() + " - " + selectedOriginDestination.getDestinationFullName(), Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(this, "Error getting results", Toast.LENGTH_LONG).show();
        }
  • You can customize it other things like the directions Polyline color using the NiboPlacePickerBuilder as shown above.

How to add to your project?

Gradle

Step 1. Add the JitPack repository to your build file

Add it in your root build.gradle at the end of repositories:

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

Step 2. Add the dependency

dependencies {
     compile 'com.github.aliumujib:Nibo:2.0'
}

Nibo requires at minimum Android 4.1 (API Level 15).

Manual

  • download project source
  • import new module to your project
  • compile path(":modulename")

Sample

Sample usage is available in niboexample directory.

Directions, Places and Maps APIs require API Key. Before running samples you need to create project on API console and obtain API Key from here. Obtained key should used to replace string named: google_places_key in google_maps_api.xml file.

TODO

  • Add better example
  • Add options transport type to DirectionsFinder

References

If you need the SearchView without all the Google Places stuff, look at PersistentSearchView .

Other Notes

Nibo means “Where?” in my native language (Yoruba), so yeah, Nigeria to the world baby!! Also Nibo is a work in progress and I will keep updating it, suggestions (and issues) are welcome. Tweet them at me @aliumujib on twitter or email me.

nibo's People

Contributors

aliumujib avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nibo's Issues

GoogleMap is null

java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.maps.GoogleMap.setMyLocationEnabled(boolean)' on a null object reference
at com.alium.nibo.base.BaseNiboFragment$6.onSuccess(BaseNiboFragment.java:491)
at com.alium.nibo.base.BaseNiboFragment$6.onSuccess(BaseNiboFragment.java:483)
at com.google.android.gms.tasks.zzn.run(Unknown Source:27)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

how do we resolve this?

Error clicking "LAUNCH LOCATION PICKER" in demo application:

The following error appears using API 19:
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.alium.nibo.placepicker.NiboPlacePickerActivity}: android.view.InflateException: Binary XML file line #93: Error inflating class ImageView
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2318)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396)
at android.app.ActivityThread.access$800(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1293)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:149)
at android.app.ActivityThread.main(ActivityThread.java:5257)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #93: Error inflating class ImageView
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at com.alium.nibo.base.BaseNiboFragment.onCreateView(BaseNiboFragment.java:167)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2346)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1428)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1759)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1827)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:797)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2596)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2383)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2338)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2245)
at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3248)
at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3200)
at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:195)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:597)
at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1171)
at android.app.Activity.performStart(Activity.java:5421)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2279)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396) 
at android.app.ActivityThread.access$800(ActivityThread.java:139) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1293) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:149) 
at android.app.ActivityThread.main(ActivityThread.java:5257) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:515) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.NumberFormatException: Invalid int: "res/color/tertiary_text_dark.xml"
at java.lang.Integer.invalidInt(Integer.java:137)
at java.lang.Integer.parse(Integer.java:374)
at java.lang.Integer.parseInt(Integer.java:365)
at com.android.internal.util.XmlUtils.convertValueToInt(XmlUtils.java:122)
at android.content.res.TypedArray.getInt(TypedArray.java:255)
at android.widget.ImageView.(ImageView.java:155)
at android.support.v7.widget.AppCompatImageView.(AppCompatImageView.java:71)
at android.support.v7.widget.AppCompatImageView.(AppCompatImageView.java:67)
at android.support.v7.app.AppCompatViewInflater.createImageView(AppCompatViewInflater.java:181)
at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:105)
at android.support.v7.app.AppCompatDelegate

Gradle too slow

I am usign Nibo as a library, when I include this library, build time is increase t 3 to 5 mins. Please fix this issue, also provide a maven of this project, so then no need to add the whole module.

The String#value field is not present on Android versions >= 6.0

07-29 07:47:11.970 9991-9991/ke.co.safiripesa E/art: The String#value field is not present on Android versions >= 6.0
07-29 07:48:39.418 9991-9991/ke.co.safiripesa E/NiboOriginDestinationPickerActivity: What the actual fuck?
07-29 07:48:39.958 9991-9991/ke.co.safiripesa E/AndroidRuntime: FATAL EXCEPTION: main
Process: ke.co.safiripesa, PID: 9991
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.widget.ViewDragHelper.processTouchEvent(android.view.MotionEvent)' on a null object reference
at com.alium.nibo.lib.BottomSheetBehaviorGoogleMapsLike.onTouchEvent(BottomSheetBehaviorGoogleMapsLike.java:295)
at android.support.design.widget.CoordinatorLayout.resetTouchBehaviors(CoordinatorLayout.java:389)
at android.support.design.widget.CoordinatorLayout.onAttachedToWindow(CoordinatorLayout.java:235)
at android.view.View.dispatchAttachedToWindow(View.java:16170)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3163)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3170)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3170)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3170)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3170)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3170)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3170)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1750)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1465)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6996)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:918)
at android.view.Choreographer.doCallbacks(Choreographer.java:716)
at android.view.Choreographer.doFrame(Choreographer.java:651)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:904)
at android.os.Handler.handleCallback(Handler.java:836)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:203)
at android.app.ActivityThread.main(ActivityThread.java:6251)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1073)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:934)

Add autocomplete filter

Hello, I am really glad using your library, but I have a case which is only showing name of places on a country.

I used to AutocompleteFilter with Google Places API, and maybe if this library could do that, how to use it?

AutocompleteFilter autocompleteFilter = new AutocompleteFilter.Builder()
                .setCountry(Constants.INDONESIA)
                .build();

I saw in your SuggestionsRepository class, and null is passing in the filter

issue 1

error while opening launch location picker it has stopped

NullPointerException error on BottomSheetBehaviorGoogleMapsLike.onTouchEvent

java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.customview.widget.ViewDragHelper.processTouchEvent(android.view.MotionEvent)' on a null object reference
at com.alium.nibo.lib.BottomSheetBehaviorGoogleMapsLike.onTouchEvent(BottomSheetBehaviorGoogleMapsLike.java:295)
at androidx.coordinatorlayout.widget.CoordinatorLayout.resetTouchBehaviors(CoordinatorLayout.java:396)
at androidx.coordinatorlayout.widget.CoordinatorLayout.onAttachedToWindow(CoordinatorLayout.java:238)
at android.view.View.dispatchAttachedToWindow(View.java:17545)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3358)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3365)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3365)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3365)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3365)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3365)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3365)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1728)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1446)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6954)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:925)
at android.view.Choreographer.doCallbacks(Choreographer.java:737)
at android.view.Choreographer.doFrame(Choreographer.java:669)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:911)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:192)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:818)

Recent address

Is there any way of showing recent address that has been selected before?

Is there any way of getting recent places in the results?

Error inflating class android.support.design.widget.AppBarLayout

Have this exception,

` android.view.InflateException: Binary XML file line #28: Binary XML file line #28:

  • Error inflating class android.support.design.widget.AppBarLayout

    Caused by: android.view.InflateException: Binary XML file line #28: Error inflating class android.support.design.widget.AppBarLayout
    Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Constructor.newInstance0(Native Method)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
    at android.view.LayoutInflater.createView(LayoutInflater.java:647)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:866)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
    at com.alium.nibo.base.BaseNiboFragment.onCreateView(BaseNiboFragment.java:167)
    at android.support.v4.app.Fragment.performCreateView(Fragment.java:2439)
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1460)
    at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
    at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:802)
    at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2625)
    at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2411)
    at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2366)
    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2273)
    at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3273)
    at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3229)
    at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:201)
    at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:620)
    at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:178)
    at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1391)
    at android.app.Activity.performStart(Activity.java:7157)
    at android.app.ActivityThread.handleStartActivity(ActivityThread.java:2937)
    at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:180)
    at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:165)
    at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:142)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
    Caused by: java.lang.UnsupportedOperationException: Failed to resolve attribute at index 13: TypedValue{t=0x2/d=0x7f04002d a=-1}
    at android.content.res.TypedArray.getDrawableForDensity(TypedArray.java:946)
    at android.content.res.TypedArray.getDrawable(TypedArray.java:930)
    at android.view.View.(View.java:5010)
    at android.view.ViewGroup.(ViewGroup.java:659)
    at android.widget.LinearLayout.(LinearLayout.java:244)
    2019-03-30 15:27:32.566 30948-30948/platform.codes.E/AndroidRuntime: at android.widget.LinearLayout.(LinearLayout.java:240)
    at android.widget.LinearLayout.(LinearLayout.java:236)
    at android.support.design.widget.AppBarLayout.(AppBarLayout.java:173)`

niboSearchSuggestionItem getmLatLng() returns null

Halo, I am currently using this library but I got a problem which the item.getmLatLng() returns null

public NiboPlacesAutoCompleteSearchView.SearchListener getSearchListener() {
        return new NiboPlacesAutoCompleteSearchView.SearchListener() {
            @Override
            public boolean onSuggestion(NiboSearchSuggestionItem niboSearchSuggestionItem) {

                Log.e(TAG, String.valueOf(niboSearchSuggestionItem.getmLatLng())); // this log is null
                return false;
            }

            ...
        }
    }

I fixed it by using geoDataClient.getPlaceById(niboSearchSuggestionItem.getPlaceID()) to get Place with id

NullPointerException

java.lang.NullPointerException: Attempt to invoke interface method 'void com.alium.nibo.placepicker.NiboPickerContracts$Presenter.getGeocode(double, double)' on a null object reference at com.alium.nibo.placepicker.NiboPickerFragment.extractGeocode(NiboPickerFragment.java:156)
at com.alium.nibo.base.BaseNiboFragment$2.onLocationResult(BaseNiboFragment.java:346)

Accessing the location.

Hey how can we access the location which is clicked on the search bar? Does have any variable for accessing it or any method which returns location or LatLng?

Resource not found exception

I'm getting the below exception

Process: com.bevytechnologies.client.parcell.parcellclient, PID: 2980
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.bevytechnologies.client.parcell.parcellclient/com.alium.nibo.origindestinationpicker.NiboOriginDestinationPickerActivity}: android.view.InflateException: Binary XML file line #156: Binary XML file line #156: Error inflating class android.support.design.widget.FloatingActionButton
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2957)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Caused by: android.view.InflateException: Binary XML file line #156: Binary XML file line #156: Error inflating class android.support.design.widget.FloatingActionButton
Caused by: android.view.InflateException: Binary XML file line #156: Error inflating class android.support.design.widget.FloatingActionButton
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:334)
at android.view.LayoutInflater.createView(LayoutInflater.java:647)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at com.alium.nibo.base.BaseNiboFragment.onCreateView(BaseNiboFragment.java:167)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2346)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1428)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1759)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1827)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:797)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2596)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2383)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2338)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2245)
at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3248)
at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3200)
at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:195)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:597)
at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1340)
at android.app.Activity.performStart(Activity.java:7191)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2920)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
08-01 19:32:56.905 2980-2980/com.bevytechnologies.client.parcell.parcellclient E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Caused by: android.content.res.Resources$NotFoundException: File res/drawable-xxxhdpi-v4/ic_navigation_def.png from drawable resource ID #0x7f0700d6: .xml extension required
at android.content.res.ResourcesImpl.loadComplexColorForCookie(ResourcesImpl.java:1094)
at android.content.res.ResourcesImpl.loadComplexColorFromName(ResourcesImpl.java:915)
at android.content.res.ResourcesImpl.loadColorStateList(ResourcesImpl.java:994)
at android.content.res.Resources.loadColorStateList(Resources.java:1044)
at android.content.res.TypedArray.getColorStateList(TypedArray.java:541)
at android.support.design.widget.FloatingActionButton.(FloatingActionButton.java:169)
at android.support.design.widget.FloatingActionButton.(FloatingActionButton.java:158)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.