public final class FolderConfiguration extends java.lang.Object implements java.lang.Comparable<FolderConfiguration>
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 |
int |
compareTo(FolderConfiguration folderConfig) |
static FolderConfiguration |
copyOf(FolderConfiguration original)
Creates a copy of the given
FolderConfiguration , that can be modified without
affecting the original. |
void |
createDefault()
Create default qualifiers.
|
boolean |
equals(java.lang.Object obj)
Returns whether an object is equals to the receiver.
|
<T extends Configurable> |
findMatchingConfigurable(java.util.List<T> configurables)
Returns the best matching
Configurable for this configuration. |
<T extends Configurable> |
findMatchingConfigurables(java.util.List<T> configurables)
Tries to eliminate as many
Configurable s as possible. |
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.
|
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() |
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() |
java.lang.String |
getUniqueKey()
Returns the folder configuration as a unique key
|
VersionQualifier |
getVersionQualifier() |
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()
Reset the config.
|
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 |
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 |
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.@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()
This makes qualifiers at all indices 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)
FolderConfiguration
qualifier
- 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 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 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.Object
public int hashCode()
hashCode
in class java.lang.Object
public boolean isDefault()
@NonNull public java.lang.String getFolderName(@NonNull com.android.resources.ResourceFolderType folder)
@NonNull public java.lang.String getUniqueKey()
@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.List<T> configurables)
Configurable
for this configuration.configurables
- the list of Configurable
to choose from.Configurable
or null.
See http://d.android.com/guide/topics/resources/resources-i18n.html#best-match@NonNull public <T extends Configurable> java.util.List<T> findMatchingConfigurables(@Nullable java.util.List<T> configurables)
Configurable
s 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 void createDefault()
This creates qualifiers with no values for all indices.
@NonNull public ResourceQualifier[] getQualifiers()