Merge "Back from the dead: Carrier name, background dimming." into jb-dev
This commit is contained in:
@ -29,6 +29,17 @@
|
|||||||
android:layout_marginLeft="@dimen/notification_panel_margin_left"
|
android:layout_marginLeft="@dimen/notification_panel_margin_left"
|
||||||
>
|
>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/carrier_label"
|
||||||
|
android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Network"
|
||||||
|
android:layout_height="@dimen/carrier_label_height"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_gravity="bottom"
|
||||||
|
android:layout_marginBottom="@dimen/close_handle_height"
|
||||||
|
android:gravity="center"
|
||||||
|
android:visibility="invisible"
|
||||||
|
/>
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
@ -133,7 +133,7 @@
|
|||||||
<dimen name="notification_panel_header_height">48dp</dimen>
|
<dimen name="notification_panel_header_height">48dp</dimen>
|
||||||
|
|
||||||
<!-- Extra space above the panel -->
|
<!-- Extra space above the panel -->
|
||||||
<dimen name="notification_panel_padding_top">4dp</dimen>
|
<dimen name="notification_panel_padding_top">0dp</dimen>
|
||||||
|
|
||||||
<!-- Extra space above the clock in the panel -->
|
<!-- Extra space above the clock in the panel -->
|
||||||
<dimen name="notification_panel_header_padding_top">0dp</dimen>
|
<dimen name="notification_panel_header_padding_top">0dp</dimen>
|
||||||
@ -145,4 +145,7 @@
|
|||||||
<!-- Gravity for the notification panel -->
|
<!-- Gravity for the notification panel -->
|
||||||
<!-- 0x37 = fill_horizontal|top -->
|
<!-- 0x37 = fill_horizontal|top -->
|
||||||
<integer name="notification_panel_layout_gravity">0x37</integer>
|
<integer name="notification_panel_layout_gravity">0x37</integer>
|
||||||
|
|
||||||
|
<!-- Height of the carrier/wifi name label -->
|
||||||
|
<dimen name="carrier_label_height">24dp</dimen>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -63,6 +63,10 @@
|
|||||||
<item name="android:textAllCaps">true</item>
|
<item name="android:textAllCaps">true</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="TextAppearance.StatusBar.Expanded.Network" parent="@style/TextAppearance.StatusBar.Expanded.Date">
|
||||||
|
<item name="android:textColor">#999999</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
<style name="Animation" />
|
<style name="Animation" />
|
||||||
|
|
||||||
<style name="Animation.ShirtPocketPanel">
|
<style name="Animation.ShirtPocketPanel">
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
package com.android.systemui.statusbar.phone;
|
package com.android.systemui.statusbar.phone;
|
||||||
|
|
||||||
import android.animation.Animator;
|
import android.animation.Animator;
|
||||||
|
import android.animation.Animator.AnimatorListener;
|
||||||
import android.animation.AnimatorListenerAdapter;
|
import android.animation.AnimatorListenerAdapter;
|
||||||
import android.animation.AnimatorSet;
|
import android.animation.AnimatorSet;
|
||||||
import android.animation.ObjectAnimator;
|
import android.animation.ObjectAnimator;
|
||||||
@ -86,6 +87,7 @@ import com.android.systemui.statusbar.policy.BatteryController;
|
|||||||
import com.android.systemui.statusbar.policy.DateView;
|
import com.android.systemui.statusbar.policy.DateView;
|
||||||
import com.android.systemui.statusbar.policy.IntruderAlertView;
|
import com.android.systemui.statusbar.policy.IntruderAlertView;
|
||||||
import com.android.systemui.statusbar.policy.LocationController;
|
import com.android.systemui.statusbar.policy.LocationController;
|
||||||
|
import com.android.systemui.statusbar.policy.OnSizeChangedListener;
|
||||||
import com.android.systemui.statusbar.policy.NetworkController;
|
import com.android.systemui.statusbar.policy.NetworkController;
|
||||||
import com.android.systemui.statusbar.policy.NotificationRowLayout;
|
import com.android.systemui.statusbar.policy.NotificationRowLayout;
|
||||||
|
|
||||||
@ -105,7 +107,8 @@ public class PhoneStatusBar extends BaseStatusBar {
|
|||||||
public static final String ACTION_STATUSBAR_START
|
public static final String ACTION_STATUSBAR_START
|
||||||
= "com.android.internal.policy.statusbar.START";
|
= "com.android.internal.policy.statusbar.START";
|
||||||
|
|
||||||
private static final boolean DIM_BEHIND_EXPANDED_PANEL = false;
|
private static final boolean DIM_BEHIND_EXPANDED_PANEL = true;
|
||||||
|
private static final boolean SHOW_CARRIER_LABEL = true;
|
||||||
|
|
||||||
private static final int MSG_OPEN_NOTIFICATION_PANEL = 1000;
|
private static final int MSG_OPEN_NOTIFICATION_PANEL = 1000;
|
||||||
private static final int MSG_CLOSE_NOTIFICATION_PANEL = 1001;
|
private static final int MSG_CLOSE_NOTIFICATION_PANEL = 1001;
|
||||||
@ -170,6 +173,11 @@ public class PhoneStatusBar extends BaseStatusBar {
|
|||||||
View mSettingsButton;
|
View mSettingsButton;
|
||||||
RotationToggle mRotationButton;
|
RotationToggle mRotationButton;
|
||||||
|
|
||||||
|
// carrier/wifi label
|
||||||
|
private TextView mCarrierLabel;
|
||||||
|
private boolean mCarrierLabelVisible = false;
|
||||||
|
private int mCarrierLabelHeight;
|
||||||
|
|
||||||
// drag bar
|
// drag bar
|
||||||
CloseDragHandle mCloseView;
|
CloseDragHandle mCloseView;
|
||||||
private int mCloseViewHeight;
|
private int mCloseViewHeight;
|
||||||
@ -385,6 +393,14 @@ public class PhoneStatusBar extends BaseStatusBar {
|
|||||||
|
|
||||||
mPile = (NotificationRowLayout)mStatusBarWindow.findViewById(R.id.latestItems);
|
mPile = (NotificationRowLayout)mStatusBarWindow.findViewById(R.id.latestItems);
|
||||||
mPile.setLongPressListener(getNotificationLongClicker());
|
mPile.setLongPressListener(getNotificationLongClicker());
|
||||||
|
if (SHOW_CARRIER_LABEL) {
|
||||||
|
mPile.setOnSizeChangedListener(new OnSizeChangedListener() {
|
||||||
|
@Override
|
||||||
|
public void onSizeChanged(View view, int w, int h, int oldw, int oldh) {
|
||||||
|
updateCarrierLabelVisibility();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
mExpandedContents = mPile; // was: expanded.findViewById(R.id.notificationLinearLayout);
|
mExpandedContents = mPile; // was: expanded.findViewById(R.id.notificationLinearLayout);
|
||||||
|
|
||||||
mClearButton = mStatusBarWindow.findViewById(R.id.clear_all_button);
|
mClearButton = mStatusBarWindow.findViewById(R.id.clear_all_button);
|
||||||
@ -397,6 +413,9 @@ public class PhoneStatusBar extends BaseStatusBar {
|
|||||||
mSettingsButton.setOnClickListener(mSettingsButtonListener);
|
mSettingsButton.setOnClickListener(mSettingsButtonListener);
|
||||||
mRotationButton = (RotationToggle) mStatusBarWindow.findViewById(R.id.rotation_lock_button);
|
mRotationButton = (RotationToggle) mStatusBarWindow.findViewById(R.id.rotation_lock_button);
|
||||||
|
|
||||||
|
mCarrierLabel = (TextView)mStatusBarWindow.findViewById(R.id.carrier_label);
|
||||||
|
mCarrierLabel.setVisibility(mCarrierLabelVisible ? View.VISIBLE : View.INVISIBLE);
|
||||||
|
|
||||||
mScrollView = (ScrollView)mStatusBarWindow.findViewById(R.id.scroll);
|
mScrollView = (ScrollView)mStatusBarWindow.findViewById(R.id.scroll);
|
||||||
mScrollView.setVerticalScrollBarEnabled(false); // less drawing during pulldowns
|
mScrollView.setVerticalScrollBarEnabled(false); // less drawing during pulldowns
|
||||||
|
|
||||||
@ -421,8 +440,17 @@ public class PhoneStatusBar extends BaseStatusBar {
|
|||||||
mNetworkController = new NetworkController(mContext);
|
mNetworkController = new NetworkController(mContext);
|
||||||
final SignalClusterView signalCluster =
|
final SignalClusterView signalCluster =
|
||||||
(SignalClusterView)mStatusBarView.findViewById(R.id.signal_cluster);
|
(SignalClusterView)mStatusBarView.findViewById(R.id.signal_cluster);
|
||||||
|
|
||||||
mNetworkController.addSignalCluster(signalCluster);
|
mNetworkController.addSignalCluster(signalCluster);
|
||||||
signalCluster.setNetworkController(mNetworkController);
|
signalCluster.setNetworkController(mNetworkController);
|
||||||
|
|
||||||
|
// for wifi-only devices, we show SSID; otherwise, we show PLMN
|
||||||
|
if (mNetworkController.hasMobileDataFeature()) {
|
||||||
|
mNetworkController.addMobileLabelView(mCarrierLabel);
|
||||||
|
} else {
|
||||||
|
mNetworkController.addWifiLabelView(mCarrierLabel);
|
||||||
|
}
|
||||||
|
|
||||||
// final ImageView wimaxRSSI =
|
// final ImageView wimaxRSSI =
|
||||||
// (ImageView)sb.findViewById(R.id.wimax_signal);
|
// (ImageView)sb.findViewById(R.id.wimax_signal);
|
||||||
// if (wimaxRSSI != null) {
|
// if (wimaxRSSI != null) {
|
||||||
@ -861,6 +889,45 @@ public class PhoneStatusBar extends BaseStatusBar {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void updateCarrierLabelVisibility() {
|
||||||
|
if (!SHOW_CARRIER_LABEL) return;
|
||||||
|
// The idea here is to only show the carrier label when there is enough room to see it,
|
||||||
|
// i.e. when there aren't enough notifications to fill the panel.
|
||||||
|
if (DEBUG) {
|
||||||
|
Slog.d(TAG, String.format("pileh=%d scrollh=%d carrierh=%d",
|
||||||
|
mPile.getHeight(), mScrollView.getHeight(), mCarrierLabelHeight));
|
||||||
|
}
|
||||||
|
|
||||||
|
final boolean makeVisible =
|
||||||
|
mPile.getHeight() < (mScrollView.getHeight() - mCarrierLabelHeight);
|
||||||
|
|
||||||
|
if (mCarrierLabelVisible != makeVisible) {
|
||||||
|
mCarrierLabelVisible = makeVisible;
|
||||||
|
if (DEBUG) {
|
||||||
|
Slog.d(TAG, "making carrier label " + (makeVisible?"visible":"invisible"));
|
||||||
|
}
|
||||||
|
mCarrierLabel.animate().cancel();
|
||||||
|
if (makeVisible) {
|
||||||
|
mCarrierLabel.setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
|
mCarrierLabel.animate()
|
||||||
|
.alpha(makeVisible ? 1f : 0f)
|
||||||
|
//.setStartDelay(makeVisible ? 500 : 0)
|
||||||
|
//.setDuration(makeVisible ? 750 : 100)
|
||||||
|
.setDuration(150)
|
||||||
|
.setListener(makeVisible ? null : new AnimatorListenerAdapter() {
|
||||||
|
@Override
|
||||||
|
public void onAnimationEnd(Animator animation) {
|
||||||
|
if (!mCarrierLabelVisible) { // race
|
||||||
|
mCarrierLabel.setVisibility(View.INVISIBLE);
|
||||||
|
mCarrierLabel.setAlpha(0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.start();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void setAreThereNotifications() {
|
protected void setAreThereNotifications() {
|
||||||
final boolean any = mNotificationData.size() > 0;
|
final boolean any = mNotificationData.size() > 0;
|
||||||
@ -918,6 +985,8 @@ public class PhoneStatusBar extends BaseStatusBar {
|
|||||||
})
|
})
|
||||||
.start();
|
.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateCarrierLabelVisibility();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showClock(boolean show) {
|
public void showClock(boolean show) {
|
||||||
@ -1092,6 +1161,8 @@ public class PhoneStatusBar extends BaseStatusBar {
|
|||||||
mExpandedVisible = true;
|
mExpandedVisible = true;
|
||||||
makeSlippery(mNavigationBarView, true);
|
makeSlippery(mNavigationBarView, true);
|
||||||
|
|
||||||
|
updateCarrierLabelVisibility();
|
||||||
|
|
||||||
updateExpandedViewPos(EXPANDED_LEAVE_ALONE);
|
updateExpandedViewPos(EXPANDED_LEAVE_ALONE);
|
||||||
|
|
||||||
// Expand the window to encompass the full screen in anticipation of the drag.
|
// Expand the window to encompass the full screen in anticipation of the drag.
|
||||||
@ -1947,6 +2018,8 @@ public class PhoneStatusBar extends BaseStatusBar {
|
|||||||
panelh = 0;
|
panelh = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (panelh == mTrackingPosition) return;
|
||||||
|
|
||||||
mTrackingPosition = panelh;
|
mTrackingPosition = panelh;
|
||||||
|
|
||||||
FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) mNotificationPanel.getLayoutParams();
|
FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) mNotificationPanel.getLayoutParams();
|
||||||
@ -1958,13 +2031,17 @@ public class PhoneStatusBar extends BaseStatusBar {
|
|||||||
}
|
}
|
||||||
mNotificationPanel.setLayoutParams(lp);
|
mNotificationPanel.setLayoutParams(lp);
|
||||||
|
|
||||||
if (DIM_BEHIND_EXPANDED_PANEL && ActivityManager.isHighEndGfx(mDisplay)) {
|
|
||||||
// woo, special effects
|
|
||||||
final int barh = getCloseViewHeight() + getStatusBarHeight();
|
final int barh = getCloseViewHeight() + getStatusBarHeight();
|
||||||
final float frac = saturate((float)(panelh - barh) / (disph - barh));
|
final float frac = saturate((float)(panelh - barh) / (disph - barh));
|
||||||
final int color = ((int)(0xB0 * Math.sin(frac * 1.57f))) << 24;
|
|
||||||
|
if (DIM_BEHIND_EXPANDED_PANEL && ActivityManager.isHighEndGfx(mDisplay)) {
|
||||||
|
// woo, special effects
|
||||||
|
final float k = (float)(1f-0.5f*(1f-Math.cos(3.14159f * Math.pow(1f-frac, 2.2f))));
|
||||||
|
final int color = ((int)(0xB0 * k)) << 24;
|
||||||
mStatusBarWindow.setBackgroundColor(color);
|
mStatusBarWindow.setBackgroundColor(color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateCarrierLabelVisibility();
|
||||||
}
|
}
|
||||||
|
|
||||||
void updateDisplaySize() {
|
void updateDisplaySize() {
|
||||||
@ -2199,11 +2276,15 @@ public class PhoneStatusBar extends BaseStatusBar {
|
|||||||
if (mNotificationPanelGravity <= 0) {
|
if (mNotificationPanelGravity <= 0) {
|
||||||
mNotificationPanelGravity = Gravity.CENTER_VERTICAL | Gravity.TOP;
|
mNotificationPanelGravity = Gravity.CENTER_VERTICAL | Gravity.TOP;
|
||||||
}
|
}
|
||||||
mNotificationPanelMinHeight =
|
final int notificationPanelDecorationHeight =
|
||||||
res.getDimensionPixelSize(R.dimen.notification_panel_padding_top)
|
res.getDimensionPixelSize(R.dimen.notification_panel_padding_top)
|
||||||
+ res.getDimensionPixelSize(R.dimen.notification_panel_header_height)
|
+ res.getDimensionPixelSize(R.dimen.notification_panel_header_height)
|
||||||
+ res.getDimensionPixelSize(R.dimen.close_handle_underlap)
|
|
||||||
+ getNinePatchPadding(res.getDrawable(R.drawable.notification_panel_bg)).bottom;
|
+ getNinePatchPadding(res.getDrawable(R.drawable.notification_panel_bg)).bottom;
|
||||||
|
mNotificationPanelMinHeight =
|
||||||
|
notificationPanelDecorationHeight
|
||||||
|
+ res.getDimensionPixelSize(R.dimen.close_handle_underlap);
|
||||||
|
|
||||||
|
mCarrierLabelHeight = res.getDimensionPixelSize(R.dimen.carrier_label_height);
|
||||||
|
|
||||||
if (false) Slog.v(TAG, "updateResources");
|
if (false) Slog.v(TAG, "updateResources");
|
||||||
}
|
}
|
||||||
|
@ -237,6 +237,10 @@ public class NetworkController extends BroadcastReceiver {
|
|||||||
mBatteryStats = BatteryStatsService.getService();
|
mBatteryStats = BatteryStatsService.getService();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean hasMobileDataFeature() {
|
||||||
|
return mHasMobileDataFeature;
|
||||||
|
}
|
||||||
|
|
||||||
public void addPhoneSignalIconView(ImageView v) {
|
public void addPhoneSignalIconView(ImageView v) {
|
||||||
mPhoneSignalIconViews.add(v);
|
mPhoneSignalIconViews.add(v);
|
||||||
}
|
}
|
||||||
@ -1049,6 +1053,9 @@ public class NetworkController extends BroadcastReceiver {
|
|||||||
+ Integer.toHexString(combinedSignalIconId)
|
+ Integer.toHexString(combinedSignalIconId)
|
||||||
+ "/" + getResourceName(combinedSignalIconId)
|
+ "/" + getResourceName(combinedSignalIconId)
|
||||||
+ " combinedActivityIconId=0x" + Integer.toHexString(combinedActivityIconId)
|
+ " combinedActivityIconId=0x" + Integer.toHexString(combinedActivityIconId)
|
||||||
|
+ " mobileLabel=" + mobileLabel
|
||||||
|
+ " wifiLabel=" + wifiLabel
|
||||||
|
+ " combinedLabel=" + combinedLabel
|
||||||
+ " mAirplaneMode=" + mAirplaneMode
|
+ " mAirplaneMode=" + mAirplaneMode
|
||||||
+ " mDataActivity=" + mDataActivity
|
+ " mDataActivity=" + mDataActivity
|
||||||
+ " mPhoneSignalIconId=0x" + Integer.toHexString(mPhoneSignalIconId)
|
+ " mPhoneSignalIconId=0x" + Integer.toHexString(mPhoneSignalIconId)
|
||||||
@ -1194,11 +1201,11 @@ public class NetworkController extends BroadcastReceiver {
|
|||||||
N = mWifiLabelViews.size();
|
N = mWifiLabelViews.size();
|
||||||
for (int i=0; i<N; i++) {
|
for (int i=0; i<N; i++) {
|
||||||
TextView v = mWifiLabelViews.get(i);
|
TextView v = mWifiLabelViews.get(i);
|
||||||
|
v.setText(wifiLabel);
|
||||||
if ("".equals(wifiLabel)) {
|
if ("".equals(wifiLabel)) {
|
||||||
v.setVisibility(View.GONE);
|
v.setVisibility(View.GONE);
|
||||||
} else {
|
} else {
|
||||||
v.setVisibility(View.VISIBLE);
|
v.setVisibility(View.VISIBLE);
|
||||||
v.setText(wifiLabel);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1206,11 +1213,11 @@ public class NetworkController extends BroadcastReceiver {
|
|||||||
N = mMobileLabelViews.size();
|
N = mMobileLabelViews.size();
|
||||||
for (int i=0; i<N; i++) {
|
for (int i=0; i<N; i++) {
|
||||||
TextView v = mMobileLabelViews.get(i);
|
TextView v = mMobileLabelViews.get(i);
|
||||||
|
v.setText(mobileLabel);
|
||||||
if ("".equals(mobileLabel)) {
|
if ("".equals(mobileLabel)) {
|
||||||
v.setVisibility(View.GONE);
|
v.setVisibility(View.GONE);
|
||||||
} else {
|
} else {
|
||||||
v.setVisibility(View.VISIBLE);
|
v.setVisibility(View.VISIBLE);
|
||||||
v.setText(mobileLabel);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,6 +62,8 @@ public class NotificationRowLayout
|
|||||||
|
|
||||||
private SwipeHelper mSwipeHelper;
|
private SwipeHelper mSwipeHelper;
|
||||||
|
|
||||||
|
private OnSizeChangedListener mOnSizeChangedListener;
|
||||||
|
|
||||||
// Flag set during notification removal animation to avoid causing too much work until
|
// Flag set during notification removal animation to avoid causing too much work until
|
||||||
// animation is done
|
// animation is done
|
||||||
boolean mRemoveViews = true;
|
boolean mRemoveViews = true;
|
||||||
@ -101,6 +103,10 @@ public class NotificationRowLayout
|
|||||||
mSwipeHelper.setLongPressListener(listener);
|
mSwipeHelper.setLongPressListener(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setOnSizeChangedListener(OnSizeChangedListener l) {
|
||||||
|
mOnSizeChangedListener = l;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onWindowFocusChanged(boolean hasWindowFocus) {
|
public void onWindowFocusChanged(boolean hasWindowFocus) {
|
||||||
super.onWindowFocusChanged(hasWindowFocus);
|
super.onWindowFocusChanged(hasWindowFocus);
|
||||||
@ -247,4 +253,11 @@ public class NotificationRowLayout
|
|||||||
c.restore();
|
c.restore();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
|
||||||
|
if (mOnSizeChangedListener != null) {
|
||||||
|
mOnSizeChangedListener.onSizeChanged(this, w, h, oldw, oldh);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2012 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.policy;
|
||||||
|
|
||||||
|
import android.view.View;
|
||||||
|
|
||||||
|
public interface OnSizeChangedListener {
|
||||||
|
void onSizeChanged(View view, int w, int h, int oldw, int oldh);
|
||||||
|
}
|
Reference in New Issue
Block a user