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

Commit be707786 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "SystemUI: Redesign the scheme of selecting icons on signal cluster"

parents 1a4d357d 6e1b67a8
Loading
Loading
Loading
Loading
+76 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
<!--
/* apps/common/assets/default/default/skins/StatusBar.xml
**
** Copyright (c) 2012-2013 The Linux Foundation. All rights reserved.
** Copyright (c) 2012-2014 The Linux Foundation. All rights reserved.
** Not a Contribution.
** Copyright 2011 The Android Open Source Project
**
@@ -75,6 +75,23 @@
            />
    </FrameLayout>
    -->
    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/data_combo"
        android:visibility="gone"
        >
        <View
            android:layout_width="6dp"
            android:layout_height="6dp"
            android:visibility="invisible"
            />
        <ImageView
            android:id="@+id/data_inout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />
    </FrameLayout>
    <FrameLayout
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
@@ -89,6 +106,30 @@
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            >
            <LinearLayout
                android:id="@+id/mobile_signal_cdma"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:visibility="gone"
                >
                <ImageView
                    android:id="@+id/mobile_signal_3g"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    />
                <ImageView
                    android:id="@+id/mobile_signal_1x"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    />
            </LinearLayout>
            <ImageView
                android:id="@+id/mobile_signal_1x_only"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="gone"
                />
            <ImageView
                android:id="@+id/mobile_signal"
                android:layout_height="wrap_content"
@@ -120,6 +161,23 @@
        android:visibility="gone"
        android:id="@+id/spacer"
        />
    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/data_combo_sub2"
        android:visibility="gone"
        >
        <View
            android:layout_width="6dp"
            android:layout_height="6dp"
            android:visibility="invisible"
            />
        <ImageView
            android:id="@+id/data_inout_sub2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />
    </FrameLayout>
    <FrameLayout
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
@@ -165,6 +223,23 @@
        android:visibility="gone"
        android:id="@+id/spacer"
        />
    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/data_combo_sub3"
        android:visibility="gone"
        >
        <View
            android:layout_width="6dp"
            android:layout_height="6dp"
            android:visibility="invisible"
            />
        <ImageView
            android:id="@+id/data_inout_sub3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />
    </FrameLayout>
    <FrameLayout
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
+47 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
<!--
/* apps/common/assets/default/default/skins/StatusBar.xml
**
** Copyright (c) 2012-2013 The Linux Foundation. All rights reserved.
** Copyright (c) 2012-2014 The Linux Foundation. All rights reserved.
** Not a Contribution.
** Copyright 2011, The Android Open Source Project
**
@@ -41,6 +41,11 @@
            android:layout_centerVertical="true"
            android:scaleType="center"
            />
        <ImageView
            android:id="@+id/wifi_inout"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            />
    </FrameLayout>
    <View
        android:layout_height="6dp"
@@ -64,6 +69,23 @@
            />
    </FrameLayout>
    -->
    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/data_combo"
        android:visibility="gone"
        >
        <View
            android:layout_width="6dp"
            android:layout_height="6dp"
            android:visibility="invisible"
            />
        <ImageView
            android:id="@+id/data_inout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />
    </FrameLayout>
    <FrameLayout
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
@@ -78,6 +100,30 @@
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            >
            <LinearLayout
                android:id="@+id/mobile_signal_cdma"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:visibility="gone"
                >
                <ImageView
                    android:id="@+id/mobile_signal_3g"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    />
                <ImageView
                    android:id="@+id/mobile_signal_1x"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    />
            </LinearLayout>
            <ImageView
                android:id="@+id/mobile_signal_1x_only"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="gone"
            />
            <ImageView
                android:id="@+id/mobile_signal"
                android:layout_height="wrap_content"
+642 −0

File changed.

Preview size limit exceeded, changes collapsed.

+13 −0
Original line number Diff line number Diff line
@@ -118,5 +118,18 @@
    <bool name="config_showApnSwitch">false</bool>
    <bool name="config_showRoamingSetting">false</bool>
    <bool name="config_enableDataSwitch">false</bool>
    <!-- style of status bar:
        0: Default Android style
        1: Show data activity with data type at the left side of
           signal icon, and signal icon on slot 0 may be two icons
           stacked, the upper one is to show 3G, and the lower one
           is to show 1X.
        2: Do not show data activity besides signal icon, instead,
           it shows data activity within signal view.
        3: Show data activity with data type at the left side
           of signal icon, and do not show two stacked icon on
           one slot.
    -->
    <integer name="status_bar_style">0</integer>
</resources>
+209 −17
Original line number Diff line number Diff line
/*
 * Copyright (c) 2012-2013 The Linux Foundation. All rights reserved.
 * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved.
 * Not a Contribution.
 * Copyright (C) 2011 The Android Open Source Project
 *
@@ -43,6 +43,13 @@ public class MSimSignalClusterView
    static final boolean DEBUG = false;
    static final String TAG = "MSimSignalClusterView";

    private final int STATUS_BAR_STYLE_ANDROID_DEFAULT = 0;
    private final int STATUS_BAR_STYLE_CDMA_1X_COMBINED = 1;
    private final int STATUS_BAR_STYLE_DEFAULT_DATA = 2;
    private final int STATUS_BAR_STYLE_DATA_VOICE = 3;

    private int mStyle = 0;

    MSimNetworkController mMSimNC;

    private boolean mWifiVisible = false;
@@ -64,7 +71,24 @@ public class MSimSignalClusterView
    ImageView[] mMobile;
    ImageView[] mMobileActivity;
    ImageView[] mMobileType;
    View mSpacer;
    //cdma and 1x
    private boolean mMobileCdmaVisible = false;
    private boolean mMobileCdma1xOnlyVisible = false;
    private int mMobileCdma3gId = 0;
    private int mMobileCdma1xId = 0;
    private int mMobileCdma1xOnlyId = 0;
    private ViewGroup mMobileCdmaGroup;
    private ImageView mMobileCdma3g, mMobileCdma1x, mMobileCdma1xOnly;

    //data
    private boolean mDataVisible[];
    private int mDataActivityId[];
    private ViewGroup mDataGroup[];
    private ImageView mDataActivity[];

    //spacer
    private View mSpacer;

    private int[] mMobileGroupResourceId = {R.id.mobile_combo, R.id.mobile_combo_sub2,
                                        R.id.mobile_combo_sub3};
    private int[] mMobileResourceId = {R.id.mobile_signal, R.id.mobile_signal_sub2,
@@ -74,7 +98,11 @@ public class MSimSignalClusterView
    private int[] mMobileTypeResourceId = {R.id.mobile_type, R.id.mobile_type_sub2,
                                        R.id.mobile_type_sub3};
    private int[] mNoSimSlotResourceId = {R.id.no_sim, R.id.no_sim_slot2, R.id.no_sim_slot3};
    private int mNumPhones = MSimTelephonyManager.getDefault().getPhoneCount();
    private int[] mDataGroupResourceId = {R.id.data_combo, R.id.data_combo_sub2,
                                        R.id.data_combo_sub3};
    private int[] mDataActResourceId = {R.id.data_inout, R.id.data_inout_sub2,
                                        R.id.data_inout_sub3};
    private final int mNumPhones = MSimTelephonyManager.getDefault().getPhoneCount();

    public MSimSignalClusterView(Context context) {
        this(context, null);
@@ -96,12 +124,18 @@ public class MSimSignalClusterView
        mMobile = new ImageView[mNumPhones];
        mMobileActivity = new ImageView[mNumPhones];
        mMobileType = new ImageView[mNumPhones];
        mDataVisible = new boolean[mNumPhones];
        mDataActivityId = new int[mNumPhones];
        mDataGroup = new ViewGroup[mNumPhones];
        mDataActivity = new ImageView[mNumPhones];
        for(int i=0; i < mNumPhones; i++) {
            mMobileStrengthId[i] = 0;
            mMobileTypeId[i] = 0;
            mMobileActivityId[i] = 0;
            mNoSimIconId[i] = 0;
        }

        mStyle = context.getResources().getInteger(R.integer.status_bar_style);
    }

    public void setNetworkController(MSimNetworkController nc) {
@@ -125,7 +159,16 @@ public class MSimSignalClusterView
            mMobileActivity[i] = (ImageView) findViewById(mMobileActResourceId[i]);
            mMobileType[i]     = (ImageView) findViewById(mMobileTypeResourceId[i]);
            mNoSimSlot[i]      = (ImageView) findViewById(mNoSimSlotResourceId[i]);

            mDataGroup[i]      = (ViewGroup) findViewById(mDataGroupResourceId[i]);
            mDataActivity[i]   = (ImageView) findViewById(mDataActResourceId[i]);
        }

        mMobileCdmaGroup    = (ViewGroup) findViewById(R.id.mobile_signal_cdma);
        mMobileCdma3g       = (ImageView) findViewById(R.id.mobile_signal_3g);
        mMobileCdma1x       = (ImageView) findViewById(R.id.mobile_signal_1x);
        mMobileCdma1xOnly   = (ImageView) findViewById(R.id.mobile_signal_1x_only);

        applySubscription(MSimTelephonyManager.getDefault().getDefaultSubscription());
    }

@@ -142,13 +185,22 @@ public class MSimSignalClusterView
            mMobileActivity[i] = null;
            mMobileType[i]     = null;
            mNoSimSlot[i]      = null;
            mDataGroup[i]      = null;
            mDataActivity[i]   = null;
        }
        mMobileCdmaGroup    = null;
        mMobileCdma3g       = null;
        mMobileCdma1x       = null;
        mMobileCdma1xOnly   = null;

        super.onDetachedFromWindow();
    }

    @Override
    public void setWifiIndicators(boolean visible, int strengthIcon, String contentDescription) {
    public void setWifiIndicators(boolean visible, int strengthIcon, int activityIcon,
            String contentDescription) {
        mWifiVisible = visible;
        mWifiActivityId = activityIcon;
        mWifiStrengthId = strengthIcon;
        mWifiDescription = contentDescription;

@@ -156,16 +208,46 @@ public class MSimSignalClusterView
    }

    @Override
    public void setMobileDataIndicators(boolean visible, int strengthIcon,
    public void setMobileDataIndicators(boolean visible, int strengthIcon, int activityIcon,
            int typeIcon, String contentDescription, String typeContentDescription,
            int noSimIcon, int subscription) {
        mMobileVisible = visible;
        mMobileStrengthId[subscription] = strengthIcon;
        mMobileTypeId[subscription] = typeIcon;
        mMobileActivityId[subscription] = activityIcon;
        mMobileDescription[subscription] = contentDescription;
        mMobileTypeDescription = typeContentDescription;
        mNoSimIconId[subscription] = noSimIcon;

        if (showMobileActivity()) {
            mMobileActivityId[subscription] = 0;
            mDataActivityId[subscription] = 0;
            mDataVisible[subscription] = false;
        } else {
            mMobileActivityId[subscription] = 0;
            mDataActivityId[subscription] = activityIcon;
            mDataVisible[subscription] = (activityIcon != 0) ? true : false;
        }

        if (mStyle == STATUS_BAR_STYLE_CDMA_1X_COMBINED) {
            if (showBoth3gAnd1x()) {
                mMobileCdmaVisible = true;
                mMobileCdma1xOnlyVisible = false;

                mMobileCdma1xId = strengthIcon;
                mMobileCdma3gId = getMobileCdma3gId(mMobileCdma1xId);
            } else if (show1xOnly() || isRoaming()) {
                //when it is roaming, just show one icon, rather than two icons for CT.
                mMobileCdmaVisible = false;
                mMobileCdma1xOnlyVisible = true;

                mMobileCdma1xOnlyId = strengthIcon;
            }
        }else {
            mMobileCdmaVisible = false;
            mMobileCdma1xOnlyVisible = false;
        }

        applySubscription(subscription);
    }

@@ -197,7 +279,9 @@ public class MSimSignalClusterView
        if (mWifiVisible) {
            mWifiGroup.setVisibility(View.VISIBLE);
            mWifi.setImageResource(mWifiStrengthId);
            if (mStyle != STATUS_BAR_STYLE_ANDROID_DEFAULT) {
                mWifiActivity.setImageResource(mWifiActivityId);
            }
            mWifiGroup.setContentDescription(mWifiDescription);
        } else {
            mWifiGroup.setVisibility(View.GONE);
@@ -208,15 +292,10 @@ public class MSimSignalClusterView
                (mWifiVisible ? "VISIBLE" : "GONE"), mWifiStrengthId, mWifiActivityId));

        if (mMobileVisible && !mIsAirplaneMode) {
            updateMobile(subscription);
            updateCdma();
            updateData(subscription);
            mMobileGroup[subscription].setVisibility(View.VISIBLE);
            mMobile[subscription].setImageResource(mMobileStrengthId[subscription]);
            mMobileGroup[subscription].setContentDescription(mMobileTypeDescription + " "
                + mMobileDescription[subscription]);
            mMobileActivity[subscription].setImageResource(mMobileActivityId[subscription]);
            mMobileType[subscription].setImageResource(mMobileTypeId[subscription]);
            mMobileType[subscription].setVisibility(
                !mWifiVisible ? View.VISIBLE : View.GONE);
            mNoSimSlot[subscription].setImageResource(mNoSimIconId[subscription]);
        } else {
            mMobileGroup[subscription].setVisibility(View.GONE);
        }
@@ -228,6 +307,24 @@ public class MSimSignalClusterView
            mAirplane.setVisibility(View.GONE);
        }

        if (DEBUG) Slog.d(TAG,
                String.format("mobile[%d]: %s sig=%d type=%d", subscription,
                    (mMobileVisible ? "VISIBLE" : "GONE"),
                    mMobileStrengthId[subscription], mMobileTypeId[subscription]));

        if (mStyle == STATUS_BAR_STYLE_ANDROID_DEFAULT) {
            mMobileType[subscription].setVisibility(
                    !mWifiVisible ? View.VISIBLE : View.GONE);
        } else {
            mMobileType[subscription].setVisibility(View.GONE);
        }

        if (mStyle != STATUS_BAR_STYLE_ANDROID_DEFAULT
                && mNoSimIconId[subscription] != 0) {
            mNoSimSlot[subscription].setVisibility(View.VISIBLE);
            mMobile[subscription].setVisibility(View.GONE);
        }

        if (subscription != 0) {
            if (mMobileVisible && mWifiVisible && ((mIsAirplaneMode) ||
                    (mNoSimIconId[subscription] != 0))) {
@@ -238,5 +335,100 @@ public class MSimSignalClusterView
        }

    }

    private void updateMobile(int sub) {
        mMobile[sub].setImageResource(mMobileStrengthId[sub]);
        mMobileGroup[sub].setContentDescription(mMobileTypeDescription + " "
            + mMobileDescription[sub]);
        mMobileActivity[sub].setImageResource(mMobileActivityId[sub]);
        mMobileType[sub].setImageResource(mMobileTypeId[sub]);
        mNoSimSlot[sub].setImageResource(mNoSimIconId[sub]);
    }

    private void updateCdma() {
        if (mMobileCdmaVisible) {
            mMobileCdma3g.setImageResource(mMobileCdma3gId);
            mMobileCdma1x.setImageResource(mMobileCdma1xId);
            mMobileCdmaGroup.setVisibility(View.VISIBLE);
        } else {
            mMobileCdmaGroup.setVisibility(View.GONE);
        }

        if (mMobileCdma1xOnlyVisible) {
            mMobileCdma1xOnly.setImageResource(mMobileCdma1xOnlyId);
            mMobileCdma1xOnly.setVisibility(View.VISIBLE);
        } else {
            mMobileCdma1xOnly.setVisibility(View.GONE);
        }
    }

    private void updateData(int sub) {
        if (mDataVisible[sub]) {
            mDataActivity[sub].setImageResource(mDataActivityId[sub]);
            mDataGroup[sub].setVisibility(View.VISIBLE);
        } else {
            mDataGroup[sub].setVisibility(View.GONE);
        }
    }

    private boolean showBoth3gAnd1x() {
        return mStyle == STATUS_BAR_STYLE_CDMA_1X_COMBINED
            &&((mMobileTypeId[0] == R.drawable.stat_sys_data_connected_3g)
                ||(mMobileTypeId[0] == R.drawable.stat_sys_data_fully_connected_3g));
    }

    private boolean show1xOnly() {
        return mStyle == STATUS_BAR_STYLE_CDMA_1X_COMBINED
            &&((mMobileTypeId[0] == R.drawable.stat_sys_data_connected_1x)
                ||(mMobileTypeId[0] == R.drawable.stat_sys_data_fully_connected_1x));
    }

    private boolean showMobileActivity() {
        return mStyle == STATUS_BAR_STYLE_DEFAULT_DATA
                || (mStyle == STATUS_BAR_STYLE_ANDROID_DEFAULT);
    }

    private boolean isRoaming() {
        return mMobileTypeId[0] == R.drawable.stat_sys_data_fully_connected_roam;
    }

    private int getMobileCdma3gId(int icon){
        int returnVal = 0;
        switch(icon){
            case R.drawable.stat_sys_signal_0_1x:
                returnVal = R.drawable.stat_sys_signal_0_3g;
                break;
            case R.drawable.stat_sys_signal_1_1x:
                returnVal = R.drawable.stat_sys_signal_1_3g;
                break;
            case R.drawable.stat_sys_signal_2_1x:
                returnVal = R.drawable.stat_sys_signal_2_3g;
                break;
            case R.drawable.stat_sys_signal_3_1x:
                returnVal = R.drawable.stat_sys_signal_3_3g;
                break;
            case R.drawable.stat_sys_signal_4_1x:
                returnVal = R.drawable.stat_sys_signal_4_3g;
                break;
            case R.drawable.stat_sys_signal_0_1x_fully:
                returnVal = R.drawable.stat_sys_signal_0_3g_fully;
                break;
            case R.drawable.stat_sys_signal_1_1x_fully:
                returnVal = R.drawable.stat_sys_signal_1_3g_fully;
                break;
            case R.drawable.stat_sys_signal_2_1x_fully:
                returnVal = R.drawable.stat_sys_signal_2_3g_fully;
                break;
            case R.drawable.stat_sys_signal_3_1x_fully:
                returnVal = R.drawable.stat_sys_signal_3_3g_fully;
                break;
            case R.drawable.stat_sys_signal_4_1x_fully:
                returnVal = R.drawable.stat_sys_signal_4_3g_fully;
                break;
            default:
                break;
        }
        return returnVal;
    }
}
Loading