public final class FolderConfiguration extends java.lang.Object implements java.lang.Comparable<FolderConfiguration>, java.io.Serializable
| Modifier and Type | Field and Description |
|---|---|
static com.google.common.base.Splitter |
QUALIFIER_SPLITTER
Splitter which can be used to split qualifiers.
|
| Constructor and Description |
|---|
FolderConfiguration() |
| Modifier and Type | Method and Description |
|---|---|
void |
add(FolderConfiguration config)
Adds the non-qualifiers from the given config.
|
void |
addQualifier(ResourceQualifier qualifier)
Adds a qualifier to the
FolderConfiguration |
boolean |
any(java.util.function.Predicate<? super ResourceQualifier> predicate)
Returns true if the given predicate matches any non-default qualifier
|
int |
compareTo(FolderConfiguration folderConfig) |
static FolderConfiguration |
copyOf(FolderConfiguration original)
Creates a copy of the given
FolderConfiguration, that can be modified without
affecting the original. |
static FolderConfiguration |
createDefault()
Creates a FolderConfiguration with default qualifiers with no values for all indices.
|
boolean |
equals(java.lang.Object obj) |
<T extends Configurable> |
findMatchingConfigurable(java.util.Collection<T> configurables)
Returns the best matching
Configurable for this configuration. |
<T extends Configurable> |
findMatchingConfigurables(java.util.Collection<T> configurables)
Tries to eliminate as many
Configurables as possible. |
void |
forEach(java.util.function.Consumer<? super ResourceQualifier> action)
Performs the given action on each non-default qualifier
|
static FolderConfiguration |
getConfig(java.lang.Iterable<java.lang.String> folderSegments)
Creates a
FolderConfiguration matching the folder segments. |
static FolderConfiguration |
getConfig(java.lang.String[] folderSegments)
Creates a
FolderConfiguration matching the folder segments. |
static FolderConfiguration |
getConfigForFolder(java.lang.String folderName)
Creates a
FolderConfiguration matching the given folder name. |
static FolderConfiguration |
getConfigForQualifierString(java.lang.String qualifierString)
Creates a
FolderConfiguration matching the given qualifier string
(just the qualifiers; e.g. |
static FolderConfiguration |
getConfigFromQualifiers(java.lang.Iterable<java.lang.String> qualifiers)
Creates a
FolderConfiguration matching the qualifiers. |
static FolderConfiguration |
getConfigFromQualifiers(java.util.Iterator<java.lang.String> qualifiers)
Creates a
FolderConfiguration matching the qualifiers. |
CountryCodeQualifier |
getCountryCodeQualifier() |
DensityQualifier |
getDensityQualifier() |
java.lang.String |
getFolderName(com.android.resources.ResourceFolderType folder)
Returns the name of a folder with the configuration.
|
HighDynamicRangeQualifier |
getHighDynamicRangeQualifier() |
int |
getHighestPriorityQualifier(int startIndex)
Returns the index of the first non null
ResourceQualifier starting at index
startIndex |
ResourceQualifier |
getInvalidQualifier()
Returns the first invalid qualifier, or
null if they are all valid (or if none
exists). |
KeyboardStateQualifier |
getKeyboardStateQualifier() |
static java.util.Set<java.lang.String> |
getLanguageConfigFromQualifiers(java.lang.String qualifierString)
Parse a config line returned by 'am get-config' to extra the language configurations.
|
LayoutDirectionQualifier |
getLayoutDirectionQualifier() |
LocaleQualifier |
getLocaleQualifier() |
NavigationMethodQualifier |
getNavigationMethodQualifier() |
NavigationStateQualifier |
getNavigationStateQualifier() |
NetworkCodeQualifier |
getNetworkCodeQualifier() |
NightModeQualifier |
getNightModeQualifier() |
ResourceQualifier |
getQualifier(int index)
Returns a qualifier by its index.
|
static int |
getQualifierCount()
Returns the number of
ResourceQualifier that make up a Folder configuration. |
ResourceQualifier[] |
getQualifiers()
Returns an array of all the non null qualifiers.
|
java.lang.String |
getQualifierString()
Returns the folder configuration as a qualifier string, e.g.
|
ScreenDimensionQualifier |
getScreenDimensionQualifier() |
ScreenHeightQualifier |
getScreenHeightQualifier() |
ScreenOrientationQualifier |
getScreenOrientationQualifier() |
ScreenRatioQualifier |
getScreenRatioQualifier() |
ScreenRoundQualifier |
getScreenRoundQualifier() |
ScreenSizeQualifier |
getScreenSizeQualifier() |
ScreenWidthQualifier |
getScreenWidthQualifier() |
SmallestScreenWidthQualifier |
getSmallestScreenWidthQualifier() |
TextInputMethodQualifier |
getTextInputMethodQualifier() |
TouchScreenQualifier |
getTouchTypeQualifier() |
UiModeQualifier |
getUiModeQualifier() |
VersionQualifier |
getVersionQualifier() |
WideGamutColorQualifier |
getWideColorGamutQualifier() |
int |
hashCode() |
boolean |
isDefault()
Returns whether the configuration has only default values.
|
boolean |
isMatchFor(FolderConfiguration referenceConfig)
Returns whether the configuration is a match for the given reference config.
|
void |
normalize()
Normalize a folder configuration based on the API level of its qualifiers.
|
void |
removeQualifier(ResourceQualifier qualifier)
Removes a given qualifier from the
FolderConfiguration. |
void |
reset()
Resets the config setting qualifiers at all indices to
null. |
void |
set(FolderConfiguration config)
Sets the config from the qualifiers of a given config.
|
void |
set(FolderConfiguration config,
boolean nonFakeValuesOnly)
Sets the config from the qualifiers of a given config.
|
void |
setCountryCodeQualifier(CountryCodeQualifier qualifier) |
void |
setDensityQualifier(DensityQualifier qualifier) |
void |
setHighDynamicRangeQualifier(HighDynamicRangeQualifier qualifier) |
void |
setKeyboardStateQualifier(KeyboardStateQualifier qualifier) |
void |
setLayoutDirectionQualifier(LayoutDirectionQualifier qualifier) |
void |
setLocaleQualifier(LocaleQualifier qualifier) |
void |
setNavigationMethodQualifier(NavigationMethodQualifier qualifier) |
void |
setNavigationStateQualifier(NavigationStateQualifier qualifier) |
void |
setNetworkCodeQualifier(NetworkCodeQualifier qualifier) |
void |
setNightModeQualifier(NightModeQualifier qualifier) |
void |
setScreenDimensionQualifier(ScreenDimensionQualifier qualifier) |
void |
setScreenHeightQualifier(ScreenHeightQualifier qualifier) |
void |
setScreenOrientationQualifier(ScreenOrientationQualifier qualifier) |
void |
setScreenRatioQualifier(ScreenRatioQualifier qualifier) |
void |
setScreenRoundQualifier(ScreenRoundQualifier qualifier) |
void |
setScreenSizeQualifier(ScreenSizeQualifier qualifier) |
void |
setScreenWidthQualifier(ScreenWidthQualifier qualifier) |
void |
setSmallestScreenWidthQualifier(SmallestScreenWidthQualifier qualifier) |
void |
setTextInputMethodQualifier(TextInputMethodQualifier qualifier) |
void |
setTouchTypeQualifier(TouchScreenQualifier qualifier) |
void |
setUiModeQualifier(UiModeQualifier qualifier) |
void |
setVersionQualifier(VersionQualifier qualifier) |
void |
setWideColorGamutQualifier(WideGamutColorQualifier qualifier) |
void |
substract(FolderConfiguration config)
Removes the qualifiers from the receiver if they are present (and valid)
in the given configuration.
|
java.lang.String |
toDisplayString()
Returns a string valid for display purpose.
|
java.lang.String |
toShortDisplayString()
Returns a string for display purposes which uses only the short names of the qualifiers
|
java.lang.String |
toString()
Returns
toDisplayString(). |
void |
updateScreenWidthAndHeight()
Updates the
SmallestScreenWidthQualifier, ScreenWidthQualifier, and
ScreenHeightQualifier based on the (required) values of
ScreenDimensionQualifier DensityQualifier, and
ScreenOrientationQualifier. |
public static final com.google.common.base.Splitter QUALIFIER_SPLITTER
@Nullable public static FolderConfiguration getConfig(@NonNull java.lang.String[] folderSegments)
FolderConfiguration matching the folder segments.folderSegments - The segments of the folder name. The first segments should contain
the name of the folder@Nullable public static FolderConfiguration getConfig(@NonNull java.lang.Iterable<java.lang.String> folderSegments)
FolderConfiguration matching the folder segments.folderSegments - The segments of the folder name. The first segments should contain
the name of the foldergetConfig(String[])@Nullable public static FolderConfiguration getConfigFromQualifiers(@NonNull java.lang.Iterable<java.lang.String> qualifiers)
FolderConfiguration matching the qualifiers.qualifiers - the qualifiers.@Nullable public static FolderConfiguration getConfigFromQualifiers(@NonNull java.util.Iterator<java.lang.String> qualifiers)
FolderConfiguration matching the qualifiers.qualifiers - An iterator on the qualifiers.@NonNull
public static java.util.Set<java.lang.String> getLanguageConfigFromQualifiers(@NonNull
java.lang.String qualifierString)
The line should be stripped of the 'config: ' prefix.
qualifierString - the list of dash-separated qualifier@Nullable public static FolderConfiguration getConfigForFolder(@NonNull java.lang.String folderName)
FolderConfiguration matching the given folder name.folderName - the folder name@NonNull public static FolderConfiguration copyOf(@NonNull FolderConfiguration original)
FolderConfiguration, that can be modified without
affecting the original.@Nullable public static FolderConfiguration getConfigForQualifierString(@NonNull java.lang.String qualifierString)
FolderConfiguration matching the given qualifier string
(just the qualifiers; e.g. for a folder like "values-en-rUS" this would be "en-rUS").qualifierString - the qualifier stringpublic static int getQualifierCount()
ResourceQualifier that make up a Folder configuration.public void set(@Nullable
FolderConfiguration config)
This is equivalent to set(config, false)
config - the configuration to setset(FolderConfiguration, boolean)public void set(@Nullable
FolderConfiguration config,
boolean nonFakeValuesOnly)
config - the configuration to setnonFakeValuesOnly - if set to true this ignore qualifiers for which the
current value is a fake value.ResourceQualifier.hasFakeValue()public void reset()
null.public void substract(@NonNull
FolderConfiguration config)
public void add(@NonNull
FolderConfiguration config)
@Nullable public ResourceQualifier getInvalidQualifier()
null if they are all valid (or if none
exists).public void addQualifier(@Nullable
ResourceQualifier qualifier)
FolderConfigurationqualifier - the ResourceQualifier to add.public void removeQualifier(@NonNull
ResourceQualifier qualifier)
FolderConfiguration.qualifier - the ResourceQualifier to remove.@Nullable public ResourceQualifier getQualifier(int index)
getQualifierCount().index - the index of the qualifier to return.public void forEach(@NonNull
java.util.function.Consumer<? super ResourceQualifier> action)
public boolean any(java.util.function.Predicate<? super ResourceQualifier> predicate)
public void setCountryCodeQualifier(CountryCodeQualifier qualifier)
@Nullable public CountryCodeQualifier getCountryCodeQualifier()
public void setNetworkCodeQualifier(NetworkCodeQualifier qualifier)
@Nullable public NetworkCodeQualifier getNetworkCodeQualifier()
public void setLocaleQualifier(LocaleQualifier qualifier)
@Nullable public LocaleQualifier getLocaleQualifier()
public void setLayoutDirectionQualifier(LayoutDirectionQualifier qualifier)
@Nullable public LayoutDirectionQualifier getLayoutDirectionQualifier()
public void setSmallestScreenWidthQualifier(SmallestScreenWidthQualifier qualifier)
@Nullable public SmallestScreenWidthQualifier getSmallestScreenWidthQualifier()
public void setScreenWidthQualifier(ScreenWidthQualifier qualifier)
@Nullable public ScreenWidthQualifier getScreenWidthQualifier()
public void setScreenHeightQualifier(ScreenHeightQualifier qualifier)
@Nullable public ScreenHeightQualifier getScreenHeightQualifier()
public void setScreenSizeQualifier(ScreenSizeQualifier qualifier)
@Nullable public ScreenSizeQualifier getScreenSizeQualifier()
public void setScreenRatioQualifier(ScreenRatioQualifier qualifier)
@Nullable public ScreenRatioQualifier getScreenRatioQualifier()
public void setScreenRoundQualifier(ScreenRoundQualifier qualifier)
@Nullable public ScreenRoundQualifier getScreenRoundQualifier()
public void setWideColorGamutQualifier(WideGamutColorQualifier qualifier)
@Nullable public WideGamutColorQualifier getWideColorGamutQualifier()
public void setHighDynamicRangeQualifier(HighDynamicRangeQualifier qualifier)
@Nullable public HighDynamicRangeQualifier getHighDynamicRangeQualifier()
public void setScreenOrientationQualifier(ScreenOrientationQualifier qualifier)
@Nullable public ScreenOrientationQualifier getScreenOrientationQualifier()
public void setUiModeQualifier(UiModeQualifier qualifier)
@Nullable public UiModeQualifier getUiModeQualifier()
public void setNightModeQualifier(NightModeQualifier qualifier)
@Nullable public NightModeQualifier getNightModeQualifier()
public void setDensityQualifier(DensityQualifier qualifier)
@Nullable public DensityQualifier getDensityQualifier()
public void setTouchTypeQualifier(TouchScreenQualifier qualifier)
@Nullable public TouchScreenQualifier getTouchTypeQualifier()
public void setKeyboardStateQualifier(KeyboardStateQualifier qualifier)
@Nullable public KeyboardStateQualifier getKeyboardStateQualifier()
public void setTextInputMethodQualifier(TextInputMethodQualifier qualifier)
@Nullable public TextInputMethodQualifier getTextInputMethodQualifier()
public void setNavigationStateQualifier(NavigationStateQualifier qualifier)
@Nullable public NavigationStateQualifier getNavigationStateQualifier()
public void setNavigationMethodQualifier(NavigationMethodQualifier qualifier)
@Nullable public NavigationMethodQualifier getNavigationMethodQualifier()
public void setScreenDimensionQualifier(ScreenDimensionQualifier qualifier)
@Nullable public ScreenDimensionQualifier getScreenDimensionQualifier()
public void setVersionQualifier(VersionQualifier qualifier)
@Nullable public VersionQualifier getVersionQualifier()
public void normalize()
public void updateScreenWidthAndHeight()
SmallestScreenWidthQualifier, ScreenWidthQualifier, and
ScreenHeightQualifier based on the (required) values of
ScreenDimensionQualifier DensityQualifier, and
ScreenOrientationQualifier.
Also the density cannot be Density.NODPI as it's not valid on a device.public boolean equals(java.lang.Object obj)
equals in class java.lang.Objectpublic int hashCode()
hashCode in class java.lang.Objectpublic boolean isDefault()
@NonNull
public java.lang.String getFolderName(@NonNull
com.android.resources.ResourceFolderType folder)
@NonNull public java.lang.String getQualifierString()
@NonNull public java.lang.String toString()
toDisplayString().toString in class java.lang.Object@NonNull public java.lang.String toDisplayString()
@NonNull public java.lang.String toShortDisplayString()
public int compareTo(@NonNull
FolderConfiguration folderConfig)
compareTo in interface java.lang.Comparable<FolderConfiguration>@Nullable public <T extends Configurable> T findMatchingConfigurable(@Nullable java.util.Collection<T> configurables)
Configurable for this configuration.configurables - the list of Configurable to choose fromConfigurable or null@NonNull public <T extends Configurable> java.util.List<T> findMatchingConfigurables(@Nullable java.util.Collection<T> configurables)
Configurables as possible. It skips the
ResourceQualifier if it's not valid and assumes that all resources match it.configurables - the list of Configurable to choose from.public boolean isMatchFor(@Nullable
FolderConfiguration referenceConfig)
A match means that, for each qualifier of this config
referenceConfig - The reference configuration to test against.public int getHighestPriorityQualifier(int startIndex)
ResourceQualifier starting at index
startIndexpublic static FolderConfiguration createDefault()
@NonNull public ResourceQualifier[] getQualifiers()