All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.robolectric.shadows.gms.common.ShadowGoogleApiAvailability Maven / Gradle / Ivy

package org.robolectric.shadows.gms.common;

import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GoogleApiAvailability;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.shadow.api.Shadow;

@Implements(GoogleApiAvailability.class)
public class ShadowGoogleApiAvailability {
    private int availabilityCode = ConnectionResult.SERVICE_MISSING;
    private boolean isUserResolvableError = false;
    private String openSourceSoftwareLicenseInfo = "";
    private Dialog errorDialog;

    @Implementation
    public static GoogleApiAvailability getInstance(){
        return InstanceHolder.INSTANCE;
    }

    @Implementation
    public int isGooglePlayServicesAvailable(Context context){
        return availabilityCode;
    }

    public void setIsGooglePlayServicesAvailable(int availabilityCode) {
        this.availabilityCode = availabilityCode;
    }

    @Implementation
    public final boolean isUserResolvableError(int errorCode) {
        return isUserResolvableError;
    }

    public void setIsUserResolvableError(final boolean isUserResolvableError){
        this.isUserResolvableError = isUserResolvableError;
    }

    @Implementation
    public String getOpenSourceSoftwareLicenseInfo(Context context){
        return openSourceSoftwareLicenseInfo;
    }

    public void setOpenSourceSoftwareLicenseInfo(final String openSourceSoftwareLicenseInfo){
        this.openSourceSoftwareLicenseInfo = openSourceSoftwareLicenseInfo;
    }

    @Implementation
    public Dialog getErrorDialog(Activity activity, int errorCode, int requestCode) {
        return errorDialog;
    }

    @Implementation
    public Dialog getErrorDialog(Activity activity, int errorCode, int requestCode,
                                 DialogInterface.OnCancelListener cancelListener) {
        return errorDialog;
    }

    public void setErrorDialog(final Dialog errorDialog){
        this.errorDialog = errorDialog;
    }

    private static class InstanceHolder {
        private static final GoogleApiAvailability INSTANCE = Shadow.newInstance(
                GoogleApiAvailability.class, new Class[]{}, new Object[]{});

    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy