Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0fef82fb authored by Bonian Chen's avatar Bonian Chen
Browse files

[Settings] Mobile data usage code refactor

Code refactor

Bug: 151751844
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=DataUsagePreferenceControllerTest
Change-Id: Ie1870523ce83e6a1fc56fe9bc4c61708e0e745c4
parent 7db5840d
Loading
Loading
Loading
Loading
+22 −16
Original line number Diff line number Diff line
@@ -35,7 +35,6 @@ import com.android.settingslib.net.DataUsageController;
public class DataUsagePreferenceController extends TelephonyBasePreferenceController {

    private NetworkTemplate mTemplate;
    private DataUsageController.DataUsageInfo mDataUsageInfo;

    public DataUsagePreferenceController(Context context, String key) {
        super(context, key);
@@ -68,18 +67,12 @@ public class DataUsagePreferenceController extends TelephonyBasePreferenceContro
            preference.setEnabled(false);
            return;
        }
        long usageLevel = mDataUsageInfo.usageLevel;
        if (usageLevel <= 0L) {
            final DataUsageController controller = new DataUsageController(mContext);
            usageLevel = controller.getHistoricalUsageLevel(mTemplate);
        }
        final boolean enabled = usageLevel > 0L;
        preference.setEnabled(enabled);

        if (enabled) {
            preference.setSummary(mContext.getString(R.string.data_usage_template,
                    DataUsageUtils.formatDataUsage(mContext, mDataUsageInfo.usageLevel),
                    mDataUsageInfo.period));
        final CharSequence summary = getDataUsageSummary(mContext, mSubId);
        if (summary == null) {
            preference.setEnabled(false);
        } else {
            preference.setEnabled(true);
            preference.setSummary(summary);
        }
    }

@@ -90,9 +83,22 @@ public class DataUsagePreferenceController extends TelephonyBasePreferenceContro
            return;
        }
        mTemplate = DataUsageUtils.getDefaultTemplate(mContext, mSubId);
    }

    private CharSequence getDataUsageSummary(Context context, int subId) {
        final DataUsageController controller = new DataUsageController(context);
        controller.setSubscriptionId(subId);

        final DataUsageController controller = new DataUsageController(mContext);
        controller.setSubscriptionId(mSubId);
        mDataUsageInfo = controller.getDataUsageInfo(mTemplate);
        final DataUsageController.DataUsageInfo usageInfo = controller.getDataUsageInfo(mTemplate);

        long usageLevel = usageInfo.usageLevel;
        if (usageLevel <= 0L) {
            usageLevel = controller.getHistoricalUsageLevel(mTemplate);
        }
        if (usageLevel <= 0L) {
            return null;
        }
        return context.getString(R.string.data_usage_template,
                DataUsageUtils.formatDataUsage(context, usageLevel), usageInfo.period);
    }
}