001package com.gigya.android.sdk.network.adapter; 002 003import android.content.Context; 004 005import com.gigya.android.sdk.api.GigyaApiRequest; 006import com.gigya.android.sdk.api.IApiRequestFactory; 007 008public class RestAdapter implements IRestAdapter { 009 010 public enum HttpMethod { 011 012 GET(0), 013 POST(1); 014 015 private final int method; 016 017 HttpMethod(int method) { 018 this.method = method; 019 } 020 021 public int intValue() { 022 return method; 023 } 024 025 public static HttpMethod fromInt(int method) { 026 if (method == 1) { 027 return POST; 028 } 029 return GET; 030 } 031 } 032 033 public static final int GET = HttpMethod.GET.intValue(); 034 public static final int POST = HttpMethod.POST.intValue(); 035 036 private NetworkProvider _networkProvider; 037 038 public RestAdapter(Context context, IApiRequestFactory requestFactory) { 039 if (VolleyNetworkProvider.isAvailable()) { 040 _networkProvider = new VolleyNetworkProvider(requestFactory, context); 041 } else { 042 _networkProvider = new HttpNetworkProvider(requestFactory); 043 } 044 } 045 046 @Override 047 public void send(GigyaApiRequest apiRequest, boolean blocking, IRestAdapterCallback requestCallbacks) { 048 if (blocking) { 049 sendBlocking(apiRequest, requestCallbacks); 050 return; 051 } 052 _networkProvider.addToQueue(apiRequest, requestCallbacks); 053 } 054 055 @Override 056 public void sendBlocking(GigyaApiRequest apiRequest, IRestAdapterCallback requestCallbacks) { 057 _networkProvider.sendBlocking(apiRequest, requestCallbacks); 058 } 059 060 @Override 061 public void block() { 062 _networkProvider.block(); 063 } 064 065 @Override 066 public void release() { 067 _networkProvider.release(); 068 } 069 070 @Override 071 public void cancel(String tag) { 072 _networkProvider.cancel(tag); 073 } 074 075 @Override 076 public String getProviderType() { 077 try { 078 return _networkProvider.getClass().getSimpleName(); 079 } catch (Exception ex) { 080 ex.printStackTrace(); 081 } 082 return null; 083 } 084}