diff --git a/app/src/main/java/be/digitalia/fosdem/widgets/BookmarkStatusAdapter.java b/app/src/main/java/be/digitalia/fosdem/widgets/BookmarkStatusAdapter.java index b127e96..8a11efe 100644 --- a/app/src/main/java/be/digitalia/fosdem/widgets/BookmarkStatusAdapter.java +++ b/app/src/main/java/be/digitalia/fosdem/widgets/BookmarkStatusAdapter.java @@ -1,7 +1,5 @@ package be.digitalia.fosdem.widgets; -import android.graphics.drawable.Animatable; -import android.graphics.drawable.Drawable; import android.widget.ImageButton; import androidx.annotation.NonNull; import androidx.lifecycle.LifecycleOwner; @@ -23,21 +21,14 @@ public class BookmarkStatusAdapter { viewModel.getBookmarkStatus().observe(owner, bookmarkStatus -> { if (bookmarkStatus == null) { imageButton.setEnabled(false); - imageButton.setImageResource(R.drawable.ic_bookmark_outline_white_24dp); + imageButton.setSelected(false); } else { - // Only animate updates, when the button was already enabled - final boolean animate = bookmarkStatus.isUpdate() && imageButton.isEnabled(); imageButton.setEnabled(true); - if (bookmarkStatus.isBookmarked()) { - imageButton.setContentDescription(imageButton.getContext().getString(R.string.remove_bookmark)); - imageButton.setImageResource(animate ? R.drawable.avd_bookmark_add_24dp : R.drawable.ic_bookmark_white_24dp); - } else { - imageButton.setContentDescription(imageButton.getContext().getString(R.string.add_bookmark)); - imageButton.setImageResource(animate ? R.drawable.avd_bookmark_remove_24dp : R.drawable.ic_bookmark_outline_white_24dp); - } - final Drawable drawable = imageButton.getDrawable(); - if (drawable instanceof Animatable) { - ((Animatable) drawable).start(); + imageButton.setContentDescription(imageButton.getContext().getString(bookmarkStatus.isBookmarked() ? R.string.remove_bookmark : R.string.add_bookmark)); + imageButton.setSelected(bookmarkStatus.isBookmarked()); + // Only animate updates, when the button was already enabled + if (!bookmarkStatus.isUpdate() || !imageButton.isEnabled()) { + imageButton.jumpDrawablesToCurrentState(); } } }); diff --git a/app/src/main/res/drawable/asld_bookmark_24dp.xml b/app/src/main/res/drawable/asld_bookmark_24dp.xml new file mode 100644 index 0000000..9a77783 --- /dev/null +++ b/app/src/main/res/drawable/asld_bookmark_24dp.xml @@ -0,0 +1,18 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 546e1a8..149be1f 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -75,7 +75,7 @@ false @style/ThemeOverlay.AppCompat.Dark normal - @drawable/ic_bookmark_outline_white_24dp + @drawable/asld_bookmark_24dp