public Builder addHeader(String key, LazyHeaderFactory factory) {
            if ((isEncodingDefault && ENCODING_HEADER.equalsIgnoreCase(key))
                || (isUserAgentDefault && USER_AGENT_HEADER.equalsIgnoreCase(key))) {
                return setHeader(key, factory);
            }

            copyIfNecessary();
            getFactories(key).add(factory);
            return this;
        }
Adds an {@link LazyHeaderFactory} that will be used to construct a value for the given
key lazily on a background thread.

<p> Headers may have multiple values whose order is defined by the order in which
this method is called. </p>

<p> This class does not prevent you from adding the same value to a given key multiple
times </p>
core/src/main/java/com/bumptech/glide/load/model/LazyHeaders.java