blob: ec3075f587ff4074f471f8300757d052f2a954ee [file] [log] [blame]
// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package android.net.http;
/**
* Version based on chrome/VERSION.
* {@hide as it's only used internally}
*/
public class ApiVersion {
private static final String CRONET_VERSION = "110.0.5481.154";
private static final int API_LEVEL = 23;
/**
* The minimum API level of implementations that are compatible with this API.
* The last API level which broke backwards API compatibility. In other words, the
* Cronet API that this class is part of won't work with Cronet implementations that implement
* API levels less than this value. That is if
* ImplVersion.getApiLevel() < ApiVersion.getApiLevel(), then the Cronet implementation
* providing ImplVersion cannot be used with the Cronet API providing ApiVersion; if they are
* used together various unexpected Errors, like AbstractMethodError, may result.
*/
private static final int MIN_COMPATIBLE_API_LEVEL = 3;
private static final String LAST_CHANGE = "@LASTCHANGE@";
/**
* Private constructor. All members of this class should be static.
*/
private ApiVersion() {}
public static String getCronetVersionWithLastChange() {
return CRONET_VERSION + "@" + LAST_CHANGE.substring(0, 8);
}
/**
* Returns API level of the API linked into the application. This is the maximum API
* level the application can use, even if the application is run with a newer implementation.
*/
public static int getMaximumAvailableApiLevel() {
return API_LEVEL;
}
/**
* The minimum API level of implementations that are compatible with this API.
* Returns the last API level which broke backwards API compatibility. In other words, the
* Cronet API that this class is part of won't work with Cronet implementations that implement
* API levels less than this value. That is if
* ImplVersion.getApiLevel() < ApiVersion.getApiLevel(), then the Cronet implementation
* providing ImplVersion cannot be used with the Cronet API providing ApiVersion; if they are
* used together various unexpected Errors, like AbstractMethodError, may result.
*/
public static int getApiLevel() {
return MIN_COMPATIBLE_API_LEVEL;
}
public static String getCronetVersion() {
return CRONET_VERSION;
}
public static String getLastChange() {
return LAST_CHANGE;
}
}