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

Commit 5c2779d0 authored by Jorge Ruesga's avatar Jorge Ruesga
Browse files

systemui: SignalClusterTextView fixes and optimizations

- Optimize the SignalClusterTextView layout, but removing an unnecessary LinearLayout hierarchy
- Optimize the SignalClusterTextView view by hidding the entire view instead the cluster view
- Set start visibility of SignalClusterTextView to gone and update its state in onAttachToWindow
event. This should prevents bug CYAN-4410.
- Prevents NPE in MSIM devices when TEXT style mode is configured for the signal cluster style

Change-Id: Ib91fde693d5013bf058f161cc175923913fdfb7d
JIRA: CYAN-4410
Issue: https://jira.cyanogenmod.org/browse/CYAN-4410


Signed-off-by: default avatarJorge Ruesga <jorge@ruesga.com>
parent 0d107ce0
Loading
Loading
Loading
Loading
+19 −25
Original line number Diff line number Diff line
@@ -16,18 +16,13 @@
-->
<com.android.systemui.statusbar.SignalClusterTextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:orientation="horizontal"
    >
    <LinearLayout
    android:id="@+id/mobile_signal_text_combo"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:gravity="center"
    android:layout_marginEnd="-3dip"
        >
    android:visibility="gone">
    <TextView
        android:id="@+id/mobile_signal_text"
        android:textAppearance="@style/TextAppearance.StatusBar.Signal"
@@ -45,5 +40,4 @@
        android:layout_marginStart="1dip"
        android:paddingEnd="2dip"
        />
    </LinearLayout>
</com.android.systemui.statusbar.SignalClusterTextView>
+4 −9
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ package com.android.systemui.statusbar;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;

@@ -34,7 +33,6 @@ public class SignalClusterTextView extends LinearLayout implements
    private int mDBm = 0;
    private int mSignalClusterStyle = SignalClusterView.STYLE_NORMAL;

    private ViewGroup mMobileGroup;
    private TextView mMobileSignalText;

    public SignalClusterTextView(Context context) {
@@ -52,8 +50,8 @@ public class SignalClusterTextView extends LinearLayout implements
    @Override
    protected void onAttachedToWindow() {
        super.onAttachedToWindow();
        mMobileGroup = (ViewGroup) findViewById(R.id.mobile_signal_text_combo);
        mMobileSignalText = (TextView) findViewById(R.id.mobile_signal_text);
        updateSignalText();
    }

    public void setStyle(int style) {
@@ -69,16 +67,13 @@ public class SignalClusterTextView extends LinearLayout implements
    }

    private void updateSignalText() {
        if (mMobileGroup == null) {
            return;
        }
        if (mAirplaneMode || mDBm == 0) {
            mMobileGroup.setVisibility(View.GONE);
            setVisibility(View.GONE);
        } else if (mSignalClusterStyle == SignalClusterView.STYLE_TEXT) {
            mMobileGroup.setVisibility(View.VISIBLE);
            setVisibility(View.VISIBLE);
            mMobileSignalText.setText(getSignalLevelString(mDBm));
        } else {
            mMobileGroup.setVisibility(View.GONE);
            setVisibility(View.GONE);
        }
    }

+10 −5
Original line number Diff line number Diff line
@@ -835,12 +835,15 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
        } else {
            mNetworkController = new NetworkController(mContext);
            mSignalClusterView = (SignalClusterView) mStatusBarView.findViewById(R.id.signal_cluster);
            mNetworkController.addSignalCluster(mSignalClusterView);
            mSignalClusterView.setNetworkController(mNetworkController);

            mSignalTextView = (SignalClusterTextView)
                    mStatusBarView.findViewById(R.id.signal_cluster_text);
            mNetworkController.addSignalCluster(mSignalClusterView);
            if (mSignalTextView != null) {
                mNetworkController.addNetworkSignalChangedCallback(mSignalTextView);
                mNetworkController.addSignalStrengthChangedCallback(mSignalTextView);
            mSignalClusterView.setNetworkController(mNetworkController);
            }

            final boolean isAPhone = mNetworkController.hasVoiceCallingFeature();
            if (isAPhone) {
@@ -3188,9 +3191,11 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
            mMSimSignalClusterView.setStyle(signalStyle);
        } else {
            mSignalClusterView.setStyle(signalStyle);
            if (mSignalTextView != null) {
                mSignalTextView.setStyle(signalStyle);
            }
        }
    }

    private void resetUserSetupObserver() {
        mContext.getContentResolver().unregisterContentObserver(mUserSetupObserver);