Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit af659d8a authored by Anton Hansson's avatar Anton Hansson Committed by android-build-merger
Browse files

Merge "Add SdkExtensions class"

am: 0899f50b

Change-Id: Id42de164b5c6b3238729cc83b1cfaf5964efa1c7
parents ce0ca9c5 0899f50b
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -561,6 +561,12 @@ filegroup {
    ],
}

java_library {
    name: "framework-annotations-lib",
    srcs: [ ":framework-annotations" ],
    sdk_version: "current",
}

filegroup {
    name: "framework-networkstack-shared-srcs",
    srcs: [
+1 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
apex {
    name: "com.android.sdkext",
    manifest: "manifest.json",
    java_libs: [ "framework-sdkext" ],
    key: "com.android.sdkext.key",
    certificate: ":com.android.sdkext.certificate",
}
+9 −0
Original line number Diff line number Diff line
@@ -19,3 +19,12 @@ filegroup {
    ],
    path: "java",
}

java_library {
    name: "framework-sdkext",
    srcs: [ ":framework-sdkext-sources" ],
    sdk_version: "system_current",
    libs: [ "framework-annotations-lib" ],
    permitted_packages: [ "android.os.ext" ],
    installable: true,
}
+53 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2019 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.os.ext;

import android.annotation.IntDef;
import android.os.Build.VERSION_CODES;
import android.os.SystemProperties;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

/** @hide */
public class SdkExtensions {

    private static final int R_EXTENSION_INT;
    static {
        R_EXTENSION_INT = SystemProperties.getInt("persist.com.android.sdkext.sdk_info", 0);
    }

    /** Values suitable as parameters for {@link #getExtensionVersion(int)}. */
    @IntDef(value = { VERSION_CODES.R })
    @Retention(RetentionPolicy.SOURCE)
    public @interface SdkVersion {}

    /**
     * Return the version of the extension to the given SDK.
     *
     * @param sdk the SDK version to get the extension version of.
     * @see SdkVersion
     * @throws IllegalArgumentException if sdk is not an sdk version with extensions
     */
    public static int getExtensionVersion(@SdkVersion int sdk) {
        if (sdk < VERSION_CODES.R) {
            throw new IllegalArgumentException();
        }
        return R_EXTENSION_INT;
    }

}
+5 −0
Original line number Diff line number Diff line
<HTML>
<BODY>
Provides APIs to interface with the SDK extensions.
</BODY>
</HTML>
Loading