1b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay/*
2b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay * Copyright (C) 2016 The Android Open Source Project
3b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay *
4b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay * Licensed under the Apache License, Version 2.0 (the "License");
5b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay * you may not use this file except in compliance with the License.
6b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay * You may obtain a copy of the License at
7b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay *
8b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay *      http://www.apache.org/licenses/LICENSE-2.0
9b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay *
10b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay * Unless required by applicable law or agreed to in writing, software
11b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay * distributed under the License is distributed on an "AS IS" BASIS,
12b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay * See the License for the specific language governing permissions and
14b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay * limitations under the License.
15b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay */
16b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKaypackage com.android.documentsui.base;
17b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay
1850b9baedc04a226b7a2e21f81f9a87533e3f7d02Steve McKayimport android.content.ContentResolver;
1950b9baedc04a226b7a2e21f81f9a87533e3f7d02Steve McKayimport android.os.Bundle;
2050b9baedc04a226b7a2e21f81f9a87533e3f7d02Steve McKay
21aad7883a1fae05d0951f8c09ecbef3616e8c1be4Steve McKayimport com.android.documentsui.queries.CommandInterceptor;
2250b9baedc04a226b7a2e21f81f9a87533e3f7d02Steve McKay
23b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKayimport javax.annotation.Nullable;
24b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay
25b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay/**
26aad7883a1fae05d0951f8c09ecbef3616e8c1be4Steve McKay * Shared values that may be set by {@link CommandInterceptor}.
27b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay */
28b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKaypublic final class DebugFlags {
29b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay
30b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay    private DebugFlags() {}
31b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay
32b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay    private static String mQvPackage;
33358c3ecf1a92fcdc83fcf340519cbbd25c49bbd8Steve McKay    private static boolean sDocumentDetailsEnabled;
3450b9baedc04a226b7a2e21f81f9a87533e3f7d02Steve McKay    private static int sForcedPageOffset = -1;
3550b9baedc04a226b7a2e21f81f9a87533e3f7d02Steve McKay    private static int sForcedPageLimit = -1;
36b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay
37b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay    public static void setQuickViewer(@Nullable String qvPackage) {
38b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay        mQvPackage = qvPackage;
39b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay    }
40b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay
41b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay    public static @Nullable String getQuickViewer() {
42b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay        return mQvPackage;
43b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay    }
44b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay
45358c3ecf1a92fcdc83fcf340519cbbd25c49bbd8Steve McKay    public static void setDocumentDetailsEnabled(boolean enabled) {
46358c3ecf1a92fcdc83fcf340519cbbd25c49bbd8Steve McKay        sDocumentDetailsEnabled = enabled;
47358c3ecf1a92fcdc83fcf340519cbbd25c49bbd8Steve McKay    }
48358c3ecf1a92fcdc83fcf340519cbbd25c49bbd8Steve McKay
49358c3ecf1a92fcdc83fcf340519cbbd25c49bbd8Steve McKay    public static boolean getDocumentDetailsEnabled() {
50358c3ecf1a92fcdc83fcf340519cbbd25c49bbd8Steve McKay        return sDocumentDetailsEnabled;
51358c3ecf1a92fcdc83fcf340519cbbd25c49bbd8Steve McKay    }
52358c3ecf1a92fcdc83fcf340519cbbd25c49bbd8Steve McKay
5350b9baedc04a226b7a2e21f81f9a87533e3f7d02Steve McKay    public static void setForcedPaging(int offset, int limit) {
5450b9baedc04a226b7a2e21f81f9a87533e3f7d02Steve McKay        sForcedPageOffset = offset;
5550b9baedc04a226b7a2e21f81f9a87533e3f7d02Steve McKay        sForcedPageLimit = limit;
5650b9baedc04a226b7a2e21f81f9a87533e3f7d02Steve McKay    }
5750b9baedc04a226b7a2e21f81f9a87533e3f7d02Steve McKay
5850b9baedc04a226b7a2e21f81f9a87533e3f7d02Steve McKay    public static boolean addForcedPagingArgs(Bundle queryArgs) {
5950b9baedc04a226b7a2e21f81f9a87533e3f7d02Steve McKay        boolean flagsAdded = false;
6050b9baedc04a226b7a2e21f81f9a87533e3f7d02Steve McKay        if (sForcedPageOffset >= 0) {
6150b9baedc04a226b7a2e21f81f9a87533e3f7d02Steve McKay            queryArgs.putInt(ContentResolver.QUERY_ARG_OFFSET, sForcedPageOffset);
6250b9baedc04a226b7a2e21f81f9a87533e3f7d02Steve McKay            flagsAdded |= true;
6350b9baedc04a226b7a2e21f81f9a87533e3f7d02Steve McKay        }
6450b9baedc04a226b7a2e21f81f9a87533e3f7d02Steve McKay        if (sForcedPageLimit >= 0) {
6550b9baedc04a226b7a2e21f81f9a87533e3f7d02Steve McKay            queryArgs.putInt(ContentResolver.QUERY_ARG_LIMIT, sForcedPageLimit);
6650b9baedc04a226b7a2e21f81f9a87533e3f7d02Steve McKay            flagsAdded |= true;
6750b9baedc04a226b7a2e21f81f9a87533e3f7d02Steve McKay        }
6850b9baedc04a226b7a2e21f81f9a87533e3f7d02Steve McKay        return flagsAdded;
6950b9baedc04a226b7a2e21f81f9a87533e3f7d02Steve McKay    }
70b03a59c43e526b0814b2c8e700257d34a0aef226Steve McKay}
71