Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 41 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,31 @@
# SmoothDateRangePicker
Based on [SmoothDateRangePicker by leavjenn] (https://github.com/leavjenn/SmoothDateRangePicker)

Smooth Date Range Picker is an android widget for selecting date range quickly and easily, following Material Design principle. This library is based on [datetimepicker from Android frameworks](https://android.googlesource.com/platform/frameworks/opt/datetimepicker/) and [Material DateTime Picker by wdullaer](https://github.com/wdullaer/MaterialDateTimePicker).

Date Range Picker | Duration Number Pad | Date Range Picker Dark Theme | Date Range Picker Landscape
---- | ----| ----| ----
![Date Range Picker](https://raw.githubusercontent.com/leavjenn/SmoothDateRangePicker/gh-pages/screenshots/date_range_picker.png) | ![Duration Number Pad](https://raw.githubusercontent.com/leavjenn/SmoothDateRangePicker/gh-pages/screenshots/date_duration_number_pad.png) | ![Date Range Picker Dark Theme](https://raw.githubusercontent.com/leavjenn/SmoothDateRangePicker/gh-pages/screenshots/date_range_picker_dark_theme.png) | ![Date Range Picker Landscape](https://raw.githubusercontent.com/leavjenn/SmoothDateRangePicker/gh-pages/screenshots/date_range_picker_landscape.png)
![Date Range Picker](https://raw.githubusercontent.com/wsbak/SmoothDateRangePicker/gh-pages/screenshots/date_range_picker.png) | ![Duration Number Pad](https://raw.githubusercontent.com/wsbak/SmoothDateRangePicker/gh-pages/screenshots/date_duration_number_pad.png) | ![Date Range Picker Dark Theme](https://raw.githubusercontent.com/wsbak/SmoothDateRangePicker/gh-pages/screenshots/date_range_picker_dark_theme.png) | ![Date Range Picker Landscape](https://raw.githubusercontent.com/wsbak/SmoothDateRangePicker/gh-pages/screenshots/date_range_picker_landscape.png)

Date Disable Enable Controls | Start Date Disabled | End Date Disabled | End Date Disabled Landscape Dark Theme
---- | ----| ----| ----
![Date Disable Enable Controls](https://raw.githubusercontent.com/wsbak/SmoothDateRangePicker/gh-pages/screenshots/Date_disable_enable_controls.png) | ![Start Date Disabled](https://raw.githubusercontent.com/wsbak/SmoothDateRangePicker/gh-pages/screenshots/Start_date_disabled.png) | ![End Date Disabled](https://raw.githubusercontent.com/wsbak/SmoothDateRangePicker/gh-pages/screenshots/End_date_disabled.png) | ![End Date Disabled Landscape Dark Theme](https://raw.githubusercontent.com/wsbak/SmoothDateRangePicker/gh-pages/screenshots/End_date_disabled_landscape_dark_theme.png)

## Setup

**Gradle:**

Add jcenter repository into project `build.gradle`:
Add jitpack repository into project `build.gradle`:
```
repositories {
jcenter()
maven { url "https://jitpack.io" }
}
```

Add the following into app `build.gradle`:
```
dependencies {
compile 'com.leavjenn.smoothdaterangepicker:library:0.2.0'
implementation 'com.github.wsbak:SmoothDateRangePicker:0.4.1'
}
```

Expand All @@ -33,12 +39,6 @@ SmoothDateRangePickerFragment.newInstance(SmoothDateRangePickerFragment.OnDateRa
```


**Instantiation, specify the default selected date:**
```
SmoothDateRangePickerFragment.newInstance(SmoothDateRangePickerFragment.OnDateRangeSetListener callBack,
int year, int monthOfYear, int dayOfMonth)
```

After instantiation, remember to call

`show (FragmentManager manager, String tag)`
Expand All @@ -49,10 +49,10 @@ SmoothDateRangePickerFragment smoothDateRangePickerFragment = SmoothDateRangePic
new SmoothDateRangePickerFragment.OnDateRangeSetListener() {
@Override
public void onDateRangeSet(SmoothDateRangePickerFragment view,
int yearStart, int monthStart,
int dayStart, int yearEnd,
int monthEnd, int dayEnd) {
Calendar calendarStart,
Calendar calendarEnd) {
// grab the date range, do what you want
// calendarStart or calendarEnd can be null if user disable it
}
});

Expand Down Expand Up @@ -81,6 +81,34 @@ smoothDateRangePickerFragment.show(getFragmentManager(), "smoothDateRangePicker"

`setMaxDate(Calendar calendar)`

**Set the default selected start date:**

`setStartDate(Calendar calendar)`

**Set the default selected end date:**

`setEndDate(Calendar calendar)`


### Disable/Enable Date
**Show disable/enable date control:**

`setShowDateEnableDisable(true)`

**Disable start date:**

`enableStartDate(false)`

**Disable end date:**

`enableEndDate(false)`


### Duration
**Hide duration:**

`setShowDuration(false)`


## License
Copyright (c) 2015 Leav Jenn
Expand Down
11 changes: 6 additions & 5 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

buildscript {
repositories {
jcenter()
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
classpath 'com.android.tools.build:gradle:4.2.2'
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
Expand All @@ -16,6 +16,7 @@ buildscript {

allprojects {
repositories {
jcenter()
google()
mavenCentral()
}
}
4 changes: 3 additions & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,6 @@
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
# org.gradle.parallel=true
android.enableJetifier=true
android.useAndroidX=true
6 changes: 3 additions & 3 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#Sun Oct 18 14:27:15 CST 2015
#Sat Jan 22 16:26:13 CET 2022
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip
zipStoreBase=GRADLE_USER_HOME
70 changes: 33 additions & 37 deletions library/build.gradle
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
apply plugin: 'maven-publish'

android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
compileSdkVersion 31

defaultConfig {
minSdkVersion 14
targetSdkVersion 23
versionCode 2
versionName "0.2.0"
targetSdkVersion 31
versionCode 4
versionName "0.4.1"
}
buildTypes {
release {
Expand All @@ -21,7 +20,8 @@ android {
}

dependencies {
compile 'com.android.support:appcompat-v7:23.1.0'
api 'androidx.appcompat:appcompat:1.4.1'
implementation 'com.google.android.material:material:1.5.0'
}

task generateSourcesJar(type: Jar) {
Expand All @@ -46,20 +46,20 @@ artifacts {


ext {
publishedGroupId = 'com.leavjenn.smoothdaterangepicker'
publishedGroupId = 'com.wsbak.smoothdaterangepicker'
libraryName = 'SmoothDateRangePicker'
artifact = 'smoothdaterangepicker'

libraryDescription = 'An Android date range picker widget based on stock material design date picker'

siteUrl = 'https://github.com/leavjenn/SmoothDateRangePicker'
gitUrl = 'https://github.com/leavjenn/SmoothDateRangePicker.git'
siteUrl = 'https://github.com/wsbak/SmoothDateRangePicker'
gitUrl = 'https://github.com/wsbak/SmoothDateRangePicker.git'

libraryVersion = '0.2.0'
libraryVersion = '0.4.1'

developerId = 'leavjenn'
developerName = 'Leav Jenn'
developerEmail = 'leavjenn@gmail.com'
developerId = 'wsbak'
developerName = 'wsbak'
developerEmail = ''

licenseName = 'The Apache Software License, Version 2.0'
licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
Expand All @@ -69,6 +69,25 @@ ext {
group = publishedGroupId
version = libraryVersion

def artifactId = artifact
def groupId = publishedGroupId

// https://medium.com/android-news/android-local-libraries-with-maven-b7456d4268cf
// Gradle / library / Tasks / publishing / publishToMavenLocal
project.afterEvaluate {
publishing {
publications {
library(MavenPublication) {
setGroupId groupId
setArtifactId artifactId
version android.defaultConfig.versionName

artifact bundleReleaseAar
}
}
}
}

//install {
// repositories.mavenInstaller {
// // This generates POM.xml with proper parameters
Expand Down Expand Up @@ -104,26 +123,3 @@ version = libraryVersion
// }
// }
//}

// bintray
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {
user = properties.getProperty("bintray.user")
key = properties.getProperty("bintray.apikey")
configurations = ['archives']
pkg {
repo = 'maven'
name = libraryName
desc = libraryDescription
vcsUrl = gitUrl
websiteUrl = siteUrl
licenses = allLicenses
publish = true
publicDownloadNumbers = true
version {
name = libraryVersion
desc = libraryDescription
}
}
}
2 changes: 1 addition & 1 deletion library/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.leavjenn.smoothdaterangepicker">
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.wsbak.smoothdaterangepicker">

<application android:allowBackup="true" android:label="@string/app_name"
android:supportsRtl="true">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* limitations under the License.
*/

package com.leavjenn.smoothdaterangepicker;
package com.wsbak.smoothdaterangepicker;

import android.content.Context;
import android.util.AttributeSet;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* limitations under the License.
*/

package com.leavjenn.smoothdaterangepicker;
package com.wsbak.smoothdaterangepicker;

import android.content.Context;
import android.util.AttributeSet;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.leavjenn.smoothdaterangepicker;
package com.wsbak.smoothdaterangepicker;

import android.app.Service;
import android.content.Context;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.leavjenn.smoothdaterangepicker;
package com.wsbak.smoothdaterangepicker;


import android.content.Context;
import android.graphics.Typeface;
import android.support.v4.util.SimpleArrayMap;
import androidx.collection.SimpleArrayMap;

/*
Each call to Typeface.createFromAsset will load a new instance of the typeface into memory,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* limitations under the License.
*/

package com.leavjenn.smoothdaterangepicker;
package com.wsbak.smoothdaterangepicker;

import android.animation.Keyframe;
import android.animation.ObjectAnimator;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.leavjenn.smoothdaterangepicker.date;
package com.wsbak.smoothdaterangepicker.date;

import android.content.Context;
import android.text.format.DateUtils;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@
* limitations under the License.
*/

package com.leavjenn.smoothdaterangepicker.date;
package com.wsbak.smoothdaterangepicker.date;

import android.annotation.SuppressLint;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
Expand All @@ -32,8 +32,8 @@
import android.widget.AbsListView.OnScrollListener;
import android.widget.ListView;

import com.leavjenn.smoothdaterangepicker.Utils;
import com.leavjenn.smoothdaterangepicker.date.SmoothDateRangePickerFragment.OnDateChangedListener;
import com.wsbak.smoothdaterangepicker.Utils;
import com.wsbak.smoothdaterangepicker.date.SmoothDateRangePickerFragment.OnDateChangedListener;

import java.text.SimpleDateFormat;
import java.util.Calendar;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* limitations under the License.
*/

package com.leavjenn.smoothdaterangepicker.date;
package com.wsbak.smoothdaterangepicker.date;

import android.annotation.SuppressLint;
import android.content.Context;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* limitations under the License.
*/

package com.leavjenn.smoothdaterangepicker.date;
package com.wsbak.smoothdaterangepicker.date;

import android.content.Context;
import android.content.res.Resources;
Expand All @@ -25,10 +25,10 @@
import android.graphics.Rect;
import android.graphics.Typeface;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.view.ViewCompat;
import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
import android.support.v4.widget.ExploreByTouchHelper;
import androidx.annotation.NonNull;
import androidx.core.view.ViewCompat;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
import androidx.customview.widget.ExploreByTouchHelper;
import android.text.format.DateFormat;
import android.text.format.DateUtils;
import android.util.AttributeSet;
Expand All @@ -37,9 +37,9 @@
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;

import com.leavjenn.smoothdaterangepicker.R;
import com.leavjenn.smoothdaterangepicker.TypefaceHelper;
import com.leavjenn.smoothdaterangepicker.date.MonthAdapter.CalendarDay;
import com.wsbak.smoothdaterangepicker.R;
import com.wsbak.smoothdaterangepicker.TypefaceHelper;
import com.wsbak.smoothdaterangepicker.date.MonthAdapter.CalendarDay;

import java.security.InvalidParameterException;
import java.util.Calendar;
Expand Down
Loading