summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorJoe Onorato <joeo@android.com>2010-06-01 08:18:17 -0700
committerJoe Onorato <joeo@android.com>2010-06-02 14:48:46 -0700
commitc91460d2c3a6ad51cdc455abcc540bf887bc6785 (patch)
treefb165f0fd0f5afabbbfd1807bf4a32df3475db41 /packages
parent1a86dd10c11413cf0301a14b1837dbf703f2b9de (diff)
downloadframeworks_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')
-rw-r--r--packages/SystemUI/res/layout/status_bar_expanded.xml25
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/CarrierLabel.java117
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/PhoneStatusBarService.java45
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.
*