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

Commit 8a5a1b74 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Iterate NetworkPolicy towards SubscriptionPlan."

parents c457f58b 47f51fac
Loading
Loading
Loading
Loading
+9 −7
Original line number Diff line number Diff line
@@ -14,9 +14,10 @@

package com.android.settings.datausage;

import static android.net.NetworkPolicy.CYCLE_NONE;

import android.content.Context;
import android.content.Intent;
import android.net.NetworkPolicy;
import android.net.NetworkTemplate;
import android.os.Bundle;
import android.os.RemoteException;
@@ -32,7 +33,6 @@ public class BillingCyclePreference extends Preference implements TemplatePrefer

    private NetworkTemplate mTemplate;
    private NetworkServices mServices;
    private NetworkPolicy mPolicy;
    private int mSubId;

    public BillingCyclePreference(Context context, AttributeSet attrs) {
@@ -57,16 +57,18 @@ public class BillingCyclePreference extends Preference implements TemplatePrefer
        mTemplate = template;
        mSubId = subId;
        mServices = services;
        mPolicy = services.mPolicyEditor.getPolicy(mTemplate);
        setSummary(getContext().getString(R.string.billing_cycle_fragment_summary, mPolicy != null
                ? mPolicy.cycleDay
                : "1"));
        final int cycleDay = services.mPolicyEditor.getPolicyCycleDay(mTemplate);
        if (cycleDay != CYCLE_NONE) {
            setSummary(getContext().getString(R.string.billing_cycle_fragment_summary, cycleDay));
        } else {
            setSummary(null);
        }
        setIntent(getIntent());
    }

    private void updateEnabled() {
        try {
            setEnabled(mPolicy != null && mServices.mNetworkService.isBandwidthControlEnabled()
            setEnabled(mServices.mNetworkService.isBandwidthControlEnabled()
                    && mServices.mTelephonyManager.getDataEnabled(mSubId)
                    && mServices.mUserManager.isAdminUser());
        } catch (RemoteException e) {
+17 −12
Original line number Diff line number Diff line
@@ -14,9 +14,12 @@

package com.android.settings.datausage;

import static android.net.NetworkPolicy.CYCLE_NONE;
import static android.net.NetworkPolicy.LIMIT_DISABLED;
import static android.net.NetworkPolicy.WARNING_DISABLED;

import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.app.Fragment;
import android.content.Context;
import android.content.DialogInterface;
@@ -45,9 +48,6 @@ import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settingslib.NetworkPolicyEditor;
import com.android.settingslib.net.DataUsageController;

import static android.net.NetworkPolicy.LIMIT_DISABLED;
import static android.net.NetworkPolicy.WARNING_DISABLED;

public class BillingCycleSettings extends DataUsageBase implements
        Preference.OnPreferenceChangeListener, DataUsageEditController {

@@ -103,11 +103,15 @@ public class BillingCycleSettings extends DataUsageBase implements
    }

    private void updatePrefs() {
        NetworkPolicy policy = services.mPolicyEditor.getPolicy(mNetworkTemplate);
        mBillingCycle.setSummary(getString(R.string.billing_cycle_fragment_summary, policy != null ?
                policy.cycleDay : 1));
        if (policy != null && policy.warningBytes != WARNING_DISABLED) {
            mDataWarning.setSummary(Formatter.formatFileSize(getContext(), policy.warningBytes));
        final int cycleDay = services.mPolicyEditor.getPolicyCycleDay(mNetworkTemplate);
        if (cycleDay != CYCLE_NONE) {
            mBillingCycle.setSummary(getString(R.string.billing_cycle_fragment_summary, cycleDay));
        } else {
            mBillingCycle.setSummary(null);
        }
        final long warningBytes = services.mPolicyEditor.getPolicyWarningBytes(mNetworkTemplate);
        if (warningBytes != WARNING_DISABLED) {
            mDataWarning.setSummary(Formatter.formatFileSize(getContext(), warningBytes));
            mDataWarning.setEnabled(true);
            mEnableDataWarning.setChecked(true);
        } else {
@@ -115,8 +119,9 @@ public class BillingCycleSettings extends DataUsageBase implements
            mDataWarning.setEnabled(false);
            mEnableDataWarning.setChecked(false);
        }
        if (policy != null && policy.limitBytes != LIMIT_DISABLED) {
            mDataLimit.setSummary(Formatter.formatFileSize(getContext(), policy.limitBytes));
        final long limitBytes = services.mPolicyEditor.getPolicyWarningBytes(mNetworkTemplate);
        if (limitBytes != LIMIT_DISABLED) {
            mDataLimit.setSummary(Formatter.formatFileSize(getContext(), limitBytes));
            mDataLimit.setEnabled(true);
            mEnableDataLimit.setChecked(true);
        } else {
@@ -319,7 +324,7 @@ public class BillingCycleSettings extends DataUsageBase implements
    }

    /**
     * Dialog to edit {@link NetworkPolicy#cycleDay}.
     * Dialog to edit {@link NetworkPolicy}.
     */
    public static class CycleEditorFragment extends InstrumentedDialogFragment implements
            DialogInterface.OnClickListener {
+15 −12
Original line number Diff line number Diff line
@@ -15,17 +15,21 @@ package com.android.settings.datausage;

import android.content.Context;
import android.net.NetworkPolicy;
import android.net.NetworkPolicyManager;
import android.net.NetworkStatsHistory;
import android.text.format.DateUtils;
import android.util.Pair;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;

import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settingslib.net.ChartData;

import libcore.util.Objects;

import static android.net.NetworkPolicyManager.computeLastCycleBoundary;
import static android.net.NetworkPolicyManager.computeNextCycleBoundary;
import java.time.ZonedDateTime;
import java.util.Iterator;

public class CycleAdapter extends ArrayAdapter<CycleAdapter.CycleItem> {

@@ -61,9 +65,9 @@ public class CycleAdapter extends ArrayAdapter<CycleAdapter.CycleItem> {
    }

    /**
     * Rebuild list based on {@link NetworkPolicy#cycleDay}
     * and available {@link NetworkStatsHistory} data. Always selects the newest
     * item, updating the inspection range on chartData.
     * Rebuild list based on {@link NetworkPolicy} and available
     * {@link NetworkStatsHistory} data. Always selects the newest item,
     * updating the inspection range on chartData.
     */
     public boolean updateCycleList(NetworkPolicy policy, ChartData chartData) {
        // stash away currently selected cycle to try restoring below
@@ -87,12 +91,12 @@ public class CycleAdapter extends ArrayAdapter<CycleAdapter.CycleItem> {

        boolean hasCycles = false;
        if (policy != null) {
            // find the next cycle boundary
            long cycleEnd = computeNextCycleBoundary(historyEnd, policy);

            // walk backwards, generating all valid cycle ranges
            while (cycleEnd > historyStart) {
                final long cycleStart = computeLastCycleBoundary(cycleEnd, policy);
            final Iterator<Pair<ZonedDateTime, ZonedDateTime>> it = NetworkPolicyManager
                    .cycleIterator(policy);
            while (it.hasNext()) {
                final Pair<ZonedDateTime, ZonedDateTime> cycle = it.next();
                final long cycleStart = cycle.first.toInstant().toEpochMilli();
                final long cycleEnd = cycle.second.toInstant().toEpochMilli();

                final boolean includeCycle;
                if (chartData != null) {
@@ -106,7 +110,6 @@ public class CycleAdapter extends ArrayAdapter<CycleAdapter.CycleItem> {
                    add(new CycleAdapter.CycleItem(context, cycleStart, cycleEnd));
                    hasCycles = true;
                }
                cycleEnd = cycleStart;
            }
        }