Skip to content

Commit cbee325

Browse files
authored
Merge pull request #19 from OmarShoaib/master
Project updated to work on latest android versions.
2 parents 787c3d1 + 37cae97 commit cbee325

File tree

16 files changed

+101
-73
lines changed

16 files changed

+101
-73
lines changed

app/build.gradle

+14-13
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
apply plugin: 'com.android.application'
22

33
android {
4-
compileSdkVersion 25
5-
buildToolsVersion "25.0.3"
4+
compileSdk 32
65
defaultConfig {
76
applicationId "io.blackbox_vision.dateedittextsample"
8-
minSdkVersion 14
9-
targetSdkVersion 25
7+
minSdkVersion 22
8+
targetSdkVersion 32
109
versionCode 1
1110
versionName "1.0"
1211
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -17,18 +16,20 @@ android {
1716
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
1817
}
1918
}
19+
compileOptions {
20+
sourceCompatibility JavaVersion.VERSION_1_8
21+
targetCompatibility JavaVersion.VERSION_1_8
22+
}
2023
}
2124

2225
dependencies {
23-
compile fileTree(dir: 'libs', include: ['*.jar'])
24-
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
25-
exclude group: 'com.android.support', module: 'support-annotations'
26-
})
27-
28-
compile 'com.android.support:appcompat-v7:25.3.1'
29-
compile 'com.android.support:design:25.3.1'
26+
implementation fileTree(dir: 'libs', include: ['*.jar'])
27+
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
28+
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
3029

31-
compile project(':datetimepickeredittext')
30+
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
31+
implementation 'androidx.appcompat:appcompat:1.5.1'
32+
implementation 'com.google.android.material:material:1.7.0'
3233

33-
testCompile 'junit:junit:4.12'
34+
implementation project(':datetimepickeredittext')
3435
}

app/src/main/AndroidManifest.xml

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
android:label="@string/app_name"
99
android:supportsRtl="true"
1010
android:theme="@style/AppTheme">
11-
<activity android:name="io.blackbox_vision.sample.MainActivity">
11+
<activity android:name="io.blackbox_vision.sample.MainActivity"
12+
android:exported="true">
1213
<intent-filter>
1314
<action android:name="android.intent.action.MAIN" />
1415

app/src/main/java/io/blackbox_vision/sample/MainActivity.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
package io.blackbox_vision.sample;
22

3-
import android.support.v7.app.AppCompatActivity;
43
import android.os.Bundle;
54
import android.text.format.DateFormat;
65

6+
import androidx.appcompat.app.AppCompatActivity;
7+
78
import java.util.Calendar;
89

910
import io.blackbox_vision.datetimepickeredittext.view.DatePickerEditText;

app/src/main/res/layout/activity_main.xml

+7-7
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
android:layout_marginBottom="8dp"
2929
android:hint="@string/select_time" />
3030

31-
<android.support.design.widget.TextInputLayout
31+
<com.google.android.material.textfield.TextInputLayout
3232
android:id="@+id/dateTextInputLayout"
3333
android:layout_width="match_parent"
3434
android:layout_height="wrap_content"
@@ -39,13 +39,13 @@
3939
android:layout_width="match_parent"
4040
android:layout_height="wrap_content"
4141
android:hint="@string/select_date"
42-
app:dateFormat="yyyy/MM/dd"
43-
app:maxDate="01/01/2050"
44-
app:minDate="01/01/1981" />
42+
app:dateFormat="yyyy-MM-dd"
43+
app:maxDate="2050-01-01"
44+
app:minDate="1981-01-01" />
4545

46-
</android.support.design.widget.TextInputLayout>
46+
</com.google.android.material.textfield.TextInputLayout>
4747

48-
<android.support.design.widget.TextInputLayout
48+
<com.google.android.material.textfield.TextInputLayout
4949
android:id="@+id/timeTextInputLayout"
5050
android:layout_width="match_parent"
5151
android:layout_height="wrap_content">
@@ -58,6 +58,6 @@
5858
app:is24HourView="true"
5959
app:timeFormat="kk:mm" />
6060

61-
</android.support.design.widget.TextInputLayout>
61+
</com.google.android.material.textfield.TextInputLayout>
6262

6363
</LinearLayout>

build.gradle

+7-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
// Top-level build file where you can add configuration options common to all sub-projects/modules.
22

