[NO LONGER MAINTAINED] 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.betterpickers</groupId>
  <artifactId>library</artifactId>
  <version>3.1.0</version>
  <type>aar</type>
</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
<style name="MyCustomBetterPickersDialogs" parent="BetterPickersRadialTimePickerDialog.PrimaryColor">
    <item name="bpPreHeaderBackgroundColor">@color/holo_red_dark</item>
    <item name="bpHeaderBackgroundColor">@color/holo_red_light</item>
    <item name="bpHeaderSelectedTextColor">@color/holo_orange_dark</item>
    <item name="bpHeaderUnselectedTextColor">@android:color/white</item>

    <item name="bpBodyBackgroundColor">@color/holo_blue_dark</item>
    <item name="bpBodySelectedTextColor">@color/holo_orange_dark</item>
    <item name="bpBodyUnselectedTextColor">@android:color/white</item>

    <item name="bpRadialBackgroundColor">@color/holo_orange_dark</item>
    <item name="bpRadialTextColor">@color/holo_purple</item>
    <item name="bpRadialPointerColor">@android:color/black</item>

    <item name="bpButtonsBackgroundColor">@color/holo_green_dark</item>
    <item name="bpButtonsTextColor">@color/holo_orange_dark</item>
</style>
```
  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_background</item>
    <item name="bpTextColor">@color/custom_text_color</item>
    <item name="bpDeleteIcon">@drawable/ic_backspace_custom</item>
    <item name="bpCheckIcon">@drawable/ic_check_custom</item>
    <item name="bpKeyBackground">@drawable/key_background_custom</item>
    <item name="bpButtonBackground">@drawable/button_background_custom</item>
    <item name="bpDividerColor">@color/custom_divider_color</item>
    <item name="bpKeyboardIndicatorColor">@color/custom_keyboard_indicator_color</item>
</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
Facebook-Styled-Image-Picker - Facebook Styled Image Picker

Facebook-Styled-Image-Picker Facebook Styled Gallery Files picker. One or multip

Hashim Tahir 11 Sep 27, 2022
A better calendar for Android

Caldroid Caldroid is a fragment that display calendar with dates in a month. Caldroid can be used as embedded fragment, or as dialog fragment. User ca

Roomorama 1.4k Jan 5, 2023
A customizable, easy-to-use, and functional circular time range picker library for Android

A customizable, easy-to-use, and functional circular time range picker library for Android. Use this library to mimic Apple's iOS or Samsung's bedtime picker.

Joery Droppers 251 Dec 30, 2022
Appleader707 1 Aug 9, 2022
Android Compose wheel picker library based on LazyColumn in vertical and LazyRow in horizontal.

About Android Compose wheel picker library based on LazyColumn in vertical and LazyRow in horizontal. Gradle Sample Default Item size Unfocused count

null 6 Dec 22, 2022
Nepali Date Picker library in Jetpack compose for android with Date conversion from BS to AD and vice-versa

Nepali Date picker Converter - Re in Compose This is a re-work of Nepali Date Picker Converter in jetpack compose and kotlin. English Locale Nepali Lo

Kiran Gyawali 4 Dec 23, 2022
Alwan 🎨 is an Android Jetpack Compose color picker library.

Alwan Alwan is an Android Jetpack Compose color picker library. Preview Recording.mp4 Download Gradle: dependencies { implementation 'com.raedapps:a

Raed Mughaus 6 Sep 16, 2022
Android time range picker

TimeRangePicker TimeRangePicker is a library which can be used to select a time range. WARNING Requires android-support-v4 Description This library pr

Titto Jose 422 Nov 10, 2022
A date time range picker for android written in Kotlin

DateTimeRangePicker A date time range picker for android Usage Firstly, grab latest release of the library via JitPack. And note that, it utilizes Jod

SkedGo 501 Dec 31, 2022
A material Date Range Picker based on wdullaers MaterialDateTimePicker

Material Date and Time Picker with Range Selection Credits to the original amazing material date picker library by wdullaer - https://github.com/wdull

Supratim 1.3k Dec 14, 2022
A material Date Range Picker based on wdullaers MaterialDateTimePicker

Material Date and Time Picker with Range Selection Credits to the original amazing material date picker library by wdullaer - https://github.com/wdull

Supratim 1.3k Dec 14, 2022
Simplge ImageGallery Picker

SimpleImagePicker add camera and files permissions to manifest file <uses-permission android:name="android.permission.CAMERA" /> <uses-permiss

null 0 Nov 27, 2021
Time-DatePicker - A Simple Time Date Picker With Kotlin

Time-DatePicker Time.DatePicker.mp4

Faysal Hossain 0 Jan 19, 2022
JetCountrypicker - Country code bottomsheet picker in Jetpack Compose

JetCountryPicker Country code bottomsheet picker in Jetpack Compose How to add i

Canopas Software 30 Nov 17, 2022
A simple compose weight picker drawn with canvas.

CanvasWeightPicker A simple compose weight picker drawn with canvas. Features Drag scale to select weight Haptic feedback on weight selected Video of

Timothy Serem 5 Dec 2, 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
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 Dec 9, 2022
FlipTimerView library for Android

FlipTimerView Preview FlipTimerView library for Android Getting started Add it in your root build.gradle at the end of repositories: allprojects { re

Anu S Pillai 314 Dec 28, 2022
Jetlime - A simple library for TimeLine view in Android

JetLime ⏱️ A simple yet highly customizable library for showing a TimeLine view

Pushpal Roy 107 Dec 6, 2022