package co.touchlab.droidconandroid.tasks;
import android.content.Context;
import android.text.TextUtils;
import org.apache.commons.lang3.StringUtils;
import co.touchlab.android.threading.eventbus.EventBusExt;
import co.touchlab.android.threading.tasks.Task;
import co.touchlab.droidconandroid.CrashReport;
import co.touchlab.droidconandroid.data.UserAccount;
import co.touchlab.droidconandroid.data.UserAuthHelper;
import co.touchlab.droidconandroid.network.GoogleLoginRequest;
import co.touchlab.droidconandroid.network.dao.LoginResult;
import co.touchlab.droidconandroid.presenter.AppManager;
import co.touchlab.droidconandroid.tasks.persisted.PersistedTaskQueueFactory;
import co.touchlab.droidconandroid.tasks.persisted.RefreshScheduleData;
import co.touchlab.droidconandroid.tasks.persisted.UploadProfilePhotoTask;
import retrofit.RestAdapter;
/**
* Created by kgalligan on 4/18/16.
*/
public class UpdatedGoogleLoginTask extends Task
{
private final String token;
private final String name;
private final String imageURL;
private final String coverURL;
public boolean failed;
public boolean firstLogin;
public UpdatedGoogleLoginTask(String token, String name, String imageURL, String coverURL)
{
this.token = token;
this.name = name;
this.imageURL = imageURL;
this.coverURL = coverURL;
}
@Override
protected void run(Context context) throws Throwable
{
/*RestAdapter restAdapter = DataHelper
.makeRequestAdapter(context, PlatformClientContainer.platformClient);*/
RestAdapter.Builder builder = new RestAdapter.Builder();
builder.setEndpoint(AppManager.getPlatformClient().baseUrl());
final RestAdapter restAdapter = builder.build();
// final RefreshScheduleDataRequest refreshScheduleDataRequest = restAdapter
// .create(RefreshScheduleDataRequest.class);
GoogleLoginRequest loginRequest = restAdapter.create(GoogleLoginRequest.class);
LoginResult loginResult = loginRequest.login(token, name);
UserAccount userAccount = UserAuthHelper.processLoginResonse(context, loginResult);
firstLogin = StringUtils.isEmpty(userAccount.profile) && StringUtils.isEmpty(userAccount.company);
RefreshScheduleData.callMe(context);
if (! TextUtils.isEmpty(imageURL))
PersistedTaskQueueFactory.getInstance(context).execute(new UploadProfilePhotoTask(imageURL, false));
//
// if (!TextUtils.isEmpty(coverURL))
// PersistedTaskQueueFactory.getInstance(context).execute(UploadCoverCommand(coverURL));
}
@Override
protected boolean handleError(Context context, Throwable e)
{
CrashReport.logException(e);
failed = true;
EventBusExt.getDefault().post(this);
return true;
}
@Override
protected void onComplete(Context context)
{
EventBusExt.getDefault().post(this);
}
}