summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/util/IOUtils.java
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2017-05-03 12:42:18 -0700
committerSunny Goyal <sunnygoyal@google.com>2017-05-09 12:59:04 -0700
commit05f30889d6ba0f803c720813067b28c9c4cf2bfd (patch)
tree9e517f1ccd46bf7400172ed1f6f6026c75fbef85 /src/com/android/launcher3/util/IOUtils.java
parent07557e81a5a2dab455e724345095e2b4a32b7d17 (diff)
downloadandroid_packages_apps_Trebuchet-05f30889d6ba0f803c720813067b28c9c4cf2bfd.tar.gz
android_packages_apps_Trebuchet-05f30889d6ba0f803c720813067b28c9c4cf2bfd.tar.bz2
android_packages_apps_Trebuchet-05f30889d6ba0f803c720813067b28c9c4cf2bfd.zip
Adding support for DB downgrade
Adding a schema file for handling DB downgrade. This schema file is part of the backup/restore set, and hence is available on a device with lower app version. Bug: 37257575 Change-Id: I69c8ef5f28d5209be6e6679412c7459d4eeda5d0
Diffstat (limited to 'src/com/android/launcher3/util/IOUtils.java')
-rw-r--r--src/com/android/launcher3/util/IOUtils.java55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/com/android/launcher3/util/IOUtils.java b/src/com/android/launcher3/util/IOUtils.java
new file mode 100644
index 000000000..77c21fe92
--- /dev/null
+++ b/src/com/android/launcher3/util/IOUtils.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2017 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.launcher3.util;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+/**
+ * Supports various IO utility functions
+ */
+public class IOUtils {
+
+ private static final int BUF_SIZE = 0x1000; // 4K
+
+ public static byte[] toByteArray(File file) throws IOException {
+ try (InputStream in = new FileInputStream(file)) {
+ return toByteArray(in);
+ }
+ }
+
+ public static byte[] toByteArray(InputStream in) throws IOException {
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ copy(in, out);
+ return out.toByteArray();
+ }
+
+ public static long copy(InputStream from, OutputStream to) throws IOException {
+ byte[] buf = new byte[BUF_SIZE];
+ long total = 0;
+ int r;
+ while ((r = from.read(buf)) != -1) {
+ to.write(buf, 0, r);
+ total += r;
+ }
+ return total;
+ }
+}