From 50976bac38a22c665f145500764379a3e010dbde Mon Sep 17 00:00:00 2001 From: Abdul-Mujeeb Aliu Date: Tue, 12 Sep 2017 19:06:09 +0100 Subject: [PATCH] renamed icon --- .../com/alium/niboexample/MainActivity.java | 18 +-- .../NiboSearchSuggestionItem.java | 41 +++++- .../models/NiboSelectedOriginDestination.java | 124 ++++++++++++++++++ .../NiboOriginDestinationPickerFragment.java | 40 +++++- .../nibo/placepicker/NiboPickerFragment.java | 2 +- .../com/alium/nibo/utils/NiboConstants.java | 3 +- 6 files changed, 211 insertions(+), 17 deletions(-) create mode 100644 nibolib/src/main/java/com/alium/nibo/models/NiboSelectedOriginDestination.java diff --git a/niboexample/src/main/java/com/alium/niboexample/MainActivity.java b/niboexample/src/main/java/com/alium/niboexample/MainActivity.java index 48da9b3..142c9d6 100644 --- a/niboexample/src/main/java/com/alium/niboexample/MainActivity.java +++ b/niboexample/src/main/java/com/alium/niboexample/MainActivity.java @@ -5,10 +5,8 @@ import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; -import android.support.design.widget.FloatingActionButton; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.AppCompatButton; -import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.view.View; @@ -17,6 +15,7 @@ import com.alium.nibo.autocompletesearchbar.NiboAutocompleteSVProvider; import com.alium.nibo.autocompletesearchbar.NiboPlacesAutoCompleteSearchView; import com.alium.nibo.autocompletesearchbar.NiboSearchSuggestionItem; +import com.alium.nibo.models.NiboSelectedOriginDestination; import com.alium.nibo.models.NiboSelectedPlace; import com.alium.nibo.origindestinationpicker.NiboOriginDestinationPickerActivity; import com.alium.nibo.placepicker.NiboPlacePickerActivity; @@ -59,9 +58,9 @@ private void launchPickerFragment() { .setConfirmButtonTitle("Pick here bish") .setMarkerPinIconRes(R.drawable.ic_map_marker_black_36dp) .setStyleEnum(NiboStyle.NIGHT_MODE); - //.setStyleFileID(R.raw.retro); + //.setStyleFileID(R.raw.retro); NiboPlacePickerActivity.setBuilder(config); - startActivityForResult(intent, 200); + startActivityForResult(intent, 300); } @@ -85,11 +84,14 @@ private void launchStartFinishActivity() { protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); - if (resultCode == Activity.RESULT_OK && requestCode == 200) { - NiboSelectedPlace selectedPlace = data.getParcelableExtra(NiboConstants.RESULTS_SELECTED); + if (resultCode == Activity.RESULT_OK && requestCode == 300) { + NiboSelectedPlace selectedPlace = data.getParcelableExtra(NiboConstants.SELECTED_PLACE_RESULT); Toast.makeText(this, selectedPlace.getPlaceAddress(), 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 images", Toast.LENGTH_LONG).show(); + Toast.makeText(this, "Error getting results", Toast.LENGTH_LONG).show(); } } @@ -168,7 +170,7 @@ public void onSearch(String string) { @Override public boolean onSuggestion(NiboSearchSuggestionItem niboSearchSuggestionItem) { - Toast.makeText(MainActivity.this, "PLACE NAME:" + niboSearchSuggestionItem.getFullTitle() +" PLACE ID: "+ niboSearchSuggestionItem.getPlaceID(), Toast.LENGTH_SHORT).show(); + Toast.makeText(MainActivity.this, "PLACE NAME:" + niboSearchSuggestionItem.getFullTitle() + " PLACE ID: " + niboSearchSuggestionItem.getPlaceID(), Toast.LENGTH_SHORT).show(); mAutocompletesearchbar.closeSearch(); return false; } diff --git a/nibolib/src/main/java/com/alium/nibo/autocompletesearchbar/NiboSearchSuggestionItem.java b/nibolib/src/main/java/com/alium/nibo/autocompletesearchbar/NiboSearchSuggestionItem.java index 6222df0..65e780c 100644 --- a/nibolib/src/main/java/com/alium/nibo/autocompletesearchbar/NiboSearchSuggestionItem.java +++ b/nibolib/src/main/java/com/alium/nibo/autocompletesearchbar/NiboSearchSuggestionItem.java @@ -1,10 +1,12 @@ package com.alium.nibo.autocompletesearchbar; import android.graphics.drawable.Drawable; +import android.os.Parcel; +import android.os.Parcelable; import com.google.android.gms.maps.model.LatLng; -public class NiboSearchSuggestionItem { +public class NiboSearchSuggestionItem implements Parcelable { private String mTitle; private String mValue; private LatLng mLatLng; @@ -18,6 +20,8 @@ public NiboSearchSuggestionItem(String title, String value) { this(title, value, TYPE_SEARCH_ITEM_DEFAULT, null, null); } + + /** * Create a search result with text and an icon * @@ -69,6 +73,9 @@ public void setTitle(String title) { this.mTitle = title; } + /** + * Used internally by the autocomplete searchview ... + */ public String getValue() { return mValue; } @@ -119,4 +126,36 @@ public String getLongTitle() { } return null; } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeString(this.mTitle); + dest.writeString(this.mValue); + dest.writeParcelable(this.mLatLng, flags); + dest.writeInt(this.mType); + } + + protected NiboSearchSuggestionItem(Parcel in) { + this.mTitle = in.readString(); + this.mValue = in.readString(); + this.mLatLng = in.readParcelable(LatLng.class.getClassLoader()); + this.mType = in.readInt(); + } + + public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { + @Override + public NiboSearchSuggestionItem createFromParcel(Parcel source) { + return new NiboSearchSuggestionItem(source); + } + + @Override + public NiboSearchSuggestionItem[] newArray(int size) { + return new NiboSearchSuggestionItem[size]; + } + }; } \ No newline at end of file diff --git a/nibolib/src/main/java/com/alium/nibo/models/NiboSelectedOriginDestination.java b/nibolib/src/main/java/com/alium/nibo/models/NiboSelectedOriginDestination.java new file mode 100644 index 0000000..3638602 --- /dev/null +++ b/nibolib/src/main/java/com/alium/nibo/models/NiboSelectedOriginDestination.java @@ -0,0 +1,124 @@ +package com.alium.nibo.models; + +import android.os.Parcel; +import android.os.Parcelable; + +import com.alium.nibo.autocompletesearchbar.NiboSearchSuggestionItem; +import com.google.android.gms.maps.model.LatLng; + +/** + * Created by abdulmujibaliu on 9/12/17. + */ + +public class NiboSelectedOriginDestination implements Parcelable { + private NiboSearchSuggestionItem originItem; + private NiboSearchSuggestionItem destinationItem; + + private LatLng originLatLng; + private LatLng destinationLatLng; + + public boolean isOriginValid() { + if (originItem != null && originLatLng != null) { + return true; + } else + return false; + } + + public boolean isDestinationValid() { + if (destinationItem != null && destinationLatLng != null) { + return true; + } else + return false; + } + + public void setOriginItem(NiboSearchSuggestionItem originItem) { + this.originItem = originItem; + } + + public void setDestinationItem(NiboSearchSuggestionItem destinationItem) { + this.destinationItem = destinationItem; + } + + public String getOriginShortName() { + return originItem.getShortTitle(); + } + + public String getDestinationShortName() { + return destinationItem.getShortTitle(); + } + + public String getDestinationLongName() { + return destinationItem.getLongTitle(); + } + + public String getOriginLongName() { + return originItem.getLongTitle(); + } + + public String getOriginFullName() { + return originItem.getFullTitle(); + } + + public String getDestinationFullName() { + return destinationItem.getFullTitle(); + } + + public String getDestinationPlaceID() { + return destinationItem.getPlaceID(); + } + + public String getOriginPlaceID() { + return originItem.getPlaceID(); + } + + public LatLng getOriginLatLng() { + return originLatLng; + } + + public void setOriginLatLng(LatLng originLatLng) { + this.originLatLng = originLatLng; + } + + public LatLng getDestinationLatLng() { + return destinationLatLng; + } + + public void setDestinationLatLng(LatLng destinationLatLng) { + this.destinationLatLng = destinationLatLng; + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeParcelable(this.originItem, flags); + dest.writeParcelable(this.destinationItem, flags); + dest.writeParcelable(this.originLatLng, flags); + dest.writeParcelable(this.destinationLatLng, flags); + } + + public NiboSelectedOriginDestination() { + } + + protected NiboSelectedOriginDestination(Parcel in) { + this.originItem = in.readParcelable(NiboSearchSuggestionItem.class.getClassLoader()); + this.destinationItem = in.readParcelable(NiboSearchSuggestionItem.class.getClassLoader()); + this.originLatLng = in.readParcelable(LatLng.class.getClassLoader()); + this.destinationLatLng = in.readParcelable(LatLng.class.getClassLoader()); + } + + public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { + @Override + public NiboSelectedOriginDestination createFromParcel(Parcel source) { + return new NiboSelectedOriginDestination(source); + } + + @Override + public NiboSelectedOriginDestination[] newArray(int size) { + return new NiboSelectedOriginDestination[size]; + } + }; +} diff --git a/nibolib/src/main/java/com/alium/nibo/origindestinationpicker/fragment/NiboOriginDestinationPickerFragment.java b/nibolib/src/main/java/com/alium/nibo/origindestinationpicker/fragment/NiboOriginDestinationPickerFragment.java index 174d176..9154a68 100644 --- a/nibolib/src/main/java/com/alium/nibo/origindestinationpicker/fragment/NiboOriginDestinationPickerFragment.java +++ b/nibolib/src/main/java/com/alium/nibo/origindestinationpicker/fragment/NiboOriginDestinationPickerFragment.java @@ -2,6 +2,7 @@ import android.animation.Animator; import android.animation.ValueAnimator; +import android.content.Intent; import android.graphics.Color; import android.location.Location; import android.os.Build; @@ -28,11 +29,13 @@ import android.widget.ListView; import android.widget.ProgressBar; import android.widget.TextView; +import android.widget.Toast; import com.alium.nibo.R; import com.alium.nibo.autocompletesearchbar.NiboSearchSuggestionItem; import com.alium.nibo.base.BaseNiboFragment; import com.alium.nibo.lib.BottomSheetBehaviorGoogleMapsLike; +import com.alium.nibo.models.NiboSelectedOriginDestination; import com.alium.nibo.origindestinationpicker.adapter.NiboBaseOrigDestSuggestionAdapter; import com.alium.nibo.repo.directions.DirectionFinder; import com.alium.nibo.repo.directions.DirectionFinderListener; @@ -66,6 +69,7 @@ import io.reactivex.functions.Predicate; import io.reactivex.schedulers.Schedulers; +import static android.app.Activity.RESULT_OK; import static com.google.android.gms.maps.model.JointType.ROUND; /** @@ -112,6 +116,8 @@ public class NiboOriginDestinationPickerFragment extends BaseNiboFragment implem private int mPrimaryPolyLineColor; private int mSecondaryPolyLineColor; + private NiboSelectedOriginDestination mSelectedOriginDestination = new NiboSelectedOriginDestination(); + @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { @@ -271,6 +277,22 @@ public boolean onMenuItemClick(MenuItem item) { } }); + this.mDoneFab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (!mSelectedOriginDestination.isOriginValid()) { + Toast.makeText(getContext(), "Please select an initial location", Toast.LENGTH_LONG).show(); + } else if (!mSelectedOriginDestination.isDestinationValid()) { + Toast.makeText(getContext(), "Please select a final location", Toast.LENGTH_LONG).show(); + } else { + Intent intent = new Intent(); + intent.putExtra(NiboConstants.SELECTED_ORIGIN_DESTINATION_RESULT, mSelectedOriginDestination); + getActivity().setResult(RESULT_OK, intent); + getActivity().finish(); + } + } + }); + //((AppCompatActivity) getActivity()).setSupportActionBar(mToolbar); @@ -459,28 +481,34 @@ public void onItemClick(AdapterView parent, View view, int position, long id) if (mRoundedIndicatorOrigin.isChecked()) { mOriginSuggestion = mSearchSuggestions.get(position); mOriginEditText.setText(mSearchSuggestions.get(position).getShortTitle()); - getPlaceDetailsByID(mSearchSuggestions.get(position).getValue()); + mSelectedOriginDestination.setOriginItem(null); + mSelectedOriginDestination.setOriginLatLng(null); + getPlaceDetailsByID(mSearchSuggestions.get(position)); } else if (mRoundedIndicatorDestination.isChecked()) { mDestinationSuggestion = mSearchSuggestions.get(position); mDestinationEditText.setText(mSearchSuggestions.get(position).getShortTitle()); - getPlaceDetailsByID(mSearchSuggestions.get(position).getValue()); + mSelectedOriginDestination.setDestinationItem(null); + mSelectedOriginDestination.setDestinationLatLng(null); + getPlaceDetailsByID(mSearchSuggestions.get(position)); } } }); } - protected void getPlaceDetailsByID(String placeId) { - mLocationRepository.getPlaceByID(placeId).subscribe(new Consumer() { + protected void getPlaceDetailsByID(final NiboSearchSuggestionItem searchSuggestionItem) { + mLocationRepository.getPlaceByID(searchSuggestionItem.getPlaceID()).subscribe(new Consumer() { @Override public void accept(@io.reactivex.annotations.NonNull Place place) throws Exception { hideLoading(); closeSuggestions(); if (mRoundedIndicatorOrigin.isChecked()) { + mSelectedOriginDestination.setOriginItem(searchSuggestionItem); + mSelectedOriginDestination.setOriginLatLng(place.getLatLng()); addOriginMarker(place.getLatLng()); - - } if (mRoundedIndicatorDestination.isChecked()) { + mSelectedOriginDestination.setDestinationItem(searchSuggestionItem); + mSelectedOriginDestination.setDestinationLatLng(place.getLatLng()); addDestinationMarker(place.getLatLng()); } } diff --git a/nibolib/src/main/java/com/alium/nibo/placepicker/NiboPickerFragment.java b/nibolib/src/main/java/com/alium/nibo/placepicker/NiboPickerFragment.java index e75453b..5c13ad0 100644 --- a/nibolib/src/main/java/com/alium/nibo/placepicker/NiboPickerFragment.java +++ b/nibolib/src/main/java/com/alium/nibo/placepicker/NiboPickerFragment.java @@ -120,7 +120,7 @@ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { @Override public void onClick(View v) { Intent intent = new Intent(); - intent.putExtra(NiboConstants.RESULTS_SELECTED, mCurrentSelection); + intent.putExtra(NiboConstants.SELECTED_PLACE_RESULT, mCurrentSelection); getActivity().setResult(RESULT_OK, intent); getActivity().finish(); } diff --git a/nibolib/src/main/java/com/alium/nibo/utils/NiboConstants.java b/nibolib/src/main/java/com/alium/nibo/utils/NiboConstants.java index ae3f6a6..7a6d2be 100644 --- a/nibolib/src/main/java/com/alium/nibo/utils/NiboConstants.java +++ b/nibolib/src/main/java/com/alium/nibo/utils/NiboConstants.java @@ -14,8 +14,9 @@ public interface NiboConstants { String _FRAGMENT_TAG = "_FRAGMENT_TAG"; - String RESULTS_SELECTED = "RESULTS_SELECTED"; + String SELECTED_PLACE_RESULT = "SELECTED_PLACE_RESULT"; + String SELECTED_ORIGIN_DESTINATION_RESULT = "SELECTED_ORIGIN_DESTINATION_RESULT"; String ORIGIN_EDIT_TEXT_HINT_ARG = "ORIGIN_EDIT_TEXT_HINT_ARG"; String DEST_EDIT_TEXT_HINT_ARG = "DEST_EDIT_TEXT_HINT_ARG";