Coder Social home page Coder Social logo

iq-scm / persianmaterialdatetimepicker Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mohamad-amin/persianmaterialdatetimepicker

0.0 0.0 0.0 487 KB

An Android library containing a shamsi (persian calendar) date picker and a time picker with Material Design style

Java 100.00%

persianmaterialdatetimepicker's Introduction

PersianMaterialDateTimePicker

This library offers a hijri/shamsi (Iran Calendar) Date Picker and a normal time picker designed on Google's Material Design Principals For Pickers for Android 4.0.3 (API 15) +.

Date Picker Time Picker
Date Picker Time Picker

You can report any issue on issues page. Note: If you speak Persian, you can submit issues with Persian (Farsi) language and I will check them. :)

#Importing Please refer to the relative wiki page.

Usage

The library follows the same API as other pickers in the Android framework. After adding the library, for using a picker in your project you need to:

  1. Implement an OnTimeSetListener/OnDateSetListener
  2. Create a TimePickerDialog/DatePickerDialog using the supplied factory
  3. Theme the pickers

Implement an OnTimeSetListener/OnDateSetListener

In order to receive the date or time set in the picker, you will need to implement the OnTimeSetListener or OnDateSetListener interfaces. Typically this will be the Activity or Fragment that creates the Pickers. The callbacks use the same API as the standard Android pickers.

@Override
public void onTimeSet(RadialPickerLayout view, int hourOfDay, int minute) {
  String time = "You picked the following time: "+hourOfDay+"h"+minute;
  timeTextView.setText(time);
}

@Override
public void onDateSet(DatePickerDialog view, int year, int monthOfYear, int dayOfMonth) {
  String date = "You picked the following date: "+dayOfMonth+"/"+(monthOfYear+1)+"/"+year;
  dateTextView.setText(date);
}

Create a TimePickerDialog/DatePickerDialog using the supplied factory

You will need to create a new instance of TimePickerDialog or DatePickerDialog using the static newInstance() method, supplying proper default values and a callback. Once the dialogs are configured, you can call show().

PersianCalendar persianCalendar = new PersianCalendar();
DatePickerDialog datePickerDialog = DatePickerDialog.newInstance(
  MainActivity.this,
  persianCalendar.getPersianYear(),
  persianCalendar.getPersianMonth(),
  persianCalendar.getPersianDay()
);
datePickerDialog.show(getFragmentManager(), "Datepickerdialog");

Theme the pickers

You can theme the pickers by overwriting the color resources mdtp_accent_color and mdtp_accent_color_dark in your project.

<color name="mdtp_accent_color">#009688</color>
<color name="mdtp_accent_color_dark">#00796b</color>

#Additional Options

  • TimePickerDialog dark theme
    The TimePickerDialog has a dark theme that can be set by calling
timePickerDialog.setThemeDark(true);
  • DatePickerDialog dark theme The DatePickerDialog has a dark theme that can be set by calling
datePickerDialog.setThemeDark(true);
  • TimePickerDialog setTitle(String title) Shows a title at the top of the TimePickerDialog

  • setSelectableDays(PersianCalendar[] days) You can pass a PersianCalendar[] to the DatePickerDialog. This values in this list are the only acceptable dates for the picker. It takes precedence over setMinDate(PersianCalendar day) and setMaxDate(PersianCalendar day)

  • setHighlightedDays(PersianCalendar[] days) You can pass a PersianCalendar[] of days to highlight. They will be rendered in bold. You can tweak the color of the highlighted days by overwriting mdtp_date_picker_text_highlighted

  • OnDismissListener and OnCancelListener
    Both pickers can be passed a DialogInterface.OnDismissLisener or DialogInterface.OnCancelListener which allows you to run code when either of these events occur.

timePickerDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
    @Override
    public void onCancel(DialogInterface dialogInterface) {
      Log.d("TimePicker", "Dialog was cancelled");
    }
});
  • vibrate(boolean vibrate) Set whether the dialogs should vibrate the device when a selection is made. This defaults to true.

#Credits This libary is completely based on MaterialDateTimePicker Library and Persian Calendar.

persianmaterialdatetimepicker's People

Contributors

bkhezry avatar mohamad-amin avatar mostafa-hz avatar thore1954 avatar

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.