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

Commit c83254ee authored by Jason Monk's avatar Jason Monk
Browse files

Make rounded corners handle color inversion

Test: visual
Change-Id: I99284b9f24340a453d39aafe6937454892e1383d
Fixes: 64210958
parent 56385a79
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -18,7 +18,10 @@ import static com.android.systemui.tuner.TunablePadding.FLAG_START;
import static com.android.systemui.tuner.TunablePadding.FLAG_END;

import android.app.Fragment;
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.graphics.PixelFormat;
import android.provider.Settings.Secure;
import android.support.annotation.VisibleForTesting;
import android.util.DisplayMetrics;
import android.view.Gravity;
@@ -28,11 +31,13 @@ import android.view.View.OnLayoutChangeListener;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.view.WindowManager;
import android.widget.ImageView;

import com.android.systemui.R.id;
import com.android.systemui.fragments.FragmentHostManager;
import com.android.systemui.fragments.FragmentHostManager.FragmentListener;
import com.android.systemui.plugins.qs.QS;
import com.android.systemui.qs.SecureSetting;
import com.android.systemui.statusbar.phone.CollapsedStatusBarFragment;
import com.android.systemui.statusbar.phone.NavigationBarFragment;
import com.android.systemui.statusbar.phone.StatusBar;
@@ -92,6 +97,22 @@ public class RoundedCorners extends SystemUI implements Tunable {

        Dependency.get(TunerService.class).addTunable(this, SIZE);

        // Watch color inversion and invert the overlay as needed.
        SecureSetting setting = new SecureSetting(mContext, Dependency.get(Dependency.MAIN_HANDLER),
                Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED) {
            @Override
            protected void handleValueChanged(int value, boolean observedChange) {
                int tint = value != 0 ? Color.WHITE : Color.BLACK;
                ColorStateList tintList = ColorStateList.valueOf(tint);
                ((ImageView) mOverlay.findViewById(id.left)).setImageTintList(tintList);
                ((ImageView) mOverlay.findViewById(id.right)).setImageTintList(tintList);
                ((ImageView) mBottomOverlay.findViewById(id.left)).setImageTintList(tintList);
                ((ImageView) mBottomOverlay.findViewById(id.right)).setImageTintList(tintList);
            }
        };
        setting.setListening(true);
        setting.onChange(false);

        mOverlay.addOnLayoutChangeListener(new OnLayoutChangeListener() {
            @Override
            public void onLayoutChange(View v, int left, int top, int right, int bottom,