Releases: skedgo/tripkit-android
v1.21: Refactor RouteService (#323)
You can now exclude transport and transit modes from routing using RouteService
.
Release v1.20 (#322)
* Upgrade AGP to 3.1.0 (#278) * Upgradle gradle plugin * AccountData shoulds needs domain at runtime * Include in immutableGson in packaging * Use the module * Prefer Google * 27 now * Revert this * Revert this * Update modeInfo and RealtimeAlert models (#279) * Add fromDate * Rename to modeInfo * Fix this annotation * Remove modeIdentifier * Add alt * Add remoteIconIsTemplate * Add mavenCentral() * Add MavenCentral * Tin/support modes filter (#280) Support modes filter * Add helper methods to query (#281) * Add these * This is NonNull * Add API to print local time (#282) * Relax logic of determining skedgo urls (#275) * Relax logic of determining skedgo urls * Fix test * Separate binding adapters (#283) * Turn by turn (#284) * Add segment turn by turn info * Publish artifacts * Publish artifacts * Databinding v2 * Obfuscate tripkit booking * Pass JsonAdapter Annotations to immutable class * Add proguard config for tripkit (#287) * Add Proguard config for tripkit * Remove facebook * Integrate myki (#288) * Set default component * Handle empty booking form (response 204) (#286) * Handle empty booking form (response 204) * Fix tests * Add test and fix some stuff * Add null form test * Add !! * Remove gcm dependency * Use firebase job dispatcher * Notify the scheduler when finished * Reverse `needsReschedule` * Fix tests * Handle myki specific auth booking form (#289) * Set default component * Handle empty booking form (response 204) (#286) * Handle empty booking form (response 204) * Fix tests * Add test and fix some stuff * Add null form test * Add !! * Remove gcm dependency * Use firebase job dispatcher * Notify the scheduler when finished * Reverse `needsReschedule` * Handle myki specific auth booking form * Fix Requesting Regions too frequently (#291) * Upgrades gradle (#292) * Set default component * Handle empty booking form (response 204) (#286) * Handle empty booking form (response 204) * Fix tests * Add test and fix some stuff * Add null form test * Add !! * Remove gcm dependency * Use firebase job dispatcher * Notify the scheduler when finished * Reverse `needsReschedule` * Use 2.1 pluging for gradle 4.6+ * Upgrade gradle * Target sdk 27 (#294) * Target sdk 27 * target 27 for samples module * Update dependencies (#295) * Target sdk 27 * target 27 for samples module * Update dependencies * Fix stops disappearing (#297) * Target sdk 27 * target 27 for samples module * Update dependencies * Fix stops disappearing by adding includeStops=true query * Fix tests * Save and load sources (#237) * Save and load sources * Use plain string * Fix racv issues 2 (#299) * Set hint for password * ActionSend on the password EditText * Goes from the password field to submitting the form * Fix not show error when login to myki account (#293) * Show error when an network exception occurs * Fix test * UUID as user identifier (#298) * Generate random UUID to use as user identifier * Fix test * Move set key responsibility to repository implementation * Refactor * Use the same Prefs as the userToken * Fix test * Bundle randome uuid * Remove import * Fix import * Add @SerializedName to work with reflection (#301) * Implement myki topup (#303) * Dont override URL for lamda * Hot fix for payment * Add v = 12 (#305) * Upgradle play services (#306) * Upgrade play services * Upgrade gradle * Upgrade gradle * Add funicular icon (#308) * Add funicular icon * Reformat * Region info cache (#309) * Add basic region info cache * Fix wheelchair stuck routing issue WIP * Refactor and fix tests * Update tests * Refactor * Refactor test * Refactor again * Optional (#310) * Upgrade dependencies (#312) * Upgrade AGP and kotlin * Update travis config * Compile with sdk 28 * Dont need to inherit this * Fix databinding compiler version * Dont override interface method * Fix test * Update support lib * User version constant * Add setter (#313) * Match trip with prefix (#314) * Fix bikeshare results shown when only public transport selected (#315) * Match trip with prefix * Match trips with modeId considering grouping mode Ids * Upgrade to kotlin 1.2 (#316) * Upgrade to kotlin 1.2 * Update kluent * Change package name * Migrate to androidx (#317) * Migrate to androidx * Migrate to androidx * Clean up * Use androidx annotations * Some versions tuning * Fix annotation dependency * assembleRelease * Update build tools version * Down to 27 * Down to 27 * Allow adding trip as display trip to tripgroup (#318) * Allow adding trip as display trip to tripgroup * Open methods * Fix test * 1 more test * Fix imports * Routing status message (#302) * Add routing error message * Fix tests * Add NoConnection routing error * Refactor * Refactor again * Remove test * Add rxjava 2 (#321) * Bicycle dismount section red (#320) * Handle dismount property * Do not use unmount property with wheelchair * Refactor * Rename * Fix read me * All use the same tripkit version * Update READMe * Get trip kit from jitpack * Use jitppack version * Update tripkit version * Add sources and javadoc jar * Build with master-snapshot * Add version to README * Update version again * Add # * Build with dev for now
v1.1b5
What's New?
- New:
Configs
now exposes anuserTokenProvider
to retrieve user token obtained via TripGo Account APIs. - New: Booking Extensions for TripKit was formed. See its docs.
- New: Account Extensions for TripKit was formed. See its docs.
Upgrade
compile('com.skedgo.sdk:trip-kit:1.1b5@aar') {
transitive = true
}
compile('com.skedgo.sdk:trip-kit-booking:1.0b2@aar') {
transitive = true
}
compile('com.skedgo.sdk:trip-kit-account:1.0b2@aar') {
transitive = true
}
v1.1b4
- New:
Booking
now includes an optionalquickBookingsUrl
property to perform quick booking. - New: BookingKit's source code was moved into this repo. BookingKit provides
QuickBookingApi
to handle thequickBookingsUrl
above.BookingKitModule
denotes how theQuickBookingApi
is instantiated. Note that theOkHttpClient
param required should be obtained from TripKit. There's also aBookingApi
to handlebookingURL
too.
In order to use BookingKit, add following dependency:
compile('com.skedgo.sdk:booking-kit:1.0b1@aar') {
transitive = true
}
v1.1b2
TripKit's 'Configs' exposed a factory to initialize Co2Preferences
that helps specify CO2 of some transports. Co2Preferences
has a default implementation namely DefaultCo2Preferences
that stores and queries CO2 preferences via SharedPreferences
. However, if you aren't satisfied with it, you can spawn a new implementation. For usage of DefaultCo2Preferences
, please refer to this DefaultCo2PreferencesTest
.
v1.1b1
This beta provides BookingResolver
that is corresponding to TKInterAppCommunicator
on iOS. When you got a Booking
object and a list of external actions obtained via getExternalActions()
, BookingResolver
can help you perform each of action by invoking performExternalActionAsync()
. The method returns an Observable
so that you can retrieve the BookingAction
asynchronously. Why asynchronous? When it comes to resolving an action related to FlitWays, BookingResolver
delegates determining exact addresses of locations to Geocoders which require networking. So by subscribing an Observable
, you can avoid unnecessary UI blocking.
The BookingAction
returned can be useful. It can depict whether there's a built-in app (e.g. Uber, Lyft apps) (via hasApp()
) so that you can start perform deep-linking by calling, for example, startActivity()
with BookingAction.data()
.
Other than that, you may wonder how to show things like Open Uber
, Book with FlitWays
or Open Lyft
. getTitleForExternalAction()
will do the trick.
In order to know more about BookingResolver
's behaviors, you can take a look at its unit test.
v1.0-rc6
v1.0-rc5
- Fixed: Use info was previously sent as
Map<String, String>
. User info is nowMap<String, Object>
. - New APIs to retrieve dark icons:
TransportModeUtils.getDarkIconUrlForModeInfo()
andTransportModeUtils.getDarkIconUrlForTransportMode()
. See this for samples. - TripKit's source code is now located at https://github.com/skedgo/tripkit-android/tree/master/trip-kit.
- New APIs to get real time update for a trip:
RealTimeTripUpdateReceiver
.RealTimeTripUpdateReceiver
has an implementation,PeriodicRealTimeTripUpdateReceiver
, that gets real time update for display trip periodically. The usage is pretty straightforward as following:
private TripGroup tripGroup;
private RealTimeTripUpdateReceiver realTimeTripUpdateReceiver;
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
realTimeTripUpdateReceiver = PeriodicRealTimeTripUpdateReceiver.builder()
.group(tripGroup)
.initialDelay(10)
.period(10)
.timeUnit(TimeUnit.SECONDS)
.build();
}
@Override public void onStart() {
super.onStart();
realTimeTripUpdateReceiver.startAsync()
.subscribe(new Action1<TripGroup>() {
@Override public void call(TripGroup group) {
// TODO: Reshow display trip.
}
});
}
@Override public void onStop() {
super.onStop();
realTimeTripUpdateReceiver.stop();
}
v1.0-rc4
New API: Reporter
. Reporter
has the same usage of TKReporter
in iOS counterpart. Reporter
can be accessed via TripKit.getReporter()
.
v1.0-rc3
TripKit now no longer relies on the regions.json
file. Delete that file in your project if any.
TripKit has also changed the way it is initialized. TripKit.with()
was removed. So upgrading to v1.0-rc3
will result in compile errors. In order to fix, place following code into your Application
's onCreate
:
TripKit.initialize(
Configs.builder()
.context(this)
.regionEligibility(regionEligibility)
.debuggable(BuildConfig.DEBUG)
.errorHandler(new Action1<Throwable>() {
@Override public void call(Throwable error) {
// It's highly recommended to handle this error.
// For example, report the error to InstaBug.
}
})
.build());
In order to access things like RouteService
and RegionService
, invoke TripKit.singleton()
. Note that TripKit.singleton()
can only be accessed after TripKit.initialize()
. Otherwise, IllegalStateException
will be thrown.
See this App class for further examples.