Loading src/java/com/android/internal/telephony/uicc/euicc/async/AsyncResultCallback.java 0 → 100644 +46 −0 Original line number Original line Diff line number Diff line /* * Copyright (C) 2017 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 com.android.internal.telephony.uicc.euicc.async; /** * Class to deliver the returned value from an asynchronous call. Either {@link #onResult(Result)} * or {@link #onException(Throwable)} will be called. You can create an anonymous subclass and * override these methods to handle the result or the throwable from an asynchronous call, for * example: * * <pre> * doSomethingAsync( * new AsyncResultCallback<Result>() { * void onResult(Result r) { * Log.i("Got the result: %s", r.toString()); * } * * void onException(Throwable e) {...} * }); * <pre> * * @param <Result> The returned value of the asynchronous call. * @hide */ public abstract class AsyncResultCallback<Result> { /** This will be called when the result is returned. */ public abstract void onResult(Result result); /** This will be called when any exception is thrown. */ public void onException(Throwable e) {} } src/java/com/android/internal/telephony/uicc/euicc/async/AsyncResultHelper.java 0 → 100644 +71 −0 Original line number Original line Diff line number Diff line /* * Copyright (C) 2017 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 com.android.internal.telephony.uicc.euicc.async; import android.annotation.Nullable; import android.os.Handler; /** * Helper on {@link AsyncResultCallback}. * * @hide */ public final class AsyncResultHelper { /** * Calls the {@code callback} to return the {@code result} object. The {@code callback} will be * run in the {@code handler}. If the {@code handler} is null, the callback will be called * immediately. * * @param <T> Result type. */ public static <T> void returnResult( final T result, final AsyncResultCallback<T> callback, @Nullable Handler handler) { if (handler == null) { callback.onResult(result); } else { handler.post( new Runnable() { @Override public void run() { callback.onResult(result); } }); } } /** * Calls the {@code callback} to return the thrown {@code e} exception. The {@code callback} * will be run in the {@code handler}. If the {@code handler} is null, the callback will be * called immediately. */ public static void throwException( final Throwable e, final AsyncResultCallback<?> callback, @Nullable Handler handler) { if (handler == null) { callback.onException(e); } else { handler.post( new Runnable() { @Override public void run() { callback.onException(e); } }); } } private AsyncResultHelper() {} } Loading
src/java/com/android/internal/telephony/uicc/euicc/async/AsyncResultCallback.java 0 → 100644 +46 −0 Original line number Original line Diff line number Diff line /* * Copyright (C) 2017 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 com.android.internal.telephony.uicc.euicc.async; /** * Class to deliver the returned value from an asynchronous call. Either {@link #onResult(Result)} * or {@link #onException(Throwable)} will be called. You can create an anonymous subclass and * override these methods to handle the result or the throwable from an asynchronous call, for * example: * * <pre> * doSomethingAsync( * new AsyncResultCallback<Result>() { * void onResult(Result r) { * Log.i("Got the result: %s", r.toString()); * } * * void onException(Throwable e) {...} * }); * <pre> * * @param <Result> The returned value of the asynchronous call. * @hide */ public abstract class AsyncResultCallback<Result> { /** This will be called when the result is returned. */ public abstract void onResult(Result result); /** This will be called when any exception is thrown. */ public void onException(Throwable e) {} }
src/java/com/android/internal/telephony/uicc/euicc/async/AsyncResultHelper.java 0 → 100644 +71 −0 Original line number Original line Diff line number Diff line /* * Copyright (C) 2017 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 com.android.internal.telephony.uicc.euicc.async; import android.annotation.Nullable; import android.os.Handler; /** * Helper on {@link AsyncResultCallback}. * * @hide */ public final class AsyncResultHelper { /** * Calls the {@code callback} to return the {@code result} object. The {@code callback} will be * run in the {@code handler}. If the {@code handler} is null, the callback will be called * immediately. * * @param <T> Result type. */ public static <T> void returnResult( final T result, final AsyncResultCallback<T> callback, @Nullable Handler handler) { if (handler == null) { callback.onResult(result); } else { handler.post( new Runnable() { @Override public void run() { callback.onResult(result); } }); } } /** * Calls the {@code callback} to return the thrown {@code e} exception. The {@code callback} * will be run in the {@code handler}. If the {@code handler} is null, the callback will be * called immediately. */ public static void throwException( final Throwable e, final AsyncResultCallback<?> callback, @Nullable Handler handler) { if (handler == null) { callback.onException(e); } else { handler.post( new Runnable() { @Override public void run() { callback.onException(e); } }); } } private AsyncResultHelper() {} }