diff options
Diffstat (limited to 'app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedSnackbar.java')
-rw-r--r-- | app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedSnackbar.java | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedSnackbar.java b/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedSnackbar.java index 8e3a4d9f..1c0ebf11 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedSnackbar.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedSnackbar.java @@ -1,28 +1,46 @@ package it.niedermann.owncloud.notes.branding; +import static it.niedermann.owncloud.notes.NotesApplication.isDarkThemeActive; +import static it.niedermann.owncloud.notes.branding.BrandingUtil.getAttribute; +import static it.niedermann.owncloud.notes.branding.BrandingUtil.readBrandMainColor; +import static it.niedermann.owncloud.notes.shared.util.NotesColorUtil.contrastRatioIsSufficient; + import android.graphics.Color; import android.view.View; +import androidx.annotation.ColorInt; import androidx.annotation.NonNull; import androidx.annotation.StringRes; +import com.google.android.material.snackbar.BaseTransientBottomBar; import com.google.android.material.snackbar.Snackbar; -import it.niedermann.android.util.ColorUtil; +import it.niedermann.owncloud.notes.R; public class BrandedSnackbar { @NonNull - public static Snackbar make(@NonNull View view, @NonNull CharSequence text, @Snackbar.Duration int duration) { + public static Snackbar make(@NonNull View view, @NonNull CharSequence text, @BaseTransientBottomBar.Duration int duration) { final var snackbar = Snackbar.make(view, text, duration); - final int color = BrandingUtil.readBrandMainColor(view.getContext()); - snackbar.setActionTextColor(ColorUtil.INSTANCE.isColorDark(color) ? Color.WHITE : color); + + @ColorInt final int backgroundColor = getAttribute(view.getContext(), R.attr.colorSurfaceInverse); + @ColorInt final int color = readBrandMainColor(view.getContext()); + + if (contrastRatioIsSufficient(backgroundColor, color)) { + snackbar.setActionTextColor(color); + } else { + if (isDarkThemeActive(view.getContext())) { + snackbar.setActionTextColor(Color.BLACK); + } else { + snackbar.setActionTextColor(Color.WHITE); + } + } + return snackbar; } @NonNull - public static Snackbar make(@NonNull View view, @StringRes int resId, @Snackbar.Duration int duration) { + public static Snackbar make(@NonNull View view, @StringRes int resId, @BaseTransientBottomBar.Duration int duration) { return make(view, view.getResources().getText(resId), duration); } - }
\ No newline at end of file |