diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/AndroidProjectSystem.xml b/.idea/AndroidProjectSystem.xml
new file mode 100644
index 0000000..4a53bee
--- /dev/null
+++ b/.idea/AndroidProjectSystem.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/appInsightsSettings.xml b/.idea/appInsightsSettings.xml
new file mode 100644
index 0000000..371f2e2
--- /dev/null
+++ b/.idea/appInsightsSettings.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..b86273d
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml
new file mode 100644
index 0000000..f929636
--- /dev/null
+++ b/.idea/deploymentTargetSelector.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/markdown.xml b/.idea/markdown.xml
new file mode 100644
index 0000000..c61ea33
--- /dev/null
+++ b/.idea/markdown.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/migrations.xml b/.idea/migrations.xml
new file mode 100644
index 0000000..f8051a6
--- /dev/null
+++ b/.idea/migrations.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..c902d2f
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
new file mode 100644
index 0000000..16660f1
--- /dev/null
+++ b/.idea/runConfigurations.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 7cf72c6..ced1af6 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,13 +1,13 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 27
- buildToolsVersion "28.0.2"
+ compileSdkVersion 34
+ buildToolsVersion "34.0.0"
defaultConfig {
applicationId "com.appeaser.sublimepicker"
- minSdkVersion 14
- targetSdkVersion 27
+ minSdkVersion 21
+ targetSdkVersion 34
versionCode 5
versionName "1.4"
}
@@ -17,10 +17,24 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+ namespace "com.appeaser.sublimepicker"
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation project(':sublimepickerlibrary')
- implementation 'com.android.support:appcompat-v7:27.1.1'
+ implementation 'androidx.appcompat:appcompat:1.7.0'
+
+ constraints {
+ implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22") {
+ because("kotlin-stdlib-jdk7 is now part of kotlin-stdlib")
+ }
+ implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22") {
+ because("kotlin-stdlib-jdk8 is now part of kotlin-stdlib")
+ }
+ }
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 8f91992..8222c1d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -9,7 +9,8 @@
+ android:label="@string/app_name"
+ android:exported="true">
diff --git a/app/src/main/java/com/appeaser/sublimepicker/Sampler.java b/app/src/main/java/com/appeaser/sublimepicker/Sampler.java
index 94efe41..4a3f500 100644
--- a/app/src/main/java/com/appeaser/sublimepicker/Sampler.java
+++ b/app/src/main/java/com/appeaser/sublimepicker/Sampler.java
@@ -20,9 +20,9 @@
import android.graphics.PorterDuff;
import android.graphics.Typeface;
import android.os.Bundle;
-import android.support.v4.app.DialogFragment;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import androidx.fragment.app.DialogFragment;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.style.StyleSpan;
diff --git a/app/src/main/java/com/appeaser/sublimepicker/SublimePickerFragment.java b/app/src/main/java/com/appeaser/sublimepicker/SublimePickerFragment.java
index 34051a6..3c9db7b 100644
--- a/app/src/main/java/com/appeaser/sublimepicker/SublimePickerFragment.java
+++ b/app/src/main/java/com/appeaser/sublimepicker/SublimePickerFragment.java
@@ -17,8 +17,8 @@
package com.appeaser.sublimepicker;
import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v4.app.DialogFragment;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.DialogFragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@@ -100,7 +100,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
}*/
mSublimePicker = (SublimePicker) getActivity()
- .getLayoutInflater().inflate(R.layout.sublime_picker, container);
+ .getLayoutInflater().inflate(com.appeaser.sublimepickerlibrary.R.layout.sublime_picker, container);
// Retrieve SublimeOptions
Bundle arguments = getArguments();
diff --git a/app/src/main/res/layout/sampler.xml b/app/src/main/res/layout/sampler.xml
index 790a06a..78a91fd 100644
--- a/app/src/main/res/layout/sampler.xml
+++ b/app/src/main/res/layout/sampler.xml
@@ -334,11 +334,11 @@
android:background="@drawable/floating_button_shape"
android:contentDescription="launch sublime picker" />
-
-
\ No newline at end of file
+
diff --git a/build.gradle b/build.gradle
index be27285..4b465cc 100644
--- a/build.gradle
+++ b/build.gradle
@@ -2,19 +2,11 @@
buildscript {
repositories {
- jcenter()
google()
+ mavenCentral()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.1.4'
- classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.+'
- }
-}
-
-allprojects {
- repositories {
- jcenter()
- google()
+ classpath 'com.android.tools.build:gradle:8.13.0'
}
}
diff --git a/gradle.properties b/gradle.properties
index 1d3591c..027ef9d 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -15,4 +15,7 @@
# 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
\ No newline at end of file
+# org.gradle.parallel=true
+
+android.useAndroidX=true
+android.enableJetifier=true
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index a7c872c..f0e7c59 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.10-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
diff --git a/settings.gradle b/settings.gradle
index 4acc72a..cd15375 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1 +1,24 @@
-include ':app', ':sublimepickerlibrary'
+pluginManagement {
+ repositories {
+ google {
+ content {
+ includeGroupByRegex("com\\.android.*")
+ includeGroupByRegex("com\\.google.*")
+ includeGroupByRegex("androidx.*")
+ }
+ }
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
+dependencyResolutionManagement {
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+ repositories {
+ google()
+ mavenCentral()
+ maven { url 'https://jitpack.io' }
+ }
+}
+
+//rootProject.name = "OfficePunch"
+include(":app", ":sublimepickerlibrary")
\ No newline at end of file
diff --git a/sublimepickerlibrary/build.gradle b/sublimepickerlibrary/build.gradle
index 698c4d4..ff871d8 100644
--- a/sublimepickerlibrary/build.gradle
+++ b/sublimepickerlibrary/build.gradle
@@ -1,47 +1,12 @@
-buildscript {
- repositories {
- mavenCentral()
- }
-
- dependencies {
- classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
- }
-}
-
apply plugin: 'com.android.library'
-apply plugin: 'com.github.dcendents.android-maven'
-
-ext {
- bintrayRepo = 'maven'
- bintrayName = 'sublime-picker'
-
- publishedGroupId = 'com.appeaser.sublimepickerlibrary'
- libraryName = 'SublimePicker'
- artifact = 'sublimepickerlibrary'
-
- libraryDescription = 'A material-styled android view that provisions picking of a date, time & recurrence option, all from a single user-interface.'
-
- siteUrl = 'https://github.com/vikramkakkar/SublimePicker'
- gitUrl = 'https://github.com/vikramkakkar/SublimePicker.git'
-
- libraryVersion = '2.1.2'
-
- developerId = 'vikramkakkar'
- developerName = 'Vikram Kakkar'
- developerEmail = 'vikram.kakkar.85@gmail.com'
-
- licenseName = 'The Apache Software License, Version 2.0'
- licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
- allLicenses = ["Apache-2.0"]
-}
android {
- compileSdkVersion 27
- buildToolsVersion "28.0.2"
+ compileSdkVersion 34
+ buildToolsVersion "34.0.0"
defaultConfig {
- minSdkVersion 14
- targetSdkVersion 27
+ minSdkVersion 21
+ targetSdkVersion 34
versionCode 4
versionName "2.1.2"
}
@@ -53,24 +18,15 @@ android {
}
compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_7
- targetCompatibility JavaVersion.VERSION_1_7
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
}
+ namespace "com.appeaser.sublimepickerlibrary"
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation 'com.android.support:appcompat-v7:27.1.1'
- implementation 'com.android.support:support-v4:27.1.1'
- implementation 'com.android.support:gridlayout-v7:27.1.1'
- implementation 'com.android.support:support-annotations:27.1.1'
+ implementation 'androidx.appcompat:appcompat:1.7.0'
+ implementation 'androidx.gridlayout:gridlayout:1.0.0'
+ implementation 'androidx.annotation:annotation:1.8.2'
}
-
-apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle'
-apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle'
-
-javadoc {
- options {
- encoding = 'UTF-8'
- }
-}
\ No newline at end of file
diff --git a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/SublimePicker.java b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/SublimePicker.java
index 9966947..9767d4f 100644
--- a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/SublimePicker.java
+++ b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/SublimePicker.java
@@ -23,7 +23,7 @@
import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import android.text.TextUtils;
import android.text.format.DateUtils;
import android.util.AttributeSet;
diff --git a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/common/ButtonHandler.java b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/common/ButtonHandler.java
index baf13f2..af0b8a7 100644
--- a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/common/ButtonHandler.java
+++ b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/common/ButtonHandler.java
@@ -6,8 +6,8 @@
import android.content.res.TypedArray;
import android.graphics.Color;
import android.graphics.PorterDuff;
-import android.support.annotation.NonNull;
-import android.support.v4.content.ContextCompat;
+import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
import android.util.TypedValue;
import android.view.View;
import android.widget.Button;
diff --git a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/common/ButtonLayout.java b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/common/ButtonLayout.java
index 84daac2..46831c8 100644
--- a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/common/ButtonLayout.java
+++ b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/common/ButtonLayout.java
@@ -23,7 +23,7 @@
import android.graphics.Color;
import android.graphics.PorterDuff;
import android.os.Build;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.Gravity;
diff --git a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/common/DateTimePatternHelper.java b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/common/DateTimePatternHelper.java
index 7540461..e716114 100644
--- a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/common/DateTimePatternHelper.java
+++ b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/common/DateTimePatternHelper.java
@@ -1,6 +1,6 @@
package com.appeaser.sublimepickerlibrary.common;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import android.util.Log;
import com.appeaser.sublimepickerlibrary.datepicker.SublimeDatePicker;
diff --git a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/common/DecisionButtonLayout.java b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/common/DecisionButtonLayout.java
index f94553f..183b9bc 100644
--- a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/common/DecisionButtonLayout.java
+++ b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/common/DecisionButtonLayout.java
@@ -7,7 +7,7 @@
import android.graphics.Color;
import android.graphics.PorterDuff;
import android.os.Build;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.Gravity;
diff --git a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/CircularIndicatorTextView.java b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/CircularIndicatorTextView.java
index f0d8d0a..6ad2323 100644
--- a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/CircularIndicatorTextView.java
+++ b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/CircularIndicatorTextView.java
@@ -22,9 +22,9 @@
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Typeface;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
+import androidx.appcompat.widget.AppCompatTextView;
import android.util.AttributeSet;
-import android.widget.TextView;
import com.appeaser.sublimepickerlibrary.R;
@@ -32,7 +32,7 @@
* Indicator used for selected year in YearPickerView
* Needs fixing.
*/
-class CircularIndicatorTextView extends TextView {
+class CircularIndicatorTextView extends AppCompatTextView {
private static final int SELECTED_CIRCLE_ALPHA = 60;
private final Paint mCirclePaint = new Paint();
@@ -88,7 +88,7 @@ public void onDraw(@NonNull Canvas canvas) {
final int width = getWidth();
final int height = getHeight();
int radius = Math.min(width, height) / 2;
- canvas.drawCircle(width / 2, height / 2, radius, mCirclePaint);
+ canvas.drawCircle(width / 2f, height / 2f, radius, mCirclePaint);
}
}
diff --git a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/DayPickerPagerAdapter.java b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/DayPickerPagerAdapter.java
index 9184bea..24b2f96 100644
--- a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/DayPickerPagerAdapter.java
+++ b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/DayPickerPagerAdapter.java
@@ -19,18 +19,18 @@
import android.content.Context;
import android.content.res.ColorStateList;
import android.content.res.TypedArray;
-import android.support.annotation.IdRes;
-import android.support.annotation.LayoutRes;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.v4.view.PagerAdapter;
import android.util.Log;
import android.util.SparseArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import com.appeaser.sublimepickerlibrary.R;
+import androidx.annotation.IdRes;
+import androidx.annotation.LayoutRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.viewpager.widget.PagerAdapter;
+
import com.appeaser.sublimepickerlibrary.utilities.Config;
import com.appeaser.sublimepickerlibrary.utilities.SUtils;
@@ -79,7 +79,7 @@ public DayPickerPagerAdapter(@NonNull Context context, @LayoutRes int layoutResI
mCalendarViewId = calendarViewId;
final TypedArray ta = context.obtainStyledAttributes(new int[]{
- R.attr.colorControlHighlight});
+ androidx.appcompat.R.attr.colorControlHighlight});
mDayHighlightColor = ta.getColorStateList(0);
ta.recycle();
}
@@ -363,9 +363,9 @@ public int getItemPosition(Object object) {
@Override
public CharSequence getPageTitle(int position) {
- final SimpleMonthView v = mItems.get(position).calendar;
- if (v != null) {
- return v.getTitle();
+ final ViewHolder holder = mItems.get(position);
+ if (holder != null && holder.calendar != null) {
+ return holder.calendar.getTitle();
}
return null;
}
diff --git a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/DayPickerView.java b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/DayPickerView.java
index afae491..5a91b78 100644
--- a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/DayPickerView.java
+++ b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/DayPickerView.java
@@ -19,9 +19,9 @@
import android.content.Context;
import android.content.res.ColorStateList;
import android.content.res.TypedArray;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.v4.view.ViewPager;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.viewpager.widget.ViewPager;
import android.util.AttributeSet;
import android.util.Log;
import android.view.LayoutInflater;
@@ -278,6 +278,7 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto
final SimpleMonthView monthView = (SimpleMonthView) mViewPager.getChildAt(0)
.findViewById(R.id.month_view);
+ if (monthView == null) return;
final int monthHeight = monthView.getMonthHeight();
final int cellWidth = monthView.getCellWidth();
diff --git a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/DayPickerViewPager.java b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/DayPickerViewPager.java
index b885291..327efd2 100644
--- a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/DayPickerViewPager.java
+++ b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/DayPickerViewPager.java
@@ -19,8 +19,8 @@
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Parcelable;
-import android.support.v4.view.PagerAdapter;
-import android.support.v4.view.ViewPager;
+import androidx.viewpager.widget.PagerAdapter;
+import androidx.viewpager.widget.ViewPager;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
diff --git a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/RecurrenceEndDatePicker.java b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/RecurrenceEndDatePicker.java
index 811fece..a1fe71b 100644
--- a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/RecurrenceEndDatePicker.java
+++ b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/RecurrenceEndDatePicker.java
@@ -9,8 +9,8 @@
import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import android.text.format.DateUtils;
import android.util.AttributeSet;
import android.util.Log;
@@ -83,17 +83,17 @@ public RecurrenceEndDatePicker(Context context) {
this(context, null);
}
- public RecurrenceEndDatePicker(Context context, AttributeSet attrs) {
+ public RecurrenceEndDatePicker(Context context, @Nullable AttributeSet attrs) {
this(context, attrs, R.attr.spDatePickerStyle);
}
- public RecurrenceEndDatePicker(Context context, AttributeSet attrs, int defStyleAttr) {
+ public RecurrenceEndDatePicker(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initializeLayout(attrs, defStyleAttr, R.style.SublimeDatePickerStyle);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
- public RecurrenceEndDatePicker(Context context, AttributeSet attrs,
+ public RecurrenceEndDatePicker(Context context, @Nullable AttributeSet attrs,
int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
initializeLayout(attrs, defStyleAttr, defStyleRes);
diff --git a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/SimpleMonthView.java b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/SimpleMonthView.java
index 13d8dba..3b26353 100644
--- a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/SimpleMonthView.java
+++ b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/SimpleMonthView.java
@@ -28,9 +28,9 @@
import android.graphics.Typeface;
import android.os.Build;
import android.os.Bundle;
-import android.support.v4.view.ViewCompat;
-import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
-import android.support.v4.widget.ExploreByTouchHelper;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
+import androidx.customview.widget.ExploreByTouchHelper;
import android.text.TextPaint;
import android.text.format.DateFormat;
import android.util.AttributeSet;
diff --git a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/SublimeDatePicker.java b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/SublimeDatePicker.java
index d9eecaa..2172b8e 100644
--- a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/SublimeDatePicker.java
+++ b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/datepicker/SublimeDatePicker.java
@@ -27,8 +27,8 @@
import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import android.text.Layout;
import android.text.SpannableString;
import android.text.Spanned;
diff --git a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/helpers/SublimeOptions.java b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/helpers/SublimeOptions.java
index 9523414..be14c76 100644
--- a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/helpers/SublimeOptions.java
+++ b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/helpers/SublimeOptions.java
@@ -18,7 +18,7 @@
import android.os.Parcel;
import android.os.Parcelable;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import android.text.TextUtils;
import com.appeaser.sublimepickerlibrary.datepicker.SelectedDate;
diff --git a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/recurrencepicker/RecurrenceOptionCreator.java b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/recurrencepicker/RecurrenceOptionCreator.java
index 779049a..3cca691 100644
--- a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/recurrencepicker/RecurrenceOptionCreator.java
+++ b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/recurrencepicker/RecurrenceOptionCreator.java
@@ -27,8 +27,8 @@
import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;
-import android.support.annotation.NonNull;
-import android.support.v4.content.ContextCompat;
+import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
@@ -223,7 +223,7 @@ SublimeRecurrencePicker.RecurrenceOption resolveRepeatOption() {
return SublimeRecurrencePicker.RecurrenceOption.CUSTOM;
}
- private class RecurrenceModel implements Parcelable {
+ private static class RecurrenceModel implements Parcelable {
// Should match EventRecurrence.DAILY, etc
static final int FREQ_DAILY = 0;
@@ -321,7 +321,20 @@ public RecurrenceModel() {
}
public RecurrenceModel(Parcel in) {
- readFromParcel(in);
+ freq = in.readInt();
+ interval = in.readInt();
+ end = in.readInt();
+ endDate = new Time();
+ endDate.year = in.readInt();
+ endDate.month = in.readInt();
+ endDate.monthDay = in.readInt();
+ endCount = in.readInt();
+ weeklyByDayOfWeek = in.createBooleanArray();
+ monthlyRepeat = in.readInt();
+ monthlyByMonthDay = in.readInt();
+ monthlyByDayOfWeek = in.readInt();
+ monthlyByNthDayOfWeek = in.readInt();
+ recurrenceState = in.readInt();
}
@Override
@@ -341,26 +354,9 @@ public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(recurrenceState);
}
- private void readFromParcel(Parcel in) {
- freq = in.readInt();
- interval = in.readInt();
- end = in.readInt();
- endDate = new Time();
- endDate.year = in.readInt();
- endDate.month = in.readInt();
- endDate.monthDay = in.readInt();
- endCount = in.readInt();
- in.readBooleanArray(weeklyByDayOfWeek);
- monthlyRepeat = in.readInt();
- monthlyByMonthDay = in.readInt();
- monthlyByDayOfWeek = in.readInt();
- monthlyByNthDayOfWeek = in.readInt();
- recurrenceState = in.readInt();
- }
-
@SuppressWarnings("all")
// suppress unused and hiding
- public final Parcelable.Creator CREATOR = new Creator() {
+ public static final Parcelable.Creator CREATOR = new Creator() {
public RecurrenceModel createFromParcel(Parcel in) {
return new RecurrenceModel(in);
@@ -372,7 +368,7 @@ public RecurrenceModel[] newArray(int size) {
};
}
- class minMaxTextWatcher implements TextWatcher {
+ abstract class minMaxTextWatcher implements TextWatcher {
private int mMin;
private int mMax;
private int mDefault;
@@ -415,8 +411,7 @@ public void afterTextChanged(Editable s) {
/**
* Override to be called after each key stroke
*/
- void onChange(int value) {
- }
+ abstract void onChange(int value);
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
@@ -769,7 +764,8 @@ void initializeLayout() {
freqAdapter.setDropDownViewResource(R.layout.roc_spinner_dropdown_item);
mFreqSpinner.setAdapter(freqAdapter);
- Drawable freqSpinnerBg = ContextCompat.getDrawable(getContext(), R.drawable.abc_spinner_mtrl_am_alpha);
+ // abc_spinner_mtrl_am_alpha is internal to appcompat, using a standard drawable if not found
+ Drawable freqSpinnerBg = ContextCompat.getDrawable(getContext(), androidx.appcompat.R.drawable.abc_spinner_mtrl_am_alpha);
PorterDuffColorFilter cfFreqSpinner
= new PorterDuffColorFilter(SUtils.COLOR_TEXT_PRIMARY_INVERSE,
PorterDuff.Mode.SRC_IN);
@@ -1534,4 +1530,3 @@ public View getDropDownView(int position, View convertView, ViewGroup parent) {
}
}
}
-
diff --git a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/timepicker/RadialTimePickerView.java b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/timepicker/RadialTimePickerView.java
index 8bffc1c..da8b4b0 100644
--- a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/timepicker/RadialTimePickerView.java
+++ b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/timepicker/RadialTimePickerView.java
@@ -37,10 +37,11 @@
import android.graphics.Typeface;
import android.os.Build;
import android.os.Bundle;
-import android.support.v4.content.ContextCompat;
-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.content.ContextCompat;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
+import androidx.customview.widget.ExploreByTouchHelper;
import android.util.AttributeSet;
import android.util.Log;
import android.util.TypedValue;
@@ -701,7 +702,7 @@ private void drawMinutes(Canvas canvas, float alphaMod) {
// Exclude the selector region, then draw minutes with no
// activated states.
- canvas.save(Canvas.CLIP_SAVE_FLAG);
+ canvas.save();
canvas.clipPath(mSelectorPath, Region.Op.DIFFERENCE);
drawTextElements(canvas, mTextSize[MINUTES], mTypeface, mTextColor[MINUTES],
mMinutesText, mOuterTextX[MINUTES], mOuterTextY[MINUTES], mPaint[MINUTES],
@@ -710,7 +711,7 @@ private void drawMinutes(Canvas canvas, float alphaMod) {
// Intersect the selector region, then draw minutes with only
// activated states.
- canvas.save(Canvas.CLIP_SAVE_FLAG);
+ canvas.save();
canvas.clipPath(mSelectorPath, Region.Op.INTERSECT);
drawTextElements(canvas, mTextSize[MINUTES], mTypeface, mTextColor[MINUTES],
mMinutesText, mOuterTextX[MINUTES], mOuterTextY[MINUTES], mPaint[MINUTES],
@@ -1119,11 +1120,6 @@ protected void onPopulateNodeForVirtualView(int virtualViewId, AccessibilityNode
final boolean selected = isVirtualViewSelected(type, value);
node.setSelected(selected);
-
- final int nextId = getVirtualViewIdAfter(type, value);
- if (nextId != INVALID_ID) {
- node.setTraversalBefore(RadialTimePickerView.this, nextId);
- }
}
@Override
@@ -1143,7 +1139,6 @@ protected boolean onPerformActionForVirtualView(int virtualViewId, int action, B
return false;
}
- @Override
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) {
super.onInitializeAccessibilityNodeInfo(host, info);
@@ -1252,27 +1247,6 @@ private int getCircularDiff(int first, int second, int max) {
return (diff > midpoint) ? (max - diff) : diff;
}
- private int getVirtualViewIdAfter(int type, int value) {
- if (type == TYPE_HOUR) {
- final int nextValue = value + 1;
- final int max = mIs24HourMode ? 23 : 12;
- if (nextValue <= max) {
- return makeId(type, nextValue);
- }
- } else if (type == TYPE_MINUTE) {
- final int current = getCurrentMinute();
- final int snapValue = value - (value % MINUTE_INCREMENT);
- final int nextValue = snapValue + MINUTE_INCREMENT;
- if (value < current && nextValue > current) {
- // The current value is between two snap values.
- return makeId(type, current);
- } else if (nextValue < MINUTES_IN_CIRCLE) {
- return makeId(type, nextValue);
- }
- }
- return INVALID_ID;
- }
-
private int hour12To24(int hour12, int amOrPm) {
int hour24 = hour12;
if (hour12 == 12) {
diff --git a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/timepicker/SublimeTimePicker.java b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/timepicker/SublimeTimePicker.java
index 6d3a25e..3497456 100644
--- a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/timepicker/SublimeTimePicker.java
+++ b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/timepicker/SublimeTimePicker.java
@@ -26,9 +26,9 @@
import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;
-import android.support.v4.view.AccessibilityDelegateCompat;
-import android.support.v4.view.ViewCompat;
-import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
+import androidx.core.view.AccessibilityDelegateCompat;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
import android.text.SpannableStringBuilder;
import android.text.TextUtils;
import android.text.format.DateFormat;
diff --git a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/utilities/AccessibilityUtils.java b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/utilities/AccessibilityUtils.java
index 74a826b..7cb5c7b 100644
--- a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/utilities/AccessibilityUtils.java
+++ b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/utilities/AccessibilityUtils.java
@@ -17,8 +17,8 @@
package com.appeaser.sublimepickerlibrary.utilities;
import android.content.Context;
-import android.support.v4.view.accessibility.AccessibilityEventCompat;
-import android.support.v4.view.accessibility.AccessibilityRecordCompat;
+import androidx.core.view.accessibility.AccessibilityEventCompat;
+import androidx.core.view.accessibility.AccessibilityRecordCompat;
import android.view.View;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
diff --git a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/utilities/SUtils.java b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/utilities/SUtils.java
index eef2db1..0e0557a 100644
--- a/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/utilities/SUtils.java
+++ b/sublimepickerlibrary/src/main/java/com/appeaser/sublimepickerlibrary/utilities/SUtils.java
@@ -30,9 +30,9 @@
import android.graphics.drawable.shapes.OvalShape;
import android.graphics.drawable.shapes.RoundRectShape;
import android.os.Build;
-import android.support.annotation.NonNull;
-import android.support.v4.graphics.drawable.DrawableCompat;
-import android.support.v4.view.ViewCompat;
+import androidx.annotation.NonNull;
+import androidx.core.graphics.drawable.DrawableCompat;
+import androidx.core.view.ViewCompat;
import android.util.Log;
import android.view.ContextThemeWrapper;
import android.view.HapticFeedbackConstants;
@@ -78,12 +78,12 @@ public class SUtils {
public static void initializeResources(Context context) {
TypedArray a = context.obtainStyledAttributes(
- new int[]{R.attr.colorAccent, R.attr.colorControlHighlight,
- R.attr.colorControlActivated,
- R.attr.colorButtonNormal, android.R.attr.textColorPrimary,
+ new int[]{androidx.appcompat.R.attr.colorAccent, androidx.appcompat.R.attr.colorControlHighlight,
+ androidx.appcompat.R.attr.colorControlActivated,
+ androidx.appcompat.R.attr.colorButtonNormal, android.R.attr.textColorPrimary,
android.R.attr.textColorPrimaryInverse,
- R.attr.colorPrimary,
- R.attr.colorPrimaryDark,
+ androidx.appcompat.R.attr.colorPrimary,
+ androidx.appcompat.R.attr.colorPrimaryDark,
android.R.attr.textColorSecondary,
android.R.attr.colorBackground,
android.R.attr.textColorSecondaryInverse});
diff --git a/sublimepickerlibrary/src/main/res/layout-land/time_picker_layout.xml b/sublimepickerlibrary/src/main/res/layout-land/time_picker_layout.xml
index c1c1ff5..bf7270e 100644
--- a/sublimepickerlibrary/src/main/res/layout-land/time_picker_layout.xml
+++ b/sublimepickerlibrary/src/main/res/layout-land/time_picker_layout.xml
@@ -15,7 +15,7 @@
limitations under the License.
-->
-
-
+
+ android:paddingEnd="?attr/dialogPreferredPadding">
+ android:gravity="end" />
+ android:gravity="start" />
@@ -180,9 +167,7 @@
app:layout_gravity="bottom|fill_horizontal"
android:layoutDirection="locale"
android:paddingStart="@dimen/sp_button_bar_padding_start"
- android:paddingLeft="@dimen/sp_button_bar_padding_start"
android:paddingEnd="@dimen/sp_button_bar_padding_end"
- android:paddingRight="@dimen/sp_button_bar_padding_end"
android:paddingTop="@dimen/sp_button_bar_padding_top"
android:paddingBottom="@dimen/sp_button_bar_padding_bottom">
@@ -197,6 +182,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
+ android:focusable="true"
android:src="?attr/spLandscapeCancelActionDrawable"
android:minWidth="@dimen/sp_dialog_button_bar_height"
android:minHeight="@dimen/sp_dialog_button_bar_height"
@@ -210,6 +196,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
+ android:focusable="true"
android:src="?attr/spLandscapeOkActionDrawable"
android:minWidth="@dimen/sp_dialog_button_bar_height"
android:minHeight="@dimen/sp_dialog_button_bar_height"
@@ -235,4 +222,4 @@
android:layout_weight="0" />
-
\ No newline at end of file
+
diff --git a/sublimepickerlibrary/src/main/res/layout/time_picker_layout.xml b/sublimepickerlibrary/src/main/res/layout/time_picker_layout.xml
index a1c1e25..4eb0e3a 100644
--- a/sublimepickerlibrary/src/main/res/layout/time_picker_layout.xml
+++ b/sublimepickerlibrary/src/main/res/layout/time_picker_layout.xml
@@ -35,8 +35,6 @@
android:layout_gravity="center"
android:layout_marginTop="@dimen/sp_timepicker_radial_picker_top_margin"
android:layout_marginStart="@dimen/sp_timepicker_radial_picker_horizontal_margin"
- android:layout_marginEnd="@dimen/sp_timepicker_radial_picker_horizontal_margin"
- android:layout_marginLeft="@dimen/sp_timepicker_radial_picker_horizontal_margin"
- android:layout_marginRight="@dimen/sp_timepicker_radial_picker_horizontal_margin"/>
+ android:layout_marginEnd="@dimen/sp_timepicker_radial_picker_horizontal_margin" />
-
\ No newline at end of file
+
diff --git a/sublimepickerlibrary/src/main/res/values/strings.xml b/sublimepickerlibrary/src/main/res/values/strings.xml
index 3f83182..b0cfb34 100644
--- a/sublimepickerlibrary/src/main/res/values/strings.xml
+++ b/sublimepickerlibrary/src/main/res/values/strings.xml
@@ -120,6 +120,7 @@
ok, set date/time
Cancel, do not set date/time
+ recurrence picker
repeat options
does not repeat