summaryrefslogtreecommitdiffstats
path: root/tools/layoutlib
diff options
context:
space:
mode:
authorDeepanshu Gupta <deepanshu@google.com>2013-10-17 10:06:16 -0700
committerDeepanshu Gupta <deepanshu@google.com>2013-10-17 11:28:48 -0700
commit272d1bce798a5fef42cc2ee31f629d00c89f66eb (patch)
tree690dfcbc7afddc7b09ad5eaa78b389c278ffecb9 /tools/layoutlib
parentfc69e2b5ad6b1dda3aef4e9bb6e2b088ec77e0c1 (diff)
downloadframeworks_base-272d1bce798a5fef42cc2ee31f629d00c89f66eb.zip
frameworks_base-272d1bce798a5fef42cc2ee31f629d00c89f66eb.tar.gz
frameworks_base-272d1bce798a5fef42cc2ee31f629d00c89f66eb.tar.bz2
Layoutlib: Add DateIntervalFormat_Delegate required by CalendarView
Change-Id: Ica79267a4eb231db833cb0232cfacf419fe73de3
Diffstat (limited to 'tools/layoutlib')
-rw-r--r--tools/layoutlib/bridge/src/libcore/icu/DateIntervalFormat_Delegate.java70
-rw-r--r--tools/layoutlib/create/src/com/android/tools/layoutlib/create/CreateInfo.java1
2 files changed, 71 insertions, 0 deletions
diff --git a/tools/layoutlib/bridge/src/libcore/icu/DateIntervalFormat_Delegate.java b/tools/layoutlib/bridge/src/libcore/icu/DateIntervalFormat_Delegate.java
new file mode 100644
index 0000000..a773d93
--- /dev/null
+++ b/tools/layoutlib/bridge/src/libcore/icu/DateIntervalFormat_Delegate.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2013 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 libcore.icu;
+
+import java.text.FieldPosition;
+
+import com.android.ide.common.rendering.api.LayoutLog;
+import com.android.layoutlib.bridge.Bridge;
+import com.android.layoutlib.bridge.impl.DelegateManager;
+import com.ibm.icu.text.DateIntervalFormat;
+import com.ibm.icu.util.DateInterval;
+import com.ibm.icu.util.TimeZone;
+import com.ibm.icu.util.ULocale;
+
+public class DateIntervalFormat_Delegate {
+
+ // ---- delegate manager ----
+ private static final DelegateManager<DateIntervalFormat_Delegate> sManager =
+ new DelegateManager<DateIntervalFormat_Delegate>(DateIntervalFormat_Delegate.class);
+
+ // ---- delegate data ----
+ private DateIntervalFormat mFormat;
+
+
+ // ---- native methods ----
+
+ /*package*/static String formatDateInterval(long address, long fromDate, long toDate) {
+ DateIntervalFormat_Delegate delegate = sManager.getDelegate((int)address);
+ if (delegate == null) {
+ Bridge.getLog().error(LayoutLog.TAG_BROKEN,
+ "Unable for find native DateIntervalFormat", null);
+ return null;
+ }
+ DateInterval interval = new DateInterval(fromDate, toDate);
+ StringBuffer sb = new StringBuffer();
+ FieldPosition pos = new FieldPosition(0);
+ delegate.mFormat.format(interval, sb, pos);
+ return sb.toString();
+ }
+
+ /*package*/ static long createDateIntervalFormat(String skeleton, String localeName,
+ String tzName) {
+ TimeZone prevDefaultTz = TimeZone.getDefault();
+ TimeZone.setDefault(TimeZone.getTimeZone(tzName));
+ DateIntervalFormat_Delegate newDelegate = new DateIntervalFormat_Delegate();
+ newDelegate.mFormat =
+ DateIntervalFormat.getInstance(skeleton, new ULocale(localeName));
+ TimeZone.setDefault(prevDefaultTz);
+ return sManager.addNewDelegate(newDelegate);
+ }
+
+ /*package*/ static void destroyDateIntervalFormat(long address) {
+ sManager.removeJavaReferenceFor((int)address);
+ }
+
+}
diff --git a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/CreateInfo.java b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/CreateInfo.java
index 7099a4b..75e4480 100644
--- a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/CreateInfo.java
+++ b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/CreateInfo.java
@@ -188,6 +188,7 @@ public final class CreateInfo implements ICreateInfo {
"android.text.AndroidBidi",
"android.util.FloatMath",
"android.view.Display",
+ "libcore.icu.DateIntervalFormat",
"libcore.icu.ICU",
};