Loading src/com/android/settings/datausage/BillingCyclePreference.kt +1 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ class BillingCyclePreference @JvmOverloads constructor( this.subId = subId summary = null updateEnabled() intent = intent } override fun onAttached() { Loading src/com/android/settings/datausage/DataUsageBaseFragment.java +0 −45 Original line number Diff line number Diff line Loading @@ -15,23 +15,13 @@ package com.android.settings.datausage; import android.content.Context; import android.net.NetworkPolicy; import android.net.NetworkPolicyManager; import android.os.Bundle; import android.os.INetworkManagementService; import android.os.RemoteException; import android.os.ServiceManager; import android.os.UserManager; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.util.Log; import com.android.settings.dashboard.DashboardFragment; import com.android.settingslib.NetworkPolicyEditor; public abstract class DataUsageBaseFragment extends DashboardFragment { private static final String TAG = "DataUsageBase"; private static final String ETHERNET = "ethernet"; protected final TemplatePreference.NetworkServices services = new TemplatePreference.NetworkServices(); Loading @@ -41,16 +31,10 @@ public abstract class DataUsageBaseFragment extends DashboardFragment { super.onCreate(icicle); Context context = getContext(); services.mNetworkService = INetworkManagementService.Stub.asInterface( ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE)); services.mPolicyManager = (NetworkPolicyManager) context .getSystemService(Context.NETWORK_POLICY_SERVICE); services.mPolicyEditor = new NetworkPolicyEditor(services.mPolicyManager); services.mTelephonyManager = context.getSystemService(TelephonyManager.class); services.mSubscriptionManager = SubscriptionManager.from(context); services.mUserManager = UserManager.get(context); } @Override Loading @@ -58,33 +42,4 @@ public abstract class DataUsageBaseFragment extends DashboardFragment { super.onResume(); services.mPolicyEditor.read(); } protected boolean isAdmin() { return services.mUserManager.isAdminUser(); } protected boolean isMobileDataAvailable(int subId) { return services.mSubscriptionManager.getActiveSubscriptionInfo(subId) != null; } protected boolean isNetworkPolicyModifiable(NetworkPolicy policy, int subId) { return policy != null && isBandwidthControlEnabled() && services.mUserManager.isAdminUser() && isDataEnabled(subId); } private boolean isDataEnabled(int subId) { if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) { return true; } return services.mTelephonyManager.getDataEnabled(subId); } protected boolean isBandwidthControlEnabled() { try { return services.mNetworkService.isBandwidthControlEnabled(); } catch (RemoteException e) { Log.w(TAG, "problem talking with INetworkManagementService: ", e); return false; } } } src/com/android/settings/datausage/DataUsageList.java +17 −4 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ import android.view.View.AccessibilityDelegate; import android.view.accessibility.AccessibilityEvent; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ImageView; import android.widget.Spinner; import androidx.annotation.NonNull; Loading @@ -46,6 +45,7 @@ import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.core.SubSettingLauncher; import com.android.settings.datausage.CycleAdapter.SpinnerInterface; import com.android.settings.datausage.lib.BillingCycleRepository; import com.android.settings.network.MobileDataEnabledListener; import com.android.settings.network.MobileNetworkRepository; import com.android.settings.widget.LoadingViewController; Loading Loading @@ -108,6 +108,7 @@ public class DataUsageList extends DataUsageBaseFragment private MobileNetworkRepository mMobileNetworkRepository; private SubscriptionInfoEntity mSubscriptionInfoEntity; private DataUsageListAppsController mDataUsageListAppsController; private BillingCycleRepository mBillingCycleRepository; @Override public int getMetricsCategory() { Loading @@ -125,7 +126,8 @@ public class DataUsageList extends DataUsageBaseFragment } final Activity activity = getActivity(); if (!isBandwidthControlEnabled()) { mBillingCycleRepository = createBillingCycleRepository(); if (!mBillingCycleRepository.isBandwidthControlEnabled()) { Log.w(TAG, "No bandwidth control; leaving"); activity.finish(); return; Loading @@ -146,6 +148,12 @@ public class DataUsageList extends DataUsageBaseFragment mDataUsageListAppsController.init(mTemplate); } @VisibleForTesting @NonNull BillingCycleRepository createBillingCycleRepository() { return new BillingCycleRepository(requireContext()); } @Override public void onViewCreated(@NonNull View v, Bundle savedInstanceState) { super.onViewCreated(v, savedInstanceState); Loading Loading @@ -286,10 +294,9 @@ public class DataUsageList extends DataUsageBaseFragment final NetworkPolicy policy = services.mPolicyEditor.getPolicy(mTemplate); final View configureButton = mHeader.findViewById(R.id.filter_settings); //SUB SELECT if (isNetworkPolicyModifiable(policy, mSubId) && isMobileDataAvailable(mSubId)) { if (policy != null && isMobileDataAvailable()) { mChart.setNetworkPolicy(policy); configureButton.setVisibility(View.VISIBLE); ((ImageView) configureButton).setColorFilter(android.R.color.white); } else { // controls are disabled; don't bind warning/limit sweeps mChart.setNetworkPolicy(null); Loading @@ -304,6 +311,12 @@ public class DataUsageList extends DataUsageBaseFragment updateSelectedCycle(); } private boolean isMobileDataAvailable() { return mBillingCycleRepository.isModifiable(mSubId) && SubscriptionManager.from(requireContext()) .getActiveSubscriptionInfo(mSubId) != null; } /** * Updates the chart and detail data when initial loaded or selected cycle changed. */ Loading src/com/android/settings/datausage/DataUsageListAppsController.kt +4 −2 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.app.ActivityManager import android.content.Context import android.net.NetworkTemplate import android.os.Bundle import androidx.annotation.OpenForTesting import androidx.annotation.VisibleForTesting import androidx.lifecycle.LifecycleCoroutineScope import androidx.lifecycle.LifecycleOwner Loading @@ -37,7 +38,8 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext class DataUsageListAppsController(context: Context, preferenceKey: String) : @OpenForTesting open class DataUsageListAppsController(context: Context, preferenceKey: String) : BasePreferenceController(context, preferenceKey) { private val uidDetailProvider = UidDetailProvider(context) Loading @@ -48,7 +50,7 @@ class DataUsageListAppsController(context: Context, preferenceKey: String) : private var cycleData: List<NetworkCycleChartData>? = null fun init(template: NetworkTemplate) { open fun init(template: NetworkTemplate) { this.template = template repository = AppDataUsageRepository( context = mContext, Loading src/com/android/settings/datausage/DataUsageSummary.java +1 −1 Original line number Diff line number Diff line Loading @@ -103,7 +103,7 @@ public class DataUsageSummary extends DataUsageBaseFragment implements DataUsage mDefaultTemplate = DataUsageUtils.getDefaultTemplate(context, defaultSubId); mSummaryPreference = findPreference(KEY_STATUS_HEADER); if (!hasMobileData || !isAdmin()) { if (!hasMobileData || !UserManager.get(context).isAdminUser()) { removePreference(KEY_RESTRICT_BACKGROUND); } boolean hasWifiRadio = DataUsageUtils.hasWifiRadio(context); Loading Loading
src/com/android/settings/datausage/BillingCyclePreference.kt +1 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ class BillingCyclePreference @JvmOverloads constructor( this.subId = subId summary = null updateEnabled() intent = intent } override fun onAttached() { Loading
src/com/android/settings/datausage/DataUsageBaseFragment.java +0 −45 Original line number Diff line number Diff line Loading @@ -15,23 +15,13 @@ package com.android.settings.datausage; import android.content.Context; import android.net.NetworkPolicy; import android.net.NetworkPolicyManager; import android.os.Bundle; import android.os.INetworkManagementService; import android.os.RemoteException; import android.os.ServiceManager; import android.os.UserManager; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.util.Log; import com.android.settings.dashboard.DashboardFragment; import com.android.settingslib.NetworkPolicyEditor; public abstract class DataUsageBaseFragment extends DashboardFragment { private static final String TAG = "DataUsageBase"; private static final String ETHERNET = "ethernet"; protected final TemplatePreference.NetworkServices services = new TemplatePreference.NetworkServices(); Loading @@ -41,16 +31,10 @@ public abstract class DataUsageBaseFragment extends DashboardFragment { super.onCreate(icicle); Context context = getContext(); services.mNetworkService = INetworkManagementService.Stub.asInterface( ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE)); services.mPolicyManager = (NetworkPolicyManager) context .getSystemService(Context.NETWORK_POLICY_SERVICE); services.mPolicyEditor = new NetworkPolicyEditor(services.mPolicyManager); services.mTelephonyManager = context.getSystemService(TelephonyManager.class); services.mSubscriptionManager = SubscriptionManager.from(context); services.mUserManager = UserManager.get(context); } @Override Loading @@ -58,33 +42,4 @@ public abstract class DataUsageBaseFragment extends DashboardFragment { super.onResume(); services.mPolicyEditor.read(); } protected boolean isAdmin() { return services.mUserManager.isAdminUser(); } protected boolean isMobileDataAvailable(int subId) { return services.mSubscriptionManager.getActiveSubscriptionInfo(subId) != null; } protected boolean isNetworkPolicyModifiable(NetworkPolicy policy, int subId) { return policy != null && isBandwidthControlEnabled() && services.mUserManager.isAdminUser() && isDataEnabled(subId); } private boolean isDataEnabled(int subId) { if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) { return true; } return services.mTelephonyManager.getDataEnabled(subId); } protected boolean isBandwidthControlEnabled() { try { return services.mNetworkService.isBandwidthControlEnabled(); } catch (RemoteException e) { Log.w(TAG, "problem talking with INetworkManagementService: ", e); return false; } } }
src/com/android/settings/datausage/DataUsageList.java +17 −4 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ import android.view.View.AccessibilityDelegate; import android.view.accessibility.AccessibilityEvent; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ImageView; import android.widget.Spinner; import androidx.annotation.NonNull; Loading @@ -46,6 +45,7 @@ import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.core.SubSettingLauncher; import com.android.settings.datausage.CycleAdapter.SpinnerInterface; import com.android.settings.datausage.lib.BillingCycleRepository; import com.android.settings.network.MobileDataEnabledListener; import com.android.settings.network.MobileNetworkRepository; import com.android.settings.widget.LoadingViewController; Loading Loading @@ -108,6 +108,7 @@ public class DataUsageList extends DataUsageBaseFragment private MobileNetworkRepository mMobileNetworkRepository; private SubscriptionInfoEntity mSubscriptionInfoEntity; private DataUsageListAppsController mDataUsageListAppsController; private BillingCycleRepository mBillingCycleRepository; @Override public int getMetricsCategory() { Loading @@ -125,7 +126,8 @@ public class DataUsageList extends DataUsageBaseFragment } final Activity activity = getActivity(); if (!isBandwidthControlEnabled()) { mBillingCycleRepository = createBillingCycleRepository(); if (!mBillingCycleRepository.isBandwidthControlEnabled()) { Log.w(TAG, "No bandwidth control; leaving"); activity.finish(); return; Loading @@ -146,6 +148,12 @@ public class DataUsageList extends DataUsageBaseFragment mDataUsageListAppsController.init(mTemplate); } @VisibleForTesting @NonNull BillingCycleRepository createBillingCycleRepository() { return new BillingCycleRepository(requireContext()); } @Override public void onViewCreated(@NonNull View v, Bundle savedInstanceState) { super.onViewCreated(v, savedInstanceState); Loading Loading @@ -286,10 +294,9 @@ public class DataUsageList extends DataUsageBaseFragment final NetworkPolicy policy = services.mPolicyEditor.getPolicy(mTemplate); final View configureButton = mHeader.findViewById(R.id.filter_settings); //SUB SELECT if (isNetworkPolicyModifiable(policy, mSubId) && isMobileDataAvailable(mSubId)) { if (policy != null && isMobileDataAvailable()) { mChart.setNetworkPolicy(policy); configureButton.setVisibility(View.VISIBLE); ((ImageView) configureButton).setColorFilter(android.R.color.white); } else { // controls are disabled; don't bind warning/limit sweeps mChart.setNetworkPolicy(null); Loading @@ -304,6 +311,12 @@ public class DataUsageList extends DataUsageBaseFragment updateSelectedCycle(); } private boolean isMobileDataAvailable() { return mBillingCycleRepository.isModifiable(mSubId) && SubscriptionManager.from(requireContext()) .getActiveSubscriptionInfo(mSubId) != null; } /** * Updates the chart and detail data when initial loaded or selected cycle changed. */ Loading
src/com/android/settings/datausage/DataUsageListAppsController.kt +4 −2 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.app.ActivityManager import android.content.Context import android.net.NetworkTemplate import android.os.Bundle import androidx.annotation.OpenForTesting import androidx.annotation.VisibleForTesting import androidx.lifecycle.LifecycleCoroutineScope import androidx.lifecycle.LifecycleOwner Loading @@ -37,7 +38,8 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext class DataUsageListAppsController(context: Context, preferenceKey: String) : @OpenForTesting open class DataUsageListAppsController(context: Context, preferenceKey: String) : BasePreferenceController(context, preferenceKey) { private val uidDetailProvider = UidDetailProvider(context) Loading @@ -48,7 +50,7 @@ class DataUsageListAppsController(context: Context, preferenceKey: String) : private var cycleData: List<NetworkCycleChartData>? = null fun init(template: NetworkTemplate) { open fun init(template: NetworkTemplate) { this.template = template repository = AppDataUsageRepository( context = mContext, Loading
src/com/android/settings/datausage/DataUsageSummary.java +1 −1 Original line number Diff line number Diff line Loading @@ -103,7 +103,7 @@ public class DataUsageSummary extends DataUsageBaseFragment implements DataUsage mDefaultTemplate = DataUsageUtils.getDefaultTemplate(context, defaultSubId); mSummaryPreference = findPreference(KEY_STATUS_HEADER); if (!hasMobileData || !isAdmin()) { if (!hasMobileData || !UserManager.get(context).isAdminUser()) { removePreference(KEY_RESTRICT_BACKGROUND); } boolean hasWifiRadio = DataUsageUtils.hasWifiRadio(context); Loading