Shared.java revision 8e3fd7676023738c04d099f2940a635ff0699717
1fefcd700d6b4cf1c4402af74c50fb0e762472901Steve McKay/*
2fefcd700d6b4cf1c4402af74c50fb0e762472901Steve McKay * Copyright (C) 2015 The Android Open Source Project
3fefcd700d6b4cf1c4402af74c50fb0e762472901Steve McKay *
4fefcd700d6b4cf1c4402af74c50fb0e762472901Steve McKay * Licensed under the Apache License, Version 2.0 (the "License");
5fefcd700d6b4cf1c4402af74c50fb0e762472901Steve McKay * you may not use this file except in compliance with the License.
6fefcd700d6b4cf1c4402af74c50fb0e762472901Steve McKay * You may obtain a copy of the License at
7fefcd700d6b4cf1c4402af74c50fb0e762472901Steve McKay *
8fefcd700d6b4cf1c4402af74c50fb0e762472901Steve McKay *      http://www.apache.org/licenses/LICENSE-2.0
9fefcd700d6b4cf1c4402af74c50fb0e762472901Steve McKay *
10fefcd700d6b4cf1c4402af74c50fb0e762472901Steve McKay * Unless required by applicable law or agreed to in writing, software
11fefcd700d6b4cf1c4402af74c50fb0e762472901Steve McKay * distributed under the License is distributed on an "AS IS" BASIS,
12fefcd700d6b4cf1c4402af74c50fb0e762472901Steve McKay * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13fefcd700d6b4cf1c4402af74c50fb0e762472901Steve McKay * See the License for the specific language governing permissions and
14fefcd700d6b4cf1c4402af74c50fb0e762472901Steve McKay * limitations under the License.
15fefcd700d6b4cf1c4402af74c50fb0e762472901Steve McKay */
16fefcd700d6b4cf1c4402af74c50fb0e762472901Steve McKay
17fefcd700d6b4cf1c4402af74c50fb0e762472901Steve McKaypackage com.android.documentsui;
18fefcd700d6b4cf1c4402af74c50fb0e762472901Steve McKay
19919231857d2add3afe51f06aaf41663a252c3e0eBen Kwaimport android.content.Context;
208e3fd7676023738c04d099f2940a635ff0699717Ben Kwaimport android.text.format.DateUtils;
218e3fd7676023738c04d099f2940a635ff0699717Ben Kwaimport android.text.format.Time;
22919231857d2add3afe51f06aaf41663a252c3e0eBen Kwa
234d0255f79cc92a5675d14b20f9cdf06ecb8d7109Steve McKay/** @hide */
24fefcd700d6b4cf1c4402af74c50fb0e762472901Steve McKaypublic final class Shared {
25ae96780a8909476dca709b88dbae5ec9a2f0632cBen Kwa    /** Intent action name to pick a copy destination. */
26ae96780a8909476dca709b88dbae5ec9a2f0632cBen Kwa    public static final String ACTION_PICK_COPY_DESTINATION =
27ae96780a8909476dca709b88dbae5ec9a2f0632cBen Kwa            "com.android.documentsui.PICK_COPY_DESTINATION";
28ae96780a8909476dca709b88dbae5ec9a2f0632cBen Kwa
29ae96780a8909476dca709b88dbae5ec9a2f0632cBen Kwa    /**
30ae96780a8909476dca709b88dbae5ec9a2f0632cBen Kwa     * Extra boolean flag for {@link ACTION_PICK_COPY_DESTINATION}, which
31ae96780a8909476dca709b88dbae5ec9a2f0632cBen Kwa     * specifies if the destination directory needs to create new directory or not.
32ae96780a8909476dca709b88dbae5ec9a2f0632cBen Kwa     */
33ae96780a8909476dca709b88dbae5ec9a2f0632cBen Kwa    public static final String EXTRA_DIRECTORY_COPY = "com.android.documentsui.DIRECTORY_COPY";
34ae96780a8909476dca709b88dbae5ec9a2f0632cBen Kwa
35459bc2b19ae24e3ad09b2945f21c8397177d5720Steve McKay    public static final boolean DEBUG = true;
36fefcd700d6b4cf1c4402af74c50fb0e762472901Steve McKay    public static final String TAG = "Documents";
374d0255f79cc92a5675d14b20f9cdf06ecb8d7109Steve McKay    public static final String EXTRA_STACK = "com.android.documentsui.STACK";
38919231857d2add3afe51f06aaf41663a252c3e0eBen Kwa
39919231857d2add3afe51f06aaf41663a252c3e0eBen Kwa    /**
40919231857d2add3afe51f06aaf41663a252c3e0eBen Kwa     * Generates a formatted quantity string.
41919231857d2add3afe51f06aaf41663a252c3e0eBen Kwa     */
42919231857d2add3afe51f06aaf41663a252c3e0eBen Kwa    public static final String getQuantityString(Context context, int resourceId, int quantity) {
43919231857d2add3afe51f06aaf41663a252c3e0eBen Kwa        return context.getResources().getQuantityString(resourceId, quantity, quantity);
44919231857d2add3afe51f06aaf41663a252c3e0eBen Kwa    }
458e3fd7676023738c04d099f2940a635ff0699717Ben Kwa
468e3fd7676023738c04d099f2940a635ff0699717Ben Kwa    public static String formatTime(Context context, long when) {
478e3fd7676023738c04d099f2940a635ff0699717Ben Kwa        // TODO: DateUtils should make this easier
488e3fd7676023738c04d099f2940a635ff0699717Ben Kwa        Time then = new Time();
498e3fd7676023738c04d099f2940a635ff0699717Ben Kwa        then.set(when);
508e3fd7676023738c04d099f2940a635ff0699717Ben Kwa        Time now = new Time();
518e3fd7676023738c04d099f2940a635ff0699717Ben Kwa        now.setToNow();
528e3fd7676023738c04d099f2940a635ff0699717Ben Kwa
538e3fd7676023738c04d099f2940a635ff0699717Ben Kwa        int flags = DateUtils.FORMAT_NO_NOON | DateUtils.FORMAT_NO_MIDNIGHT
548e3fd7676023738c04d099f2940a635ff0699717Ben Kwa                | DateUtils.FORMAT_ABBREV_ALL;
558e3fd7676023738c04d099f2940a635ff0699717Ben Kwa
568e3fd7676023738c04d099f2940a635ff0699717Ben Kwa        if (then.year != now.year) {
578e3fd7676023738c04d099f2940a635ff0699717Ben Kwa            flags |= DateUtils.FORMAT_SHOW_YEAR | DateUtils.FORMAT_SHOW_DATE;
588e3fd7676023738c04d099f2940a635ff0699717Ben Kwa        } else if (then.yearDay != now.yearDay) {
598e3fd7676023738c04d099f2940a635ff0699717Ben Kwa            flags |= DateUtils.FORMAT_SHOW_DATE;
608e3fd7676023738c04d099f2940a635ff0699717Ben Kwa        } else {
618e3fd7676023738c04d099f2940a635ff0699717Ben Kwa            flags |= DateUtils.FORMAT_SHOW_TIME;
628e3fd7676023738c04d099f2940a635ff0699717Ben Kwa        }
638e3fd7676023738c04d099f2940a635ff0699717Ben Kwa
648e3fd7676023738c04d099f2940a635ff0699717Ben Kwa        return DateUtils.formatDateTime(context, when, flags);
658e3fd7676023738c04d099f2940a635ff0699717Ben Kwa    }
668e3fd7676023738c04d099f2940a635ff0699717Ben Kwa
67fefcd700d6b4cf1c4402af74c50fb0e762472901Steve McKay}
68