Loading src/com/android/settings/DataUsageSummary.java +4 −1 Original line number Diff line number Diff line Loading @@ -151,7 +151,9 @@ public class DataUsageSummary extends Fragment { // TODO: remove this testing code private static final boolean TEST_ANIM = false; private static final boolean TEST_RADIOS = false; private static final String TEST_RADIOS_PROP = "test.radios"; private static final String TEST_SUBSCRIBER_PROP = "test.subscriberid"; private static final String TAB_3G = "3g"; private static final String TAB_4G = "4g"; Loading Loading @@ -1217,7 +1219,8 @@ public class DataUsageSummary extends Fragment { private static String getActiveSubscriberId(Context context) { final TelephonyManager telephony = (TelephonyManager) context.getSystemService( Context.TELEPHONY_SERVICE); return telephony.getSubscriberId(); final String actualSubscriberId = telephony.getSubscriberId(); return SystemProperties.get(TEST_SUBSCRIBER_PROP, actualSubscriberId); } private DataUsageChartListener mChartListener = new DataUsageChartListener() { Loading src/com/android/settings/widget/ChartDataUsageView.java +44 −16 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import android.text.Spannable; import android.text.SpannableStringBuilder; import android.text.TextUtils; import android.text.format.DateUtils; import android.text.format.Time; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; Loading @@ -37,6 +38,9 @@ import com.android.internal.util.Objects; import com.android.settings.R; import com.android.settings.widget.ChartSweepView.OnSweepListener; import java.util.Arrays; import java.util.Calendar; /** * Specific {@link ChartView} that displays {@link ChartNetworkSeriesView} along * with {@link ChartSweepView} for inspection ranges and warning/limits. Loading Loading @@ -449,7 +453,7 @@ public class ChartDataUsageView extends ChartView { } public static class TimeAxis implements ChartAxis { private static final long TICK_INTERVAL = DateUtils.DAY_IN_MILLIS * 7; private static final int FIRST_DAY_OF_WEEK = Calendar.getInstance().getFirstDayOfWeek() - 1; private long mMin; private long mMax; Loading Loading @@ -505,13 +509,27 @@ public class ChartDataUsageView extends ChartView { /** {@inheritDoc} */ public float[] getTickPoints() { // tick mark for every week final int tickCount = (int) ((mMax - mMin) / TICK_INTERVAL); final float[] tickPoints = new float[tickCount]; for (int i = 0; i < tickCount; i++) { tickPoints[i] = convertToPoint(mMax - (TICK_INTERVAL * (i + 1))); final float[] ticks = new float[32]; int i = 0; // tick mark for first day of each week final Time time = new Time(); time.set(mMax); time.monthDay -= time.weekDay - FIRST_DAY_OF_WEEK; time.hour = time.minute = time.second = 0; time.normalize(true); long timeMillis = time.toMillis(true); while (timeMillis > mMin) { if (timeMillis <= mMax) { ticks[i++] = convertToPoint(timeMillis); } return tickPoints; time.monthDay -= 7; time.normalize(true); timeMillis = time.toMillis(true); } return Arrays.copyOf(ticks, i); } /** {@inheritDoc} */ Loading @@ -526,6 +544,8 @@ public class ChartDataUsageView extends ChartView { private long mMax; private float mSize; private static final boolean LOG_SCALE = false; @Override public int hashCode() { return Objects.hashCode(mMin, mMax, mSize); Loading Loading @@ -554,19 +574,27 @@ public class ChartDataUsageView extends ChartView { /** {@inheritDoc} */ public float convertToPoint(long value) { if (LOG_SCALE) { // derived polynomial fit to make lower values more visible final double normalized = ((double) value - mMin) / (mMax - mMin); final double fraction = Math.pow( 10, 0.36884343106175121463 * Math.log10(normalized) + -0.04328199452018252624); final double fraction = Math.pow(10, 0.36884343106175121463 * Math.log10(normalized) + -0.04328199452018252624); return (float) (fraction * mSize); } else { return (mSize * (value - mMin)) / (mMax - mMin); } } /** {@inheritDoc} */ public long convertToValue(float point) { if (LOG_SCALE) { final double normalized = point / mSize; final double fraction = 1.3102228476089056629 * Math.pow(normalized, 2.7111774693164631640); return (long) (mMin + (fraction * (mMax - mMin))); } else { return (long) (mMin + ((point * (mMax - mMin)) / mSize)); } } private static final Object sSpanSize = new Object(); Loading Loading
src/com/android/settings/DataUsageSummary.java +4 −1 Original line number Diff line number Diff line Loading @@ -151,7 +151,9 @@ public class DataUsageSummary extends Fragment { // TODO: remove this testing code private static final boolean TEST_ANIM = false; private static final boolean TEST_RADIOS = false; private static final String TEST_RADIOS_PROP = "test.radios"; private static final String TEST_SUBSCRIBER_PROP = "test.subscriberid"; private static final String TAB_3G = "3g"; private static final String TAB_4G = "4g"; Loading Loading @@ -1217,7 +1219,8 @@ public class DataUsageSummary extends Fragment { private static String getActiveSubscriberId(Context context) { final TelephonyManager telephony = (TelephonyManager) context.getSystemService( Context.TELEPHONY_SERVICE); return telephony.getSubscriberId(); final String actualSubscriberId = telephony.getSubscriberId(); return SystemProperties.get(TEST_SUBSCRIBER_PROP, actualSubscriberId); } private DataUsageChartListener mChartListener = new DataUsageChartListener() { Loading
src/com/android/settings/widget/ChartDataUsageView.java +44 −16 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import android.text.Spannable; import android.text.SpannableStringBuilder; import android.text.TextUtils; import android.text.format.DateUtils; import android.text.format.Time; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; Loading @@ -37,6 +38,9 @@ import com.android.internal.util.Objects; import com.android.settings.R; import com.android.settings.widget.ChartSweepView.OnSweepListener; import java.util.Arrays; import java.util.Calendar; /** * Specific {@link ChartView} that displays {@link ChartNetworkSeriesView} along * with {@link ChartSweepView} for inspection ranges and warning/limits. Loading Loading @@ -449,7 +453,7 @@ public class ChartDataUsageView extends ChartView { } public static class TimeAxis implements ChartAxis { private static final long TICK_INTERVAL = DateUtils.DAY_IN_MILLIS * 7; private static final int FIRST_DAY_OF_WEEK = Calendar.getInstance().getFirstDayOfWeek() - 1; private long mMin; private long mMax; Loading Loading @@ -505,13 +509,27 @@ public class ChartDataUsageView extends ChartView { /** {@inheritDoc} */ public float[] getTickPoints() { // tick mark for every week final int tickCount = (int) ((mMax - mMin) / TICK_INTERVAL); final float[] tickPoints = new float[tickCount]; for (int i = 0; i < tickCount; i++) { tickPoints[i] = convertToPoint(mMax - (TICK_INTERVAL * (i + 1))); final float[] ticks = new float[32]; int i = 0; // tick mark for first day of each week final Time time = new Time(); time.set(mMax); time.monthDay -= time.weekDay - FIRST_DAY_OF_WEEK; time.hour = time.minute = time.second = 0; time.normalize(true); long timeMillis = time.toMillis(true); while (timeMillis > mMin) { if (timeMillis <= mMax) { ticks[i++] = convertToPoint(timeMillis); } return tickPoints; time.monthDay -= 7; time.normalize(true); timeMillis = time.toMillis(true); } return Arrays.copyOf(ticks, i); } /** {@inheritDoc} */ Loading @@ -526,6 +544,8 @@ public class ChartDataUsageView extends ChartView { private long mMax; private float mSize; private static final boolean LOG_SCALE = false; @Override public int hashCode() { return Objects.hashCode(mMin, mMax, mSize); Loading Loading @@ -554,19 +574,27 @@ public class ChartDataUsageView extends ChartView { /** {@inheritDoc} */ public float convertToPoint(long value) { if (LOG_SCALE) { // derived polynomial fit to make lower values more visible final double normalized = ((double) value - mMin) / (mMax - mMin); final double fraction = Math.pow( 10, 0.36884343106175121463 * Math.log10(normalized) + -0.04328199452018252624); final double fraction = Math.pow(10, 0.36884343106175121463 * Math.log10(normalized) + -0.04328199452018252624); return (float) (fraction * mSize); } else { return (mSize * (value - mMin)) / (mMax - mMin); } } /** {@inheritDoc} */ public long convertToValue(float point) { if (LOG_SCALE) { final double normalized = point / mSize; final double fraction = 1.3102228476089056629 * Math.pow(normalized, 2.7111774693164631640); return (long) (mMin + (fraction * (mMax - mMin))); } else { return (long) (mMin + ((point * (mMax - mMin)) / mSize)); } } private static final Object sSpanSize = new Object(); Loading