blob: 0bfca57907e01aa26e5e016d99332fd17e6b731a [file] [log] [blame]
package com.android.clockwork.systemstatedisplay;
import android.content.Context;
import com.android.internal.annotations.VisibleForTesting;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
/**
* A class that provides the available {@link SystemState}s from available {@link
* SystemStateProvider}s.
*/
class SystemStateProviders {
private final List<SystemStateProvider> mProviders;
@VisibleForTesting
SystemStateProviders(List<SystemStateProvider> providers) {
mProviders = providers;
}
SystemStateProviders(Context context) {
mProviders = new ArrayList<>();
mProviders.add(new PssProvider(context));
mProviders.add(new FreeMemoryProvider(context));
}
/**
* Returns a {@link List} of{@link SystemState}s from all the available {@link
* SystemStateProvider}s.
*/
List<SystemState> getSystemStates() {
return mProviders.stream()
.map(provider -> provider.getSystemState())
.filter(state -> !state.equals(SystemState.INVALID_STATE))
.sorted(Comparator.comparing(SystemState::getTitle))
.collect(Collectors.toList());
}
}