33
buildscript {
4-
ext.kotlin_version = '1.1.2-4'
4+
ext.kotlin_version = '1.7.20'
55
repositories {
66
jcenter()
7+
google()
8+
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
79
}
810
dependencies {
9-
classpath 'com.android.tools.build:gradle:2.3.2'
11+
classpath 'com.android.tools.build:gradle:7.2.2'
1012
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
1113

1214
// NOTE: Do not place your application dependencies here; they belong
@@ -16,7 +18,9 @@ buildscript {
1618

1719
allprojects {
1820
repositories {
19-
jcenter()
21+
google()
22+
mavenCentral()
23+
maven { url "https://jitpack.io" }
2024
}
2125
}
2226

datetimepickeredittext/build.gradle

+15-12
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@ apply plugin: 'com.android.library'
22
apply plugin: 'kotlin-android'
33

44
android {
5-
compileSdkVersion 25
6-
buildToolsVersion "25.0.3"
5+
compileSdkVersion 32
76

87
defaultConfig {
9-
minSdkVersion 14
10-
targetSdkVersion 25
8+
minSdkVersion 22
9+
targetSdkVersion 32
1110
versionCode 1
1211
versionName "1.0"
1312

@@ -19,19 +18,23 @@ android {
1918
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
2019
}
2120
}
21+
compileOptions {
22+
sourceCompatibility JavaVersion.VERSION_1_8
23+
targetCompatibility JavaVersion.VERSION_1_8
24+
}
2225
}
2326

2427
dependencies {
25-
compile fileTree(dir: 'libs', include: ['*.jar'])
26-
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
27-
exclude group: 'com.android.support', module: 'support-annotations'
28-
})
28+
implementation fileTree(dir: 'libs', include: ['*.jar'])
29+
testImplementation 'junit:junit:4.12'
30+
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
31+
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
2932

30-
compile 'com.android.support:appcompat-v7:25.3.1'
31-
compile 'com.android.support:design:25.3.1'
33+
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
34+
implementation 'androidx.appcompat:appcompat:1.5.1'
35+
implementation 'com.google.android.material:material:1.7.0'
3236

33-
testCompile 'junit:junit:4.12'
34-
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
37+
// implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
3538
}
3639
repositories {
3740
mavenCentral()

datetimepickeredittext/src/androidTest/java/io/blackbox_vision/datetimepickeredittext/ExampleInstrumentedTest.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
package io.blackbox_vision.datetimepickeredittext;
22

33
import android.content.Context;
4-
import android.support.test.InstrumentationRegistry;
5-
import android.support.test.runner.AndroidJUnit4;
64

75
import org.junit.Test;
86
import org.junit.runner.RunWith;
97

108
import static org.junit.Assert.*;
119

10+
import androidx.test.InstrumentationRegistry;
11+
import androidx.test.ext.junit.runners.AndroidJUnit4;
12+
1213
/**
1314
* Instrumentation test, which will execute on an Android device.
1415
*

datetimepickeredittext/src/main/java/io/blackbox_vision/datetimepickeredittext/internal/fragment/DatePickerFragment.kt

+6-6
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ package io.blackbox_vision.datetimepickeredittext.internal.fragment
33
import android.app.DatePickerDialog
44
import android.app.Dialog
55
import android.os.Bundle
6-
import android.support.v4.app.DialogFragment
76

87
import java.util.Calendar
98

109
import io.blackbox_vision.datetimepickeredittext.internal.utils.DateUtils
1110

1211
import android.app.DatePickerDialog.*
12+
import androidx.fragment.app.DialogFragment
1313

1414

1515
class DatePickerFragment : DialogFragment() {
@@ -49,9 +49,9 @@ class DatePickerFragment : DialogFragment() {
4949
val datePickerDialog: DatePickerDialog
5050

5151
if (null != themeId && themeId != 0) {
52-
datePickerDialog = DatePickerDialog(activity, themeId!!, onDateSetListener, year, month, day)
52+
datePickerDialog = DatePickerDialog(requireActivity(), themeId!!, onDateSetListener, year, month, day)
5353
} else {
54-
datePickerDialog = DatePickerDialog(activity, onDateSetListener, year, month, day)
54+
datePickerDialog = DatePickerDialog(requireActivity(), onDateSetListener, year, month, day)
5555
}
5656

5757
// val minDateStr = if (null != minDate) minDate else DEFAULT_MIN_DATE
@@ -95,8 +95,8 @@ class DatePickerFragment : DialogFragment() {
9595
}
9696

9797
companion object {
98-
private val DEFAULT_TEMPLATE = "dd/MM/yyyy"
99-
private val DEFAULT_MIN_DATE = "01/01/1980"
100-
private val DEFAULT_MAX_DATE = "01/01/2100"
98+
private val DEFAULT_TEMPLATE = "yyyy-MM-dd"
99+
private val DEFAULT_MIN_DATE = "1980-01-01"
100+
private val DEFAULT_MAX_DATE = "2100-01-01"
101101
}
102102
}

datetimepickeredittext/src/main/java/io/blackbox_vision/datetimepickeredittext/internal/fragment/TimePickerFragment.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ package io.blackbox_vision.datetimepickeredittext.internal.fragment
33
import android.app.Dialog
44
import android.app.TimePickerDialog
55
import android.os.Bundle
6-
import android.support.v4.app.DialogFragment
76

87
import java.util.Calendar
98

109
import android.app.TimePickerDialog.OnTimeSetListener
10+
import androidx.fragment.app.DialogFragment
1111

1212

1313
class TimePickerFragment : DialogFragment() {

datetimepickeredittext/src/main/java/io/blackbox_vision/datetimepickeredittext/internal/utils/DateUtils.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import java.util.Locale
1313
object DateUtils {
1414
private val LOG_TAG = "DateUtils"
1515

16-
private val DATE_TEMPLATE = "dd/MM/yyyy"
16+
private val DATE_TEMPLATE = "yyyy-MM-dd"
1717
private val TIME_TEMPLATE = "kk:mm"
1818

1919
private fun format(date: Date, template: String): CharSequence {

datetimepickeredittext/src/main/java/io/blackbox_vision/datetimepickeredittext/view/DatePickerEditText.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package io.blackbox_vision.datetimepickeredittext.view
22

33
import android.content.Context
4-
import android.support.v4.app.FragmentManager
5-
import android.support.v7.widget.AppCompatEditText
64
import android.text.InputType
75
import android.util.AttributeSet
86
import android.view.View
@@ -20,7 +18,9 @@ import io.blackbox_vision.datetimepickeredittext.internal.utils.DateUtils
2018
import android.view.View.OnFocusChangeListener
2119
import android.view.View.OnClickListener
2220
import android.app.DatePickerDialog.OnDateSetListener
23-
import android.support.v7.app.AppCompatActivity
21+
import androidx.appcompat.app.AppCompatActivity
22+
import androidx.appcompat.widget.AppCompatEditText
23+
import androidx.fragment.app.FragmentManager
2424

2525

2626
class DatePickerEditText : AppCompatEditText, OnFocusChangeListener, OnClickListener, OnDateSetListener {

datetimepickeredittext/src/main/java/io/blackbox_vision/datetimepickeredittext/view/DatePickerInputEditText.kt

+19-13
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,24 @@
11
package io.blackbox_vision.datetimepickeredittext.view
22

3+
import android.app.Activity
4+
import android.app.DatePickerDialog.OnDateSetListener
35
import android.content.Context
4-
import android.support.design.widget.TextInputEditText
5-
import android.support.v4.app.FragmentManager
6+
import android.content.ContextWrapper
67
import android.text.InputType
78
import android.util.AttributeSet
89
import android.view.View
10+
import android.view.View.OnClickListener
11+
import android.view.View.OnFocusChangeListener
912
import android.view.inputmethod.InputMethodManager
1013
import android.widget.DatePicker
11-
12-
import java.text.DateFormat
13-
import java.util.Calendar
14-
import java.util.Locale
15-
14+
import androidx.appcompat.app.AppCompatActivity
15+
import androidx.fragment.app.FragmentManager
16+
import com.google.android.material.textfield.TextInputEditText
1617
import io.blackbox_vision.datetimepickeredittext.R
1718
import io.blackbox_vision.datetimepickeredittext.internal.fragment.DatePickerFragment
1819
import io.blackbox_vision.datetimepickeredittext.internal.utils.DateUtils
19-
20-
import android.view.View.OnFocusChangeListener
21-
import android.view.View.OnClickListener
22-
import android.app.DatePickerDialog.OnDateSetListener
23-
import android.support.v7.app.AppCompatActivity
20+
import java.text.DateFormat
21+
import java.util.*
2422

2523

2624
class DatePickerInputEditText : TextInputEditText, OnFocusChangeListener, OnClickListener, OnDateSetListener {
@@ -60,7 +58,7 @@ class DatePickerInputEditText : TextInputEditText, OnFocusChangeListener, OnClic
6058
setOnClickListener(this)
6159

6260
/*Set fragment manager*/
63-
manager = (context as AppCompatActivity).supportFragmentManager
61+
manager = (unwrap(context) as AppCompatActivity).supportFragmentManager
6462
}
6563

6664
private fun handleAttributes(attributeSet: AttributeSet) {
@@ -193,6 +191,14 @@ class DatePickerInputEditText : TextInputEditText, OnFocusChangeListener, OnClic
193191
return this
194192
}
195193

194+
private fun unwrap(context: Context): Activity? {
195+
var _context: Context? = context
196+
while (_context !is Activity && _context is ContextWrapper) {
197+
_context = _context.baseContext
198+
}
199+
return _context as Activity?
200+
}
201+
196202
companion object {
197203
private val TAG = "DatePickerInputEditText"
198204
}

datetimepickeredittext/src/main/java/io/blackbox_vision/datetimepickeredittext/view/TimePickerEditText.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package io.blackbox_vision.datetimepickeredittext.view
22

33
import android.content.Context
4-
import android.support.v4.app.FragmentManager
5-
import android.support.v7.widget.AppCompatEditText
64
import android.text.InputType
75
import android.util.AttributeSet
86
import android.view.View
@@ -20,7 +18,9 @@ import io.blackbox_vision.datetimepickeredittext.internal.utils.DateUtils
2018
import android.view.View.OnFocusChangeListener
2119
import android.view.View.OnClickListener
2220
import android.app.TimePickerDialog.OnTimeSetListener
23-
import android.support.v7.app.AppCompatActivity
21+
import androidx.appcompat.app.AppCompatActivity
22+
import androidx.appcompat.widget.AppCompatEditText
23+
import androidx.fragment.app.FragmentManager
2424

2525

2626
class TimePickerEditText : AppCompatEditText, OnFocusChangeListener, OnClickListener, OnTimeSetListener {

0 commit comments

Comments
 (0)