Преглед на файлове

Convert to kt

Signed-off-by: alperozturk <alper_ozturk@proton.me>
alperozturk преди 1 година
родител
ревизия
da9646aec3
променени са 1 файла, в които са добавени 95 реда и са изтрити 109 реда
  1. 95 109
      app/src/main/java/com/owncloud/android/ui/dialog/ExpirationDatePickerDialogFragment.kt

+ 95 - 109
app/src/main/java/com/owncloud/android/ui/dialog/ExpirationDatePickerDialogFragment.kt

@@ -20,85 +20,57 @@
  *   You should have received a copy of the GNU General Public License
  *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-
-package com.owncloud.android.ui.dialog;
-
-
-import android.app.DatePickerDialog;
-import android.app.Dialog;
-import android.os.Bundle;
-import android.text.format.DateUtils;
-import android.widget.DatePicker;
-
-import com.google.android.material.button.MaterialButton;
-import com.nextcloud.client.di.Injectable;
-import com.owncloud.android.R;
-import com.owncloud.android.utils.theme.ViewThemeUtils;
-
-import java.util.Calendar;
-
-import javax.inject.Inject;
-
-import androidx.annotation.NonNull;
-import androidx.fragment.app.DialogFragment;
+package com.owncloud.android.ui.dialog
+
+import android.app.DatePickerDialog
+import android.app.DatePickerDialog.OnDateSetListener
+import android.app.Dialog
+import android.content.DialogInterface
+import android.os.Bundle
+import android.text.format.DateUtils
+import android.widget.DatePicker
+import androidx.fragment.app.DialogFragment
+import com.google.android.material.button.MaterialButton
+import com.nextcloud.client.di.Injectable
+import com.owncloud.android.R
+import com.owncloud.android.utils.theme.ViewThemeUtils
+import java.util.Calendar
+import javax.inject.Inject
 
 /**
  * Dialog requesting a date after today.
  */
