diff options
author | desperateCoder <echotodevnull@gmail.com> | 2020-11-21 18:55:19 +0300 |
---|---|---|
committer | desperateCoder <echotodevnull@gmail.com> | 2020-11-21 18:55:19 +0300 |
commit | 365bf07399aa0e5fdfb8db13903b28fc5bdd56cd (patch) | |
tree | 02ea6baf2c53dfc1696fba1a33be1fb5c15f5ed4 /app/src/main/java/it/niedermann/nextcloud/deck | |
parent | d235ae16f1e582fc21a8631ccb3ecd840fba13b4 (diff) | |
parent | b182b1a12101166de1658a7a91c7036c857cd01c (diff) |
Merge branch 'master' of github.com:stefan-niedermann/nextcloud-deck
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck')
5 files changed, 58 insertions, 18 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityViewHolder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityViewHolder.java index f8d237ad4..6362f90dd 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityViewHolder.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityViewHolder.java @@ -3,6 +3,7 @@ package it.niedermann.nextcloud.deck.ui.card.activities; import android.content.Context; import android.view.MenuInflater; import android.view.View; +import android.widget.ImageView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; @@ -13,6 +14,7 @@ import it.niedermann.nextcloud.deck.databinding.ItemActivityBinding; import it.niedermann.nextcloud.deck.model.enums.ActivityType; import it.niedermann.nextcloud.deck.model.ocs.Activity; import it.niedermann.nextcloud.deck.util.DateUtil; +import it.niedermann.nextcloud.deck.util.ViewUtil; public class CardActivityViewHolder extends RecyclerView.ViewHolder { public ItemActivityBinding binding; @@ -32,31 +34,54 @@ public class CardActivityViewHolder extends RecyclerView.ViewHolder { inflater.inflate(R.menu.activity_menu, menu); menu.findItem(android.R.id.copy).setOnMenuItemClickListener(item -> ClipboardUtil.INSTANCE.copyToClipboard(context, activity.getSubject())); }); - switch (ActivityType.findById(activity.getType())) { + final ActivityType type = ActivityType.findById(activity.getType()); + setImageResource(binding.type, type); + setImageColor(context, binding.type, type); + } + + private static void setImageResource(@NonNull ImageView imageView, @NonNull ActivityType type) { + switch (type) { case CHANGE: - binding.type.setImageResource(R.drawable.type_change_36dp); + imageView.setImageResource(R.drawable.type_change_36dp); break; case ADD: - binding.type.setImageResource(R.drawable.type_add_color_36dp); + imageView.setImageResource(R.drawable.type_add_color_36dp); break; case DELETE: - binding.type.setImageResource(R.drawable.type_delete_color_36dp); + imageView.setImageResource(R.drawable.type_delete_color_36dp); break; case ARCHIVE: - binding.type.setImageResource(R.drawable.type_archive_grey600_36dp); + imageView.setImageResource(R.drawable.type_archive_grey600_36dp); break; case TAGGED_WITH_LABEL: - binding.type.setImageResource(R.drawable.type_label_grey600_36dp); + imageView.setImageResource(R.drawable.type_label_grey600_36dp); break; case COMMENT: - binding.type.setImageResource(R.drawable.type_comment_grey600_36dp); + imageView.setImageResource(R.drawable.type_comment_grey600_36dp); break; case FILES: - binding.type.setImageResource(R.drawable.type_file_36dp); + imageView.setImageResource(R.drawable.type_file_36dp); + break; case HISTORY: - binding.type.setImageResource(R.drawable.type_history_36dp); + imageView.setImageResource(R.drawable.type_history_36dp); + break; case DECK: default: + imageView.setImageResource(R.drawable.ic_app_logo); + break; + } + } + + private static void setImageColor(@NonNull Context context, @NonNull ImageView imageView, @NonNull ActivityType type) { + switch (type) { + case ADD: + ViewUtil.setImageColor(context, imageView, R.color.activity_create); + break; + case DELETE: + ViewUtil.setImageColor(context, imageView, R.color.activity_delete); + break; + default: + ViewUtil.setImageColor(context, imageView, R.color.grey600); break; } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java index bb42f27ef..81a166cb6 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java @@ -233,9 +233,9 @@ public class CardAttachmentsFragment extends BrandedFragment implements Attachme binding.emptyContentView.hideDescription(); } @Nullable Context context = requireContext(); - if (isBrandingEnabled(context)) { - applyBrand(readBrandMainColor(context)); - } + applyBrand(isBrandingEnabled(context) + ? readBrandMainColor(context) + : ContextCompat.getColor(context, R.color.defaultBrand)); return binding.getRoot(); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/stack/StackWidgetConfigurationActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/stack/StackWidgetConfigurationActivity.java index 6b86b50ba..771feabc2 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/stack/StackWidgetConfigurationActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/stack/StackWidgetConfigurationActivity.java @@ -7,6 +7,7 @@ import android.os.Bundle; import androidx.appcompat.app.ActionBar; import it.niedermann.nextcloud.deck.DeckLog; +import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.model.Account; import it.niedermann.nextcloud.deck.ui.PickStackActivity; @@ -18,7 +19,7 @@ public class StackWidgetConfigurationActivity extends PickStackActivity { super.onCreate(savedInstanceState); final ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { - actionBar.setTitle("Add stack widget"); + actionBar.setTitle(R.string.add_stack_widget); } setResult(RESULT_CANCELED); 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 015241eef..f43f7d824 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 @@ -46,11 +46,14 @@ public class ProjectUtil { throw new IllegalArgumentException("provided url is null"); } url = url.trim(); + if (url.length() == 0) { + throw new IllegalArgumentException("trimmed url is empty"); + } // extract important part - String[] splitByPrefix = url.split(".*index\\.php/apps/deck/#/board/"); + String[] splitByPrefix = url.split(".*index\\.php/apps/deck(/#)?/board/"); // split into board- and card part if (splitByPrefix.length < 2) { - throw new IllegalArgumentException("this doesn't seem to be an URL containing the board ID"); + throw new IllegalArgumentException("This URL doesn't seem to be an URL containing the boardId: \"" + url + "\""); } String[] splitBySeparator = splitByPrefix[1].split("/card/"); @@ -63,13 +66,13 @@ public class ProjectUtil { } if (splitBySeparator.length < 1) { - throw new IllegalArgumentException("this doesn't seem to be a valid URL containing the board ID"); + throw new IllegalArgumentException("This URL doesn't seem to be an URL containing the boardId: \"" + url + "\""); } // return result long boardId = Long.parseLong(splitBySeparator[0]); if (boardId < 1) { - throw new IllegalArgumentException("invalid boardId: "+boardId); + throw new IllegalArgumentException("Invalid boardId \"" + boardId + "\" for url \"" + url + "\"."); } if (splitBySeparator.length == 1) { return new long[]{boardId}; @@ -81,7 +84,7 @@ public class ProjectUtil { return new long[]{boardId}; } } else { - throw new IllegalArgumentException("could not parse URL for board- and/or card-ID"); + throw new IllegalArgumentException("could not parse URL for boardId and/or cardId: \"" + url + "\""); } } } 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 b676fcedb..4ae39f787 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 @@ -12,6 +12,7 @@ import android.text.style.ImageSpan; import android.widget.ImageView; import android.widget.TextView; +import androidx.annotation.ColorRes; import androidx.annotation.DrawableRes; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -33,6 +34,8 @@ import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.model.Account; import it.niedermann.nextcloud.deck.model.ocs.comment.Mention; +import static android.os.Build.VERSION.SDK_INT; +import static android.os.Build.VERSION_CODES.LOLLIPOP; import static it.niedermann.nextcloud.deck.DeckApplication.isDarkTheme; import static java.time.temporal.ChronoUnit.DAYS; @@ -140,4 +143,12 @@ public final class ViewUtil { } textView.setText(messageBuilder); } + + public static void setImageColor(@NonNull Context context, @NonNull ImageView imageView, @ColorRes int colorRes) { + if (SDK_INT >= LOLLIPOP) { + imageView.setImageTintList(ColorStateList.valueOf(ContextCompat.getColor(context, colorRes))); + } else { + imageView.setColorFilter(ContextCompat.getColor(context, colorRes)); + } + } } |