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

Commit 4c8dccf7 authored by Christopher Tate's avatar Christopher Tate Committed by android-build-merger
Browse files

Merge "Fix #62545908 : 'metered' network jobs run without network" into oc-dev

am: 796b5107

Change-Id: I0659c68ece4fef6d3e93e436a35c960dc341618b
parents 26cafd3e 796b5107
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -698,7 +698,8 @@ public final class JobStatus {
    static final int CONSTRAINTS_OF_INTEREST =
            CONSTRAINT_CHARGING | CONSTRAINT_BATTERY_NOT_LOW | CONSTRAINT_STORAGE_NOT_LOW |
            CONSTRAINT_TIMING_DELAY |
            CONSTRAINT_CONNECTIVITY | CONSTRAINT_UNMETERED | CONSTRAINT_NOT_ROAMING |
            CONSTRAINT_CONNECTIVITY | CONSTRAINT_UNMETERED |
            CONSTRAINT_NOT_ROAMING | CONSTRAINT_METERED |
            CONSTRAINT_IDLE | CONSTRAINT_CONTENT_TRIGGER;

    // Soft override covers all non-"functional" constraints
@@ -865,6 +866,9 @@ public final class JobStatus {
        if ((constraints&CONSTRAINT_NOT_ROAMING) != 0) {
            pw.print(" NOT_ROAMING");
        }
        if ((constraints&CONSTRAINT_METERED) != 0) {
            pw.print(" METERED");
        }
        if ((constraints&CONSTRAINT_APP_NOT_IDLE) != 0) {
            pw.print(" APP_NOT_IDLE");
        }
+8 −0
Original line number Diff line number Diff line
@@ -73,10 +73,18 @@
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">
                    <RadioButton android:id="@+id/checkbox_none"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="@string/none"/>
                    <RadioButton android:id="@+id/checkbox_any"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="@string/any"/>
                    <RadioButton android:id="@+id/checkbox_metered"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="@string/metered"/>
                    <RadioButton android:id="@+id/checkbox_unmetered"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
+2 −0
Original line number Diff line number Diff line
@@ -30,7 +30,9 @@ limitations under the License.
    <string name="persisted_caption">Persisted:</string>
    <string name="constraints">Constraints</string>
    <string name="connectivity">Connectivity:</string>
    <string name="none">None</string>
    <string name="any">Any</string>
    <string name="metered">Metered</string>
    <string name="unmetered">WiFi</string>
    <string name="timing">Timing:</string>
    <string name="delay">Delay:</string>
+5 −0
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@ public class MainActivity extends Activity {
        mDeadlineEditText = findViewById(R.id.deadline_time);
        mWiFiConnectivityRadioButton = findViewById(R.id.checkbox_unmetered);
        mAnyConnectivityRadioButton = findViewById(R.id.checkbox_any);
        mCellConnectivityRadioButton = findViewById(R.id.checkbox_metered);
        mRequiresChargingCheckBox = findViewById(R.id.checkbox_charging);
        mRequiresIdleCheckbox = findViewById(R.id.checkbox_idle);
        mIsPersistedCheckbox = findViewById(R.id.checkbox_persisted);
@@ -85,6 +86,7 @@ public class MainActivity extends Activity {
    EditText mDeadlineEditText;
    RadioButton mWiFiConnectivityRadioButton;
    RadioButton mAnyConnectivityRadioButton;
    RadioButton mCellConnectivityRadioButton;
    CheckBox mRequiresChargingCheckBox;
    CheckBox mRequiresIdleCheckbox;
    CheckBox mIsPersistedCheckbox;
@@ -141,9 +143,12 @@ public class MainActivity extends Activity {
            builder.setOverrideDeadline(Long.parseLong(deadline) * 1000);
        }
        boolean requiresUnmetered = mWiFiConnectivityRadioButton.isChecked();
        boolean requiresMetered = mCellConnectivityRadioButton.isChecked();
        boolean requiresAnyConnectivity = mAnyConnectivityRadioButton.isChecked();
        if (requiresUnmetered) {
            builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED);
        } else if (requiresMetered) {
            builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_METERED);
        } else if (requiresAnyConnectivity) {
            builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
        }
+2 −1
Original line number Diff line number Diff line
@@ -81,7 +81,8 @@ public class TestJobService extends JobService {

    @Override
    public boolean onStartJob(JobParameters params) {
        Log.i(TAG, "on start job: " + params.getJobId());
        Log.i(TAG, "on start job: " + params.getJobId()
                + " deadline?=" + params.isOverrideDeadlineExpired());
        currentId++;
        jobParamsMap.put(currentId, params);
        final int currId = this.currentId;