mirror of
https://github.com/androidx/media.git
synced 2025-05-03 21:57:46 +08:00
Make RequirementsWatcher notify listener on not met requirements change
PiperOrigin-RevId: 225557638
This commit is contained in:
parent
28dca0b339
commit
9198e4cf7a
@ -44,14 +44,15 @@ public final class RequirementsWatcher {
|
|||||||
public interface Listener {
|
public interface Listener {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when the requirements are met.
|
* Called when all of the requirements are met.
|
||||||
*
|
*
|
||||||
* @param requirementsWatcher Calling instance.
|
* @param requirementsWatcher Calling instance.
|
||||||
*/
|
*/
|
||||||
void requirementsMet(RequirementsWatcher requirementsWatcher);
|
void requirementsMet(RequirementsWatcher requirementsWatcher);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when the requirements are not met.
|
* Called when there is at least one not met requirement and there is a change on which of the
|
||||||
|
* requirements are not met.
|
||||||
*
|
*
|
||||||
* @param requirementsWatcher Calling instance.
|
* @param requirementsWatcher Calling instance.
|
||||||
*/
|
*/
|
||||||
@ -65,7 +66,7 @@ public final class RequirementsWatcher {
|
|||||||
private final Requirements requirements;
|
private final Requirements requirements;
|
||||||
private DeviceStatusChangeReceiver receiver;
|
private DeviceStatusChangeReceiver receiver;
|
||||||
|
|
||||||
private boolean requirementsWereMet;
|
private int notMetRequirements;
|
||||||
private CapabilityValidatedCallback networkCallback;
|
private CapabilityValidatedCallback networkCallback;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -87,7 +88,7 @@ public final class RequirementsWatcher {
|
|||||||
public void start() {
|
public void start() {
|
||||||
Assertions.checkNotNull(Looper.myLooper());
|
Assertions.checkNotNull(Looper.myLooper());
|
||||||
|
|
||||||
requirementsWereMet = requirements.checkRequirements(context);
|
notMetRequirements = requirements.getNotMetRequirements(context);
|
||||||
|
|
||||||
IntentFilter filter = new IntentFilter();
|
IntentFilter filter = new IntentFilter();
|
||||||
if (requirements.getRequiredNetworkType() != Requirements.NETWORK_TYPE_NONE) {
|
if (requirements.getRequiredNetworkType() != Requirements.NETWORK_TYPE_NONE) {
|
||||||
@ -159,13 +160,13 @@ public final class RequirementsWatcher {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void checkRequirements() {
|
private void checkRequirements() {
|
||||||
boolean requirementsAreMet = requirements.checkRequirements(context);
|
int notMetRequirements = requirements.getNotMetRequirements(context);
|
||||||
if (requirementsAreMet == requirementsWereMet) {
|
if (this.notMetRequirements == notMetRequirements) {
|
||||||
logd("requirementsAreMet is still " + requirementsAreMet);
|
logd("notMetRequirements hasn't changed: " + notMetRequirements);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
requirementsWereMet = requirementsAreMet;
|
this.notMetRequirements = notMetRequirements;
|
||||||
if (requirementsAreMet) {
|
if (notMetRequirements == 0) {
|
||||||
logd("start job");
|
logd("start job");
|
||||||
listener.requirementsMet(this);
|
listener.requirementsMet(this);
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user