package com.amaze.filemanager.ui.views; import android.app.Activity; import android.content.Context; import android.content.ContextWrapper; import android.graphics.Color; import android.util.AttributeSet; import com.amaze.filemanager.activities.BasicActivity; import com.amaze.filemanager.utils.theme.AppTheme; /** * Created by vishal on 18/2/17. * * A custom image view which adds an extra attribute to determine a source image when in material * dark preference */ public class ThemedImageView extends android.support.v7.widget.AppCompatImageView { public ThemedImageView(Context context) { this(context, null, 0); } public ThemedImageView(Context context, AttributeSet attrs) { this(context, attrs, 0); } public ThemedImageView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); BasicActivity a = (BasicActivity) getActivity(); // dark preference found if (a != null && a.getAppTheme().equals(AppTheme.DARK)) { setColorFilter(Color.argb(255, 255, 255, 255)); // White Tint } else if (a == null) { throw new IllegalStateException("Could not get activity! Can't show correct icon color!"); } } private Activity getActivity() { Context context = getContext(); while (context instanceof ContextWrapper) { if (context instanceof Activity) { return (Activity)context; } context = ((ContextWrapper)context).getBaseContext(); } return null; } }