-public class ExpirationDatePickerDialogFragment
-    extends DialogFragment
-    implements DatePickerDialog.OnDateSetListener, Injectable {
+class ExpirationDatePickerDialogFragment : DialogFragment(), OnDateSetListener, Injectable {
 
-    /** Tag for FragmentsManager */
-    public static final String DATE_PICKER_DIALOG = "DATE_PICKER_DIALOG";
+    @JvmField
+    @Inject
+    var viewThemeUtils: ViewThemeUtils? = null
 
-    /** Parameter constant for date chosen initially */
-    private static final String ARG_CHOSEN_DATE_IN_MILLIS = "CHOSEN_DATE_IN_MILLIS";
+    private var onExpiryDateListener: OnExpiryDateListener? = null
 
-    @Inject ViewThemeUtils viewThemeUtils;
-    private OnExpiryDateListener onExpiryDateListener;
-
-    /**
-     * Factory method to create new instances
-     *
-     * @param chosenDateInMillis Date chosen when the dialog appears
-     * @return New dialog instance
-     */
-    public static ExpirationDatePickerDialogFragment newInstance(long chosenDateInMillis) {
-        Bundle arguments = new Bundle();
-        arguments.putLong(ARG_CHOSEN_DATE_IN_MILLIS, chosenDateInMillis);
-
-        ExpirationDatePickerDialogFragment dialog = new ExpirationDatePickerDialogFragment();
-        dialog.setArguments(arguments);
-        return dialog;
+    fun setOnExpiryDateListener(onExpiryDateListener: OnExpiryDateListener?) {
+        this.onExpiryDateListener = onExpiryDateListener
     }
 
-    public void setOnExpiryDateListener(OnExpiryDateListener onExpiryDateListener) {
-        this.onExpiryDateListener = onExpiryDateListener;
-    }
+    override fun onStart() {
+        super.onStart()
 
-
-    @Override
-    public void onStart() {
-        super.onStart();
-        final Dialog currentDialog = getDialog();
+        val currentDialog = dialog
 
         if (currentDialog != null) {
-            final DatePickerDialog dialog = (DatePickerDialog) currentDialog;
+            val dialog = currentDialog as DatePickerDialog
 
-            MaterialButton positiveButton = (MaterialButton) dialog.getButton(DatePickerDialog.BUTTON_POSITIVE);
+            val positiveButton = dialog.getButton(DatePickerDialog.BUTTON_POSITIVE) as MaterialButton?
             if (positiveButton != null) {
-                viewThemeUtils.material.colorMaterialButtonPrimaryTonal(positiveButton);
+                viewThemeUtils?.material?.colorMaterialButtonPrimaryTonal(positiveButton)
             }
-
-            MaterialButton negativeButton = (MaterialButton) dialog.getButton(DatePickerDialog.BUTTON_NEGATIVE);
+            val negativeButton = dialog.getButton(DatePickerDialog.BUTTON_NEGATIVE) as MaterialButton?
             if (negativeButton != null) {
-                viewThemeUtils.material.colorMaterialButtonPrimaryBorderless(negativeButton);
+                viewThemeUtils?.material?.colorMaterialButtonPrimaryBorderless(negativeButton)
             }
-
-            MaterialButton neutralButton = (MaterialButton) dialog.getButton(DatePickerDialog.BUTTON_NEUTRAL);
+            val neutralButton = dialog.getButton(DatePickerDialog.BUTTON_NEUTRAL) as MaterialButton?
             if (neutralButton != null) {
-                viewThemeUtils.material.colorMaterialButtonPrimaryBorderless(neutralButton);
+                viewThemeUtils?.material?.colorMaterialButtonPrimaryBorderless(neutralButton)
             }
         }
     }
@@ -108,59 +80,55 @@ public class ExpirationDatePickerDialogFragment
      *
      * @return A new dialog to let the user choose an expiration date that will be bound to a share link.
      */
-    @Override
-    @NonNull
-    public Dialog onCreateDialog(Bundle savedInstanceState) {
-
+    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
         // Chosen date received as an argument must be later than tomorrow ; default to tomorrow in other case
-        final Calendar chosenDate = Calendar.getInstance();
-        long tomorrowInMillis = chosenDate.getTimeInMillis() + DateUtils.DAY_IN_MILLIS;
-        long chosenDateInMillis = requireArguments().getLong(ARG_CHOSEN_DATE_IN_MILLIS);
-        chosenDate.setTimeInMillis(Math.max(chosenDateInMillis, tomorrowInMillis));
+        val chosenDate = Calendar.getInstance()
+        val tomorrowInMillis = chosenDate.timeInMillis + DateUtils.DAY_IN_MILLIS
+        val chosenDateInMillis = requireArguments().getLong(ARG_CHOSEN_DATE_IN_MILLIS)
+        chosenDate.timeInMillis = chosenDateInMillis.coerceAtLeast(tomorrowInMillis)
 
         // Create a new instance of DatePickerDialog
-        DatePickerDialog dialog = new DatePickerDialog(
+        val dialog = DatePickerDialog(
             requireActivity(),
             R.style.FallbackDatePickerDialogTheme,
             this,
-            chosenDate.get(Calendar.YEAR),
-            chosenDate.get(Calendar.MONTH),
-            chosenDate.get(Calendar.DAY_OF_MONTH)
-        );
+            chosenDate[Calendar.YEAR],
+            chosenDate[Calendar.MONTH],
+            chosenDate[Calendar.DAY_OF_MONTH]
+        )
 
-        //show unset button only when date is already selected
+        // show unset button only when date is already selected
         if (chosenDateInMillis > 0) {
             dialog.setButton(
                 Dialog.BUTTON_NEGATIVE,
-                getText(R.string.share_via_link_unset_password),
-                (dialog1, which) -> {
-                    if (onExpiryDateListener != null) {
-                        onExpiryDateListener.onDateUnSet();
-                    }
-                });
+                getText(R.string.share_via_link_unset_password)
+            ) { _: DialogInterface?, _: Int ->
+                onExpiryDateListener?.onDateUnSet()
+            }
         }
 
         // Prevent days in the past may be chosen
-        DatePicker picker = dialog.getDatePicker();
-        picker.setMinDate(tomorrowInMillis - 1000);
+        val picker = dialog.datePicker
+        picker.minDate = tomorrowInMillis - 1000
 
         // Enforce spinners view; ignored by MD-based theme in Android >=5, but calendar is REALLY buggy
         // in Android < 5, so let's be sure it never appears (in tablets both spinners and calendar are
         // shown by default)
-        picker.setCalendarViewShown(false);
-
-        return dialog;
+        @Suppress("DEPRECATION")
+        picker.calendarViewShown = false
+        return dialog
     }
 
-    public long getCurrentSelectionMillis() {
-        final Dialog dialog = getDialog();
-        if (dialog != null) {
-            final DatePickerDialog datePickerDialog = (DatePickerDialog) dialog;
-            final DatePicker picker = datePickerDialog.getDatePicker();
-            return yearMonthDayToMillis(picker.getYear(), picker.getMonth(), picker.getDayOfMonth());
+    val currentSelectionMillis: Long
+        get() {
+            val dialog = dialog
+            if (dialog != null) {
+                val datePickerDialog = dialog as DatePickerDialog
+                val picker = datePickerDialog.datePicker
+                return yearMonthDayToMillis(picker.year, picker.month, picker.dayOfMonth)
+            }
+            return 0
         }
-        return 0;
-    }
 
     /**
      * Called when the user chooses an expiration date.
@@ -170,27 +138,45 @@ public class ExpirationDatePickerDialogFragment
      * @param monthOfYear Month of the date chosen [0, 11]
      * @param dayOfMonth  Day of the date chosen
      */
-    @Override
-    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
-
-        long chosenDateInMillis = yearMonthDayToMillis(year, monthOfYear, dayOfMonth);
-
+    override fun onDateSet(view: DatePicker, year: Int, monthOfYear: Int, dayOfMonth: Int) {
+        val chosenDateInMillis = yearMonthDayToMillis(year, monthOfYear, dayOfMonth)
         if (onExpiryDateListener != null) {
-            onExpiryDateListener.onDateSet(year, monthOfYear, dayOfMonth, chosenDateInMillis);
+            onExpiryDateListener?.onDateSet(year, monthOfYear, dayOfMonth, chosenDateInMillis)
         }
     }
 
-    private long yearMonthDayToMillis(int year, int monthOfYear, int dayOfMonth) {
-        Calendar date = Calendar.getInstance();
-        date.set(Calendar.YEAR, year);
-        date.set(Calendar.MONTH, monthOfYear);
-        date.set(Calendar.DAY_OF_MONTH, dayOfMonth);
-        return date.getTimeInMillis();
+    private fun yearMonthDayToMillis(year: Int, monthOfYear: Int, dayOfMonth: Int): Long {
+        val date = Calendar.getInstance()
+        date[Calendar.YEAR] = year
+        date[Calendar.MONTH] = monthOfYear
+        date[Calendar.DAY_OF_MONTH] = dayOfMonth
+        return date.timeInMillis
     }
 
-    public interface OnExpiryDateListener {
-        void onDateSet(int year, int monthOfYear, int dayOfMonth, long chosenDateInMillis);
+    interface OnExpiryDateListener {
+        fun onDateSet(year: Int, monthOfYear: Int, dayOfMonth: Int, chosenDateInMillis: Long)
+        fun onDateUnSet()
+    }
 
-        void onDateUnSet();
+    companion object {
+        /** Tag for FragmentsManager  */
+        const val DATE_PICKER_DIALOG = "DATE_PICKER_DIALOG"
+
+        /** Parameter constant for date chosen initially  */
+        private const val ARG_CHOSEN_DATE_IN_MILLIS = "CHOSEN_DATE_IN_MILLIS"
+
+        /**
+         * Factory method to create new instances
+         *
+         * @param chosenDateInMillis Date chosen when the dialog appears
+         * @return New dialog instance
+         */
+        fun newInstance(chosenDateInMillis: Long): ExpirationDatePickerDialogFragment {
+            val arguments = Bundle()
+            arguments.putLong(ARG_CHOSEN_DATE_IN_MILLIS, chosenDateInMillis)
+            val dialog = ExpirationDatePickerDialogFragment()
+            dialog.arguments = arguments
+            return dialog
+        }
     }
 }