Add stubs

This commit is contained in:
Tony Torralba
2021-09-21 12:10:05 +02:00
parent 0c1f3ed0b3
commit 99881db8bd
15 changed files with 1090 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
/*
* Copyright (C) 2013 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.annotation;
public @interface Nullable {
}

View File

@@ -0,0 +1,72 @@
/*
* Copyright (C) 2018 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.content;
import androidx.annotation.NonNull;
import android.annotation.Nullable;
import android.content.res.AssetFileDescriptor;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.os.CancellationSignal;
import android.os.ParcelFileDescriptor;
import android.os.RemoteException;
import java.io.FileNotFoundException;
public interface ContentInterface {
public @Nullable Cursor query(@NonNull Uri uri, @Nullable String[] projection,
@Nullable Bundle queryArgs, @Nullable CancellationSignal cancellationSignal)
throws RemoteException;
public @Nullable String getType(@NonNull Uri uri) throws RemoteException;
public @Nullable String[] getStreamTypes(@NonNull Uri uri, @NonNull String mimeTypeFilter)
throws RemoteException;
public @Nullable Uri canonicalize(@NonNull Uri uri) throws RemoteException;
public @Nullable Uri uncanonicalize(@NonNull Uri uri) throws RemoteException;
public boolean refresh(@NonNull Uri uri, @Nullable Bundle extras,
@Nullable CancellationSignal cancellationSignal) throws RemoteException;
public @Nullable Uri insert(@NonNull Uri uri, @Nullable ContentValues initialValues,
@Nullable Bundle extras) throws RemoteException;
public int bulkInsert(@NonNull Uri uri, @NonNull ContentValues[] initialValues)
throws RemoteException;
public int delete(@NonNull Uri uri, @Nullable Bundle extras) throws RemoteException;
public int update(@NonNull Uri uri, @Nullable ContentValues values, @Nullable Bundle extras)
throws RemoteException;
public @Nullable ParcelFileDescriptor openFile(@NonNull Uri uri, @NonNull String mode,
@Nullable CancellationSignal signal)
throws RemoteException, FileNotFoundException;
public @Nullable AssetFileDescriptor openAssetFile(@NonNull Uri uri, @NonNull String mode,
@Nullable CancellationSignal signal)
throws RemoteException, FileNotFoundException;
public @Nullable AssetFileDescriptor openTypedAssetFile(@NonNull Uri uri,
@NonNull String mimeTypeFilter, @Nullable Bundle opts,
@Nullable CancellationSignal signal)
throws RemoteException, FileNotFoundException;
public @Nullable Bundle call(@NonNull String authority, @NonNull String method,
@Nullable String arg, @Nullable Bundle extras) throws RemoteException;
}

View File

@@ -0,0 +1,226 @@
/*
* Copyright (C) 2006 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.content;
import androidx.annotation.NonNull;
import android.annotation.Nullable;
import android.content.pm.PathPermission;
import android.content.res.AssetFileDescriptor;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.os.CancellationSignal;
import android.os.ParcelFileDescriptor;
import android.util.Pair;
import java.io.FileNotFoundException;
public abstract class ContentProvider implements ContentInterface {
public ContentProvider() {}
public ContentProvider(Context context, String readPermission, String writePermission,
PathPermission[] pathPermissions) {}
public final @Nullable Context getContext() {
return null;
}
public final Context requireContext() {
return null;
}
public final @Nullable String getCallingPackage() {
return null;
}
public final @Nullable String getCallingAttributionTag() {
return null;
}
public final @Nullable String getCallingFeatureId() {
return null;
}
public final @Nullable String getCallingPackageUnchecked() {
return null;
}
public void onCallingPackageChanged() {}
public final class CallingIdentity {
public CallingIdentity(long binderToken, Pair<String, String> callingPackage) {}
}
public final @NonNull CallingIdentity clearCallingIdentity() {
return null;
}
public final void restoreCallingIdentity(@NonNull CallingIdentity identity) {}
public final @Nullable String getReadPermission() {
return null;
}
public final @Nullable String getWritePermission() {
return null;
}
public final @Nullable PathPermission[] getPathPermissions() {
return null;
}
public final void setAppOps(int readOp, int writeOp) {}
public final void setTransportLoggingEnabled(boolean enabled) {}
public abstract boolean onCreate();
public abstract @Nullable Cursor query(@NonNull Uri uri, @Nullable String[] projection,
@Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder);
public @Nullable Cursor query(@NonNull Uri uri, @Nullable String[] projection,
@Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder,
@Nullable CancellationSignal cancellationSignal) {
return null;
}
@Override
public @Nullable Cursor query(@NonNull Uri uri, @Nullable String[] projection,
@Nullable Bundle queryArgs, @Nullable CancellationSignal cancellationSignal) {
return null;
}
@Override
public abstract @Nullable String getType(@NonNull Uri uri);
@Override
public @Nullable Uri canonicalize(@NonNull Uri url) {
return null;
}
@Override
public @Nullable Uri uncanonicalize(@NonNull Uri url) {
return null;
}
@Override
public boolean refresh(Uri uri, @Nullable Bundle extras,
@Nullable CancellationSignal cancellationSignal) {
return false;
}
public Uri rejectInsert(Uri uri, ContentValues values) {
return null;
}
public abstract @Nullable Uri insert(@NonNull Uri uri, @Nullable ContentValues values);
@Override
public @Nullable Uri insert(@NonNull Uri uri, @Nullable ContentValues values,
@Nullable Bundle extras) {
return null;
}
@Override
public int bulkInsert(@NonNull Uri uri, @NonNull ContentValues[] values) {
return 0;
}
public abstract int delete(@NonNull Uri uri, @Nullable String selection,
@Nullable String[] selectionArgs);
@Override
public int delete(@NonNull Uri uri, @Nullable Bundle extras) {
return 0;
}
public abstract int update(@NonNull Uri uri, @Nullable ContentValues values,
@Nullable String selection, @Nullable String[] selectionArgs);
@Override
public int update(@NonNull Uri uri, @Nullable ContentValues values, @Nullable Bundle extras) {
return 0;
}
public @Nullable ParcelFileDescriptor openFile(@NonNull Uri uri, @NonNull String mode)
throws FileNotFoundException {
return null;
}
@Override
public @Nullable ParcelFileDescriptor openFile(@NonNull Uri uri, @NonNull String mode,
@Nullable CancellationSignal signal) throws FileNotFoundException {
return null;
}
public @Nullable AssetFileDescriptor openAssetFile(@NonNull Uri uri, @NonNull String mode)
throws FileNotFoundException {
return null;
}
@Override
public @Nullable AssetFileDescriptor openAssetFile(@NonNull Uri uri, @NonNull String mode,
@Nullable CancellationSignal signal) throws FileNotFoundException {
return null;
}
@Override
public @Nullable String[] getStreamTypes(@NonNull Uri uri, @NonNull String mimeTypeFilter) {
return null;
}
public @Nullable AssetFileDescriptor openTypedAssetFile(@NonNull Uri uri,
@NonNull String mimeTypeFilter, @Nullable Bundle opts) throws FileNotFoundException {
return null;
}
public static int getUserIdFromAuthority(String auth, int defaultUserId) {
return 0;
}
public static int getUserIdFromAuthority(String auth) {
return 0;
}
public static int getUserIdFromUri(Uri uri, int defaultUserId) {
return 0;
}
public static int getUserIdFromUri(Uri uri) {
return 0;
}
public static String getAuthorityWithoutUserId(String auth) {
return null;
}
public static Uri getUriWithoutUserId(Uri uri) {
return null;
}
public static boolean uriHasUserId(Uri uri) {
return false;
}
public static Uri maybeAddUserId(Uri uri, int userId) {
return null;
}
public @Nullable Bundle call(@NonNull String method, @Nullable String arg,
@Nullable Bundle extras) {
return null;
}
}

View File

@@ -0,0 +1,156 @@
/*
* Copyright (C) 2007 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.content;
import android.annotation.Nullable;
import android.os.Parcel;
import android.os.Parcelable;
import android.util.ArrayMap;
import java.util.ArrayList;
import java.util.Map;
import java.util.Set;
public final class ContentValues implements Parcelable {
public ContentValues() {}
public ContentValues(int size) {}
public ContentValues(ContentValues from) {}
@Override
public boolean equals(Object object) {
return false;
}
public ArrayMap<String, Object> getValues() {
return null;
}
@Override
public int hashCode() {
return 0;
}
public void put(String key, String value) {}
public void putAll(ContentValues other) {}
public void put(String key, Byte value) {}
public void put(String key, Short value) {}
public void put(String key, Integer value) {}
public void put(String key, Long value) {}
public void put(String key, Float value) {}
public void put(String key, Double value) {}
public void put(String key, Boolean value) {}
public void put(String key, byte[] value) {}
public void putNull(String key) {}
public void putObject(@Nullable String key, @Nullable Object value) {}
public int size() {
return 0;
}
public boolean isEmpty() {
return false;
}
public void remove(String key) {}
public void clear() {}
public boolean containsKey(String key) {
return false;
}
public Object get(String key) {
return null;
}
public String getAsString(String key) {
return null;
}
public Long getAsLong(String key) {
return null;
}
public Integer getAsInteger(String key) {
return null;
}
public Short getAsShort(String key) {
return null;
}
public Byte getAsByte(String key) {
return null;
}
public Double getAsDouble(String key) {
return null;
}
public Float getAsFloat(String key) {
return null;
}
public Boolean getAsBoolean(String key) {
return null;
}
public byte[] getAsByteArray(String key) {
return null;
}
public Set<Map.Entry<String, Object>> valueSet() {
return null;
}
public Set<String> keySet() {
return null;
}
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int flags) {}
public void putStringArrayList(String key, ArrayList<String> value) {}
public ArrayList<String> getStringArrayList(String key) {
return null;
}
@Override
public String toString() {
return null;
}
public static boolean isSupportedValue(Object value) {
return false;
}
}

View File

@@ -0,0 +1,39 @@
/*
* Copyright (C) 2009 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.content.pm;
import android.os.Parcel;
import android.os.PatternMatcher;
public class PathPermission extends PatternMatcher {
public PathPermission(String pattern, int type, String readPermission, String writePermission) {
super(null);
}
public PathPermission(Parcel src) {
super(null);
}
public String getReadPermission() {
return null;
}
public String getWritePermission() {
return null;
}
public void writeToParcel(Parcel dest, int flags) {}
}

View File

@@ -0,0 +1,80 @@
/*
* Copyright (C) 2006 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.content.res;
import android.os.Bundle;
import android.os.Parcel;
import android.os.ParcelFileDescriptor;
import android.os.Parcelable;
import java.io.Closeable;
import java.io.FileDescriptor;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class AssetFileDescriptor implements Parcelable, Closeable {
public AssetFileDescriptor(ParcelFileDescriptor fd, long startOffset, long length) {}
public AssetFileDescriptor(ParcelFileDescriptor fd, long startOffset, long length,
Bundle extras) {}
public ParcelFileDescriptor getParcelFileDescriptor() {
return null;
}
public FileDescriptor getFileDescriptor() {
return null;
}
public long getStartOffset() {
return 0;
}
public Bundle getExtras() {
return null;
}
public long getLength() {
return 0;
}
public long getDeclaredLength() {
return 0;
}
@Override
public void close() throws IOException {}
public FileInputStream createInputStream() throws IOException {
return null;
}
public FileOutputStream createOutputStream() throws IOException {
return null;
}
@Override
public String toString() {
return null;
}
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel out, int flags) {}
}

View File

@@ -0,0 +1,5 @@
package android.database;
public interface Cursor {
}

View File

@@ -0,0 +1,34 @@
/*
* Copyright (C) 2012 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;
public final class CancellationSignal {
public CancellationSignal() {}
public boolean isCanceled() {
return false;
}
public void throwIfCanceled() {}
public void cancel() {}
public void setOnCancelListener(OnCancelListener listener) {}
public interface OnCancelListener {
void onCancel();
}
}

View File

@@ -0,0 +1,149 @@
/*
* Copyright (C) 2006 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;
import java.io.Closeable;
import java.io.File;
import java.io.FileDescriptor;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.DatagramSocket;
import java.net.Socket;
public class ParcelFileDescriptor implements Parcelable, Closeable {
public ParcelFileDescriptor(ParcelFileDescriptor wrapped) {}
public ParcelFileDescriptor(FileDescriptor fd) {}
public ParcelFileDescriptor(FileDescriptor fd, FileDescriptor commChannel) {}
public static ParcelFileDescriptor open(File file, int mode) throws FileNotFoundException {
return null;
}
public static ParcelFileDescriptor dup(FileDescriptor orig) throws IOException {
return null;
}
public ParcelFileDescriptor dup() throws IOException {
return null;
}
public static ParcelFileDescriptor fromFd(int fd) throws IOException {
return null;
}
public static ParcelFileDescriptor adoptFd(int fd) {
return null;
}
public static ParcelFileDescriptor fromSocket(Socket socket) {
return null;
}
public static ParcelFileDescriptor fromDatagramSocket(DatagramSocket datagramSocket) {
return null;
}
public static ParcelFileDescriptor[] createPipe() throws IOException {
return null;
}
public static ParcelFileDescriptor[] createReliablePipe() throws IOException {
return null;
}
public static ParcelFileDescriptor[] createSocketPair() throws IOException {
return null;
}
public static ParcelFileDescriptor[] createSocketPair(int type) throws IOException {
return null;
}
public static ParcelFileDescriptor[] createReliableSocketPair() throws IOException {
return null;
}
public static ParcelFileDescriptor[] createReliableSocketPair(int type) throws IOException {
return null;
}
public static ParcelFileDescriptor fromData(byte[] data, String name) throws IOException {
return null;
}
public static int parseMode(String mode) {
return 0;
}
public static File getFile(FileDescriptor fd) throws IOException {
return null;
}
public FileDescriptor getFileDescriptor() {
return null;
}
public long getStatSize() {
return 0;
}
public long seekTo(long pos) throws IOException {
return 0;
}
public int getFd() {
return 0;
}
public int detachFd() {
return 0;
}
@Override
public void close() throws IOException {}
public void closeWithError(String msg) throws IOException {}
public void releaseResources() {}
public boolean canDetectErrors() {
return false;
}
public void checkError() throws IOException {}
@Override
public String toString() {
return null;
}
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel out, int flags) {}
public interface OnCloseListener {
public void onClose(IOException e);
}
public static class FileDescriptorDetachedException extends IOException {
public FileDescriptorDetachedException() {}
}
}

View File

@@ -0,0 +1,44 @@
/*
* Copyright (C) 2008 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;
public class PatternMatcher implements Parcelable {
public PatternMatcher(String pattern, int type) {}
public final String getPath() {
return null;
}
public final int getType() {
return 0;
}
public boolean match(String str) {
return false;
}
public String toString() {
return null;
}
public int describeContents() {
return 0;
}
public void writeToParcel(Parcel dest, int flags) {}
public PatternMatcher(Parcel src) {}
}

View File

@@ -0,0 +1,35 @@
/*
* Copyright (C) 2006 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;
import android.util.AndroidException;
public class RemoteException extends AndroidException {
public RemoteException() {}
public RemoteException(String message) {}
public RemoteException(String message, Throwable cause, boolean enableSuppression,
boolean writableStackTrace) {}
public RuntimeException rethrowAsRuntimeException() {
return null;
}
public RuntimeException rethrowFromSystemServer() {
return null;
}
}

View File

@@ -0,0 +1,26 @@
/*
* Copyright (C) 2006 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.util;
public class AndroidException extends Exception {
public AndroidException() {}
public AndroidException(String name) {}
public AndroidException(String name, Throwable cause) {}
public AndroidException(Exception cause) {}
}

View File

@@ -0,0 +1,149 @@
/*
* Copyright (C) 2013 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.util;
import java.util.Collection;
import java.util.Map;
import java.util.Set;
public final class ArrayMap<K, V> implements Map<K, V> {
public static final ArrayMap EMPTY = new ArrayMap<>(-1);
public ArrayMap() {}
public ArrayMap(int capacity) {}
public ArrayMap(int capacity, boolean identityHashCode) {}
public ArrayMap(ArrayMap<K, V> map) {}
@Override
public void clear() {}
public void erase() {}
public void ensureCapacity(int minimumCapacity) {}
@Override
public boolean containsKey(Object key) {
return false;
}
public int indexOfKey(Object key) {
return 0;
}
public int indexOfValue(Object value) {
return 0;
}
@Override
public boolean containsValue(Object value) {
return false;
}
@Override
public V get(Object key) {
return null;
}
public K keyAt(int index) {
return null;
}
public V valueAt(int index) {
return null;
}
public V setValueAt(int index, V value) {
return null;
}
@Override
public boolean isEmpty() {
return false;
}
@Override
public V put(K key, V value) {
return null;
}
public void append(K key, V value) {}
public void validate() {}
public void putAll(ArrayMap<? extends K, ? extends V> array) {}
@Override
public V remove(Object key) {
return null;
}
public V removeAt(int index) {
return null;
}
@Override
public int size() {
return 0;
}
@Override
public boolean equals(Object object) {
return false;
}
@Override
public int hashCode() {
return 0;
}
@Override
public String toString() {
return null;
}
public boolean containsAll(Collection<?> collection) {
return false;
}
@Override
public void putAll(Map<? extends K, ? extends V> map) {}
public boolean removeAll(Collection<?> collection) {
return false;
}
public boolean retainAll(Collection<?> collection) {
return false;
}
@Override
public Set<Map.Entry<K, V>> entrySet() {
return null;
}
@Override
public Set<K> keySet() {
return null;
}
@Override
public Collection<V> values() {
return null;
}
}

View File

@@ -0,0 +1,39 @@
/*
* Copyright (C) 2009 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.util;
public class Pair<F, S> {
public Pair(F first, S second) {}
@Override
public boolean equals(Object o) {
return false;
}
@Override
public int hashCode() {
return 0;
}
@Override
public String toString() {
return null;
}
public static <A, B> Pair<A, B> create(A a, B b) {
return null;
}
}

View File

@@ -0,0 +1,19 @@
/*
* Copyright (C) 2013 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 androidx.annotation;
public @interface NonNull {
}