diff --git a/android-json-form-wizard/build.gradle b/android-json-form-wizard/build.gradle index 087c6eee6..176b745b8 100644 --- a/android-json-form-wizard/build.gradle +++ b/android-json-form-wizard/build.gradle @@ -18,6 +18,14 @@ jacoco { reportsDir = file("$buildDir/reports/jacoco") } +configurations { + cleanedAnnotations + compile.exclude group: 'org.jetbrains' , module:'annotations-java5' + // compile.exclude group: 'com.intellij', module:'annotations' + // compile.exclude group: 'org.intellij', module:'annotations' +} + + android { compileSdkVersion androidCompileSdkVersion buildToolsVersion androidBuildToolsVersion @@ -66,11 +74,18 @@ android { resolutionStrategy.force 'com.android.support:design:28.0.0' } } - +configurations { + cleanedAnnotations + implementation.exclude group: 'org.jetbrains' , module:'annotations' +} tasks.withType(Test) { jacoco.includeNoLocationClasses = true } +configurations { + cleanedAnnotations + compile.exclude group: 'org.jetbrains' , module:'annotations' +} repositories { mavenCentral() @@ -84,7 +99,7 @@ dependencies { exclude group: 'com.android.support', module: 'design' } implementation 'com.github.bmelnychuk:atv:1.2.9' - implementation('com.android.support:design:28.0.0') { + implementation('com.google.android.material:material:1.0.0') { exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' exclude group: 'com.android.support', module: 'support-v4' @@ -93,7 +108,7 @@ dependencies { implementation 'com.github.johnkil.print:print:1.3.1' implementation 'com.github.rey5137:material:1.2.5' implementation 'org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT' - implementation 'com.android.support.constraint:constraint-layout:1.1.3' + implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation('com.github.ganfra:material-spinner:2.0.0') { exclude group: 'com.nineoldandroids', module: 'library' exclude group: 'com.android.support', module: 'appcompat-v7' @@ -138,7 +153,8 @@ dependencies { } implementation 'com.jakewharton.timber:timber:4.7.1' implementation 'org.greenrobot:eventbus:3.1.1' - implementation 'com.android.support:multidex:1.0.3' + implementation 'androidx.multidex:multidex:2.0.1' + // PowerMock def powerMockVersion = '2.0.4' @@ -154,18 +170,22 @@ dependencies { androidTestImplementation 'com.jayway.android.robotium:robotium-solo:5.6.3' androidTestImplementation 'com.google.dexmaker:dexmaker-mockito:1.2' androidTestImplementation 'junit:junit:4.12' - androidTestImplementation("com.android.support.test:runner:1.0.2") { + androidTestImplementation('androidx.test.ext:junit:1.1.1') { exclude group: 'com.android.support', module: 'appcompat-v7' } - androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2', { + androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0', { exclude group: 'com.android.support', module: 'support-annotations' } - androidTestImplementation('com.android.support.test:rules:1.0.2') { + androidTestImplementation('androidx.test:rules:1.1.1') { exclude group: 'com.android.support', module: 'appcompat-v7' } + implementation ('com.github.keyrunHORNET:date_picker_converter:3.0.0') { + exclude group: 'com.android.support', module: 'support-annotations' + } + testImplementation 'junit:junit:4.12' testImplementation 'org.apache.maven:maven-ant-tasks:2.1.3' testImplementation 'org.mockito:mockito-core:3.1.0' diff --git a/android-json-form-wizard/gradle.properties b/android-json-form-wizard/gradle.properties index 0e918ba8a..a21e8f0a6 100644 --- a/android-json-form-wizard/gradle.properties +++ b/android-json-form-wizard/gradle.properties @@ -1,3 +1,4 @@ POM_SETTING_NAME=OpenSRP Client Native Form Json POM_SETTING_ARTIFACT_ID=opensrp-client-native-form -POM_SETTING_PACKAGING=aar \ No newline at end of file +POM_SETTING_PACKAGING=aar +org.gradle.jvmargs=-Xmx4096m \ No newline at end of file diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/NativeFormLibrary.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/NativeFormLibrary.java index 43bbc2023..46a5efd46 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/NativeFormLibrary.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/NativeFormLibrary.java @@ -1,7 +1,7 @@ package com.vijay.jsonwizard; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import org.smartregister.client.utils.contract.ClientFormContract; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/activities/FormConfigurationJsonFormActivity.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/activities/FormConfigurationJsonFormActivity.java index 0ee860ee0..3b6019920 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/activities/FormConfigurationJsonFormActivity.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/activities/FormConfigurationJsonFormActivity.java @@ -3,10 +3,10 @@ import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.VisibleForTesting; -import android.support.v7.app.AlertDialog; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.VisibleForTesting; +import androidx.appcompat.app.AlertDialog; import android.widget.Toast; import com.vijay.jsonwizard.NativeFormLibrary; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/activities/JsonFormActivity.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/activities/JsonFormActivity.java index 075c898a7..857b721d3 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/activities/JsonFormActivity.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/activities/JsonFormActivity.java @@ -14,11 +14,11 @@ import android.graphics.drawable.GradientDrawable; import android.os.AsyncTask; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.v4.app.ActivityCompat; -import android.support.v4.content.LocalBroadcastManager; -import android.support.v4.util.Pair; -import android.support.v7.widget.AppCompatRadioButton; +import androidx.annotation.NonNull; +import androidx.core.app.ActivityCompat; +import androidx.localbroadcastmanager.content.LocalBroadcastManager; +import androidx.core.util.Pair; +import androidx.appcompat.widget.AppCompatRadioButton; import android.text.Html; import android.text.Spanned; import android.text.TextUtils; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/activities/JsonFormBaseActivity.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/activities/JsonFormBaseActivity.java index 9c7e70a84..c1f9aaa5f 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/activities/JsonFormBaseActivity.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/activities/JsonFormBaseActivity.java @@ -4,10 +4,10 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.content.LocalBroadcastManager; -import android.support.v7.widget.Toolbar; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.localbroadcastmanager.content.LocalBroadcastManager; +import androidx.appcompat.widget.Toolbar; import android.view.View; import com.google.gson.Gson; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/activities/MultiLanguageActivity.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/activities/MultiLanguageActivity.java index ef9563f77..23e7f8b6b 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/activities/MultiLanguageActivity.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/activities/MultiLanguageActivity.java @@ -1,6 +1,6 @@ package com.vijay.jsonwizard.activities; -import android.support.v7.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatActivity; import com.vijay.jsonwizard.utils.NativeFormLangUtils; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/adapter/DynamicLabelAdapter.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/adapter/DynamicLabelAdapter.java index 6fb22ed37..cb6d018fe 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/adapter/DynamicLabelAdapter.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/adapter/DynamicLabelAdapter.java @@ -1,8 +1,8 @@ package com.vijay.jsonwizard.adapter; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/adapter/MultiSelectListAdapter.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/adapter/MultiSelectListAdapter.java index 62b780d7d..9ad5eef25 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/adapter/MultiSelectListAdapter.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/adapter/MultiSelectListAdapter.java @@ -1,7 +1,7 @@ package com.vijay.jsonwizard.adapter; -import android.support.annotation.NonNull; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/adapter/MultiSelectListSelectedAdapter.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/adapter/MultiSelectListSelectedAdapter.java index c2b7fe9ad..2e2be2088 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/adapter/MultiSelectListSelectedAdapter.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/adapter/MultiSelectListSelectedAdapter.java @@ -1,8 +1,8 @@ package com.vijay.jsonwizard.adapter; import android.graphics.Typeface; -import android.support.annotation.NonNull; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/BikramSambatCalendar.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/BikramSambatCalendar.java new file mode 100644 index 000000000..6cb3b03bc --- /dev/null +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/BikramSambatCalendar.java @@ -0,0 +1,274 @@ +package com.vijay.jsonwizard.customviews; + +import android.app.Activity; +import android.content.Context; +import android.os.Parcelable; +import android.util.AttributeSet; +import android.view.LayoutInflater; +import android.view.View; +import android.view.animation.AlphaAnimation; +import android.view.animation.Animation; +import android.widget.LinearLayout; + +import androidx.annotation.Nullable; + +import com.hornet.dateconverter.DateConverter; +import com.hornet.dateconverter.DatePicker.AccessibleDateAnimator; +import com.hornet.dateconverter.DatePicker.DatePickerController; +import com.hornet.dateconverter.DatePicker.DatePickerDialog; +import com.hornet.dateconverter.DatePicker.DateRangeLimiter; +import com.hornet.dateconverter.DatePicker.DayPickerGroup; +import com.hornet.dateconverter.DatePicker.DefaultDateRangeLimiter; +import com.hornet.dateconverter.DatePicker.MonthAdapter; +import com.hornet.dateconverter.Model; +import com.hornet.dateconverter.Utils; +import com.vijay.jsonwizard.R; + + +import java.util.GregorianCalendar; +import java.util.HashSet; +import java.util.List; +import java.util.Locale; +import java.util.TimeZone; + +/** + * Created by Kiran Gyawali on 10/28/2018. + */ +public class BikramSambatCalendar extends LinearLayout + implements View.OnClickListener, DatePickerController { + + private OnDateSetListener mCallback; + private DefaultDateRangeLimiter mDefaultLimiter = new DefaultDateRangeLimiter(); + // MdtpDatePickerViewAnimatorV2Binding mainBinding; + private DayPickerGroup mDayPickerView; + private AccessibleDateAnimator mAnimator; + private Model mCalendar; + private HashSet highlightedDays = new HashSet<>(); + private DateRangeLimiter mDateRangeLimiter = mDefaultLimiter; + private boolean highlightSaturdays; + + public BikramSambatCalendar(Context context) { + this(context, null); + } + + + public BikramSambatCalendar(Context context, @Nullable AttributeSet attrs) { + this(context, attrs, 0); + } + + public BikramSambatCalendar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + init(attrs, context); + + } + + public void setOnDateSetListener(OnDateSetListener listener) { + this.mCallback = listener; + } + + private void init(AttributeSet attrs, Context context) { + /*LayoutInflater inflater = (LayoutInflater) + context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + mainBinding= MdtpDatePickerViewAnimatorV2Binding.inflate(inflater); + */ + LayoutInflater.from(context) + .inflate(R.layout.mdtp_date_picker_view_animator_v2, this, true); + mCalendar = new DateConverter().getTodayNepaliDate(); + mAnimator = findViewById(R.id.mdtp_animator); + mDayPickerView = new DayPickerGroup(context, this); + mDefaultLimiter.setController(this); + mAnimator.addView(mDayPickerView); + mAnimator.setDateMillis(java.util.Calendar.getInstance().getTimeInMillis()); + Animation animation = new AlphaAnimation(0.0f, 1.0f); + animation.setDuration(300); + mAnimator.setInAnimation(animation); + Animation animation2 = new AlphaAnimation(1.0f, 0.0f); + animation2.setDuration(300); + mAnimator.setOutAnimation(animation2); + } + + + @Nullable + @Override + protected Parcelable onSaveInstanceState() { + return super.onSaveInstanceState(); + } + + @Override + public void onClick(View view) { + + } + + @Override + public void onYearSelected(int year) { + + } + + @Override + public void onDayOfMonthSelected(int year, int month, int day, int dayOfWeek) { + mCalendar.setDayOfWeek(dayOfWeek); + mCalendar.setYear(year); + mCalendar.setMonth(month); + mCalendar.setDay(day); + notifyDateSet(); + } + + @Override + public void registerOnDateChangedListener(DatePickerDialog.OnDateChangedListener listener) { + + } + + @Override + public void unregisterOnDateChangedListener(DatePickerDialog.OnDateChangedListener listener) { + + } + + @Override + public MonthAdapter.CalendarDay getSelectedDay() { + return new MonthAdapter.CalendarDay(new DateConverter().getTodayNepaliDate()); + } + + @Override + public boolean isThemeDark() { + return false; + } + + @Override + public int getAccentColor() { + return Utils.getAccentColorFromThemeIfAvailable(getContext()); + } + + @Override + public boolean isHighlighted(int year, int month, int day) { + java.util.Calendar date = java.util.Calendar.getInstance(getTimeZone()); + date.set(java.util.Calendar.YEAR, year); + date.set(java.util.Calendar.MONTH, month); + date.set(java.util.Calendar.DAY_OF_MONTH, day); + Utils.trimToMidnight(date); + return highlightedDays.contains(date); + } + + @Override + public int getFirstDayOfWeek() { + return 1;//week start is sunday by default + } + + @Override + public int getMinYear() { + return mDateRangeLimiter.getMinYear(); + } + + @Override + public int getMaxYear() { + return mDateRangeLimiter.getMaxYear(); + } + + @Override + public java.util.Calendar getStartDate() { + return mDateRangeLimiter.getStartDate(); + } + + @Override + public java.util.Calendar getEndDate() { + return mDateRangeLimiter.getEndDate(); + } + + @Override + public boolean isOutOfRange(int year, int month, int day) { + return mDateRangeLimiter.isOutOfRange(year, month, day); + } + + @Override + public void tryVibrate() { + + } + + @Override + public TimeZone getTimeZone() { + return TimeZone.getDefault(); + } + + @Override + public Locale getLocale() { + return Locale.getDefault(); + } + + @Override + public DatePickerDialog.Version getVersion() { + return DatePickerDialog.Version.VERSION_2; //default version 2 + } + + @Override + public DatePickerDialog.ScrollOrientation getScrollOrientation() { + return DatePickerDialog.ScrollOrientation.HORIZONTAL; + } + + public void setHighlightedDays(List myHighlightedDays) { + + java.util.Calendar[] days = new java.util.Calendar[myHighlightedDays.size()]; + for (int i = 0; i < myHighlightedDays.size(); i++) { + java.util.Calendar mDay = new GregorianCalendar(myHighlightedDays.get(i).getYear(), myHighlightedDays.get(i).getMonth(), myHighlightedDays.get(i).getDay()); + days[i] = mDay; + } + + for (java.util.Calendar highlightedDay : days) { + this.highlightedDays.add(Utils.trimToMidnight((java.util.Calendar) highlightedDay.clone())); + } + // Sort the array to optimize searching over it later on + ///Arrays.sort(highlightedDays); + if (mDayPickerView != null) mDayPickerView.onChange(); + } + + + private void setSelectableDays(List myList) { + java.util.Calendar[] days = new java.util.Calendar[myList.size()]; + for (int i = 0; i < myList.size(); i++) { + java.util.Calendar mDay = new GregorianCalendar(myList.get(i).getYear(), myList.get(i).getMonth(), myList.get(i).getDay()); + days[i] = mDay; + } + mDefaultLimiter.setSelectableDays(days); + if (mDayPickerView != null) mDayPickerView.onChange(); + } + + private void highlightAllSaturdays(boolean highlight) { + highlightSaturdays = highlight; + + if (highlightSaturdays) { + highlightedDays.addAll(getSaturdays()); + } else { + if (highlightedDays.containsAll(getSaturdays())) { + highlightedDays.removeAll(getSaturdays()); + } + } + } + + private HashSet getSaturdays() { + HashSet saturdaysHashSet = new HashSet<>(); + List saturdays = DateConverter.getAllSaturdays(); + java.util.Calendar[] days = new java.util.Calendar[saturdays.size()]; + for (int i = 0; i < saturdays.size(); i++) { + java.util.Calendar mDay = new GregorianCalendar(saturdays.get(i).getYear(), saturdays.get(i).getMonth(), saturdays.get(i).getDay()); + days[i] = mDay; + } + for (java.util.Calendar highlightedDay : days) { + saturdaysHashSet.add(Utils.trimToMidnight((java.util.Calendar) highlightedDay.clone())); + } + return saturdaysHashSet; + } + + + public void notifyDateSet() { + if (mCallback != null) { + mCallback.onDateClick(BikramSambatCalendar.this, mCalendar.getYear(), + mCalendar.getMonth(), mCalendar.getDay()); + } + } + + + public interface OnDateSetListener { + + + void onDateClick(View calendar, int year, int month, int day); + } + +} diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/CompoundButton.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/CompoundButton.java index 93b92ed40..05931f5f8 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/CompoundButton.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/CompoundButton.java @@ -5,7 +5,7 @@ import android.content.res.TypedArray; import android.graphics.drawable.Drawable; import android.os.Build; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.util.AttributeSet; import android.view.MotionEvent; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/DatePickerDialog.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/DatePickerDialog.java index 303529736..4f89819bf 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/DatePickerDialog.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/DatePickerDialog.java @@ -5,7 +5,9 @@ import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; + +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -13,12 +15,17 @@ import android.widget.Button; import android.widget.DatePicker; +import com.hornet.dateconverter.Model; import com.vijay.jsonwizard.R; +import com.vijay.jsonwizard.utils.DateConverter; import com.vijay.jsonwizard.utils.DatePickerUtils; +import java.sql.Time; import java.util.Calendar; import java.util.Date; +import timber.log.Timber; + import static android.view.inputmethod.InputMethodManager.HIDE_NOT_ALWAYS; /** @@ -129,6 +136,8 @@ public void onClick(View v) { public void onClick(View v) { if (onDateSetListener != null) { DatePickerDialog.this.dismiss(); + + onDateSetListener.onDateSet(datePicker, datePicker.getYear(), datePicker.getMonth(), datePicker.getDayOfMonth()); } @@ -146,6 +155,14 @@ public void setMaxDate(long maxDate) { this.maxDate = maxDate; } + public long getMinDate() { + return minDate; + } + + public long getMaxDate() { + return maxDate; + } + public void setCalendarViewShown(boolean calendarViewShown) { this.calendarViewShown = calendarViewShown; } @@ -179,4 +196,5 @@ public DatePicker getDatePicker() { public void setNumericDatePicker(boolean numericDatePicker) { isNumericDatePicker = numericDatePicker; } + } diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/ExpansionPanelGenericPopupDialog.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/ExpansionPanelGenericPopupDialog.java index dce150406..41d533c32 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/ExpansionPanelGenericPopupDialog.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/ExpansionPanelGenericPopupDialog.java @@ -6,9 +6,9 @@ import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v7.widget.AppCompatImageButton; -import android.support.v7.widget.Toolbar; +import androidx.annotation.Nullable; +import androidx.appcompat.widget.AppCompatImageButton; +import androidx.appcompat.widget.Toolbar; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/FormErrorView.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/FormErrorView.java index f8621b3b0..186793b63 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/FormErrorView.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/FormErrorView.java @@ -1,7 +1,7 @@ package com.vijay.jsonwizard.customviews; import android.content.Context; -import android.support.v7.widget.LinearLayoutCompat; +import androidx.appcompat.widget.LinearLayoutCompat; import android.view.LayoutInflater; import android.view.View; import android.widget.TextView; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/GenericPopupDialog.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/GenericPopupDialog.java index fbc747ba8..750046a3d 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/GenericPopupDialog.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/GenericPopupDialog.java @@ -6,7 +6,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/GpsDialog.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/GpsDialog.java index f22dc8cec..e889af1d9 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/GpsDialog.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/GpsDialog.java @@ -5,8 +5,8 @@ import android.content.DialogInterface; import android.location.Location; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.view.View; import android.widget.Button; import android.widget.Toast; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/MaterialSpinner.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/MaterialSpinner.java index 53e347684..93476e4c2 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/MaterialSpinner.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/MaterialSpinner.java @@ -8,7 +8,7 @@ import android.graphics.Point; import android.graphics.Typeface; import android.os.Build; -import android.support.v7.widget.AppCompatSpinner; +import androidx.appcompat.widget.AppCompatSpinner; import android.text.Layout; import android.text.StaticLayout; import android.text.TextPaint; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/NativeEditText.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/NativeEditText.java index 01345c54a..51724f3cd 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/NativeEditText.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/NativeEditText.java @@ -2,9 +2,9 @@ import android.app.Activity; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v7.widget.AppCompatEditText; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.widget.AppCompatEditText; import android.text.Editable; import android.text.TextWatcher; import android.util.AttributeSet; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/NumberSelectorSpinner.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/NumberSelectorSpinner.java index 7e9dbde3b..d7b0552f1 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/NumberSelectorSpinner.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/NumberSelectorSpinner.java @@ -1,7 +1,7 @@ package com.vijay.jsonwizard.customviews; import android.content.Context; -import android.support.v7.widget.AppCompatSpinner; +import androidx.appcompat.widget.AppCompatSpinner; import android.util.AttributeSet; /** diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/NumericDatePicker.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/NumericDatePicker.java index 6bb570cac..eae188a2a 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/NumericDatePicker.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/NumericDatePicker.java @@ -3,7 +3,7 @@ import android.annotation.TargetApi; import android.content.Context; import android.os.Build; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.VisibleForTesting; import android.util.AttributeSet; import android.view.View; import android.widget.DatePicker; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/TextableView.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/TextableView.java index 315db3ac2..14e0ccb6e 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/TextableView.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/TextableView.java @@ -4,7 +4,7 @@ import android.content.Context; import android.content.res.TypedArray; import android.os.Build; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import android.util.AttributeSet; import android.widget.LinearLayout; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/TimePickerDialog.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/TimePickerDialog.java index 5b93a75cf..a6cfc94dd 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/TimePickerDialog.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/TimePickerDialog.java @@ -7,7 +7,7 @@ import android.content.DialogInterface; import android.os.Build; import android.os.Bundle; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/ToasterLinearLayout.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/ToasterLinearLayout.java index 6d0d35854..3e5b6d282 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/ToasterLinearLayout.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/ToasterLinearLayout.java @@ -1,7 +1,7 @@ package com.vijay.jsonwizard.customviews; import android.content.Context; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import android.util.AttributeSet; import android.widget.TextView; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/TreeViewDialog.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/TreeViewDialog.java index 9c1f97636..da8a39053 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/TreeViewDialog.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/customviews/TreeViewDialog.java @@ -2,7 +2,7 @@ import android.app.Dialog; import android.content.Context; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.VisibleForTesting; import android.view.Window; import android.widget.LinearLayout; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/delegates/JsonWizardFormDelegate.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/delegates/JsonWizardFormDelegate.java index 1cb137682..3c72f9375 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/delegates/JsonWizardFormDelegate.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/delegates/JsonWizardFormDelegate.java @@ -1,7 +1,7 @@ package com.vijay.jsonwizard.delegates; -import android.support.annotation.NonNull; -import android.support.v4.app.FragmentManager; +import androidx.annotation.NonNull; +import androidx.fragment.app.FragmentManager; import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.fragments.JsonWizardFormFragment; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/domain/MultiSelectItem.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/domain/MultiSelectItem.java index a72c5343c..1098081bf 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/domain/MultiSelectItem.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/domain/MultiSelectItem.java @@ -1,6 +1,6 @@ package com.vijay.jsonwizard.domain; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; public class MultiSelectItem { private String key; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/domain/MultiSelectListAccessory.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/domain/MultiSelectListAccessory.java index d0cd913c4..ff8e35053 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/domain/MultiSelectListAccessory.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/domain/MultiSelectListAccessory.java @@ -1,6 +1,6 @@ package com.vijay.jsonwizard.domain; -import android.support.v7.app.AlertDialog; +import androidx.appcompat.app.AlertDialog; import com.vijay.jsonwizard.adapter.MultiSelectListAdapter; import com.vijay.jsonwizard.adapter.MultiSelectListSelectedAdapter; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/factory/FileSourceFactoryHelper.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/factory/FileSourceFactoryHelper.java index 638d1cf70..aa024d64b 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/factory/FileSourceFactoryHelper.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/factory/FileSourceFactoryHelper.java @@ -1,6 +1,6 @@ package com.vijay.jsonwizard.factory; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.filesource.AssetsFileSource; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/filesource/DiskFileSource.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/filesource/DiskFileSource.java index e356b4448..cf0bab4a6 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/filesource/DiskFileSource.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/filesource/DiskFileSource.java @@ -2,7 +2,7 @@ import android.content.Context; import android.os.Environment; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.VisibleForTesting; import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.interfaces.FormFileSource; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/fragments/JsonFormErrorFragment.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/fragments/JsonFormErrorFragment.java index f4cb8fef5..ee21bd8b0 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/fragments/JsonFormErrorFragment.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/fragments/JsonFormErrorFragment.java @@ -2,10 +2,10 @@ import android.content.Context; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.app.DialogFragment; -import android.support.v7.widget.Toolbar; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.DialogFragment; +import androidx.appcompat.widget.Toolbar; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/fragments/JsonFormFragment.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/fragments/JsonFormFragment.java index 752a97f14..d3424e170 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/fragments/JsonFormFragment.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/fragments/JsonFormFragment.java @@ -9,12 +9,12 @@ import android.os.Handler; import android.os.Looper; import android.os.Message; -import android.support.annotation.DrawableRes; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v7.app.ActionBar; -import android.support.v7.widget.AppCompatRadioButton; -import android.support.v7.widget.Toolbar; +import androidx.annotation.DrawableRes; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.widget.AppCompatRadioButton; +import androidx.appcompat.widget.Toolbar; import android.text.SpannableString; import android.text.TextUtils; import android.text.style.ForegroundColorSpan; @@ -50,7 +50,6 @@ import com.vijay.jsonwizard.viewstates.JsonFormFragmentViewState; import org.apache.commons.lang3.StringUtils; -import org.jetbrains.annotations.NotNull; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -77,7 +76,7 @@ public class JsonFormFragment extends MvpFragment> lookUpMap = new HashMap<>(); + private Map> lookUpMap = new HashMap<>(); private Button previousButton; private Button nextButton; private String stepName; @@ -87,7 +86,7 @@ public class JsonFormFragment extends MvpFragment= 0) { + //number of days in Nepali months + daysInMonth = monthDay[nepMonth]; + nepDay++; + if (nepDay > daysInMonth) { + nepMonth++; + nepDay = 1; + } + if (nepMonth >= 12) { + equivalentNepaliYear++; + nepMonth = 0; + } + difference--; + } + } +//month index is initialised as 0 so increasing by 1 + String nepDayString; + String nepMonthString; + nepMonth += 1; + if(nepDay<=9) + { + nepDayString = "0"+nepDay; + } + else + nepDayString = ""+nepDay; + if(nepMonth<=9) + { + nepMonthString = "0"+nepMonth; + } + else + { + nepMonthString = ""+nepMonth; + } + return equivalentNepaliYear + "-" + nepMonthString + "-" + nepDayString; + } + + /** + * Converts nepali bikram sambat date to Gregorian date + * + * @param nepaliMonth nepali date month + * @param nepaliDayOfMonth nepali date day of month + * @param nepaliYear index to look number of days in month + * @return english date + */ + private Date convertBsToAd(int nepaliMonth, int nepaliDayOfMonth, + int nepaliYear) { + // number of days + // passed + // since + // start of year + // 1 is decreased as year start day has already included + int numberOfDaysPassed = nepaliDayOfMonth - 1; + for (int i = 0; i <= nepaliMonth - 2; i++) { + numberOfDaysPassed += Lookup.numberOfDaysInNepaliMonth.get(nepaliYear)[i]; + } + // From look up table we need to find corresponding english date + // for + // nepali new year + // we need to add number of days passed from new year to english + // date + // which will find + // corresponding english date + // we need what starts + // where... + String dateFormat = "dd-MMM-yyyy"; + java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat( + dateFormat); + sdf.setLenient(false); + Calendar c1 = Calendar.getInstance(); + try { + c1.setTime(sdf.parse(Lookup.adEquivalentDatesForNewNepaliYear.get(getLookupIndex(nepaliYear)))); + } catch (ParseException e) { + logger.error("error", e); + } + c1.add(Calendar.DATE, numberOfDaysPassed); + return c1.getTime(); + } + + /** + * validates nepali date + * + * @param bsYear nepali date year part + * @param bsMonth nepali date month part + * @param bsDayOfMonth nepali date day of month + * @return boolean returns false if there is no lookup for provided year , + */ + private boolean validateBsDate(int bsYear, int bsMonth, int bsDayOfMonth) { + if (bsYear < Lookup.lookupNepaliYearStart) { + throw new DateRangeNotSupported("Bikam Sambat is earlier than supported date"); + } else if (bsYear > (Lookup.lookupNepaliYearStart + Lookup.numberOfDaysInNepaliMonth.size() - 1)) { + throw new DateRangeNotSupported("Bikram Sambat is later than supported date"); + } else { + logger.debug("debug: converter supports year {} ", bsYear); + if (bsMonth >= 1 && bsMonth <= 12) { + logger.debug("debug: month between 1 and 12"); + int dayOfMonth = Lookup.numberOfDaysInNepaliMonth.get(bsYear)[bsMonth - 1]; + logger.debug("debug:total days in month {} ", dayOfMonth); + if (bsDayOfMonth <= dayOfMonth) { + return true; + } else { + String message = String.format("invalid day of month %d for year %d and month %d ", bsDayOfMonth, bsYear, bsMonth); + logger.warn(message); + throw new InvalidBsDayOfMonthException( + message); + } + } + } + return false; + } + + /** + * gets array lookup index in lookup datastructure + * + * @param bsYear nepali year + * @return index where year is + */ + private int getLookupIndex(int bsYear) { + logger.debug("lookup index {} ", (bsYear - Lookup.lookupNepaliYearStart)); + return bsYear - Lookup.lookupNepaliYearStart; + } + + /** + * confirms whether date format is valid or not. date format should be + * mm-dd-yyyy + * + * @param bsDate nepali date + * @return true if format matches + */ + boolean matchFormat(String bsDate) { + if (format.equals(DEFAULT_FORMAT)) { + logger.debug("date format want to test is {} real text is {}", format, bsDate); + Pattern p = Pattern.compile("\\d{2}\\d{2}\\d{4}"); + return p.matcher(bsDate).matches(); + } else { + logger.debug("date format is {}", format); + return Pattern.matches("\\d{2}-\\d{2}-\\d{4}", bsDate); + } + } +} diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/DatePickerUtils.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/DatePickerUtils.java index 2c10ad168..2434a0305 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/DatePickerUtils.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/DatePickerUtils.java @@ -9,6 +9,8 @@ import android.widget.NumberPicker; import android.widget.TextView; +import com.vijay.jsonwizard.fragments.JsonFormFragment; + /** * Created by keyman on 25/04/2017. @@ -22,6 +24,11 @@ public static void themeDatePicker(DatePickerDialog dialog, char[] ymdOrder) { throw new IllegalStateException("Dialog must be showing"); } +// // properties configs +// NativeFormsProperties properties = JsonFormFragment.getNativeFormProperties(); +// if(properties.isTrue(NativeFormsProperties.KEY.WIDGET_DATEPICKER_IS_NEPAL)) +// // config end + themeDatePicker(dialog.getDatePicker(), ymdOrder); } diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/DateRangeNotSupported.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/DateRangeNotSupported.java new file mode 100644 index 000000000..2d1a5a692 --- /dev/null +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/DateRangeNotSupported.java @@ -0,0 +1,12 @@ +package com.vijay.jsonwizard.utils; + + +/** + * @author bbaniya + */ +public class DateRangeNotSupported extends RuntimeException { + DateRangeNotSupported(String message) { + super(message); + } + +} \ No newline at end of file diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/FormRollbackDialogUtil.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/FormRollbackDialogUtil.java index 99c65cc66..a5d0b328d 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/FormRollbackDialogUtil.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/FormRollbackDialogUtil.java @@ -3,8 +3,8 @@ import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; -import android.support.annotation.NonNull; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.NonNull; +import androidx.annotation.VisibleForTesting; import android.widget.ArrayAdapter; import android.widget.Toast; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/FormUtils.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/FormUtils.java index 5c4d2936f..286330c70 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/FormUtils.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/FormUtils.java @@ -9,11 +9,11 @@ import android.graphics.Point; import android.graphics.Typeface; import android.graphics.drawable.Drawable; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.constraint.ConstraintLayout; -import android.support.v7.widget.AppCompatEditText; -import android.support.v7.widget.AppCompatTextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.appcompat.widget.AppCompatEditText; +import androidx.appcompat.widget.AppCompatTextView; import android.text.Html; import android.text.Spannable; import android.text.SpannableString; @@ -50,7 +50,6 @@ import org.apache.commons.lang3.CharEncoding; import org.apache.commons.lang3.StringUtils; import org.jeasy.rules.api.Facts; -import org.jetbrains.annotations.NotNull; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -410,7 +409,7 @@ private void attachRefreshLogic(Context context, String relevance, String calcul } } - @NotNull + @NonNull public ConstraintLayout getConstraintLayout(String stepName, JSONArray canvasIds, JSONObject jsonObject, Context context, String openMrsEntityParent, String openMrsEntity, String openMrsEntityId) throws JSONException { ConstraintLayout constraintLayout = getRootConstraintLayout(context); constraintLayout.setId(ViewUtil.generateViewId()); diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/ImageUtils.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/ImageUtils.java index a4d10dbb8..c21f0b4c5 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/ImageUtils.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/ImageUtils.java @@ -7,10 +7,12 @@ import android.graphics.Matrix; import android.media.ExifInterface; import android.net.Uri; -import android.support.v4.util.LruCache; + +import androidx.annotation.Nullable; +import androidx.collection.LruCache; import android.util.Log; -import org.jetbrains.annotations.Nullable; + import java.io.File; import java.io.IOException; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/InvalidBsDayOfMonthException.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/InvalidBsDayOfMonthException.java new file mode 100644 index 000000000..373faa186 --- /dev/null +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/InvalidBsDayOfMonthException.java @@ -0,0 +1,12 @@ +package com.vijay.jsonwizard.utils; + + +/** + * @author bbaniya + */ +public class InvalidBsDayOfMonthException extends RuntimeException { + + InvalidBsDayOfMonthException(String message) { + super(message); + } +} \ No newline at end of file diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/InvalidDateFormatException.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/InvalidDateFormatException.java new file mode 100644 index 000000000..931f48971 --- /dev/null +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/InvalidDateFormatException.java @@ -0,0 +1,13 @@ +package com.vijay.jsonwizard.utils; + + +/** + * + */ +class InvalidDateFormatException extends RuntimeException { + + InvalidDateFormatException(String message) { + super(message); + } + +} \ No newline at end of file diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/Lookup.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/Lookup.java new file mode 100644 index 000000000..6e5553aff --- /dev/null +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/Lookup.java @@ -0,0 +1,441 @@ +package com.vijay.jsonwizard.utils; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +/** + * This class has a mapping from Bikram Sambat to Gregorian date + * Current mapping is in range of 1970-2100 + * If you need extension in date range, + * add more dates referring to sites mentioned in README.md. + *

+ * todo it would be better if these lookup tables could be maintained in XML or JSON or in memory database. + *

+ *

+ * There are certain year where there is not 365 days per year, verify these year with other calendar. + *

+ */ +public class Lookup { + /** + * Bikram Sambat new year equivalent Gregorian date + *

+ * TODO map would be good format for faster calculation. + */ + static ArrayList adEquivalentDatesForNewNepaliYear = new ArrayList<>(); + /* + * lookup table starting year + */ + static int lookupNepaliYearStart = 1970; + /* + * number of days in each Nepali month for subsequent years we need to extend this + * year adding more entries + * * TODO map would be good format for faster calculation and readability + */ + static Map numberOfDaysInNepaliMonth = new HashMap<>(); + + static { + //todo create some csv or sort sort of external collaborative data others can update who does not know java + adEquivalentDatesForNewNepaliYear.add("13-Apr-1913");// 1970 Baisakh 1 english equivalent date + adEquivalentDatesForNewNepaliYear.add("13-Apr-1914"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1915"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1916"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1917"); + adEquivalentDatesForNewNepaliYear.add("12-Apr-1918"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1919"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1920"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1921"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1922"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1923"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1924"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1925"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1926"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1927"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1928"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1929"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1930"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1931"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1932"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1933");// 1990 Baisakh 1 + adEquivalentDatesForNewNepaliYear.add("13-Apr-1934"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1935"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1936"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1937"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1938"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1939"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1940"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1941"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1942"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-1943");// 2000 Baisakh 1 + adEquivalentDatesForNewNepaliYear.add("13-Apr-1944");// 2001 Baisakh 1 + adEquivalentDatesForNewNepaliYear.add("13-Apr-1945"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1946"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-1947");// 2004 + adEquivalentDatesForNewNepaliYear.add("13-Apr-1948"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1949"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1950"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-1951"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1952"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1953"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1954"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-1955"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1956"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1957"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1958"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-1959"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1960"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1961"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1962"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-1963");// 2020 + adEquivalentDatesForNewNepaliYear.add("13-Apr-1964"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1965"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1966"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-1967"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1968"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1969"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-1970"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-1971"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1972"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1973"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-1974"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-1975"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1976"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1977"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-1978"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-1979"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1980"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1981"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-1982"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-1983"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1984"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1985"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-1986"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-1987"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1988"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1989"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-1990"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-1991"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1992"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1993"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-1994");// 2051 + adEquivalentDatesForNewNepaliYear.add("14-Apr-1995");// 2052 + adEquivalentDatesForNewNepaliYear.add("13-Apr-1996"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-1997"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-1998"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-1999"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-2000"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-2001"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-2002"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-2003");// 2060 + adEquivalentDatesForNewNepaliYear.add("13-Apr-2004"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-2005"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-2006"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-2007"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-2008"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-2009"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-2010"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-2011"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-2012"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-2013");// 2070 + adEquivalentDatesForNewNepaliYear.add("14-Apr-2014"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-2015"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-2016"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-2017"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-2018"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-2019"); + adEquivalentDatesForNewNepaliYear.add("13-Apr-2020"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-2021"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-2022"); + adEquivalentDatesForNewNepaliYear.add("14-Apr-2023");// 2080 + adEquivalentDatesForNewNepaliYear.add("13-Apr-2024");// 2081 + adEquivalentDatesForNewNepaliYear.add("14-Apr-2025");// 2082 + adEquivalentDatesForNewNepaliYear.add("14-Apr-2026");// 2083 + adEquivalentDatesForNewNepaliYear.add("14-Apr-2027");// 2084 + adEquivalentDatesForNewNepaliYear.add("13-Apr-2028");// 2085 + adEquivalentDatesForNewNepaliYear.add("14-Apr-2029");// 2086 + adEquivalentDatesForNewNepaliYear.add("14-Apr-2030");// 2087 + adEquivalentDatesForNewNepaliYear.add("15-Apr-2031");// 2088 + adEquivalentDatesForNewNepaliYear.add("14-Apr-2032");// 2089 + adEquivalentDatesForNewNepaliYear.add("14-Apr-2033");// 2090 + adEquivalentDatesForNewNepaliYear.add("14-Apr-2034");// 2091 + adEquivalentDatesForNewNepaliYear.add("13-Apr-2035");// 2092 + adEquivalentDatesForNewNepaliYear.add("14-Apr-2036");// 2093 + adEquivalentDatesForNewNepaliYear.add("14-Apr-2037");// 2094 + adEquivalentDatesForNewNepaliYear.add("14-Apr-2038");// 2095 + adEquivalentDatesForNewNepaliYear.add("15-Apr-2039");// 2096 + adEquivalentDatesForNewNepaliYear.add("13-Apr-2040");// 2097 + adEquivalentDatesForNewNepaliYear.add("14-Apr-2041");// 2098 + adEquivalentDatesForNewNepaliYear.add("14-Apr-2042");// 2099 + adEquivalentDatesForNewNepaliYear.add("14-Apr-2043");// 2100 + } + + private Lookup() { + } + + static { + //number after // is Nepali year + numberOfDaysInNepaliMonth.put(1970, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30});// 1970 + numberOfDaysInNepaliMonth.put(1971, new Byte[]{31, 31, 32, 31, 32, 30, 30, 29, 30, 29, + 30, 30});// 1971 + numberOfDaysInNepaliMonth.put(1972, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 30, 30});// 1972 + numberOfDaysInNepaliMonth.put(1973, new Byte[]{30, 32, 31, 32, 31, 30, 30, 30, 29, 30, + 29, 31});// 1973 + numberOfDaysInNepaliMonth.put(1974, new Byte[]{31, 31, 32, 30, 31, 31, 30, 29, 30, 29, + 30, 30});// 1974 + numberOfDaysInNepaliMonth.put(1975, new Byte[]{31, 31, 32, 32, 30, 31, 30, 29, 30, 29, + 30, 30});// 1975 + numberOfDaysInNepaliMonth.put(1976, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 30, 31});// 1976 + numberOfDaysInNepaliMonth.put(1977, new Byte[]{30, 32, 31, 32, 31, 31, 29, 30, 29, 30, + 29, 31});// 1977 + numberOfDaysInNepaliMonth.put(1978, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30});// 1978 + numberOfDaysInNepaliMonth.put(1979, new Byte[]{31, 31, 32, 32, 31, 30, 30, 29, 30, 29, + 30, 30});// 1979 + numberOfDaysInNepaliMonth.put(1980, new Byte[]{30, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 30, 31});// 1980 + numberOfDaysInNepaliMonth.put(1981, new Byte[]{31, 31, 31, 32, 31, 31, 29, 30, 30, 29, + 30, 30});// 1981 + numberOfDaysInNepaliMonth.put(1982, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30});// 1982 + numberOfDaysInNepaliMonth.put(1983, new Byte[]{31, 31, 32, 32, 31, 30, 30, 29, 30, 29, + 30, 30});// 1983 + numberOfDaysInNepaliMonth.put(1984, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 30, 31});// 1984 + numberOfDaysInNepaliMonth.put(1985, new Byte[]{31, 31, 31, 32, 31, 31, 29, 30, 30, 29, + 30, 30});// 1985 + numberOfDaysInNepaliMonth.put(1986, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30});// 1986 + numberOfDaysInNepaliMonth.put(1987, new Byte[]{31, 32, 31, 32, 31, 30, 30, 29, 30, 29, + 30, 30});// 1987 + numberOfDaysInNepaliMonth.put(1988, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 30, 31});// 1988 + numberOfDaysInNepaliMonth.put(1989, new Byte[]{31, 31, 31, 32, 31, 31, 30, 29, 30, 29, + 30, 30});// 1989 + numberOfDaysInNepaliMonth.put(1990, new Byte[]{30, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30});// 1990 + numberOfDaysInNepaliMonth.put(1991, new Byte[]{31, 32, 31, 32, 31, 30, 30, 29, 30, 29, + 30, 30});// 1991 + numberOfDaysInNepaliMonth.put(1992, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 30, + 29, 30});// 1992 + numberOfDaysInNepaliMonth.put(1993, new Byte[]{31, 31, 31, 32, 31, 31, 30, 29, 30, 29, + 30, 30});// 1993 + numberOfDaysInNepaliMonth.put(1994, new Byte[]{31, 31, 31, 32, 31, 31, 30, 29, 30, 29, + 30, 30});// 1994 + numberOfDaysInNepaliMonth.put(1995, new Byte[]{31, 31, 31, 32, 31, 31, 30, 29, 30, 29, + 30, 30});// 1995 + numberOfDaysInNepaliMonth.put(1996, new Byte[]{31, 31, 31, 32, 31, 31, 30, 29, 30, 29, + 30, 30});// 1996 + numberOfDaysInNepaliMonth.put(1997, new Byte[]{31, 31, 31, 32, 31, 31, 30, 29, 30, 29, + 30, 30});// 1997 + numberOfDaysInNepaliMonth.put(1998, new Byte[]{31, 31, 31, 32, 31, 31, 30, 29, 30, 29, + 30, 30});// 1998 + numberOfDaysInNepaliMonth.put(1999, new Byte[]{31, 31, 31, 32, 31, 31, 30, 29, 30, 29, + 30, 30});// 1999 + numberOfDaysInNepaliMonth.put(2000, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 29, 31});// 2000 + numberOfDaysInNepaliMonth.put(2001, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30});// 2001 + numberOfDaysInNepaliMonth.put(2002, new Byte[]{31, 31, 32, 32, 31, 30, 30, 29, 30, 29, + 30, 30});// 2002 366 days + numberOfDaysInNepaliMonth.put(2003, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 30, 31}); //2003 + numberOfDaysInNepaliMonth.put(2004, new Byte[]{30, 32, 31, 32, 31, 30, 30, 30, 29, 30, + 29, 31}); + numberOfDaysInNepaliMonth.put(2005, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30}); //2005 + numberOfDaysInNepaliMonth.put(2006, new Byte[]{31, 31, 32, 32, 31, 30, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2007, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 30, 31}); + numberOfDaysInNepaliMonth.put(2008, new Byte[]{31, 31, 31, 32, 31, 31, 29, 30, 30, 29, + 29, 31}); + numberOfDaysInNepaliMonth.put(2009, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2010, new Byte[]{31, 31, 32, 32, 31, 30, 30, 29, 30, 29, + 30, 30}); //2010 + numberOfDaysInNepaliMonth.put(2011, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 30, 31}); + numberOfDaysInNepaliMonth.put(2012, new Byte[]{31, 31, 31, 32, 31, 31, 29, 30, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2013, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2014, new Byte[]{31, 31, 32, 32, 31, 30, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2015, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 30, 31}); //2015 + numberOfDaysInNepaliMonth.put(2016, new Byte[]{31, 31, 31, 32, 31, 31, 29, 30, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2017, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2018, new Byte[]{31, 32, 31, 32, 31, 30, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2019, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 30, + 29, 31}); + numberOfDaysInNepaliMonth.put(2020, new Byte[]{31, 31, 31, 32, 31, 31, 30, 29, 30, 29, + 30, 30}); //2020 + numberOfDaysInNepaliMonth.put(2021, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2022, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2023, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 30, + 29, 31}); + numberOfDaysInNepaliMonth.put(2024, new Byte[]{31, 31, 31, 32, 31, 31, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2025, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30});// 2025 + numberOfDaysInNepaliMonth.put(2026, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 30, 31}); + numberOfDaysInNepaliMonth.put(2027, new Byte[]{30, 32, 31, 32, 31, 30, 30, 30, 29, 30, + 29, 31}); + numberOfDaysInNepaliMonth.put(2028, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2029, new Byte[]{31, 31, 32, 31, 32, 30, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2030, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 30, 31}); //2030 + numberOfDaysInNepaliMonth.put(2031, new Byte[]{30, 32, 31, 32, 31, 30, 30, 30, 29, 30, + 29, 31}); + numberOfDaysInNepaliMonth.put(2032, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2033, new Byte[]{31, 31, 32, 32, 31, 30, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2034, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 30, 31}); + numberOfDaysInNepaliMonth.put(2035, new Byte[]{30, 32, 31, 32, 31, 31, 29, 30, 30, 29, + 29, 31}); //2035 + numberOfDaysInNepaliMonth.put(2036, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30});// 2036 + numberOfDaysInNepaliMonth.put(2037, new Byte[]{31, 31, 32, 32, 31, 30, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2038, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 30, 31}); + numberOfDaysInNepaliMonth.put(2039, new Byte[]{31, 31, 31, 32, 31, 31, 29, 30, 30, 29, + 30, 30});//2039 + numberOfDaysInNepaliMonth.put(2040, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2041, new Byte[]{31, 31, 32, 32, 31, 30, 30, 29, 30, 29, + 30, 30}); // 2041 + numberOfDaysInNepaliMonth.put(2042, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 30, 31}); + numberOfDaysInNepaliMonth.put(2043, new Byte[]{31, 31, 31, 32, 31, 31, 29, 30, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2044, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2045, new Byte[]{31, 32, 31, 32, 31, 30, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2046, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 30, 31}); + numberOfDaysInNepaliMonth.put(2047, new Byte[]{31, 31, 31, 32, 31, 31, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2048, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30});// 2048 + numberOfDaysInNepaliMonth.put(2049, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2050, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 30, + 29, 31}); + numberOfDaysInNepaliMonth.put(2051, new Byte[]{31, 31, 31, 32, 31, 31, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2052, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30});// 2052 + numberOfDaysInNepaliMonth.put(2053, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 30, 30}); //2053 + numberOfDaysInNepaliMonth.put(2054, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 30, + 29, 31}); + numberOfDaysInNepaliMonth.put(2055, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2056, new Byte[]{31, 31, 32, 31, 32, 30, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2057, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 30, 31}); + numberOfDaysInNepaliMonth.put(2058, new Byte[]{30, 32, 31, 32, 31, 30, 30, 30, 29, 30, + 29, 31}); + numberOfDaysInNepaliMonth.put(2059, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2060, new Byte[]{31, 31, 32, 32, 31, 30, 30, 29, 30, 29, + 30, 30});// 2060 + numberOfDaysInNepaliMonth.put(2061, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 30, 31}); + numberOfDaysInNepaliMonth.put(2062, new Byte[]{30, 32, 31, 32, 31, 31, 29, 30, 29, 30, + 29, 31}); + numberOfDaysInNepaliMonth.put(2063, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2064, new Byte[]{31, 31, 32, 32, 31, 30, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2065, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 30, 31}); + numberOfDaysInNepaliMonth.put(2066, new Byte[]{31, 31, 31, 32, 31, 31, 29, 30, 30, 29, + 29, 31}); + numberOfDaysInNepaliMonth.put(2067, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2068, new Byte[]{31, 31, 32, 32, 31, 30, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2069, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 30, 31}); + numberOfDaysInNepaliMonth.put(2070, new Byte[]{31, 31, 31, 32, 31, 31, 29, 30, 30, 29, + 30, 30});// 2070 + numberOfDaysInNepaliMonth.put(2071, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2072, new Byte[]{31, 32, 31, 32, 31, 30, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2073, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 30, 31}); + numberOfDaysInNepaliMonth.put(2074, new Byte[]{31, 31, 31, 32, 31, 31, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2075, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2076, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2077, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 30, + 29, 31}); + numberOfDaysInNepaliMonth.put(2078, new Byte[]{31, 31, 31, 32, 31, 31, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2079, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 29, + 30, 30}); + numberOfDaysInNepaliMonth.put(2080, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 29, + 30, 30});// 2080 + numberOfDaysInNepaliMonth.put(2081, new Byte[]{31, 31, 32, 32, 31, 30, 30, 30, 29, 30, + 30, 30});// 2081 + numberOfDaysInNepaliMonth.put(2082, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 30, + 30, 30});// 2082 + numberOfDaysInNepaliMonth.put(2083, new Byte[]{31, 31, 32, 31, 31, 30, 30, 30, 29, 30, + 30, 30});// 2083 + numberOfDaysInNepaliMonth.put(2084, new Byte[]{31, 31, 32, 31, 31, 30, 30, 30, 29, 30, + 30, 30});// 2084 + numberOfDaysInNepaliMonth.put(2085, new Byte[]{31, 32, 31, 32, 31, 31, 30, 30, 29, 30, + 30, 30});// 2085 + numberOfDaysInNepaliMonth.put(2086, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 30, + 30, 30});// 2086 + numberOfDaysInNepaliMonth.put(2087, new Byte[]{31, 31, 32, 31, 31, 31, 30, 30, 29, 30, + 30, 30});// 2087 + numberOfDaysInNepaliMonth.put(2088, new Byte[]{30, 31, 32, 32, 30, 31, 30, 30, 29, 30, + 30, 30});// 2088 + numberOfDaysInNepaliMonth.put(2089, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 30, + 30, 30});// 2089 + numberOfDaysInNepaliMonth.put(2090, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 30, + 30, 30});// 2090 + numberOfDaysInNepaliMonth.put(2091, new Byte[]{31, 31, 32, 31, 31, 31, 30, 30, 29, 30, + 30, 30});// 2091 + numberOfDaysInNepaliMonth.put(2092, new Byte[]{31, 31, 32, 32, 31, 30, 30, 30, 29, 30, + 30, 30});// 2092 + numberOfDaysInNepaliMonth.put(2093, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 30, + 30, 30});// 2093 + numberOfDaysInNepaliMonth.put(2094, new Byte[]{31, 31, 32, 31, 31, 30, 30, 30, 29, 30, + 30, 30});// 2094 + numberOfDaysInNepaliMonth.put(2095, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 30, 30, + 30, 30});// 2095 + numberOfDaysInNepaliMonth.put(2096, new Byte[]{30, 31, 32, 32, 31, 30, 30, 29, 30, 29, + 30, 30});// 2096 + numberOfDaysInNepaliMonth.put(2097, new Byte[]{31, 32, 31, 32, 31, 30, 30, 30, 29, 30, + 30, 30});// 2097 + numberOfDaysInNepaliMonth.put(2098, new Byte[]{31, 31, 32, 31, 31, 31, 29, 30, 29, 30, + 30, 31});// 2098 + numberOfDaysInNepaliMonth.put(2099, new Byte[]{31, 31, 32, 31, 31, 31, 30, 29, 29, 30, + 30, 30});// 2099 + numberOfDaysInNepaliMonth.put(2100, new Byte[]{31, 32, 31, 32, 30, 31, 30, 29, 30, 29, + 30, 30});// 2100 + } + +} \ No newline at end of file diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/MultiSelectListUtils.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/MultiSelectListUtils.java index d21b15bb4..215cf6ad9 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/MultiSelectListUtils.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/MultiSelectListUtils.java @@ -1,6 +1,6 @@ package com.vijay.jsonwizard.utils; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.domain.MultiSelectItem; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/NativeFormsProperties.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/NativeFormsProperties.java index 84b0a74df..feb211085 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/NativeFormsProperties.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/NativeFormsProperties.java @@ -22,6 +22,8 @@ public Boolean isTrue(String key) { public final static class KEY { //Widgets public static final String WIDGET_DATEPICKER_IS_NUMERIC = "widget.datepicker.is.numeric"; + public static final String WIDGET_DATEPICKER_IS_NEPAL = "widget.datepicker.is.nepal"; + } } diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/PermissionUtils.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/PermissionUtils.java index 632b7627a..f504e8b89 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/PermissionUtils.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/PermissionUtils.java @@ -2,9 +2,9 @@ import android.app.Activity; import android.content.pm.PackageManager; -import android.support.v4.app.ActivityCompat; -import android.support.v4.app.Fragment; -import android.support.v4.content.ContextCompat; +import androidx.core.app.ActivityCompat; +import androidx.fragment.app.Fragment; +import androidx.core.content.ContextCompat; import java.util.ArrayList; import java.util.HashMap; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/PropertyManager.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/PropertyManager.java index 3ffc94311..e4cd016fb 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/PropertyManager.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/PropertyManager.java @@ -23,7 +23,7 @@ import android.net.wifi.WifiManager; import android.os.Build; import android.provider.Settings; -import android.support.v4.app.ActivityCompat; +import androidx.core.app.ActivityCompat; import android.telephony.TelephonyManager; import com.vijay.jsonwizard.interfaces.JsonApi; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/Utils.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/Utils.java index 8980dc9f5..090a3b4cf 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/Utils.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/Utils.java @@ -9,10 +9,11 @@ import android.content.DialogInterface; import android.content.res.AssetManager; import android.os.Looper; -import android.support.annotation.NonNull; -import android.support.annotation.StringRes; -import android.support.design.widget.Snackbar; -import android.support.v4.util.TimeUtils; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import com.google.android.material.snackbar.Snackbar; +import androidx.core.util.TimeUtils; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; @@ -37,8 +38,7 @@ import org.apache.commons.lang3.StringUtils; import org.greenrobot.eventbus.EventBus; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; + import org.joda.time.LocalDate; import org.json.JSONArray; import org.json.JSONException; @@ -584,13 +584,13 @@ public void setExpansionPanelDetails(String type, String toolbarHeader, String c } /** - * Gets the {@link android.support.v4.app.FragmentTransaction} from the {@link Context} and removes any {@link android.support.v4.app.Fragment} with the tag `GenericPopup` from the transaction. - * Then nullifies the stack by calling {@link android.support.v4.app.FragmentTransaction#addToBackStack(String)} with a null value. + * Gets the {@link androidx.fragment.app.FragmentTransaction} from the {@link Context} and removes any {@link androidx.fragment.app.Fragment} with the tag `GenericPopup` from the transaction. + * Then nullifies the stack by calling {@link androidx.fragment.app.FragmentTransaction#addToBackStack(String)} with a null value. * * @param context {@link Activity} The activity context where this transaction called from - * @return fragmentTransaction {@link android.support.v4.app.FragmentTransaction} + * @return fragmentTransaction {@link androidx.fragment.app.FragmentTransaction} */ - @NotNull + @NonNull public FragmentTransaction getFragmentTransaction(Activity context) { FragmentTransaction fragmentTransaction = context.getFragmentManager().beginTransaction(); Fragment fragment = context.getFragmentManager().findFragmentByTag("GenericPopup"); @@ -929,7 +929,7 @@ public static boolean isEmptyJsonObject(JSONObject jsonObject) { * @throws JSONException */ @Nullable - public static JSONObject getRepeatingGroupCountObj(@NotNull WidgetArgs widgetArgs) throws JSONException { + public static JSONObject getRepeatingGroupCountObj(@NonNull WidgetArgs widgetArgs) throws JSONException { String repeatingGroupCountObjKey = widgetArgs.getJsonObject().get(KEY) + "_count"; JSONObject stepJsonObject = widgetArgs.getFormFragment().getStep(widgetArgs.getStepName()); if (stepJsonObject == null) { diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/barcode/JsonFormCameraSourcePreview.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/barcode/JsonFormCameraSourcePreview.java index a3642a077..9e87a408c 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/barcode/JsonFormCameraSourcePreview.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/utils/barcode/JsonFormCameraSourcePreview.java @@ -18,7 +18,7 @@ import android.Manifest; import android.content.Context; -import android.support.annotation.RequiresPermission; +import androidx.annotation.RequiresPermission; import android.util.AttributeSet; import android.util.Log; import android.view.SurfaceHolder; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/validators/edittext/CumulativeTotalValidator.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/validators/edittext/CumulativeTotalValidator.java index f0a8cee75..51e0949b2 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/validators/edittext/CumulativeTotalValidator.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/validators/edittext/CumulativeTotalValidator.java @@ -1,7 +1,7 @@ package com.vijay.jsonwizard.validators.edittext; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.text.TextUtils; import android.util.Log; import android.view.View; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/validators/edittext/MaxNumericValidator.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/validators/edittext/MaxNumericValidator.java index 44113140a..4575a5764 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/validators/edittext/MaxNumericValidator.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/validators/edittext/MaxNumericValidator.java @@ -1,6 +1,6 @@ package com.vijay.jsonwizard.validators.edittext; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.rengwuxian.materialedittext.validation.METValidator; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/validators/edittext/MinNumericValidator.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/validators/edittext/MinNumericValidator.java index db6f9a8b5..c1279a6e7 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/validators/edittext/MinNumericValidator.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/validators/edittext/MinNumericValidator.java @@ -1,6 +1,6 @@ package com.vijay.jsonwizard.validators.edittext; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.rengwuxian.materialedittext.validation.METValidator; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/validators/edittext/ReferenceValidator.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/validators/edittext/ReferenceValidator.java index 490a2620f..624a5e9b1 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/validators/edittext/ReferenceValidator.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/validators/edittext/ReferenceValidator.java @@ -1,6 +1,6 @@ package com.vijay.jsonwizard.validators.edittext; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.rengwuxian.materialedittext.MaterialEditText; import com.rengwuxian.materialedittext.validation.METValidator; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/validators/edittext/RelativeNumericValidator.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/validators/edittext/RelativeNumericValidator.java index e243acf54..c6d15d597 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/validators/edittext/RelativeNumericValidator.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/validators/edittext/RelativeNumericValidator.java @@ -1,6 +1,6 @@ package com.vijay.jsonwizard.validators.edittext; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import com.rengwuxian.materialedittext.validation.METValidator; import com.vijay.jsonwizard.constants.JsonFormConstants; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/views/CustomTextView.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/views/CustomTextView.java index 98fc4923c..90761d754 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/views/CustomTextView.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/views/CustomTextView.java @@ -2,8 +2,8 @@ import android.content.Context; import android.content.res.ColorStateList; -import android.support.annotation.ColorInt; -import android.support.v7.widget.AppCompatTextView; +import androidx.annotation.ColorInt; +import androidx.appcompat.widget.AppCompatTextView; import android.text.SpannableString; import android.text.style.ForegroundColorSpan; import android.util.AttributeSet; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/views/JsonFormFragmentView.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/views/JsonFormFragmentView.java index c88115f20..5bb4a1ffc 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/views/JsonFormFragmentView.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/views/JsonFormFragmentView.java @@ -4,8 +4,8 @@ import android.content.Intent; import android.graphics.Bitmap; import android.os.Bundle; -import android.support.v7.app.ActionBar; -import android.support.v7.widget.Toolbar; +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.widget.Toolbar; import android.view.View; import android.widget.CompoundButton; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/BasicRDTCaptureFactory.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/BasicRDTCaptureFactory.java index 50e6e0f7b..7bf0a7c65 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/BasicRDTCaptureFactory.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/BasicRDTCaptureFactory.java @@ -5,7 +5,7 @@ import android.content.Intent; import android.content.pm.PackageManager; import android.os.AsyncTask; -import android.support.v4.content.ContextCompat; +import androidx.core.content.ContextCompat; import android.util.Log; import com.vijay.jsonwizard.R; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/CheckBoxFactory.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/CheckBoxFactory.java index 30479a911..aadfccdd6 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/CheckBoxFactory.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/CheckBoxFactory.java @@ -3,8 +3,8 @@ import android.app.Activity; import android.content.Context; import android.graphics.Color; -import android.support.annotation.NonNull; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.NonNull; +import androidx.annotation.VisibleForTesting; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/CountDownTimerFactory.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/CountDownTimerFactory.java index 3ff47e33e..7d47480db 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/CountDownTimerFactory.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/CountDownTimerFactory.java @@ -7,7 +7,7 @@ import android.net.Uri; import android.os.CountDownTimer; import android.provider.Settings; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.VisibleForTesting; import android.view.LayoutInflater; import android.view.View; import android.widget.TextView; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/DatePickerFactory.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/DatePickerFactory.java index 5ca71b6e7..0a7be3f76 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/DatePickerFactory.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/DatePickerFactory.java @@ -6,8 +6,11 @@ import android.content.Context; import android.os.Build; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.NonNull; +import androidx.annotation.VisibleForTesting; +import androidx.appcompat.app.AppCompatActivity; + +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.DatePicker; @@ -15,6 +18,7 @@ import android.widget.RelativeLayout; import android.widget.TextView; +import com.hornet.dateconverter.Model; import com.rengwuxian.materialedittext.MaterialEditText; import com.rey.material.util.ViewUtil; import com.vijay.jsonwizard.R; @@ -26,6 +30,7 @@ import com.vijay.jsonwizard.interfaces.CommonListener; import com.vijay.jsonwizard.interfaces.FormWidgetFactory; import com.vijay.jsonwizard.interfaces.JsonApi; +import com.vijay.jsonwizard.utils.DateConverter; import com.vijay.jsonwizard.utils.DateUtil; import com.vijay.jsonwizard.utils.FormUtils; import com.vijay.jsonwizard.utils.NativeFormLangUtils; @@ -34,14 +39,17 @@ import com.vijay.jsonwizard.validators.edittext.RequiredValidator; import org.apache.commons.lang3.StringUtils; -import org.jetbrains.annotations.NotNull; + import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; +import java.text.DateFormat; +import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; +import java.util.Date; import java.util.HashSet; import java.util.List; import java.util.Locale; @@ -58,73 +66,182 @@ public class DatePickerFactory implements FormWidgetFactory { public static final String DATE_FORMAT_REGEX = "(^(((0[1-9]|1[0-9]|2[0-8])[-](0[1-9]|1[012]))|((29|30|31)[-](0[13578]|1[02]))|((29|30)[-](0[4,6,9]|11)))[-](19|[2-9][0-9])\\d\\d$)|(^29[-]02[-](19|[2-9][0-9])(00|04|08|12|16|20|24|28|32|36|40|44|48|52|56|60|64|68|72|76|80|84|88|92|96)$)|\\s*"; public static final SimpleDateFormat DATE_FORMAT_LOCALE_INDEPENDENT = new SimpleDateFormat("dd-MM-yyyy", Locale.ENGLISH); private static final String TAG = "DatePickerFactory"; - private FormUtils formUtils = new FormUtils(); + private final FormUtils formUtils = new FormUtils(); + @VisibleForTesting - protected void showDatePickerDialog(Activity context, DatePickerDialog datePickerDialog, MaterialEditText editText) { + protected void showDatePickerDialog(final AppCompatActivity context, DatePickerDialog datePickerDialog, final MaterialEditText editText, final TextView duration) { + NativeFormsProperties nativeFormsProperties = JsonFormFragment.getNativeFormProperties(); + + if(!nativeFormsProperties.isTrue(NativeFormsProperties.KEY.WIDGET_DATEPICKER_IS_NEPAL)) { + FragmentTransaction ft = context.getFragmentManager().beginTransaction(); + Fragment prev = context.getFragmentManager().findFragmentByTag(TAG); + + if (!(prev != null && prev.isAdded())) { + + datePickerDialog.show(ft, TAG); + + //Fragments are committed asynchronously, force commit + context.getFragmentManager().executePendingTransactions(); + + String text = editText.getText().toString(); + Calendar date = FormUtils.getDate(StringUtils.isNoneBlank(Form.getDatePickerDisplayFormat()) ? + Utils.formatDateToPattern(text, Form.getDatePickerDisplayFormat(), DATE_FORMAT.toPattern()) + : text); + if (text.isEmpty()) { + Object defaultValue = datePickerDialog.getArguments().get(JsonFormConstants.DEFAULT); + if (defaultValue != null) + datePickerDialog.setDate(FormUtils.getDate(defaultValue.toString()).getTime()); + else + datePickerDialog.setDate(date.getTime()); + } else { + datePickerDialog.setDate(date.getTime()); + } + } + } + else + { + long minDate = datePickerDialog.getMinDate(); + long maxDate = datePickerDialog.getMaxDate(); + String date = editText.getText().toString(); + Model model = new Model(); + com.hornet.dateconverter.DatePicker.DatePickerDialog dpd; + com.hornet.dateconverter.DatePicker.DatePickerDialog.OnDateSetListener datePickerCallback = new com.hornet.dateconverter.DatePicker.DatePickerDialog.OnDateSetListener() { + @Override + public void onDateSet(com.hornet.dateconverter.DatePicker.DatePickerDialog view, int year, int monthOfYear, int dayOfMonth) { + String BSDate; + String yearString = ""+year; + String monthString = monthOfYear <=9 ? "0"+monthOfYear : ""+monthOfYear; + String dayString = dayOfMonth <= 9 ? "0"+dayOfMonth : ""+dayOfMonth; + + BSDate = yearString+"-"+monthString+"-"+dayString; + updateDateText(context,editText,duration,BSDate); + } + }; + if(StringUtils.isNotBlank(date)) + { + String[] dateString = StringUtils.split(date, "-"); + model.setDay(Integer.parseInt(dateString[2])); + model.setMonth(Integer.parseInt(dateString[1])); + model.setYear(Integer.parseInt(dateString[0])); + dpd = com.hornet.dateconverter.DatePicker.DatePickerDialog.newInstance(datePickerCallback,model); - FragmentTransaction ft = context.getFragmentManager().beginTransaction(); - Fragment prev = context.getFragmentManager().findFragmentByTag(TAG); + } + else + dpd = com.hornet.dateconverter.DatePicker.DatePickerDialog.newInstance(datePickerCallback); + + DateConverter dateConverter = new DateConverter(); + try { + if (minDate != -1) { + Date minRangeAD = new Date(minDate); + String minRangeADString = Utils.getStringFromDate(minRangeAD); + String bsMinRange = dateConverter.convertAdToBs(minRangeADString); + String[] bsDateMin = bsMinRange.split("-"); + Model minModel = new Model(); + minModel.setYear(Integer.parseInt(bsDateMin[0])); + minModel.setMonth(Integer.parseInt(bsDateMin[1])-1); + minModel.setDay(Integer.parseInt(bsDateMin[2])); + dpd.setMinDate(minModel); + Log.d("min date", bsMinRange); + Log.d("min date AD",minRangeADString); - if (!(prev != null && prev.isAdded())) { - datePickerDialog.show(ft, TAG); + } + if (maxDate != -1) { + Date maxRangeAD = new Date(maxDate); + String maxRangeADString = Utils.getStringFromDate(maxRangeAD); + String bsMaxRange = dateConverter.convertAdToBs(maxRangeADString); - //Fragments are committed asynchronously, force commit - context.getFragmentManager().executePendingTransactions(); - String text = editText.getText().toString(); - Calendar date = FormUtils.getDate(StringUtils.isNoneBlank(Form.getDatePickerDisplayFormat()) ? - Utils.formatDateToPattern(text, Form.getDatePickerDisplayFormat(), DATE_FORMAT.toPattern()) - : text); - if (text.isEmpty()) { - Object defaultValue = datePickerDialog.getArguments().get(JsonFormConstants.DEFAULT); - if (defaultValue != null) - datePickerDialog.setDate(FormUtils.getDate(defaultValue.toString()).getTime()); - else - datePickerDialog.setDate(date.getTime()); - } else { - datePickerDialog.setDate(date.getTime()); + String[] bsDateMax = bsMaxRange.split("-"); + Model maxModel = new Model(); + maxModel.setYear(Integer.parseInt(bsDateMax[0])); + maxModel.setMonth(Integer.parseInt(bsDateMax[1])-1); + maxModel.setDay(Integer.parseInt(bsDateMax[2])); + dpd.setMaxDate(maxModel); + + Log.d("max date", bsMaxRange); + Log.d("max date AD",maxRangeADString); + } + } + catch (Exception e) + { + e.printStackTrace(); } + + dpd.show(context.getSupportFragmentManager(),"ssdsd"); } } - private void updateDateText(Context context, final MaterialEditText editText, final TextView duration, final String date) { + NativeFormsProperties nativeFormsProperties = JsonFormFragment.getNativeFormProperties(); + final boolean bikramSambatEnabled = nativeFormsProperties.isTrue(NativeFormsProperties.KEY.WIDGET_DATEPICKER_IS_NEPAL); + ((JsonApi) context).getAppExecutors().mainThread().execute(new Runnable() { @Override public void run() { + + if(bikramSambatEnabled) + { + if(!date.isEmpty()) + { + + editText.setText(date); + } + } + else editText.setText(StringUtils.isNoneBlank(Form.getDatePickerDisplayFormat()) ? Utils.formatDateToPattern(date, DATE_FORMAT.toPattern(), Form.getDatePickerDisplayFormat()) : date); } }); - String durationLabel = (String) duration.getTag(R.id.label); - if (StringUtils.isNotBlank(durationLabel)) { - Locale locale = getSetLanguage(context); - String durationText = getDurationText(context, date, locale); - if (StringUtils.isNotBlank(durationText)) { - durationText = String.format("(%s: %s)", durationLabel, durationText); + String durationString = date; + + if(bikramSambatEnabled) { + try { + DateConverter dateConverter = new DateConverter(); + String[] dateString = StringUtils.split(date, "-"); + String day = dateString[2]; + int month = Integer.parseInt(dateString[1])+1; + String monthString = month <=9 ? "0"+month : ""+month; + String year = dateString[0]; + Date BSDate = dateConverter.convertBsToAd(day + monthString + year); + String ADDate = Utils.getStringFromDate(BSDate); + durationString = ADDate; + } catch (Exception e) { + e.printStackTrace(); } - final String finalDurationText = durationText; - ((JsonApi) context).getAppExecutors().mainThread().execute(new Runnable() { - @Override - public void run() { - duration.setText(finalDurationText); + } + + if(duration!= null) { + String durationLabel = (String) duration.getTag(R.id.label); + if (StringUtils.isNotBlank(durationLabel)) { + Locale locale = getSetLanguage(context); + String durationText = getDurationText(context, durationString, locale); + if (StringUtils.isNotBlank(durationText)) { + durationText = String.format("(%s: %s)", durationLabel, durationText); } - }); + final String finalDurationText = durationText; + ((JsonApi) context).getAppExecutors().mainThread().execute(new Runnable() { + @Override + public void run() { + duration.setText(finalDurationText); + } + }); + } } + } - @NotNull + @NonNull @VisibleForTesting protected String getDurationText(Context context, String date, Locale locale) { return DateUtil.getDuration(DateUtil.getDurationTimeDifference(date, null), locale.getLanguage().equals("ar") ? Locale.ENGLISH : locale, context); } - @NotNull + @NonNull @VisibleForTesting protected Locale getSetLanguage(Context context) { return new Locale(NativeFormLangUtils.getLanguage(context)); @@ -234,7 +351,7 @@ protected void attachLayout(String stepName, final Context context, JsonFormFrag editText.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - showDatePickerDialog((Activity) context, datePickerDialog, editText); + showDatePickerDialog((AppCompatActivity) context, datePickerDialog, editText,duration); } }); @@ -271,7 +388,7 @@ private GenericTextWatcher getGenericTextWatcher(String stepName, final Activity public void onFocusChange(View v, boolean hasFocus) { if (hasFocus) { datePickerDialog.setArguments(new Bundle()); - showDatePickerDialog(context, datePickerDialog, editText); + showDatePickerDialog((AppCompatActivity) context, datePickerDialog, editText,null); } } }); @@ -342,7 +459,6 @@ private void updateEditText(MaterialEditText editText, JSONObject jsonObject, St } } - @VisibleForTesting protected Locale getCurrentLocale(Context context) { return context.getResources().getConfiguration().locale.getLanguage().equals("ar") ? Locale.ENGLISH : context.getResources().getConfiguration().locale;//Arabic should render normal numbers/numeric digits @@ -359,6 +475,7 @@ protected DatePickerDialog createDateDialog(final Context context, final TextVie datePickerDialog.setOnDateSetListener(new android.app.DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { + boolean isBSDate = true; Calendar calendarDate = Calendar.getInstance(); calendarDate.set(Calendar.DAY_OF_MONTH, dayOfMonth); calendarDate.set(Calendar.MONTH, monthOfYear); @@ -366,15 +483,46 @@ public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth editText.setTag(R.id.locale_independent_value, DATE_FORMAT_LOCALE_INDEPENDENT.format(calendarDate.getTime())); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB - && calendarDate.getTimeInMillis() >= view.getMinDate() - && calendarDate.getTimeInMillis() <= view.getMaxDate()) { - updateDateText(context, editText, duration, - DATE_FORMAT.format(calendarDate.getTime())); - } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { - updateDateText(context, editText, duration, ""); - } + +// if(isBSDate) +// { +// DateConverter dateConverter = new DateConverter(); +// int month = monthOfYear+1; +// String BSDay = dayOfMonth+""; +// String BSMonth = monthOfYear+""; +// +// try { +// if(dayOfMonth<=9) +// { +// BSDay = "0"+BSDay; +// } +// if(month <= 9) +// { +// BSMonth = "0"+month; +// } +// +// String date = dateConverter.convertAdToBs(BSDay+"-"+BSMonth+"-"+year); +// Log.d("BS date",date); +// updateDateText(context,editText,duration,date); +// } catch (ParseException e) { +// e.printStackTrace(); +// } + + // } + //else { + + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB + && calendarDate.getTimeInMillis() >= view.getMinDate() + && calendarDate.getTimeInMillis() <= view.getMaxDate()) { + updateDateText(context, editText, duration, + DATE_FORMAT.format(calendarDate.getTime())); + } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { + updateDateText(context, editText, duration, ""); + } + } + // } }); if (jsonObject.has(JsonFormConstants.MIN_DATE) && Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/ExpansionPanelFactory.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/ExpansionPanelFactory.java index 25fe83961..0f9d5fb5d 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/ExpansionPanelFactory.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/ExpansionPanelFactory.java @@ -1,7 +1,7 @@ package com.vijay.jsonwizard.widgets; import android.content.Context; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/ExtendedRadioButtonWidgetFactory.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/ExtendedRadioButtonWidgetFactory.java index 163994c7d..e7590b40c 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/ExtendedRadioButtonWidgetFactory.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/ExtendedRadioButtonWidgetFactory.java @@ -2,7 +2,7 @@ import android.content.Context; import android.graphics.Color; -import android.support.v7.widget.AppCompatRadioButton; +import androidx.appcompat.widget.AppCompatRadioButton; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/FingerPrintFactory.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/FingerPrintFactory.java index 576a8f20a..05b927732 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/FingerPrintFactory.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/FingerPrintFactory.java @@ -5,7 +5,7 @@ import android.content.res.Resources; import android.graphics.Bitmap; import android.os.Build; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.VisibleForTesting; import android.text.TextUtils; import android.util.TypedValue; import android.view.View; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/GpsFactory.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/GpsFactory.java index 837826f10..e768533f9 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/GpsFactory.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/GpsFactory.java @@ -5,9 +5,9 @@ import android.content.Context; import android.content.pm.PackageManager; import android.location.Location; -import android.support.annotation.NonNull; -import android.support.v4.app.ActivityCompat; -import android.support.v4.content.ContextCompat; +import androidx.annotation.NonNull; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; @@ -30,7 +30,7 @@ import com.vijay.jsonwizard.views.JsonFormFragmentView; import org.apache.commons.lang3.StringUtils; -import org.jetbrains.annotations.NotNull; + import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -196,7 +196,7 @@ public boolean onLongClick(View view) { }); } - @NotNull + @NonNull public GpsDialog getGpsDialog(Button recordButton, Context context, TextView latitudeTV, TextView longitudeTV, TextView altitudeTV, TextView accuracyTV) { return new GpsDialog(context, recordButton, latitudeTV, longitudeTV, altitudeTV, accuracyTV); } @@ -256,7 +256,7 @@ private static String constructString(Object[] coordinateElements) { return StringUtils.join(coordinateElements, " "); } - @NotNull + @NonNull public String getText(Context context, String latitude, int p) { return String.format(context.getResources().getString(p), latitude); } diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/ImagePickerFactory.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/ImagePickerFactory.java index 3ff951186..4701b2560 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/ImagePickerFactory.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/ImagePickerFactory.java @@ -4,7 +4,9 @@ import android.content.res.Resources; import android.graphics.Bitmap; import android.os.Build; -import android.support.annotation.VisibleForTesting; + +import androidx.annotation.NonNull; +import androidx.annotation.VisibleForTesting; import android.text.TextUtils; import android.util.TypedValue; import android.view.View; @@ -25,7 +27,7 @@ import com.vijay.jsonwizard.utils.ValidationStatus; import com.vijay.jsonwizard.views.JsonFormFragmentView; -import org.jetbrains.annotations.NotNull; + import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -132,7 +134,7 @@ private List attachJson(String stepName, Context context, JSONObject jsonO return views; } - @NotNull + @NonNull @VisibleForTesting protected Button getButton(Context context) { return new Button(context); @@ -187,7 +189,7 @@ private void createImageView(Context context, JSONArray canvasIds, JSONObject js views.add(imageView); } - @NotNull + @NonNull @VisibleForTesting protected ImageView getImageView(Context context) { return new ImageView(context); diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/ImageViewFactory.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/ImageViewFactory.java index a5a9d633c..2a2b066d2 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/ImageViewFactory.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/ImageViewFactory.java @@ -3,7 +3,7 @@ import android.content.Context; import android.graphics.Bitmap; import android.graphics.Color; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.VisibleForTesting; import android.text.Html; import android.text.TextUtils; import android.view.LayoutInflater; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/LabelFactory.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/LabelFactory.java index b2e9af367..22515a4f8 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/LabelFactory.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/LabelFactory.java @@ -3,7 +3,7 @@ import android.content.Context; import android.graphics.Color; import android.os.Build; -import android.support.constraint.ConstraintLayout; +import androidx.constraintlayout.widget.ConstraintLayout; import android.text.Html; import android.text.Spanned; import android.text.TextUtils; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/MultiSelectListFactory.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/MultiSelectListFactory.java index 2e43c2cc9..24199452c 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/MultiSelectListFactory.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/MultiSelectListFactory.java @@ -3,13 +3,13 @@ import android.app.Activity; import android.content.Context; import android.graphics.Typeface; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v7.app.AlertDialog; -import android.support.v7.widget.DividerItemDecoration; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.SearchView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AlertDialog; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import androidx.appcompat.widget.SearchView; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/NativeRadioButtonFactory.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/NativeRadioButtonFactory.java index 80cc0ceae..34c363257 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/NativeRadioButtonFactory.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/NativeRadioButtonFactory.java @@ -7,9 +7,9 @@ import android.content.Intent; import android.graphics.Color; import android.os.Build; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.constraint.ConstraintLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.constraintlayout.widget.ConstraintLayout; import android.text.TextUtils; import android.util.Log; import android.util.TypedValue; @@ -33,19 +33,21 @@ import com.vijay.jsonwizard.interfaces.CommonListener; import com.vijay.jsonwizard.interfaces.FormWidgetFactory; import com.vijay.jsonwizard.interfaces.JsonApi; +import com.vijay.jsonwizard.utils.DateConverter; import com.vijay.jsonwizard.utils.FormUtils; import com.vijay.jsonwizard.utils.ValidationStatus; import com.vijay.jsonwizard.views.CustomTextView; import com.vijay.jsonwizard.views.JsonFormFragmentView; import org.apache.commons.lang3.StringUtils; -import org.jetbrains.annotations.NotNull; + import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.Calendar; +import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -130,6 +132,28 @@ public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth calendarDate.set(Calendar.YEAR, year); if (calendarDate.getTimeInMillis() >= view.getMinDate() && calendarDate.getTimeInMillis() <= view.getMaxDate()) { + + boolean bikramSambatDate = true; + if(bikramSambatDate) + { + String date = DATE_FORMAT.format(calendarDate.getTime()); + try { + DateConverter dateConverter = new DateConverter(); + String[] dateString = StringUtils.split(date, "-"); + String day = dateString[0]; + int monthValue = Integer.parseInt(dateString[1]); + String month = monthValue <= 9 ? "0"+monthValue : ""+monthValue; + String BSyear = dateString[2]; + String BSDate = dateConverter.convertAdToBs(day + "-" + month + "-" + BSyear); + radioButton.setText(arrayString[0] + ": " + BSDate); + } + catch (Exception e) + { + e.printStackTrace(); + } + + } + else radioButton.setText(arrayString[0] + ": " + DATE_FORMAT.format(calendarDate.getTime())); customTextView.setText( createSpecifyText(context.getResources().getString(R.string.radio_button_tap_to_change))); @@ -486,7 +510,7 @@ protected View addRadioButtonOptionsElements(JSONObject jsonObject, Context cont return radioGroup; } - @NotNull + @NonNull public RadioGroup getRadioGroup(JSONObject jsonObject, Context context, String stepName, boolean popup, String openMrsEntityParent, String openMrsEntity, String openMrsEntityId, Boolean extraRelCheck, String extraRelArray) throws JSONException { RadioGroup radioGroup = new RadioGroup(context); radioGroup.setTag(R.id.key, jsonObject.getString(JsonFormConstants.KEY)); @@ -502,7 +526,7 @@ public RadioGroup getRadioGroup(JSONObject jsonObject, Context context, String s return radioGroup; } - @NotNull + @NonNull public RelativeLayout getRadioGroupLayout(JSONObject jsonObject, Context context, String stepName, boolean popup, String openMrsEntityParent, String openMrsEntity, String openMrsEntityId, JSONObject item) throws JSONException { RelativeLayout radioGroupLayout = getRadioGroupLayout(context); radioGroupLayout.setId(ViewUtil.generateViewId()); diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/NumberSelectorFactory.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/NumberSelectorFactory.java index 5bc71463c..011aad498 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/NumberSelectorFactory.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/NumberSelectorFactory.java @@ -6,7 +6,9 @@ import android.content.Intent; import android.graphics.Color; import android.graphics.drawable.GradientDrawable; -import android.support.annotation.VisibleForTesting; + +import androidx.annotation.NonNull; +import androidx.annotation.VisibleForTesting; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; @@ -26,7 +28,7 @@ import com.vijay.jsonwizard.views.CustomTextView; import com.vijay.jsonwizard.views.JsonFormFragmentView; -import org.jetbrains.annotations.NotNull; + import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -297,7 +299,7 @@ private List attachJson(String stepName, Context context, JSONObject jsonO return views; } - @NotNull + @NonNull @VisibleForTesting protected LinearLayout getRootLayout(Context context) { return new LinearLayout(context); @@ -384,7 +386,7 @@ private CustomTextView createCustomView(Context context, JSONObject jsonObject, return customTextView; } - @NotNull + @NonNull @VisibleForTesting protected CustomTextView getCustomTextView(Context context, JSONObject jsonObject, int numberOfSelectors, int item) throws JSONException { String openMrsEntityParent = jsonObject.getString(JsonFormConstants.OPENMRS_ENTITY_PARENT); diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/OptiBPWidgetFactory.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/OptiBPWidgetFactory.java index 1e4525377..84f585b7e 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/OptiBPWidgetFactory.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/OptiBPWidgetFactory.java @@ -9,7 +9,7 @@ import android.graphics.drawable.Drawable; import android.graphics.drawable.GradientDrawable; import android.graphics.drawable.ShapeDrawable; -import android.support.v4.content.ContextCompat; + import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; @@ -19,6 +19,9 @@ import android.widget.TextView; import android.widget.Toast; +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; + import com.rey.material.util.ViewUtil; import com.rey.material.widget.Button; import com.vijay.jsonwizard.R; @@ -32,7 +35,7 @@ import com.vijay.jsonwizard.utils.FormUtils; import org.apache.commons.lang3.StringUtils; -import org.jetbrains.annotations.NotNull; + import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -164,7 +167,8 @@ private void formatButtonWidget(Button button, JSONObject jsonObject) throws JSO String colorString = jsonObject.getString(JsonFormConstants.OptibpConstants.OPTIBP_KEY_BUTTON_TEXT_COLOR); button.setTextColor(Color.parseColor(colorString)); } - if(jsonObject.has(JsonFormConstants.OptibpConstants.OPTIBP_KEY_BUTTON_TEXT)) { + if(jsonObject.has(JsonFormConstants.OptibpConstants.OPTIBP_KEY_BUTTON_TEXT)) + { String buttonText = jsonObject.getString(JsonFormConstants.OptibpConstants.OPTIBP_KEY_BUTTON_TEXT); button.setText(buttonText); } @@ -322,7 +326,8 @@ public LinearLayout getRootLayout(Context context) { } @Override - public @NotNull Set getCustomTranslatableWidgetFields() { + public @NonNull + Set getCustomTranslatableWidgetFields() { Set customTranslatableWidgetFields = new HashSet<>(); customTranslatableWidgetFields.add(JsonFormConstants.LABEL); return customTranslatableWidgetFields; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/RDTCaptureFactory.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/RDTCaptureFactory.java index 326f880d2..399cbcb2d 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/RDTCaptureFactory.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/RDTCaptureFactory.java @@ -1,7 +1,7 @@ package com.vijay.jsonwizard.widgets; import android.content.Context; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.VisibleForTesting; import android.view.LayoutInflater; import android.view.View; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/RadioButtonFactory.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/RadioButtonFactory.java index e84e892af..9db4e1061 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/RadioButtonFactory.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/RadioButtonFactory.java @@ -1,7 +1,7 @@ package com.vijay.jsonwizard.widgets; import android.content.Context; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.text.TextUtils; import android.view.Gravity; import android.view.LayoutInflater; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/RepeatingGroupFactory.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/RepeatingGroupFactory.java index a99bd511a..98526f013 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/RepeatingGroupFactory.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/RepeatingGroupFactory.java @@ -1,9 +1,9 @@ package com.vijay.jsonwizard.widgets; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.VisibleForTesting; import android.text.Editable; import android.text.InputType; import android.text.TextUtils; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/SpinnerFactory.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/SpinnerFactory.java index 413670eab..d9e735a52 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/SpinnerFactory.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/SpinnerFactory.java @@ -2,8 +2,8 @@ import android.content.Context; import android.graphics.Color; -import android.support.annotation.NonNull; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.NonNull; +import androidx.annotation.VisibleForTesting; import android.text.Spannable; import android.text.SpannableString; import android.text.TextUtils; @@ -26,7 +26,7 @@ import com.vijay.jsonwizard.utils.ValidationStatus; import com.vijay.jsonwizard.views.JsonFormFragmentView; -import org.jetbrains.annotations.NotNull; + import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -237,7 +237,7 @@ public Set getCustomTranslatableWidgetFields() { return customTranslatableWidgetFields; } - @NotNull + @NonNull @VisibleForTesting public MaterialSpinner getMaterialSpinner(View view) { return view.findViewById(R.id.material_spinner); diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/TimePickerFactory.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/TimePickerFactory.java index 0979c5887..13c42656f 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/TimePickerFactory.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/TimePickerFactory.java @@ -4,8 +4,8 @@ import android.app.Fragment; import android.app.FragmentTransaction; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.NonNull; +import androidx.annotation.VisibleForTesting; import android.view.LayoutInflater; import android.view.View; import android.widget.RelativeLayout; diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/ToasterNotesFactory.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/ToasterNotesFactory.java index 6acde6eeb..709947271 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/ToasterNotesFactory.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/widgets/ToasterNotesFactory.java @@ -2,8 +2,8 @@ import android.content.Context; import android.graphics.Color; -import android.support.annotation.NonNull; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.NonNull; +import androidx.annotation.VisibleForTesting; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; diff --git a/android-json-form-wizard/src/main/res/layout/multiselectlistdialog.xml b/android-json-form-wizard/src/main/res/layout/multiselectlistdialog.xml index a09c8a9d6..139aaf209 100644 --- a/android-json-form-wizard/src/main/res/layout/multiselectlistdialog.xml +++ b/android-json-form-wizard/src/main/res/layout/multiselectlistdialog.xml @@ -34,7 +34,7 @@ android:background="@drawable/multi_select_search_view_bg" android:layout_height="wrap_content" > - - diff --git a/android-json-form-wizard/src/main/res/layout/native_form_activity_json_form.xml b/android-json-form-wizard/src/main/res/layout/native_form_activity_json_form.xml index 6190053c4..dc39a7713 100644 --- a/android-json-form-wizard/src/main/res/layout/native_form_activity_json_form.xml +++ b/android-json-form-wizard/src/main/res/layout/native_form_activity_json_form.xml @@ -6,7 +6,7 @@ android:background="@color/white" android:theme="@style/NativeFormsAppTheme"> - - @@ -38,7 +38,7 @@ android:scaleType="fitXY" android:visibility="gone" /> - - \ No newline at end of file + \ No newline at end of file diff --git a/android-json-form-wizard/src/main/res/layout/native_form_dialog_date_picker.xml b/android-json-form-wizard/src/main/res/layout/native_form_dialog_date_picker.xml index 19324c009..8f3a911a3 100644 --- a/android-json-form-wizard/src/main/res/layout/native_form_dialog_date_picker.xml +++ b/android-json-form-wizard/src/main/res/layout/native_form_dialog_date_picker.xml @@ -21,6 +21,7 @@ android:layout_marginEnd="@dimen/dialog_content_margin" android:visibility="gone" /> + - - - - - - + - \ No newline at end of file + \ No newline at end of file diff --git a/android-json-form-wizard/src/main/res/layout/native_form_error_item.xml b/android-json-form-wizard/src/main/res/layout/native_form_error_item.xml index 68843c6f9..d251de244 100644 --- a/android-json-form-wizard/src/main/res/layout/native_form_error_item.xml +++ b/android-json-form-wizard/src/main/res/layout/native_form_error_item.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/android-json-form-wizard/src/main/res/layout/native_form_image_view.xml b/android-json-form-wizard/src/main/res/layout/native_form_image_view.xml index d2447135f..3ceae1b27 100644 --- a/android-json-form-wizard/src/main/res/layout/native_form_image_view.xml +++ b/android-json-form-wizard/src/main/res/layout/native_form_image_view.xml @@ -1,5 +1,5 @@ - - + diff --git a/android-json-form-wizard/src/main/res/layout/native_form_labels.xml b/android-json-form-wizard/src/main/res/layout/native_form_labels.xml index c12947f16..30fd3aff8 100644 --- a/android-json-form-wizard/src/main/res/layout/native_form_labels.xml +++ b/android-json-form-wizard/src/main/res/layout/native_form_labels.xml @@ -1,5 +1,5 @@ - - + diff --git a/android-json-form-wizard/src/main/res/layout/number_selector_dialog.xml b/android-json-form-wizard/src/main/res/layout/number_selector_dialog.xml index 6e24c8d91..934f044ac 100644 --- a/android-json-form-wizard/src/main/res/layout/number_selector_dialog.xml +++ b/android-json-form-wizard/src/main/res/layout/number_selector_dialog.xml @@ -11,7 +11,7 @@ android:clipChildren="false" android:clipToPadding="false"> - - - - + - + \ No newline at end of file diff --git a/android-json-form-wizard/src/main/res/layout/toolbar_container_form.xml b/android-json-form-wizard/src/main/res/layout/toolbar_container_form.xml index c37a7c05a..7955de2b2 100644 --- a/android-json-form-wizard/src/main/res/layout/toolbar_container_form.xml +++ b/android-json-form-wizard/src/main/res/layout/toolbar_container_form.xml @@ -1,11 +1,11 @@ - - - + - + diff --git a/android-json-form-wizard/src/main/res/layout/toolbar_generic_dialog.xml b/android-json-form-wizard/src/main/res/layout/toolbar_generic_dialog.xml index f32c6a481..4b9f09499 100644 --- a/android-json-form-wizard/src/main/res/layout/toolbar_generic_dialog.xml +++ b/android-json-form-wizard/src/main/res/layout/toolbar_generic_dialog.xml @@ -6,12 +6,12 @@ android:layout_height="wrap_content" android:orientation="horizontal"> - - - + - + \ No newline at end of file diff --git a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/activities/FormConfigurationJsonFormActivityTest.java b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/activities/FormConfigurationJsonFormActivityTest.java index 014393a3f..a1e5c5a6b 100644 --- a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/activities/FormConfigurationJsonFormActivityTest.java +++ b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/activities/FormConfigurationJsonFormActivityTest.java @@ -3,7 +3,7 @@ import android.app.Dialog; import android.os.Bundle; -import android.support.v7.app.AlertDialog; +import androidx.appcompat.app.AlertDialog; import android.view.Window; import com.vijay.jsonwizard.NativeFormLibrary; diff --git a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/activities/JsonFormActivityTest.java b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/activities/JsonFormActivityTest.java index 257c215e5..5d0b7211f 100644 --- a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/activities/JsonFormActivityTest.java +++ b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/activities/JsonFormActivityTest.java @@ -2,8 +2,8 @@ import android.content.Context; import android.content.Intent; -import android.support.v4.util.Pair; -import android.support.v7.widget.AppCompatRadioButton; +import androidx.core.util.Pair; +import androidx.appcompat.widget.AppCompatRadioButton; import android.text.Html; import android.text.Spanned; import android.view.View; diff --git a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/adapter/DynamicLabelAdapterTest.java b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/adapter/DynamicLabelAdapterTest.java index 97a4a1e23..46d97f03c 100644 --- a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/adapter/DynamicLabelAdapterTest.java +++ b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/adapter/DynamicLabelAdapterTest.java @@ -1,6 +1,6 @@ package com.vijay.jsonwizard.adapter; -import android.support.v7.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView; import android.view.View; import android.widget.LinearLayout; diff --git a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/adapter/MultiSelectListAdapterTest.java b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/adapter/MultiSelectListAdapterTest.java index a68234eec..9da1ff335 100644 --- a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/adapter/MultiSelectListAdapterTest.java +++ b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/adapter/MultiSelectListAdapterTest.java @@ -1,6 +1,6 @@ package com.vijay.jsonwizard.adapter; -import android.support.v7.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView; import android.widget.LinearLayout; import com.vijay.jsonwizard.BaseTest; diff --git a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/domain/MultiSelectListAccessoryTest.java b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/domain/MultiSelectListAccessoryTest.java index 22f897511..cb0a29d06 100644 --- a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/domain/MultiSelectListAccessoryTest.java +++ b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/domain/MultiSelectListAccessoryTest.java @@ -1,6 +1,6 @@ package com.vijay.jsonwizard.domain; -import android.support.v7.app.AlertDialog; +import androidx.appcompat.app.AlertDialog; import com.vijay.jsonwizard.adapter.MultiSelectListAdapter; import com.vijay.jsonwizard.adapter.MultiSelectListSelectedAdapter; diff --git a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/presenters/JsonFormFragmentPresenterRoboElectricTest.java b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/presenters/JsonFormFragmentPresenterRoboElectricTest.java index f60165844..c60f7ab7f 100644 --- a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/presenters/JsonFormFragmentPresenterRoboElectricTest.java +++ b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/presenters/JsonFormFragmentPresenterRoboElectricTest.java @@ -6,7 +6,7 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.support.v7.widget.AppCompatSpinner; +import androidx.appcompat.widget.AppCompatSpinner; import android.view.MenuItem; import android.view.View; import android.widget.CheckBox; diff --git a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/presenters/JsonWizardFormFragmentPresenterRoboelectricTest.java b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/presenters/JsonWizardFormFragmentPresenterRoboelectricTest.java index d6c8d9791..d56012b52 100644 --- a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/presenters/JsonWizardFormFragmentPresenterRoboelectricTest.java +++ b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/presenters/JsonWizardFormFragmentPresenterRoboelectricTest.java @@ -6,7 +6,7 @@ import android.content.pm.PackageManager; import android.net.Uri; import android.provider.MediaStore; -import android.support.v7.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatActivity; import android.view.LayoutInflater; import android.view.View; import android.widget.LinearLayout; diff --git a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/shadow/ShadowContextCompat.java b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/shadow/ShadowContextCompat.java index f5f30e0d9..363320189 100644 --- a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/shadow/ShadowContextCompat.java +++ b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/shadow/ShadowContextCompat.java @@ -1,8 +1,8 @@ package com.vijay.jsonwizard.shadow; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.v4.content.ContextCompat; +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; import org.robolectric.annotation.Implementation; import org.robolectric.annotation.Implements; diff --git a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/shadow/ShadowFileProvider.java b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/shadow/ShadowFileProvider.java index 34ecfebdd..ecb2f9ac8 100644 --- a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/shadow/ShadowFileProvider.java +++ b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/shadow/ShadowFileProvider.java @@ -2,8 +2,8 @@ import android.content.Context; import android.net.Uri; -import android.support.annotation.NonNull; -import android.support.v4.content.FileProvider; +import androidx.annotation.NonNull; +import androidx.core.content.FileProvider; import org.robolectric.annotation.Implementation; import org.robolectric.annotation.Implements; diff --git a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/shadow/ShadowIntent.java b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/shadow/ShadowIntent.java index abc5ff303..f83397262 100644 --- a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/shadow/ShadowIntent.java +++ b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/shadow/ShadowIntent.java @@ -3,7 +3,7 @@ import android.content.ComponentName; import android.content.Intent; import android.content.pm.PackageManager; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.robolectric.annotation.Implements; diff --git a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/shadow/ShadowPermissionUtils.java b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/shadow/ShadowPermissionUtils.java index 129b1082c..67831fe06 100644 --- a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/shadow/ShadowPermissionUtils.java +++ b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/shadow/ShadowPermissionUtils.java @@ -1,6 +1,6 @@ package com.vijay.jsonwizard.shadow; -import android.support.v4.app.Fragment; +import androidx.fragment.app.Fragment; import com.vijay.jsonwizard.utils.PermissionUtils; diff --git a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/widgets/CheckBoxFactoryTest.java b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/widgets/CheckBoxFactoryTest.java index 26b499d13..338bf2b0b 100644 --- a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/widgets/CheckBoxFactoryTest.java +++ b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/widgets/CheckBoxFactoryTest.java @@ -1,7 +1,7 @@ package com.vijay.jsonwizard.widgets; import android.content.res.Resources; -import android.support.constraint.ConstraintLayout; +import androidx.constraintlayout.widget.ConstraintLayout; import android.util.DisplayMetrics; import android.view.View; import android.widget.CheckBox; diff --git a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/widgets/DatePickerFactoryTest.java b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/widgets/DatePickerFactoryTest.java index e6764c038..f686b39b4 100644 --- a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/widgets/DatePickerFactoryTest.java +++ b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/widgets/DatePickerFactoryTest.java @@ -2,7 +2,7 @@ import android.app.FragmentManager; import android.content.res.Resources; -import android.support.v7.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatActivity; import android.view.View; import android.widget.RelativeLayout; import android.widget.TextView; @@ -128,7 +128,7 @@ public void testShowDatePickerDialog() throws Exception { assertEquals(1, viewList.size()); verify(formActivity).addFormDataView(viewArgumentCaptor.capture()); viewArgumentCaptor.getValue().performClick(); - verify(factory).showDatePickerDialog(eq(formActivity), datePickerDialogArgumentCaptor.capture(), any(MaterialEditText.class)); + verify(factory).showDatePickerDialog(eq(formActivity), datePickerDialogArgumentCaptor.capture(), any(MaterialEditText.class),null); verify(fragmentManager).beginTransaction(); verify(fragmentManager).executePendingTransactions(); DatePickerDialog datePickerDialog = datePickerDialogArgumentCaptor.getValue(); diff --git a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/widgets/ExtendedRadioButtonWidgetFactoryTest.java b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/widgets/ExtendedRadioButtonWidgetFactoryTest.java index bdbd25f1d..1b4d52258 100644 --- a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/widgets/ExtendedRadioButtonWidgetFactoryTest.java +++ b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/widgets/ExtendedRadioButtonWidgetFactoryTest.java @@ -1,6 +1,6 @@ package com.vijay.jsonwizard.widgets; -import android.support.constraint.ConstraintLayout; +import androidx.constraintlayout.widget.ConstraintLayout; import android.view.View; import android.widget.LinearLayout; import android.widget.RadioGroup; diff --git a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/widgets/LabelFactoryTest.java b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/widgets/LabelFactoryTest.java index e1dcc25d2..b3e49aa47 100644 --- a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/widgets/LabelFactoryTest.java +++ b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/widgets/LabelFactoryTest.java @@ -1,7 +1,7 @@ package com.vijay.jsonwizard.widgets; import android.content.res.Resources; -import android.support.constraint.ConstraintLayout; +import androidx.constraintlayout.widget.ConstraintLayout; import android.view.View; import com.vijay.jsonwizard.BaseTest; diff --git a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/widgets/MultiSelectListFactoryTest.java b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/widgets/MultiSelectListFactoryTest.java index 0cd07d9d0..13d77e416 100644 --- a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/widgets/MultiSelectListFactoryTest.java +++ b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/widgets/MultiSelectListFactoryTest.java @@ -1,6 +1,6 @@ package com.vijay.jsonwizard.widgets; -import android.support.v7.app.AlertDialog; +import androidx.appcompat.app.AlertDialog; import android.view.LayoutInflater; import android.view.View; import android.widget.RelativeLayout; diff --git a/build.gradle b/build.gradle index ac7592ee7..dba350609 100644 --- a/build.gradle +++ b/build.gradle @@ -21,6 +21,7 @@ configure(allprojects) { project -> mavenCentral() maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } maven { url 'https://plugins.gradle.org/m2/'} + maven { url "https://jitpack.io" } mavenLocal() jcenter() } diff --git a/form_tester/build.gradle b/form_tester/build.gradle index 04b343f76..208b16fc7 100644 --- a/form_tester/build.gradle +++ b/form_tester/build.gradle @@ -17,6 +17,13 @@ repositories { apply plugin: 'com.android.application' +//configurations { +// cleanedAnnotations +// compile.exclude group: 'org.jetbrains' , module:'annotations' +// compile.exclude group: 'com.intellij', module:'annotations' +// compile.exclude group: 'org.intellij', module:'annotations' +//} + android { compileSdkVersion androidCompileSdkVersion @@ -51,15 +58,15 @@ dependencies { implementation project(':android-json-form-wizard') implementation fileTree(include: ['*.jar'], dir: 'libs') testImplementation 'junit:junit:4.12' - implementation('com.android.support:design:28.0.0') { + implementation('com.google.android.material:material:1.0.0') { exclude group: 'com.android.support', module: 'recyclerview-v7' } - implementation 'com.android.support:multidex:1.0.3' + implementation 'androidx.multidex:multidex:2.0.0' implementation 'com.jakewharton.timber:timber:4.7.1' implementation 'org.greenrobot:eventbus:3.1.1' - implementation 'com.android.support:support-v4:28.0.0' - implementation 'com.android.support:recyclerview-v7:28.0.0' + implementation 'androidx.legacy:legacy-support-v4:1.0.0' + implementation 'androidx.recyclerview:recyclerview:1.0.0' implementation 'com.google.code.gson:gson:2.8.6' implementation 'org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT' } diff --git a/form_tester/src/main/AndroidManifest.xml b/form_tester/src/main/AndroidManifest.xml index 258a0444f..44f2711f6 100644 --- a/form_tester/src/main/AndroidManifest.xml +++ b/form_tester/src/main/AndroidManifest.xml @@ -39,7 +39,7 @@ diff --git a/form_tester/src/main/assets/app.properties b/form_tester/src/main/assets/app.properties index 4129df05e..2474d8f15 100644 --- a/form_tester/src/main/assets/app.properties +++ b/form_tester/src/main/assets/app.properties @@ -1 +1,2 @@ -widget.datepicker.is.numeric=true \ No newline at end of file +widget.datepicker.is.numeric=true +widget.datepicker.is.nepal = true \ No newline at end of file diff --git a/form_tester/src/main/assets/json.form/single_form.json b/form_tester/src/main/assets/json.form/single_form.json index a8f14a811..087c52c41 100644 --- a/form_tester/src/main/assets/json.form/single_form.json +++ b/form_tester/src/main/assets/json.form/single_form.json @@ -189,7 +189,7 @@ "openmrs_entity_id": "Child_Birth_Certificate", "read_only": true, "v_required": { - "value": "true", + "value": "false", "err": "Please enter child's birth certificate" }, "type": "edit_text", @@ -224,7 +224,7 @@ "label_info_title": "GA from SFH or abdominal palpation - weeks", "edit_type": "name", "v_required": { - "value": "true", + "value": "false", "err": "Please enter the last name" }, "v_regex": { @@ -244,7 +244,7 @@ "Female" ], "v_required": { - "value": "true", + "value": "false", "err": "Please enter the sex" } }, @@ -264,7 +264,7 @@ "Single" ], "v_required": { - "value": "true", + "value": "false", "err": "Please enter the sex" }, "openmrs_choice_ids": { @@ -288,7 +288,7 @@ "min_date": "today-5y", "max_date": "today", "v_required": { - "value": "true", + "value": "false", "err": "Please enter the date of birth" } }, @@ -304,7 +304,7 @@ "label": "Birth Time" }, "v_required": { - "value": true, + "value": false, "err": "Please enter the time of birth" } }, @@ -320,7 +320,7 @@ "min_date": "today-5y", "max_date": "today", "v_required": { - "value": "true", + "value": "false", "err": "Enter the date that the child was first seen at a health facility for immunization services" }, "constraints": [ @@ -340,7 +340,7 @@ "type": "edit_text", "hint": "Hb test result - haemoglobinometer\ncomplete test (g/dl)", "v_required": { - "value": "true", + "value": "false", "err": "Please enter cool text" } }, @@ -355,7 +355,7 @@ "edit_type": "name", "look_up": "true", "v_required": { - "value": "true", + "value": "false", "err": "Please enter the mother/guardian's first name" }, "v_regex": { @@ -374,7 +374,7 @@ "edit_type": "name", "look_up": "true", "v_required": { - "value": "true", + "value": "false", "err": "Please enter the mother/guardian's last name" }, "v_regex": { @@ -455,7 +455,7 @@ } ], "v_required": { - "value": "true", + "value": "false", "err": "Please answer the question" } }, @@ -505,7 +505,7 @@ "Home": "1536AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, "v_required": { - "value": true, + "value": false, "err": "Please enter the place of birth" } }, @@ -520,7 +520,7 @@ "tree": [ ], "v_required": { - "value": true, + "value": false, "err": "Please enter the birth facility name" }, "relevance": { @@ -539,7 +539,7 @@ "hint": "Other health facility", "edit_type": "name", "v_required": { - "value": true, + "value": false, "err": "Please specify the health facility the child was born in" }, "relevance": { @@ -558,7 +558,7 @@ "hint": "Home address", "edit_type": "name", "v_required": { - "value": true, + "value": false, "err": "Please enter the home address" } }, @@ -800,7 +800,7 @@ } ], "v_required": { - "value": true, + "value": false, "err": "Please specify any other symptoms or select none" } }, @@ -845,7 +845,7 @@ "text_size": "22px", "text_color": "#000000", "v_required": { - "value": true + "value": false } }, { @@ -858,7 +858,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "v_required": { - "value": true + "value": false }, "label_info_text": "Checking out the display oof the info icon needed to display this infomation", "label_info_title": "Highest Level of School" @@ -874,7 +874,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "v_required": { - "value": true + "value": false }, "label_info_text": "Checking out the display oof the info icon needed to display this infomation", "label_info_title": "Highest Level of School" @@ -973,7 +973,7 @@ ], "value": "1", "v_required": { - "value": true, + "value": false, "err": "Please select where stock was issued" } }, @@ -998,7 +998,7 @@ ], "value": "1", "v_required": { - "value": true, + "value": false, "err": "Please select where stock was issued" } }, @@ -1049,7 +1049,7 @@ } ], "v_required": { - "value": true + "value": false } }, { @@ -1084,7 +1084,7 @@ ], "value": "", "v_required": { - "value": true + "value": false } }, { @@ -1108,7 +1108,7 @@ ], "value": "", "v_required": { - "value": true + "value": false }, "relevance": { "step1:native_radio_tertiary_education": { @@ -1268,7 +1268,7 @@ ], "value": "", "v_required": { - "value": true + "value": false } }, { @@ -1295,7 +1295,7 @@ "text": "This is a bold text label that is also required.", "text_color": "#000000", "v_required": { - "value": true + "value": false } }, { @@ -1313,7 +1313,7 @@ "text": "This is the normal edit text design", "text_color": "#000000", "v_required": { - "value": true + "value": false } }, { @@ -1327,7 +1327,7 @@ "value": "1909319333", "editable": true, "v_required": { - "value": "true", + "value": "false", "err": "Please enter the last name" }, "v_regex": { @@ -1347,7 +1347,7 @@ "editable": true, "edit_text_style": "bordered", "v_required": { - "value": true, + "value": false, "err": "Please enter the guardians name" }, "v_regex": { @@ -1368,7 +1368,7 @@ "text_color": "#000000", "selected_text_color": "#ffffff", "v_required": { - "value": true + "value": false }, "value": "3" }, @@ -1393,7 +1393,7 @@ "text_color": "#000000", "selected_text_color": "#ffffff", "v_required": { - "value": true + "value": false }, "value": "13" }, @@ -1418,7 +1418,7 @@ "text_color": "#000000", "selected_text_color": "#ffffff", "v_required": { - "value": true + "value": false } }, { @@ -1453,7 +1453,7 @@ } ], "v_required": { - "value": true, + "value": false, "err": "Please select if you use any tobacco products" } }, @@ -1489,7 +1489,7 @@ "text": "This is the normal edit text design", "text_color": "#000000", "v_required": { - "value": true + "value": false } }, { diff --git a/form_tester/src/main/java/org/smartregister/nativeform_tester/FormTesterActivity.java b/form_tester/src/main/java/org/smartregister/nativeform_tester/FormTesterActivity.java index 995debe45..e9ce37303 100644 --- a/form_tester/src/main/java/org/smartregister/nativeform_tester/FormTesterActivity.java +++ b/form_tester/src/main/java/org/smartregister/nativeform_tester/FormTesterActivity.java @@ -6,14 +6,14 @@ import android.content.pm.PackageManager; import android.os.Build; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.app.ActivityCompat; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.DividerItemDecoration; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.Toolbar; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.app.ActivityCompat; +import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import androidx.appcompat.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.view.View; @@ -25,7 +25,7 @@ import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.domain.Form; -import org.jetbrains.annotations.NotNull; + import org.json.JSONObject; import org.smartregister.nativeform.R; import org.smartregister.nativeform_tester.adapter.NativeFormAdapter; @@ -222,7 +222,7 @@ public void checkOrRequestPermissions(List requiredPermissions, AndroidP @Override public void onRequestPermissionsResult(int requestCode, - @NotNull String[] permissions, @NotNull int[] grantResults) { + @NonNull String[] permissions, @NonNull int[] grantResults) { AndroidPermissionHelper.Requester requester = requesterMap.get(requestCode); if (requester != null) { diff --git a/form_tester/src/main/java/org/smartregister/nativeform_tester/MainActivity.java b/form_tester/src/main/java/org/smartregister/nativeform_tester/MainActivity.java index 6787defd7..0b3e70408 100644 --- a/form_tester/src/main/java/org/smartregister/nativeform_tester/MainActivity.java +++ b/form_tester/src/main/java/org/smartregister/nativeform_tester/MainActivity.java @@ -2,8 +2,8 @@ import android.content.Intent; import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; import android.util.Log; import android.view.Menu; import android.view.MenuItem; diff --git a/form_tester/src/main/java/org/smartregister/nativeform_tester/adapter/NativeFormAdapter.java b/form_tester/src/main/java/org/smartregister/nativeform_tester/adapter/NativeFormAdapter.java index 7fdf19b86..701f28434 100644 --- a/form_tester/src/main/java/org/smartregister/nativeform_tester/adapter/NativeFormAdapter.java +++ b/form_tester/src/main/java/org/smartregister/nativeform_tester/adapter/NativeFormAdapter.java @@ -1,7 +1,7 @@ package org.smartregister.nativeform_tester.adapter; -import android.support.annotation.NonNull; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/form_tester/src/main/java/org/smartregister/nativeform_tester/contract/FormTesterContract.java b/form_tester/src/main/java/org/smartregister/nativeform_tester/contract/FormTesterContract.java index df1137131..1aeff934f 100644 --- a/form_tester/src/main/java/org/smartregister/nativeform_tester/contract/FormTesterContract.java +++ b/form_tester/src/main/java/org/smartregister/nativeform_tester/contract/FormTesterContract.java @@ -1,9 +1,9 @@ package org.smartregister.nativeform_tester.contract; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; import com.vijay.jsonwizard.domain.Form; diff --git a/form_tester/src/main/java/org/smartregister/nativeform_tester/domain/JsonForm.java b/form_tester/src/main/java/org/smartregister/nativeform_tester/domain/JsonForm.java index d6cc8668b..4afa56c9a 100644 --- a/form_tester/src/main/java/org/smartregister/nativeform_tester/domain/JsonForm.java +++ b/form_tester/src/main/java/org/smartregister/nativeform_tester/domain/JsonForm.java @@ -1,8 +1,8 @@ package org.smartregister.nativeform_tester.domain; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.WorkerThread; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.WorkerThread; import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.domain.Form; diff --git a/form_tester/src/main/java/org/smartregister/nativeform_tester/interactor/FormTesterInteractor.java b/form_tester/src/main/java/org/smartregister/nativeform_tester/interactor/FormTesterInteractor.java index b9a57cf31..60fc6ed38 100644 --- a/form_tester/src/main/java/org/smartregister/nativeform_tester/interactor/FormTesterInteractor.java +++ b/form_tester/src/main/java/org/smartregister/nativeform_tester/interactor/FormTesterInteractor.java @@ -5,14 +5,16 @@ import android.os.Environment; import android.os.Handler; import android.os.Looper; -import android.support.annotation.Nullable; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.google.gson.Gson; import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.domain.Form; import com.vijay.jsonwizard.utils.Utils; -import org.jetbrains.annotations.NotNull; + import org.smartregister.nativeform_tester.contract.FormTesterContract; import org.smartregister.nativeform_tester.domain.ConfigForm; import org.smartregister.nativeform_tester.domain.JsonForm; @@ -129,7 +131,7 @@ public boolean verifyFormsDirectoryExists() { } @Override - public void readForms(@NotNull Context context, FormTesterContract.Presenter presenter) { + public void readForms(@NonNull Context context, FormTesterContract.Presenter presenter) { executorService.execute(() -> { String root = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).toString(); File myDir = new File(root + "/" + JsonFormConstants.DEFAULT_FORMS_DIRECTORY + "/" + JsonFormConstants.JSON_FORM_DIRECTORY + "/"); @@ -150,7 +152,7 @@ public void readForms(@NotNull Context context, FormTesterContract.Presenter pre } @Override - public void executeOnMainThread(@NotNull Runnable runnable) { + public void executeOnMainThread(@NonNull Runnable runnable) { new Handler(Looper.getMainLooper()).post(runnable); } diff --git a/form_tester/src/main/java/org/smartregister/nativeform_tester/presenter/FormTesterPresenter.java b/form_tester/src/main/java/org/smartregister/nativeform_tester/presenter/FormTesterPresenter.java index b4c16e373..8d723f49e 100644 --- a/form_tester/src/main/java/org/smartregister/nativeform_tester/presenter/FormTesterPresenter.java +++ b/form_tester/src/main/java/org/smartregister/nativeform_tester/presenter/FormTesterPresenter.java @@ -1,8 +1,8 @@ package org.smartregister.nativeform_tester.presenter; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import org.smartregister.nativeform.R; import org.smartregister.nativeform_tester.contract.AndroidPermissionHelper; diff --git a/form_tester/src/main/res/layout/activity_main.xml b/form_tester/src/main/res/layout/activity_main.xml index f8a33d058..50e053f91 100644 --- a/form_tester/src/main/res/layout/activity_main.xml +++ b/form_tester/src/main/res/layout/activity_main.xml @@ -1,5 +1,5 @@ - - - - + - + diff --git a/form_tester/src/main/res/layout/form_tester_activity.xml b/form_tester/src/main/res/layout/form_tester_activity.xml index a9d6b0271..514fba2a7 100644 --- a/form_tester/src/main/res/layout/form_tester_activity.xml +++ b/form_tester/src/main/res/layout/form_tester_activity.xml @@ -3,22 +3,22 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - - - + - Rudi Tuma Basic Form + Stay still… + SHARPNESS: %2s
BRIGHTNESS: %3s
NO SHADOW: %s]]>
+ %2s
%s
%3s]]>
Your device needs the requested permssions in order to function properly diff --git a/gradle.properties b/gradle.properties index 01f6c24f1..ac5472d25 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,4 @@ + VERSION_NAME=2.1.18-SNAPSHOT VERSION_CODE=1 GROUP=org.smartregister @@ -11,3 +12,7 @@ POM_SETTING_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt POM_SETTING_LICENCE_DIST=repo POM_SETTING_DEVELOPER_ID=opensrp POM_SETTING_DEVELOPER_NAME=OpenSRP Onadev +sonatypeUsername=opensrp +sonatypePassword=b6Ap_sWUpr+wUqa6@br_sUDrebRa=r7W +android.useAndroidX=true +android.enableJetifier=true diff --git a/sample/build.gradle b/sample/build.gradle index 5df5cf5ac..138f6e0f5 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -51,10 +51,10 @@ dependencies { implementation project(':android-json-form-wizard') implementation fileTree(include: ['*.jar'], dir: 'libs') testImplementation 'junit:junit:4.12' - implementation('com.android.support:design:28.0.0') { + implementation('com.google.android.material:material:1.0.0') { exclude group: 'com.android.support', module: 'recyclerview-v7' } - implementation 'com.android.support:multidex:1.0.3' + implementation 'androidx.multidex:multidex:2.0.0' implementation 'com.jakewharton.timber:timber:4.7.1' implementation 'org.greenrobot:eventbus:3.1.1' diff --git a/sample/src/main/AndroidManifest.xml b/sample/src/main/AndroidManifest.xml index b1643b6ff..0f11c3684 100644 --- a/sample/src/main/AndroidManifest.xml +++ b/sample/src/main/AndroidManifest.xml @@ -34,7 +34,7 @@ android:windowSoftInputMode="stateAlwaysHidden|adjustResize" /> diff --git a/sample/src/main/assets/app.properties b/sample/src/main/assets/app.properties index 4129df05e..b20ba1011 100644 --- a/sample/src/main/assets/app.properties +++ b/sample/src/main/assets/app.properties @@ -1 +1,2 @@ -widget.datepicker.is.numeric=true \ No newline at end of file +widget.datepicker.is.numeric=true +widget.datepicker.is.nepal = true // same thing to ANC \ No newline at end of file diff --git a/sample/src/main/java/org/smartregister/nativeform/MainActivity.java b/sample/src/main/java/org/smartregister/nativeform/MainActivity.java index e66ce82ff..d5f3dce8c 100644 --- a/sample/src/main/java/org/smartregister/nativeform/MainActivity.java +++ b/sample/src/main/java/org/smartregister/nativeform/MainActivity.java @@ -2,8 +2,8 @@ import android.content.Intent; import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; import android.util.Log; import android.view.Menu; import android.view.MenuItem; diff --git a/sample/src/main/res/layout/activity_main.xml b/sample/src/main/res/layout/activity_main.xml index 994c66ed8..20e9c0f6d 100644 --- a/sample/src/main/res/layout/activity_main.xml +++ b/sample/src/main/res/layout/activity_main.xml @@ -1,5 +1,5 @@ - - - - + - +