diff options
author | desperateCoder <echotodevnull@gmail.com> | 2021-08-03 13:02:32 +0300 |
---|---|---|
committer | desperateCoder <echotodevnull@gmail.com> | 2021-08-03 13:02:32 +0300 |
commit | 8c18d8b6652f67b480da65c6b22672736629e815 (patch) | |
tree | 6448ba25338eedae54c5398a686bc0640604dcfa /app/src/main/java/it | |
parent | 7a45c8606b54d4a9329cd716a4902ef06a48f9d5 (diff) | |
parent | 525173558538c9673ffa8fbbcb7d5ef17166449b (diff) |
Merge branch 'master' of github.com:stefan-niedermann/nextcloud-deck
Diffstat (limited to 'app/src/main/java/it')
51 files changed, 262 insertions, 284 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/DeckApplication.java b/app/src/main/java/it/niedermann/nextcloud/deck/DeckApplication.java index 85d3d0f1c..0b26e97f5 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/DeckApplication.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/DeckApplication.java @@ -1,8 +1,10 @@ package it.niedermann.nextcloud.deck; +import static androidx.appcompat.app.AppCompatDelegate.setDefaultNightMode; +import static androidx.lifecycle.Transformations.distinctUntilChanged; + import android.app.Application; import android.content.Context; -import android.content.SharedPreferences; import android.content.res.Configuration; import androidx.annotation.ColorInt; @@ -14,9 +16,6 @@ import androidx.preference.PreferenceManager; import it.niedermann.android.sharedpreferences.SharedPreferenceIntLiveData; import it.niedermann.nextcloud.deck.model.Account; -import static androidx.appcompat.app.AppCompatDelegate.setDefaultNightMode; -import static androidx.lifecycle.Transformations.distinctUntilChanged; - public class DeckApplication extends Application { public static final long NO_ACCOUNT_ID = -1L; @@ -35,7 +34,7 @@ public class DeckApplication extends Application { PREF_KEY_DEBUGGING = getString(R.string.pref_key_debugging); setAppTheme(getAppTheme(this)); DeckLog.enablePersistentLogs(isPersistentLoggingEnabled(this)); - final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); + final var sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); currentAccountColor$ = distinctUntilChanged(new SharedPreferenceIntLiveData(sharedPreferences, getString(R.string.shared_preference_last_account_color), ContextCompat.getColor(this, R.color.defaultBrand))); @@ -57,7 +56,7 @@ public class DeckApplication extends Application { // --------- public static boolean isPersistentLoggingEnabled(@NonNull Context context) { - final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); + final var sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); final boolean enabled = sharedPreferences.getBoolean(PREF_KEY_DEBUGGING, false); DeckLog.log("--- Read:", PREF_KEY_DEBUGGING, "→", enabled); return enabled; @@ -72,7 +71,7 @@ public class DeckApplication extends Application { } public static int getAppTheme(@NonNull Context context) { - final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + final var prefs = PreferenceManager.getDefaultSharedPreferences(context); String mode; try { mode = prefs.getString(PREF_KEY_THEME, context.getString(R.string.pref_value_theme_system_default)); @@ -101,7 +100,7 @@ public class DeckApplication extends Application { // -------------------------------------- public static void saveCurrentAccount(@NonNull Context context, @NonNull Account account) { - final SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit(); + final var editor = PreferenceManager.getDefaultSharedPreferences(context).edit(); DeckLog.log("--- Write:", context.getString(R.string.shared_preference_last_account), "→", account.getId()); editor.putLong(context.getString(R.string.shared_preference_last_account), account.getId()); DeckLog.log("--- Write:", context.getString(R.string.shared_preference_last_account_color), "→", account.getColor()); @@ -119,42 +118,42 @@ public class DeckApplication extends Application { @ColorInt public static int readCurrentAccountColor(@NonNull Context context) { - final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext()); + final var sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext()); @ColorInt final int accountColor = sharedPreferences.getInt(context.getString(R.string.shared_preference_last_account_color), context.getApplicationContext().getResources().getColor(R.color.defaultBrand)); DeckLog.log("--- Read:", context.getString(R.string.shared_preference_last_account_color), "→", accountColor); return accountColor; } public static long readCurrentAccountId(@NonNull Context context) { - final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); + final var sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); final long accountId = sharedPreferences.getLong(context.getString(R.string.shared_preference_last_account), NO_ACCOUNT_ID); DeckLog.log("--- Read:", context.getString(R.string.shared_preference_last_account), "→", accountId); return accountId; } public static void saveCurrentBoardId(@NonNull Context context, long accountId, long boardId) { - final SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit(); + final var editor = PreferenceManager.getDefaultSharedPreferences(context).edit(); DeckLog.log("--- Write:", context.getString(R.string.shared_preference_last_board_for_account_) + accountId, "→", boardId); editor.putLong(context.getString(R.string.shared_preference_last_board_for_account_) + accountId, boardId); editor.apply(); } public static long readCurrentBoardId(@NonNull Context context, long accountId) { - final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); + final var sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); final long boardId = sharedPreferences.getLong(context.getString(R.string.shared_preference_last_board_for_account_) + accountId, NO_BOARD_ID); DeckLog.log("--- Read:", context.getString(R.string.shared_preference_last_board_for_account_) + accountId, "→", boardId); return boardId; } public static void saveCurrentStackId(@NonNull Context context, long accountId, long boardId, long stackId) { - final SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit(); + final var editor = PreferenceManager.getDefaultSharedPreferences(context).edit(); DeckLog.log("--- Write:", context.getString(R.string.shared_preference_last_stack_for_account_and_board_) + accountId + "_" + boardId, "→", stackId); editor.putLong(context.getString(R.string.shared_preference_last_stack_for_account_and_board_) + accountId + "_" + boardId, stackId); editor.apply(); } public static long readCurrentStackId(@NonNull Context context, long accountId, long boardId) { - final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); + final var sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); final long savedStackId = sharedPreferences.getLong(context.getString(R.string.shared_preference_last_stack_for_account_and_board_) + accountId + "_" + boardId, NO_STACK_ID); DeckLog.log("--- Read:", context.getString(R.string.shared_preference_last_stack_for_account_and_board_) + accountId + "_" + boardId, "→", savedStackId); return savedStackId; 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/branding/NewCardDialog.java index 84a3b1d0f..5332dc0e0 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/NewCardDialog.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/NewCardDialog.java @@ -1,5 +1,7 @@ package it.niedermann.nextcloud.deck.ui.branding; +import static androidx.lifecycle.Transformations.distinctUntilChanged; + import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; @@ -30,8 +32,6 @@ import it.niedermann.nextcloud.deck.ui.card.EditActivity; import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment; import it.niedermann.nextcloud.deck.ui.preparecreate.PrepareCreateViewModel; -import static androidx.lifecycle.Transformations.distinctUntilChanged; - public class NewCardDialog extends DialogFragment implements DialogInterface.OnClickListener { private PrepareCreateViewModel viewModel; @@ -53,7 +53,7 @@ public class NewCardDialog extends DialogFragment implements DialogInterface.OnC @Override public void onAttach(@NonNull Context context) { super.onAttach(context); - final Bundle args = getArguments(); + final var args = getArguments(); if (args == null) { throw new IllegalArgumentException("Provide " + ARG_ACCOUNT + ", " + ARG_BOARD_LOCAL_ID + " and " + ARG_STACK_LOCAL_ID); } @@ -69,7 +69,7 @@ public class NewCardDialog extends DialogFragment implements DialogInterface.OnC public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { binding = DialogNewCardBinding.inflate(requireActivity().getLayoutInflater()); - final AlertDialog dialog = new AlertDialog.Builder(requireActivity()) + final var dialog = new AlertDialog.Builder(requireActivity()) .setTitle(R.string.add_card) .setView(binding.getRoot()) .setPositiveButton(R.string.edit, null) @@ -113,9 +113,13 @@ public class NewCardDialog extends DialogFragment implements DialogInterface.OnC if (isPending) { binding.inputWrapper.setVisibility(View.INVISIBLE); binding.progressCircular.setVisibility(View.VISIBLE); + dialog.getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(false); + dialog.getButton(DialogInterface.BUTTON_NEGATIVE).setEnabled(false); } else { binding.inputWrapper.setVisibility(View.VISIBLE); binding.progressCircular.setVisibility(View.GONE); + dialog.getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(true); + dialog.getButton(DialogInterface.BUTTON_NEGATIVE).setEnabled(true); } }); @@ -155,10 +159,10 @@ public class NewCardDialog extends DialogFragment implements DialogInterface.OnC } if (Boolean.FALSE.equals(isPending.getValue())) { isPending.setValue(true); - final Editable currentUserInput = binding.input.getText(); + final var currentUserInput = binding.input.getText(); if (inputIsValid(currentUserInput)) { - final FullCard fullCard = viewModel.createFullCard(account.getServerDeckVersionAsObject(), currentUserInput.toString()); - viewModel.saveCard(account.getId(), boardLocalId, stackLocalId, fullCard, new IResponseCallback<FullCard>() { + final var fullCard = viewModel.createFullCard(account.getServerDeckVersionAsObject(), currentUserInput.toString()); + viewModel.saveCard(account.getId(), boardLocalId, stackLocalId, fullCard, new IResponseCallback<>() { @Override public void onResponse(FullCard createdCard) { requireActivity().runOnUiThread(() -> { @@ -193,8 +197,8 @@ public class NewCardDialog extends DialogFragment implements DialogInterface.OnC } public static DialogFragment newInstance(@NonNull Account account, long boardLocalId, long stackLocalId, @ColorInt int brand) { - final DialogFragment fragment = new NewCardDialog(); - final Bundle args = new Bundle(); + final var fragment = new NewCardDialog(); + final var args = new Bundle(); args.putSerializable(ARG_ACCOUNT, account); args.putLong(ARG_BOARD_LOCAL_ID, boardLocalId); args.putLong(ARG_STACK_LOCAL_ID, stackLocalId); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionActivity.java index ac6335b90..31a20bb33 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionActivity.java @@ -23,7 +23,7 @@ public class ExceptionActivity extends AppCompatActivity { protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - final ActivityExceptionBinding binding = ActivityExceptionBinding.inflate(getLayoutInflater()); + final var binding = ActivityExceptionBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); setSupportActionBar(binding.toolbar); @@ -34,7 +34,7 @@ public class ExceptionActivity extends AppCompatActivity { throwable = new Exception("Could not get exception"); } - final TipsAdapter adapter = new TipsAdapter(this::startActivity); + final var adapter = new TipsAdapter(this::startActivity); final String debugInfo = "Full Crash:\n\n" + ExceptionUtil.INSTANCE.getDebugInfos(this, throwable, BuildConfig.FLAVOR); binding.tips.setAdapter(adapter); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionDialogFragment.java index 7a84ce0b6..987394b4b 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionDialogFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionDialogFragment.java @@ -34,7 +34,7 @@ public class ExceptionDialogFragment extends AppCompatDialogFragment { @Override public void onAttach(@NonNull Context context) { super.onAttach(context); - final Bundle args = getArguments(); + final var args = getArguments(); if (args != null) { this.throwable = (Throwable) args.getSerializable(KEY_THROWABLE); if (this.throwable == null) { @@ -47,10 +47,10 @@ public class ExceptionDialogFragment extends AppCompatDialogFragment { @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { - final View view = View.inflate(getContext(), R.layout.dialog_exception, null); - final DialogExceptionBinding binding = DialogExceptionBinding.bind(view); + final var view = View.inflate(getContext(), R.layout.dialog_exception, null); + final var binding = DialogExceptionBinding.bind(view); - final TipsAdapter adapter = new TipsAdapter((actionIntent) -> requireActivity().startActivity(actionIntent)); + final var adapter = new TipsAdapter((actionIntent) -> requireActivity().startActivity(actionIntent)); final String debugInfos = ExceptionUtil.INSTANCE.getDebugInfos(requireContext(), throwable, BuildConfig.FLAVOR, account == null ? null : account.getServerDeckVersion()); @@ -73,10 +73,10 @@ public class ExceptionDialogFragment extends AppCompatDialogFragment { } public static DialogFragment newInstance(Throwable throwable, @Nullable Account account) { - final Bundle args = new Bundle(); + final var fragment = new ExceptionDialogFragment(); + final var args = new Bundle(); args.putSerializable(KEY_THROWABLE, throwable); args.putSerializable(KEY_ACCOUNT, account); - final DialogFragment fragment = new ExceptionDialogFragment(); fragment.setArguments(args); return fragment; } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/tips/TipsAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/tips/TipsAdapter.java index 04ed59c46..6d0c3ff5e 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/tips/TipsAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/tips/TipsAdapter.java @@ -1,5 +1,8 @@ package it.niedermann.nextcloud.deck.ui.exception.tips; +import static android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS; +import static it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment.INTENT_EXTRA_BUTTON_TEXT; + import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; @@ -8,7 +11,6 @@ import android.os.Build.VERSION; import android.os.Build.VERSION_CODES; import android.provider.Settings; import android.view.LayoutInflater; -import android.view.View; import android.view.ViewGroup; import androidx.annotation.NonNull; @@ -38,9 +40,6 @@ import it.niedermann.nextcloud.deck.exceptions.OfflineException; import it.niedermann.nextcloud.deck.exceptions.UploadAttachmentFailedException; import it.niedermann.nextcloud.deck.model.Account; -import static android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS; -import static it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment.INTENT_EXTRA_BUTTON_TEXT; - public class TipsAdapter extends RecyclerView.Adapter<TipsViewHolder> { private static final String[] APPS = new String[]{Constants.PACKAGE_NAME_PROD, Constants.PACKAGE_NAME_DEV}; @@ -60,8 +59,8 @@ public class TipsAdapter extends RecyclerView.Adapter<TipsViewHolder> { @NonNull @Override public TipsViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - final View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_tip, parent, false); - return new TipsViewHolder(v); + final var view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_tip, parent, false); + return new TipsViewHolder(view); } @Override @@ -191,7 +190,7 @@ public class TipsAdapter extends RecyclerView.Adapter<TipsViewHolder> { @Nullable private static Intent getOpenFilesIntent(@NonNull Context context) { - final PackageManager pm = context.getPackageManager(); + final var pm = context.getPackageManager(); for (String app : APPS) { try { pm.getPackageInfo(app, PackageManager.GET_ACTIVITIES); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/tips/TipsViewHolder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/tips/TipsViewHolder.java index 7d254459e..8a66c8cbf 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/tips/TipsViewHolder.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/tips/TipsViewHolder.java @@ -1,5 +1,7 @@ package it.niedermann.nextcloud.deck.ui.exception.tips; +import static it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment.INTENT_EXTRA_BUTTON_TEXT; + import android.content.Intent; import android.view.View; @@ -9,8 +11,6 @@ import androidx.recyclerview.widget.RecyclerView; import it.niedermann.nextcloud.deck.databinding.ItemTipBinding; -import static it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment.INTENT_EXTRA_BUTTON_TEXT; - public class TipsViewHolder extends RecyclerView.ViewHolder { private final ItemTipBinding binding; @@ -22,7 +22,7 @@ public class TipsViewHolder extends RecyclerView.ViewHolder { public void bind(@NonNull TipsModel tip, @NonNull Consumer<Intent> actionButtonClickedListener) { binding.tip.setText(tip.getText()); - final Intent actionIntent = tip.getActionIntent(); + final var actionIntent = tip.getActionIntent(); if (actionIntent != null && actionIntent.hasExtra(INTENT_EXTRA_BUTTON_TEXT)) { binding.actionButton.setVisibility(View.VISIBLE); binding.actionButton.setText(actionIntent.getIntExtra(INTENT_EXTRA_BUTTON_TEXT, 0)); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDialogFragment.java index 6bdd7a588..94101fff9 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDialogFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDialogFragment.java @@ -1,5 +1,7 @@ package it.niedermann.nextcloud.deck.ui.filter; +import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme; + import android.app.Dialog; import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; @@ -11,7 +13,6 @@ import androidx.appcompat.app.AlertDialog; import androidx.core.content.ContextCompat; import androidx.fragment.app.DialogFragment; import androidx.fragment.app.Fragment; -import androidx.lifecycle.LiveData; import androidx.lifecycle.ViewModelProvider; import androidx.viewpager2.adapter.FragmentStateAdapter; import androidx.viewpager2.widget.ViewPager2; @@ -22,11 +23,8 @@ import it.niedermann.android.util.ColorUtil; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.DialogFilterBinding; import it.niedermann.nextcloud.deck.model.enums.EDueType; -import it.niedermann.nextcloud.deck.model.internal.FilterInformation; import it.niedermann.nextcloud.deck.ui.branding.BrandedDialogFragment; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme; - public class FilterDialogFragment extends BrandedDialogFragment { private DialogFilterBinding binding; @@ -44,19 +42,21 @@ public class FilterDialogFragment extends BrandedDialogFragment { public Dialog onCreateDialog(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - indicator = ContextCompat.getDrawable(requireContext(), R.drawable.circle_grey600_8dp); + final var context = requireContext(); + + indicator = ContextCompat.getDrawable(context, R.drawable.circle_grey600_8dp); assert indicator != null; - indicator.setColorFilter(ContextCompat.getColor(getContext(), R.color.defaultBrand), PorterDuff.Mode.SRC_ATOP); + indicator.setColorFilter(ContextCompat.getColor(context, R.color.defaultBrand), PorterDuff.Mode.SRC_ATOP); filterViewModel = new ViewModelProvider(requireActivity()).get(FilterViewModel.class); - final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireContext()); + final var dialogBuilder = new AlertDialog.Builder(context); binding = DialogFilterBinding.inflate(requireActivity().getLayoutInflater()); binding.viewPager.setAdapter(new TabsPagerAdapter(this)); binding.viewPager.setOffscreenPageLimit(tabTitles.length); - LiveData<FilterInformation> filterInformationDraft = filterViewModel.getFilterInformationDraft(); + final var filterInformationDraft = filterViewModel.getFilterInformationDraft(); new TabLayoutMediator(binding.tabLayout, binding.viewPager, (tab, position) -> { filterInformationDraft.observe(this, (draft) -> { switch (position) { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDueTypeFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDueTypeFragment.java index 01ba1a966..5134498b2 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDueTypeFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDueTypeFragment.java @@ -1,5 +1,7 @@ package it.niedermann.nextcloud.deck.ui.filter; +import static java.util.Objects.requireNonNull; + import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -13,8 +15,6 @@ import androidx.lifecycle.ViewModelProvider; import it.niedermann.nextcloud.deck.databinding.DialogFilterDuedateBinding; import it.niedermann.nextcloud.deck.model.enums.EDueType; -import static java.util.Objects.requireNonNull; - public class FilterDueTypeFragment extends Fragment implements SelectionListener<EDueType> { private FilterViewModel filterViewModel; @@ -23,7 +23,7 @@ public class FilterDueTypeFragment extends Fragment implements SelectionListener @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - final DialogFilterDuedateBinding binding = DialogFilterDuedateBinding.inflate(requireActivity().getLayoutInflater()); + final var binding = DialogFilterDuedateBinding.inflate(requireActivity().getLayoutInflater()); filterViewModel = new ViewModelProvider(requireActivity()).get(FilterViewModel.class); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterLabelsAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterLabelsAdapter.java index 39fb791be..83b8f8f3e 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterLabelsAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterLabelsAdapter.java @@ -43,7 +43,7 @@ public class FilterLabelsAdapter extends RecyclerView.Adapter<FilterLabelsAdapte @Override public long getItemId(int position) { - @Nullable final Label label = labels.get(position); + @Nullable final var label = labels.get(position); return label == null ? -1L : label.getLocalId(); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterLabelsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterLabelsFragment.java index e7d693185..b4eb17d0e 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterLabelsFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterLabelsFragment.java @@ -1,5 +1,8 @@ package it.niedermann.nextcloud.deck.ui.filter; +import static java.util.Objects.requireNonNull; +import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce; + import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -14,9 +17,6 @@ import it.niedermann.nextcloud.deck.databinding.DialogFilterLabelsBinding; import it.niedermann.nextcloud.deck.model.Label; import it.niedermann.nextcloud.deck.ui.MainViewModel; -import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce; -import static java.util.Objects.requireNonNull; - public class FilterLabelsFragment extends Fragment implements SelectionListener<Label> { private FilterViewModel filterViewModel; @@ -25,8 +25,8 @@ public class FilterLabelsFragment extends Fragment implements SelectionListener< @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - final DialogFilterLabelsBinding binding = DialogFilterLabelsBinding.inflate(requireActivity().getLayoutInflater()); - final MainViewModel mainViewModel = new ViewModelProvider(requireActivity()).get(MainViewModel.class); + final var binding = DialogFilterLabelsBinding.inflate(requireActivity().getLayoutInflater()); + final var mainViewModel = new ViewModelProvider(requireActivity()).get(MainViewModel.class); filterViewModel = new ViewModelProvider(requireActivity()).get(FilterViewModel.class); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterUserFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterUserFragment.java index 6ffaec6a6..708e2e541 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterUserFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterUserFragment.java @@ -1,5 +1,8 @@ package it.niedermann.nextcloud.deck.ui.filter; +import static java.util.Objects.requireNonNull; +import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce; + import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -16,9 +19,6 @@ import it.niedermann.nextcloud.deck.databinding.DialogFilterAssigneesBinding; import it.niedermann.nextcloud.deck.model.User; import it.niedermann.nextcloud.deck.ui.MainViewModel; -import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce; -import static java.util.Objects.requireNonNull; - public class FilterUserFragment extends Fragment implements SelectionListener<User> { private FilterViewModel filterViewModel; @@ -27,8 +27,8 @@ public class FilterUserFragment extends Fragment implements SelectionListener<Us @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - final DialogFilterAssigneesBinding binding = DialogFilterAssigneesBinding.inflate(requireActivity().getLayoutInflater()); - final MainViewModel mainViewModel = new ViewModelProvider(requireActivity()).get(MainViewModel.class); + final var binding = DialogFilterAssigneesBinding.inflate(requireActivity().getLayoutInflater()); + final var mainViewModel = new ViewModelProvider(requireActivity()).get(MainViewModel.class); filterViewModel = new ViewModelProvider(requireActivity()).get(FilterViewModel.class); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterViewModel.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterViewModel.java index 7cd3c1c80..acdab52e7 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterViewModel.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterViewModel.java @@ -1,5 +1,8 @@ package it.niedermann.nextcloud.deck.ui.filter; +import static androidx.lifecycle.Transformations.distinctUntilChanged; +import static androidx.lifecycle.Transformations.map; + import android.app.Application; import androidx.annotation.IntRange; @@ -17,9 +20,6 @@ import it.niedermann.nextcloud.deck.model.enums.EDueType; import it.niedermann.nextcloud.deck.model.internal.FilterInformation; import it.niedermann.nextcloud.deck.persistence.sync.SyncManager; -import static androidx.lifecycle.Transformations.distinctUntilChanged; -import static androidx.lifecycle.Transformations.map; - @SuppressWarnings("WeakerAccess") public class FilterViewModel extends AndroidViewModel { @@ -43,7 +43,7 @@ public class FilterViewModel extends AndroidViewModel { } public void clearFilterInformation(boolean alsoFilterText) { - final FilterInformation newFilterInformation = new FilterInformation(); + final var newFilterInformation = new FilterInformation(); if (alsoFilterText) { final FilterInformation oldFilterInformation = this.filterInformation.getValue(); newFilterInformation.setFilterText(oldFilterInformation != null ? oldFilterInformation.getFilterText() : ""); @@ -73,43 +73,43 @@ public class FilterViewModel extends AndroidViewModel { } public void setFilterInformationDraftDueType(@NonNull EDueType dueType) { - FilterInformation newDraft = new FilterInformation(filterInformationDraft.getValue()); + final var newDraft = new FilterInformation(filterInformationDraft.getValue()); newDraft.setDueType(dueType); this.filterInformationDraft.postValue(newDraft); } public void addFilterInformationDraftLabel(@NonNull Label label) { - FilterInformation newDraft = new FilterInformation(filterInformationDraft.getValue()); + final var newDraft = new FilterInformation(filterInformationDraft.getValue()); newDraft.addLabel(label); this.filterInformationDraft.postValue(newDraft); } public void addFilterInformationUser(@NonNull User user) { - FilterInformation newDraft = new FilterInformation(filterInformationDraft.getValue()); + final var newDraft = new FilterInformation(filterInformationDraft.getValue()); newDraft.addUser(user); this.filterInformationDraft.postValue(newDraft); } public void setNotAssignedUser(boolean notAssignedUser) { - FilterInformation newDraft = new FilterInformation(filterInformationDraft.getValue()); + final var newDraft = new FilterInformation(filterInformationDraft.getValue()); newDraft.setNoAssignedUser(notAssignedUser); this.filterInformationDraft.postValue(newDraft); } public void setNotAssignedLabel(boolean notAssignedLabel) { - FilterInformation newDraft = new FilterInformation(filterInformationDraft.getValue()); + final var newDraft = new FilterInformation(filterInformationDraft.getValue()); newDraft.setNoAssignedLabel(notAssignedLabel); this.filterInformationDraft.postValue(newDraft); } public void removeFilterInformationLabel(@NonNull Label label) { - FilterInformation newDraft = new FilterInformation(filterInformationDraft.getValue()); + final var newDraft = new FilterInformation(filterInformationDraft.getValue()); newDraft.removeLabel(label); this.filterInformationDraft.postValue(newDraft); } public void removeFilterInformationUser(@NonNull User user) { - FilterInformation newDraft = new FilterInformation(filterInformationDraft.getValue()); + final var newDraft = new FilterInformation(filterInformationDraft.getValue()); newDraft.removeUser(user); this.filterInformationDraft.postValue(newDraft); } @@ -120,7 +120,7 @@ public class FilterViewModel extends AndroidViewModel { public void setFilterText(@NonNull String filterText) { DeckLog.info("New filterText:", filterText); - FilterInformation newDraft = new FilterInformation(filterInformation.getValue()); + final var newDraft = new FilterInformation(filterInformation.getValue()); newDraft.setFilterText(filterText); this.filterInformation.postValue(newDraft); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountAdapter.java index c316705d0..29c7996c6 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountAdapter.java @@ -45,7 +45,7 @@ public class ManageAccountAdapter extends RecyclerView.Adapter<ManageAccountView @Override public void onBindViewHolder(@NonNull ManageAccountViewHolder holder, int position) { - final Account account = accounts.get(position); + final var account = accounts.get(position); holder.bind(account, (clickedAccount) -> { setCurrentAccount(clickedAccount); onAccountClick.accept(clickedAccount); @@ -58,7 +58,7 @@ public class ManageAccountAdapter extends RecyclerView.Adapter<ManageAccountView } } - Account newAccount = accounts.size() > 0 ? accounts.get(0) : null; + final var newAccount = accounts.size() > 0 ? accounts.get(0) : null; setCurrentAccount(newAccount); onAccountDelete.accept(new Pair<>(accountToDelete, newAccount)); }), currentAccount != null && currentAccount.getId().equals(account.getId())); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/movecard/MoveCardDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/movecard/MoveCardDialogFragment.java index 442f2c6eb..19fc401c8 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/movecard/MoveCardDialogFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/movecard/MoveCardDialogFragment.java @@ -1,5 +1,8 @@ package it.niedermann.nextcloud.deck.ui.movecard; +import static android.view.View.GONE; +import static android.view.View.VISIBLE; + import android.content.Context; import android.content.res.ColorStateList; import android.os.Bundle; @@ -23,9 +26,6 @@ import it.niedermann.nextcloud.deck.ui.pickstack.PickStackFragment; import it.niedermann.nextcloud.deck.ui.pickstack.PickStackListener; import it.niedermann.nextcloud.deck.ui.pickstack.PickStackViewModel; -import static android.view.View.GONE; -import static android.view.View.VISIBLE; - public class MoveCardDialogFragment extends BrandedDialogFragment implements PickStackListener { private static final String KEY_ORIGIN_ACCOUNT_ID = "account_id"; @@ -119,14 +119,14 @@ public class MoveCardDialogFragment extends BrandedDialogFragment implements Pic } public static DialogFragment newInstance(long originAccountId, long originBoardLocalId, String originCardTitle, Long originCardLocalId, boolean hasAttachmentsOrComments) { - final DialogFragment dialogFragment = new MoveCardDialogFragment(); - final Bundle args = new Bundle(); + final var fragment = new MoveCardDialogFragment(); + final var args = new Bundle(); args.putLong(KEY_ORIGIN_ACCOUNT_ID, originAccountId); args.putLong(KEY_ORIGIN_BOARD_LOCAL_ID, originBoardLocalId); args.putString(KEY_ORIGIN_CARD_TITLE, originCardTitle); args.putLong(KEY_ORIGIN_CARD_LOCAL_ID, originCardLocalId); args.putBoolean(KEY_ORIGIN_CARD_HAS_ATTACHMENTS_OR_COMMENTS, hasAttachmentsOrComments); - dialogFragment.setArguments(args); - return dialogFragment; + fragment.setArguments(args); + return fragment; } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/pickstack/PickStackFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/pickstack/PickStackFragment.java index 6408f6b64..ab41e71b5 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/pickstack/PickStackFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/pickstack/PickStackFragment.java @@ -1,5 +1,10 @@ package it.niedermann.nextcloud.deck.ui.pickstack; +import static androidx.lifecycle.Transformations.switchMap; +import static it.niedermann.nextcloud.deck.DeckApplication.readCurrentAccountId; +import static it.niedermann.nextcloud.deck.DeckApplication.readCurrentBoardId; +import static it.niedermann.nextcloud.deck.DeckApplication.readCurrentStackId; + import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; @@ -26,11 +31,6 @@ import it.niedermann.nextcloud.deck.ui.preparecreate.BoardAdapter; import it.niedermann.nextcloud.deck.ui.preparecreate.SelectedListener; import it.niedermann.nextcloud.deck.ui.preparecreate.StackAdapter; -import static androidx.lifecycle.Transformations.switchMap; -import static it.niedermann.nextcloud.deck.DeckApplication.readCurrentAccountId; -import static it.niedermann.nextcloud.deck.DeckApplication.readCurrentBoardId; -import static it.niedermann.nextcloud.deck.DeckApplication.readCurrentStackId; - public class PickStackFragment extends Fragment { private FragmentPickStackBinding binding; @@ -52,7 +52,7 @@ public class PickStackFragment extends Fragment { @Nullable private LiveData<List<Board>> boardsLiveData; @NonNull - private Observer<List<Board>> boardsObserver = (boards) -> { + private final Observer<List<Board>> boardsObserver = (boards) -> { boardAdapter.clear(); boardAdapter.addAll(boards); binding.boardSelect.setEnabled(true); @@ -61,7 +61,7 @@ public class PickStackFragment extends Fragment { binding.boardSelect.setEnabled(true); Board boardToSelect = null; - for (Board board : boards) { + for (final var board : boards) { if (board.getLocalId() == lastBoardId) { boardToSelect = board; break; @@ -88,7 +88,7 @@ public class PickStackFragment extends Fragment { binding.stackSelect.setEnabled(true); Stack stackToSelect = null; - for (Stack stack : stacks) { + for (final var stack : stacks) { if (stack.getLocalId() == lastStackId) { stackToSelect = stack; break; @@ -114,7 +114,7 @@ public class PickStackFragment extends Fragment { } else { throw new IllegalArgumentException("Caller must implement " + PickStackListener.class.getSimpleName()); } - final Bundle args = getArguments(); + final var args = getArguments(); if (args != null) { this.showBoardsWithoutEditPermission = args.getBoolean(KEY_SHOW_BOARDS_WITHOUT_EDIT_PERMISSION, false); } @@ -194,8 +194,8 @@ public class PickStackFragment extends Fragment { } public static PickStackFragment newInstance(boolean showBoardsWithoutEditPermission) { - final PickStackFragment fragment = new PickStackFragment(); - final Bundle args = new Bundle(); + final var fragment = new PickStackFragment(); + final var args = new Bundle(); args.putBoolean(KEY_SHOW_BOARDS_WITHOUT_EDIT_PERMISSION, showBoardsWithoutEditPermission); fragment.setArguments(args); return fragment; diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/AccountAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/AccountAdapter.java index 9534b51b4..4905909f0 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/AccountAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/AccountAdapter.java @@ -40,7 +40,7 @@ public class AccountAdapter extends AbstractAdapter<Account> { binding = ItemPrepareCreateAccountBinding.bind(convertView); } - final Account item = getItem(position); + final var item = getItem(position); if (item != null) { binding.username.setText(item.getUserName()); try { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/BoardAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/BoardAdapter.java index c27fa04ee..e0a7c68c0 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/BoardAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/BoardAdapter.java @@ -34,10 +34,10 @@ public class BoardAdapter extends AbstractAdapter<Board> { binding = ItemPrepareCreateBoardBinding.bind(convertView); } - final Board item = getItem(position); - if (item != null) { - binding.boardTitle.setText(item.getTitle()); - binding.avatar.setImageDrawable(ViewUtil.getTintedImageView(binding.avatar.getContext(), R.drawable.circle_grey600_36dp, item.getColor())); + final var board = getItem(position); + if (board != null) { + binding.boardTitle.setText(board.getTitle()); + binding.avatar.setImageDrawable(ViewUtil.getTintedImageView(binding.avatar.getContext(), R.drawable.circle_grey600_36dp, board.getColor())); } else { DeckLog.logError(new IllegalArgumentException("No item for position " + position)); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/PrepareCreateActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/PrepareCreateActivity.java index ccb7c8a38..0557001b7 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/PrepareCreateActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/PrepareCreateActivity.java @@ -1,5 +1,9 @@ package it.niedermann.nextcloud.deck.ui.preparecreate; +import static it.niedermann.nextcloud.deck.DeckApplication.saveCurrentAccount; +import static it.niedermann.nextcloud.deck.DeckApplication.saveCurrentBoardId; +import static it.niedermann.nextcloud.deck.DeckApplication.saveCurrentStackId; + import android.annotation.SuppressLint; import android.content.Intent; import android.os.Bundle; @@ -8,7 +12,6 @@ import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.appcompat.app.ActionBar; import androidx.lifecycle.ViewModelProvider; import it.niedermann.nextcloud.deck.R; @@ -18,10 +21,6 @@ import it.niedermann.nextcloud.deck.model.full.FullCard; import it.niedermann.nextcloud.deck.ui.PickStackActivity; import it.niedermann.nextcloud.deck.ui.card.EditActivity; -import static it.niedermann.nextcloud.deck.DeckApplication.saveCurrentAccount; -import static it.niedermann.nextcloud.deck.DeckApplication.saveCurrentBoardId; -import static it.niedermann.nextcloud.deck.DeckApplication.saveCurrentStackId; - public class PrepareCreateActivity extends PickStackActivity { private PrepareCreateViewModel viewModel; @@ -29,7 +28,7 @@ public class PrepareCreateActivity extends PickStackActivity { @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - final ActionBar actionBar = getSupportActionBar(); + final var actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.setTitle(R.string.add_card); } @@ -83,7 +82,7 @@ public class PrepareCreateActivity extends PickStackActivity { @Override protected boolean requireContent() { - final Intent intent = getIntent(); + final var intent = getIntent(); return intent == null || (TextUtils.isEmpty(intent.getStringExtra(Intent.EXTRA_SUBJECT)) && TextUtils.isEmpty(intent.getStringExtra(Intent.EXTRA_TITLE)) && TextUtils.isEmpty(intent.getStringExtra(Intent.EXTRA_TEXT))); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/PrepareCreateViewModel.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/PrepareCreateViewModel.java index 1ce61f380..aef37bbcd 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/PrepareCreateViewModel.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/PrepareCreateViewModel.java @@ -63,8 +63,8 @@ public class PrepareCreateViewModel extends AndroidViewModel { public FullCard createFullCard(@NonNull Version version, @NonNull String title, @NonNull String description) { if (!TextUtils.isEmpty(title) && !TextUtils.isEmpty(description)) { - final FullCard fullCard = new FullCard(); - final Card card = new Card(); + final var fullCard = new FullCard(); + final var card = new Card(); final int maxLength = version.getCardTitleMaxLength(); if (title.length() > maxLength) { card.setTitle(title.substring(0, maxLength)); @@ -88,8 +88,8 @@ public class PrepareCreateViewModel extends AndroidViewModel { if (TextUtils.isEmpty(content)) { throw new IllegalArgumentException("Content must not be empty."); } - final FullCard fullCard = new FullCard(); - final Card card = new Card(); + final var fullCard = new FullCard(); + final var card = new Card(); final int maxLength = version.getCardTitleMaxLength(); if (content.length() > maxLength) { card.setTitle(content.substring(0, maxLength).trim()); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsActivity.java index db0c4147c..f41a7592a 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsActivity.java @@ -19,7 +19,7 @@ public class SettingsActivity extends AppCompatActivity { super.onCreate(savedInstanceState); Thread.currentThread().setUncaughtExceptionHandler(new ExceptionHandler(this)); - final ActivitySettingsBinding binding = ActivitySettingsBinding.inflate(getLayoutInflater()); + final var binding = ActivitySettingsBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); setSupportActionBar(binding.toolbar); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsFragment.java index e378c96d1..b4b91a2cb 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsFragment.java @@ -1,5 +1,7 @@ package it.niedermann.nextcloud.deck.ui.settings; +import static it.niedermann.nextcloud.deck.DeckApplication.setAppTheme; + import android.app.Activity; import android.os.Bundle; import android.view.View; @@ -7,7 +9,6 @@ import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.app.ActivityCompat; -import androidx.preference.ListPreference; import androidx.preference.Preference; import androidx.preference.PreferenceFragmentCompat; @@ -17,8 +18,6 @@ import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.persistence.sync.SyncWorker; import it.niedermann.nextcloud.deck.ui.branding.BrandedSwitchPreference; -import static it.niedermann.nextcloud.deck.DeckApplication.setAppTheme; - public class SettingsFragment extends PreferenceFragmentCompat { private BrandedSwitchPreference wifiOnlyPref; @@ -49,7 +48,7 @@ public class SettingsFragment extends PreferenceFragmentCompat { DeckLog.error("Could not find preference with key:", getString(R.string.pref_key_debugging)); } - final ListPreference backgroundSyncPref = findPreference(getString(R.string.pref_key_background_sync)); + final var backgroundSyncPref = findPreference(getString(R.string.pref_key_background_sync)); if (backgroundSyncPref != null) { backgroundSyncPref.setOnPreferenceChangeListener((Preference preference, Object newValue) -> { SyncWorker.update(requireContext().getApplicationContext(), (String) newValue); @@ -59,7 +58,7 @@ public class SettingsFragment extends PreferenceFragmentCompat { DeckLog.error("Could not find preference with key", getString(R.string.pref_key_background_sync)); } - final Preference themePref = findPreference(getString(R.string.pref_key_dark_theme)); + final var themePref = findPreference(getString(R.string.pref_key_dark_theme)); if (themePref != null) { themePref.setOnPreferenceChangeListener((Preference preference, Object newValue) -> { setAppTheme(Integer.parseInt((String) newValue)); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareProgressDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareProgressDialogFragment.java index 3028ea952..fc093c471 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareProgressDialogFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareProgressDialogFragment.java @@ -1,5 +1,8 @@ package it.niedermann.nextcloud.deck.ui.sharetarget; +import static android.graphics.PorterDuff.Mode; +import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme; + import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; @@ -22,9 +25,6 @@ import it.niedermann.nextcloud.deck.ui.branding.BrandedDialogFragment; import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment; import it.niedermann.nextcloud.exception.ExceptionUtil; -import static android.graphics.PorterDuff.Mode; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme; - public class ShareProgressDialogFragment extends BrandedDialogFragment { private DialogShareProgressBinding binding; @@ -85,7 +85,7 @@ public class ShareProgressDialogFragment extends BrandedDialogFragment { viewModel.getDuplicateAttachments().observe(requireActivity(), (duplicates) -> { final int duplicatesCount = duplicates.size(); if (duplicatesCount > 0) { - final LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1f); + final var params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1f); binding.duplicates.removeAllViews(); for (String duplicate : duplicates) { TextView duplicateEntry = new TextView(requireContext()); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareProgressViewModel.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareProgressViewModel.java index f30a3bcf4..6a2a1d0b7 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareProgressViewModel.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareProgressViewModel.java @@ -15,13 +15,13 @@ public class ShareProgressViewModel extends ViewModel { @NonNull public String targetCardTitle = ""; @NonNull - private MutableLiveData<List<Throwable>> exceptions = new MutableLiveData<>(new ArrayList<>()); + private final MutableLiveData<List<Throwable>> exceptions = new MutableLiveData<>(new ArrayList<>()); @NonNull - private MutableLiveData<List<String>> duplicateAttachments = new MutableLiveData<>(new ArrayList<>()); + private final MutableLiveData<List<String>> duplicateAttachments = new MutableLiveData<>(new ArrayList<>()); @NonNull - private MutableLiveData<Integer> max = new MutableLiveData<>(); + private final MutableLiveData<Integer> max = new MutableLiveData<>(); @NonNull - private MutableLiveData<Integer> progress = new MutableLiveData<>(0); + private final MutableLiveData<Integer> progress = new MutableLiveData<>(0); public void setMax(int max) { this.max.setValue(max); @@ -36,7 +36,7 @@ public class ShareProgressViewModel extends ViewModel { } public void increaseProgress() { - final Integer currentValue = this.progress.getValue(); + final var currentValue = this.progress.getValue(); if (currentValue == null) { this.progress.setValue(0); } else { @@ -49,7 +49,7 @@ public class ShareProgressViewModel extends ViewModel { } public void addDuplicateAttachment(String fileName) { - List<String> fileNames = this.duplicateAttachments.getValue(); + var fileNames = this.duplicateAttachments.getValue(); if (fileNames == null) { fileNames = new ArrayList<>(); } @@ -59,7 +59,7 @@ public class ShareProgressViewModel extends ViewModel { } public boolean hasAlreadyDuplicateAttachments() { - List<String> duplicateAttachments = this.duplicateAttachments.getValue(); + final var duplicateAttachments = this.duplicateAttachments.getValue(); if (duplicateAttachments == null) { return false; } @@ -72,7 +72,7 @@ public class ShareProgressViewModel extends ViewModel { public void addException(Throwable exception) { DeckLog.logError(exception); - List<Throwable> exceptionList = this.exceptions.getValue(); + var exceptionList = this.exceptions.getValue(); if (exceptionList == null) { exceptionList = new ArrayList<>(); } @@ -82,7 +82,7 @@ public class ShareProgressViewModel extends ViewModel { } public boolean hasExceptions() { - List<Throwable> exceptions = this.exceptions.getValue(); + final var exceptions = this.exceptions.getValue(); if (exceptions == null) { return false; } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareTargetActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareTargetActivity.java index 2f21eb0b3..450450fe6 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareTargetActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareTargetActivity.java @@ -1,5 +1,8 @@ package it.niedermann.nextcloud.deck.ui.sharetarget; +import static java.net.HttpURLConnection.HTTP_CONFLICT; +import static it.niedermann.nextcloud.deck.util.FilesUtil.copyContentUriToTempFile; + import android.content.ContentResolver; import android.content.Intent; import android.net.Uri; @@ -26,7 +29,6 @@ import it.niedermann.nextcloud.deck.DeckLog; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.api.IResponseCallback; import it.niedermann.nextcloud.deck.exceptions.UploadAttachmentFailedException; -import it.niedermann.nextcloud.deck.model.Account; import it.niedermann.nextcloud.deck.model.Attachment; import it.niedermann.nextcloud.deck.model.Board; import it.niedermann.nextcloud.deck.model.full.FullCard; @@ -36,9 +38,6 @@ import it.niedermann.nextcloud.deck.ui.card.SelectCardListener; import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment; import it.niedermann.nextcloud.deck.util.MimeTypeUtil; -import static it.niedermann.nextcloud.deck.util.FilesUtil.copyContentUriToTempFile; -import static java.net.HttpURLConnection.HTTP_CONFLICT; - public class ShareTargetActivity extends MainActivity implements SelectCardListener { private boolean isFile; @@ -102,7 +101,7 @@ public class ShareTargetActivity extends MainActivity implements SelectCardListe private void appendFilesAndFinish(@NonNull FullCard fullCard) { ShareProgressDialogFragment.newInstance().show(getSupportFragmentManager(), ShareProgressDialogFragment.class.getSimpleName()); - final ShareProgressViewModel shareProgressViewModel = new ViewModelProvider(this).get(ShareProgressViewModel.class); + final var shareProgressViewModel = new ViewModelProvider(this).get(ShareProgressViewModel.class); shareProgressViewModel.setMax(mStreamsToUpload.size()); shareProgressViewModel.targetCardTitle = fullCard.getCard().getTitle(); @@ -150,10 +149,10 @@ public class ShareTargetActivity extends MainActivity implements SelectCardListe } private void appendTextAndFinish(@NonNull FullCard fullCard, @NonNull String receivedText) { - final String[] animals = {getString(R.string.append_text_to_description), getString(R.string.add_text_as_comment)}; + final String[] targets = {getString(R.string.append_text_to_description), getString(R.string.add_text_as_comment)}; new AlertDialog.Builder(this) .setOnCancelListener(dialog -> cardSelected = false) - .setItems(animals, (dialog, which) -> { + .setItems(targets, (dialog, which) -> { switch (which) { case 0: final String oldDescription = fullCard.getCard().getDescription(); @@ -181,8 +180,8 @@ public class ShareTargetActivity extends MainActivity implements SelectCardListe }); break; case 1: - final Account currentAccount = mainViewModel.getCurrentAccount(); - final DeckComment comment = new DeckComment(receivedText.trim(), currentAccount.getUserName(), Instant.now()); + final var currentAccount = mainViewModel.getCurrentAccount(); + final var comment = new DeckComment(receivedText.trim(), currentAccount.getUserName(), Instant.now()); mainViewModel.addCommentToCard(currentAccount.getId(), fullCard.getLocalId(), comment); Toast.makeText(getApplicationContext(), getString(R.string.share_success, "\"" + receivedText + "\"", "\"" + fullCard.getCard().getTitle() + "\""), Toast.LENGTH_LONG).show(); finish(); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/DeleteStackDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/DeleteStackDialogFragment.java index f32be185a..6594ccc0f 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/DeleteStackDialogFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/DeleteStackDialogFragment.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; @@ -42,18 +41,18 @@ public class DeleteStackDialogFragment extends DialogFragment { @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { - AlertDialog.Builder builder = new DeleteAlertDialogBuilder(requireContext()) + return new DeleteAlertDialogBuilder(requireContext()) .setTitle(R.string.delete_list) .setMessage(getResources().getQuantityString(R.plurals.do_you_want_to_delete_the_current_list, numberCards, numberCards)) .setPositiveButton(R.string.simple_delete, (dialog, whichButton) -> deleteStackListener.onStackDeleted(stackId)) - .setNeutralButton(android.R.string.cancel, null); - return builder.create(); + .setNeutralButton(android.R.string.cancel, null) + .create(); } public static DialogFragment newInstance(long stackId, int numberCards) { - DeleteStackDialogFragment dialog = new DeleteStackDialogFragment(); + final var dialog = new DeleteStackDialogFragment(); - Bundle args = new Bundle(); + final var args = new Bundle(); args.putLong(KEY_STACK_ID, stackId); args.putInt(KEY_NUMBER_CARDS, numberCards); dialog.setArguments(args); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/EditStackDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/EditStackDialogFragment.java index 2464fb0c3..897969671 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/EditStackDialogFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/EditStackDialogFragment.java @@ -1,5 +1,7 @@ package it.niedermann.nextcloud.deck.ui.stack; +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.DialogStackCreateBinding; import it.niedermann.nextcloud.deck.ui.branding.BrandedDialogFragment; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToEditTextInputLayout; - public class EditStackDialogFragment extends BrandedDialogFragment { private static final String KEY_STACK_ID = "stack_id"; private static final String KEY_OLD_TITLE = "old_title"; @@ -43,10 +43,10 @@ public class EditStackDialogFragment extends BrandedDialogFragment { public Dialog onCreateDialog(Bundle savedInstanceState) { binding = DialogStackCreateBinding.inflate(requireActivity().getLayoutInflater()); - final AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity()) + final var builder = new AlertDialog.Builder(requireActivity()) .setView(binding.getRoot()) .setNeutralButton(android.R.string.cancel, null); - final Bundle args = getArguments(); + final var args = getArguments(); if (args == null) { builder.setTitle(R.string.add_list) .setPositiveButton(R.string.simple_add, (dialog, which) -> editStackListener.onCreateStack(binding.input.getText().toString())); @@ -71,9 +71,9 @@ public class EditStackDialogFragment extends BrandedDialogFragment { } public static DialogFragment newInstance(long stackId, @Nullable String oldTitle) { - final DialogFragment dialog = new EditStackDialogFragment(); + final var dialog = new EditStackDialogFragment(); - final Bundle args = new Bundle(); + final var args = new Bundle(); args.putLong(KEY_STACK_ID, stackId); args.putString(KEY_OLD_TITLE, oldTitle); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackAdapter.java index 9bd260206..4a26164dd 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackAdapter.java @@ -64,7 +64,7 @@ public class StackAdapter extends FragmentStateAdapter { @Override public boolean containsItem(long itemId) { - for (Stack stack : stackList) { + for (final var stack : stackList) { if (stack.getLocalId() == itemId) { return true; } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java index 7d5a6c4d5..93ebd0093 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java @@ -52,8 +52,8 @@ public class StackFragment extends Fragment implements DragAndDropTab<CardAdapte public void onAttach(@NonNull Context context) { super.onAttach(context); - final Bundle args = getArguments(); - if (args == null || !args.containsKey(KEY_STACK_ID)) { + final var args = requireArguments(); + if (!args.containsKey(KEY_STACK_ID)) { throw new IllegalArgumentException(KEY_STACK_ID + " is required."); } @@ -70,7 +70,7 @@ public class StackFragment extends Fragment implements DragAndDropTab<CardAdapte binding = FragmentStackBinding.inflate(inflater, container, false); mainViewModel = new ViewModelProvider(activity).get(MainViewModel.class); - final FilterViewModel filterViewModel = new ViewModelProvider(activity).get(FilterViewModel.class); + final var filterViewModel = new ViewModelProvider(activity).get(FilterViewModel.class); // This might be a zombie fragment with an empty MainViewModel after Android killed the activity (but not the fragment instance // See https://github.com/stefan-niedermann/nextcloud-deck/issues/478 @@ -148,10 +148,10 @@ public class StackFragment extends Fragment implements DragAndDropTab<CardAdapte } public static Fragment newInstance(long stackId) { - final Bundle args = new Bundle(); - args.putLong(KEY_STACK_ID, stackId); + final var fragment = new StackFragment(); - final StackFragment fragment = new StackFragment(); + final var args = new Bundle(); + args.putLong(KEY_STACK_ID, stackId); fragment.setArguments(args); return fragment; diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/takephoto/TakePhotoActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/takephoto/TakePhotoActivity.java index 78a9319d0..0bfddd76d 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/takephoto/TakePhotoActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/takephoto/TakePhotoActivity.java @@ -1,5 +1,7 @@ package it.niedermann.nextcloud.deck.ui.takephoto; +import static it.niedermann.nextcloud.deck.util.MimeTypeUtil.IMAGE_JPEG; + import android.content.Context; import android.content.Intent; import android.content.res.ColorStateList; @@ -14,7 +16,6 @@ import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; -import androidx.camera.core.Camera; import androidx.camera.core.ImageCapture; import androidx.camera.core.ImageCaptureException; import androidx.camera.core.Preview; @@ -37,8 +38,6 @@ import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment; import it.niedermann.nextcloud.deck.ui.exception.ExceptionHandler; import it.niedermann.nextcloud.deck.util.FilesUtil; -import static it.niedermann.nextcloud.deck.util.MimeTypeUtil.IMAGE_JPEG; - public class TakePhotoActivity extends AppCompatActivity { private ActivityTakePhotoBinding binding; @@ -68,10 +67,10 @@ public class TakePhotoActivity extends AppCompatActivity { cameraProviderFuture = ProcessCameraProvider.getInstance(this); cameraProviderFuture.addListener(() -> { try { - final ProcessCameraProvider cameraProvider = cameraProviderFuture.get(); - final Preview previewUseCase = getPreviewUseCase(); - final ImageCapture captureUseCase = getCaptureUseCase(); - final Camera camera = cameraProvider.bindToLifecycle(this, viewModel.getCameraSelector(), captureUseCase, previewUseCase); + final var cameraProvider = cameraProviderFuture.get(); + final var previewUseCase = getPreviewUseCase(); + final var captureUseCase = getCaptureUseCase(); + final var camera = cameraProvider.bindToLifecycle(this, viewModel.getCameraSelector(), captureUseCase, previewUseCase); viewModel.getCameraSelectorToggleButtonImageResource().observe(this, res -> binding.switchCamera.setImageDrawable(ContextCompat.getDrawable(this, res))); viewModel.getTorchToggleButtonImageResource().observe(this, res -> binding.toggleTorch.setImageDrawable(ContextCompat.getDrawable(this, res))); @@ -149,7 +148,7 @@ public class TakePhotoActivity extends AppCompatActivity { } private Preview getPreviewUseCase() { - Preview previewUseCase = new Preview.Builder().build(); + final var previewUseCase = new Preview.Builder().build(); previewUseCase.setSurfaceProvider(binding.preview.getSurfaceProvider()); return previewUseCase; } @@ -175,9 +174,9 @@ public class TakePhotoActivity extends AppCompatActivity { } private void applyBoardColorBrand(int mainColor) { - final ColorStateList colorStateList = ColorStateList.valueOf(mainColor); - for (View v : brandedViews) { - v.setBackgroundTintList(colorStateList); + final var colorStateList = ColorStateList.valueOf(mainColor); + for (final var view : brandedViews) { + view.setBackgroundTintList(colorStateList); } } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/takephoto/TakePhotoViewModel.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/takephoto/TakePhotoViewModel.java index a71291ff2..cadc02687 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/takephoto/TakePhotoViewModel.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/takephoto/TakePhotoViewModel.java @@ -1,17 +1,17 @@ package it.niedermann.nextcloud.deck.ui.takephoto; +import static androidx.camera.core.CameraSelector.DEFAULT_BACK_CAMERA; +import static androidx.camera.core.CameraSelector.DEFAULT_FRONT_CAMERA; +import static androidx.lifecycle.Transformations.map; + import androidx.annotation.NonNull; import androidx.camera.core.CameraSelector; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; -import androidx.lifecycle.Transformations; import androidx.lifecycle.ViewModel; import it.niedermann.nextcloud.deck.R; -import static androidx.camera.core.CameraSelector.DEFAULT_BACK_CAMERA; -import static androidx.camera.core.CameraSelector.DEFAULT_FRONT_CAMERA; - public class TakePhotoViewModel extends ViewModel { @NonNull @@ -50,7 +50,7 @@ public class TakePhotoViewModel extends ViewModel { } public LiveData<Integer> getTorchToggleButtonImageResource() { - return Transformations.map(isTorchEnabled(), enabled -> enabled + return map(isTorchEnabled(), enabled -> enabled ? R.drawable.ic_baseline_flash_off_24 : R.drawable.ic_baseline_flash_on_24); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/tiles/EditCardTileService.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/tiles/EditCardTileService.java index 09abbfa7a..ad691c943 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/tiles/EditCardTileService.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/tiles/EditCardTileService.java @@ -13,14 +13,14 @@ public class EditCardTileService extends TileService { @Override public void onStartListening() { - Tile tile = getQsTile(); + final var tile = getQsTile(); tile.setState(Tile.STATE_ACTIVE); tile.updateTile(); } @Override public void onClick() { - Intent intent = new Intent(getApplicationContext(), PrepareCreateActivity.class); + final var intent = new Intent(getApplicationContext(), PrepareCreateActivity.class); // ensure it won't open twice if already running intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); // ask to unlock the screen if locked, then start new note intent diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsActivity.java index 41e2e9f24..e5f9297fd 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsActivity.java @@ -31,7 +31,7 @@ public class UpcomingCardsActivity extends AppCompatActivity implements MoveCard Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler(this)); - final ActivityUpcomingCardsBinding binding = ActivityUpcomingCardsBinding.inflate(getLayoutInflater()); + final var binding = ActivityUpcomingCardsBinding.inflate(getLayoutInflater()); viewModel = new ViewModelProvider(this).get(UpcomingCardsViewModel.class); setContentView(binding.getRoot()); @@ -39,7 +39,7 @@ public class UpcomingCardsActivity extends AppCompatActivity implements MoveCard binding.loadingSpinner.show(); - final UpcomingCardsAdapter adapter = new UpcomingCardsAdapter(this, getSupportFragmentManager(), + final var adapter = new UpcomingCardsAdapter(this, getSupportFragmentManager(), viewModel::assignUser, viewModel::unassignUser, (fullCard) -> viewModel.archiveCard(fullCard, new IResponseCallback<FullCard>() { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsAdapter.java index 212fe5747..7f1c64ad6 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsAdapter.java @@ -1,5 +1,7 @@ package it.niedermann.nextcloud.deck.ui.upcomingcards; +import static androidx.preference.PreferenceManager.getDefaultSharedPreferences; + import android.app.Activity; import android.view.LayoutInflater; import android.view.ViewGroup; @@ -31,8 +33,6 @@ import it.niedermann.nextcloud.deck.ui.card.DefaultCardOnlyTitleViewHolder; import it.niedermann.nextcloud.deck.ui.card.DefaultCardViewHolder; import it.niedermann.nextcloud.deck.ui.card.EditActivity; -import static androidx.preference.PreferenceManager.getDefaultSharedPreferences; - public class UpcomingCardsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private final boolean compactMode; @@ -78,7 +78,7 @@ public class UpcomingCardsAdapter extends RecyclerView.Adapter<RecyclerView.View @Override public long getItemId(int position) { - final Object item = items.get(position); + final var item = items.get(position); if (item.getClass() == UpcomingCardsAdapterSectionItem.class || item instanceof UpcomingCardsAdapterSectionItem) { return items .stream() @@ -107,14 +107,14 @@ public class UpcomingCardsAdapter extends RecyclerView.Adapter<RecyclerView.View @Override public int getItemViewType(int position) { - final Object item = items.get(position); + final var item = items.get(position); if (item.getClass() == UpcomingCardsAdapterSectionItem.class || item instanceof UpcomingCardsAdapterSectionItem) { return R.layout.item_section; } else if (item.getClass() == UpcomingCardsAdapterItem.class || item instanceof UpcomingCardsAdapterItem) { if (compactMode) { return R.layout.item_card_compact; } else { - final FullCard fullCard = ((UpcomingCardsAdapterItem) item).getFullCard(); + final var fullCard = ((UpcomingCardsAdapterItem) item).getFullCard(); if (fullCard.getAttachments().size() == 0 && fullCard.getAssignedUsers().size() == 0 && fullCard.getLabels().size() == 0 @@ -134,16 +134,15 @@ public class UpcomingCardsAdapter extends RecyclerView.Adapter<RecyclerView.View final Object item = items.get(position); if (item.getClass() == UpcomingCardsAdapterSectionItem.class || item instanceof UpcomingCardsAdapterSectionItem) { if (viewHolder.getClass() == UpcomingCardsSectionViewHolder.class || viewHolder instanceof UpcomingCardsSectionViewHolder) { - final UpcomingCardsAdapterSectionItem cardItem = (UpcomingCardsAdapterSectionItem) item; + final var cardItem = (UpcomingCardsAdapterSectionItem) item; ((UpcomingCardsSectionViewHolder) viewHolder).bind(cardItem.getTitle()); } else { throw new IllegalStateException("Item at position " + position + " is a " + item.getClass().getSimpleName() + " but viewHolder is no " + UpcomingCardsSectionViewHolder.class.getSimpleName()); } } else if (item.getClass() == UpcomingCardsAdapterItem.class || item instanceof UpcomingCardsAdapterItem) { - viewHolder.getClass(); if (viewHolder instanceof AbstractCardViewHolder) { - final UpcomingCardsAdapterItem cardItem = (UpcomingCardsAdapterItem) item; - AbstractCardViewHolder cardViewHolder = ((AbstractCardViewHolder) viewHolder); + final var cardItem = (UpcomingCardsAdapterItem) item; + final var cardViewHolder = ((AbstractCardViewHolder) viewHolder); cardViewHolder.bind(cardItem.getFullCard(), cardItem.getAccount(), cardItem.getCurrentBoardRemoteId(), cardItem.currentBoardHasEditPermission(), R.menu.card_menu, new UpcomingCardsOptionsItemSelectedListener( cardItem.getAccount(), diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsOptionsItemSelectedListener.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsOptionsItemSelectedListener.java index 403292840..b5c0dd3be 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsOptionsItemSelectedListener.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsOptionsItemSelectedListener.java @@ -1,5 +1,7 @@ package it.niedermann.nextcloud.deck.ui.upcomingcards; +import static it.niedermann.nextcloud.deck.util.MimeTypeUtil.TEXT_PLAIN; + import android.app.Activity; import android.content.Intent; import android.view.MenuItem; @@ -20,8 +22,6 @@ import it.niedermann.nextcloud.deck.ui.card.CardOptionsItemSelectedListener; import it.niedermann.nextcloud.deck.ui.movecard.MoveCardDialogFragment; import it.niedermann.nextcloud.deck.util.CardUtil; -import static it.niedermann.nextcloud.deck.util.MimeTypeUtil.TEXT_PLAIN; - public class UpcomingCardsOptionsItemSelectedListener implements CardOptionsItemSelectedListener { @NonNull private final Account account; @@ -66,7 +66,7 @@ public class UpcomingCardsOptionsItemSelectedListener implements CardOptionsItem public boolean onCardOptionsItemSelected(@NonNull MenuItem menuItem, @NonNull FullCard fullCard) { final int itemId = menuItem.getItemId(); 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()) @@ -75,7 +75,7 @@ public class UpcomingCardsOptionsItemSelectedListener implements CardOptionsItem 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/view/ColorChooser.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/ColorChooser.java index 0dd431ff9..8345e63b9 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/ColorChooser.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/ColorChooser.java @@ -1,7 +1,6 @@ package it.niedermann.nextcloud.deck.ui.view; import android.content.Context; -import android.content.res.TypedArray; import android.graphics.Color; import android.util.AttributeSet; import android.view.LayoutInflater; @@ -42,22 +41,22 @@ public class ColorChooser extends LinearLayout { super(context, attrs); this.context = context; - final FlexboxLayout.LayoutParams params = new FlexboxLayout.LayoutParams( + final var params = new FlexboxLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT ); params.setMargins(0, DimensionUtil.INSTANCE.dpToPx(context, R.dimen.spacer_1x), 0, 0); params.setFlexBasisPercent(.15f); - final TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ColorChooser, 0, 0); - colors = Arrays.stream(getResources().getStringArray(a.getResourceId(R.styleable.ColorChooser_colors, 0))) + final var styles = context.obtainStyledAttributes(attrs, R.styleable.ColorChooser, 0, 0); + colors = Arrays.stream(getResources().getStringArray(styles.getResourceId(R.styleable.ColorChooser_colors, 0))) .mapToInt(Color::parseColor) .toArray(); - a.recycle(); + styles.recycle(); binding = WidgetColorChooserBinding.inflate(LayoutInflater.from(context), this, true); for (final int color : colors) { - final ImageView image = new ImageView(getContext()); + final var image = new ImageView(getContext()); image.setLayoutParams(params); image.setOnClickListener((imageView) -> { if (previouslySelectedImageView != null) { // null when first selection diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/EmptyContentView.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/EmptyContentView.java index 3564662ce..b103e528a 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/EmptyContentView.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/EmptyContentView.java @@ -1,7 +1,6 @@ package it.niedermann.nextcloud.deck.ui.view; import android.content.Context; -import android.content.res.TypedArray; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; @@ -24,19 +23,19 @@ public class EmptyContentView extends RelativeLayout { binding = WidgetEmptyContentViewBinding.inflate(LayoutInflater.from(context), this, true); - TypedArray a = context.obtainStyledAttributes(attrs, + final var styles = context.obtainStyledAttributes(attrs, R.styleable.EmptyContentView, 0, 0); - @StringRes int descriptionRes = a.getResourceId(R.styleable.EmptyContentView_description, NO_DESCRIPTION); + @StringRes int descriptionRes = styles.getResourceId(R.styleable.EmptyContentView_description, NO_DESCRIPTION); - binding.title.setText(getResources().getString(a.getResourceId(R.styleable.EmptyContentView_title, R.string.no_content))); + binding.title.setText(getResources().getString(styles.getResourceId(R.styleable.EmptyContentView_title, R.string.no_content))); if (descriptionRes == NO_DESCRIPTION) { binding.description.setVisibility(View.GONE); } else { binding.description.setText(getResources().getString(descriptionRes)); } - binding.image.setImageResource(a.getResourceId(R.styleable.EmptyContentView_image, R.drawable.ic_app_logo)); - a.recycle(); + binding.image.setImageResource(styles.getResourceId(R.styleable.EmptyContentView_image, R.drawable.ic_app_logo)); + styles.recycle(); } public void hideDescription() { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/OverlappingAvatars.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/OverlappingAvatars.java index 0facc385c..9d15df896 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/OverlappingAvatars.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/OverlappingAvatars.java @@ -4,7 +4,6 @@ import android.content.Context; import android.graphics.drawable.Drawable; import android.net.Uri; import android.util.AttributeSet; -import android.view.ViewGroup; import android.widget.ImageView; import android.widget.RelativeLayout; @@ -53,7 +52,7 @@ public class OverlappingAvatars extends RelativeLayout { } public void setAvatars(@NonNull Account account, @NonNull List<User> assignedUsers) { - @NonNull Context context = getContext(); + @NonNull final var context = getContext(); removeAllViews(); RelativeLayout.LayoutParams avatarLayoutParams; int avatarCount; @@ -62,7 +61,7 @@ public class OverlappingAvatars extends RelativeLayout { avatarLayoutParams.setMargins(0, 0, avatarCount * overlapPx, 0); avatarLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); - final ImageView avatar = new ImageView(context); + final var avatar = new ImageView(context); avatar.setLayoutParams(avatarLayoutParams); avatar.setPadding(avatarBorderSize, avatarBorderSize, avatarBorderSize, avatarBorderSize); @@ -79,7 +78,7 @@ public class OverlappingAvatars extends RelativeLayout { // Recalculate container size based on avatar count int size = overlapPx * (avatarCount - 1) + avatarSize; - ViewGroup.LayoutParams rememberParam = getLayoutParams(); + final var rememberParam = getLayoutParams(); rememberParam.width = size; setLayoutParams(rememberParam); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/SquareRelativeLayout.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/SquareRelativeLayout.java index cdce90251..6937a370d 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/SquareRelativeLayout.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/SquareRelativeLayout.java @@ -25,6 +25,7 @@ public class SquareRelativeLayout extends RelativeLayout { @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // Set a square layout. + //noinspection SuspiciousNameCombination super.onMeasure(widthMeasureSpec, widthMeasureSpec); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/labelchip/LabelChip.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/labelchip/LabelChip.java index 83853f0b2..d69ff2898 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/labelchip/LabelChip.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/labelchip/LabelChip.java @@ -43,8 +43,8 @@ public class LabelChip extends Chip { try { int labelColor = label.getColor(); - ColorStateList c = ColorStateList.valueOf(labelColor); - setChipBackgroundColor(c); + final var colorStateList = ColorStateList.valueOf(labelColor); + setChipBackgroundColor(colorStateList); setTextColor(ColorUtil.INSTANCE.getForegroundColorForBackgroundColor(labelColor)); } catch (IllegalArgumentException e) { DeckLog.logError(e); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/labellayout/LabelLayout.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/labellayout/LabelLayout.java index 3db539e53..526bdbaef 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/labellayout/LabelLayout.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/labellayout/LabelLayout.java @@ -56,9 +56,9 @@ public abstract class LabelLayout extends FlexboxLayout { private void removeObsoleteLabels(List<Label> labels) { chipList: for (int i = 0; i < chipList.size(); i++) { - LabelChip currentChip = chipList.get(i); - final Label existingLabel = currentChip.getLabel(); - for (Label label : labels) { + final var currentChip = chipList.get(i); + final var existingLabel = currentChip.getLabel(); + for (final var label : labels) { if (existingLabel.equals(label)) { continue chipList; } @@ -75,15 +75,15 @@ public abstract class LabelLayout extends FlexboxLayout { private void addNewLabels(List<Label> labels) { int oldLabelSize = chipList.size(); labelList: - for (Label label : labels) { + for (final var label : labels) { for (int i = 0; i < oldLabelSize; i++) { - final LabelChip currentChip = chipList.get(i); - final Label existingLabel = currentChip.getLabel(); + final var currentChip = chipList.get(i); + final var existingLabel = currentChip.getLabel(); if (existingLabel.equals(label)) { continue labelList; } } - final LabelChip chip = createLabelChip(label); + final var chip = createLabelChip(label); addView(chip); chipList.add(chip); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/util/AttachmentUtil.java b/app/src/main/java/it/niedermann/nextcloud/deck/util/AttachmentUtil.java index fa514952c..aba73a11e 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/util/AttachmentUtil.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/util/AttachmentUtil.java @@ -4,7 +4,6 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; import android.text.TextUtils; -import android.webkit.MimeTypeMap; import android.widget.Toast; import androidx.annotation.DrawableRes; @@ -110,13 +109,4 @@ public class AttachmentUtil { } } - public static String getMimeType(@Nullable String url) { - String type = null; - String extension = MimeTypeMap.getFileExtensionFromUrl(url); - if (extension != null) { - type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension); - } - return type; - } - } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/util/CardUtil.java b/app/src/main/java/it/niedermann/nextcloud/deck/util/CardUtil.java index f8a1a9b1a..a0e3bdd69 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/util/CardUtil.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/util/CardUtil.java @@ -13,7 +13,6 @@ import java.util.stream.Collectors; import it.niedermann.android.markdown.MarkdownUtil; import it.niedermann.nextcloud.deck.R; -import it.niedermann.nextcloud.deck.model.Card; import it.niedermann.nextcloud.deck.model.Label; import it.niedermann.nextcloud.deck.model.full.FullCard; @@ -28,21 +27,21 @@ public class CardUtil { */ @NonNull public static String getCardContentAsString(@NonNull Context context, @NonNull FullCard fullCard) { - final Card card = fullCard.getCard(); - String text = card.getDescription(); + final var card = fullCard.getCard(); + final var text = new StringBuilder(card.getDescription()); if(card.getDueDate() != null) { if(!TextUtils.isEmpty(text)) { - text += "\n"; + text.append("\n"); } - text += context.getString(R.string.share_content_duedate, card.getDueDate().atZone(ZoneId.systemDefault()).format(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM))); + text.append(context.getString(R.string.share_content_duedate, card.getDueDate().atZone(ZoneId.systemDefault()).format(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)))); } if(fullCard.getLabels() != null && !fullCard.getLabels().isEmpty()) { if(!TextUtils.isEmpty(text)) { - text += "\n"; + text.append("\n"); } - text += context.getString(R.string.share_content_labels, fullCard.getLabels().stream().map(Label::getTitle).collect(Collectors.joining(", "))); + text.append(context.getString(R.string.share_content_labels, fullCard.getLabels().stream().map(Label::getTitle).collect(Collectors.joining(", ")))); } - return text; + return text.toString(); } public static boolean cardHasCommentsOrAttachments(@NonNull FullCard fullCard) { @@ -65,7 +64,7 @@ public class CardUtil { @NonNull private static String getLineWithoutMarkDown(@NonNull String content, @SuppressWarnings("SameParameterValue") int lineNumber) { if (content.contains("\n")) { - final String[] lines = content.split("\n"); + final var lines = content.split("\n"); int currentLine = lineNumber; while (currentLine < lines.length && isEmptyLine(lines[currentLine])) { currentLine++; diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/util/CustomAppGlideModule.java b/app/src/main/java/it/niedermann/nextcloud/deck/util/CustomAppGlideModule.java index 3e7b2d44b..6b17d7881 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/util/CustomAppGlideModule.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/util/CustomAppGlideModule.java @@ -2,7 +2,6 @@ package it.niedermann.nextcloud.deck.util; import android.content.Context; import android.net.ConnectivityManager; -import android.net.NetworkInfo; import androidx.annotation.NonNull; import androidx.annotation.UiThread; @@ -29,9 +28,9 @@ public class CustomAppGlideModule extends AppGlideModule { @UiThread public static void clearCache(@NonNull Context context) { - final ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); + final var cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); if (cm != null) { - final NetworkInfo activeNetworkInfo = cm.getActiveNetworkInfo(); + final var activeNetworkInfo = cm.getActiveNetworkInfo(); if (activeNetworkInfo != null && activeNetworkInfo.isConnected()) { DeckLog.info("Clearing Glide memory cache"); Glide.get(context).clearMemory(); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/util/DeckColorUtil.java b/app/src/main/java/it/niedermann/nextcloud/deck/util/DeckColorUtil.java index f69b59757..82a3efd1f 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/util/DeckColorUtil.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/util/DeckColorUtil.java @@ -18,8 +18,8 @@ public final class DeckColorUtil { private static final Map<ColorPair, Boolean> CONTRAST_RATIO_SUFFICIENT_CACHE = new HashMap<>(); public static boolean contrastRatioIsSufficient(@ColorInt int colorOne, @ColorInt int colorTwo) { - ColorPair key = new ColorPair(colorOne, colorTwo); - Boolean ret = CONTRAST_RATIO_SUFFICIENT_CACHE.get(key); + final var key = new ColorPair(colorOne, colorTwo); + var ret = CONTRAST_RATIO_SUFFICIENT_CACHE.get(key); if (ret == null) { ret = ColorUtil.INSTANCE.getContrastRatio(colorOne, colorTwo) > 3d; CONTRAST_RATIO_SUFFICIENT_CACHE.put(key, ret); @@ -29,8 +29,8 @@ public final class DeckColorUtil { } public static boolean contrastRatioIsSufficientBigAreas(@ColorInt int colorOne, @ColorInt int colorTwo) { - ColorPair key = new ColorPair(colorOne, colorTwo); - Boolean ret = CONTRAST_RATIO_SUFFICIENT_CACHE.get(key); + final var key = new ColorPair(colorOne, colorTwo); + var ret = CONTRAST_RATIO_SUFFICIENT_CACHE.get(key); if (ret == null) { ret = ColorUtil.INSTANCE.getContrastRatio(colorOne, colorTwo) > 1.47d; CONTRAST_RATIO_SUFFICIENT_CACHE.put(key, ret); @@ -48,7 +48,7 @@ public final class DeckColorUtil { @SuppressWarnings({"EqualsWhichDoesntCheckParameterClass", "NumberEquality"}) @Override public boolean equals(Object o) { - final ColorPair colorPair = (ColorPair) o; + final var colorPair = (ColorPair) o; if (first != colorPair.first) return false; return second == colorPair.second; } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/util/DrawerMenuUtil.java b/app/src/main/java/it/niedermann/nextcloud/deck/util/DrawerMenuUtil.java index d315c1867..1683a8ef4 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/util/DrawerMenuUtil.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/util/DrawerMenuUtil.java @@ -38,17 +38,17 @@ public class DrawerMenuUtil { boolean currentServerVersionIsSupported) { menu.add(Menu.NONE, MENU_ID_UPCOMING_CARDS, Menu.NONE, R.string.widget_upcoming_title).setIcon(R.drawable.calendar_blank_grey600_24dp); int index = 0; - for (Board board : boards) { - final MenuItem m = menu + for (final var board : boards) { + final var menuItem = menu .add(Menu.NONE, index++, Menu.NONE, board.getTitle()).setIcon(ViewUtil.getTintedImageView(context, R.drawable.circle_grey600_36dp, board.getColor())) .setCheckable(true); if (currentServerVersionIsSupported) { if (board.isPermissionManage()) { - final AppCompatImageButton contextMenu = new AppCompatImageButton(context); + final var contextMenu = new AppCompatImageButton(context); contextMenu.setBackgroundDrawable(null); contextMenu.setImageDrawable(ViewUtil.getTintedImageView(context, R.drawable.ic_menu, ContextCompat.getColor(context, R.color.grey600))); contextMenu.setOnClickListener((v) -> { - PopupMenu popup = new PopupMenu(context, contextMenu); + final var popup = new PopupMenu(context, contextMenu); popup.getMenuInflater().inflate(R.menu.navigation_context_menu, popup.getMenu()); final int SHARE_BOARD_ID = -1; if (board.isPermissionShare()) { @@ -80,13 +80,13 @@ public class DrawerMenuUtil { }); popup.show(); }); - m.setActionView(contextMenu); + menuItem.setActionView(contextMenu); } else if (board.isPermissionShare()) { - final AppCompatImageButton contextMenu = new AppCompatImageButton(context); + final var contextMenu = new AppCompatImageButton(context); contextMenu.setBackgroundDrawable(null); contextMenu.setImageDrawable(ViewUtil.getTintedImageView(context, R.drawable.ic_share_grey600_18dp, ContextCompat.getColor(context, R.color.grey600))); contextMenu.setOnClickListener((v) -> AccessControlDialogFragment.newInstance(board.getLocalId()).show(context.getSupportFragmentManager(), AccessControlDialogFragment.class.getSimpleName())); - m.setActionView(contextMenu); + menuItem.setActionView(contextMenu); } } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/util/FilesUtil.java b/app/src/main/java/it/niedermann/nextcloud/deck/util/FilesUtil.java index 3e4a5842f..01ea4e004 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/util/FilesUtil.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/util/FilesUtil.java @@ -10,7 +10,6 @@ import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; -import java.io.InputStream; import it.niedermann.nextcloud.deck.DeckLog; @@ -30,12 +29,12 @@ public class FilesUtil { */ @WorkerThread public static File copyContentUriToTempFile(@NonNull Context context, @NonNull Uri currentUri, long accountId, Long localCardId) throws IOException, IllegalArgumentException { - final InputStream inputStream = context.getContentResolver().openInputStream(currentUri); + final var inputStream = context.getContentResolver().openInputStream(currentUri); if (inputStream == null) { throw new IOException("Could not open input stream for " + currentUri.getPath()); } - final File cacheFile = getTempCacheFile(context, "attachments/account-" + accountId + "/card-" + (localCardId == null ? "pending-creation" : localCardId) + '/' + UriUtils.getDisplayNameForUri(currentUri, context)); - final FileOutputStream outputStream = new FileOutputStream(cacheFile); + final var cacheFile = getTempCacheFile(context, "attachments/account-" + accountId + "/card-" + (localCardId == null ? "pending-creation" : localCardId) + '/' + UriUtils.getDisplayNameForUri(currentUri, context)); + final var outputStream = new FileOutputStream(cacheFile); byte[] buffer = new byte[4096]; int count; @@ -50,11 +49,11 @@ public class FilesUtil { * Creates a new {@link File} */ public static File getTempCacheFile(@NonNull Context context, String fileName) throws IOException { - File cacheFile = new File(context.getApplicationContext().getFilesDir().getAbsolutePath() + "/" + fileName); + final var cacheFile = new File(context.getApplicationContext().getFilesDir().getAbsolutePath() + "/" + fileName); DeckLog.verbose("- Full path for new cache file:", cacheFile.getAbsolutePath()); - final File tempDir = cacheFile.getParentFile(); + final var tempDir = cacheFile.getParentFile(); if (tempDir == null) { throw new FileNotFoundException("could not cacheFile.getParentFile()"); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/util/ProjectUtil.java b/app/src/main/java/it/niedermann/nextcloud/deck/util/ProjectUtil.java index 781b5dabf..51d6c83c5 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/util/ProjectUtil.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/util/ProjectUtil.java @@ -19,13 +19,13 @@ public class ProjectUtil { public static Uri getResourceUri(@NonNull Account account, @NonNull String link) throws IllegalArgumentException { try { // Assume link contains a fully qualified Uri including host - final URL u = new URL(link); - return Uri.parse(u.toString()); + final var url = new URL(link); + return Uri.parse(url.toString()); } catch (Throwable linkIsNotQualified) { try { // Assume link is a absolute path that needs to be concatenated with account url for a complete Uri - final URL u = new URL(account.getUrl() + link); - return Uri.parse(u.toString()); + final var url = new URL(account.getUrl() + link); + return Uri.parse(url.toString()); } catch (Throwable throwable) { throw new IllegalArgumentException("Could not parse " + Uri.class.getSimpleName() + ": " + link, throwable); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/util/SpannableUtil.java b/app/src/main/java/it/niedermann/nextcloud/deck/util/SpannableUtil.java index f8be0e90d..664407d72 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/util/SpannableUtil.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/util/SpannableUtil.java @@ -25,30 +25,30 @@ public class SpannableUtil { } public static SpannableString strong(@NonNull CharSequence text) { - final SpannableString span = new SpannableString(text); - span.setSpan(new StyleSpan(Typeface.BOLD), 0, span.length(), 0); - return span; + final var spannable = new SpannableString(text); + spannable.setSpan(new StyleSpan(Typeface.BOLD), 0, spannable.length(), 0); + return spannable; } public static SpannableString disabled(@NonNull CharSequence text, @NonNull Context context) { - final SpannableString span = new SpannableString(text); - span.setSpan(new StyleSpan(Typeface.ITALIC), 0, span.length(), 0); - span.setSpan(new ForegroundColorSpan(ContextCompat.getColor(context, R.color.fg_secondary)), 0, span.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); - return span; + final var spannable = new SpannableString(text); + spannable.setSpan(new StyleSpan(Typeface.ITALIC), 0, spannable.length(), 0); + spannable.setSpan(new ForegroundColorSpan(ContextCompat.getColor(context, R.color.fg_secondary)), 0, spannable.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + return spannable; } public static SpannableString url(@NonNull CharSequence text, @NonNull String target) { - final SpannableString span = new SpannableString(text); - span.setSpan(new URLSpan(target), 0, span.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); - return span; + final var spannable = new SpannableString(text); + spannable.setSpan(new URLSpan(target), 0, spannable.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + return spannable; } public static void setTextWithURL(@NonNull TextView textView, @NonNull Resources resources, @StringRes int containerTextId, @StringRes int linkLabelId, @StringRes int urlId) { final String linkLabel = resources.getString(linkLabelId); final String finalText = resources.getString(containerTextId, linkLabel); - final SpannableString finalSpannable = new SpannableString(finalText); - finalSpannable.setSpan(new URLSpan(resources.getString(urlId)), finalText.indexOf(linkLabel), finalText.indexOf(linkLabel) + linkLabel.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - textView.setText(finalSpannable); + final var spannable = new SpannableString(finalText); + spannable.setSpan(new URLSpan(resources.getString(urlId)), finalText.indexOf(linkLabel), finalText.indexOf(linkLabel) + linkLabel.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + textView.setText(spannable); textView.setMovementMethod(new LinkMovementMethod()); } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/util/UriUtils.java b/app/src/main/java/it/niedermann/nextcloud/deck/util/UriUtils.java index c317359cc..44031b70e 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/util/UriUtils.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/util/UriUtils.java @@ -2,7 +2,6 @@ package it.niedermann.nextcloud.deck.util; import android.content.ContentResolver; import android.content.Context; -import android.database.Cursor; import android.net.Uri; import android.provider.MediaStore; import android.webkit.MimeTypeMap; @@ -77,7 +76,7 @@ public final class UriUtils { displayNameColumn = MediaStore.Files.FileColumns.DISPLAY_NAME; } - try (Cursor cursor = context.getContentResolver().query( + try (final var cursor = context.getContentResolver().query( uri, new String[]{displayNameColumn}, null, null, null )) { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/util/VCardUtil.java b/app/src/main/java/it/niedermann/nextcloud/deck/util/VCardUtil.java index a3e4f6d31..6c4b091fc 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/util/VCardUtil.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/util/VCardUtil.java @@ -1,8 +1,6 @@ package it.niedermann.nextcloud.deck.util; -import android.content.ContentResolver; import android.content.Context; -import android.database.Cursor; import android.graphics.Color; import android.net.Uri; import android.provider.ContactsContract; @@ -22,8 +20,8 @@ public class VCardUtil { } public static Uri getVCardContentUri(@NonNull Context context, @NonNull Uri contactUri) throws NoSuchElementException { - final ContentResolver cr = context.getContentResolver(); - try (final Cursor cursor = cr.query(contactUri, null, null, null, null)) { + final var cr = context.getContentResolver(); + try (final var cursor = cr.query(contactUri, null, null, null, null)) { if (cursor != null && cursor.moveToFirst()) { final String lookupKey = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY)); return Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_VCARD_URI, lookupKey); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/util/ViewUtil.java b/app/src/main/java/it/niedermann/nextcloud/deck/util/ViewUtil.java index ba1b3e785..12f3418c3 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/util/ViewUtil.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/util/ViewUtil.java @@ -1,5 +1,8 @@ package it.niedermann.nextcloud.deck.util; +import static java.time.temporal.ChronoUnit.DAYS; +import static it.niedermann.nextcloud.deck.DeckApplication.isDarkTheme; + import android.content.Context; import android.content.res.ColorStateList; import android.graphics.drawable.Drawable; @@ -24,9 +27,6 @@ import java.time.LocalDate; import it.niedermann.android.util.DimensionUtil; import it.niedermann.nextcloud.deck.R; -import static it.niedermann.nextcloud.deck.DeckApplication.isDarkTheme; -import static java.time.temporal.ChronoUnit.DAYS; - public final class ViewUtil { private ViewUtil() { @@ -71,9 +71,9 @@ public final class ViewUtil { } public static Drawable getTintedImageView(@NonNull Context context, @DrawableRes int imageId, @ColorInt int color) { - final Drawable drawable = ContextCompat.getDrawable(context, imageId); + final var drawable = ContextCompat.getDrawable(context, imageId); assert drawable != null; - final Drawable wrapped = DrawableCompat.wrap(drawable).mutate(); + final var wrapped = DrawableCompat.wrap(drawable).mutate(); DrawableCompat.setTint(wrapped, color); return drawable; } |