am c02c525d: am 71d150d2: Merge "Fix padding between R and wifi icon" into lmp-dev

* commit 'c02c525d90f298dcd8cadc29f88f99ee8afa97d7':
  Fix padding between R and wifi icon
This commit is contained in:
Jorim Jaggi
2014-09-09 16:07:53 +00:00
committed by Android Git Automerger
11 changed files with 112 additions and 36 deletions

View File

@@ -43,6 +43,12 @@
android:layout_width="wrap_content"
/>
</FrameLayout>
<View
android:id="@+id/wifi_signal_spacer"
android:layout_width="4dp"
android:layout_height="4dp"
android:visibility="gone"
/>
<FrameLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"

View File

@@ -476,4 +476,12 @@
<fraction name="battery_subpixel_smoothing_right">0%</fraction>
<dimen name="battery_margin_bottom">0dp</dimen>
<!-- Extra padding between the mobile data type icon and the strength indicator when the data
type icon is wide. -->
<dimen name="wide_type_icon_start_padding">2dp</dimen>
<!-- Extra padding between the mobile data type icon and the strength indicator when the data
type icon is wide for the tile in quick settings. -->
<dimen name="wide_type_icon_start_padding_qs">3dp</dimen>
</resources>

View File

@@ -373,6 +373,7 @@ public abstract class QSTile<TState extends State> implements Listenable {
public boolean activityOut;
public int overlayIconId;
public boolean filter;
public boolean isOverlayIconWide;
@Override
public boolean copyTo(State other) {
@@ -380,13 +381,15 @@ public abstract class QSTile<TState extends State> implements Listenable {
final boolean changed = o.enabled != enabled
|| o.connected != connected || o.activityIn != activityIn
|| o.activityOut != activityOut
|| o.overlayIconId != overlayIconId;
|| o.overlayIconId != overlayIconId
|| o.isOverlayIconWide != isOverlayIconWide;
o.enabled = enabled;
o.connected = connected;
o.activityIn = activityIn;
o.activityOut = activityOut;
o.overlayIconId = overlayIconId;
o.filter = filter;
o.isOverlayIconWide = isOverlayIconWide;
return super.copyTo(other) || changed;
}
@@ -399,6 +402,7 @@ public abstract class QSTile<TState extends State> implements Listenable {
rt.insert(rt.length() - 1, ",activityOut=" + activityOut);
rt.insert(rt.length() - 1, ",overlayIconId=" + overlayIconId);
rt.insert(rt.length() - 1, ",filter=" + filter);
rt.insert(rt.length() - 1, ",wideOverlayIcon=" + isOverlayIconWide);
return rt;
}
}

View File

@@ -230,7 +230,7 @@ public class QSTileView extends ViewGroup {
final int w = MeasureSpec.getSize(widthMeasureSpec);
final int h = MeasureSpec.getSize(heightMeasureSpec);
final int iconSpec = exactly(mIconSizePx);
mIcon.measure(iconSpec, iconSpec);
mIcon.measure(MeasureSpec.makeMeasureSpec(w, MeasureSpec.AT_MOST), iconSpec);
labelView().measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(h, MeasureSpec.AT_MOST));
if (mDual) {
mDivider.measure(widthMeasureSpec, exactly(mDivider.getLayoutParams().height));

View File

@@ -37,11 +37,16 @@ public final class SignalTileView extends QSTileView {
private ImageView mIn;
private ImageView mOut;
private int mWideOverlayIconStartPadding;
public SignalTileView(Context context) {
super(context);
mIn = addTrafficView(R.drawable.ic_qs_signal_in);
mOut = addTrafficView(R.drawable.ic_qs_signal_out);
mWideOverlayIconStartPadding = context.getResources().getDimensionPixelSize(
R.dimen.wide_type_icon_start_padding_qs);
}
private ImageView addTrafficView(int icon) {
@@ -106,6 +111,11 @@ public final class SignalTileView extends QSTileView {
} else {
mOverlay.setVisibility(GONE);
}
if (s.overlayIconId > 0 && s.isOverlayIconWide) {
mSignal.setPaddingRelative(mWideOverlayIconStartPadding, 0, 0, 0);
} else {
mSignal.setPaddingRelative(0, 0, 0, 0);
}
Drawable drawable = mSignal.getDrawable();
if (state.autoMirrorDrawable && drawable != null) {
drawable.setAutoMirrored(true);

View File

@@ -23,10 +23,8 @@ import android.content.res.Resources;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.android.systemui.R;
import com.android.systemui.qs.DataUsageGraph;
import com.android.systemui.qs.QSTile;
import com.android.systemui.qs.QSTileView;
import com.android.systemui.qs.SignalTileView;
@@ -34,8 +32,6 @@ import com.android.systemui.statusbar.policy.NetworkController;
import com.android.systemui.statusbar.policy.NetworkController.DataUsageInfo;
import com.android.systemui.statusbar.policy.NetworkController.NetworkSignalChangedCallback;
import java.text.DecimalFormat;
/** Quick settings tile: Cellular **/
public class CellularTile extends QSTile<QSTile.SignalState> {
private static final Intent CELLULAR_SETTINGS = new Intent().setComponent(new ComponentName(
@@ -95,6 +91,7 @@ public class CellularTile extends QSTile<QSTile.SignalState> {
: !cb.enabled || cb.airplaneModeEnabled ? R.drawable.ic_qs_signal_disabled
: cb.mobileSignalIconId > 0 ? cb.mobileSignalIconId
: R.drawable.ic_qs_signal_no_signal;
state.isOverlayIconWide = cb.isDataTypeIconWide;
state.autoMirrorDrawable = !cb.noSim;
state.overlayIconId = cb.enabled && (cb.dataTypeIconId > 0) && !cb.wifiConnected
? cb.dataTypeIconId
@@ -142,6 +139,7 @@ public class CellularTile extends QSTile<QSTile.SignalState> {
boolean activityOut;
String enabledDesc;
boolean noSim;
boolean isDataTypeIconWide;
}
private final NetworkSignalChangedCallback mCallback = new NetworkSignalChangedCallback() {
@@ -162,7 +160,8 @@ public class CellularTile extends QSTile<QSTile.SignalState> {
int mobileSignalIconId,
String mobileSignalContentDescriptionId, int dataTypeIconId,
boolean activityIn, boolean activityOut,
String dataTypeContentDescriptionId, String description, boolean noSim) {
String dataTypeContentDescriptionId, String description, boolean noSim,
boolean isDataTypeIconWide) {
final CallbackInfo info = new CallbackInfo(); // TODO pool?
info.enabled = enabled;
info.wifiEnabled = mWifiEnabled;
@@ -176,6 +175,7 @@ public class CellularTile extends QSTile<QSTile.SignalState> {
info.activityOut = activityOut;
info.enabledDesc = description;
info.noSim = noSim;
info.isDataTypeIconWide = isDataTypeIconWide;
refreshState(info);
}

View File

@@ -206,7 +206,8 @@ public class WifiTile extends QSTile<QSTile.SignalState> {
int mobileSignalIconId,
String mobileSignalContentDescriptionId, int dataTypeIconId,
boolean activityIn, boolean activityOut,
String dataTypeContentDescriptionId, String description, boolean noSim) {
String dataTypeContentDescriptionId, String description, boolean noSim,
boolean isDataTypeIconWide) {
// noop
}

View File

@@ -50,10 +50,14 @@ public class SignalClusterView
private int mAirplaneIconId = 0;
private String mWifiDescription, mMobileDescription, mMobileTypeDescription;
private boolean mRoaming;
private boolean mIsMobileTypeIconWide;
ViewGroup mWifiGroup, mMobileGroup;
ImageView mVpn, mWifi, mMobile, mMobileType, mAirplane;
View mWifiAirplaneSpacer;
View mWifiSignalSpacer;
private int mWideTypeIconStartPadding;
public SignalClusterView(Context context) {
this(context, null);
@@ -79,6 +83,13 @@ public class SignalClusterView
mVpnVisible = mSC.isVpnEnabled();
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
mWideTypeIconStartPadding = getContext().getResources().getDimensionPixelSize(
R.dimen.wide_type_icon_start_padding);
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
@@ -91,6 +102,7 @@ public class SignalClusterView
mMobileType = (ImageView) findViewById(R.id.mobile_type);
mAirplane = (ImageView) findViewById(R.id.airplane);
mWifiAirplaneSpacer = findViewById(R.id.wifi_airplane_spacer);
mWifiSignalSpacer = findViewById(R.id.wifi_signal_spacer);
apply();
}
@@ -131,13 +143,15 @@ public class SignalClusterView
@Override
public void setMobileDataIndicators(boolean visible, int strengthIcon, int typeIcon,
String contentDescription, String typeContentDescription, boolean roaming) {
String contentDescription, String typeContentDescription, boolean roaming,
boolean isTypeIconWide) {
mMobileVisible = visible;
mMobileStrengthId = strengthIcon;
mMobileTypeId = typeIcon;
mMobileDescription = contentDescription;
mMobileTypeDescription = typeContentDescription;
mRoaming = roaming;
mIsMobileTypeIconWide = isTypeIconWide;
apply();
}
@@ -230,6 +244,14 @@ public class SignalClusterView
mWifiAirplaneSpacer.setVisibility(View.GONE);
}
if (mRoaming && mMobileVisible && mWifiVisible) {
mWifiSignalSpacer.setVisibility(View.VISIBLE);
} else {
mWifiSignalSpacer.setVisibility(View.GONE);
}
mMobile.setPaddingRelative(mIsMobileTypeIconWide ? mWideTypeIconStartPadding : 0, 0, 0, 0);
if (DEBUG) Log.d(TAG,
String.format("mobile: %s sig=%d typ=%d",
(mMobileVisible ? "VISIBLE" : "GONE"),

View File

@@ -30,7 +30,8 @@ public interface NetworkController {
void onMobileDataSignalChanged(boolean enabled, int mobileSignalIconId,
String mobileSignalContentDescriptionId, int dataTypeIconId,
boolean activityIn, boolean activityOut,
String dataTypeContentDescriptionId, String description, boolean noSim);
String dataTypeContentDescriptionId, String description, boolean noSim,
boolean isDataTypeIconWide);
void onAirplaneModeChanged(boolean enabled);
void onMobileDataEnabled(boolean enabled);
}

View File

@@ -63,9 +63,6 @@ public class NetworkControllerImpl extends BroadcastReceiver
static final boolean DEBUG = false;
static final boolean CHATTY = false; // additional diagnostics, but not logspew
private static final int FLIGHT_MODE_ICON = R.drawable.stat_sys_airplane_mode;
private static final int ROAMING_ICON = R.drawable.stat_sys_data_fully_connected_roam;
// telephony
boolean mHspaDataDistinguishable;
final TelephonyManager mPhone;
@@ -165,7 +162,8 @@ public class NetworkControllerImpl extends BroadcastReceiver
public interface SignalCluster {
void setWifiIndicators(boolean visible, int strengthIcon, String contentDescription);
void setMobileDataIndicators(boolean visible, int strengthIcon, int typeIcon,
String contentDescription, String typeContentDescription, boolean roaming);
String contentDescription, String typeContentDescription, boolean roaming,
boolean isTypeIconWide);
void setIsAirplaneMode(boolean is, int airplaneIcon);
}
@@ -358,6 +356,16 @@ public class NetworkControllerImpl extends BroadcastReceiver
mMobileDataController.setMobileDataEnabled(enabled);
}
private boolean isTypeIconWide(int iconId) {
return TelephonyIcons.ICON_LTE == iconId || TelephonyIcons.ICON_1X == iconId
|| TelephonyIcons.ICON_3G == iconId || TelephonyIcons.ICON_4G == iconId;
}
private boolean isQsTypeIconWide(int iconId) {
return TelephonyIcons.QS_ICON_LTE == iconId || TelephonyIcons.QS_ICON_1X == iconId
|| TelephonyIcons.QS_ICON_3G == iconId || TelephonyIcons.QS_ICON_4G == iconId;
}
public void refreshSignalCluster(SignalCluster cluster) {
if (mDemoMode) return;
cluster.setWifiIndicators(
@@ -374,7 +382,8 @@ public class NetworkControllerImpl extends BroadcastReceiver
mDataTypeIconId,
mContentDescriptionWimax,
mContentDescriptionDataType,
mDataTypeIconId == ROAMING_ICON);
mDataTypeIconId == TelephonyIcons.ROAMING_ICON,
false /* isTypeIconWide */ );
} else {
// normal mobile data
cluster.setMobileDataIndicators(
@@ -383,7 +392,8 @@ public class NetworkControllerImpl extends BroadcastReceiver
mDataTypeIconId,
mContentDescriptionPhoneSignal,
mContentDescriptionDataType,
mDataTypeIconId == ROAMING_ICON);
mDataTypeIconId == TelephonyIcons.ROAMING_ICON,
isTypeIconWide(mDataTypeIconId));
}
cluster.setIsAirplaneMode(mAirplaneMode, mAirplaneIconId);
}
@@ -409,18 +419,20 @@ public class NetworkControllerImpl extends BroadcastReceiver
if (isEmergencyOnly()) {
cb.onMobileDataSignalChanged(false, mQSPhoneSignalIconId,
mContentDescriptionPhoneSignal, mQSDataTypeIconId, mobileIn, mobileOut,
mContentDescriptionDataType, null, mNoSim);
mContentDescriptionDataType, null, mNoSim, isQsTypeIconWide(mQSDataTypeIconId));
} else {
if (mIsWimaxEnabled && mWimaxConnected) {
// Wimax is special
cb.onMobileDataSignalChanged(true, mQSPhoneSignalIconId,
mContentDescriptionPhoneSignal, mQSDataTypeIconId, mobileIn, mobileOut,
mContentDescriptionDataType, mNetworkName, mNoSim);
mContentDescriptionDataType, mNetworkName, mNoSim,
isQsTypeIconWide(mQSDataTypeIconId));
} else {
// Normal mobile data
cb.onMobileDataSignalChanged(mHasMobileDataFeature, mQSPhoneSignalIconId,
mContentDescriptionPhoneSignal, mQSDataTypeIconId, mobileIn, mobileOut,
mContentDescriptionDataType, mNetworkName, mNoSim);
mContentDescriptionDataType, mNetworkName, mNoSim,
isQsTypeIconWide(mQSDataTypeIconId));
}
}
cb.onAirplaneModeChanged(mAirplaneMode);
@@ -754,7 +766,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
R.string.accessibility_data_connection_4g);
} else {
mDataIconList = TelephonyIcons.DATA_LTE[mInetCondition];
mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_lte;
mDataTypeIconId = TelephonyIcons.ICON_LTE;
mQSDataTypeIconId = TelephonyIcons.QS_DATA_LTE[mInetCondition];
mContentDescriptionDataType = mContext.getString(
R.string.accessibility_data_connection_lte);
@@ -780,11 +792,11 @@ public class NetworkControllerImpl extends BroadcastReceiver
if (isCdma()) {
if (isCdmaEri()) {
mDataTypeIconId = ROAMING_ICON;
mDataTypeIconId = TelephonyIcons.ROAMING_ICON;
mQSDataTypeIconId = TelephonyIcons.QS_DATA_R[mInetCondition];
}
} else if (mPhone.isNetworkRoaming()) {
mDataTypeIconId = ROAMING_ICON;
mDataTypeIconId = TelephonyIcons.ROAMING_ICON;
mQSDataTypeIconId = TelephonyIcons.QS_DATA_R[mInetCondition];
}
}
@@ -1164,7 +1176,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
// look again; your radios are now airplanes
mContentDescriptionPhoneSignal = mContext.getString(
R.string.accessibility_airplane_mode);
mAirplaneIconId = FLIGHT_MODE_ICON;
mAirplaneIconId = TelephonyIcons.FLIGHT_MODE_ICON;
mPhoneSignalIconId = mDataSignalIconId = mDataTypeIconId = mQSDataTypeIconId = 0;
mQSPhoneSignalIconId = 0;
@@ -1198,11 +1210,11 @@ public class NetworkControllerImpl extends BroadcastReceiver
mQSDataTypeIconId = 0;
if (isCdma()) {
if (isCdmaEri()) {
mDataTypeIconId = ROAMING_ICON;
mDataTypeIconId = TelephonyIcons.ROAMING_ICON;
mQSDataTypeIconId = TelephonyIcons.QS_DATA_R[mInetCondition];
}
} else if (mPhone.isNetworkRoaming()) {
mDataTypeIconId = ROAMING_ICON;
mDataTypeIconId = TelephonyIcons.ROAMING_ICON;
mQSDataTypeIconId = TelephonyIcons.QS_DATA_R[mInetCondition];
}
}
@@ -1509,7 +1521,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
if (airplane != null) {
boolean show = airplane.equals("show");
for (SignalCluster cluster : mSignalClusters) {
cluster.setIsAirplaneMode(show, FLIGHT_MODE_ICON);
cluster.setIsAirplaneMode(show, TelephonyIcons.FLIGHT_MODE_ICON);
}
}
String fully = args.getString("fully");
@@ -1540,23 +1552,23 @@ public class NetworkControllerImpl extends BroadcastReceiver
String datatype = args.getString("datatype");
if (datatype != null) {
mDemoDataTypeIconId =
datatype.equals("1x") ? R.drawable.stat_sys_data_fully_connected_1x :
datatype.equals("3g") ? R.drawable.stat_sys_data_fully_connected_3g :
datatype.equals("4g") ? R.drawable.stat_sys_data_fully_connected_4g :
datatype.equals("1x") ? TelephonyIcons.ICON_1X :
datatype.equals("3g") ? TelephonyIcons.ICON_3G :
datatype.equals("4g") ? TelephonyIcons.ICON_4G :
datatype.equals("e") ? R.drawable.stat_sys_data_fully_connected_e :
datatype.equals("g") ? R.drawable.stat_sys_data_fully_connected_g :
datatype.equals("h") ? R.drawable.stat_sys_data_fully_connected_h :
datatype.equals("lte") ? R.drawable.stat_sys_data_fully_connected_lte :
datatype.equals("roam") ? ROAMING_ICON :
datatype.equals("lte") ? TelephonyIcons.ICON_LTE :
datatype.equals("roam") ? TelephonyIcons.ROAMING_ICON :
0;
mDemoQSDataTypeIconId =
datatype.equals("1x") ? R.drawable.ic_qs_signal_1x :
datatype.equals("3g") ? R.drawable.ic_qs_signal_3g :
datatype.equals("4g") ? R.drawable.ic_qs_signal_4g :
datatype.equals("1x") ? TelephonyIcons.QS_ICON_1X :
datatype.equals("3g") ? TelephonyIcons.QS_ICON_3G :
datatype.equals("4g") ? TelephonyIcons.QS_ICON_4G :
datatype.equals("e") ? R.drawable.ic_qs_signal_e :
datatype.equals("g") ? R.drawable.ic_qs_signal_g :
datatype.equals("h") ? R.drawable.ic_qs_signal_h :
datatype.equals("lte") ? R.drawable.ic_qs_signal_lte :
datatype.equals("lte") ? TelephonyIcons.QS_ICON_LTE :
datatype.equals("roam") ? R.drawable.ic_qs_signal_r :
0;
}
@@ -1575,7 +1587,8 @@ public class NetworkControllerImpl extends BroadcastReceiver
mDemoDataTypeIconId,
"Demo",
"Demo",
mDemoDataTypeIconId == ROAMING_ICON);
mDemoDataTypeIconId == TelephonyIcons.ROAMING_ICON,
isTypeIconWide(mDemoDataTypeIconId));
}
refreshViews();
}

View File

@@ -188,5 +188,16 @@ class TelephonyIcons {
R.drawable.ic_qs_signal_lte
};
static final int FLIGHT_MODE_ICON = R.drawable.stat_sys_airplane_mode;
static final int ROAMING_ICON = R.drawable.stat_sys_data_fully_connected_roam;
static final int ICON_LTE = R.drawable.stat_sys_data_fully_connected_lte;
static final int ICON_3G = R.drawable.stat_sys_data_fully_connected_3g;
static final int ICON_4G = R.drawable.stat_sys_data_fully_connected_4g;
static final int ICON_1X = R.drawable.stat_sys_data_fully_connected_1x;
static final int QS_ICON_LTE = R.drawable.ic_qs_signal_lte;
static final int QS_ICON_3G = R.drawable.ic_qs_signal_3g;
static final int QS_ICON_4G = R.drawable.ic_qs_signal_4g;
static final int QS_ICON_1X = R.drawable.ic_qs_signal_1x;
}