From c80b7616ca7bd6a7389fd37460aebb4e7d69695e Mon Sep 17 00:00:00 2001 From: PauloftheWest Date: Tue, 25 Nov 2014 04:40:45 -0800 Subject: [PATCH] Added color to Data Usage graph + Fixed some issues with displaying multiple SIMs in Data Usage. Bug: 18466592 Bug: 18291246 Change-Id: I77417be995761ce62e464c7d21a34af1334aac17 --- .../android/settings/DataUsageSummary.java | 56 +++++++++++++------ 1 file changed, 40 insertions(+), 16 deletions(-) diff --git a/src/com/android/settings/DataUsageSummary.java b/src/com/android/settings/DataUsageSummary.java index a0a237d4a13..58208fa7c31 100644 --- a/src/com/android/settings/DataUsageSummary.java +++ b/src/com/android/settings/DataUsageSummary.java @@ -140,6 +140,7 @@ import com.android.settings.search.SearchIndexableRaw; 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 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable 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 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable 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 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable 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 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable 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 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable 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 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable } }; - private void addMobileTab(Context context, List 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 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable * @return The map or null if no activated subscription */ private Map initMobileTabTag(List subInfoList) { + final Context context = getActivity(); Map map = null; if (subInfoList != null) { String mobileTag; map = new HashMap(); - 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;