Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 362dd6d6 authored by Jorim Jaggi's avatar Jorim Jaggi
Browse files

Add glyph rerasterization hack for SystemUI.

Change-Id: I39d84e981b828b501801349d7a5e70a089b5f14e
parent 770a6caf
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -112,4 +112,8 @@ public abstract class HardwareCanvas extends Canvas {

    public abstract void drawCircle(CanvasProperty<Float> cx, CanvasProperty<Float> cy,
            CanvasProperty<Float> radius, CanvasProperty<Paint> paint);

    public static void setProperty(String name, String value) {
        GLES20Canvas.setProperty(name, value);
    }
}
+3 −0
Original line number Diff line number Diff line
@@ -351,4 +351,7 @@

    <!-- The font size of the time when collapsed in QS -->
    <dimen name="qs_time_collapsed_size">14sp</dimen>

    <!-- The font size of the time when expanded in QS -->
    <dimen name="qs_time_expanded_size">20sp</dimen>
</resources>
+1 −1
Original line number Diff line number Diff line
@@ -70,7 +70,7 @@
    <style name="TextAppearance.StatusBar.Expanded" parent="@*android:style/TextAppearance.StatusBar" />

    <style name="TextAppearance.StatusBar.Expanded.Clock">
        <item name="android:textSize">20sp</item>
        <item name="android:textSize">@dimen/qs_time_expanded_size</item>
        <item name="android:fontFamily">sans-serif-medium</item>
        <item name="android:textColor">#ffffff</item>
    </style>
+30 −2
Original line number Diff line number Diff line
@@ -61,7 +61,6 @@ import android.os.Message;
import android.os.PowerManager;
import android.os.RemoteException;
import android.os.SystemClock;
import android.os.Trace;
import android.os.UserHandle;
import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException;
@@ -73,6 +72,7 @@ import android.util.EventLog;
import android.util.Log;
import android.view.Display;
import android.view.Gravity;
import android.view.HardwareCanvas;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MotionEvent;
@@ -82,6 +82,7 @@ import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.view.ViewPropertyAnimator;
import android.view.ViewStub;
import android.view.ViewTreeObserver;
import android.view.WindowManager;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.Animation;
@@ -119,7 +120,6 @@ import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.policy.BatteryController;
import com.android.systemui.statusbar.policy.BluetoothControllerImpl;
import com.android.systemui.statusbar.policy.CastControllerImpl;
import com.android.systemui.statusbar.policy.DateView;
import com.android.systemui.statusbar.policy.FlashlightController;
import com.android.systemui.statusbar.policy.HeadsUpNotificationView;
import com.android.systemui.statusbar.policy.KeyguardUserSwitcher;
@@ -130,6 +130,7 @@ import com.android.systemui.statusbar.policy.RotationLockControllerImpl;
import com.android.systemui.statusbar.policy.ZenModeController;
import com.android.systemui.statusbar.stack.NotificationStackScrollLayout;
import com.android.systemui.statusbar.stack.NotificationStackScrollLayout.OnChildLocationsChangedListener;
import com.android.systemui.statusbar.stack.StackScrollAlgorithm;
import com.android.systemui.statusbar.stack.StackScrollState.ViewState;
import com.android.systemui.volume.VolumeComponent;

@@ -383,6 +384,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,

    private final ShadeUpdates mShadeUpdates = new ShadeUpdates();

    private int mDrawCount;

    private static final int VISIBLE_LOCATIONS = ViewState.LOCATION_FIRST_CARD
            | ViewState.LOCATION_TOP_STACK_PEEKING
            | ViewState.LOCATION_MAIN_AREA
@@ -723,9 +726,34 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
        // listen for USER_SETUP_COMPLETE setting (per-user)
        resetUserSetupObserver();

        startGlyphRasterizeHack();
        return mStatusBarView;
    }

    /**
     * Hack to improve glyph rasterization for scaled text views.
     */
    private void startGlyphRasterizeHack() {
        mStatusBarView.getViewTreeObserver().addOnPreDrawListener(
                new ViewTreeObserver.OnPreDrawListener() {
            @Override
            public boolean onPreDraw() {
                if (mDrawCount == 1) {
                    mStatusBarView.getViewTreeObserver().removeOnPreDrawListener(this);
                    HardwareCanvas.setProperty("extraRasterBucket",
                            Float.toString(StackScrollAlgorithm.DIMMED_SCALE));
                    HardwareCanvas.setProperty("extraRasterBucket", Float.toString(
                            mContext.getResources().getDimensionPixelSize(
                                    R.dimen.qs_time_collapsed_size)
                            / mContext.getResources().getDimensionPixelSize(
                                    R.dimen.qs_time_expanded_size)));
                }
                mDrawCount++;
                return true;
            }
        });
    }

    @Override
    protected void setZenMode(int mode) {
        super.setZenMode(mode);
+1 −1
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@ public class StackScrollAlgorithm {

    /** When a child is activated, the other cards' alpha fade to this value. */
    private static final float ACTIVATED_INVERSE_ALPHA = 0.9f;
    private static final float DIMMED_SCALE = 0.95f;
    public static final float DIMMED_SCALE = 0.95f;

    private int mPaddingBetweenElements;
    private int mCollapsedSize;