SignalClusterView.java revision 3128f12f216ef481b5d03892b35706cfeec26d7c
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; 21cd686b5b6d4166b510df8e32138479a9559bc117John Spurlockimport android.util.Log; 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.R; 29af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlockimport com.android.systemui.statusbar.policy.NetworkControllerImpl; 303128f12f216ef481b5d03892b35706cfeec26d7cJason Monkimport com.android.systemui.statusbar.policy.SecurityController; 312e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson 325ccff81a642844138b144ad2cc339eba188812a0Daniel Sandler// Intimately tied to the design of res/layout/signal_cluster_view.xml 332e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertsonpublic class SignalClusterView 342f7dfa7afdaada78c46bd6fd7e307656ba3dd66aJohn Spurlock extends LinearLayout 353128f12f216ef481b5d03892b35706cfeec26d7cJason Monk implements NetworkControllerImpl.SignalCluster, 363128f12f216ef481b5d03892b35706cfeec26d7cJason Monk SecurityController.SecurityControllerCallback { 372e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson 3828f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler static final String TAG = "SignalClusterView"; 39b3eb89190c4bb4ebbe676328cd37830d50e6ed3eJohn Spurlock static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); 402f7dfa7afdaada78c46bd6fd7e307656ba3dd66aJohn Spurlock 41af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock NetworkControllerImpl mNC; 423128f12f216ef481b5d03892b35706cfeec26d7cJason Monk SecurityController mSC; 432e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson 443128f12f216ef481b5d03892b35706cfeec26d7cJason Monk private boolean mVpnVisible = false; 4528f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler private boolean mWifiVisible = false; 46fcc901c10bffdfb9c6b31e676dec36b47d949979John Spurlock private int mWifiStrengthId = 0; 4728f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler private boolean mMobileVisible = false; 48fcc901c10bffdfb9c6b31e676dec36b47d949979John Spurlock private int mMobileStrengthId = 0, mMobileTypeId = 0; 495ccff81a642844138b144ad2cc339eba188812a0Daniel Sandler private boolean mIsAirplaneMode = false; 50061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn private int mAirplaneIconId = 0; 51bcf6ef0b82c1daea43e03b8ad5af319ed324242aDaniel Sandler private String mWifiDescription, mMobileDescription, mMobileTypeDescription; 5214339c9edc2675d4757d572006625c2641db5653John Spurlock private boolean mRoaming; 5328f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler 542e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson ViewGroup mWifiGroup, mMobileGroup; 553128f12f216ef481b5d03892b35706cfeec26d7cJason Monk ImageView mVpn, mWifi, mMobile, mMobileType, mAirplane; 565172dc2f36f9c417befd0957ce2ae20f9d083a88Jorim Jaggi View mWifiAirplaneSpacer; 572e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson 582e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson public SignalClusterView(Context context) { 592e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson this(context, null); 602e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson } 612e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson 622e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson public SignalClusterView(Context context, AttributeSet attrs) { 632e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson this(context, attrs, 0); 642e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson } 652e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson 662e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson public SignalClusterView(Context context, AttributeSet attrs, int defStyle) { 672e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson super(context, attrs, defStyle); 682e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson } 692e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson 70af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock public void setNetworkController(NetworkControllerImpl nc) { 71cd686b5b6d4166b510df8e32138479a9559bc117John Spurlock if (DEBUG) Log.d(TAG, "NetworkController=" + nc); 722e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson mNC = nc; 732e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson } 742e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson 753128f12f216ef481b5d03892b35706cfeec26d7cJason Monk public void setSecurityController(SecurityController sc) { 763128f12f216ef481b5d03892b35706cfeec26d7cJason Monk if (DEBUG) Log.d(TAG, "SecurityController=" + sc); 773128f12f216ef481b5d03892b35706cfeec26d7cJason Monk mSC = sc; 783128f12f216ef481b5d03892b35706cfeec26d7cJason Monk mSC.addCallback(this); 793128f12f216ef481b5d03892b35706cfeec26d7cJason Monk mVpnVisible = mSC.isVpnEnabled(); 803128f12f216ef481b5d03892b35706cfeec26d7cJason Monk } 813128f12f216ef481b5d03892b35706cfeec26d7cJason Monk 822e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson @Override 832e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson protected void onAttachedToWindow() { 842e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson super.onAttachedToWindow(); 852e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson 863128f12f216ef481b5d03892b35706cfeec26d7cJason Monk mVpn = (ImageView) findViewById(R.id.vpn); 872e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson mWifiGroup = (ViewGroup) findViewById(R.id.wifi_combo); 882e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson mWifi = (ImageView) findViewById(R.id.wifi_signal); 892e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson mMobileGroup = (ViewGroup) findViewById(R.id.mobile_combo); 902e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson mMobile = (ImageView) findViewById(R.id.mobile_signal); 912e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson mMobileType = (ImageView) findViewById(R.id.mobile_type); 92061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn mAirplane = (ImageView) findViewById(R.id.airplane); 935172dc2f36f9c417befd0957ce2ae20f9d083a88Jorim Jaggi mWifiAirplaneSpacer = findViewById(R.id.wifi_airplane_spacer); 9428f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler 9528f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler apply(); 962e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson } 972e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson 982e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson @Override 992e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson protected void onDetachedFromWindow() { 1003128f12f216ef481b5d03892b35706cfeec26d7cJason Monk mVpn = null; 10128f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler mWifiGroup = null; 10228f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler mWifi = null; 10328f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler mMobileGroup = null; 10428f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler mMobile = null; 10528f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler mMobileType = null; 106061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn mAirplane = null; 10728f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler 1082e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson super.onDetachedFromWindow(); 1092e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson } 1102e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson 1113128f12f216ef481b5d03892b35706cfeec26d7cJason Monk // From SecurityController. 1123128f12f216ef481b5d03892b35706cfeec26d7cJason Monk @Override 1133128f12f216ef481b5d03892b35706cfeec26d7cJason Monk public void onStateChanged() { 1143128f12f216ef481b5d03892b35706cfeec26d7cJason Monk post(new Runnable() { 1153128f12f216ef481b5d03892b35706cfeec26d7cJason Monk @Override 1163128f12f216ef481b5d03892b35706cfeec26d7cJason Monk public void run() { 1173128f12f216ef481b5d03892b35706cfeec26d7cJason Monk mVpnVisible = mSC.isVpnEnabled(); 1183128f12f216ef481b5d03892b35706cfeec26d7cJason Monk apply(); 1193128f12f216ef481b5d03892b35706cfeec26d7cJason Monk } 1203128f12f216ef481b5d03892b35706cfeec26d7cJason Monk }); 1213128f12f216ef481b5d03892b35706cfeec26d7cJason Monk } 1223128f12f216ef481b5d03892b35706cfeec26d7cJason Monk 123061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn @Override 124b3eb89190c4bb4ebbe676328cd37830d50e6ed3eJohn Spurlock public void setWifiIndicators(boolean visible, int strengthIcon, String contentDescription) { 12528f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler mWifiVisible = visible; 12628f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler mWifiStrengthId = strengthIcon; 127bcf6ef0b82c1daea43e03b8ad5af319ed324242aDaniel Sandler mWifiDescription = contentDescription; 12828f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler 12928f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler apply(); 13028f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler } 13128f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler 132061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn @Override 133b3eb89190c4bb4ebbe676328cd37830d50e6ed3eJohn Spurlock public void setMobileDataIndicators(boolean visible, int strengthIcon, int typeIcon, 13414339c9edc2675d4757d572006625c2641db5653John Spurlock String contentDescription, String typeContentDescription, boolean roaming) { 13528f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler mMobileVisible = visible; 13628f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler mMobileStrengthId = strengthIcon; 13728f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler mMobileTypeId = typeIcon; 138bcf6ef0b82c1daea43e03b8ad5af319ed324242aDaniel Sandler mMobileDescription = contentDescription; 139bcf6ef0b82c1daea43e03b8ad5af319ed324242aDaniel Sandler mMobileTypeDescription = typeContentDescription; 14014339c9edc2675d4757d572006625c2641db5653John Spurlock mRoaming = roaming; 14128f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler 14228f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler apply(); 14328f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler } 14428f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler 145061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn @Override 146061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn public void setIsAirplaneMode(boolean is, int airplaneIconId) { 1475ccff81a642844138b144ad2cc339eba188812a0Daniel Sandler mIsAirplaneMode = is; 148061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn mAirplaneIconId = airplaneIconId; 149061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn 150061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn apply(); 1515ccff81a642844138b144ad2cc339eba188812a0Daniel Sandler } 1525ccff81a642844138b144ad2cc339eba188812a0Daniel Sandler 1532f7dfa7afdaada78c46bd6fd7e307656ba3dd66aJohn Spurlock @Override 1542f7dfa7afdaada78c46bd6fd7e307656ba3dd66aJohn Spurlock public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) { 1552f7dfa7afdaada78c46bd6fd7e307656ba3dd66aJohn Spurlock // Standard group layout onPopulateAccessibilityEvent() implementations 1562f7dfa7afdaada78c46bd6fd7e307656ba3dd66aJohn Spurlock // ignore content description, so populate manually 15724e028e0ec533cb7304296118a73bdc03870d10dDaniel Sandler if (mWifiVisible && mWifiGroup != null && mWifiGroup.getContentDescription() != null) 1582f7dfa7afdaada78c46bd6fd7e307656ba3dd66aJohn Spurlock event.getText().add(mWifiGroup.getContentDescription()); 15924e028e0ec533cb7304296118a73bdc03870d10dDaniel Sandler if (mMobileVisible && mMobileGroup != null && mMobileGroup.getContentDescription() != null) 1602f7dfa7afdaada78c46bd6fd7e307656ba3dd66aJohn Spurlock event.getText().add(mMobileGroup.getContentDescription()); 1612f7dfa7afdaada78c46bd6fd7e307656ba3dd66aJohn Spurlock return super.dispatchPopulateAccessibilityEvent(event); 1622f7dfa7afdaada78c46bd6fd7e307656ba3dd66aJohn Spurlock } 1632f7dfa7afdaada78c46bd6fd7e307656ba3dd66aJohn Spurlock 1644662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio @Override 1654662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio public void onRtlPropertiesChanged(int layoutDirection) { 1664662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio super.onRtlPropertiesChanged(layoutDirection); 1674662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio 1684662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio if (mWifi != null) { 1694662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio mWifi.setImageDrawable(null); 1704662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio } 1714662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio 1724662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio if (mMobile != null) { 1734662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio mMobile.setImageDrawable(null); 1744662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio } 175fcc901c10bffdfb9c6b31e676dec36b47d949979John Spurlock 1764662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio if (mMobileType != null) { 1774662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio mMobileType.setImageDrawable(null); 1784662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio } 1794662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio 1804662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio if(mAirplane != null) { 1814662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio mAirplane.setImageDrawable(null); 1824662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio } 1834662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio 1844662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio apply(); 1854662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio } 1864662611f3757bd9210f252c095f2bef278fa2043Fabrice Di Meglio 1870d266899da8f612194a8393ec69c4fd870f2f45cJorim Jaggi @Override 1880d266899da8f612194a8393ec69c4fd870f2f45cJorim Jaggi public boolean hasOverlappingRendering() { 1890d266899da8f612194a8393ec69c4fd870f2f45cJorim Jaggi return false; 1900d266899da8f612194a8393ec69c4fd870f2f45cJorim Jaggi } 1910d266899da8f612194a8393ec69c4fd870f2f45cJorim Jaggi 19228f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler // Run after each indicator change. 19328f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler private void apply() { 1942e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson if (mWifiGroup == null) return; 1952e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson 1963128f12f216ef481b5d03892b35706cfeec26d7cJason Monk mVpn.setVisibility(mVpnVisible ? View.VISIBLE : View.GONE); 1973128f12f216ef481b5d03892b35706cfeec26d7cJason Monk if (DEBUG) Log.d(TAG, String.format("vpn: %s", mVpnVisible ? "VISIBLE" : "GONE")); 19828f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler if (mWifiVisible) { 19928f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler mWifi.setImageResource(mWifiStrengthId); 200bcf6ef0b82c1daea43e03b8ad5af319ed324242aDaniel Sandler mWifiGroup.setContentDescription(mWifiDescription); 201cda096ebf3fac67daf36e775547c2a337374927bFabrice Di Meglio mWifiGroup.setVisibility(View.VISIBLE); 2022e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson } else { 2032e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson mWifiGroup.setVisibility(View.GONE); 2042e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson } 2052e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson 206cd686b5b6d4166b510df8e32138479a9559bc117John Spurlock if (DEBUG) Log.d(TAG, 207fcc901c10bffdfb9c6b31e676dec36b47d949979John Spurlock String.format("wifi: %s sig=%d", 20828f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler (mWifiVisible ? "VISIBLE" : "GONE"), 209fcc901c10bffdfb9c6b31e676dec36b47d949979John Spurlock mWifiStrengthId)); 2102e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson 211061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn if (mMobileVisible && !mIsAirplaneMode) { 21228f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler mMobile.setImageResource(mMobileStrengthId); 21328f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler mMobileType.setImageResource(mMobileTypeId); 214bcf6ef0b82c1daea43e03b8ad5af319ed324242aDaniel Sandler mMobileGroup.setContentDescription(mMobileTypeDescription + " " + mMobileDescription); 215cda096ebf3fac67daf36e775547c2a337374927bFabrice Di Meglio mMobileGroup.setVisibility(View.VISIBLE); 2162e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson } else { 2172e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson mMobileGroup.setVisibility(View.GONE); 2182e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson } 21928f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler 220061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn if (mIsAirplaneMode) { 221061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn mAirplane.setImageResource(mAirplaneIconId); 2228afcd149970c79054a3a16377834aa0aec35eee0Fabrice Di Meglio mAirplane.setVisibility(View.VISIBLE); 223061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn } else { 224061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn mAirplane.setVisibility(View.GONE); 225061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn } 226061d43c2386dd8222448bb1bec017bf9a2367a4eAndrew Flynn 2275172dc2f36f9c417befd0957ce2ae20f9d083a88Jorim Jaggi if (mIsAirplaneMode && mWifiVisible) { 2285172dc2f36f9c417befd0957ce2ae20f9d083a88Jorim Jaggi mWifiAirplaneSpacer.setVisibility(View.VISIBLE); 2295ccff81a642844138b144ad2cc339eba188812a0Daniel Sandler } else { 2305172dc2f36f9c417befd0957ce2ae20f9d083a88Jorim Jaggi mWifiAirplaneSpacer.setVisibility(View.GONE); 2315ccff81a642844138b144ad2cc339eba188812a0Daniel Sandler } 2325ccff81a642844138b144ad2cc339eba188812a0Daniel Sandler 233cd686b5b6d4166b510df8e32138479a9559bc117John Spurlock if (DEBUG) Log.d(TAG, 234fcc901c10bffdfb9c6b31e676dec36b47d949979John Spurlock String.format("mobile: %s sig=%d typ=%d", 23528f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler (mMobileVisible ? "VISIBLE" : "GONE"), 236fcc901c10bffdfb9c6b31e676dec36b47d949979John Spurlock mMobileStrengthId, mMobileTypeId)); 23728f89d40ee7bab93cf7b783f92dbb18bdc43e473Daniel Sandler 23814339c9edc2675d4757d572006625c2641db5653John Spurlock mMobileType.setVisibility(!mWifiVisible || mRoaming ? View.VISIBLE : View.GONE); 2392e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson } 2402e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson} 2412e347429dfcd03b0827c7506ba6305ab0d1f4951Christian Robertson 242