Android library for better Picker DialogFragments

Overview

/!\ This Project is no longer maintained /!\ 

Maven Central API Android Arsenal

Built With Cloudbees

DialogFragments modeled after the AOSP Clock and Calendar apps to improve UX for picking time, date, numbers, and other things.

Try out the sample application on Google Play.

BetterPickers Samples on Google Play

Including in Your Project

Gradle

compile 'com.code-troopers.betterpickers:library:3.1.0'

Maven

<dependency>
  <groupId>com.code-troopers.betterpickersgroupId>
  <artifactId>libraryartifactId>
  <version>3.1.0version>
  <type>aartype>
dependency>

Usage

For a working implementation of this project see the sample/ folder.

Calendar Date Picker

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        CalendarDatePickerDialogFragment cdp = new CalendarDatePickerDialogFragment()
                .setOnDateSetListener(SampleCalendarDateBasicUsage.this)
                .setFirstDayOfWeek(Calendar.SUNDAY)
                .setPreselectedDate(towDaysAgo.getYear(), towDaysAgo.getMonthOfYear() - 1, towDaysAgo.getDayOfMonth())
                .setDateRange(minDate, null)
                .setDoneText("Yay")
                .setCancelText("Nop")
                .setThemeDark(true);
        cdp.show(getSupportFragmentManager(), FRAG_TAG_DATE_PICKER);
    }
});

Radial Time Picker

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        RadialTimePickerDialogFragment rtpd = new RadialTimePickerDialogFragment()
                .setOnTimeSetListener(SampleRadialTimeBasicUsage.this)
                .setStartTime(10, 10)
                .setDoneText("Yay")
                .setCancelText("Nop")
                .setThemeDark(true);
        rtpd.show(getSupportFragmentManager(), FRAG_TAG_TIME_PICKER);
    }
});

Recurrence Picker

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        FragmentManager fm = getSupportFragmentManager();
        Bundle bundle = new Bundle();
        Time time = new Time();
        time.setToNow();
        bundle.putLong(RecurrencePickerDialogFragment.BUNDLE_START_TIME_MILLIS, time.toMillis(false));
        bundle.putString(RecurrencePickerDialogFragment.BUNDLE_TIME_ZONE, time.timezone);
        bundle.putString(RecurrencePickerDialogFragment.BUNDLE_RRULE, mRrule);
        bundle.putBoolean(RecurrencePickerDialogFragment.BUNDLE_HIDE_SWITCH_BUTTON, true);

        RecurrencePickerDialogFragment rpd = new RecurrencePickerDialogFragment();
        rpd.setArguments(bundle);
        rpd.setOnRecurrenceSetListener(SampleRecurrenceBasicUsage.this);
        rpd.show(fm, FRAG_TAG_RECUR_PICKER);
    }
});

Timezone Picker

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        FragmentManager fm = getSupportFragmentManager();
        Bundle bundle = new Bundle();
        Time time = new Time();
        time.setToNow();
        bundle.putLong(TimeZonePickerDialogFragment.BUNDLE_START_TIME_MILLIS, time.toMillis(false));
        bundle.putString(TimeZonePickerDialogFragment.BUNDLE_TIME_ZONE, time.timezone);
        bundle.putString(RecurrencePickerDialogFragment.BUNDLE_RRULE, mRrule);

        TimeZonePickerDialogFragment tzpd = new TimeZonePickerDialogFragment();
        tzpd.setArguments(bundle);
        tzpd.setOnTimeZoneSetListener(SampleTimeZoneBasicUsage.this);
        tzpd.show(fm, FRAG_TAG_TIME_ZONE_PICKER);
    }
});

Date Picker

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        DatePickerBuilder dpb = new DatePickerBuilder()
                .setFragmentManager(getSupportFragmentManager())
                .setStyleResId(R.style.BetterPickersDialogFragment)
                .setYearOptional(true);
        dpb.show();
    }
});

Expiration Picker

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        ExpirationPickerBuilder epb = new ExpirationPickerBuilder()
                  .setFragmentManager(getSupportFragmentManager())
                  .setStyleResId(R.style.BetterPickersDialogFragment)
                  .setMinYear(2000);
        epb.show();
    }
});

HMS Picker

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        HmsPickerBuilder hpb = new HmsPickerBuilder()
                .setFragmentManager(getSupportFragmentManager())
                .setStyleResId(R.style.BetterPickersDialogFragment);
        hpb.show();
    }
});

