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

Commit 976995fa authored by cosmohsieh's avatar cosmohsieh
Browse files

[Passpointv2] Implement DataUsage header for Wi-Fi detail fragment

Change header to a data usage chart of the specified Wi-Fi network.

Bug: 124700353
Test: make RunSettingsRoboTests -j32 ROBOTEST_FILTER=com.android.settings
Change-Id: Ide08ffd5e97ced5fe54707562690155414598dac
parent 3d5ef5ec
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -10756,7 +10756,7 @@
    <string name="media_output_panel_summary_of_playing_device">Currently playing on <xliff:g id="device_name" example="Bose headphone">%1$s</xliff:g></string>
    <!-- Message for forget passpoint dialog [CHAR LIMIT=none] -->
    <string name="forget_passpoint_dialog_message">Your subscription with this provider may be cancelled. Recurring subscriptions will not be cancelled. For more information, check with your provider.</string>
    <string name="forget_passpoint_dialog_message">You may lose access to any remaining time or data. Check with your provider before removing.</string>
    <!-- Keywords for Content Capture feature [CHAR_LIMIT=32] -->
    <string name="keywords_content_capture">content capture</string>
@@ -10764,5 +10764,4 @@
    <string name="content_capture">Content Capture</string>
    <!-- Description of the 'Content Capture' feature toggle in the Settings -> Privacy screen [CHAR LIMIT=NONE]-->
    <string name="content_capture_summary">Allow Android to save information seen on your screen or heard in video or audio content. Android makes helpful suggestions based on your device activity.</string>
</resources>
+5 −0
Original line number Diff line number Diff line
@@ -26,6 +26,11 @@
        android:order="-10000"
        settings:allowDividerBelow="true"/>

    <com.android.settings.datausage.DataUsageSummaryPreference
        android:key="status_header"
        android:selectable="false"
        settings:isPreferenceVisible="false"/>

    <!-- Buttons -->
    <com.android.settingslib.widget.ActionButtonsPreference
        android:key="buttons"
+3 −0
Original line number Diff line number Diff line
@@ -26,4 +26,7 @@ public class FeatureFlags {
    public static final String NETWORK_INTERNET_V2 = "settings_network_and_internet_v2";
    public static final String SLICE_INJECTION = "settings_slice_injection";
    public static final String MAINLINE_MODULE = "settings_mainline_module";
    public static final String WIFI_DETAILS_SAVED_SCREEN = "settings_wifi_details_saved_screen";
    public static final String WIFI_DETAILS_DATAUSAGE_HEADER =
            "settings_wifi_details_datausage_header";
}
+22 −2
Original line number Diff line number Diff line
@@ -69,6 +69,8 @@ public class DataUsageSummaryPreference extends Preference {
    private boolean mDefaultTextColorSet;
    private int mDefaultTextColor;
    private int mNumPlans;
    /** The specified un-initialized value for cycle time */
    private final long CYCLE_TIME_UNINITIAL_VALUE = 0;
    /** The ending time of the billing cycle in milliseconds since epoch. */
    private long mCycleEndTimeMs;
    /** The time of the last update in standard milliseconds since the epoch */
@@ -94,6 +96,7 @@ public class DataUsageSummaryPreference extends Preference {
    /** WiFi only mode */
    private boolean mWifiMode;
    private String mUsagePeriod;
    private boolean mSingleWifi;    // Shows only one specified WiFi network usage

    public DataUsageSummaryPreference(Context context, AttributeSet attrs) {
        super(context, attrs);
@@ -142,9 +145,10 @@ public class DataUsageSummaryPreference extends Preference {
        notifyChanged();
    }

    void setWifiMode(boolean isWifiMode, String usagePeriod) {
    void setWifiMode(boolean isWifiMode, String usagePeriod, boolean isSingleWifi) {
        mWifiMode = isWifiMode;
        mUsagePeriod = usagePeriod;
        mSingleWifi = isSingleWifi;
        notifyChanged();
    }

@@ -171,7 +175,16 @@ public class DataUsageSummaryPreference extends Preference {
        Button launchButton = (Button) holder.findViewById(R.id.launch_mdp_app_button);
        TextView limitInfo = (TextView) holder.findViewById(R.id.data_limits);

        if (mWifiMode) {
        if (mWifiMode && mSingleWifi) {
            updateCycleTimeText(holder);

            usageTitle.setVisibility(View.GONE);
            launchButton.setVisibility(View.GONE);
            carrierInfo.setVisibility(View.GONE);

            limitInfo.setVisibility(TextUtils.isEmpty(mLimitInfoText) ? View.GONE : View.VISIBLE);
            limitInfo.setText(mLimitInfoText);
        } else if (mWifiMode) {
            usageTitle.setText(R.string.data_usage_wifi_title);
            usageTitle.setVisibility(View.VISIBLE);
            TextView cycleTime = (TextView) holder.findViewById(R.id.cycle_left_time);
@@ -265,6 +278,13 @@ public class DataUsageSummaryPreference extends Preference {
    private void updateCycleTimeText(PreferenceViewHolder holder) {
        TextView cycleTime = (TextView) holder.findViewById(R.id.cycle_left_time);

        // Takes zero as a special case which value is never set.
        if (mCycleEndTimeMs == CYCLE_TIME_UNINITIAL_VALUE) {
            cycleTime.setVisibility(View.GONE);
            return;
        }

        cycleTime.setVisibility(View.VISIBLE);
        long millisLeft = mCycleEndTimeMs - System.currentTimeMillis();
        if (millisLeft <= 0) {
            cycleTime.setText(getContext().getString(R.string.billing_cycle_none_left));
+7 −5
Original line number Diff line number Diff line
@@ -65,10 +65,10 @@ public class DataUsageSummaryPreferenceController extends BasePreferenceControll
    private final EntityHeaderController mEntityHeaderController;
    private final Lifecycle mLifecycle;
    private final PreferenceFragmentCompat mFragment;
    private final DataUsageController mDataUsageController;
    private final DataUsageInfoController mDataInfoController;
    protected final DataUsageController mDataUsageController;
    protected final DataUsageInfoController mDataInfoController;
    private final NetworkTemplate mDefaultTemplate;
    private final NetworkPolicyEditor mPolicyEditor;
    protected final NetworkPolicyEditor mPolicyEditor;
    private final int mDataUsageTemplate;
    private final boolean mHasMobileData;
    private final SubscriptionManager mSubscriptionManager;
@@ -200,11 +200,13 @@ public class DataUsageSummaryPreferenceController extends BasePreferenceControll
        if (DataUsageUtils.hasSim(mActivity)) {
            info = mDataUsageController.getDataUsageInfo(mDefaultTemplate);
            mDataInfoController.updateDataLimit(info, mPolicyEditor.getPolicy(mDefaultTemplate));
            summaryPreference.setWifiMode(/* isWifiMode */ false, /* usagePeriod */ null);
            summaryPreference.setWifiMode(/* isWifiMode */ false,
                    /* usagePeriod */ null, /* isSingleWifi */ false);
        } else {
            info = mDataUsageController.getDataUsageInfo(
                    NetworkTemplate.buildTemplateWifiWildcard());
            summaryPreference.setWifiMode(/* isWifiMode */ true, /* usagePeriod */ info.period);
            summaryPreference.setWifiMode(/* isWifiMode */ true, /* usagePeriod */
                    info.period, /* isSingleWifi */ false);
            summaryPreference.setLimitInfo(null);
            summaryPreference.setUsageNumbers(info.usageLevel,
                    /* dataPlanSize */ -1L,
Loading