aboutsummaryrefslogtreecommitdiffstats
path: root/ide_common
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2012-02-10 13:59:54 -0800
committerXavier Ducrohet <xav@android.com>2012-03-16 09:59:45 -0700
commit45a6d2d3883b33a3a8391c0c491b9d6476b0d2e2 (patch)
treebf30b0044422cf1e339ea7d0a49606318fe44381 /ide_common
parent564ecd801263c48f1fe05af0349ff4898c7f45c7 (diff)
downloadsdk-45a6d2d3883b33a3a8391c0c491b9d6476b0d2e2.zip
sdk-45a6d2d3883b33a3a8391c0c491b9d6476b0d2e2.tar.gz
sdk-45a6d2d3883b33a3a8391c0c491b9d6476b0d2e2.tar.bz2
Add info about when qualifiers were added to the platform.
This is a first step where we setup the info. Next step is to actually use the info when calling ResourceRepository.getConfiguredResources Change-Id: I03c20ad0ec7a53ec8219316cc4af7a59155ef34a
Diffstat (limited to 'ide_common')
-rw-r--r--ide_common/src/com/android/ide/common/resources/configuration/CountryCodeQualifier.java5
-rw-r--r--ide_common/src/com/android/ide/common/resources/configuration/DensityQualifier.java5
-rw-r--r--ide_common/src/com/android/ide/common/resources/configuration/KeyboardStateQualifier.java5
-rw-r--r--ide_common/src/com/android/ide/common/resources/configuration/LanguageQualifier.java5
-rw-r--r--ide_common/src/com/android/ide/common/resources/configuration/NavigationMethodQualifier.java5
-rw-r--r--ide_common/src/com/android/ide/common/resources/configuration/NavigationStateQualifier.java5
-rw-r--r--ide_common/src/com/android/ide/common/resources/configuration/NetworkCodeQualifier.java5
-rw-r--r--ide_common/src/com/android/ide/common/resources/configuration/NightModeQualifier.java5
-rw-r--r--ide_common/src/com/android/ide/common/resources/configuration/RegionQualifier.java5
-rw-r--r--ide_common/src/com/android/ide/common/resources/configuration/ResourceQualifier.java12
-rw-r--r--ide_common/src/com/android/ide/common/resources/configuration/ScreenDimensionQualifier.java10
-rw-r--r--ide_common/src/com/android/ide/common/resources/configuration/ScreenHeightQualifier.java5
-rw-r--r--ide_common/src/com/android/ide/common/resources/configuration/ScreenOrientationQualifier.java5
-rw-r--r--ide_common/src/com/android/ide/common/resources/configuration/ScreenRatioQualifier.java5
-rw-r--r--ide_common/src/com/android/ide/common/resources/configuration/ScreenSizeQualifier.java5
-rw-r--r--ide_common/src/com/android/ide/common/resources/configuration/ScreenWidthQualifier.java5
-rw-r--r--ide_common/src/com/android/ide/common/resources/configuration/SmallestScreenWidthQualifier.java5
-rw-r--r--ide_common/src/com/android/ide/common/resources/configuration/TextInputMethodQualifier.java5
-rw-r--r--ide_common/src/com/android/ide/common/resources/configuration/TouchScreenQualifier.java5
-rw-r--r--ide_common/src/com/android/ide/common/resources/configuration/UiModeQualifier.java5
-rw-r--r--ide_common/src/com/android/ide/common/resources/configuration/VersionQualifier.java5
-rw-r--r--ide_common/tests/src/com/android/ide/common/resources/configuration/FolderConfigurationTest.java72
22 files changed, 189 insertions, 0 deletions
diff --git a/ide_common/src/com/android/ide/common/resources/configuration/CountryCodeQualifier.java b/ide_common/src/com/android/ide/common/resources/configuration/CountryCodeQualifier.java
index 7195ba5..eb7cc0d 100644
--- a/ide_common/src/com/android/ide/common/resources/configuration/CountryCodeQualifier.java
+++ b/ide_common/src/com/android/ide/common/resources/configuration/CountryCodeQualifier.java
@@ -94,6 +94,11 @@ public final class CountryCodeQualifier extends ResourceQualifier {
}
@Override
+ public int since() {
+ return 1;
+ }
+
+ @Override
public boolean isValid() {
return mCode != DEFAULT_CODE;
}
diff --git a/ide_common/src/com/android/ide/common/resources/configuration/DensityQualifier.java b/ide_common/src/com/android/ide/common/resources/configuration/DensityQualifier.java
index bb23b44..a9e4a01 100644
--- a/ide_common/src/com/android/ide/common/resources/configuration/DensityQualifier.java
+++ b/ide_common/src/com/android/ide/common/resources/configuration/DensityQualifier.java
@@ -60,6 +60,11 @@ public final class DensityQualifier extends EnumBasedResourceQualifier {
}
@Override
+ public int since() {
+ return 4;
+ }
+
+ @Override
public boolean checkAndSet(String value, FolderConfiguration config) {
Density density = Density.getEnum(value);
if (density == null) {
diff --git a/ide_common/src/com/android/ide/common/resources/configuration/KeyboardStateQualifier.java b/ide_common/src/com/android/ide/common/resources/configuration/KeyboardStateQualifier.java
index 1ca5dad..1397808 100644
--- a/ide_common/src/com/android/ide/common/resources/configuration/KeyboardStateQualifier.java
+++ b/ide_common/src/com/android/ide/common/resources/configuration/KeyboardStateQualifier.java
@@ -56,6 +56,11 @@ public final class KeyboardStateQualifier extends EnumBasedResourceQualifier {
}
@Override
+ public int since() {
+ return 1;
+ }
+
+ @Override
public boolean checkAndSet(String value, FolderConfiguration config) {
KeyboardState orientation = KeyboardState.getEnum(value);
if (orientation != null) {
diff --git a/ide_common/src/com/android/ide/common/resources/configuration/LanguageQualifier.java b/ide_common/src/com/android/ide/common/resources/configuration/LanguageQualifier.java
index 972a50f..76514e2 100644
--- a/ide_common/src/com/android/ide/common/resources/configuration/LanguageQualifier.java
+++ b/ide_common/src/com/android/ide/common/resources/configuration/LanguageQualifier.java
@@ -87,6 +87,11 @@ public final class LanguageQualifier extends ResourceQualifier {
}
@Override
+ public int since() {
+ return 1;
+ }
+
+ @Override
public boolean isValid() {
return mValue != null;
}
diff --git a/ide_common/src/com/android/ide/common/resources/configuration/NavigationMethodQualifier.java b/ide_common/src/com/android/ide/common/resources/configuration/NavigationMethodQualifier.java
index 6c7e31f..f40bc6c 100644
--- a/ide_common/src/com/android/ide/common/resources/configuration/NavigationMethodQualifier.java
+++ b/ide_common/src/com/android/ide/common/resources/configuration/NavigationMethodQualifier.java
@@ -56,6 +56,11 @@ public final class NavigationMethodQualifier extends EnumBasedResourceQualifier
}
@Override
+ public int since() {
+ return 1;
+ }
+
+ @Override
public boolean checkAndSet(String value, FolderConfiguration config) {
Navigation method = Navigation.getEnum(value);
if (method != null) {
diff --git a/ide_common/src/com/android/ide/common/resources/configuration/NavigationStateQualifier.java b/ide_common/src/com/android/ide/common/resources/configuration/NavigationStateQualifier.java
index 9b1e07e..91b81df 100644
--- a/ide_common/src/com/android/ide/common/resources/configuration/NavigationStateQualifier.java
+++ b/ide_common/src/com/android/ide/common/resources/configuration/NavigationStateQualifier.java
@@ -56,6 +56,11 @@ public final class NavigationStateQualifier extends EnumBasedResourceQualifier {
}
@Override
+ public int since() {
+ return 1;
+ }
+
+ @Override
public boolean checkAndSet(String value, FolderConfiguration config) {
NavigationState state = NavigationState.getEnum(value);
if (state != null) {
diff --git a/ide_common/src/com/android/ide/common/resources/configuration/NetworkCodeQualifier.java b/ide_common/src/com/android/ide/common/resources/configuration/NetworkCodeQualifier.java
index 295e8ab..1ef2015 100644
--- a/ide_common/src/com/android/ide/common/resources/configuration/NetworkCodeQualifier.java
+++ b/ide_common/src/com/android/ide/common/resources/configuration/NetworkCodeQualifier.java
@@ -94,6 +94,11 @@ public final class NetworkCodeQualifier extends ResourceQualifier {
}
@Override
+ public int since() {
+ return 1;
+ }
+
+ @Override
public boolean isValid() {
return mCode != DEFAULT_CODE;
}
diff --git a/ide_common/src/com/android/ide/common/resources/configuration/NightModeQualifier.java b/ide_common/src/com/android/ide/common/resources/configuration/NightModeQualifier.java
index 9e49091..d3b6760 100644
--- a/ide_common/src/com/android/ide/common/resources/configuration/NightModeQualifier.java
+++ b/ide_common/src/com/android/ide/common/resources/configuration/NightModeQualifier.java
@@ -56,6 +56,11 @@ public final class NightModeQualifier extends EnumBasedResourceQualifier {
}
@Override
+ public int since() {
+ return 8;
+ }
+
+ @Override
public boolean checkAndSet(String value, FolderConfiguration config) {
NightMode mode = NightMode.getEnum(value);
if (mode != null) {
diff --git a/ide_common/src/com/android/ide/common/resources/configuration/RegionQualifier.java b/ide_common/src/com/android/ide/common/resources/configuration/RegionQualifier.java
index 2b9c29e..bd033bd 100644
--- a/ide_common/src/com/android/ide/common/resources/configuration/RegionQualifier.java
+++ b/ide_common/src/com/android/ide/common/resources/configuration/RegionQualifier.java
@@ -92,6 +92,11 @@ public final class RegionQualifier extends ResourceQualifier {
}
@Override
+ public int since() {
+ return 1;
+ }
+
+ @Override
public boolean isValid() {
return mValue != null;
}
diff --git a/ide_common/src/com/android/ide/common/resources/configuration/ResourceQualifier.java b/ide_common/src/com/android/ide/common/resources/configuration/ResourceQualifier.java
index 9f0b07f..2997c8f 100644
--- a/ide_common/src/com/android/ide/common/resources/configuration/ResourceQualifier.java
+++ b/ide_common/src/com/android/ide/common/resources/configuration/ResourceQualifier.java
@@ -35,6 +35,18 @@ public abstract class ResourceQualifier implements Comparable<ResourceQualifier>
public abstract String getShortName();
/**
+ * Returns when this qualifier was added to Android.
+ */
+ public abstract int since();
+
+ /**
+ * Whether this qualifier is deprecated.
+ */
+ public boolean deprecated() {
+ return false;
+ }
+
+ /**
* Returns whether the qualifier has a valid filter value.
*/
public abstract boolean isValid();
diff --git a/ide_common/src/com/android/ide/common/resources/configuration/ScreenDimensionQualifier.java b/ide_common/src/com/android/ide/common/resources/configuration/ScreenDimensionQualifier.java
index 9b42b88..dce6c68 100644
--- a/ide_common/src/com/android/ide/common/resources/configuration/ScreenDimensionQualifier.java
+++ b/ide_common/src/com/android/ide/common/resources/configuration/ScreenDimensionQualifier.java
@@ -71,6 +71,16 @@ public final class ScreenDimensionQualifier extends ResourceQualifier {
}
@Override
+ public int since() {
+ return 1;
+ }
+
+ @Override
+ public boolean deprecated() {
+ return true;
+ }
+
+ @Override
public boolean isValid() {
return mValue1 != DEFAULT_SIZE && mValue2 != DEFAULT_SIZE;
}
diff --git a/ide_common/src/com/android/ide/common/resources/configuration/ScreenHeightQualifier.java b/ide_common/src/com/android/ide/common/resources/configuration/ScreenHeightQualifier.java
index 5437f71..08bba61 100644
--- a/ide_common/src/com/android/ide/common/resources/configuration/ScreenHeightQualifier.java
+++ b/ide_common/src/com/android/ide/common/resources/configuration/ScreenHeightQualifier.java
@@ -56,6 +56,11 @@ public final class ScreenHeightQualifier extends ResourceQualifier {
}
@Override
+ public int since() {
+ return 13;
+ }
+
+ @Override
public boolean hasFakeValue() {
return false;
}
diff --git a/ide_common/src/com/android/ide/common/resources/configuration/ScreenOrientationQualifier.java b/ide_common/src/com/android/ide/common/resources/configuration/ScreenOrientationQualifier.java
index c26a6f4..732a078 100644
--- a/ide_common/src/com/android/ide/common/resources/configuration/ScreenOrientationQualifier.java
+++ b/ide_common/src/com/android/ide/common/resources/configuration/ScreenOrientationQualifier.java
@@ -55,6 +55,11 @@ public final class ScreenOrientationQualifier extends EnumBasedResourceQualifier
}
@Override
+ public int since() {
+ return 1;
+ }
+
+ @Override
public boolean checkAndSet(String value, FolderConfiguration config) {
ScreenOrientation orientation = ScreenOrientation.getEnum(value);
if (orientation != null) {
diff --git a/ide_common/src/com/android/ide/common/resources/configuration/ScreenRatioQualifier.java b/ide_common/src/com/android/ide/common/resources/configuration/ScreenRatioQualifier.java
index 4cbf0a4..b45946b 100644
--- a/ide_common/src/com/android/ide/common/resources/configuration/ScreenRatioQualifier.java
+++ b/ide_common/src/com/android/ide/common/resources/configuration/ScreenRatioQualifier.java
@@ -52,6 +52,11 @@ public class ScreenRatioQualifier extends EnumBasedResourceQualifier {
}
@Override
+ public int since() {
+ return 4;
+ }
+
+ @Override
public boolean checkAndSet(String value, FolderConfiguration config) {
ScreenRatio size = ScreenRatio.getEnum(value);
if (size != null) {
diff --git a/ide_common/src/com/android/ide/common/resources/configuration/ScreenSizeQualifier.java b/ide_common/src/com/android/ide/common/resources/configuration/ScreenSizeQualifier.java
index 7ab6dd8..77193a2 100644
--- a/ide_common/src/com/android/ide/common/resources/configuration/ScreenSizeQualifier.java
+++ b/ide_common/src/com/android/ide/common/resources/configuration/ScreenSizeQualifier.java
@@ -56,6 +56,11 @@ public class ScreenSizeQualifier extends EnumBasedResourceQualifier {
}
@Override
+ public int since() {
+ return 4;
+ }
+
+ @Override
public boolean checkAndSet(String value, FolderConfiguration config) {
ScreenSize size = ScreenSize.getEnum(value);
if (size != null) {
diff --git a/ide_common/src/com/android/ide/common/resources/configuration/ScreenWidthQualifier.java b/ide_common/src/com/android/ide/common/resources/configuration/ScreenWidthQualifier.java
index cf1e71a..ab9134b 100644
--- a/ide_common/src/com/android/ide/common/resources/configuration/ScreenWidthQualifier.java
+++ b/ide_common/src/com/android/ide/common/resources/configuration/ScreenWidthQualifier.java
@@ -56,6 +56,11 @@ public final class ScreenWidthQualifier extends ResourceQualifier {
}
@Override
+ public int since() {
+ return 13;
+ }
+
+ @Override
public boolean hasFakeValue() {
return false;
}
diff --git a/ide_common/src/com/android/ide/common/resources/configuration/SmallestScreenWidthQualifier.java b/ide_common/src/com/android/ide/common/resources/configuration/SmallestScreenWidthQualifier.java
index 2f82e79..35d1ab1 100644
--- a/ide_common/src/com/android/ide/common/resources/configuration/SmallestScreenWidthQualifier.java
+++ b/ide_common/src/com/android/ide/common/resources/configuration/SmallestScreenWidthQualifier.java
@@ -56,6 +56,11 @@ public final class SmallestScreenWidthQualifier extends ResourceQualifier {
}
@Override
+ public int since() {
+ return 13;
+ }
+
+ @Override
public boolean hasFakeValue() {
return false;
}
diff --git a/ide_common/src/com/android/ide/common/resources/configuration/TextInputMethodQualifier.java b/ide_common/src/com/android/ide/common/resources/configuration/TextInputMethodQualifier.java
index 3d772aa..784d43d 100644
--- a/ide_common/src/com/android/ide/common/resources/configuration/TextInputMethodQualifier.java
+++ b/ide_common/src/com/android/ide/common/resources/configuration/TextInputMethodQualifier.java
@@ -57,6 +57,11 @@ public final class TextInputMethodQualifier extends EnumBasedResourceQualifier {
}
@Override
+ public int since() {
+ return 1;
+ }
+
+ @Override
public boolean checkAndSet(String value, FolderConfiguration config) {
Keyboard method = Keyboard.getEnum(value);
if (method != null) {
diff --git a/ide_common/src/com/android/ide/common/resources/configuration/TouchScreenQualifier.java b/ide_common/src/com/android/ide/common/resources/configuration/TouchScreenQualifier.java
index eeb68d2..dce9f1d 100644
--- a/ide_common/src/com/android/ide/common/resources/configuration/TouchScreenQualifier.java
+++ b/ide_common/src/com/android/ide/common/resources/configuration/TouchScreenQualifier.java
@@ -57,6 +57,11 @@ public final class TouchScreenQualifier extends EnumBasedResourceQualifier {
}
@Override
+ public int since() {
+ return 1;
+ }
+
+ @Override
public boolean checkAndSet(String value, FolderConfiguration config) {
TouchScreen type = TouchScreen.getEnum(value);
if (type != null) {
diff --git a/ide_common/src/com/android/ide/common/resources/configuration/UiModeQualifier.java b/ide_common/src/com/android/ide/common/resources/configuration/UiModeQualifier.java
index f9ad0b7..1e302c5 100644
--- a/ide_common/src/com/android/ide/common/resources/configuration/UiModeQualifier.java
+++ b/ide_common/src/com/android/ide/common/resources/configuration/UiModeQualifier.java
@@ -56,6 +56,11 @@ public final class UiModeQualifier extends EnumBasedResourceQualifier {
}
@Override
+ public int since() {
+ return 8;
+ }
+
+ @Override
public boolean checkAndSet(String value, FolderConfiguration config) {
UiMode mode = UiMode.getEnum(value);
if (mode != null) {
diff --git a/ide_common/src/com/android/ide/common/resources/configuration/VersionQualifier.java b/ide_common/src/com/android/ide/common/resources/configuration/VersionQualifier.java
index 2adf9a4..078d4af 100644
--- a/ide_common/src/com/android/ide/common/resources/configuration/VersionQualifier.java
+++ b/ide_common/src/com/android/ide/common/resources/configuration/VersionQualifier.java
@@ -95,6 +95,11 @@ public final class VersionQualifier extends ResourceQualifier {
}
@Override
+ public int since() {
+ return 1;
+ }
+
+ @Override
public boolean isValid() {
return mVersion != DEFAULT_VERSION;
}
diff --git a/ide_common/tests/src/com/android/ide/common/resources/configuration/FolderConfigurationTest.java b/ide_common/tests/src/com/android/ide/common/resources/configuration/FolderConfigurationTest.java
index 6d0d487..261f9a8 100644
--- a/ide_common/tests/src/com/android/ide/common/resources/configuration/FolderConfigurationTest.java
+++ b/ide_common/tests/src/com/android/ide/common/resources/configuration/FolderConfigurationTest.java
@@ -16,6 +16,9 @@
package com.android.ide.common.resources.configuration;
+import java.util.ArrayList;
+import java.util.List;
+
import junit.framework.TestCase;
public class FolderConfigurationTest extends TestCase {
@@ -35,4 +38,73 @@ public class FolderConfigurationTest extends TestCase {
assertNotNull(defaultConfig.getQualifier(i));
}
}
+
+ public void testSimpleResMatch() {
+ runConfigMatchTest(
+ "en-rGB-port-hdpi-notouch-12key",
+ 3,
+ "",
+ "en",
+ "fr-rCA",
+ "en-port",
+ "en-notouch-12key",
+ "port-ldpi",
+ "port-notouch-12key");
+ }
+
+ public void testVersionResMatch() {
+ runConfigMatchTest(
+ "en-rUS-w600dp-h1024dp-large-port-mdpi-finger-nokeys-v12",
+ 3,
+ "",
+ "large",
+ "w540dp");
+ }
+
+
+ // --- helper methods
+
+ private final static class MockConfigurable implements Configurable {
+
+ private final FolderConfiguration mConfig;
+
+ MockConfigurable(String config) {
+ mConfig = FolderConfiguration.getConfig(getFolderSegments(config));
+ }
+
+ @Override
+ public FolderConfiguration getConfiguration() {
+ return mConfig;
+ }
+
+ @Override
+ public String toString() {
+ return mConfig.toString();
+ }
+ }
+
+ private void runConfigMatchTest(String refConfig, int resultIndex, String... configs) {
+ FolderConfiguration reference = FolderConfiguration.getConfig(getFolderSegments(refConfig));
+ assertNotNull(reference);
+
+ List<? extends Configurable> list = getConfigurable(configs);
+
+ Configurable match = reference.findMatchingConfigurable(list);
+ System.out.println(match.toString());
+ assertEquals(resultIndex, list.indexOf(match));
+ }
+
+ private List<? extends Configurable> getConfigurable(String... configs) {
+ ArrayList<MockConfigurable> list = new ArrayList<MockConfigurable>();
+
+ for (String config : configs) {
+ list.add(new MockConfigurable(config));
+ }
+
+ return list;
+ }
+
+ private static String[] getFolderSegments(String config) {
+ return (config.length() > 0 ? "foo-" + config : "foo").split("-");
+ }
}