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(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(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(FolderConfiguration config)
Removes the qualifiers from the receiver if they are present (and valid) in the given configuration.


add

public void add(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

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(ResourceQualifier qualifier)
Adds a qualifier to the FolderConfiguration

Parameters:
qualifier - the ResourceQualifier to add.

removeQualifier

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

Parameters:
qualifier - the ResourceQualifier to remove.

getQualifier

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

public CountryCodeQualifier getCountryCodeQualifier()

setNetworkCodeQualifier

public void setNetworkCodeQualifier(NetworkCodeQualifier qualifier)

getNetworkCodeQualifier

public NetworkCodeQualifier getNetworkCodeQualifier()

setLanguageQualifier

public void setLanguageQualifier(LanguageQualifier qualifier)

getLanguageQualifier

public LanguageQualifier getLanguageQualifier()

setRegionQualifier

public void setRegionQualifier(RegionQualifier qualifier)

getRegionQualifier

public RegionQualifier getRegionQualifier()

setLayoutDirectionQualifier

public void setLayoutDirectionQualifier(LayoutDirectionQualifier qualifier)

getLayoutDirectionQualifier

public LayoutDirectionQualifier getLayoutDirectionQualifier()

setSmallestScreenWidthQualifier

public void setSmallestScreenWidthQualifier(SmallestScreenWidthQualifier qualifier)

getSmallestScreenWidthQualifier

public SmallestScreenWidthQualifier getSmallestScreenWidthQualifier()

setScreenWidthQualifier

public void setScreenWidthQualifier(ScreenWidthQualifier qualifier)

getScreenWidthQualifier

public ScreenWidthQualifier getScreenWidthQualifier()

setScreenHeightQualifier

public void setScreenHeightQualifier(ScreenHeightQualifier qualifier)

getScreenHeightQualifier

public ScreenHeightQualifier getScreenHeightQualifier()

setScreenSizeQualifier

public void setScreenSizeQualifier(ScreenSizeQualifier qualifier)

getScreenSizeQualifier

public ScreenSizeQualifier getScreenSizeQualifier()

setScreenRatioQualifier

public void setScreenRatioQualifier(ScreenRatioQualifier qualifier)

getScreenRatioQualifier

public ScreenRatioQualifier getScreenRatioQualifier()

setScreenOrientationQualifier

public void setScreenOrientationQualifier(ScreenOrientationQualifier qualifier)

getScreenOrientationQualifier

public ScreenOrientationQualifier getScreenOrientationQualifier()

setUiModeQualifier

public void setUiModeQualifier(UiModeQualifier qualifier)

getUiModeQualifier

public UiModeQualifier getUiModeQualifier()

setNightModeQualifier

public void setNightModeQualifier(NightModeQualifier qualifier)

getNightModeQualifier

public NightModeQualifier getNightModeQualifier()

setDensityQualifier

public void setDensityQualifier(DensityQualifier qualifier)

getDensityQualifier

public DensityQualifier getDensityQualifier()

setTouchTypeQualifier

public void setTouchTypeQualifier(TouchScreenQualifier qualifier)

getTouchTypeQualifier

public TouchScreenQualifier getTouchTypeQualifier()

setKeyboardStateQualifier

public void setKeyboardStateQualifier(KeyboardStateQualifier qualifier)

getKeyboardStateQualifier

public KeyboardStateQualifier getKeyboardStateQualifier()

setTextInputMethodQualifier

public void setTextInputMethodQualifier(TextInputMethodQualifier qualifier)

getTextInputMethodQualifier

public TextInputMethodQualifier getTextInputMethodQualifier()

setNavigationStateQualifier

public void setNavigationStateQualifier(NavigationStateQualifier qualifier)

getNavigationStateQualifier

public NavigationStateQualifier getNavigationStateQualifier()

setNavigationMethodQualifier

public void setNavigationMethodQualifier(NavigationMethodQualifier qualifier)

getNavigationMethodQualifier

public NavigationMethodQualifier getNavigationMethodQualifier()

setScreenDimensionQualifier

public void setScreenDimensionQualifier(ScreenDimensionQualifier qualifier)

getScreenDimensionQualifier

public ScreenDimensionQualifier getScreenDimensionQualifier()

setVersionQualifier

public void setVersionQualifier(VersionQualifier qualifier)

getVersionQualifier

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

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


getUniqueKey

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


toString

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

Overrides:
toString in class java.lang.Object

toDisplayString

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


toShortDisplayString

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


compareTo

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

findMatchingConfigurable

@Nullable
public Configurable findMatchingConfigurable(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(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

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