diff options
author | Stefan Niedermann <info@niedermann.it> | 2021-08-03 13:10:06 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2021-08-03 13:10:17 +0300 |
commit | d6035cec024bd23b24651b740b67a09885d747de (patch) | |
tree | 4b6991d65089797928317633631e8edceb20232a /app/src/main/java/it/niedermann/nextcloud/deck | |
parent | 8c18d8b6652f67b480da65c6b22672736629e815 (diff) |
Make use of var keyword for complex class instances
Signed-off-by: Stefan Niedermann <info@niedermann.it>
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck')
37 files changed, 222 insertions, 278 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java index c1fcaaa70..ad8f50535 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java @@ -110,8 +110,8 @@ import it.niedermann.nextcloud.deck.ui.board.DeleteBoardListener; import it.niedermann.nextcloud.deck.ui.board.EditBoardDialogFragment; import it.niedermann.nextcloud.deck.ui.board.EditBoardListener; import it.niedermann.nextcloud.deck.ui.branding.BrandedSnackbar; -import it.niedermann.nextcloud.deck.ui.branding.NewCardDialog; import it.niedermann.nextcloud.deck.ui.card.CardAdapter; +import it.niedermann.nextcloud.deck.ui.card.NewCardDialog; import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment; import it.niedermann.nextcloud.deck.ui.exception.ExceptionHandler; import it.niedermann.nextcloud.deck.ui.filter.FilterDialogFragment; diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedDatePickerDialog.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedDatePickerDialog.java index c84ac8274..7443f2c8a 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedDatePickerDialog.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedDatePickerDialog.java @@ -1,5 +1,9 @@ package it.niedermann.nextcloud.deck.ui.branding; +import static it.niedermann.nextcloud.deck.DeckApplication.isDarkTheme; +import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme; +import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor; + import android.content.Context; import android.graphics.Color; import android.os.Bundle; @@ -19,10 +23,6 @@ import java.util.Calendar; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.util.DeckColorUtil; -import static it.niedermann.nextcloud.deck.DeckApplication.isDarkTheme; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor; - public class BrandedDatePickerDialog extends DatePickerDialog implements Branded { @Override @@ -54,9 +54,9 @@ public class BrandedDatePickerDialog extends DatePickerDialog implements Branded * @return a new DatePickerDialog instance. */ public static DatePickerDialog newInstance(OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth) { - DatePickerDialog ret = new BrandedDatePickerDialog(); - ret.initialize(callBack, year, monthOfYear - 1, dayOfMonth); - return ret; + final var dialog = new BrandedDatePickerDialog(); + dialog.initialize(callBack, year, monthOfYear - 1, dayOfMonth); + return dialog; } /** @@ -69,8 +69,8 @@ public class BrandedDatePickerDialog extends DatePickerDialog implements Branded * @return a new DatePickerDialog instance */ public static DatePickerDialog newInstance(OnDateSetListener callback, Calendar initialSelection) { - DatePickerDialog ret = new BrandedDatePickerDialog(); - ret.initialize(callback, initialSelection); - return ret; + final var dialog = new BrandedDatePickerDialog(); + dialog.initialize(callback, initialSelection); + return dialog; } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedPreferenceCategory.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedPreferenceCategory.java index 70db03aa0..eeac7579b 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedPreferenceCategory.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedPreferenceCategory.java @@ -1,8 +1,10 @@ package it.niedermann.nextcloud.deck.ui.branding; +import static it.niedermann.nextcloud.deck.DeckApplication.readCurrentAccountColor; +import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme; + import android.content.Context; import android.util.AttributeSet; -import android.view.View; import android.widget.TextView; import androidx.annotation.ColorInt; @@ -10,20 +12,17 @@ import androidx.annotation.Nullable; import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceViewHolder; -import static it.niedermann.nextcloud.deck.DeckApplication.readCurrentAccountColor; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme; - public class BrandedPreferenceCategory extends PreferenceCategory { @Override public void onBindViewHolder(PreferenceViewHolder holder) { super.onBindViewHolder(holder); - final View v = holder.itemView.findViewById(android.R.id.title); + final var view = holder.itemView.findViewById(android.R.id.title); @Nullable final Context context = getContext(); - if (context != null && v instanceof TextView) { + if (context != null && view instanceof TextView) { @ColorInt final int mainColor = getSecondaryForegroundColorDependingOnTheme(context, readCurrentAccountColor(context)); - ((TextView) v).setTextColor(mainColor); + ((TextView) view).setTextColor(mainColor); } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedSnackbar.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedSnackbar.java index 8b4cf2f5a..125c9dc23 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedSnackbar.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedSnackbar.java @@ -1,5 +1,7 @@ package it.niedermann.nextcloud.deck.ui.branding; +import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor; + import android.graphics.Color; import android.view.View; @@ -12,14 +14,12 @@ import com.google.android.material.snackbar.Snackbar; import it.niedermann.android.util.ColorUtil; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor; - public class BrandedSnackbar { @NonNull public static Snackbar make( @NonNull View view, @NonNull CharSequence text, @BaseTransientBottomBar.Duration int duration) { - final Snackbar snackbar = Snackbar.make(view, text, duration); + final var snackbar = Snackbar.make(view, text, duration); @ColorInt final int color = readBrandMainColor(view.getContext()); snackbar.setActionTextColor(ColorUtil.INSTANCE.isColorDark(color) ? Color.WHITE : color); return snackbar; diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedSwitchPreference.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedSwitchPreference.java index 607beba03..3c1558df5 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedSwitchPreference.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedSwitchPreference.java @@ -1,5 +1,7 @@ package it.niedermann.nextcloud.deck.ui.branding; +import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme; + import android.content.Context; import android.content.res.ColorStateList; import android.util.AttributeSet; @@ -15,8 +17,6 @@ import androidx.preference.SwitchPreference; import it.niedermann.nextcloud.deck.R; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme; - public class BrandedSwitchPreference extends SwitchPreference implements Branded { @ColorInt @@ -89,9 +89,9 @@ public class BrandedSwitchPreference extends SwitchPreference implements Branded if (view instanceof ViewGroup) { ViewGroup viewGroup = (ViewGroup) view; for (int i = 0; i < viewGroup.getChildCount(); i++) { - View child = viewGroup.getChildAt(i); + final var child = viewGroup.getChildAt(i); if (child instanceof ViewGroup) { - Switch result = findSwitchWidget(child); + final var result = findSwitchWidget(child); if (result != null) return result; } if (child instanceof Switch) { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedTimePickerDialog.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedTimePickerDialog.java index 02e09e3c8..4a8879f30 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedTimePickerDialog.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedTimePickerDialog.java @@ -1,5 +1,9 @@ package it.niedermann.nextcloud.deck.ui.branding; +import static it.niedermann.nextcloud.deck.DeckApplication.isDarkTheme; +import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme; +import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor; + import android.content.Context; import android.graphics.Color; import android.os.Bundle; @@ -19,10 +23,6 @@ import java.time.LocalTime; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.util.DeckColorUtil; -import static it.niedermann.nextcloud.deck.DeckApplication.isDarkTheme; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor; - public class BrandedTimePickerDialog extends TimePickerDialog implements Branded { @Override @@ -57,9 +57,9 @@ public class BrandedTimePickerDialog extends TimePickerDialog implements Branded @SuppressWarnings({"SameParameterValue"}) public static TimePickerDialog newInstance(OnTimeSetListener callback, int hourOfDay, int minute, int second, boolean is24HourMode) { - TimePickerDialog ret = new BrandedTimePickerDialog(); - ret.initialize(callback, hourOfDay, minute, second, is24HourMode); - return ret; + final var dialog = new BrandedTimePickerDialog(); + dialog.initialize(callback, hourOfDay, minute, second, is24HourMode); + return dialog; } /** @@ -85,7 +85,7 @@ public class BrandedTimePickerDialog extends TimePickerDialog implements Branded */ @SuppressWarnings({"SameParameterValue"}) public static TimePickerDialog newInstance(OnTimeSetListener callback, boolean is24HourMode) { - LocalTime now = LocalTime.now(); + final var now = LocalTime.now(); return newInstance(callback, now.getHour(), now.getMinute(), is24HourMode); } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandingUtil.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandingUtil.java index 1af1accab..fea7b31d2 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandingUtil.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandingUtil.java @@ -1,10 +1,12 @@ package it.niedermann.nextcloud.deck.ui.branding; +import static it.niedermann.nextcloud.deck.DeckApplication.isDarkTheme; +import static it.niedermann.nextcloud.deck.util.DeckColorUtil.contrastRatioIsSufficient; +import static it.niedermann.nextcloud.deck.util.DeckColorUtil.contrastRatioIsSufficientBigAreas; + import android.content.Context; -import android.content.SharedPreferences; import android.content.res.ColorStateList; import android.graphics.Color; -import android.graphics.drawable.Drawable; import android.view.MenuItem; import androidx.annotation.ColorInt; @@ -21,10 +23,6 @@ import it.niedermann.android.util.ColorUtil; import it.niedermann.nextcloud.deck.DeckLog; import it.niedermann.nextcloud.deck.R; -import static it.niedermann.nextcloud.deck.DeckApplication.isDarkTheme; -import static it.niedermann.nextcloud.deck.util.DeckColorUtil.contrastRatioIsSufficient; -import static it.niedermann.nextcloud.deck.util.DeckColorUtil.contrastRatioIsSufficientBigAreas; - public abstract class BrandingUtil { private BrandingUtil() { @@ -33,20 +31,20 @@ public abstract class BrandingUtil { @ColorInt public static int readBrandMainColor(@NonNull Context context) { - final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext()); + final var sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext()); DeckLog.log("--- Read:", context.getString(R.string.shared_preference_theme_main)); return sharedPreferences.getInt(context.getString(R.string.shared_preference_theme_main), context.getApplicationContext().getResources().getColor(R.color.defaultBrand)); } public static void saveBrandColors(@NonNull Context context, @ColorInt int mainColor) { - final SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit(); + final var editor = PreferenceManager.getDefaultSharedPreferences(context).edit(); DeckLog.log("--- Write:", context.getString(R.string.shared_preference_theme_main), "|", mainColor); editor.putInt(context.getString(R.string.shared_preference_theme_main), mainColor); editor.apply(); } public static void clearBrandColors(@NonNull Context context) { - final SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit(); + final var editor = PreferenceManager.getDefaultSharedPreferences(context).edit(); DeckLog.log("--- Remove:", context.getString(R.string.shared_preference_theme_main)); editor.remove(context.getString(R.string.shared_preference_theme_main)); editor.apply(); @@ -82,7 +80,7 @@ public abstract class BrandingUtil { public static void applyBrandToEditTextInputLayout(@ColorInt int color, @NonNull TextInputLayout til) { final int colorPrimary = ContextCompat.getColor(til.getContext(), R.color.primary); final int colorAccent = ContextCompat.getColor(til.getContext(), R.color.accent); - final ColorStateList colorDanger = ColorStateList.valueOf(ContextCompat.getColor(til.getContext(), R.color.danger)); + final var colorDanger = ColorStateList.valueOf(ContextCompat.getColor(til.getContext(), R.color.danger)); til.setBoxStrokeColor(contrastRatioIsSufficientBigAreas(color, colorPrimary) ? color : colorAccent); til.setHintTextColor(ColorStateList.valueOf(contrastRatioIsSufficient(color, colorPrimary) ? color : colorAccent)); til.setErrorTextColor(colorDanger); @@ -91,7 +89,7 @@ public abstract class BrandingUtil { } public static void tintMenuIcon(@NonNull MenuItem menuItem, @ColorInt int color) { - Drawable drawable = menuItem.getIcon(); + var drawable = menuItem.getIcon(); if (drawable != null) { drawable = DrawableCompat.wrap(drawable); DrawableCompat.setTint(drawable, color); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/DeleteAlertDialogBuilder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/DeleteAlertDialogBuilder.java index 377c34363..ea53f4461 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/DeleteAlertDialogBuilder.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/DeleteAlertDialogBuilder.java @@ -2,7 +2,6 @@ package it.niedermann.nextcloud.deck.ui.branding; import android.content.Context; import android.content.DialogInterface; -import android.widget.Button; import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; @@ -28,7 +27,7 @@ public class DeleteAlertDialogBuilder extends AlertDialog.Builder { } public void applyBrand() { - final Button positiveButton = dialog.getButton(DialogInterface.BUTTON_POSITIVE); + final var positiveButton = dialog.getButton(DialogInterface.BUTTON_POSITIVE); if (positiveButton != null) { positiveButton.setTextColor(ContextCompat.getColor(getContext(), R.color.danger)); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/AbstractCardViewHolder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/AbstractCardViewHolder.java index 9522ba9b0..eb25d1270 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/AbstractCardViewHolder.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/AbstractCardViewHolder.java @@ -1,7 +1,5 @@ package it.niedermann.nextcloud.deck.ui.card; -import android.content.Context; -import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnLongClickListener; @@ -30,7 +28,6 @@ import java.util.stream.Collectors; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.model.Account; -import it.niedermann.nextcloud.deck.model.Attachment; import it.niedermann.nextcloud.deck.model.Card; import it.niedermann.nextcloud.deck.model.User; import it.niedermann.nextcloud.deck.model.enums.DBStatus; @@ -51,7 +48,7 @@ public abstract class AbstractCardViewHolder extends RecyclerView.ViewHolder { */ @CallSuper public void bind(@NonNull FullCard fullCard, @NonNull Account account, @Nullable Long boardRemoteId, boolean hasEditPermission, @MenuRes int optionsMenu, @NonNull CardOptionsItemSelectedListener optionsItemsSelectedListener, @NonNull String counterMaxValue, @ColorInt int mainColor) { - final Context context = itemView.getContext(); + final var context = itemView.getContext(); bindCardClickListener(null); bindCardLongClickListener(null); @@ -70,9 +67,9 @@ public abstract class AbstractCardViewHolder extends RecyclerView.ViewHolder { } getCardMenu().setOnClickListener(view -> { - final PopupMenu popup = new PopupMenu(context, view); + final var popup = new PopupMenu(context, view); popup.inflate(optionsMenu); - final Menu menu = popup.getMenu(); + final var menu = popup.getMenu(); if (containsUser(fullCard.getAssignedUsers(), account.getUserName())) { menu.removeItem(menu.findItem(R.id.action_card_assign).getItemId()); } else { @@ -110,7 +107,7 @@ public abstract class AbstractCardViewHolder extends RecyclerView.ViewHolder { } private static void setupDueDate(@NonNull TextView cardDueDate, @NonNull Card card) { - final Context context = cardDueDate.getContext(); + final var context = cardDueDate.getContext(); cardDueDate.setText(DateUtil.getRelativeDateTimeString(context, card.getDueDate().toEpochMilli())); ViewUtil.themeDueDate(context, cardDueDate, card.getDueDate().atZone(ZoneId.systemDefault()).toLocalDate()); } @@ -118,7 +115,7 @@ public abstract class AbstractCardViewHolder extends RecyclerView.ViewHolder { protected static void setupCoverImages(@NonNull Account account, @NonNull ViewGroup coverImagesHolder, @NonNull FullCard fullCard, int maxCoverImagesCount) { coverImagesHolder.removeAllViews(); if (maxCoverImagesCount > 0) { - final List<Attachment> coverImages = fullCard.getAttachments() + final var coverImages = fullCard.getAttachments() .stream() .filter(attachment -> MimeTypeUtil.isImage(attachment.getMimetype())) .limit(maxCoverImagesCount) @@ -126,8 +123,8 @@ public abstract class AbstractCardViewHolder extends RecyclerView.ViewHolder { if (coverImages.size() > 0) { coverImagesHolder.setVisibility(View.VISIBLE); coverImagesHolder.post(() -> { - for (Attachment coverImage : coverImages) { - final ImageView coverImageView = new ImageView(coverImagesHolder.getContext()); + for (final var coverImage : coverImages) { + final var coverImageView = new ImageView(coverImagesHolder.getContext()); final int coverWidth = coverImagesHolder.getWidth() / coverImages.size(); final int coverHeight = coverImagesHolder.getHeight(); coverImageView.setLayoutParams(new LinearLayout.LayoutParams(coverWidth, coverHeight)); @@ -150,7 +147,7 @@ public abstract class AbstractCardViewHolder extends RecyclerView.ViewHolder { @Contract("null, _ -> false") private static boolean containsUser(List<User> userList, String username) { if (userList != null) { - for (User user : userList) { + for (final var user : userList) { if (user.getPrimaryKey().equals(username)) { return true; } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAdapter.java index 4648e34c3..ecbc3f4ce 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAdapter.java @@ -1,5 +1,9 @@ package it.niedermann.nextcloud.deck.ui.card; +import static androidx.preference.PreferenceManager.getDefaultSharedPreferences; +import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme; +import static it.niedermann.nextcloud.deck.util.MimeTypeUtil.TEXT_PLAIN; + import android.app.Activity; import android.content.ClipData; import android.content.Intent; @@ -30,7 +34,6 @@ import it.niedermann.nextcloud.deck.api.IResponseCallback; import it.niedermann.nextcloud.deck.databinding.ItemCardCompactBinding; import it.niedermann.nextcloud.deck.databinding.ItemCardDefaultBinding; import it.niedermann.nextcloud.deck.databinding.ItemCardDefaultOnlyTitleBinding; -import it.niedermann.nextcloud.deck.model.Account; import it.niedermann.nextcloud.deck.model.Card; import it.niedermann.nextcloud.deck.model.Stack; import it.niedermann.nextcloud.deck.model.full.FullCard; @@ -41,10 +44,6 @@ import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment; import it.niedermann.nextcloud.deck.ui.movecard.MoveCardDialogFragment; import it.niedermann.nextcloud.deck.util.CardUtil; -import static androidx.preference.PreferenceManager.getDefaultSharedPreferences; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme; -import static it.niedermann.nextcloud.deck.util.MimeTypeUtil.TEXT_PLAIN; - public class CardAdapter extends RecyclerView.Adapter<AbstractCardViewHolder> implements DragAndDropAdapter<FullCard>, CardOptionsItemSelectedListener, Branded { private final ExecutorService executor; @@ -110,7 +109,7 @@ public class CardAdapter extends RecyclerView.Adapter<AbstractCardViewHolder> im if (compactMode) { return R.layout.item_card_compact; } else { - final FullCard fullCard = cardList.get(position); + final var fullCard = cardList.get(position); if (fullCard.getAttachments().size() == 0 && fullCard.getAssignedUsers().size() == 0 && fullCard.getLabels().size() == 0 @@ -124,7 +123,7 @@ public class CardAdapter extends RecyclerView.Adapter<AbstractCardViewHolder> im @Override public void onBindViewHolder(@NonNull AbstractCardViewHolder viewHolder, int position) { - @NonNull FullCard fullCard = cardList.get(position); + @NonNull final var fullCard = cardList.get(position); viewHolder.bind(fullCard, mainViewModel.getCurrentAccount(), mainViewModel.getCurrentBoardRemoteId(), mainViewModel.currentBoardHasEditPermission(), R.menu.card_menu, this, counterMaxValue, mainColor); // Only enable details view if there is no one waiting for selecting a card. @@ -192,10 +191,10 @@ public class CardAdapter extends RecyclerView.Adapter<AbstractCardViewHolder> im @Override public boolean onCardOptionsItemSelected(@NonNull MenuItem menuItem, @NonNull FullCard fullCard) { - int itemId = menuItem.getItemId(); - final Account account = mainViewModel.getCurrentAccount(); + final int itemId = menuItem.getItemId(); + final var account = mainViewModel.getCurrentAccount(); if (itemId == R.id.share_link) { - final Intent shareIntent = new Intent() + final var shareIntent = new Intent() .setAction(Intent.ACTION_SEND) .setType(TEXT_PLAIN) .putExtra(Intent.EXTRA_SUBJECT, fullCard.getCard().getTitle()) @@ -204,7 +203,7 @@ public class CardAdapter extends RecyclerView.Adapter<AbstractCardViewHolder> im activity.startActivity(Intent.createChooser(shareIntent, fullCard.getCard().getTitle())); return true; } else if (itemId == R.id.share_content) { - final Intent shareIntent = new Intent() + final var shareIntent = new Intent() .setAction(Intent.ACTION_SEND) .setType(TEXT_PLAIN) .putExtra(Intent.EXTRA_SUBJECT, fullCard.getCard().getTitle()) diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/DefaultCardViewHolder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/DefaultCardViewHolder.java index 80f6aabbf..b7e6f911b 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/DefaultCardViewHolder.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/DefaultCardViewHolder.java @@ -1,6 +1,5 @@ package it.niedermann.nextcloud.deck.ui.card; -import android.content.Context; import android.text.TextUtils; import android.view.View; import android.view.View.OnClickListener; @@ -16,16 +15,9 @@ import androidx.core.content.ContextCompat; import com.google.android.material.card.MaterialCardView; -import org.jetbrains.annotations.Contract; - -import java.util.List; - import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.ItemCardDefaultBinding; import it.niedermann.nextcloud.deck.model.Account; -import it.niedermann.nextcloud.deck.model.Card.TaskStatus; -import it.niedermann.nextcloud.deck.model.Label; -import it.niedermann.nextcloud.deck.model.User; import it.niedermann.nextcloud.deck.model.full.FullCard; public class DefaultCardViewHolder extends AbstractCardViewHolder { @@ -46,7 +38,7 @@ public class DefaultCardViewHolder extends AbstractCardViewHolder { public void bind(@NonNull FullCard fullCard, @NonNull Account account, @Nullable Long boardRemoteId, boolean hasEditPermission, @MenuRes int optionsMenu, @NonNull CardOptionsItemSelectedListener optionsItemsSelectedListener, @NonNull String counterMaxValue, @ColorInt int mainColor) { super.bind(fullCard, account, boardRemoteId, hasEditPermission, optionsMenu, optionsItemsSelectedListener, counterMaxValue, mainColor); - final Context context = itemView.getContext(); + final var context = itemView.getContext(); if (fullCard.getAssignedUsers() != null && fullCard.getAssignedUsers().size() > 0) { binding.overlappingAvatars.setAvatars(account, fullCard.getAssignedUsers()); @@ -74,7 +66,7 @@ public class DefaultCardViewHolder extends AbstractCardViewHolder { binding.cardCountComments.setVisibility(View.VISIBLE); } - final List<Label> labels = fullCard.getLabels(); + final var labels = fullCard.getLabels(); if (labels != null && labels.size() > 0) { binding.labels.updateLabels(labels); binding.labels.setVisibility(View.VISIBLE); @@ -83,7 +75,7 @@ public class DefaultCardViewHolder extends AbstractCardViewHolder { binding.labels.setVisibility(View.GONE); } - final TaskStatus taskStatus = fullCard.getCard().getTaskStatus(); + final var taskStatus = fullCard.getCard().getTaskStatus(); if (taskStatus.taskCount > 0) { binding.cardCountTasks.setText(context.getResources().getString(R.string.task_count, String.valueOf(taskStatus.doneCount), String.valueOf(taskStatus.taskCount))); binding.cardCountTasks.setCompoundDrawablesWithIntrinsicBounds(ContextCompat.getDrawable(context, R.drawable.ic_check_grey600_24dp), null, null, null); @@ -147,16 +139,4 @@ public class DefaultCardViewHolder extends AbstractCardViewHolder { textView.setText(""); } } - - @Contract("null, _ -> false") - private static boolean containsUser(List<User> userList, String username) { - if (userList != null) { - for (User user : userList) { - if (user.getPrimaryKey().equals(username)) { - return true; - } - } - } - return false; - } }
\ No newline at end of file diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditActivity.java index 4356ba841..b5317c9a8 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditActivity.java @@ -1,8 +1,11 @@ package it.niedermann.nextcloud.deck.ui.card; +import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce; +import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToPrimaryTabLayout; +import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.tintMenuIcon; + import android.content.Context; import android.content.Intent; -import android.graphics.drawable.Drawable; import android.os.Bundle; import android.text.Editable; import android.text.InputFilter; @@ -30,10 +33,6 @@ import it.niedermann.nextcloud.deck.model.ocs.Version; import it.niedermann.nextcloud.deck.ui.exception.ExceptionHandler; import it.niedermann.nextcloud.deck.util.CardUtil; -import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToPrimaryTabLayout; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.tintMenuIcon; - public class EditActivity extends AppCompatActivity { private static final String BUNDLE_KEY_ACCOUNT = "account"; @@ -100,13 +99,13 @@ public class EditActivity extends AppCompatActivity { } private void loadDataFromIntent() { - final Bundle args = getIntent().getExtras(); + final var args = getIntent().getExtras(); if (args == null || !args.containsKey(BUNDLE_KEY_ACCOUNT) || !args.containsKey(BUNDLE_KEY_BOARD_LOCAL_ID) || !args.containsKey(BUNDLE_KEY_CARD_LOCAL_ID)) { throw new IllegalArgumentException("Provide at least " + BUNDLE_KEY_ACCOUNT + " and " + BUNDLE_KEY_BOARD_LOCAL_ID + " and " + BUNDLE_KEY_CARD_LOCAL_ID + " of the card that should be edited."); } - final Account account = (Account) args.getSerializable(BUNDLE_KEY_ACCOUNT); + final var account = (Account) args.getSerializable(BUNDLE_KEY_ACCOUNT); if (account == null) { throw new IllegalArgumentException(BUNDLE_KEY_ACCOUNT + " must not be null."); } @@ -203,8 +202,8 @@ public class EditActivity extends AppCompatActivity { binding.tabLayout.removeAllTabs(); binding.tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); - final CardTabAdapter adapter = new CardTabAdapter(this); - final TabLayoutMediator mediator = new TabLayoutMediator(binding.tabLayout, binding.pager, (tab, position) -> { + final var adapter = new CardTabAdapter(this); + final var mediator = new TabLayoutMediator(binding.tabLayout, binding.pager, (tab, position) -> { tab.setIcon(viewModel.hasCommentsAbility() ? tabIconsWithComments[position] : tabIcons[position] @@ -270,7 +269,7 @@ public class EditActivity extends AppCompatActivity { } private void applyBoardBranding(int mainColor) { - final Drawable navigationIcon = binding.toolbar.getNavigationIcon(); + final var navigationIcon = binding.toolbar.getNavigationIcon(); if (navigationIcon == null) { DeckLog.error("Expected navigationIcon to be present."); } else { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditCardViewModel.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditCardViewModel.java index 15b7c95ea..e97973ee0 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditCardViewModel.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditCardViewModel.java @@ -1,5 +1,8 @@ package it.niedermann.nextcloud.deck.ui.card; +import static androidx.lifecycle.Transformations.distinctUntilChanged; +import static androidx.lifecycle.Transformations.switchMap; + import android.app.Application; import android.content.SharedPreferences; import android.text.TextUtils; @@ -30,9 +33,6 @@ import it.niedermann.nextcloud.deck.model.full.FullCardWithProjects; import it.niedermann.nextcloud.deck.model.ocs.Activity; import it.niedermann.nextcloud.deck.persistence.sync.SyncManager; -import static androidx.lifecycle.Transformations.distinctUntilChanged; -import static androidx.lifecycle.Transformations.switchMap; - @SuppressWarnings("WeakerAccess") public class EditCardViewModel extends AndroidViewModel { @@ -62,7 +62,7 @@ public class EditCardViewModel extends AndroidViewModel { public LiveData<Boolean> getDescriptionMode() { return distinctUntilChanged(switchMap(distinctUntilChanged(new SharedPreferenceBooleanLiveData(sharedPreferences, getApplication().getString(R.string.shared_preference_description_preview), false)), (isPreview) -> { // When we are in preview mode but the description of the card is empty, we explicitly switch to the edit mode - final FullCardWithProjects fullCard = getFullCard(); + final var fullCard = getFullCard(); if (fullCard == null) { throw new IllegalStateException("Description mode must be queried after initializing " + EditCardViewModel.class.getSimpleName() + " with a card."); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/LabelAutoCompleteAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/LabelAutoCompleteAdapter.java index de9d23829..f8fd967aa 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/LabelAutoCompleteAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/LabelAutoCompleteAdapter.java @@ -1,8 +1,9 @@ package it.niedermann.nextcloud.deck.ui.card; +import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce; + import android.content.res.ColorStateList; import android.graphics.Color; -import android.graphics.drawable.Drawable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -14,10 +15,8 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.core.graphics.drawable.DrawableCompat; -import androidx.lifecycle.LiveData; import java.util.Collection; -import java.util.List; import java.util.Random; import it.niedermann.android.util.ColorUtil; @@ -26,8 +25,6 @@ import it.niedermann.nextcloud.deck.databinding.ItemAutocompleteLabelBinding; import it.niedermann.nextcloud.deck.model.Label; import it.niedermann.nextcloud.deck.util.AutoCompleteAdapter; -import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce; - public class LabelAutoCompleteAdapter extends AutoCompleteAdapter<Label> { @Nullable private Label createLabel; @@ -60,7 +57,7 @@ public class LabelAutoCompleteAdapter extends AutoCompleteAdapter<Label> { binding = ItemAutocompleteLabelBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false); } - final Label label = getItem(position); + final var label = getItem(position); final int labelColor = label.getColor(); final int color = ColorUtil.INSTANCE.getForegroundColorForBackgroundColor(labelColor); @@ -69,7 +66,7 @@ public class LabelAutoCompleteAdapter extends AutoCompleteAdapter<Label> { binding.label.setTextColor(color); if (ITEM_CREATE == label.getLocalId()) { - final Drawable plusIcon = DrawableCompat.wrap(ContextCompat.getDrawable(binding.label.getContext(), R.drawable.ic_plus)); + final var plusIcon = DrawableCompat.wrap(ContextCompat.getDrawable(binding.label.getContext(), R.drawable.ic_plus)); DrawableCompat.setTint(plusIcon, color); binding.label.setChipIcon(plusIcon); } else { @@ -87,7 +84,7 @@ public class LabelAutoCompleteAdapter extends AutoCompleteAdapter<Label> { if (constraint != null) { lastFilterText = constraint.toString(); activity.runOnUiThread(() -> { - LiveData<List<Label>> liveData = constraint.toString().trim().length() > 0 + final var liveData = constraint.toString().trim().length() > 0 ? syncManager.searchNotYetAssignedLabelsByTitle(accountId, boardId, cardId, constraint.toString()) : syncManager.findProposalsForLabelsToAssign(accountId, boardId, cardId); observeOnce(liveData, activity, (labels -> { @@ -112,7 +109,7 @@ public class LabelAutoCompleteAdapter extends AutoCompleteAdapter<Label> { } private static boolean labelTitleIsPresent(@NonNull Collection<Label> labels, @NonNull CharSequence title) { - for (Label label : labels) { + for (final var label : labels) { if (label.getTitle().contentEquals(title)) { return true; } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/NewCardDialog.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/NewCardDialog.java index 5332dc0e0..f8bfbe25b 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/NewCardDialog.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/NewCardDialog.java @@ -1,4 +1,4 @@ -package it.niedermann.nextcloud.deck.ui.branding; +package it.niedermann.nextcloud.deck.ui.card; import static androidx.lifecycle.Transformations.distinctUntilChanged; @@ -28,7 +28,7 @@ import it.niedermann.nextcloud.deck.api.IResponseCallback; import it.niedermann.nextcloud.deck.databinding.DialogNewCardBinding; import it.niedermann.nextcloud.deck.model.Account; import it.niedermann.nextcloud.deck.model.full.FullCard; -import it.niedermann.nextcloud.deck.ui.card.EditActivity; +import it.niedermann.nextcloud.deck.ui.branding.BrandingUtil; import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment; import it.niedermann.nextcloud.deck.ui.preparecreate.PrepareCreateViewModel; diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityAdapter.java index 5564d8a15..a64cf3a44 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityAdapter.java @@ -1,6 +1,5 @@ package it.niedermann.nextcloud.deck.ui.card.activities; -import android.content.Context; import android.view.LayoutInflater; import android.view.MenuInflater; import android.view.ViewGroup; @@ -30,8 +29,8 @@ public class CardActivityAdapter extends RecyclerView.Adapter<CardActivityViewHo @NonNull @Override public CardActivityViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - final Context context = parent.getContext(); - ItemActivityBinding binding = ItemActivityBinding.inflate(LayoutInflater.from(context), parent, false); + final var context = parent.getContext(); + final var binding = ItemActivityBinding.inflate(LayoutInflater.from(context), parent, false); return new CardActivityViewHolder(binding); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityFragment.java index 650670653..d00ce05dd 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityFragment.java @@ -27,7 +27,7 @@ public class CardActivityFragment extends Fragment { Bundle savedInstanceState) { binding = FragmentCardEditTabActivitiesBinding.inflate(inflater, container, false); - final EditCardViewModel viewModel = new ViewModelProvider(requireActivity()).get(EditCardViewModel.class); + final var viewModel = new ViewModelProvider(requireActivity()).get(EditCardViewModel.class); // This might be a zombie fragment with an empty EditCardViewModel after Android killed the activity (but not the fragment instance // See https://github.com/stefan-niedermann/nextcloud-deck/issues/478 diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityViewHolder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityViewHolder.java index 6362f90dd..0678357d4 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityViewHolder.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityViewHolder.java @@ -26,7 +26,7 @@ public class CardActivityViewHolder extends RecyclerView.ViewHolder { } public void bind(@NonNull Activity activity, @NonNull MenuInflater inflater) { - final Context context = itemView.getContext(); + final var context = itemView.getContext(); binding.date.setText(DateUtil.getRelativeDateTimeString(context, activity.getLastModified().toEpochMilli())); binding.subject.setText(activity.getSubject()); itemView.setOnClickListener(View::showContextMenu); @@ -34,7 +34,7 @@ public class CardActivityViewHolder extends RecyclerView.ViewHolder { inflater.inflate(R.menu.activity_menu, menu); menu.findItem(android.R.id.copy).setOnMenuItemClickListener(item -> ClipboardUtil.INSTANCE.copyToClipboard(context, activity.getSubject())); }); - final ActivityType type = ActivityType.findById(activity.getType()); + final var type = ActivityType.findById(activity.getType()); setImageResource(binding.type, type); setImageColor(context, binding.type, type); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/assignee/CardAssigneeDialog.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/assignee/CardAssigneeDialog.java index c86807cb2..8ee2c6318 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/assignee/CardAssigneeDialog.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/assignee/CardAssigneeDialog.java @@ -1,5 +1,7 @@ package it.niedermann.nextcloud.deck.ui.card.assignee; +import static it.niedermann.nextcloud.deck.DeckApplication.isDarkTheme; + import android.app.Dialog; import android.content.Context; import android.graphics.Color; @@ -9,15 +11,12 @@ import android.view.LayoutInflater; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; import androidx.lifecycle.ViewModelProvider; import androidx.swiperefreshlayout.widget.CircularProgressDrawable; import com.bumptech.glide.Glide; -import java.io.Serializable; - import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.DialogPreviewBinding; import it.niedermann.nextcloud.deck.model.User; @@ -25,8 +24,6 @@ import it.niedermann.nextcloud.deck.ui.branding.DeleteAlertDialogBuilder; import it.niedermann.nextcloud.deck.ui.card.EditCardViewModel; import it.niedermann.nextcloud.deck.ui.card.attachments.previewdialog.PreviewDialog; -import static it.niedermann.nextcloud.deck.DeckApplication.isDarkTheme; - /** * TODO maybe this can be merged with {@link PreviewDialog} */ @@ -52,11 +49,11 @@ public class CardAssigneeDialog extends DialogFragment { this.cardAssigneeListener = (CardAssigneeListener) context; } - final Bundle args = requireArguments(); + final var args = requireArguments(); if (!args.containsKey(KEY_USER)) { throw new IllegalArgumentException("Provide at least " + KEY_USER); } - final Serializable user = args.getSerializable(KEY_USER); + final var user = args.getSerializable(KEY_USER); if (user == null) { throw new IllegalArgumentException(KEY_USER + " must not be null."); } @@ -69,7 +66,7 @@ public class CardAssigneeDialog extends DialogFragment { binding = DialogPreviewBinding.inflate(LayoutInflater.from(requireContext())); viewModel = new ViewModelProvider(requireActivity()).get(EditCardViewModel.class); - AlertDialog.Builder dialogBuilder = new DeleteAlertDialogBuilder(requireContext()); + final var dialogBuilder = new DeleteAlertDialogBuilder(requireContext()); if (viewModel.canEdit() && cardAssigneeListener != null) { dialogBuilder.setPositiveButton(R.string.simple_unassign, (d, w) -> cardAssigneeListener.onUnassignUser(user)); @@ -85,9 +82,9 @@ public class CardAssigneeDialog extends DialogFragment { public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - final Context context = requireContext(); + final var context = requireContext(); - final CircularProgressDrawable circularProgressDrawable = new CircularProgressDrawable(context); + final var circularProgressDrawable = new CircularProgressDrawable(context); circularProgressDrawable.setStrokeWidth(5f); circularProgressDrawable.setCenterRadius(30f); circularProgressDrawable.setColorSchemeColors(isDarkTheme(context) ? Color.LTGRAY : Color.DKGRAY); @@ -102,8 +99,8 @@ public class CardAssigneeDialog extends DialogFragment { } public static DialogFragment newInstance(@NonNull User user) { - final DialogFragment fragment = new CardAssigneeDialog(); - final Bundle args = new Bundle(); + final var fragment = new CardAssigneeDialog(); + final var args = new Bundle(); args.putSerializable(KEY_USER, user); fragment.setArguments(args); return fragment; diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/AttachmentViewHolder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/AttachmentViewHolder.java index e2aca1f28..cb77ae89b 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/AttachmentViewHolder.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/AttachmentViewHolder.java @@ -52,7 +52,7 @@ public abstract class AttachmentViewHolder extends RecyclerView.ViewHolder { abstract protected ImageView getPreview(); protected void setNotSyncedYetStatus(boolean synced, @ColorInt int mainColor) { - final ImageView notSyncedYet = getNotSyncedYetStatusIcon(); + final var notSyncedYet = getNotSyncedYetStatusIcon(); DrawableCompat.setTint(notSyncedYet.getDrawable(), BrandingUtil.getSecondaryForegroundColorDependingOnTheme(notSyncedYet.getContext(), mainColor)); notSyncedYet.setVisibility(synced ? View.GONE : View.VISIBLE); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentAdapter.java index 16af8bb8f..3b18515c3 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentAdapter.java @@ -1,8 +1,10 @@ package it.niedermann.nextcloud.deck.ui.card.attachments; +import static androidx.lifecycle.Transformations.distinctUntilChanged; +import static androidx.recyclerview.widget.RecyclerView.NO_ID; +import static it.niedermann.nextcloud.deck.util.AttachmentUtil.openAttachmentInBrowser; + import android.app.Activity; -import android.content.Context; -import android.content.Intent; import android.view.LayoutInflater; import android.view.MenuInflater; import android.view.View; @@ -29,10 +31,6 @@ import it.niedermann.nextcloud.deck.ui.attachments.AttachmentsActivity; import it.niedermann.nextcloud.deck.ui.branding.Branded; import it.niedermann.nextcloud.deck.util.MimeTypeUtil; -import static androidx.lifecycle.Transformations.distinctUntilChanged; -import static androidx.recyclerview.widget.RecyclerView.NO_ID; -import static it.niedermann.nextcloud.deck.util.AttachmentUtil.openAttachmentInBrowser; - @SuppressWarnings("WeakerAccess") public class CardAttachmentAdapter extends RecyclerView.Adapter<AttachmentViewHolder> implements Branded { @@ -81,7 +79,7 @@ public class CardAttachmentAdapter extends RecyclerView.Adapter<AttachmentViewHo @NonNull @Override public AttachmentViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - final Context context = parent.getContext(); + final var context = parent.getContext(); switch (viewType) { case VIEW_TYPE_IMAGE: return new ImageAttachmentViewHolder(ItemAttachmentImageBinding.inflate(LayoutInflater.from(context), parent, false)); @@ -93,15 +91,15 @@ public class CardAttachmentAdapter extends RecyclerView.Adapter<AttachmentViewHo @Override public void onBindViewHolder(@NonNull AttachmentViewHolder holder, int position) { - final Attachment attachment = attachments.get(position); - final Context context = holder.itemView.getContext(); + final var attachment = attachments.get(position); + final var context = holder.itemView.getContext(); final View.OnClickListener onClickListener; switch (getItemViewType(position)) { case VIEW_TYPE_IMAGE: { onClickListener = (event) -> { attachmentClickedListener.onAttachmentClicked(position); - final Intent intent = AttachmentsActivity.createIntent(context, account, cardLocalId, attachment.getLocalId()); + final var intent = AttachmentsActivity.createIntent(context, account, cardLocalId, attachment.getLocalId()); if (context instanceof Activity) { String transitionName = context.getString(R.string.transition_attachment_preview, String.valueOf(attachment.getLocalId())); holder.getPreview().setTransitionName(transitionName); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java index 4cf57ba6f..534e296e5 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java @@ -1,14 +1,31 @@ package it.niedermann.nextcloud.deck.ui.card.attachments; +import static android.Manifest.permission.CAMERA; +import static android.Manifest.permission.READ_CONTACTS; +import static android.Manifest.permission.READ_EXTERNAL_STORAGE; +import static android.app.Activity.RESULT_OK; +import static android.os.Build.VERSION.SDK_INT; +import static android.os.Build.VERSION_CODES.M; +import static android.view.View.GONE; +import static android.view.View.VISIBLE; +import static androidx.core.content.PermissionChecker.PERMISSION_GRANTED; +import static androidx.core.content.PermissionChecker.checkSelfPermission; +import static com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_COLLAPSED; +import static com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_HIDDEN; +import static java.net.HttpURLConnection.HTTP_CONFLICT; +import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce; +import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToFAB; +import static it.niedermann.nextcloud.deck.ui.card.attachments.CardAttachmentAdapter.VIEW_TYPE_DEFAULT; +import static it.niedermann.nextcloud.deck.ui.card.attachments.CardAttachmentAdapter.VIEW_TYPE_IMAGE; +import static it.niedermann.nextcloud.deck.util.FilesUtil.copyContentUriToTempFile; + import android.content.ContentResolver; import android.content.Intent; -import android.content.SharedPreferences; import android.content.res.ColorStateList; import android.graphics.Bitmap; import android.net.Uri; import android.os.Bundle; import android.provider.ContactsContract; -import android.util.DisplayMetrics; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -71,25 +88,6 @@ import it.niedermann.nextcloud.deck.util.JavaCompressor; import it.niedermann.nextcloud.deck.util.MimeTypeUtil; import it.niedermann.nextcloud.deck.util.VCardUtil; -import static android.Manifest.permission.CAMERA; -import static android.Manifest.permission.READ_CONTACTS; -import static android.Manifest.permission.READ_EXTERNAL_STORAGE; -import static android.app.Activity.RESULT_OK; -import static android.os.Build.VERSION.SDK_INT; -import static android.os.Build.VERSION_CODES.M; -import static android.view.View.GONE; -import static android.view.View.VISIBLE; -import static androidx.core.content.PermissionChecker.PERMISSION_GRANTED; -import static androidx.core.content.PermissionChecker.checkSelfPermission; -import static com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_COLLAPSED; -import static com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_HIDDEN; -import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToFAB; -import static it.niedermann.nextcloud.deck.ui.card.attachments.CardAttachmentAdapter.VIEW_TYPE_DEFAULT; -import static it.niedermann.nextcloud.deck.ui.card.attachments.CardAttachmentAdapter.VIEW_TYPE_IMAGE; -import static it.niedermann.nextcloud.deck.util.FilesUtil.copyContentUriToTempFile; -import static java.net.HttpURLConnection.HTTP_CONFLICT; - public class CardAttachmentsFragment extends Fragment implements AttachmentDeletedListener, AttachmentClickedListener { private FragmentCardEditTabAttachmentsBinding binding; @@ -182,9 +180,9 @@ public class CardAttachmentsFragment extends Fragment implements AttachmentDelet R.color.mdtp_transparent_black, android.R.color.transparent, R.dimen.attachments_bottom_navigation_height)); binding.pickerBackdrop.setOnClickListener(v -> mBottomSheetBehaviour.setState(STATE_HIDDEN)); - final DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); + final var displayMetrics = getResources().getDisplayMetrics(); final int spanCount = (int) ((displayMetrics.widthPixels / displayMetrics.density) / getResources().getInteger(R.integer.max_dp_attachment_column)); - final GridLayoutManager glm = new GridLayoutManager(getContext(), spanCount); + final var glm = new GridLayoutManager(getContext(), spanCount); glm.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) { @@ -234,7 +232,7 @@ public class CardAttachmentsFragment extends Fragment implements AttachmentDelet binding.fab.hide(); binding.emptyContentView.hideDescription(); } - final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext()); + final var sharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext()); compressImagesOnUpload = sharedPreferences.getBoolean(getString(R.string.pref_key_compress_image_attachments), true); editViewModel.getBrandingColor().observe(getViewLifecycleOwner(), this::applyBrand); return binding.getRoot(); @@ -326,7 +324,7 @@ public class CardAttachmentsFragment extends Fragment implements AttachmentDelet } private void openNativeContactPicker() { - final Intent intent = new Intent(Intent.ACTION_PICK).setType(ContactsContract.Contacts.CONTENT_TYPE); + final var intent = new Intent(Intent.ACTION_PICK).setType(ContactsContract.Contacts.CONTENT_TYPE); if (intent.resolveActivity(requireContext().getPackageManager()) != null) { startActivityForResult(intent, REQUEST_CODE_PICK_CONTACT); } @@ -443,15 +441,15 @@ public class CardAttachmentsFragment extends Fragment implements AttachmentDelet } private void uploadNewAttachmentFromFile(@NonNull File fileToUpload, String mimeType) { - for (Attachment existingAttachment : editViewModel.getFullCard().getAttachments()) { + for (final var existingAttachment : editViewModel.getFullCard().getAttachments()) { final String existingPath = existingAttachment.getLocalPath(); if (existingPath != null && existingPath.equals(fileToUpload.getAbsolutePath())) { BrandedSnackbar.make(binding.coordinatorLayout, R.string.attachment_already_exists, Snackbar.LENGTH_LONG).show(); return; } } - final Instant now = Instant.now(); - final Attachment a = new Attachment(); + final var now = Instant.now(); + final var a = new Attachment(); a.setMimetype(mimeType); a.setData(fileToUpload.getName()); a.setFilename(fileToUpload.getName()); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/DeleteAttachmentDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/DeleteAttachmentDialogFragment.java index 270c0a138..63441bbd4 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/DeleteAttachmentDialogFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/DeleteAttachmentDialogFragment.java @@ -5,7 +5,6 @@ import android.content.Context; import android.os.Bundle; import androidx.annotation.NonNull; -import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; import it.niedermann.nextcloud.deck.R; @@ -40,18 +39,18 @@ public class DeleteAttachmentDialogFragment extends DialogFragment { @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { - AlertDialog.Builder builder = new DeleteAlertDialogBuilder(requireContext()) + return new DeleteAlertDialogBuilder(requireContext()) .setTitle(getString(R.string.delete_something, attachment.getFilename())) .setMessage(R.string.attachment_delete_message) .setPositiveButton(R.string.simple_delete, (dialog, whichButton) -> deleteAttachmentListener.onAttachmentDeleted(attachment)) - .setNeutralButton(android.R.string.cancel, null); - return builder.create(); + .setNeutralButton(android.R.string.cancel, null) + .create(); } public static DialogFragment newInstance(Attachment attachment) { - final DeleteAttachmentDialogFragment dialog = new DeleteAttachmentDialogFragment(); + final var dialog = new DeleteAttachmentDialogFragment(); - final Bundle args = new Bundle(); + final var args = new Bundle(); args.putSerializable(KEY_ATTACHMENT, attachment); dialog.setArguments(args); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/picker/ContactAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/picker/ContactAdapter.java index 22ac0c694..930ab76ab 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/picker/ContactAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/picker/ContactAdapter.java @@ -1,8 +1,15 @@ package it.niedermann.nextcloud.deck.ui.card.attachments.picker; +import static android.provider.ContactsContract.CommonDataKinds.Email.DATA; +import static android.provider.ContactsContract.CommonDataKinds.Phone.LOOKUP_KEY; +import static android.provider.ContactsContract.CommonDataKinds.Phone.NUMBER; +import static android.provider.ContactsContract.Contacts.CONTENT_LOOKUP_URI; +import static android.provider.ContactsContract.Contacts.CONTENT_URI; +import static android.provider.ContactsContract.Contacts.DISPLAY_NAME; +import static android.provider.ContactsContract.Contacts.SORT_KEY_PRIMARY; +import static android.provider.ContactsContract.Contacts._ID; + import android.content.Context; -import android.database.Cursor; -import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Handler; @@ -19,21 +26,11 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.RequestBuilder; import java.io.IOException; -import java.io.InputStream; import java.util.function.BiConsumer; import it.niedermann.nextcloud.deck.databinding.ItemPickerNativeBinding; import it.niedermann.nextcloud.deck.databinding.ItemPickerUserBinding; -import static android.provider.ContactsContract.CommonDataKinds.Email.DATA; -import static android.provider.ContactsContract.CommonDataKinds.Phone.LOOKUP_KEY; -import static android.provider.ContactsContract.CommonDataKinds.Phone.NUMBER; -import static android.provider.ContactsContract.Contacts.CONTENT_LOOKUP_URI; -import static android.provider.ContactsContract.Contacts.CONTENT_URI; -import static android.provider.ContactsContract.Contacts.DISPLAY_NAME; -import static android.provider.ContactsContract.Contacts.SORT_KEY_PRIMARY; -import static android.provider.ContactsContract.Contacts._ID; - public class ContactAdapter extends AbstractCursorPickerAdapter<RecyclerView.ViewHolder> { private final int lookupKeyColumnIndex; @@ -67,22 +64,22 @@ public class ContactAdapter extends AbstractCursorPickerAdapter<RecyclerView.Vie break; } case VIEW_TYPE_ITEM: { - final ContactItemViewHolder viewHolder = (ContactItemViewHolder) holder; + final var viewHolder = (ContactItemViewHolder) holder; if (!cursor.isClosed()) { cursor.moveToPosition(position - 1); final String displayName = cursor.getString(displayNameColumnIndex); final String lookupKey = cursor.getString(lookupKeyColumnIndex); bindExecutor.execute(() -> { - try (InputStream inputStream = ContactsContract.Contacts.openContactPhotoInputStream(contentResolver, Uri.withAppendedPath(CONTENT_LOOKUP_URI, lookupKey))) { - final Bitmap thumbnail = BitmapFactory.decodeStream(inputStream); + try (final var inputStream = ContactsContract.Contacts.openContactPhotoInputStream(contentResolver, Uri.withAppendedPath(CONTENT_LOOKUP_URI, lookupKey))) { + final var thumbnail = BitmapFactory.decodeStream(inputStream); String contactInformation = ""; - try (final Cursor phoneCursor = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, new String[]{NUMBER}, LOOKUP_KEY + " = ?", new String[]{lookupKey}, null)) { + try (final var phoneCursor = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, new String[]{NUMBER}, LOOKUP_KEY + " = ?", new String[]{lookupKey}, null)) { if (phoneCursor != null && phoneCursor.moveToFirst()) { contactInformation = phoneCursor.getString(phoneCursor.getColumnIndex(NUMBER)); } } if (TextUtils.isEmpty(contactInformation)) { - try (final Cursor emailCursor = contentResolver.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, new String[]{DATA}, LOOKUP_KEY + " = ?", new String[]{lookupKey}, null)) { + try (final var emailCursor = contentResolver.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, new String[]{DATA}, LOOKUP_KEY + " = ?", new String[]{lookupKey}, null)) { if (emailCursor != null && emailCursor.moveToFirst()) { contactInformation = emailCursor.getString(emailCursor.getColumnIndex(DATA)); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/picker/GalleryPhotoPreviewItemViewHolder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/picker/GalleryPhotoPreviewItemViewHolder.java index 00a833e57..91f6bc13d 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/picker/GalleryPhotoPreviewItemViewHolder.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/picker/GalleryPhotoPreviewItemViewHolder.java @@ -1,5 +1,7 @@ package it.niedermann.nextcloud.deck.ui.card.attachments.picker; +import static androidx.camera.core.CameraSelector.DEFAULT_BACK_CAMERA; + import androidx.annotation.NonNull; import androidx.camera.core.Preview; import androidx.camera.lifecycle.ProcessCameraProvider; @@ -7,15 +9,11 @@ import androidx.core.content.ContextCompat; import androidx.lifecycle.LifecycleOwner; import androidx.recyclerview.widget.RecyclerView; -import com.google.common.util.concurrent.ListenableFuture; - import java.util.concurrent.ExecutionException; import it.niedermann.nextcloud.deck.DeckLog; import it.niedermann.nextcloud.deck.databinding.ItemPhotoPreviewBinding; -import static androidx.camera.core.CameraSelector.DEFAULT_BACK_CAMERA; - public class GalleryPhotoPreviewItemViewHolder extends RecyclerView.ViewHolder { private final ItemPhotoPreviewBinding binding; @@ -28,12 +26,12 @@ public class GalleryPhotoPreviewItemViewHolder extends RecyclerView.ViewHolder { public void bind(@NonNull Runnable openNativePicker, @NonNull LifecycleOwner lifecycleOwner) { itemView.setOnClickListener((v) -> openNativePicker.run()); - ListenableFuture<ProcessCameraProvider> cameraProviderFuture = ProcessCameraProvider.getInstance(itemView.getContext()); + final var cameraProviderFuture = ProcessCameraProvider.getInstance(itemView.getContext()); cameraProviderFuture.addListener(() -> { try { unbind(); cameraProvider = cameraProviderFuture.get(); - Preview previewUseCase = new Preview.Builder().build(); + final var previewUseCase = new Preview.Builder().build(); previewUseCase.setSurfaceProvider(binding.preview.getSurfaceProvider()); cameraProvider.bindToLifecycle(lifecycleOwner, DEFAULT_BACK_CAMERA, previewUseCase); } catch (ExecutionException | InterruptedException | IllegalArgumentException e) { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/previewdialog/PreviewDialog.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/previewdialog/PreviewDialog.java index 1f425f728..bbe0dc8a1 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/previewdialog/PreviewDialog.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/previewdialog/PreviewDialog.java @@ -1,7 +1,10 @@ package it.niedermann.nextcloud.deck.ui.card.attachments.previewdialog; +import static android.view.View.GONE; +import static android.view.View.VISIBLE; +import static it.niedermann.nextcloud.deck.DeckApplication.isDarkTheme; + import android.app.Dialog; -import android.content.Context; import android.content.DialogInterface; import android.graphics.Color; import android.os.Bundle; @@ -20,10 +23,6 @@ import com.bumptech.glide.RequestBuilder; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.DialogPreviewBinding; -import static android.view.View.GONE; -import static android.view.View.VISIBLE; -import static it.niedermann.nextcloud.deck.DeckApplication.isDarkTheme; - public class PreviewDialog extends DialogFragment { private DialogPreviewBinding binding; @@ -37,14 +36,14 @@ public class PreviewDialog extends DialogFragment { viewModel = new ViewModelProvider(requireActivity()).get(PreviewDialogViewModel.class); binding = DialogPreviewBinding.inflate(LayoutInflater.from(requireContext())); - final Context context = requireContext(); + final var context = requireContext(); this.imageBuilder$ = this.viewModel.getImageBuilder(); this.imageBuilder$.observe(requireActivity(), builder -> { if (builder == null) { binding.avatar.setVisibility(GONE); } else { - final CircularProgressDrawable circularProgressDrawable = new CircularProgressDrawable(context); + final var circularProgressDrawable = new CircularProgressDrawable(context); circularProgressDrawable.setStrokeWidth(5f); circularProgressDrawable.setCenterRadius(30f); circularProgressDrawable.setColorSchemeColors(isDarkTheme(context) ? Color.LTGRAY : Color.DKGRAY); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsAdapter.java index 4fde5a4e1..18bf21ceb 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsAdapter.java @@ -1,5 +1,8 @@ package it.niedermann.nextcloud.deck.ui.card.comments; +import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme; +import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor; + import android.content.Context; import android.view.LayoutInflater; import android.view.MenuInflater; @@ -18,9 +21,6 @@ import it.niedermann.nextcloud.deck.databinding.ItemCommentBinding; import it.niedermann.nextcloud.deck.model.Account; import it.niedermann.nextcloud.deck.model.ocs.comment.full.FullDeckComment; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor; - public class CardCommentsAdapter extends RecyclerView.Adapter<ItemCommentViewHolder> { private final int mainColor; @@ -63,7 +63,7 @@ public class CardCommentsAdapter extends RecyclerView.Adapter<ItemCommentViewHol @Override public void onBindViewHolder(@NonNull ItemCommentViewHolder holder, int position) { - final FullDeckComment comment = comments.get(position); + final var comment = comments.get(position); holder.bind(comment, account, mainColor, menuInflater, deletedListener, selectAsReplyListener, fragmentManager, (changedText) -> { if (!Objects.equals(changedText, comment.getComment().getMessage())) { DeckLog.info("Toggled checkbox in comment with localId", comment.getLocalId()); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsEditDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsEditDialogFragment.java index a61d7c1ba..2f1ed7b09 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsEditDialogFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsEditDialogFragment.java @@ -1,5 +1,7 @@ package it.niedermann.nextcloud.deck.ui.card.comments; +import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToEditTextInputLayout; + import android.app.Dialog; import android.content.Context; import android.os.Bundle; @@ -19,8 +21,6 @@ import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.DialogAddCommentBinding; import it.niedermann.nextcloud.deck.ui.branding.BrandedDialogFragment; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToEditTextInputLayout; - public class CardCommentsEditDialogFragment extends BrandedDialogFragment { private static final String BUNDLE_KEY_COMMENT_ID = "commentId"; private static final String BUNDLE_KEY_COMMENT_MESSAGE = "commentMessage"; @@ -70,11 +70,11 @@ public class CardCommentsEditDialogFragment extends BrandedDialogFragment { } public static DialogFragment newInstance(@NonNull Long commentLocalId, String message) { - Bundle bundle = new Bundle(); - bundle.putLong(BUNDLE_KEY_COMMENT_ID, commentLocalId); - bundle.putString(BUNDLE_KEY_COMMENT_MESSAGE, message); - DialogFragment fragment = new CardCommentsEditDialogFragment(); - fragment.setArguments(bundle); + final var fragment = new CardCommentsEditDialogFragment(); + final var args = new Bundle(); + args.putLong(BUNDLE_KEY_COMMENT_ID, commentLocalId); + args.putString(BUNDLE_KEY_COMMENT_MESSAGE, message); + fragment.setArguments(args); return fragment; } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsMentionProposer.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsMentionProposer.java index 7ca7a6384..60aef597b 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsMentionProposer.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsMentionProposer.java @@ -1,5 +1,7 @@ package it.niedermann.nextcloud.deck.ui.card.comments; +import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce; + import android.annotation.SuppressLint; import android.net.Uri; import android.text.Editable; @@ -26,8 +28,6 @@ import it.niedermann.nextcloud.deck.model.User; import it.niedermann.nextcloud.deck.persistence.sync.SyncManager; import it.niedermann.nextcloud.deck.ui.card.comments.util.CommentsUtil; -import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce; - public class CardCommentsMentionProposer implements TextWatcher { private final int avatarSize; @@ -72,7 +72,7 @@ public class CardCommentsMentionProposer implements TextWatcher { public void onTextChanged(CharSequence s, int start, int before, int count) { final int selectionStart = editText.getSelectionStart(); final int selectionEnd = editText.getSelectionEnd(); - final Pair<String, Integer> mentionProposal = CommentsUtil.getUserNameForMentionProposal(s.toString(), selectionStart); + final var mentionProposal = CommentsUtil.getUserNameForMentionProposal(s.toString(), selectionStart); if (mentionProposal == null || (mentionProposal.first != null && mentionProposal.first.length() == 0) || selectionStart != selectionEnd) { mentionProposer.removeAllViews(); mentionProposerWrapper.setVisibility(View.GONE); @@ -84,8 +84,8 @@ public class CardCommentsMentionProposer implements TextWatcher { mentionProposer.removeAllViews(); if (users.size() > 0) { mentionProposerWrapper.setVisibility(View.VISIBLE); - for (User user : users) { - final ImageView avatar = new ImageView(mentionProposer.getContext()); + for (final var user : users) { + final var avatar = new ImageView(mentionProposer.getContext()); avatar.setLayoutParams(layoutParams); updateListenerOfView(avatar, s, mentionProposal, user); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/ItemCommentViewHolder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/ItemCommentViewHolder.java index bfb800317..88cc1a904 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/ItemCommentViewHolder.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/ItemCommentViewHolder.java @@ -2,7 +2,6 @@ package it.niedermann.nextcloud.deck.ui.card.comments; import android.text.method.LinkMovementMethod; import android.view.MenuInflater; -import android.view.MenuItem; import android.view.View; import androidx.annotation.ColorInt; @@ -16,7 +15,6 @@ import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.time.format.FormatStyle; import java.util.HashMap; -import java.util.Map; import java.util.function.Consumer; import it.niedermann.android.util.ClipboardUtil; @@ -25,7 +23,6 @@ import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.ItemCommentBinding; import it.niedermann.nextcloud.deck.model.Account; import it.niedermann.nextcloud.deck.model.enums.DBStatus; -import it.niedermann.nextcloud.deck.model.ocs.comment.Mention; import it.niedermann.nextcloud.deck.model.ocs.comment.full.FullDeckComment; import it.niedermann.nextcloud.deck.util.DateUtil; import it.niedermann.nextcloud.deck.util.ViewUtil; @@ -43,8 +40,8 @@ public class ItemCommentViewHolder extends RecyclerView.ViewHolder { public void bind(@NonNull FullDeckComment comment, @NonNull Account account, @ColorInt int mainColor, @NonNull MenuInflater inflater, @NonNull CommentDeletedListener deletedListener, @NonNull CommentSelectAsReplyListener selectAsReplyListener, @NonNull FragmentManager fragmentManager, @NonNull Consumer<CharSequence> editListener) { ViewUtil.addAvatar(binding.avatar, account.getUrl(), comment.getComment().getActorId(), DimensionUtil.INSTANCE.dpToPx(binding.avatar.getContext(), R.dimen.icon_size_details), R.drawable.ic_person_grey600_24dp); - final Map<String, String> mentions = new HashMap<>(comment.getComment().getMentions().size()); - for (Mention mention : comment.getComment().getMentions()) { + final var mentions = new HashMap<String, String>(comment.getComment().getMentions().size()); + for (final var mention : comment.getComment().getMentions()) { mentions.put(mention.getMentionId(), mention.getMentionDisplayName()); } binding.message.setText(comment.getComment().getMessage()); @@ -57,7 +54,7 @@ public class ItemCommentViewHolder extends RecyclerView.ViewHolder { itemView.setOnCreateContextMenuListener((menu, v, menuInfo) -> { inflater.inflate(R.menu.comment_menu, menu); menu.findItem(android.R.id.copy).setOnMenuItemClickListener(item -> ClipboardUtil.INSTANCE.copyToClipboard(itemView.getContext(), comment.getComment().getMessage())); - final MenuItem replyMenuItem = menu.findItem(R.id.reply); + final var replyMenuItem = menu.findItem(R.id.reply); if (comment.getStatusEnum() != DBStatus.LOCAL_EDITED && account.getServerDeckVersionAsObject().supportsCommentsReplys()) { replyMenuItem.setOnMenuItemClickListener(item -> { selectAsReplyListener.onSelectAsReply(comment); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/util/CommentsUtil.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/util/CommentsUtil.java index 8fa24988d..5c41b7c73 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/util/CommentsUtil.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/util/CommentsUtil.java @@ -24,7 +24,7 @@ public class CommentsUtil { break; } } - if (text.length()-1 < start || text.charAt(start) != '@') { + if (text.length() - 1 < start || text.charAt(start) != '@') { return null; } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/AssigneeAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/AssigneeAdapter.java index aa8c3e8f6..4eb3f983c 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/AssigneeAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/AssigneeAdapter.java @@ -1,6 +1,7 @@ package it.niedermann.nextcloud.deck.ui.card.details; -import android.content.Context; +import static androidx.recyclerview.widget.RecyclerView.NO_ID; + import android.view.LayoutInflater; import android.view.ViewGroup; @@ -15,14 +16,12 @@ import it.niedermann.nextcloud.deck.databinding.ItemAssigneeBinding; import it.niedermann.nextcloud.deck.model.Account; import it.niedermann.nextcloud.deck.model.User; -import static androidx.recyclerview.widget.RecyclerView.NO_ID; - @SuppressWarnings("WeakerAccess") public class AssigneeAdapter extends RecyclerView.Adapter<AssigneeViewHolder> { private final Account account; @NonNull - private List<User> users = new ArrayList<>(); + private final List<User> users = new ArrayList<>(); @NonNull private final Consumer<User> userClickedListener; @@ -38,20 +37,20 @@ public class AssigneeAdapter extends RecyclerView.Adapter<AssigneeViewHolder> { @Override public long getItemId(int position) { - Long id = users.get(position).getLocalId(); + final var id = users.get(position).getLocalId(); return id == null ? NO_ID : id; } @NonNull @Override public AssigneeViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - final Context context = parent.getContext(); + final var context = parent.getContext(); return new AssigneeViewHolder(ItemAssigneeBinding.inflate(LayoutInflater.from(context))); } @Override public void onBindViewHolder(@NonNull AssigneeViewHolder holder, int position) { - final User user = users.get(position); + final var user = users.get(position); holder.bind(account, user, userClickedListener); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/AssigneeViewHolder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/AssigneeViewHolder.java index ddb1236b6..84e795dd2 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/AssigneeViewHolder.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/AssigneeViewHolder.java @@ -22,7 +22,7 @@ public class AssigneeViewHolder extends RecyclerView.ViewHolder { public void bind(@NonNull Account account, @NonNull User user, @Nullable Consumer<User> onClickListener) { ViewUtil.addAvatar(binding.avatar, account.getUrl(), user.getUid(), R.drawable.ic_person_grey600_24dp); - if(onClickListener != null) { + if (onClickListener != null) { itemView.setOnClickListener((v) -> onClickListener.accept(user)); } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardDetailsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardDetailsFragment.java index b3bb6bd53..a4e4fac72 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardDetailsFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardDetailsFragment.java @@ -1,5 +1,10 @@ package it.niedermann.nextcloud.deck.ui.card.details; +import static android.view.View.GONE; +import static android.view.View.INVISIBLE; +import static android.view.View.VISIBLE; +import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToEditTextInputLayout; + import android.content.res.ColorStateList; import android.graphics.drawable.Drawable; import android.os.Bundle; @@ -28,7 +33,6 @@ import com.wdullaer.materialdatetimepicker.date.DatePickerDialog.OnDateSetListen import com.wdullaer.materialdatetimepicker.time.TimePickerDialog; import com.wdullaer.materialdatetimepicker.time.TimePickerDialog.OnTimeSetListener; -import java.time.Instant; import java.time.LocalDate; import java.time.LocalTime; import java.time.ZoneId; @@ -56,11 +60,6 @@ import it.niedermann.nextcloud.deck.ui.card.assignee.CardAssigneeDialog; import it.niedermann.nextcloud.deck.ui.card.assignee.CardAssigneeListener; import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment; -import static android.view.View.GONE; -import static android.view.View.INVISIBLE; -import static android.view.View.VISIBLE; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToEditTextInputLayout; - public class CardDetailsFragment extends Fragment implements OnDateSetListener, OnTimeSetListener, CardAssigneeListener { private FragmentCardEditTabDetailsBinding binding; @@ -88,7 +87,7 @@ public class CardDetailsFragment extends Fragment implements OnDateSetListener, } @Px final int avatarSize = DimensionUtil.INSTANCE.dpToPx(requireContext(), R.dimen.avatar_size); - final LinearLayout.LayoutParams avatarLayoutParams = new LinearLayout.LayoutParams(avatarSize, avatarSize); + final var avatarLayoutParams = new LinearLayout.LayoutParams(avatarSize, avatarSize); avatarLayoutParams.setMargins(0, 0, DimensionUtil.INSTANCE.dpToPx(requireContext(), R.dimen.spacer_1x), 0); setupAssignees(); @@ -111,8 +110,8 @@ public class CardDetailsFragment extends Fragment implements OnDateSetListener, super.onResume(); // https://github.com/wdullaer/MaterialDateTimePicker#why-are-my-callbacks-lost-when-the-device-changes-orientation - final DatePickerDialog dpd = (DatePickerDialog) getChildFragmentManager().findFragmentByTag(BrandedDatePickerDialog.class.getCanonicalName()); - final TimePickerDialog tpd = (TimePickerDialog) getChildFragmentManager().findFragmentByTag(BrandedTimePickerDialog.class.getCanonicalName()); + final var dpd = (DatePickerDialog) getChildFragmentManager().findFragmentByTag(BrandedDatePickerDialog.class.getCanonicalName()); + final var tpd = (TimePickerDialog) getChildFragmentManager().findFragmentByTag(BrandedTimePickerDialog.class.getCanonicalName()); if (tpd != null) tpd.setOnTimeSetListener(this); if (dpd != null) dpd.setOnDateSetListener(this); } @@ -168,7 +167,7 @@ public class CardDetailsFragment extends Fragment implements OnDateSetListener, private void setupDueDate() { if (this.viewModel.getFullCard().getCard().getDueDate() != null) { - final ZonedDateTime dueDate = this.viewModel.getFullCard().getCard().getDueDate().atZone(ZoneId.systemDefault()); + final var dueDate = this.viewModel.getFullCard().getCard().getDueDate().atZone(ZoneId.systemDefault()); binding.dueDateDate.setText(dueDate == null ? null : dueDate.format(dateFormatter)); binding.dueDateTime.setText(dueDate == null ? null : dueDate.format(timeFormatter)); binding.clearDueDate.setVisibility(VISIBLE); @@ -179,7 +178,6 @@ public class CardDetailsFragment extends Fragment implements OnDateSetListener, } if (viewModel.canEdit()) { - binding.dueDateDate.setOnClickListener(v -> { final LocalDate date; if (viewModel.getFullCard() != null && viewModel.getFullCard().getCard() != null && viewModel.getFullCard().getCard().getDueDate() != null) { @@ -216,15 +214,15 @@ public class CardDetailsFragment extends Fragment implements OnDateSetListener, } private void setupLabels() { - long accountId = viewModel.getAccount().getId(); - long boardId = viewModel.getBoardId(); + final long accountId = viewModel.getAccount().getId(); + final long boardId = viewModel.getBoardId(); binding.labelsGroup.removeAllViews(); if (viewModel.canEdit()) { Long localCardId = viewModel.getFullCard().getCard().getLocalId(); localCardId = localCardId == null ? -1 : localCardId; binding.labels.setAdapter(new LabelAutoCompleteAdapter(requireActivity(), accountId, boardId, localCardId)); binding.labels.setOnItemClickListener((adapterView, view, position, id) -> { - final Label label = (Label) adapterView.getItemAtPosition(position); + final var label = (Label) adapterView.getItemAtPosition(position); if (LabelAutoCompleteAdapter.ITEM_CREATE == label.getLocalId()) { final Label newLabel = new Label(label); newLabel.setBoardId(boardId); @@ -262,7 +260,7 @@ public class CardDetailsFragment extends Fragment implements OnDateSetListener, binding.labels.setEnabled(false); } if (viewModel.getFullCard().getLabels() != null && viewModel.getFullCard().getLabels().size() > 0) { - for (Label label : viewModel.getFullCard().getLabels()) { + for (final var label : viewModel.getFullCard().getLabels()) { binding.labelsGroup.addView(createChipFromLabel(label)); } binding.labelsGroup.setVisibility(VISIBLE); @@ -272,7 +270,7 @@ public class CardDetailsFragment extends Fragment implements OnDateSetListener, } private Chip createChipFromLabel(Label label) { - final Chip chip = new Chip(requireContext()); + final var chip = new Chip(requireContext()); chip.setText(label.getTitle()); if (viewModel.canEdit()) { chip.setCloseIcon(ContextCompat.getDrawable(requireContext(), R.drawable.ic_close_circle_grey600)); @@ -333,7 +331,7 @@ public class CardDetailsFragment extends Fragment implements OnDateSetListener, int hourOfDay; int minute; - final CharSequence selectedTime = binding.dueDateTime.getText(); + final var selectedTime = binding.dueDateTime.getText(); if (TextUtils.isEmpty(selectedTime)) { hourOfDay = 0; minute = 0; @@ -343,7 +341,7 @@ public class CardDetailsFragment extends Fragment implements OnDateSetListener, minute = oldTime.getMinute(); } - final ZonedDateTime newDateTime = ZonedDateTime.of( + final var newDateTime = ZonedDateTime.of( LocalDate.of(year, monthOfYear + 1, dayOfMonth), LocalTime.of(hourOfDay, minute), ZoneId.systemDefault() @@ -360,9 +358,9 @@ public class CardDetailsFragment extends Fragment implements OnDateSetListener, @Override public void onTimeSet(TimePickerDialog view, int hourOfDay, int minute, int second) { - final Instant oldInstant = this.viewModel.getFullCard().getCard().getDueDate(); - final ZonedDateTime oldDateTime = oldInstant == null ? ZonedDateTime.now() : oldInstant.atZone(ZoneId.systemDefault()); - final ZonedDateTime newDateTime = oldDateTime.with( + final var oldInstant = this.viewModel.getFullCard().getCard().getDueDate(); + final var oldDateTime = oldInstant == null ? ZonedDateTime.now() : oldInstant.atZone(ZoneId.systemDefault()); + final var newDateTime = oldDateTime.with( LocalTime.of(hourOfDay, minute) ); @@ -379,7 +377,7 @@ public class CardDetailsFragment extends Fragment implements OnDateSetListener, if (viewModel.getFullCard().getProjects().size() > 0) { binding.projectsTitle.setVisibility(VISIBLE); binding.projects.setNestedScrollingEnabled(false); - final CardProjectsAdapter adapter = new CardProjectsAdapter(viewModel.getFullCard().getProjects(), getChildFragmentManager()); + final var adapter = new CardProjectsAdapter(viewModel.getFullCard().getProjects(), getChildFragmentManager()); binding.projects.setAdapter(adapter); binding.projects.setVisibility(VISIBLE); } else { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardProjectsAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardProjectsAdapter.java index 0c2d63d74..e58650ff7 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardProjectsAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardProjectsAdapter.java @@ -41,7 +41,7 @@ public class CardProjectsAdapter extends RecyclerView.Adapter<CardProjectsViewHo @Override public void onBindViewHolder(@NonNull CardProjectsViewHolder holder, int position) { - final OcsProjectWithResources project = projects.get(position); + final var project = projects.get(position); holder.bind(project, (v) -> CardProjectResourcesDialog.newInstance(project.getName(), project.getResources()).show(fragmentManager, CardProjectResourcesDialog.class.getSimpleName())); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourceViewHolder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourceViewHolder.java index c398d9814..27dd16651 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourceViewHolder.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourceViewHolder.java @@ -1,7 +1,10 @@ package it.niedermann.nextcloud.deck.ui.card.projectresources; +import static android.view.View.GONE; +import static android.view.View.VISIBLE; +import static it.niedermann.nextcloud.deck.util.ProjectUtil.getResourceUri; + import android.content.Intent; -import android.content.res.Resources; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -17,10 +20,6 @@ import it.niedermann.nextcloud.deck.ui.card.EditActivity; import it.niedermann.nextcloud.deck.ui.card.EditCardViewModel; import it.niedermann.nextcloud.deck.util.ProjectUtil; -import static android.view.View.GONE; -import static android.view.View.VISIBLE; -import static it.niedermann.nextcloud.deck.util.ProjectUtil.getResourceUri; - public class CardProjectResourceViewHolder extends RecyclerView.ViewHolder { @NonNull private final ItemProjectResourceBinding binding; @@ -31,8 +30,8 @@ public class CardProjectResourceViewHolder extends RecyclerView.ViewHolder { } public void bind(@NonNull EditCardViewModel viewModel, @NonNull OcsProjectResource resource, @NonNull LifecycleOwner owner) { - final Account account = viewModel.getAccount(); - final Resources resources = itemView.getResources(); + final var account = viewModel.getAccount(); + final var resources = itemView.getResources(); binding.name.setText(resource.getName()); final @Nullable String link = resource.getLink(); binding.type.setVisibility(VISIBLE); @@ -47,7 +46,7 @@ public class CardProjectResourceViewHolder extends RecyclerView.ViewHolder { } case "deck-card": { try { - long[] ids = ProjectUtil.extractBoardIdAndCardIdFromUrl(link); + final long[] ids = ProjectUtil.extractBoardIdAndCardIdFromUrl(link); if (ids.length == 2) { viewModel.getCardByRemoteID(account.getId(), ids[1]).observe(owner, (fullCard) -> { if (fullCard != null) { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourcesDialog.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourcesDialog.java index a6c1df4fe..1a2803d7e 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourcesDialog.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourcesDialog.java @@ -34,7 +34,7 @@ public class CardProjectResourcesDialog extends DialogFragment { @Override public void onAttach(@NonNull Context context) { super.onAttach(context); - final Bundle args = requireArguments(); + final var args = requireArguments(); if (!args.containsKey(KEY_RESOURCES)) { throw new IllegalArgumentException("Provide at least " + KEY_RESOURCES); } @@ -49,9 +49,7 @@ public class CardProjectResourcesDialog extends DialogFragment { binding = DialogProjectResourcesBinding.inflate(LayoutInflater.from(requireContext())); viewModel = new ViewModelProvider(requireActivity()).get(EditCardViewModel.class); - final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireContext()); - - return dialogBuilder + return new AlertDialog.Builder(requireContext()) .setTitle(projectName) .setView(binding.getRoot()) .setNeutralButton(R.string.simple_close, null) @@ -60,14 +58,14 @@ public class CardProjectResourcesDialog extends DialogFragment { @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { - final CardProjectResourceAdapter adapter = new CardProjectResourceAdapter(viewModel, resources, requireActivity()); + final var adapter = new CardProjectResourceAdapter(viewModel, resources, requireActivity()); binding.getRoot().setAdapter(adapter); super.onActivityCreated(savedInstanceState); } public static DialogFragment newInstance(@Nullable String projectName, @NonNull List<OcsProjectResource> resources) { - final DialogFragment fragment = new CardProjectResourcesDialog(); - final Bundle args = new Bundle(); + final var fragment = new CardProjectResourcesDialog(); + final var args = new Bundle(); args.putString(KEY_PROJECT_NAME, projectName); args.putSerializable(KEY_RESOURCES, new ArrayList<>(resources)); fragment.setArguments(args); |