12e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson/*
22e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson * Copyright (C) 2011 The Android Open Source Project
32e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson *
42e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson * Licensed under the Apache License, Version 2.0 (the "License");
52e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson * you may not use this file except in compliance with the License.
62e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson * You may obtain a copy of the License at
72e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson *
82e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson *      http://www.apache.org/licenses/LICENSE-2.0
92e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson *
102e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson * Unless required by applicable law or agreed to in writing, software
112e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson * distributed under the License is distributed on an "AS IS" BASIS,
122e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
132e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson * See the License for the specific language governing permissions and
142e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson * limitations under the License.
152e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson */
162e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson
172e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertsonpackage com.android.systemui.statusbar;
182e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson
192e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertsonimport android.content.Context;
202e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertsonimport android.util.AttributeSet;
2128f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandlerimport android.util.Slog;
222e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertsonimport android.view.View;
232e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertsonimport android.view.ViewGroup;
242f7dfa7afdaada78c46bd6fd7e307656ba3dd66aJohn Spurlockimport android.view.accessibility.AccessibilityEvent;
252e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertsonimport android.widget.ImageView;
262e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertsonimport android.widget.LinearLayout;
272e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson
282e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertsonimport com.android.systemui.statusbar.policy.NetworkController;
292e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson
302e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertsonimport com.android.systemui.R;
312e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson
325ccff81a642844138b144ad2cc339eba188812a0Daniel Sandler// Intimately tied to the design of res/layout/signal_cluster_view.xml
332e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertsonpublic class SignalClusterView
342f7dfa7afdaada78c46bd6fd7e307656ba3dd66aJohn Spurlock        extends LinearLayout
352e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson        implements NetworkController.SignalCluster {
362e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson
3728f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler    static final boolean DEBUG = false;
3828f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler    static final String TAG = "SignalClusterView";
392f7dfa7afdaada78c46bd6fd7e307656ba3dd66aJohn Spurlock
402e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson    NetworkController mNC;
412e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson
4228f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler    private boolean mWifiVisible = false;
4328f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler    private int mWifiStrengthId = 0, mWifiActivityId = 0;
4428f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler    private boolean mMobileVisible = false;
4528f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler    private int mMobileStrengthId = 0, mMobileActivityId = 0, mMobileTypeId = 0;
465ccff81a642844138b144ad2cc339eba188812a0Daniel Sandler    private boolean mIsAirplaneMode = false;
47061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn    private int mAirplaneIconId = 0;
48bcf6ef0b82c1daea43e03b8ad5af319ed324242aDaniel Sandler    private String mWifiDescription, mMobileDescription, mMobileTypeDescription;
4928f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler
502e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson    ViewGroup mWifiGroup, mMobileGroup;
51061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn    ImageView mWifi, mMobile, mWifiActivity, mMobileActivity, mMobileType, mAirplane;
525ccff81a642844138b144ad2cc339eba188812a0Daniel Sandler    View mSpacer;
532e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson
542e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson    public SignalClusterView(Context context) {
552e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson        this(context, null);
562e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson    }
572e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson
582e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson    public SignalClusterView(Context context, AttributeSet attrs) {
592e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson        this(context, attrs, 0);
602e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson    }
612e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson
622e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson    public SignalClusterView(Context context, AttributeSet attrs, int defStyle) {
632e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson        super(context, attrs, defStyle);
642e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson    }
652e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson
662e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson    public void setNetworkController(NetworkController nc) {
6728f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler        if (DEBUG) Slog.d(TAG, "NetworkController=" + nc);
682e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson        mNC = nc;
692e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson    }
702e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson
712e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson    @Override
722e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson    protected void onAttachedToWindow() {
732e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson        super.onAttachedToWindow();
742e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson
752e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson        mWifiGroup      = (ViewGroup) findViewById(R.id.wifi_combo);
762e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson        mWifi           = (ImageView) findViewById(R.id.wifi_signal);
772e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson        mWifiActivity   = (ImageView) findViewById(R.id.wifi_inout);
782e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson        mMobileGroup    = (ViewGroup) findViewById(R.id.mobile_combo);
792e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson        mMobile         = (ImageView) findViewById(R.id.mobile_signal);
802e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson        mMobileActivity = (ImageView) findViewById(R.id.mobile_inout);
812e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson        mMobileType     = (ImageView) findViewById(R.id.mobile_type);
825ccff81a642844138b144ad2cc339eba188812a0Daniel Sandler        mSpacer         =             findViewById(R.id.spacer);
83061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn        mAirplane       = (ImageView) findViewById(R.id.airplane);
8428f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler
8528f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler        apply();
862e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson    }
872e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson
882e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson    @Override
892e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson    protected void onDetachedFromWindow() {
9028f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler        mWifiGroup      = null;
9128f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler        mWifi           = null;
9228f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler        mWifiActivity   = null;
9328f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler        mMobileGroup    = null;
9428f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler        mMobile         = null;
9528f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler        mMobileActivity = null;
9628f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler        mMobileType     = null;
97061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn        mSpacer         = null;
98061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn        mAirplane       = null;
9928f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler
1002e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson        super.onDetachedFromWindow();
1012e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson    }
1022e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson
103061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn    @Override
104bcf6ef0b82c1daea43e03b8ad5af319ed324242aDaniel Sandler    public void setWifiIndicators(boolean visible, int strengthIcon, int activityIcon,
105bcf6ef0b82c1daea43e03b8ad5af319ed324242aDaniel Sandler            String contentDescription) {
10628f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler        mWifiVisible = visible;
10728f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler        mWifiStrengthId = strengthIcon;
10828f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler        mWifiActivityId = activityIcon;
109bcf6ef0b82c1daea43e03b8ad5af319ed324242aDaniel Sandler        mWifiDescription = contentDescription;
11028f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler
11128f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler        apply();
11228f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler    }
11328f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler
114061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn    @Override
11528f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler    public void setMobileDataIndicators(boolean visible, int strengthIcon, int activityIcon,
116bcf6ef0b82c1daea43e03b8ad5af319ed324242aDaniel Sandler            int typeIcon, String contentDescription, String typeContentDescription) {
11728f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler        mMobileVisible = visible;
11828f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler        mMobileStrengthId = strengthIcon;
11928f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler        mMobileActivityId = activityIcon;
12028f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler        mMobileTypeId = typeIcon;
121bcf6ef0b82c1daea43e03b8ad5af319ed324242aDaniel Sandler        mMobileDescription = contentDescription;
122bcf6ef0b82c1daea43e03b8ad5af319ed324242aDaniel Sandler        mMobileTypeDescription = typeContentDescription;
12328f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler
12428f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler        apply();
12528f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler    }
12628f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler
127061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn    @Override
128061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn    public void setIsAirplaneMode(boolean is, int airplaneIconId) {
1295ccff81a642844138b144ad2cc339eba188812a0Daniel Sandler        mIsAirplaneMode = is;
130061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn        mAirplaneIconId = airplaneIconId;
131061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn
132061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn        apply();
1335ccff81a642844138b144ad2cc339eba188812a0Daniel Sandler    }
1345ccff81a642844138b144ad2cc339eba188812a0Daniel Sandler
1352f7dfa7afdaada78c46bd6fd7e307656ba3dd66aJohn Spurlock    @Override
1362f7dfa7afdaada78c46bd6fd7e307656ba3dd66aJohn Spurlock    public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
1372f7dfa7afdaada78c46bd6fd7e307656ba3dd66aJohn Spurlock        // Standard group layout onPopulateAccessibilityEvent() implementations
1382f7dfa7afdaada78c46bd6fd7e307656ba3dd66aJohn Spurlock        // ignore content description, so populate manually
1392f7dfa7afdaada78c46bd6fd7e307656ba3dd66aJohn Spurlock        if (mWifiVisible && mWifiGroup.getContentDescription() != null)
1402f7dfa7afdaada78c46bd6fd7e307656ba3dd66aJohn Spurlock            event.getText().add(mWifiGroup.getContentDescription());
1412f7dfa7afdaada78c46bd6fd7e307656ba3dd66aJohn Spurlock        if (mMobileVisible && mMobileGroup.getContentDescription() != null)
1422f7dfa7afdaada78c46bd6fd7e307656ba3dd66aJohn Spurlock            event.getText().add(mMobileGroup.getContentDescription());
1432f7dfa7afdaada78c46bd6fd7e307656ba3dd66aJohn Spurlock        return super.dispatchPopulateAccessibilityEvent(event);
1442f7dfa7afdaada78c46bd6fd7e307656ba3dd66aJohn Spurlock    }
1452f7dfa7afdaada78c46bd6fd7e307656ba3dd66aJohn Spurlock
1464662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio    @Override
1474662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio    public void onRtlPropertiesChanged(int layoutDirection) {
1484662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio        super.onRtlPropertiesChanged(layoutDirection);
1494662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio
1504662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio        if (mWifi != null) {
1514662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio            mWifi.setImageDrawable(null);
1524662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio        }
1534662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio        if (mWifiActivity != null) {
1544662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio            mWifiActivity.setImageDrawable(null);
1554662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio        }
1564662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio
1574662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio        if (mMobile != null) {
1584662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio            mMobile.setImageDrawable(null);
1594662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio        }
1604662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio        if (mMobileActivity != null) {
1614662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio            mMobileActivity.setImageDrawable(null);
1624662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio        }
1634662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio        if (mMobileType != null) {
1644662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio            mMobileType.setImageDrawable(null);
1654662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio        }
1664662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio
1674662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio        if(mAirplane != null) {
1684662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio            mAirplane.setImageDrawable(null);
1694662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio        }
1704662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio
1714662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio        apply();
1724662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio    }
1734662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio
17428f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler    // Run after each indicator change.
17528f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler    private void apply() {
1762e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson        if (mWifiGroup == null) return;
1772e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson
17828f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler        if (mWifiVisible) {
17928f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler            mWifi.setImageResource(mWifiStrengthId);
18028f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler            mWifiActivity.setImageResource(mWifiActivityId);
181cda096ebf3fac67daf36e775547c2a337374927bFabrice Di Meglio
182bcf6ef0b82c1daea43e03b8ad5af319ed324242aDaniel Sandler            mWifiGroup.setContentDescription(mWifiDescription);
183cda096ebf3fac67daf36e775547c2a337374927bFabrice Di Meglio            mWifiGroup.setVisibility(View.VISIBLE);
1842e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson        } else {
1852e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson            mWifiGroup.setVisibility(View.GONE);
1862e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson        }
1872e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson
18828f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler        if (DEBUG) Slog.d(TAG,
18928f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler                String.format("wifi: %s sig=%d act=%d",
19028f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler                    (mWifiVisible ? "VISIBLE" : "GONE"),
19128f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler                    mWifiStrengthId, mWifiActivityId));
1922e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson
193061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn        if (mMobileVisible && !mIsAirplaneMode) {
19428f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler            mMobile.setImageResource(mMobileStrengthId);
19528f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler            mMobileActivity.setImageResource(mMobileActivityId);
19628f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler            mMobileType.setImageResource(mMobileTypeId);
197cda096ebf3fac67daf36e775547c2a337374927bFabrice Di Meglio
198bcf6ef0b82c1daea43e03b8ad5af319ed324242aDaniel Sandler            mMobileGroup.setContentDescription(mMobileTypeDescription + " " + mMobileDescription);
199cda096ebf3fac67daf36e775547c2a337374927bFabrice Di Meglio            mMobileGroup.setVisibility(View.VISIBLE);
2002e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson        } else {
2012e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson            mMobileGroup.setVisibility(View.GONE);
2022e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson        }
20328f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler
204061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn        if (mIsAirplaneMode) {
205061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn            mAirplane.setImageResource(mAirplaneIconId);
2068afcd149970c79054a3a16377834aa0aec35eee0Fabrice Di Meglio            mAirplane.setVisibility(View.VISIBLE);
207061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn        } else {
208061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn            mAirplane.setVisibility(View.GONE);
209061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn        }
210061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn
2115ccff81a642844138b144ad2cc339eba188812a0Daniel Sandler        if (mMobileVisible && mWifiVisible && mIsAirplaneMode) {
2125ccff81a642844138b144ad2cc339eba188812a0Daniel Sandler            mSpacer.setVisibility(View.INVISIBLE);
2135ccff81a642844138b144ad2cc339eba188812a0Daniel Sandler        } else {
2145ccff81a642844138b144ad2cc339eba188812a0Daniel Sandler            mSpacer.setVisibility(View.GONE);
2155ccff81a642844138b144ad2cc339eba188812a0Daniel Sandler        }
2165ccff81a642844138b144ad2cc339eba188812a0Daniel Sandler
21728f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler        if (DEBUG) Slog.d(TAG,
21828f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler                String.format("mobile: %s sig=%d act=%d typ=%d",
21928f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler                    (mMobileVisible ? "VISIBLE" : "GONE"),
22028f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler                    mMobileStrengthId, mMobileActivityId, mMobileTypeId));
22128f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler
22228f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler        mMobileType.setVisibility(
22328f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler                !mWifiVisible ? View.VISIBLE : View.GONE);
2242e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson    }
2252e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson}
2262e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson
227