Skip to content

Commit

Permalink
Fluid Theme: Fix brightness bar and power button
Browse files Browse the repository at this point in the history
  • Loading branch information
Mahmud0808 committed Sep 6, 2023
1 parent d987b85 commit f4f3202
Showing 1 changed file with 41 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import static com.drdisagree.iconify.config.XPrefs.Xprefs;
import static com.drdisagree.iconify.xposed.HookRes.modRes;
import static com.drdisagree.iconify.xposed.HookRes.resparams;
import static com.drdisagree.iconify.xposed.utils.SettingsLibUtils.getColorAttr;
import static com.drdisagree.iconify.xposed.utils.ViewHelper.setAlphaForBackgroundDrawables;
import static de.robv.android.xposed.XposedBridge.hookAllConstructors;
import static de.robv.android.xposed.XposedBridge.hookAllMethods;
Expand Down Expand Up @@ -47,6 +46,7 @@
import com.drdisagree.iconify.xposed.ModPack;
import com.drdisagree.iconify.xposed.utils.RoundedCornerProgressDrawable;
import com.drdisagree.iconify.xposed.utils.SystemUtil;
import com.drdisagree.iconify.xposed.utils.ViewHelper;

import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.callbacks.XC_InitPackageResources;
Expand Down Expand Up @@ -134,6 +134,13 @@ protected void afterHookedMethod(MethodHookParam param) {
});

// QS tile color
hookAllConstructors(QSTileViewImplClass, new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) {
colorInactiveAlpha[0] = changeAlpha((Integer) getObjectField(param.thisObject, "colorInactive"), INACTIVE_ALPHA);
}
});

hookAllMethods(QSTileViewImplClass, "getBackgroundColorForState", new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) {
Expand Down Expand Up @@ -224,10 +231,17 @@ protected void afterHookedMethod(MethodHookParam param) {

setAlphaForBackgroundDrawables(view, INACTIVE_ALPHA);

ViewGroup pm_button_container = view.findViewById(res.getIdentifier("pm_lite", "id", mContext.getPackageName()));
pm_button_container.getBackground().setAlpha((int) (ACTIVE_ALPHA * 255));
pm_button_container.getBackground().setTint(colorAccent[0]);
((ImageView) pm_button_container.getChildAt(0)).setColorFilter(colorAccent[0], PorterDuff.Mode.SRC_IN);
try {
ViewGroup pm_button_container = view.findViewById(res.getIdentifier("pm_lite", "id", mContext.getPackageName()));
pm_button_container.getBackground().setAlpha((int) (ACTIVE_ALPHA * 255));
pm_button_container.getBackground().setTint(colorAccent[0]);
((ImageView) pm_button_container.getChildAt(0)).setColorFilter(colorAccent[0], PorterDuff.Mode.SRC_IN);
} catch (Throwable ignored) {
ImageView pm_button = view.findViewById(res.getIdentifier("pm_lite", "id", mContext.getPackageName()));
pm_button.getBackground().setAlpha((int) (ACTIVE_ALPHA * 255));
pm_button.getBackground().setTint(colorAccent[0]);
pm_button.setImageTintList(ColorStateList.valueOf(colorAccent[0]));
}
} catch (Throwable throwable) {
log(TAG + throwable);
}
Expand All @@ -244,7 +258,7 @@ protected void afterHookedMethod(MethodHookParam param) {

try {
SeekBar mSlider = (SeekBar) getObjectField(param.thisObject, "mSlider");
mSlider.setProgressDrawable(createBrightnessBackgroundDrawable(mContext));
mSlider.setProgressDrawable(createBrightnessDrawable(mContext));

LayerDrawable progress = (LayerDrawable) mSlider.getProgressDrawable();
DrawableWrapper progressSlider = (DrawableWrapper) progress.findDrawableByLayerId(android.R.id.progress);
Expand Down Expand Up @@ -288,8 +302,7 @@ protected void afterHookedMethod(MethodHookParam param) {
try {
((ImageView) getObjectField(param.thisObject, "mIconView")).setImageTintList(ColorStateList.valueOf(colorAccent[0]));
((ImageView) getObjectField(param.thisObject, "mIconView")).setBackgroundTintList(ColorStateList.valueOf(colorActiveAlpha[0]));
} catch (Throwable throwable1) {
log(TAG + throwable1);
} catch (Throwable ignored) {
}
}
}
Expand Down Expand Up @@ -572,7 +585,7 @@ private int changeAlpha(int color, int alpha) {
return Color.argb(alpha, red, green, blue);
}

private LayerDrawable createBrightnessBackgroundDrawable(Context context) {
private LayerDrawable createBrightnessDrawable(Context context) {
Resources res = context.getResources();
int cornerRadius = context.getResources().getDimensionPixelSize(res.getIdentifier("rounded_slider_corner_radius", "dimen", context.getPackageName()));
int height = context.getResources().getDimensionPixelSize(res.getIdentifier("rounded_slider_height", "dimen", context.getPackageName()));
Expand All @@ -586,18 +599,12 @@ private LayerDrawable createBrightnessBackgroundDrawable(Context context) {
}
ShapeDrawable backgroundShape = new ShapeDrawable(new RoundRectShape(radiusF, null, null));
backgroundShape.setIntrinsicHeight(height);

@SuppressLint("DiscouragedApi") ColorStateList states = getColorAttr(res.getIdentifier("attr/offStateColor", "attr", context.getPackageName()), context);
if (states != null) {
backgroundShape.getPaint().setColor(changeAlpha(states.getDefaultColor(), INACTIVE_ALPHA));
} else {
backgroundShape.getPaint().setColor(colorInactiveAlpha[0]);
}
backgroundShape.getPaint().setColor(colorInactiveAlpha[0]);

// Create the progress drawable
RoundedCornerProgressDrawable progressDrawable = null;
try {
progressDrawable = new RoundedCornerProgressDrawable(ResourcesCompat.getDrawable(res, res.getIdentifier("brightness_progress_full_drawable", "drawable", context.getPackageName()), context.getTheme()));
progressDrawable = new RoundedCornerProgressDrawable(createBrightnessForegroundDrawable(context));
progressDrawable.setAlpha((int) (ACTIVE_ALPHA * 255));
progressDrawable.setTint(colorAccent[0]);
} catch (Throwable ignored) {
Expand All @@ -623,4 +630,21 @@ private LayerDrawable createBrightnessBackgroundDrawable(Context context) {

return layerDrawable;
}

private LayerDrawable createBrightnessForegroundDrawable(Context context) {
Resources res = context.getResources();

GradientDrawable rectangleDrawable = new GradientDrawable();
int cornerRadius = context.getResources().getDimensionPixelSize(res.getIdentifier("rounded_slider_corner_radius", "dimen", context.getPackageName()));
rectangleDrawable.setCornerRadius(cornerRadius);
rectangleDrawable.setColor(colorAccent[0]);

LayerDrawable layerDrawable = new LayerDrawable(new Drawable[]{rectangleDrawable});
layerDrawable.setLayerGravity(0, Gravity.FILL_HORIZONTAL | Gravity.CENTER);

int height = ViewHelper.dp2px(context, 48);
layerDrawable.setLayerSize(0, layerDrawable.getLayerWidth(0), height);

return layerDrawable;
}
}

0 comments on commit f4f3202

Please sign in to comment.