/*
 * @Copyright 2018-2026 HardBackNutter
 * @License GNU General Public License
 *
 * This file is part of NeverTooManyBooks.
 *
 * NeverTooManyBooks is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * NeverTooManyBooks is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with NeverTooManyBooks. If not, see <http://www.gnu.org/licenses/>.
 */
package com.hardbacknutter.nevertoomanybooks;

import com.hardbacknutter.nevertoomanybooks.booklist.Booklist;
import com.hardbacknutter.nevertoomanybooks.booklist.adapter.BooklistAdapter;

/**
 * Global location where you can switch individual DEBUG options of/off.
 * <p>
 * When set to true, the global BuildConfig.DEBUG should still suppress them
 * Use something like this:
 * <p>
 * if (BuildConfig.DEBUG && DEBUG_SWITCHES.TIMERS) {
 * Logger.info("some debug info");
 * }
 * <p>
 * RELEASE: set all to false ! in case you forgot to '&&' with BuildConfig.DEBUG anywhere...
 * <p>
 * The compiler should remove all code between dead if() blocks
 */
@SuppressWarnings("WeakerAccess")
public final class DEBUG_SWITCHES {

    // special case, uncomment this to enable OAUTH debug messages
//    static {
//            System.setProperty("debug","true");
//    }

    /** Make the {@link Booklist} use a standard table instead of Temporary ones. */
    public static boolean BOB_USES_STANDARD_TABLE = false;

    /** {@link Booklist}. */
    public static final boolean BOB_THE_BUILDER = false;
    /** enable timers for rough performance measurements. */
    public static final boolean BOB_THE_BUILDER_TIMERS = false;

    /** {@link BooksOnBookshelfViewModel}. */
    public static final boolean BOB_INIT_BOOK_LIST = false;
    /**
     * {@link com.hardbacknutter.nevertoomanybooks.booklist.BooklistNodeDao}
     * Expand/Collapsing nodes.
     */
    public static final boolean BOB_NODE_STATE = false;
    /**
     * {@link BooklistAdapter}
     * {@link BooksOnBookshelf}
     * Display the position and node id. Adds a View from code.
     */
    public static final boolean BOB_NODE_POSITIONS = false;

    /** all things related to cover image handling. */
    public static final boolean IMAGES = false;

    /** {@link com.hardbacknutter.nevertoomanybooks.searchengines.SearchCoordinator}. */
    public static final boolean SEARCH_COORDINATOR = false;
    public static final boolean SEARCH_RESULTS_ACCUMULATOR = false;
    /** enable timers for rough performance measurements. */
    public static final boolean SEARCH_COORDINATOR_TIMERS = false;

    public static final boolean IMPORT_BOOKS = false;

    /** Log the full exception instead of the message only. Very heavy ... */
    public static final boolean IMPORT_BOOKS_FULL_EXCEPTION = false;

    public static final boolean IMPORT_CALIBRE_BOOKS = false;
    public static final boolean IMPORT_STRIP_INFO_BOOKS = false;

    /** Sets OkHttp logging level to {@code BODY}. */
    public static final boolean OKHTTP = false;


    /** Enable strict mode reporting on network,disc,... */
    public static final boolean STRICT_MODE_THREADING = false;

    private DEBUG_SWITCHES() {
    }
}
