aboutsummaryrefslogtreecommitdiffstats
path: root/sdk_common/src/com/android
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2012-11-28 16:38:50 -0800
committerXavier Ducrohet <xav@android.com>2012-11-29 12:56:09 -0800
commitd09b8a2d6ce570cc81ec6678b07f40541f4657f4 (patch)
tree08de690cd224142213c60321419dabd699ad97a9 /sdk_common/src/com/android
parent79a4aff85957ef993e46dbbbe1f1ae0bab632d90 (diff)
downloadsdk-d09b8a2d6ce570cc81ec6678b07f40541f4657f4.zip
sdk-d09b8a2d6ce570cc81ec6678b07f40541f4657f4.tar.gz
sdk-d09b8a2d6ce570cc81ec6678b07f40541f4657f4.tar.bz2
Add support for layout dir qualifiers.
Change-Id: I6da728d079975fa19f1ae816fa585031a9c6fe75
Diffstat (limited to 'sdk_common/src/com/android')
-rw-r--r--sdk_common/src/com/android/ide/common/resources/configuration/FolderConfiguration.java47
-rw-r--r--sdk_common/src/com/android/ide/common/resources/configuration/LayoutDirectionQualifier.java74
2 files changed, 104 insertions, 17 deletions
diff --git a/sdk_common/src/com/android/ide/common/resources/configuration/FolderConfiguration.java b/sdk_common/src/com/android/ide/common/resources/configuration/FolderConfiguration.java
index a513c1f..fc83359 100644
--- a/sdk_common/src/com/android/ide/common/resources/configuration/FolderConfiguration.java
+++ b/sdk_common/src/com/android/ide/common/resources/configuration/FolderConfiguration.java
@@ -48,23 +48,24 @@ public final class FolderConfiguration implements Comparable<FolderConfiguration
private final static int INDEX_NETWORK_CODE = 1;
private final static int INDEX_LANGUAGE = 2;
private final static int INDEX_REGION = 3;
- private final static int INDEX_SMALLEST_SCREEN_WIDTH = 4;
- private final static int INDEX_SCREEN_WIDTH = 5;
- private final static int INDEX_SCREEN_HEIGHT = 6;
- private final static int INDEX_SCREEN_LAYOUT_SIZE = 7;
- private final static int INDEX_SCREEN_RATIO = 8;
- private final static int INDEX_SCREEN_ORIENTATION = 9;
- private final static int INDEX_UI_MODE = 10;
- private final static int INDEX_NIGHT_MODE = 11;
- private final static int INDEX_PIXEL_DENSITY = 12;
- private final static int INDEX_TOUCH_TYPE = 13;
- private final static int INDEX_KEYBOARD_STATE = 14;
- private final static int INDEX_TEXT_INPUT_METHOD = 15;
- private final static int INDEX_NAVIGATION_STATE = 16;
- private final static int INDEX_NAVIGATION_METHOD = 17;
- private final static int INDEX_SCREEN_DIMENSION = 18;
- private final static int INDEX_VERSION = 19;
- private final static int INDEX_COUNT = 20;
+ private final static int INDEX_LAYOUTDIR = 4;
+ private final static int INDEX_SMALLEST_SCREEN_WIDTH = 5;
+ private final static int INDEX_SCREEN_WIDTH = 6;
+ private final static int INDEX_SCREEN_HEIGHT = 7;
+ private final static int INDEX_SCREEN_LAYOUT_SIZE = 8;
+ private final static int INDEX_SCREEN_RATIO = 9;
+ private final static int INDEX_SCREEN_ORIENTATION = 10;
+ private final static int INDEX_UI_MODE = 11;
+ private final static int INDEX_NIGHT_MODE = 12;
+ private final static int INDEX_PIXEL_DENSITY = 13;
+ private final static int INDEX_TOUCH_TYPE = 14;
+ private final static int INDEX_KEYBOARD_STATE = 15;
+ private final static int INDEX_TEXT_INPUT_METHOD = 16;
+ private final static int INDEX_NAVIGATION_STATE = 17;
+ private final static int INDEX_NAVIGATION_METHOD = 18;
+ private final static int INDEX_SCREEN_DIMENSION = 19;
+ private final static int INDEX_VERSION = 20;
+ private final static int INDEX_COUNT = 21;
/**
* Creates a {@link FolderConfiguration} matching the folder segments.
@@ -267,6 +268,9 @@ public final class FolderConfiguration implements Comparable<FolderConfiguration
} else if (qualifier instanceof RegionQualifier) {
mQualifiers[INDEX_REGION] = qualifier;
+ } else if (qualifier instanceof LayoutDirectionQualifier) {
+ mQualifiers[INDEX_LAYOUTDIR] = qualifier;
+
} else if (qualifier instanceof SmallestScreenWidthQualifier) {
mQualifiers[INDEX_SMALLEST_SCREEN_WIDTH] = qualifier;
@@ -373,6 +377,14 @@ public final class FolderConfiguration implements Comparable<FolderConfiguration
return (RegionQualifier)mQualifiers[INDEX_REGION];
}
+ public void setLayoutDirectionQualifier(LayoutDirectionQualifier qualifier) {
+ mQualifiers[INDEX_LAYOUTDIR] = qualifier;
+ }
+
+ public LayoutDirectionQualifier getLayoutDirectionQualifier() {
+ return (LayoutDirectionQualifier)mQualifiers[INDEX_LAYOUTDIR];
+ }
+
public void setSmallestScreenWidthQualifier(SmallestScreenWidthQualifier qualifier) {
mQualifiers[INDEX_SMALLEST_SCREEN_WIDTH] = qualifier;
}
@@ -891,6 +903,7 @@ public final class FolderConfiguration implements Comparable<FolderConfiguration
mQualifiers[INDEX_NETWORK_CODE] = new NetworkCodeQualifier();
mQualifiers[INDEX_LANGUAGE] = new LanguageQualifier();
mQualifiers[INDEX_REGION] = new RegionQualifier();
+ mQualifiers[INDEX_LAYOUTDIR] = new LayoutDirectionQualifier();
mQualifiers[INDEX_SMALLEST_SCREEN_WIDTH] = new SmallestScreenWidthQualifier();
mQualifiers[INDEX_SCREEN_WIDTH] = new ScreenWidthQualifier();
mQualifiers[INDEX_SCREEN_HEIGHT] = new ScreenHeightQualifier();
diff --git a/sdk_common/src/com/android/ide/common/resources/configuration/LayoutDirectionQualifier.java b/sdk_common/src/com/android/ide/common/resources/configuration/LayoutDirectionQualifier.java
new file mode 100644
index 0000000..48498f0
--- /dev/null
+++ b/sdk_common/src/com/android/ide/common/resources/configuration/LayoutDirectionQualifier.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.ide.common.resources.configuration;
+
+import com.android.resources.LayoutDirection;
+import com.android.resources.ResourceEnum;
+
+/**
+ * Resource Qualifier for layout direction. values can be "ltr", or "rtl"
+ */
+public class LayoutDirectionQualifier extends EnumBasedResourceQualifier {
+
+ public static final String NAME = "Layout Direction";
+
+ private LayoutDirection mValue = null;
+
+
+ public LayoutDirectionQualifier() {
+ }
+
+ public LayoutDirectionQualifier(LayoutDirection value) {
+ mValue = value;
+ }
+
+ public LayoutDirection getValue() {
+ return mValue;
+ }
+
+ @Override
+ ResourceEnum getEnumValue() {
+ return mValue;
+ }
+
+ @Override
+ public String getName() {
+ return NAME;
+ }
+
+ @Override
+ public String getShortName() {
+ return NAME;
+ }
+
+ @Override
+ public int since() {
+ return 17;
+ }
+
+ @Override
+ public boolean checkAndSet(String value, FolderConfiguration config) {
+ LayoutDirection ld = LayoutDirection.getEnum(value);
+ if (ld != null) {
+ LayoutDirectionQualifier qualifier = new LayoutDirectionQualifier(ld);
+ config.setLayoutDirectionQualifier(qualifier);
+ return true;
+ }
+
+ return false;
+ }
+}