Number Picker

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        NumberPickerBuilder npb = new NumberPickerBuilder()
                .setFragmentManager(getSupportFragmentManager())
                .setStyleResId(R.style.BetterPickersDialogFragment)
                .setLabelText("LBS.");
        npb.show();
}
});

Time Picker

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        TimePickerBuilder tpb = new TimePickerBuilder()
                .setFragmentManager(getSupportFragmentManager())
                .setStyleResId(R.style.BetterPickersDialogFragment);
        tpb.show();
    }
});

Theming

For a demonstration of theming, see the sample/ folder.

Calendar Date Picker / Radial Time Picker

  1. Use attributes that allow you to customize pickers

    bpHeaderBackgroundColor :: bpHeaderUnselectedTextColor :: bpHeaderSelectedTextColor :: bpBodyBackgroundColor :: bpBodySelectedTextColor :: bpBodyUnselectedTextColor :: bpButtonsBackgroundColor :: bpButtonsTextColor :: -- Calendar Date Picker bpPreHeaderBackgroundColor :: bpDisabledDayTextColor :: -- Radial Time Picker bpRadialBackgroundColor :: bpRadialTextColor :: bpRadialPointerColor :: bpAmPmCircleColor ::

  2. Create your own custom theme in styles.xml:

```xml

```
  1. Instantiate your DialogFragment using your custom theme:
RadialTimePickerDialogFragment rtpd = new RadialTimePickerDialogFragment()
       .setOnTimeSetListener(SampleRadialTimeThemeCustom.this)
       .setThemeCustom(R.style.MyCustomBetterPickersDialogs);
rtpd.show(getSupportFragmentManager(), FRAG_TAG_TIME_PICKER);
  1. Result

Date Picker / Expiration Picker / HMS Picker / Number Picker / Time Picker

  1. You can use your own themes if you'd like to change certain attributes. BetterPickers currently allows for customization of the following attributes:

    bpDialogBackground :: the drawable (preferably a 9-patch) used as a window background for the DialogFragment bpTextColor :: the color (optionally state list) for all text in the DialogFragment bpDeleteIcon :: the drawable (optionally state list) for the delete button bpCheckIcon :: the drawable (optionally state list) for the check button in the DateDialogPicker bpKeyBackground :: the drawable (optionally state list) for the keyboard buttons bpButtonBackground :: the drawable (optionally state list) for the Set, Cancel, and Delete buttons bpDividerColor :: the color used for the DialogFragment dividers bpKeyboardIndicatorColor :: the color used for the ViewPagerIndicator on the DateDialogPicker

  2. Create your own custom theme in styles.xml:

<style name="MyCustomBetterPickerTheme">
    <item name="bpDialogBackground">@drawable/custom_dialog_backgrounditem>
    <item name="bpTextColor">@color/custom_text_coloritem>
    <item name="bpDeleteIcon">@drawable/ic_backspace_customitem>
    <item name="bpCheckIcon">@drawable/ic_check_customitem>
    <item name="bpKeyBackground">@drawable/key_background_customitem>
    <item name="bpButtonBackground">@drawable/button_background_customitem>
    <item name="bpDividerColor">@color/custom_divider_coloritem>
    <item name="bpKeyboardIndicatorColor">@color/custom_keyboard_indicator_coloritem>
style>
  1. Instantiate your DialogFragment using your custom theme:
DatePickerBuilder dpb = new DatePickerBuilder()
    .setFragmentManager(getSupportFragmentManager())
    .setStyleResId(R.style.MyCustomBetterPickerTheme);
dpb.show();

Actionbarsherlock compatibility

If you use actionbarsherlock which is not compatible with appcompat-v7 you can use the latest version of the library on the 1.x.x branch.

You can view the readme here

ChangeLog

Change log file is available here

Contribution

Pull requests are welcome!

Feel free to contribute to BetterPickers.

If you've fixed a bug or have a feature you've added, just create a pull request.

If you've found a bug, want a new feature, or have other questions, file an issue. We will try to answer as soon as possible.

Applications using BetterPickers

Please send a pull request if you would like to be added here.

Icon Application
Trello
Navig'Tours
Sleep Well
Dayon Alarm
Driving Timer
TVShow Time

