diff --git a/build.gradle b/build.gradle
index e26cdee..2f2b9ca 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,15 +1,17 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
- jcenter()
+ google()
+ mavenCentral()
}
dependencies {
- classpath 'com.android.tools.build:gradle:1.0.0'
+ classpath 'com.android.tools.build:gradle:4.2.2'
}
}
allprojects {
repositories {
- jcenter()
+ google()
+ mavenCentral()
}
}
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 0000000..2521752
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,19 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+# 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
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app"s APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Kotlin code style for this project: "official" or "obsolete":
+kotlin.code.style=official
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 0c71e76..c74df1e 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-2.2.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
diff --git a/slideDateTimePicker/build.gradle b/slideDateTimePicker/build.gradle
index f4b9504..ec2bedb 100644
--- a/slideDateTimePicker/build.gradle
+++ b/slideDateTimePicker/build.gradle
@@ -1,12 +1,12 @@
apply plugin: 'com.android.library'
android {
- compileSdkVersion 23
- buildToolsVersion "23.0.2"
+ compileSdkVersion 30
+ buildToolsVersion "23.0.3"
defaultConfig {
minSdkVersion 14
- targetSdkVersion 23
+ targetSdkVersion 30
}
buildTypes {
@@ -15,8 +15,13 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
+
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
}
dependencies {
- compile 'com.android.support:support-v4:23.1.1'
+ implementation 'androidx.appcompat:appcompat:1.3.0'
}
diff --git a/slideDateTimePicker/src/main/AndroidManifest.xml b/slideDateTimePicker/src/main/AndroidManifest.xml
index 5500a7d..257b9d2 100644
--- a/slideDateTimePicker/src/main/AndroidManifest.xml
+++ b/slideDateTimePicker/src/main/AndroidManifest.xml
@@ -1,11 +1,3 @@
-
The {@code DialogFragment} that contains the {@link SlidingTabLayout} * and {@link CustomViewPager}.
@@ -32,9 +32,7 @@ * @author jjobes * */ -public class SlideDateTimeDialogFragment extends DialogFragment implements DateFragment.DateChangedListener, - TimeFragment.TimeChangedListener -{ +public class SlideDateTimeDialogFragment extends DialogFragment { public static final String TAG_SLIDE_DATE_TIME_DIALOG_FRAGMENT = "tagSlideDateTimeDialogFragment"; private static SlideDateTimeListener mListener; @@ -55,13 +53,12 @@ public class SlideDateTimeDialogFragment extends DialogFragment implements DateF private boolean mIsClientSpecified24HourTime; private boolean mIs24HourTime; private Calendar mCalendar; - private int mDateFlags = + private final int mDateFlags = DateUtils.FORMAT_SHOW_WEEKDAY | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL; - public SlideDateTimeDialogFragment() - { + public SlideDateTimeDialogFragment() { // Required empty public constructor } @@ -70,21 +67,17 @@ public SlideDateTimeDialogFragment() * filled with the incoming arguments. * *Called by {@link SlideDateTimePicker#show()}.
- * - * @param listener - * @param initialDate - * @param minDate - * @param maxDate - * @param isClientSpecified24HourTime - * @param is24HourTime - * @param theme - * @param indicatorColor - * @return */ - public static SlideDateTimeDialogFragment newInstance(SlideDateTimeListener listener, - Date initialDate, Date minDate, Date maxDate, boolean isClientSpecified24HourTime, - boolean is24HourTime, int theme, int indicatorColor) - { + public static SlideDateTimeDialogFragment newInstance( + SlideDateTimeListener listener, + Date initialDate, + Date minDate, + Date maxDate, + boolean isClientSpecified24HourTime, + boolean is24HourTime, + int theme, + int indicatorColor + ) { mListener = listener; // Create a new instance of SlideDateTimeDialogFragment @@ -106,11 +99,10 @@ public static SlideDateTimeDialogFragment newInstance(SlideDateTimeListener list } @Override - public void onAttach(Activity activity) - { - super.onAttach(activity); + public void onAttach(@NonNull Context context) { + super.onAttach(context); - mContext = activity; + mContext = context; } @Override @@ -125,15 +117,10 @@ public void onCreate(Bundle savedInstanceState) mCalendar = Calendar.getInstance(); mCalendar.setTime(mInitialDate); - switch (mTheme) - { - case SlideDateTimePicker.HOLO_DARK: + if (mTheme == SlideDateTimePicker.HOLO_DARK) { setStyle(DialogFragment.STYLE_NO_TITLE, android.R.style.Theme_Holo_Dialog_NoActionBar); - break; - case SlideDateTimePicker.HOLO_LIGHT: - setStyle(DialogFragment.STYLE_NO_TITLE, android.R.style.Theme_Holo_Light_Dialog_NoActionBar); - break; - default: // if no theme was specified, default to holo light + } else { + // if HOLO_LIGHT or no theme was specified, default to holo light setStyle(DialogFragment.STYLE_NO_TITLE, android.R.style.Theme_Holo_Light_Dialog_NoActionBar); } } @@ -163,6 +150,9 @@ public void onDestroyView() getDialog().setDismissMessage(null); } + getChildFragmentManager().clearFragmentResult("111"); + getChildFragmentManager().clearFragmentResult("222"); + super.onDestroyView(); } @@ -170,6 +160,7 @@ private void unpackBundle() { Bundle args = getArguments(); + assert args != null; mInitialDate = (Date) args.getSerializable("initialDate"); mMinDate = (Date) args.getSerializable("minDate"); mMaxDate = (Date) args.getSerializable("maxDate"); @@ -217,6 +208,37 @@ private void customizeViews() private void initViewPager() { + /** + *The callback used by the DatePicker to update {@code mCalendar} as + * the user changes the date. Each time this is called, we also update + * the text on the date tab to reflect the date the user has currenly + * selected.
+ */ + getChildFragmentManager() + .setFragmentResultListener(DateFragment.DATE_FRAGMENT_KEY, getViewLifecycleOwner(), (requestKey, result) -> { + mCalendar.set( + result.getInt("year"), + result.getInt("monthOfYear"), + result.getInt("dayOfMonth") + ); + + updateDateTab(); + }); + + /** + *The callback used by the TimePicker to update {@code mCalendar} as + * the user changes the time. Each time this is called, we also update + * the text on the time tab to reflect the time the user has currenly + * selected.
+ */ + getChildFragmentManager() + .setFragmentResultListener(TimeFragment.TIME_FRAGMENT_KEY, getViewLifecycleOwner(), (requestKey, result) -> { + mCalendar.set(Calendar.HOUR_OF_DAY, result.getInt("hourOfDay")); + mCalendar.set(Calendar.MINUTE, result.getInt("minute")); + + updateTimeTab(); + }); + mViewPagerAdapter = new ViewPagerAdapter(getChildFragmentManager()); mViewPager.setAdapter(mViewPagerAdapter); @@ -237,74 +259,29 @@ private void initTabs() private void initButtons() { - mOkButton.setOnClickListener(new OnClickListener() { - - @Override - public void onClick(View v) + mOkButton.setOnClickListener(v -> { + if (mListener == null) { - if (mListener == null) - { - throw new NullPointerException( - "Listener no longer exists for mOkButton"); - } + throw new NullPointerException( + "Listener no longer exists for mOkButton"); + } - mListener.onDateTimeSet(new Date(mCalendar.getTimeInMillis())); + mListener.onDateTimeSet(new Date(mCalendar.getTimeInMillis())); - dismiss(); - } + dismiss(); }); - mCancelButton.setOnClickListener(new OnClickListener() { - - @Override - public void onClick(View v) + mCancelButton.setOnClickListener(v -> { + if (mListener == null) { - if (mListener == null) - { - throw new NullPointerException( - "Listener no longer exists for mCancelButton"); - } - - mListener.onDateTimeCancel(); - - dismiss(); + throw new NullPointerException( + "Listener no longer exists for mCancelButton"); } - }); - } - - /** - *The callback used by the DatePicker to update {@code mCalendar} as - * the user changes the date. Each time this is called, we also update - * the text on the date tab to reflect the date the user has currenly - * selected.
- * - *Implements the {@link DateFragment.DateChangedListener} - * interface.
- */ - @Override - public void onDateChanged(int year, int month, int day) - { - mCalendar.set(year, month, day); - updateDateTab(); - } - - /** - *The callback used by the TimePicker to update {@code mCalendar} as - * the user changes the time. Each time this is called, we also update - * the text on the time tab to reflect the time the user has currenly - * selected.
- * - *Implements the {@link TimeFragment.TimeChangedListener} - * interface.
- */ - @Override - public void onTimeChanged(int hour, int minute) - { - mCalendar.set(Calendar.HOUR_OF_DAY, hour); - mCalendar.set(Calendar.MINUTE, minute); + mListener.onDateTimeCancel(); - updateTimeTab(); + dismiss(); + }); } private void updateDateTab() @@ -346,7 +323,7 @@ private void updateTimeTab() * event handler. */ @Override - public void onCancel(DialogInterface dialog) + public void onCancel(@NonNull DialogInterface dialog) { super.onCancel(dialog); @@ -366,32 +343,24 @@ public ViewPagerAdapter(FragmentManager fm) super(fm); } + @NonNull @Override - public Fragment getItem(int position) - { - switch (position) - { - case 0: - DateFragment dateFragment = DateFragment.newInstance( - mTheme, - mCalendar.get(Calendar.YEAR), - mCalendar.get(Calendar.MONTH), - mCalendar.get(Calendar.DAY_OF_MONTH), - mMinDate, - mMaxDate); - dateFragment.setTargetFragment(SlideDateTimeDialogFragment.this, 100); - return dateFragment; - case 1: - TimeFragment timeFragment = TimeFragment.newInstance( - mTheme, - mCalendar.get(Calendar.HOUR_OF_DAY), - mCalendar.get(Calendar.MINUTE), - mIsClientSpecified24HourTime, - mIs24HourTime); - timeFragment.setTargetFragment(SlideDateTimeDialogFragment.this, 200); - return timeFragment; - default: - return null; + public Fragment getItem(int position) { + if (position == 0) { + return DateFragment.newInstance( + mTheme, + mCalendar.get(Calendar.YEAR), + mCalendar.get(Calendar.MONTH), + mCalendar.get(Calendar.DAY_OF_MONTH), + mMinDate, + mMaxDate); + } else { + return TimeFragment.newInstance( + mTheme, + mCalendar.get(Calendar.HOUR_OF_DAY), + mCalendar.get(Calendar.MINUTE), + mIsClientSpecified24HourTime, + mIs24HourTime); } } diff --git a/slideDateTimePicker/src/main/java/com/github/jjobes/slidedatetimepicker/SlideDateTimeListener.java b/slideDateTimePicker/src/main/java/com/github/jjobes/slidedatetimepicker/SlideDateTimeListener.java index d9d675c..ffcd241 100644 --- a/slideDateTimePicker/src/main/java/com/github/jjobes/slidedatetimepicker/SlideDateTimeListener.java +++ b/slideDateTimePicker/src/main/java/com/github/jjobes/slidedatetimepicker/SlideDateTimeListener.java @@ -31,8 +31,5 @@ public abstract class SlideDateTimeListener * the dialog or pressing the Back button. * This override is optional. */ - public void onDateTimeCancel() - { - - } + public void onDateTimeCancel() {} } diff --git a/slideDateTimePicker/src/main/java/com/github/jjobes/slidedatetimepicker/SlideDateTimePicker.java b/slideDateTimePicker/src/main/java/com/github/jjobes/slidedatetimepicker/SlideDateTimePicker.java index 2803835..763a220 100644 --- a/slideDateTimePicker/src/main/java/com/github/jjobes/slidedatetimepicker/SlideDateTimePicker.java +++ b/slideDateTimePicker/src/main/java/com/github/jjobes/slidedatetimepicker/SlideDateTimePicker.java @@ -1,10 +1,10 @@ package com.github.jjobes.slidedatetimepicker; -import java.util.Date; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentTransaction; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentManager; -import android.support.v4.app.FragmentTransaction; +import java.util.Date; /** *This class contains methods for the library client to create @@ -155,7 +155,7 @@ public void setIndicatorColor(int indicatorColor) /** * Shows the dialog to the user. Make sure to call - * {@link #setListener()} before calling this. + * {@link #setListener(SlideDateTimeListener)} before calling this. */ public void show() { diff --git a/slideDateTimePicker/src/main/java/com/github/jjobes/slidedatetimepicker/SlidingTabLayout.java b/slideDateTimePicker/src/main/java/com/github/jjobes/slidedatetimepicker/SlidingTabLayout.java index 14e102d..97d2ab5 100644 --- a/slideDateTimePicker/src/main/java/com/github/jjobes/slidedatetimepicker/SlidingTabLayout.java +++ b/slideDateTimePicker/src/main/java/com/github/jjobes/slidedatetimepicker/SlidingTabLayout.java @@ -21,8 +21,6 @@ import android.content.Context; import android.graphics.Typeface; import android.os.Build; -import android.support.v4.view.PagerAdapter; -import android.support.v4.view.ViewPager; import android.util.AttributeSet; import android.util.SparseArray; import android.util.TypedValue; @@ -32,12 +30,15 @@ import android.widget.HorizontalScrollView; import android.widget.TextView; +import androidx.viewpager.widget.PagerAdapter; +import androidx.viewpager.widget.ViewPager; + /** * To be used with ViewPager to provide a tab indicator component which give constant feedback as to * the user's scroll progress. *
* To use the component, simply add it to your view hierarchy. Then in your - * {@link android.app.Activity} or {@link android.support.v4.app.Fragment} call + * {@link android.app.Activity} or {@link androidx.fragment.app.Fragment} call * {@link #setViewPager(ViewPager)} providing it the ViewPager this layout is being used for. *
* The colors can be customized in two ways. The first and simplest is to provide an array of colors
diff --git a/slideDateTimePicker/src/main/java/com/github/jjobes/slidedatetimepicker/SlidingTabStrip.java b/slideDateTimePicker/src/main/java/com/github/jjobes/slidedatetimepicker/SlidingTabStrip.java
index 7975d81..ef7f78c 100644
--- a/slideDateTimePicker/src/main/java/com/github/jjobes/slidedatetimepicker/SlidingTabStrip.java
+++ b/slideDateTimePicker/src/main/java/com/github/jjobes/slidedatetimepicker/SlidingTabStrip.java
@@ -18,7 +18,6 @@
//package com.example.android.common.view;
-import android.R;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
@@ -67,7 +66,7 @@ class SlidingTabStrip extends LinearLayout {
final float density = getResources().getDisplayMetrics().density;
TypedValue outValue = new TypedValue();
- context.getTheme().resolveAttribute(R.attr.colorForeground, outValue, true);
+ context.getTheme().resolveAttribute(android.R.attr.colorForeground, outValue, true);
final int themeForegroundColor = outValue.data;
mDefaultBottomBorderColor = setColorAlpha(themeForegroundColor,
diff --git a/slideDateTimePicker/src/main/java/com/github/jjobes/slidedatetimepicker/TimeFragment.java b/slideDateTimePicker/src/main/java/com/github/jjobes/slidedatetimepicker/TimeFragment.java
index 89a38a2..c612e99 100644
--- a/slideDateTimePicker/src/main/java/com/github/jjobes/slidedatetimepicker/TimeFragment.java
+++ b/slideDateTimePicker/src/main/java/com/github/jjobes/slidedatetimepicker/TimeFragment.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
-import android.support.v4.app.Fragment;
import android.text.format.DateFormat;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
@@ -11,9 +10,10 @@
import android.view.ViewGroup;
import android.widget.DatePicker;
import android.widget.NumberPicker;
-import android.widget.NumberPicker.OnValueChangeListener;
import android.widget.TimePicker;
+import androidx.fragment.app.Fragment;
+
/**
* The fragment for the second page in the ViewPager that holds
* the TimePicker.
@@ -23,59 +23,26 @@
*/
public class TimeFragment extends Fragment
{
- /**
- * Used to communicate back to the parent fragment as the user
- * is changing the time spinners so we can dynamically update
- * the tab text.
- */
- public interface TimeChangedListener
- {
- void onTimeChanged(int hour, int minute);
- }
+ public static final String TIME_FRAGMENT_KEY = "200";
- private TimeChangedListener mCallback;
private TimePicker mTimePicker;
- public TimeFragment()
- {
+ public TimeFragment() {
// Required empty public constructor for fragment.
}
- /**
- * Cast the reference to {@link SlideDateTimeDialogFragment} to a
- * {@link TimeChangedListener}.
- */
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
-
- try
- {
- mCallback = (TimeChangedListener) getTargetFragment();
- }
- catch (ClassCastException e)
- {
- throw new ClassCastException("Calling fragment must implement " +
- "TimeFragment.TimeChangedListener interface");
- }
- }
-
/**
* Return an instance of TimeFragment with its bundle filled with the
* constructor arguments. The values in the bundle are retrieved in
- * {@link #onCreateView()} below to properly initialize the TimePicker.
- *
- * @param theme
- * @param hour
- * @param minute
- * @param isClientSpecified24HourTime
- * @param is24HourTime
- * @return
+ * {@link #onCreateView(LayoutInflater, ViewGroup, Bundle)} below to properly initialize the TimePicker.
*/
- public static final TimeFragment newInstance(int theme, int hour, int minute,
- boolean isClientSpecified24HourTime, boolean is24HourTime)
- {
+ public static TimeFragment newInstance(
+ int theme,
+ int hour,
+ int minute,
+ boolean isClientSpecified24HourTime,
+ boolean is24HourTime
+ ) {
TimeFragment f = new TimeFragment();
Bundle b = new Bundle();
@@ -93,9 +60,12 @@ public static final TimeFragment newInstance(int theme, int hour, int minute,
* Create and return the user interface view for this fragment.
*/
@Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState)
- {
+ public View onCreateView(
+ LayoutInflater inflater,
+ ViewGroup container,
+ Bundle savedInstanceState
+ ) {
+ assert getArguments() != null;
int theme = getArguments().getInt("theme");
int initialHour = getArguments().getInt("hour");
int initialMinute = getArguments().getInt("minute");
@@ -111,8 +81,8 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
Context contextThemeWrapper = new ContextThemeWrapper(
getActivity(),
theme == SlideDateTimePicker.HOLO_DARK ?
- android.R.style.Theme_Holo :
- android.R.style.Theme_Holo_Light);
+ android.R.style.Theme_Holo :
+ android.R.style.Theme_Holo_Light);
LayoutInflater localInflater = inflater.cloneInContext(contextThemeWrapper);
@@ -121,13 +91,11 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
mTimePicker = (TimePicker) v.findViewById(R.id.timePicker);
// block keyboard popping up on touch
mTimePicker.setDescendantFocusability(DatePicker.FOCUS_BLOCK_DESCENDANTS);
- mTimePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
-
- @Override
- public void onTimeChanged(TimePicker view, int hourOfDay, int minute)
- {
- mCallback.onTimeChanged(hourOfDay, minute);
- }
+ mTimePicker.setOnTimeChangedListener((view, hourOfDay, minute) -> {
+ Bundle result = new Bundle();
+ result.putInt("hourOfDay", hourOfDay);
+ result.putInt("minute", minute);
+ getParentFragmentManager().setFragmentResult(TIME_FRAGMENT_KEY, result);
});
// If the client specifies a 24-hour time format, set it on
@@ -140,8 +108,7 @@ public void onTimeChanged(TimePicker view, int hourOfDay, int minute)
{
// If the client does not specify a 24-hour time format, use the
// device default.
- mTimePicker.setIs24HourView(DateFormat.is24HourFormat(
- getTargetFragment().getActivity()));
+ mTimePicker.setIs24HourView(DateFormat.is24HourFormat(requireActivity()));
}
mTimePicker.setCurrentHour(initialHour);
@@ -150,7 +117,7 @@ public void onTimeChanged(TimePicker view, int hourOfDay, int minute)
// Fix for the bug where a TimePicker's onTimeChanged() is not called when
// the user toggles the AM/PM button. Only applies to 4.0.0 and 4.0.3.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH &&
- Build.VERSION.SDK_INT <= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1)
+ Build.VERSION.SDK_INT <= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1)
{
fixTimePickerBug18982();
}
@@ -174,27 +141,23 @@ private void fixTimePickerBug18982()
if (amPmView instanceof NumberPicker)
{
- ((NumberPicker) amPmView).setOnValueChangedListener(new OnValueChangeListener() {
-
- @Override
- public void onValueChange(NumberPicker picker, int oldVal, int newVal)
+ ((NumberPicker) amPmView).setOnValueChangedListener((picker, oldVal, newVal) -> {
+ if (picker.getValue() == 1) // PM
{
- if (picker.getValue() == 1) // PM
- {
- if (mTimePicker.getCurrentHour() < 12)
- mTimePicker.setCurrentHour(mTimePicker.getCurrentHour() + 12);
- }
- else // AM
- {
- if (mTimePicker.getCurrentHour() >= 12)
- mTimePicker.setCurrentHour(mTimePicker.getCurrentHour() - 12);
- }
-
- mCallback.onTimeChanged(
- mTimePicker.getCurrentHour(),
- mTimePicker.getCurrentMinute());
+ if (mTimePicker.getCurrentHour() < 12)
+ mTimePicker.setCurrentHour(mTimePicker.getCurrentHour() + 12);
}
+ else // AM
+ {
+ if (mTimePicker.getCurrentHour() >= 12)
+ mTimePicker.setCurrentHour(mTimePicker.getCurrentHour() - 12);
+ }
+
+ Bundle result = new Bundle();
+ result.putInt("hourOfDay", mTimePicker.getCurrentHour());
+ result.putInt("minute", mTimePicker.getCurrentMinute());
+ getParentFragmentManager().setFragmentResult("222", result);
});
}
}
-}
+}
\ No newline at end of file
diff --git a/slideDateTimePickerSample/build.gradle b/slideDateTimePickerSample/build.gradle
index dcb6e3d..01b4b39 100644
--- a/slideDateTimePickerSample/build.gradle
+++ b/slideDateTimePickerSample/build.gradle
@@ -1,13 +1,13 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 23
- buildToolsVersion "23.0.2"
+ compileSdkVersion 30
+ buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.github.jjobes.slidedatetimepicker.sample"
minSdkVersion 14
- targetSdkVersion 23
+ targetSdkVersion 30
}
buildTypes {
@@ -19,6 +19,6 @@ android {
}
dependencies {
- compile project(':slideDateTimePicker')
- compile 'com.android.support:support-v4:23.1.1'
+ implementation project(':slideDateTimePicker')
+ implementation 'androidx.appcompat:appcompat:1.3.0'
}
diff --git a/slideDateTimePickerSample/src/main/AndroidManifest.xml b/slideDateTimePickerSample/src/main/AndroidManifest.xml
index f2082cf..9eccde7 100644
--- a/slideDateTimePickerSample/src/main/AndroidManifest.xml
+++ b/slideDateTimePickerSample/src/main/AndroidManifest.xml
@@ -6,10 +6,6 @@
android:versionCode="1"
android:versionName="1.0" >
-