Loading api/current.txt +9 −0 Original line number Diff line number Diff line Loading @@ -53407,6 +53407,11 @@ package android.view.inputmethod { package android.view.inspector { public class GeneratedInspectionCompanionProvider implements android.view.inspector.InspectionCompanionProvider { ctor public GeneratedInspectionCompanionProvider(); method @Nullable public <T> android.view.inspector.InspectionCompanion<T> provide(@NonNull Class<T>); } public interface InspectionCompanion<T> { method @Nullable public default String getNodeName(); method public void mapProperties(@NonNull android.view.inspector.PropertyMapper); Loading @@ -53417,6 +53422,10 @@ package android.view.inspector { ctor public InspectionCompanion.UninitializedPropertyMapException(); } public interface InspectionCompanionProvider { method @Nullable public <T> android.view.inspector.InspectionCompanion<T> provide(@NonNull Class<T>); } public final class IntEnumMapping { method @Nullable public String get(int); } core/java/android/view/inspector/GeneratedInspectionCompanionProvider.java 0 → 100644 +47 −0 Original line number Diff line number Diff line /* * Copyright 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.view.inspector; import android.annotation.NonNull; import android.annotation.Nullable; /** * An inspection companion provider that loads pre-generated inspection companions * * @see android.processor.view.inspector.PlatformInspectableProcessor */ public class GeneratedInspectionCompanionProvider implements InspectionCompanionProvider { /** * The suffix used for the generated class */ private static final String COMPANION_SUFFIX = "$$InspectionCompanion"; @Override @Nullable @SuppressWarnings("unchecked") public <T> InspectionCompanion<T> provide(@NonNull Class<T> cls) { final String companionName = cls.getName() + COMPANION_SUFFIX; try { final Class<InspectionCompanion<T>> companionClass = (Class<InspectionCompanion<T>>) cls.getClassLoader().loadClass(companionName); return companionClass.newInstance(); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) { return null; } } } core/java/android/view/inspector/InspectionCompanionProvider.java 0 → 100644 +37 −0 Original line number Diff line number Diff line /* * Copyright 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.view.inspector; import android.annotation.NonNull; import android.annotation.Nullable; /** * An interface for services that can provide inspection companions for a class. */ public interface InspectionCompanionProvider { /** * Provide an {@link InspectionCompanion} for the supplied class. * * Implementing classes must not cache companion instances, and should instantiate a new one * for each request. * * @param cls A {@link Class} representing the inspectable type * @param <T> The type to find the companion for * @return The inspection companion for the supplied type */ @Nullable <T> InspectionCompanion<T> provide(@NonNull Class<T> cls); } Loading
api/current.txt +9 −0 Original line number Diff line number Diff line Loading @@ -53407,6 +53407,11 @@ package android.view.inputmethod { package android.view.inspector { public class GeneratedInspectionCompanionProvider implements android.view.inspector.InspectionCompanionProvider { ctor public GeneratedInspectionCompanionProvider(); method @Nullable public <T> android.view.inspector.InspectionCompanion<T> provide(@NonNull Class<T>); } public interface InspectionCompanion<T> { method @Nullable public default String getNodeName(); method public void mapProperties(@NonNull android.view.inspector.PropertyMapper); Loading @@ -53417,6 +53422,10 @@ package android.view.inspector { ctor public InspectionCompanion.UninitializedPropertyMapException(); } public interface InspectionCompanionProvider { method @Nullable public <T> android.view.inspector.InspectionCompanion<T> provide(@NonNull Class<T>); } public final class IntEnumMapping { method @Nullable public String get(int); }
core/java/android/view/inspector/GeneratedInspectionCompanionProvider.java 0 → 100644 +47 −0 Original line number Diff line number Diff line /* * Copyright 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.view.inspector; import android.annotation.NonNull; import android.annotation.Nullable; /** * An inspection companion provider that loads pre-generated inspection companions * * @see android.processor.view.inspector.PlatformInspectableProcessor */ public class GeneratedInspectionCompanionProvider implements InspectionCompanionProvider { /** * The suffix used for the generated class */ private static final String COMPANION_SUFFIX = "$$InspectionCompanion"; @Override @Nullable @SuppressWarnings("unchecked") public <T> InspectionCompanion<T> provide(@NonNull Class<T> cls) { final String companionName = cls.getName() + COMPANION_SUFFIX; try { final Class<InspectionCompanion<T>> companionClass = (Class<InspectionCompanion<T>>) cls.getClassLoader().loadClass(companionName); return companionClass.newInstance(); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) { return null; } } }
core/java/android/view/inspector/InspectionCompanionProvider.java 0 → 100644 +37 −0 Original line number Diff line number Diff line /* * Copyright 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.view.inspector; import android.annotation.NonNull; import android.annotation.Nullable; /** * An interface for services that can provide inspection companions for a class. */ public interface InspectionCompanionProvider { /** * Provide an {@link InspectionCompanion} for the supplied class. * * Implementing classes must not cache companion instances, and should instantiate a new one * for each request. * * @param cls A {@link Class} representing the inspectable type * @param <T> The type to find the companion for * @return The inspection companion for the supplied type */ @Nullable <T> InspectionCompanion<T> provide(@NonNull Class<T> cls); }