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

Commit 4662611f authored by Fabrice Di Meglio's avatar Fabrice Di Meglio
Browse files

Fix bug #8846648 Reduce unnecessary drawing & GC in NetworkController/SignalClusterView

- use onRtlPropertiesChanged(int) callback for resetting drawables

Change-Id: I53eaa1fe6a211d89e2f2a9581631fb39c7c243c3
parent aa64548d
Loading
Loading
Loading
Loading
+28 −8
Original line number Diff line number Diff line
@@ -143,14 +143,39 @@ public class SignalClusterView
        return super.dispatchPopulateAccessibilityEvent(event);
    }

    @Override
    public void onRtlPropertiesChanged(int layoutDirection) {
        super.onRtlPropertiesChanged(layoutDirection);

        if (mWifi != null) {
            mWifi.setImageDrawable(null);
        }
        if (mWifiActivity != null) {
            mWifiActivity.setImageDrawable(null);
        }

        if (mMobile != null) {
            mMobile.setImageDrawable(null);
        }
        if (mMobileActivity != null) {
            mMobileActivity.setImageDrawable(null);
        }
        if (mMobileType != null) {
            mMobileType.setImageDrawable(null);
        }

        if(mAirplane != null) {
            mAirplane.setImageDrawable(null);
        }

        apply();
    }

    // Run after each indicator change.
    private void apply() {
        if (mWifiGroup == null) return;

        if (mWifiVisible) {
            mWifi.setImageDrawable(null);
            mWifiActivity.setImageDrawable(null);

            mWifi.setImageResource(mWifiStrengthId);
            mWifiActivity.setImageResource(mWifiActivityId);

@@ -166,10 +191,6 @@ public class SignalClusterView
                    mWifiStrengthId, mWifiActivityId));

        if (mMobileVisible && !mIsAirplaneMode) {
            mMobile.setImageDrawable(null);
            mMobileActivity.setImageDrawable(null);
            mMobileType.setImageDrawable(null);

            mMobile.setImageResource(mMobileStrengthId);
            mMobileActivity.setImageResource(mMobileActivityId);
            mMobileType.setImageResource(mMobileTypeId);
@@ -181,7 +202,6 @@ public class SignalClusterView
        }

        if (mIsAirplaneMode) {
            mAirplane.setImageDrawable(null);
            mAirplane.setImageResource(mAirplaneIconId);
            mAirplane.setVisibility(View.VISIBLE);
        } else {