package com.basket.activities; import java.util.ArrayList; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.Window; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import com.basket.containers.BasketSession; import com.basket.containers.CategoryList; import com.basket.containers.DealList; import com.basket.containers.EventList; import com.basket.general.BuyEvent; import com.basket.general.CarJsonSpringAndroidSpiceService; import com.basket.general.User; import com.basket.restrequest.AdminRequest; import com.basket.restrequest.GetCategoriesRequest; import com.basket.restrequest.GetDOTDRequest; import com.basket.restrequest.UserRequest; import com.example.basket.R; import com.octo.android.robospice.SpiceManager; import com.octo.android.robospice.exception.RequestCancelledException; import com.octo.android.robospice.persistence.DurationInMillis; import com.octo.android.robospice.persistence.exception.SpiceException; import com.octo.android.robospice.request.listener.RequestListener; import com.octo.android.robospice.request.listener.RequestProgress; import com.octo.android.robospice.request.listener.RequestProgressListener; public class LoginActivity extends Activity { private TextView mCreateAccountTextView, mForgotAccountTextView; private Button mLoginButton; private static final int SIZE_OF_BUFFER_TO_SIMULATE_OUT_OF_MEMORY = 1000000; private SpiceManager spiceManager = new SpiceManager(CarJsonSpringAndroidSpiceService.class); private GetCategoriesRequest JsonSpringAndroidRequest; private UserRequest uReq; private static final String JSON_CACHE_KEY = "tweets_json"; private AdminRequest adminRequest; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); spiceManager.addListenerIfPending(User.class, JSON_CACHE_KEY, new UserRequestListener()); LoginActivity.this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_login); mCreateAccountTextView = (TextView) this.findViewById(R.id.createAccount); mCreateAccountTextView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (spiceManager.isStarted()) { spiceManager.cancelAllRequests(); spiceManager.shouldStop(); } Intent signup = new Intent(LoginActivity.this,SignUpActivity.class); overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left); startActivity(signup); } }); mForgotAccountTextView = (TextView)findViewById(R.id.forgotField); mForgotAccountTextView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (spiceManager.isStarted()) { spiceManager.cancelAllRequests(); spiceManager.shouldStop(); } Intent forgot = new Intent(LoginActivity.this, ForgotFieldActivity.class); startActivity(forgot); overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left); } }); // mLoginButton = (Button)findViewById(R.id.loginButton); mLoginButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d("service", "click"); if(!spiceManager.isStarted()){ spiceManager.start(LoginActivity.this); JsonSpringAndroidRequest = new GetCategoriesRequest(); spiceManager.execute(JsonSpringAndroidRequest, JSON_CACHE_KEY, DurationInMillis.ALWAYS_EXPIRED, new GetCategoriesListener()); } } }); } private Intent intent; private class UserRequestListener implements RequestListener<User>, RequestProgressListener { @Override public void onRequestFailure(SpiceException arg0) { Log.d("error",arg0.getMessage()); if (!(arg0 instanceof RequestCancelledException)) { Toast.makeText(LoginActivity.this, "Wrong Username or password", Toast.LENGTH_SHORT).show(); } if(spiceManager.isStarted()) spiceManager.shouldStop(); } @Override public void onRequestSuccess(User User) { Log.d("PROGRESS", "GETU"); BasketSession.beginSession(User); Log.d("try",BasketSession.getUser().getShippingAdress().toString()); intent = new Intent(LoginActivity.this,HomePageActivity.class); GetRecommendationsRequest recommendations = new GetRecommendationsRequest(User); spiceManager.execute(recommendations, JSON_CACHE_KEY, DurationInMillis.ALWAYS_EXPIRED, new GetRecommendationsListner()); } @Override public void onRequestProgressUpdate(RequestProgress arg0) { } } private class GetCategoriesListener implements RequestListener<CategoryList>, RequestProgressListener { @Override public void onRequestFailure(SpiceException arg0) { Log.d("error",arg0.getMessage()); if (!(arg0 instanceof RequestCancelledException)) { Toast.makeText(LoginActivity.this, "No connection to server", Toast.LENGTH_SHORT).show(); } if(spiceManager.isStarted()) spiceManager.shouldStop(); } @Override public void onRequestSuccess(CategoryList cat) { Log.d("PROGRESS", "GETCAT"); BasketSession.setCategories(cat.getCategories()); String email =((TextView)findViewById(R.id.email)).getText().toString().trim(); String password =((TextView)findViewById(R.id.password)).getText().toString().trim(); if(email.contains("@")){ adminRequest = new AdminRequest(email,password); spiceManager.execute(adminRequest, JSON_CACHE_KEY, DurationInMillis.ALWAYS_EXPIRED, new AdminRequestListner()); } else{ uReq = new UserRequest(email,password); spiceManager.execute(uReq, JSON_CACHE_KEY, DurationInMillis.ALWAYS_EXPIRED, new UserRequestListener()); } // String email =((TextView)findViewById(R.id.email)).getText().toString(); // String password =((TextView)findViewById(R.id.password)).getText().toString(); // UserRequest JsonSpringAndroidRequest = new UserRequest(email,password); // spiceManager.execute(JsonSpringAndroidRequest, JSON_CACHE_KEY, DurationInMillis.ALWAYS_EXPIRED, new UserRequestListener()); } @Override public void onRequestProgressUpdate(RequestProgress arg0) { } } private class GetRecommendationsListner implements RequestListener<EventList>, RequestProgressListener { @Override public void onRequestFailure(SpiceException arg0) { Log.d("error",arg0.getMessage()); if (!(arg0 instanceof RequestCancelledException)) { Toast.makeText(LoginActivity.this, "No connection to server", Toast.LENGTH_SHORT).show(); } if(spiceManager.isStarted()) spiceManager.shouldStop(); } @Override public void onRequestProgressUpdate(RequestProgress arg0) { } @Override public void onRequestSuccess(EventList arg0) { Log.d("PROGRESS", "Getting recomendations"); BasketSession.setRecommendations((ArrayList<BuyEvent>) arg0.getBuyEvents()); spiceManager.shouldStop(); startActivity(intent); // String email =((TextView)findViewById(R.id.email)).getText().toString(); // String password =((TextView)findViewById(R.id.password)).getText().toString(); // UserRequest JsonSpringAndroidRequest = new UserRequest(email,password); // spiceManager.execute(JsonSpringAndroidRequest, JSON_CACHE_KEY, DurationInMillis.ALWAYS_EXPIRED, new UserRequestListener()); //if(spiceManager.isStarted()) } } private class AdminRequestListner implements RequestListener<Boolean>, RequestProgressListener { @Override public void onRequestFailure(SpiceException arg0) { Log.d("error",arg0.getMessage()); if (!(arg0 instanceof RequestCancelledException)) { } Toast.makeText(LoginActivity.this, "Wrong Username or password", Toast.LENGTH_SHORT).show(); if(spiceManager.isStarted()) spiceManager.shouldStop(); } @Override public void onRequestProgressUpdate(RequestProgress arg0) { } @Override public void onRequestSuccess(Boolean arg0) { Log.d("PROGRESS", "GETAD"); Intent intent; if (arg0){ intent = new Intent(LoginActivity.this,AdminPageActivity.class); startActivity(intent); } spiceManager.shouldStop(); } } private class DealRequestListener implements RequestListener<DealList>, RequestProgressListener { @Override public void onRequestFailure(SpiceException arg0) { Log.d("error",arg0.getMessage()); if (!(arg0 instanceof RequestCancelledException)) { Toast.makeText(LoginActivity.this, "No connection to server", Toast.LENGTH_SHORT).show(); } if(spiceManager.isStarted()) spiceManager.shouldStop(); } @Override public void onRequestSuccess(DealList cat) { Log.d("PROGRESS", "GETDEAL"); BasketSession.setDeals(cat.getEvents()); String email =((TextView)findViewById(R.id.email)).getText().toString().trim(); String password =((TextView)findViewById(R.id.password)).getText().toString().trim(); if(email.contains("@")){ adminRequest = new AdminRequest(email,password); spiceManager.execute(adminRequest, JSON_CACHE_KEY, DurationInMillis.ALWAYS_EXPIRED, new AdminRequestListner()); } else{ uReq = new UserRequest(email,password); spiceManager.execute(uReq, JSON_CACHE_KEY, DurationInMillis.ALWAYS_EXPIRED, new UserRequestListener()); } } @Override public void onRequestProgressUpdate(RequestProgress arg0) { } } }