com.android.ide.common.resources.configuration
Class FolderConfiguration

java.lang.Object
  extended by com.android.ide.common.resources.configuration.FolderConfiguration
All Implemented Interfaces:
java.lang.Comparable<FolderConfiguration>

public final class FolderConfiguration
extends java.lang.Object
implements java.lang.Comparable<FolderConfiguration>

Represents the configuration for Resource Folders. All the properties have a default value which means that the property is not set.


Constructor Summary
FolderConfiguration()
           
 
Method Summary
 void add(FolderConfiguration config)
          Adds the non-qualifiers from the given config.
 void addQualifier(ResourceQualifier qualifier)
          Adds a qualifier to the FolderConfiguration
 boolean checkRegion()
          Returns whether the Region qualifier is valid.
 int compareTo(FolderConfiguration folderConfig)
           
 void createDefault()
          Create default qualifiers.
 boolean equals(java.lang.Object obj)
          Returns whether an object is equals to the receiver.
 Configurable findMatchingConfigurable(java.util.List<? extends Configurable> configurables)
          Returns the best matching Configurable for this configuration.
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 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()
           
 LanguageQualifier getLanguageQualifier()
           
 LayoutDirectionQualifier getLayoutDirectionQualifier()
           
 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.
 RegionQualifier getRegionQualifier()
           
 ScreenDimensionQualifier getScreenDimensionQualifier()
           
 ScreenHeightQualifier getScreenHeightQualifier()
           
 ScreenOrientationQualifier getScreenOrientationQualifier()
           
 ScreenRatioQualifier getScreenRatioQualifier()
           
 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 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 setLanguageQualifier(LanguageQualifier qualifier)
           
 void setLayoutDirectionQualifier(LayoutDirectionQualifier qualifier)
           
 void setNavigationMethodQualifier(NavigationMethodQualifier qualifier)
           
 void setNavigationStateQualifier(NavigationStateQualifier qualifier)
           
 void setNetworkCodeQualifier(NetworkCodeQualifier qualifier)
           
 void setNightModeQualifier(NightModeQualifier qualifier)
           
 void setRegionQualifier(RegionQualifier qualifier)
           
 void setScreenDimensionQualifier(ScreenDimensionQualifier qualifier)
           
 void setScreenHeightQualifier(ScreenHeightQualifier qualifier)
           
 void setScreenOrientationQualifier(ScreenOrientationQualifier qualifier)
           
 void setScreenRatioQualifier(ScreenRatioQualifier 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.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FolderConfiguration

public FolderConfiguration()
Method Detail

getConfig

@Nullable
public static FolderConfiguration getConfig(@NonNull
                                                     java.lang.String[] folderSegments)
Creates a FolderConfiguration matching the folder segments.

Parameters:
folderSegments - The segments of the folder name. The first segments should contain the name of the folder
Returns:
a FolderConfiguration object, or null if the folder name isn't valid..

getConfig

@Nullable
public static FolderConfiguration getConfig(@NonNull
                                                     java.lang.Iterable<java.lang.String> folderSegments)
Creates a FolderConfiguration matching the folder segments.

Parameters:
folderSegments - The segments of the folder name. The first segments should contain the name of the folder
Returns:
a FolderConfiguration object, or null if the folder name isn't valid..
See Also:
getConfig(String[])

getConfigFromQualifiers

@Nullable
public static FolderConfiguration getConfigFromQualifiers(@NonNull
                                                                   java.lang.Iterable<java.lang.String> qualifiers)
Creates a FolderConfiguration matching the qualifiers.

Parameters:
qualifiers - the qualifiers.
Returns:
a FolderConfiguration object, or null if the folder name isn't valid..

getConfigFromQualifiers

@Nullable
public static FolderConfiguration getConfigFromQualifiers(@NonNull
                                                                   java.util.Iterator<java.lang.String> qualifiers)
Creates a FolderConfiguration matching the qualifiers.

Parameters:
qualifiers - An iterator on the qualifiers.
Returns:
a FolderConfiguration object, or null if the folder name isn't valid..

getConfigForFolder

@Nullable
public static FolderConfiguration getConfigForFolder(@NonNull
                                                              java.lang.String folderName)
Creates a FolderConfiguration matching the given folder name.

Parameters:
folderName - the folder name
Returns:
a FolderConfiguration object, or null if the folder name isn't valid..

getQualifierCount

public static int getQualifierCount()
Returns the number of ResourceQualifier that make up a Folder configuration.


set

public void set(@Nullable
                FolderConfiguration config)
Sets the config from the qualifiers of a given config.

This is equivalent to set(config, false)

Parameters:
config - the configuration to set
See Also:
set(FolderConfiguration, boolean)

set

public void set(@Nullable
                FolderConfiguration config,
                boolean nonFakeValuesOnly)
Sets the config from the qualifiers of a given config.

Parameters:
config - the configuration to set
nonFakeValuesOnly - if set to true this ignore qualifiers for which the current value is a fake value.
See Also:
ResourceQualifier.hasFakeValue()

reset

public void reset()
Reset the config.

This makes qualifiers at all indices null.


substract

public void substract(@NonNull
                      FolderConfiguration config)
Removes the qualifiers from the receiver if they are present (and valid) in the given configuration.


add

public void add(@NonNull
                FolderConfiguration config)
Adds the non-qualifiers from the given config. Qualifiers that are null in the given config do not change in the receiver.


getInvalidQualifier

@Nullable
public ResourceQualifier getInvalidQualifier()
Returns the first invalid qualifier, or null if they are all valid (or if none exists).


checkRegion

public boolean checkRegion()
Returns whether the Region qualifier is valid. Region qualifier can only be present if a Language qualifier is present as well.

Returns:
true if the Region qualifier is valid.

addQualifier

public void addQualifier(@Nullable
                         ResourceQualifier qualifier)
Adds a qualifier to the FolderConfiguration

Parameters:
qualifier - the ResourceQualifier to add.

removeQualifier

public void removeQualifier(@NonNull
                            ResourceQualifier qualifier)
Removes a given qualifier from the FolderConfiguration.

Parameters:
qualifier - the ResourceQualifier to remove.

getQualifier

@Nullable
public ResourceQualifier getQualifier(int index)
Returns a qualifier by its index. The total number of qualifiers can be accessed by getQualifierCount().

Parameters:
index - the index of the qualifier to return.
Returns:
the qualifier or null if there are none at the index.

setCountryCodeQualifier

public void setCountryCodeQualifier(CountryCodeQualifier qualifier)

getCountryCodeQualifier

@Nullable
public CountryCodeQualifier getCountryCodeQualifier()

setNetworkCodeQualifier

public void setNetworkCodeQualifier(NetworkCodeQualifier qualifier)

getNetworkCodeQualifier

@Nullable
public NetworkCodeQualifier getNetworkCodeQualifier()

setLanguageQualifier

public void setLanguageQualifier(LanguageQualifier qualifier)

getLanguageQualifier

@Nullable
public LanguageQualifier getLanguageQualifier()

setRegionQualifier

public void setRegionQualifier(RegionQualifier qualifier)

getRegionQualifier

@Nullable
public RegionQualifier getRegionQualifier()

setLayoutDirectionQualifier

public void setLayoutDirectionQualifier(LayoutDirectionQualifier qualifier)

getLayoutDirectionQualifier

@Nullable
public LayoutDirectionQualifier getLayoutDirectionQualifier()

setSmallestScreenWidthQualifier

public void setSmallestScreenWidthQualifier(SmallestScreenWidthQualifier qualifier)

getSmallestScreenWidthQualifier

@Nullable
public SmallestScreenWidthQualifier getSmallestScreenWidthQualifier()

setScreenWidthQualifier

public void setScreenWidthQualifier(ScreenWidthQualifier qualifier)

getScreenWidthQualifier

@Nullable
public ScreenWidthQualifier getScreenWidthQualifier()

setScreenHeightQualifier

public void setScreenHeightQualifier(ScreenHeightQualifier qualifier)

getScreenHeightQualifier

@Nullable
public ScreenHeightQualifier getScreenHeightQualifier()

setScreenSizeQualifier

public void setScreenSizeQualifier(ScreenSizeQualifier qualifier)

getScreenSizeQualifier

@Nullable
public ScreenSizeQualifier getScreenSizeQualifier()

setScreenRatioQualifier

public void setScreenRatioQualifier(ScreenRatioQualifier qualifier)

getScreenRatioQualifier

@Nullable
public ScreenRatioQualifier getScreenRatioQualifier()

setScreenOrientationQualifier

public void setScreenOrientationQualifier(ScreenOrientationQualifier qualifier)

getScreenOrientationQualifier

@Nullable
public ScreenOrientationQualifier getScreenOrientationQualifier()

setUiModeQualifier

public void setUiModeQualifier(UiModeQualifier qualifier)

getUiModeQualifier

@Nullable
public UiModeQualifier getUiModeQualifier()

setNightModeQualifier

public void setNightModeQualifier(NightModeQualifier qualifier)

getNightModeQualifier

@Nullable
public NightModeQualifier getNightModeQualifier()

setDensityQualifier

public void setDensityQualifier(DensityQualifier qualifier)

getDensityQualifier

@Nullable
public DensityQualifier getDensityQualifier()

setTouchTypeQualifier

public void setTouchTypeQualifier(TouchScreenQualifier qualifier)

getTouchTypeQualifier

@Nullable
public TouchScreenQualifier getTouchTypeQualifier()

setKeyboardStateQualifier

public void setKeyboardStateQualifier(KeyboardStateQualifier qualifier)

getKeyboardStateQualifier

@Nullable
public KeyboardStateQualifier getKeyboardStateQualifier()

setTextInputMethodQualifier

public void setTextInputMethodQualifier(TextInputMethodQualifier qualifier)

getTextInputMethodQualifier

@Nullable
public TextInputMethodQualifier getTextInputMethodQualifier()

setNavigationStateQualifier

public void setNavigationStateQualifier(NavigationStateQualifier qualifier)

getNavigationStateQualifier

@Nullable
public NavigationStateQualifier getNavigationStateQualifier()

setNavigationMethodQualifier

public void setNavigationMethodQualifier(NavigationMethodQualifier qualifier)

getNavigationMethodQualifier

@Nullable
public NavigationMethodQualifier getNavigationMethodQualifier()

setScreenDimensionQualifier

public void setScreenDimensionQualifier(ScreenDimensionQualifier qualifier)

getScreenDimensionQualifier

@Nullable
public ScreenDimensionQualifier getScreenDimensionQualifier()

setVersionQualifier

public void setVersionQualifier(VersionQualifier qualifier)

getVersionQualifier

@Nullable
public VersionQualifier getVersionQualifier()

updateScreenWidthAndHeight

public void updateScreenWidthAndHeight()
Updates the 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.


equals

public boolean equals(java.lang.Object obj)
Returns whether an object is equals to the receiver.

Overrides:
equals in class java.lang.Object

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object

isDefault

public boolean isDefault()
Returns whether the Configuration has only default values.


getFolderName

@NonNull
public java.lang.String getFolderName(@NonNull
                                              com.android.resources.ResourceFolderType folder)
Returns the name of a folder with the configuration.


getUniqueKey

@NonNull
public java.lang.String getUniqueKey()
Returns the folder configuration as a unique key


toString

@NonNull
public java.lang.String toString()
Returns toDisplayString().

Overrides:
toString in class java.lang.Object

toDisplayString

@NonNull
public java.lang.String toDisplayString()
Returns a string valid for display purpose.


toShortDisplayString

@NonNull
public java.lang.String toShortDisplayString()
Returns a string for display purposes which uses only the short names of the qualifiers


compareTo

public int compareTo(@NonNull
                     FolderConfiguration folderConfig)
Specified by:
compareTo in interface java.lang.Comparable<FolderConfiguration>

findMatchingConfigurable

@Nullable
public Configurable findMatchingConfigurable(@Nullable
                                                      java.util.List<? extends Configurable> configurables)
Returns the best matching Configurable for this configuration.

Parameters:
configurables - the list of Configurable to choose from.
Returns:
an item from the given list of Configurable or null. See http://d.android.com/guide/topics/resources/resources-i18n.html#best-match

isMatchFor

public boolean isMatchFor(@Nullable
                          FolderConfiguration referenceConfig)
Returns whether the configuration is a match for the given reference config.

A match means that, for each qualifier of this config

  • The reference config has no value set
  • or, the qualifier of the reference config is a match. Depending on the qualifier type this does not mean the same exact value.

Parameters:
referenceConfig - The reference configuration to test against.
Returns:
true if the configuration matches.

getHighestPriorityQualifier

public int getHighestPriorityQualifier(int startIndex)
Returns the index of the first non null ResourceQualifier starting at index startIndex

Parameters:
startIndex -
Returns:
-1 if no qualifier was found.

createDefault

public void createDefault()
Create default qualifiers.

This creates qualifiers with no values for all indices.


getQualifiers

@NonNull
public ResourceQualifier[] getQualifiers()
Returns an array of all the non null qualifiers.