Added color to Data Usage graph
+ Fixed some issues with displaying multiple SIMs in Data Usage.
Bug: 18466592
Bug: 18291246
Change-Id: I77417be995761ce62e464c7d21a34af1334aac17
diff --git a/src/com/android/settings/DataUsageSummary.java b/src/com/android/settings/DataUsageSummary.java
index a0a237d..58208fa 100644
--- a/src/com/android/settings/DataUsageSummary.java
+++ b/src/com/android/settings/DataUsageSummary.java
@@ -140,6 +140,7 @@
import com.android.settings.sim.SimSettings;
import com.android.settings.widget.ChartDataUsageView;
import com.android.settings.widget.ChartDataUsageView.DataUsageChartListener;
+import com.android.settings.widget.ChartNetworkSeriesView;
import com.google.android.collect.Lists;
import libcore.util.Objects;
@@ -209,6 +210,8 @@
private ViewGroup mTabsContainer;
private TabWidget mTabWidget;
private ListView mListView;
+ private ChartNetworkSeriesView mSeries;
+ private ChartNetworkSeriesView mDetailedSeries;
private DataUsageAdapter mAdapter;
/** Distance to inset content from sides, when needed. */
@@ -400,6 +403,8 @@
mCycleSpinner.setOnItemSelectedListener(mCycleListener);
mCycleSummary = (TextView) mCycleView.findViewById(R.id.cycle_summary);
mNetworkSwitches.addView(mCycleView);
+ mSeries = (ChartNetworkSeriesView)view.findViewById(R.id.series);
+ mDetailedSeries = (ChartNetworkSeriesView)view.findViewById(R.id.detail_series);
}
mChart = (ChartDataUsageView) mHeader.findViewById(R.id.chart);
@@ -658,16 +663,17 @@
final Context context = getActivity();
mTabHost.clearAllTabs();
- final boolean mobileSplit = isMobilePolicySplit();
- if (mobileSplit && hasReadyMobile4gRadio(context)) {
- mTabHost.addTab(buildTabSpec(TAB_3G, R.string.data_usage_tab_3g));
- mTabHost.addTab(buildTabSpec(TAB_4G, R.string.data_usage_tab_4g));
- } else if (hasReadyMobileRadio(context)) {
- addMobileTab(context, mSubInfoList);
+ for (int i = 0; i < mTelephonyManager.getSimCount(); i++) {
+ final SubscriptionInfo sir = Utils.findRecordBySlotId(context, i);
+ if (sir != null) {
+ addMobileTab(context, sir);
+ }
}
+
if (mShowWifi && hasWifiRadio(context)) {
mTabHost.addTab(buildTabSpec(TAB_WIFI, R.string.data_usage_tab_wifi));
}
+
if (mShowEthernet && hasEthernet(context)) {
mTabHost.addTab(buildTabSpec(TAB_ETHERNET, R.string.data_usage_tab_ethernet));
}
@@ -736,6 +742,7 @@
if (!isAdded()) return;
final Context context = getActivity();
+ final Resources resources = context.getResources();
final String currentTab = mTabHost.getCurrentTabTag();
final boolean isOwner = ActivityManager.getCurrentUser() == UserHandle.USER_OWNER;
@@ -799,6 +806,21 @@
getActivity().invalidateOptionsMenu();
mBinding = false;
+
+ int seriesColor = resources.getColor(R.color.sim_noitification);
+ if (mCurrentTab != null && mCurrentTab.length() > TAB_MOBILE.length() ){
+ final int slotId = Integer.parseInt(mCurrentTab.substring(TAB_MOBILE.length(),
+ mCurrentTab.length()));
+ final SubscriptionInfo sir = com.android.settings.Utils.findRecordBySlotId(context,
+ slotId);
+
+ if (sir != null) {
+ seriesColor = sir.getIconTint();
+ }
+ }
+
+ mSeries.setChartColor(Color.BLACK, seriesColor, seriesColor);
+ mDetailedSeries.setChartColor(Color.BLACK, seriesColor, seriesColor);
}
private boolean isAppDetailMode() {
@@ -2588,13 +2610,11 @@
}
};
- private void addMobileTab(Context context, List<SubscriptionInfo> subInfoList) {
- if (subInfoList != null && mMobileTagMap != null) {
- for (SubscriptionInfo subInfo : mSubInfoList) {
- if (hasReadyMobileRadio(context, subInfo.getSubscriptionId())) {
- mTabHost.addTab(buildTabSpec(mMobileTagMap.get(subInfo.getSubscriptionId()),
- subInfo.getDisplayName()));
- }
+ private void addMobileTab(Context context, SubscriptionInfo subInfo) {
+ if (subInfo != null && mMobileTagMap != null) {
+ if (hasReadyMobileRadio(context, subInfo.getSubscriptionId())) {
+ mTabHost.addTab(buildTabSpec(mMobileTagMap.get(subInfo.getSubscriptionId()),
+ subInfo.getDisplayName()));
}
}
}
@@ -2620,13 +2640,17 @@
* @return The map or null if no activated subscription
*/
private Map<Integer, String> initMobileTabTag(List<SubscriptionInfo> subInfoList) {
+ final Context context = getActivity();
Map<Integer, String> map = null;
if (subInfoList != null) {
String mobileTag;
map = new HashMap<Integer, String>();
- for (SubscriptionInfo subInfo : subInfoList) {
- mobileTag = TAB_MOBILE + String.valueOf(subInfo.getSubscriptionId());
- map.put(subInfo.getSubscriptionId(), mobileTag);
+ for (int i = 0; i < mTelephonyManager.getSimCount(); i++) {
+ final SubscriptionInfo subInfo = Utils.findRecordBySlotId(context, i);
+ mobileTag = TAB_MOBILE + i;
+ if (subInfo != null) {
+ map.put(subInfo.getSubscriptionId(), mobileTag);
+ }
}
}
return map;