diff options
| author | Joe Onorato <joeo@android.com> | 2010-06-01 08:18:17 -0700 |
|---|---|---|
| committer | Joe Onorato <joeo@android.com> | 2010-06-02 14:48:46 -0700 |
| commit | c91460d2c3a6ad51cdc455abcc540bf887bc6785 (patch) | |
| tree | fb165f0fd0f5afabbbfd1807bf4a32df3475db41 /packages/SystemUI | |
| parent | 1a86dd10c11413cf0301a14b1837dbf703f2b9de (diff) | |
| download | frameworks_base-c91460d2c3a6ad51cdc455abcc540bf887bc6785.zip frameworks_base-c91460d2c3a6ad51cdc455abcc540bf887bc6785.tar.gz frameworks_base-c91460d2c3a6ad51cdc455abcc540bf887bc6785.tar.bz2 | |
Pull the carrier name display in the windowshade out into its own view.
Change-Id: I76ea5e72288245b69273c76a470b54eaec890361
Diffstat (limited to 'packages/SystemUI')
3 files changed, 122 insertions, 65 deletions
diff --git a/packages/SystemUI/res/layout/status_bar_expanded.xml b/packages/SystemUI/res/layout/status_bar_expanded.xml index e266829..b5b1b50 100644 --- a/packages/SystemUI/res/layout/status_bar_expanded.xml +++ b/packages/SystemUI/res/layout/status_bar_expanded.xml @@ -33,7 +33,7 @@ android:paddingRight="3dp" android:background="@drawable/shade_header_background" > - <LinearLayout + <com.android.systemui.statusbar.CarrierLabel android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" @@ -41,25 +41,10 @@ android:layout_marginLeft="5dp" android:layout_gravity="center_vertical" android:paddingBottom="1dp" - android:orientation="vertical" - > - <TextView android:id="@+id/plmnLabel" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="center_vertical" - android:textAppearance="?android:attr/textAppearanceLarge" - android:textColor="?android:attr/textColorSecondary" - android:paddingLeft="4dp" - /> - <TextView android:id="@+id/spnLabel" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="center_vertical" - android:textAppearance="?android:attr/textAppearanceLarge" - android:textColor="?android:attr/textColorSecondary" - android:paddingLeft="4dp" - /> - </LinearLayout> + android:paddingLeft="4dp" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="?android:attr/textColorSecondary" + /> <TextView android:id="@+id/clear_all_button" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/CarrierLabel.java b/packages/SystemUI/src/com/android/systemui/statusbar/CarrierLabel.java new file mode 100644 index 0000000..d89d093 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/statusbar/CarrierLabel.java @@ -0,0 +1,117 @@ +/* + * Copyright (C) 2006 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.statusbar; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.provider.Telephony; +import android.util.AttributeSet; +import android.util.Slog; +import android.view.View; +import android.widget.TextView; + +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.TimeZone; + +import com.android.internal.R; + +/** + * This widget display an analogic clock with two hands for hours and + * minutes. + */ +public class CarrierLabel extends TextView { + private boolean mAttached; + + public CarrierLabel(Context context) { + this(context, null); + } + + public CarrierLabel(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + public CarrierLabel(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + updateNetworkName(false, null, false, null); + } + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + + if (!mAttached) { + mAttached = true; + IntentFilter filter = new IntentFilter(); + filter.addAction(Telephony.Intents.SPN_STRINGS_UPDATED_ACTION); + getContext().registerReceiver(mIntentReceiver, filter, null, getHandler()); + } + } + + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + if (mAttached) { + getContext().unregisterReceiver(mIntentReceiver); + mAttached = false; + } + } + + private final BroadcastReceiver mIntentReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + if (Telephony.Intents.SPN_STRINGS_UPDATED_ACTION.equals(action)) { + updateNetworkName(intent.getBooleanExtra(Telephony.Intents.EXTRA_SHOW_SPN, false), + intent.getStringExtra(Telephony.Intents.EXTRA_SPN), + intent.getBooleanExtra(Telephony.Intents.EXTRA_SHOW_PLMN, false), + intent.getStringExtra(Telephony.Intents.EXTRA_PLMN)); + } + } + }; + + void updateNetworkName(boolean showSpn, String spn, boolean showPlmn, String plmn) { + if (false) { + Slog.d("CarrierLabel", "updateNetworkName showSpn=" + showSpn + " spn=" + spn + + " showPlmn=" + showPlmn + " plmn=" + plmn); + } + StringBuilder str = new StringBuilder(); + boolean something = false; + if (showPlmn && plmn != null) { + str.append(plmn); + something = true; + } + if (showSpn && spn != null) { + if (something) { + str.append(' '); + } + str.append(spn); + something = true; + } + if (something) { + setText(str.toString()); + } else { + setText(com.android.internal.R.string.lockscreen_carrier_default); + } + } + + +} + + diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/PhoneStatusBarService.java b/packages/SystemUI/src/com/android/systemui/statusbar/PhoneStatusBarService.java index 2657ea1..e9ae69a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/PhoneStatusBarService.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/PhoneStatusBarService.java @@ -43,7 +43,6 @@ import android.os.Binder; import android.os.Handler; import android.os.Message; import android.os.SystemClock; -import android.provider.Telephony; import android.util.Slog; import android.view.Display; import android.view.Gravity; @@ -138,8 +137,6 @@ public class PhoneStatusBarService extends StatusBarService { View mExpandedContents; // top bar TextView mNoNotificationsTitle; - TextView mSpnLabel; - TextView mPlmnLabel; TextView mClearButton; // drag bar CloseDragHandle mCloseView; @@ -246,8 +243,6 @@ public class PhoneStatusBarService extends StatusBarService { mNoNotificationsTitle = (TextView)expanded.findViewById(R.id.noNotificationsTitle); mClearButton = (TextView)expanded.findViewById(R.id.clear_all_button); mClearButton.setOnClickListener(mClearButtonListener); - mSpnLabel = (TextView)expanded.findViewById(R.id.spnLabel); - mPlmnLabel = (TextView)expanded.findViewById(R.id.plmnLabel); mScrollView = (ScrollView)expanded.findViewById(R.id.scroll); mNotificationLinearLayout = expanded.findViewById(R.id.notificationLinearLayout); @@ -276,18 +271,11 @@ public class PhoneStatusBarService extends StatusBarService { setAreThereNotifications(); mDateView.setVisibility(View.INVISIBLE); - // before we register for broadcasts - mPlmnLabel.setText(com.android.internal.R.string.lockscreen_carrier_default); - mPlmnLabel.setVisibility(View.VISIBLE); - mSpnLabel.setText(""); - mSpnLabel.setVisibility(View.GONE); - // receive broadcasts IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_CONFIGURATION_CHANGED); filter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); filter.addAction(Intent.ACTION_SCREEN_OFF); - filter.addAction(Telephony.Intents.SPN_STRINGS_UPDATED_ACTION); context.registerReceiver(mBroadcastReceiver, filter); } @@ -1372,45 +1360,12 @@ public class PhoneStatusBarService extends StatusBarService { || Intent.ACTION_SCREEN_OFF.equals(action)) { //collapse(); } - else if (Telephony.Intents.SPN_STRINGS_UPDATED_ACTION.equals(action)) { - updateNetworkName(intent.getBooleanExtra(Telephony.Intents.EXTRA_SHOW_SPN, false), - intent.getStringExtra(Telephony.Intents.EXTRA_SPN), - intent.getBooleanExtra(Telephony.Intents.EXTRA_SHOW_PLMN, false), - intent.getStringExtra(Telephony.Intents.EXTRA_PLMN)); - } else if (Intent.ACTION_CONFIGURATION_CHANGED.equals(action)) { updateResources(); } } }; - void updateNetworkName(boolean showSpn, String spn, boolean showPlmn, String plmn) { - if (false) { - Slog.d(TAG, "updateNetworkName showSpn=" + showSpn + " spn=" + spn - + " showPlmn=" + showPlmn + " plmn=" + plmn); - } - boolean something = false; - if (showPlmn) { - mPlmnLabel.setVisibility(View.VISIBLE); - if (plmn != null) { - mPlmnLabel.setText(plmn); - } else { - mPlmnLabel.setText(com.android.internal.R.string.lockscreen_carrier_default); - } - } else { - mPlmnLabel.setText(""); - mPlmnLabel.setVisibility(View.GONE); - } - if (showSpn && spn != null) { - mSpnLabel.setText(spn); - mSpnLabel.setVisibility(View.VISIBLE); - something = true; - } else { - mSpnLabel.setText(""); - mSpnLabel.setVisibility(View.GONE); - } - } - /** * Reload some of our resources when the configuration changes. * |
