Skip to content

Commit

Permalink
Nicer Placeholder For Light Mode
Browse files Browse the repository at this point in the history
  • Loading branch information
TheBrokenRail committed Sep 22, 2023
1 parent 68e4303 commit 2da4cf5
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 25 deletions.
16 changes: 16 additions & 0 deletions app/src/main/java/com/thebrokenrail/combustible/util/Images.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import androidx.annotation.ColorInt;
import androidx.appcompat.content.res.AppCompatResources;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.drawable.DrawableCompat;

import com.thebrokenrail.combustible.R;
import com.thebrokenrail.combustible.api.method.GetSiteResponse;
Expand Down Expand Up @@ -98,4 +99,19 @@ public static boolean shouldBlurNsfw(GetSiteResponse site) {
}*/
return true;
}

public static Drawable createThemedPlaceholder(Context context) {
// Get Drawable
Drawable placeholder = ContextCompat.getDrawable(context, R.drawable.baseline_image_24);
assert placeholder != null;

// Tint Drawable
TypedValue typedValue = new TypedValue();
context.getTheme().resolveAttribute(com.google.android.material.R.attr.colorOnSurface, typedValue, true);
@ColorInt int color = ContextCompat.getColor(context, typedValue.resourceId);
DrawableCompat.setTint(DrawableCompat.wrap(placeholder).mutate(), color);

// Return
return placeholder;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,12 @@

import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.text.Spanned;
import android.util.TypedValue;
import android.widget.TextView;

import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.drawable.DrawableCompat;

import com.bumptech.glide.RequestManager;
import com.thebrokenrail.combustible.R;
import com.thebrokenrail.combustible.activity.ViewImageActivity;
import com.thebrokenrail.combustible.activity.settings.app.AppSettings;
import com.thebrokenrail.combustible.util.Images;
Expand Down Expand Up @@ -42,28 +36,13 @@ public MarkdownImagePlugin(Context context) {
cornerRadius = Images.getCornerRadius(context);
}

static Drawable getPlaceholder(Context context) {
// Get Drawable
Drawable placeholder = ContextCompat.getDrawable(context, R.drawable.baseline_image_24);
assert placeholder != null;

// Tint Drawable
TypedValue typedValue = new TypedValue();
context.getTheme().resolveAttribute(com.google.android.material.R.attr.colorOnSurface, typedValue, true);
@ColorInt int color = ContextCompat.getColor(context, typedValue.resourceId);
DrawableCompat.setTint(DrawableCompat.wrap(placeholder).mutate(), color);

// Return
return placeholder;
}

@Override
public void configureSpansFactory(@NonNull MarkwonSpansFactory.Builder builder) {
// Add ImageSpans
builder.setFactory(Image.class, (configuration, props) -> {
String url = ImageProps.DESTINATION.require(props);
ImageSize size = ImageProps.IMAGE_SIZE.get(props);
return new MarkdownImageSpan(getPlaceholder(context), size, url);
return new MarkdownImageSpan(Images.createThemedPlaceholder(context), size, url);
});

// Clickable Images
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

import com.bumptech.glide.request.target.CustomTarget;
import com.bumptech.glide.request.transition.Transition;
import com.thebrokenrail.combustible.util.Images;

import java.lang.ref.WeakReference;

Expand Down Expand Up @@ -51,7 +52,7 @@ public void onLoadCleared(@Nullable Drawable placeholder) {
}
// Set Placeholder
if (textView.get() != null) {
setDrawable(MarkdownImagePlugin.getPlaceholder(textView.get().getContext()), false);
setDrawable(Images.createThemedPlaceholder(textView.get().getContext()), false);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@

import androidx.appcompat.widget.AppCompatImageView;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.core.content.ContextCompat;

import com.bumptech.glide.RequestManager;
import com.bumptech.glide.load.resource.bitmap.CircleCrop;
import com.thebrokenrail.combustible.R;
import com.thebrokenrail.combustible.util.Images;
import com.thebrokenrail.combustible.util.Util;
import com.thebrokenrail.combustible.util.glide.GlideApp;
import com.thebrokenrail.combustible.util.glide.GlideUtil;
Expand Down Expand Up @@ -91,7 +91,7 @@ public void setup(String iconUrl, boolean blur, String newText, Runnable onClick

// Load Image
String thumbnailUrl = Util.getThumbnailUrl(iconUrl);
GlideUtil.load(getContext(), requestManager, thumbnailUrl, new CircleCrop(), 0, blur, true, ContextCompat.getDrawable(getContext(), R.drawable.baseline_image_24), icon);
GlideUtil.load(getContext(), requestManager, thumbnailUrl, new CircleCrop(), 0, blur, true, Images.createThemedPlaceholder(getContext()), icon);
} else {
icon.setVisibility(GONE);
requestManager.clear(icon);
Expand Down

0 comments on commit 2da4cf5

Please sign in to comment.