package com.jdroid.android.google; import android.support.annotation.NonNull; import com.google.android.gms.common.api.Result; import com.google.android.gms.common.api.ResultCallback; import com.jdroid.android.application.AbstractApplication; public abstract class SafeResultCallback<R extends Result> implements ResultCallback<R> { @Override public final void onResult(@NonNull R result) { try { if (result.getStatus().isSuccess()) { onSuccessResult(result); } else { onFailedResult(result); } } catch (Exception e) { AbstractApplication.get().getExceptionHandler().logHandledException(e); } } public abstract void onSuccessResult(@NonNull R result); public abstract void onFailedResult(@NonNull R result); }