[Settings] Adopt TelephonyBasePreferenceController to data usage
Adopt TelephonyBasePreferenceController in order to better support DSDS. Bug: 151751844 Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=DataUsageSummaryPreferenceControllerTest Change-Id: I502b93f01b289b72989ad3167131cc0c598b1583
This commit is contained in:
@@ -38,9 +38,9 @@ import androidx.recyclerview.widget.RecyclerView;
|
|||||||
|
|
||||||
import com.android.internal.util.CollectionUtils;
|
import com.android.internal.util.CollectionUtils;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.BasePreferenceController;
|
|
||||||
import com.android.settings.core.PreferenceControllerMixin;
|
import com.android.settings.core.PreferenceControllerMixin;
|
||||||
import com.android.settings.network.ProxySubscriptionManager;
|
import com.android.settings.network.ProxySubscriptionManager;
|
||||||
|
import com.android.settings.network.telephony.TelephonyBasePreferenceController;
|
||||||
import com.android.settings.widget.EntityHeaderController;
|
import com.android.settings.widget.EntityHeaderController;
|
||||||
import com.android.settingslib.NetworkPolicyEditor;
|
import com.android.settingslib.NetworkPolicyEditor;
|
||||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||||
@@ -55,7 +55,7 @@ import java.util.List;
|
|||||||
* subscriptions framework API if available. The controller reads subscription information from the
|
* subscriptions framework API if available. The controller reads subscription information from the
|
||||||
* framework and falls back to legacy usage data if none are available.
|
* framework and falls back to legacy usage data if none are available.
|
||||||
*/
|
*/
|
||||||
public class DataUsageSummaryPreferenceController extends BasePreferenceController
|
public class DataUsageSummaryPreferenceController extends TelephonyBasePreferenceController
|
||||||
implements PreferenceControllerMixin, LifecycleObserver, OnStart {
|
implements PreferenceControllerMixin, LifecycleObserver, OnStart {
|
||||||
|
|
||||||
private static final String TAG = "DataUsageController";
|
private static final String TAG = "DataUsageController";
|
||||||
@@ -64,7 +64,6 @@ public class DataUsageSummaryPreferenceController extends BasePreferenceControll
|
|||||||
private static final float RELATIVE_SIZE_LARGE = 1.25f * 1.25f; // (1/0.8)^2
|
private static final float RELATIVE_SIZE_LARGE = 1.25f * 1.25f; // (1/0.8)^2
|
||||||
private static final float RELATIVE_SIZE_SMALL = 1.0f / RELATIVE_SIZE_LARGE; // 0.8^2
|
private static final float RELATIVE_SIZE_SMALL = 1.0f / RELATIVE_SIZE_LARGE; // 0.8^2
|
||||||
|
|
||||||
private final Activity mActivity;
|
|
||||||
private final EntityHeaderController mEntityHeaderController;
|
private final EntityHeaderController mEntityHeaderController;
|
||||||
private final Lifecycle mLifecycle;
|
private final Lifecycle mLifecycle;
|
||||||
private final PreferenceFragmentCompat mFragment;
|
private final PreferenceFragmentCompat mFragment;
|
||||||
@@ -97,8 +96,6 @@ public class DataUsageSummaryPreferenceController extends BasePreferenceControll
|
|||||||
private long mCycleStart;
|
private long mCycleStart;
|
||||||
/** The ending time of the billing cycle in ms since the epoch */
|
/** The ending time of the billing cycle in ms since the epoch */
|
||||||
private long mCycleEnd;
|
private long mCycleEnd;
|
||||||
/** The subscription that we should show usage for. */
|
|
||||||
private int mSubscriptionId;
|
|
||||||
|
|
||||||
private Intent mManageSubscriptionIntent;
|
private Intent mManageSubscriptionIntent;
|
||||||
|
|
||||||
@@ -106,7 +103,6 @@ public class DataUsageSummaryPreferenceController extends BasePreferenceControll
|
|||||||
Lifecycle lifecycle, PreferenceFragmentCompat fragment, int subscriptionId) {
|
Lifecycle lifecycle, PreferenceFragmentCompat fragment, int subscriptionId) {
|
||||||
super(activity, KEY);
|
super(activity, KEY);
|
||||||
|
|
||||||
mActivity = activity;
|
|
||||||
mEntityHeaderController = EntityHeaderController.newInstance(activity,
|
mEntityHeaderController = EntityHeaderController.newInstance(activity,
|
||||||
fragment, null);
|
fragment, null);
|
||||||
mLifecycle = lifecycle;
|
mLifecycle = lifecycle;
|
||||||
@@ -119,18 +115,18 @@ public class DataUsageSummaryPreferenceController extends BasePreferenceControll
|
|||||||
* @param subscriptionId is the target subscriptionId
|
* @param subscriptionId is the target subscriptionId
|
||||||
*/
|
*/
|
||||||
public void init(int subscriptionId) {
|
public void init(int subscriptionId) {
|
||||||
mSubscriptionId = subscriptionId;
|
mSubId = subscriptionId;
|
||||||
|
|
||||||
mDefaultTemplate = DataUsageUtils.getDefaultTemplate(mContext, mSubscriptionId);
|
mDefaultTemplate = DataUsageUtils.getDefaultTemplate(mContext, mSubId);
|
||||||
final NetworkPolicyManager policyManager =
|
final NetworkPolicyManager policyManager =
|
||||||
mContext.getSystemService(NetworkPolicyManager.class);
|
mContext.getSystemService(NetworkPolicyManager.class);
|
||||||
mPolicyEditor = new NetworkPolicyEditor(policyManager);
|
mPolicyEditor = new NetworkPolicyEditor(policyManager);
|
||||||
|
|
||||||
mHasMobileData = SubscriptionManager.isValidSubscriptionId(mSubscriptionId)
|
mHasMobileData = SubscriptionManager.isValidSubscriptionId(mSubId)
|
||||||
&& DataUsageUtils.hasMobileData(mContext);
|
&& DataUsageUtils.hasMobileData(mContext);
|
||||||
|
|
||||||
mDataUsageController = new DataUsageController(mContext);
|
mDataUsageController = new DataUsageController(mContext);
|
||||||
mDataUsageController.setSubscriptionId(mSubscriptionId);
|
mDataUsageController.setSubscriptionId(mSubId);
|
||||||
mDataInfoController = new DataUsageInfoController();
|
mDataInfoController = new DataUsageInfoController();
|
||||||
|
|
||||||
if (mHasMobileData) {
|
if (mHasMobileData) {
|
||||||
@@ -161,18 +157,17 @@ public class DataUsageSummaryPreferenceController extends BasePreferenceControll
|
|||||||
mPolicyEditor = policyEditor;
|
mPolicyEditor = policyEditor;
|
||||||
mDataUsageTemplate = dataUsageTemplate;
|
mDataUsageTemplate = dataUsageTemplate;
|
||||||
mHasMobileData = true;
|
mHasMobileData = true;
|
||||||
mActivity = activity;
|
|
||||||
mLifecycle = lifecycle;
|
mLifecycle = lifecycle;
|
||||||
mEntityHeaderController = entityHeaderController;
|
mEntityHeaderController = entityHeaderController;
|
||||||
mFragment = fragment;
|
mFragment = fragment;
|
||||||
mSubscriptionId = subscriptionId;
|
mSubId = subscriptionId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onStart() {
|
public void onStart() {
|
||||||
RecyclerView view = mFragment.getListView();
|
RecyclerView view = mFragment.getListView();
|
||||||
mEntityHeaderController.setRecyclerView(view, mLifecycle);
|
mEntityHeaderController.setRecyclerView(view, mLifecycle);
|
||||||
mEntityHeaderController.styleActionBar(mActivity);
|
mEntityHeaderController.styleActionBar((Activity) mContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
@@ -193,7 +188,7 @@ public class DataUsageSummaryPreferenceController extends BasePreferenceControll
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getAvailabilityStatus() {
|
public int getAvailabilityStatus(int subId) {
|
||||||
return hasSim()
|
return hasSim()
|
||||||
|| DataUsageUtils.hasWifiRadio(mContext) ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
|
|| DataUsageUtils.hasWifiRadio(mContext) ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
|
||||||
}
|
}
|
||||||
@@ -203,7 +198,7 @@ public class DataUsageSummaryPreferenceController extends BasePreferenceControll
|
|||||||
DataUsageSummaryPreference summaryPreference = (DataUsageSummaryPreference) preference;
|
DataUsageSummaryPreference summaryPreference = (DataUsageSummaryPreference) preference;
|
||||||
|
|
||||||
final DataUsageController.DataUsageInfo info;
|
final DataUsageController.DataUsageInfo info;
|
||||||
final SubscriptionInfo subInfo = getSubscriptionInfo(mSubscriptionId);
|
final SubscriptionInfo subInfo = getSubscriptionInfo(mSubId);
|
||||||
if (hasSim()) {
|
if (hasSim()) {
|
||||||
info = mDataUsageController.getDataUsageInfo(mDefaultTemplate);
|
info = mDataUsageController.getDataUsageInfo(mDefaultTemplate);
|
||||||
mDataInfoController.updateDataLimit(info, mPolicyEditor.getPolicy(mDefaultTemplate));
|
mDataInfoController.updateDataLimit(info, mPolicyEditor.getPolicy(mDefaultTemplate));
|
||||||
@@ -276,7 +271,7 @@ public class DataUsageSummaryPreferenceController extends BasePreferenceControll
|
|||||||
|
|
||||||
if (subInfo != null && mHasMobileData) {
|
if (subInfo != null && mHasMobileData) {
|
||||||
mCarrierName = subInfo.getCarrierName();
|
mCarrierName = subInfo.getCarrierName();
|
||||||
final List<SubscriptionPlan> plans = getSubscriptionPlans(mSubscriptionId);
|
final List<SubscriptionPlan> plans = getSubscriptionPlans(mSubId);
|
||||||
final SubscriptionPlan primaryPlan = getPrimaryPlan(plans);
|
final SubscriptionPlan primaryPlan = getPrimaryPlan(plans);
|
||||||
|
|
||||||
if (primaryPlan != null) {
|
if (primaryPlan != null) {
|
||||||
@@ -296,8 +291,8 @@ public class DataUsageSummaryPreferenceController extends BasePreferenceControll
|
|||||||
mSnapshotTime = primaryPlan.getDataUsageTime();
|
mSnapshotTime = primaryPlan.getDataUsageTime();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mManageSubscriptionIntent = createManageSubscriptionIntent(mSubscriptionId);
|
mManageSubscriptionIntent = createManageSubscriptionIntent(mSubId);
|
||||||
Log.i(TAG, "Have " + mDataplanCount + " plans, dflt sub-id " + mSubscriptionId
|
Log.i(TAG, "Have " + mDataplanCount + " plans, dflt sub-id " + mSubId
|
||||||
+ ", intent " + mManageSubscriptionIntent);
|
+ ", intent " + mManageSubscriptionIntent);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -334,7 +329,7 @@ public class DataUsageSummaryPreferenceController extends BasePreferenceControll
|
|||||||
intent.setPackage(owner);
|
intent.setPackage(owner);
|
||||||
intent.putExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX, subId);
|
intent.putExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX, subId);
|
||||||
|
|
||||||
if (mActivity.getPackageManager().queryIntentActivities(intent,
|
if (mContext.getPackageManager().queryIntentActivities(intent,
|
||||||
PackageManager.MATCH_DEFAULT_ONLY).isEmpty()) {
|
PackageManager.MATCH_DEFAULT_ONLY).isEmpty()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user