package ch.pizzalink.android.activity; import android.annotation.TargetApi; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.support.v4.content.ContextCompat; import android.util.Log; import android.view.Window; import android.view.WindowManager; import java.util.ArrayList; import java.util.HashMap; import butterknife.ButterKnife; import ch.pizzalink.android.R; import ch.pizzalink.android.api.ApiConstants; import ch.pizzalink.android.api.ApiErrorUtils; import ch.pizzalink.android.api.ApiService; import ch.pizzalink.android.api.ResponseArray; import ch.pizzalink.android.api.ResponseObject; import ch.pizzalink.android.helper.DialogHelper; import ch.pizzalink.android.helper.DisplayHelper; import ch.pizzalink.android.helper.NetworkHelper; import ch.pizzalink.android.helper.SessionHelper; import ch.pizzalink.android.helper.SharedPrefsHelper; import ch.pizzalink.android.model.AppVersionModel; import ch.pizzalink.android.model.CategoryModel; import ch.pizzalink.android.model.cart.CartInfoModel; import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; public class SplashActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); ButterKnife.bind(this); //DisplayHelper.changeStatusColor(); if(NetworkHelper.isNetworkAvailable()) checkVersion(); else DialogHelper.showNoNetworkDialog(); } private void checkVersion(){ Call> call = ApiService.apiInterface.checkUpdate(getCheckUpdateParams()); call.enqueue(new Callback>() { @Override public void onResponse(Call> call, Response> response) { if(response.isSuccessful()){ if(response.body().isSuccess()){ getCategoryList(); } else{ DialogHelper.showUpdateAppDialog(SplashActivity.this); } } else{ ApiErrorUtils.parseError(response); } } @Override public void onFailure(Call> call, Throwable t) { DialogHelper.showFailedDialog(); } }); } private HashMap getCheckUpdateParams(){ HashMap params = new HashMap<>(); params.put("application", ApiConstants.APP_TYPE_ID_ANDROID); params.put("version", getAppVersionCode()); return params; } private int getAppVersionCode(){ PackageInfo pInfo = null; try { pInfo = getPackageManager().getPackageInfo(getPackageName(), 0); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); return 0; } return pInfo.versionCode; } private void getCategoryList(){ Call> call = ApiService.apiInterface.getAllCategories(); call.enqueue(new Callback>() { @Override public void onResponse(Call> call, Response> response) { if(response.isSuccessful() && response.body().getData() != null && response.body().isSuccess()){ CategoryModel.checkNull(response.body().getData()); SharedPrefsHelper.saveCategoryList(response.body().getData()); checkCustomerToken(); } else ApiErrorUtils.parseError(response); } @Override public void onFailure(Call> call, Throwable t) { DialogHelper.showFailedDialog(); } }); } /* private void checkCustomerToken(){ if(SessionHelper.isCustomerLoggedIn()){ if(SessionHelper.getCustomerToken().isCustomerTokenAlive()) getCartItemCount(); else refreshCustomerToken(); } else openActivity(LoginActivity.class); } */ private void checkCustomerToken(){ if(SessionHelper.isCustomerLoggedIn()){ getCartItemCount(); } else{ openActivity(LoginActivity.class); } } private void openActivity(final Class cls){ Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { startActivity(new Intent(SplashActivity.this, cls)); finish(); } }, 1000); } private void refreshCustomerToken(){ /* Call call = ApiService.apiInterface.refreshCustomerToken(SessionManager.getCustomerToken().getRefreshToken()); call.enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { ApiService.getInstance().reset(); if(response.isSuccessful() && response.body().isSuccess()) { SessionManager.saveCustomerToken(response.body().getCustomerToken(), Constants.PUSULA_CARD_MEMBER_TYPE_CUSTOMER); getCartItemCount(); } else DialogHelper.showAlertDialog(BaseActivity.currentActivity, "Bir hata oluştu. Lütfen daha sonra tekrar deneyin."); } @Override public void onFailure(Call call, Throwable t) { ApiService.getInstance().reset(); DialogHelper.showAlertDialog(BaseActivity.currentActivity, "Bir hata oluştu. Lütfen daha sonra tekrar deneyin."); } }); */ } private void getCartItemCount(){ Call> call = ApiService.apiInterface.getCartProducts( SessionHelper.getCustomerToken().getToken()); call.enqueue(new Callback>() { @Override public void onResponse(Call> call, Response> response) { if(response.isSuccessful() && response.body().getData() != null && response.body().isSuccess()){ SharedPrefsHelper.setCartItemCount(response.body().getData().getProducts().size()); openActivity(MainActivity.class); } else //response.body().getErrorCode() ApiErrorUtils.parseError(response); } @Override public void onFailure(Call> call, Throwable t) { DialogHelper.showFailedDialog(); } }); } }