Credits

Thanks to Derek Brameyer for the initial version.

Thanks to JakeWharton for his work on ViewPagerIndicator.

Thanks to OAK and WillowTree Apps for Maven assistance and possible future improvements.

Thanks to all contributors !

License

Copyright 2013 Derek Brameyer, Code-Troopers

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comments
  • Add disabled days to calendar date picker

    Add disabled days to calendar date picker

    Why?

    I'd like to add support for disabling days so that users cannot select specific days defined by the application. The user should be able to visually see the days that are disabled and they should not be able to select the days that are defined as "disabled".

    What Changed?

    • Updated the CalendarDatePickerFragment so that it can be passed a hashmap of specific calendar days that would be disabled.
    • Added one minor style attribute so that users can define the color of disabled days.
    • Added a sample fragment so that developers who want to to use this feature can play around with the feature.
    opened by TylerMcCraw 17
  • Getting error after adding the library

    Getting error after adding the library

    There is conflict in my project when I try to use this library with compile betterpickers library. Gradle report following error:

    Error:Attribute "track" has already been defined Error:Attribute "thumbTextPadding" has already been defined Error:Attribute "switchTextAppearance" has already been defined Error:Attribute "switchMinWidth" has already been defined Error:Attribute "switchPadding" has already been defined Error:Attribute "switchStyle" has already been defined been defined

    I have heme.AppCompat.Light as my app theme.

    opened by ranjithnair02 12
  • java.lang.NullPointerException at NumberPicker.java:579

    java.lang.NullPointerException at NumberPicker.java:579

    I can't reproduce the bug.

    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxxx/com.xxxx.MainActivity}: java.lang.NullPointerException at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2100) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125) at android.app.ActivityThread.access$600(ActivityThread.java:140) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4898) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773) at dalvik.system.NativeStart.main(NativeStart.java) Caused by: java.lang.NullPointerException at android.os.Parcel.readIntArray(Parcel.java:784) at com.doomonafireball.betterpickers.numberpicker.NumberPicker$SavedState.(NumberPicker.java:564) at com.doomonafireball.betterpickers.numberpicker.NumberPicker$SavedState.(NumberPicker.java:561) at com.doomonafireball.betterpickers.numberpicker.a.a(NumberPicker.java:579) at com.doomonafireball.betterpickers.numberpicker.a.createFromParcel(NumberPicker.java:1) at android.os.Parcel.readParcelable(Parcel.java:2103) at android.os.Parcel.readValue(Parcel.java:1965) at android.os.Parcel.readSparseArrayInternal(Parcel.java:2255) at android.os.Parcel.readSparseArray(Parcel.java:1687) at android.os.Parcel.readValue(Parcel.java:2022) at android.os.Parcel.readMapInternal(Parcel.java:2226) at android.os.Bundle.unparcel(Bundle.java:223) at android.os.Bundle.getSparseParcelableArray(Bundle.java:1232) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:861) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1086) at android.support.v4.app.FragmentManagerImpl.dispatchCreate(FragmentManager.java:1879) at android.support.v4.app.Fragment.performCreate(Fragment.java:1490) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:893) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1086) at android.support.v4.app.FragmentManagerImpl.dispatchCreate(FragmentManager.java:1879) at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:215) at com.yyyyy.MainActivity.onCreate(MainActivity.java:79) at android.app.Activity.performCreate(Activity.java:5206) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1083) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125) at android.app.ActivityThread.access$600(ActivityThread.java:140) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4898) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773) at dalvik.system.NativeStart.main(NativeStart.java)

    opened by 4bh1nav 12
  • Error after adding the library

    Error after adding the library

    Hello,

    I'm trying to use this widget version 1.5.4 and when I try to run Gradle Sync the console shows these errors:

    /home/samir/Development/uCity/ucity-project/app/build/intermediates/exploded-aar/com.doomonafireball.betterpickers/library/1.5.4/res/values/values.xml Error:(1) Attribute "track" has already been defined Error:(1) Attribute "thumbTextPadding" has already been defined Error:(1) Attribute "switchTextAppearance" has already been defined Error:(1) Attribute "switchMinWidth" has already been defined Error:(1) Attribute "switchPadding" has already been defined Error:(1) Attribute "switchStyle" has already been defined

    screenshot from 2015-02-16 17 45 18

    Is the same error that https://github.com/derekbrameyer/android-betterpickers/issues/126 How can this be solved?

    Thanks!

    opened by samiro 11
  • Changed from v4 SupportFragments Native fragments and removed ABS

    Changed from v4 SupportFragments Native fragments and removed ABS

    Updated app calls to API11 to utilize native fragments and the native action bar. v4 Support is still needed for some of the ViewCompat, ViewPager, etc.

    opened by ImDevinC 11
  • "Done" button in calender dialog is cut

    Hi,

    The "Done" button is being cut from the bottom a bit in the calender dialog. This only happens in Lollipop (api level 21) and only in my personal app. In the sample app I don't see it happening. Can't find where to configure it, or why it's happening. Would appreciate some input on it.

    image

    awaiting-reply 
    opened by Danihalf 10
  • Support library dependency not resolvable via Maven Central

    Support library dependency not resolvable via Maven Central

    When compiling from master:

    Could not resolve dependencies for project com.doomonafireball.betterpickers:library:apklib:1.4.3-SNAPSHOT: Failure to find com.google.android:support-v4:jar:18

    The last version of support-v4 on Maven Central is "r7". It would be nice if betterpickers would depend only on artifacts that can be resolved via Maven Central. (This is also a requirement for uploading it to Maven Central afaik.)

    opened by schildbach 9
  • RadialTimePickerDialogFragment AM/PM

    RadialTimePickerDialogFragment AM/PM

    Hi,

    The RadialTimePickerDialogFragment does not change to AM/PM if I set my device to non 24-Hour format.

    It would be easy to verify, if the device is in 24-Hour mode or not: boolean b = DateFormat.is24HourFormat(context);

    I would suggest to fall back on the device time format, rather than setting it (mIs24HourMode = true;) to a default value.

    I cannot see any possibility to override mIs24HourMode in RadialTimePickerDialogFragment.

    Or do I just miss something?

    Greetings, paxxux

    opened by paxxux 8
  • Is it possible to use the library without android.support.v4?

    Is it possible to use the library without android.support.v4?

    I would like to use the library, but I don't use android.support.v4 in my fragments and activities I use the standard fragment classes from android.app package. For instance, methods in the library like setFragmentManager(android.support.v4.app.FragmentManager manager) require android.support.v4.app.FragmentManager, however I use the android.app.FragmentManager. Do you have any support for that?

    opened by yyunikov 8
  • java.lang.ArrayIndexOutOfBoundsException: EventRecurrenceFormatter.java:110

    java.lang.ArrayIndexOutOfBoundsException: EventRecurrenceFormatter.java:110

    Latest 2.5.3 version:

    For some users it crash on this after update lib. It's from crashlytics, so I'm sorry I doesn't have more info :/

    Fatal Exception: java.lang.ArrayIndexOutOfBoundsException: length=5; index=-2
           at com.codetroopers.betterpickers.recurrencepicker.EventRecurrenceFormatter.getRepeatString(EventRecurrenceFormatter.java:110)
    
    opened by mtrakal 7
  • Implemented custom theming for RadialTimePickerDialog using styleable. U...

    Implemented custom theming for RadialTimePickerDialog using styleable. U...

    Added the ability to use custom themes for RadialTimePickerDialog as requested here using styleable. All old methods work the same with RadialTimePickerDialog#setThemeCustom(int) as a new option. The sample app is also updated with an additional Radial Time demo using the new custom theme.

    next_release 
    opened by nkarasch 7
  • Issue buttons not show on Galaxy Z Fold3 5G

    Issue buttons not show on Galaxy Z Fold3 5G

    Hello,

    One of our user use Galaxy Z Fold3 5G and he report an issue that the button of the date picker disappear, do you have any idea what happen?

    image

    Thanks a lots, Viet

    opened by vietnt134 0
  • android 5.1 android.view.InflateException

    android 5.1 android.view.InflateException

    My users with 5.1 api getting crash

    Caused by java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x1
           at android.content.res.TypedArray.getDimensionPixelSize(TypedArray.java:572)
           at android.view.View.<init>(View.java:3984)
           at android.widget.TextView.<init>(TextView.java:637)
           at android.widget.TextView.<init>(TextView.java:632)
           at androidx.appcompat.widget.AppCompatTextView.<init>(AppCompatTextView.java:99)
           at androidx.appcompat.widget.AppCompatTextView.<init>(AppCompatTextView.java:95)
           at androidx.appcompat.app.AppCompatViewInflater.createTextView(AppCompatViewInflater.java:182)
           at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:103)
           at androidx.appcompat.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1407)
           at androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1457)
           at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:725)
           at android.view.LayoutInflater.parseInclude(LayoutInflater.java:892)
           at android.view.LayoutInflater.rInflate(LayoutInflater.java:802)
           at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
           at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
           at com.codetroopers.betterpickers.radialtimepicker.RadialTimePickerDialogFragment.onCreateView(RadialTimePickerDialogFragment.java:295)
           at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2600)
           at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:881)
           at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238)
           at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303)
           at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:439)
           at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java:2079)
           at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1869)
           at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1824)
           at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1727)
           at androidx.fragment.app.FragmentManagerImpl$2.run(FragmentManagerImpl.java:150)
           at android.os.Handler.handleCallback(Handler.java:756)
           at android.os.Handler.dispatchMessage(Handler.java:95)
           at android.os.Looper.loop(Looper.java:135)
           at android.app.ActivityThread.main(ActivityThread.java:5314)
           at java.lang.reflect.Method.invoke(Method.java)
           at java.lang.reflect.Method.invoke(Method.java:373)
           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
    
    opened by Ucdemir 1
  • Is there anybody who is maintaining a living fork of this project?

    Is there anybody who is maintaining a living fork of this project?

    First of all - many thanks to code-troopers for providing this library. There are ~595 forks of this project and it's no longer maintained by the creators.

    Can anybody point us to one of the forks which at least updates the project in a manner so that legacy projects do not have to completely eliminate the dependency to android-betterpickers?

    This would be really nice and helpful.

    opened by hgoebl 1
