Merge "Fix #62545908 : 'metered' network jobs run without network" into oc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
796b510787
@@ -698,7 +698,8 @@ public final class JobStatus {
|
|||||||
static final int CONSTRAINTS_OF_INTEREST =
|
static final int CONSTRAINTS_OF_INTEREST =
|
||||||
CONSTRAINT_CHARGING | CONSTRAINT_BATTERY_NOT_LOW | CONSTRAINT_STORAGE_NOT_LOW |
|
CONSTRAINT_CHARGING | CONSTRAINT_BATTERY_NOT_LOW | CONSTRAINT_STORAGE_NOT_LOW |
|
||||||
CONSTRAINT_TIMING_DELAY |
|
CONSTRAINT_TIMING_DELAY |
|
||||||
CONSTRAINT_CONNECTIVITY | CONSTRAINT_UNMETERED | CONSTRAINT_NOT_ROAMING |
|
CONSTRAINT_CONNECTIVITY | CONSTRAINT_UNMETERED |
|
||||||
|
CONSTRAINT_NOT_ROAMING | CONSTRAINT_METERED |
|
||||||
CONSTRAINT_IDLE | CONSTRAINT_CONTENT_TRIGGER;
|
CONSTRAINT_IDLE | CONSTRAINT_CONTENT_TRIGGER;
|
||||||
|
|
||||||
// Soft override covers all non-"functional" constraints
|
// Soft override covers all non-"functional" constraints
|
||||||
@@ -865,6 +866,9 @@ public final class JobStatus {
|
|||||||
if ((constraints&CONSTRAINT_NOT_ROAMING) != 0) {
|
if ((constraints&CONSTRAINT_NOT_ROAMING) != 0) {
|
||||||
pw.print(" NOT_ROAMING");
|
pw.print(" NOT_ROAMING");
|
||||||
}
|
}
|
||||||
|
if ((constraints&CONSTRAINT_METERED) != 0) {
|
||||||
|
pw.print(" METERED");
|
||||||
|
}
|
||||||
if ((constraints&CONSTRAINT_APP_NOT_IDLE) != 0) {
|
if ((constraints&CONSTRAINT_APP_NOT_IDLE) != 0) {
|
||||||
pw.print(" APP_NOT_IDLE");
|
pw.print(" APP_NOT_IDLE");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,10 +73,18 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal">
|
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"
|
<RadioButton android:id="@+id/checkbox_any"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/any"/>
|
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"
|
<RadioButton android:id="@+id/checkbox_unmetered"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|||||||
@@ -30,7 +30,9 @@ limitations under the License.
|
|||||||
<string name="persisted_caption">Persisted:</string>
|
<string name="persisted_caption">Persisted:</string>
|
||||||
<string name="constraints">Constraints</string>
|
<string name="constraints">Constraints</string>
|
||||||
<string name="connectivity">Connectivity:</string>
|
<string name="connectivity">Connectivity:</string>
|
||||||
|
<string name="none">None</string>
|
||||||
<string name="any">Any</string>
|
<string name="any">Any</string>
|
||||||
|
<string name="metered">Metered</string>
|
||||||
<string name="unmetered">WiFi</string>
|
<string name="unmetered">WiFi</string>
|
||||||
<string name="timing">Timing:</string>
|
<string name="timing">Timing:</string>
|
||||||
<string name="delay">Delay:</string>
|
<string name="delay">Delay:</string>
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ public class MainActivity extends Activity {
|
|||||||
mDeadlineEditText = findViewById(R.id.deadline_time);
|
mDeadlineEditText = findViewById(R.id.deadline_time);
|
||||||
mWiFiConnectivityRadioButton = findViewById(R.id.checkbox_unmetered);
|
mWiFiConnectivityRadioButton = findViewById(R.id.checkbox_unmetered);
|
||||||
mAnyConnectivityRadioButton = findViewById(R.id.checkbox_any);
|
mAnyConnectivityRadioButton = findViewById(R.id.checkbox_any);
|
||||||
|
mCellConnectivityRadioButton = findViewById(R.id.checkbox_metered);
|
||||||
mRequiresChargingCheckBox = findViewById(R.id.checkbox_charging);
|
mRequiresChargingCheckBox = findViewById(R.id.checkbox_charging);
|
||||||
mRequiresIdleCheckbox = findViewById(R.id.checkbox_idle);
|
mRequiresIdleCheckbox = findViewById(R.id.checkbox_idle);
|
||||||
mIsPersistedCheckbox = findViewById(R.id.checkbox_persisted);
|
mIsPersistedCheckbox = findViewById(R.id.checkbox_persisted);
|
||||||
@@ -85,6 +86,7 @@ public class MainActivity extends Activity {
|
|||||||
EditText mDeadlineEditText;
|
EditText mDeadlineEditText;
|
||||||
RadioButton mWiFiConnectivityRadioButton;
|
RadioButton mWiFiConnectivityRadioButton;
|
||||||
RadioButton mAnyConnectivityRadioButton;
|
RadioButton mAnyConnectivityRadioButton;
|
||||||
|
RadioButton mCellConnectivityRadioButton;
|
||||||
CheckBox mRequiresChargingCheckBox;
|
CheckBox mRequiresChargingCheckBox;
|
||||||
CheckBox mRequiresIdleCheckbox;
|
CheckBox mRequiresIdleCheckbox;
|
||||||
CheckBox mIsPersistedCheckbox;
|
CheckBox mIsPersistedCheckbox;
|
||||||
@@ -141,9 +143,12 @@ public class MainActivity extends Activity {
|
|||||||
builder.setOverrideDeadline(Long.parseLong(deadline) * 1000);
|
builder.setOverrideDeadline(Long.parseLong(deadline) * 1000);
|
||||||
}
|
}
|
||||||
boolean requiresUnmetered = mWiFiConnectivityRadioButton.isChecked();
|
boolean requiresUnmetered = mWiFiConnectivityRadioButton.isChecked();
|
||||||
|
boolean requiresMetered = mCellConnectivityRadioButton.isChecked();
|
||||||
boolean requiresAnyConnectivity = mAnyConnectivityRadioButton.isChecked();
|
boolean requiresAnyConnectivity = mAnyConnectivityRadioButton.isChecked();
|
||||||
if (requiresUnmetered) {
|
if (requiresUnmetered) {
|
||||||
builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED);
|
builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED);
|
||||||
|
} else if (requiresMetered) {
|
||||||
|
builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_METERED);
|
||||||
} else if (requiresAnyConnectivity) {
|
} else if (requiresAnyConnectivity) {
|
||||||
builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
|
builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -81,7 +81,8 @@ public class TestJobService extends JobService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onStartJob(JobParameters params) {
|
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++;
|
currentId++;
|
||||||
jobParamsMap.put(currentId, params);
|
jobParamsMap.put(currentId, params);
|
||||||
final int currId = this.currentId;
|
final int currId = this.currentId;
|
||||||
|
|||||||
Reference in New Issue
Block a user