Releases(3.1.0)
  • 3.1.0(Dec 19, 2016)

  • 3.0.2(Nov 30, 2016)

  • 3.0.1(Aug 28, 2016)

  • 2.5.6(Jun 2, 2016)

  • 2.5.5(May 19, 2016)

  • 2.5.4(May 16, 2016)

    • Add Czech translations (#267)
    • Added min/max limits to RadialTimePicker (#272)
    • Fix Recurrence To string formatter for monthly and yearly events (#270)
    • Add HMSPicker negative duration option (#281)
    Source code(tar.gz)
    Source code(zip)
  • 2.5.3(Apr 10, 2016)

    • Add setter for changing cancel button label of RadialDatePicker (#266)
    • Add setter for changing ok and cancel button label of CalendarDatePicker (#268)
    Source code(tar.gz)
    Source code(zip)
  • 2.5.2(Mar 13, 2016)

  • 2.5.1(Feb 11, 2016)

  • 2.5.0(Feb 2, 2016)

    • Improve auto detect for 12/24h date format for radialTimePicker (#246)
    • Add Feature to set disabled (non selectable) dates in calendarDatePicker (#223)
    Source code(tar.gz)
    Source code(zip)
  • 2.4.0(Jan 27, 2016)

    • Add auto detect and use of primaryColor by default for CalendarDatePicker and RadialDatePicker (#238)
    • Fix UnknownFormatConversionException (#240)
    • Better autodetect of 12/24h format for radialTimePicker (#244)
    Source code(tar.gz)
    Source code(zip)
  • 2.3.0(Jan 19, 2016)

    2.3.0

    • Fix numberPicker exception (#230, #220, #183). Add new Handler that return BigDecimal for user entered value
    • Fix CalendarDatePicker Header cutted (#226, #222)
    • Clean unused resources (#229)
    • Add Ripple Effect on all picker numbers (#231)
    • Fix NumberPicker display for some big screens (#227, #224, #225)
    Source code(tar.gz)
    Source code(zip)
  • 2.2.2(Dec 14, 2015)

  • 2.2.1(Oct 26, 2015)

  • 2.2.0(Oct 22, 2015)

  • 2.1.2(Oct 15, 2015)

    2.1.2

    Fix Landscape height issue on small dpi devices (#203) Add min or max value for datepicker (#200 #202) Fix Leap Years calculation (#201)

    Source code(tar.gz)
    Source code(zip)
Owner
Code-Troopers
Code-Troopers
android library dialog month picker

RackMonthPicker android library dialog month picker Download Download via Maven: Add the JitPack repository to your build file <repositories> <rep

Kristiawan Adi L 41 Aug 13, 2022
Compose Date Picker - Select month and year

Android DatePicker with month and year build with Compose UI

Doğuş Teknoloji 47 Dec 15, 2022
Asimov-flagz-kt - Feature flags library based on Togglz library

Asimov Flagz Feature flags library based on Togglz library. Installation Gradle

Nicolas Bottarini 1 Jan 8, 2022
Android Week View is an android library to display calendars (week view or day view) within the app. It supports custom styling.

Android Week View Android Week View is an android library to display calendars (week view or day view) within the app. It supports custom styling. Fea

Raquib-ul Alam (Kanak) 3.4k Jan 3, 2023
Joda-Time library with Android specialization

Android has built-in date and time handling - why bother with a library? If you've worked with Java's Date and Calendar classes you can probably answer this question yourself, but if not, check out Joda-Time's list of benefits.

Daniel Lew 2.6k Dec 9, 2022
Android NTP time library. Get the true current time impervious to device clock time changes

TrueTime for Android Make sure to check out our counterpart too: TrueTime, an NTP library for Swift. NTP client for Android. Calculate the date and ti

Instacart 1.3k Jan 4, 2023
An android library which provides a compact calendar view much like the one used in google calenders.

CompactCalendarView CompactCalendarView is a simple calendar view which provides scrolling between months. It's based on Java's Date and Calendar clas

SundeepK 1.5k Jan 7, 2023
CustomizableCalendar is a library that allows you to create your calendar, customizing UI and behaviour

CustomizableCalendar This library allows you to create a completely customizable calendar. You can use CustomizableCalendar to create your calendar, c

MOLO17 216 Dec 6, 2022
A simple library which gives you custom design CalendarView with dialog functionality and event handlers.

CalendarView A simple library which gives you custom design CalendarView with dialog functionality and event handlers. 1: CalendarView Demo Screen 1.1

Shahzad Afridi (Opriday) 49 Oct 28, 2022
KotlinX multiplatform date/time library

kotlinx-datetime A multiplatform Kotlin library for working with date and time. See Using in your projects for the instructions how to setup a depende

Kotlin 1.6k Jan 5, 2023
Multiplatform Date and time library for Kotlin

Klock is a Date & Time library for Multiplatform Kotlin. It is designed to be as allocation-free as possible using Kotlin inline classes, to be consis

null 681 Dec 19, 2022
A Kotlin Multiplatform library for working with dates and times

Island Time A Kotlin Multiplatform library for working with dates and times, heavily inspired by the java.time library. Features: A full set of date-t

Erik Christensen 71 Dec 28, 2022
Additions for Kotlin's date & time library kotlinx-datetime

fluid-time Additions for Kotlin's date & time library kotlinx-datetime. kotlinx-datetime is very early stage and not as actively developed as other of

Marc Knaup 39 Nov 11, 2022
java.time Kotlin extension functions library.

Java Time Kotlin extension functions. Background Java Time became integrated to the JDK as of Java 8. It was a huge improvement over its Date predeces

Sami Eljabali 31 Mar 15, 2022
Kmpcalendar - A calendar library and views written for kotlin multiplatform

KMPCalendarView Minimal Kotlin Multiplatform project with SwiftUI, Jetpack Compo

Anmol Verma 2 Oct 7, 2022
A Jetpack Compose library for handling calendar component rendering.

Compose Calendar Compose Calendar is a composable handling all complexity of rendering calendar component and date selection. Due to flexibility provi

Bogusz Pawłowski 181 Dec 22, 2022
📅 Minimal Calendar - This calendar library is built with jetpack compose. Easy, simple, and minimal.

?? Minimal Calendar This calendar library is built with jetpack compose. Easy, simple, and minimal. Latest version The stable version of the library i

Minjae Kim 16 Sep 14, 2022
An adaptation of the JSR-310 backport for Android.

ThreeTen Android Backport An adaptation of the JSR-310 backport for Android. Attention: Development on this library is winding down. Please consider s

Jake Wharton 3.5k Dec 11, 2022
Standalone Android widget for picking a single date from a calendar view.

TimesSquare for Android Standalone Android widget for picking a single date from a calendar view. Usage Include CalendarPickerView in your layout XML.

Square 4.4k Dec 20, 2022