package com.boardgamegeek.service;
import android.content.Context;
import android.support.annotation.NonNull;
import android.text.TextUtils;
import com.boardgamegeek.R;
import com.boardgamegeek.io.Adapter;
import com.boardgamegeek.io.UserRequest;
import com.boardgamegeek.model.User;
import com.boardgamegeek.model.persister.BuddyPersister;
import com.boardgamegeek.provider.BggContract;
import timber.log.Timber;
public class SyncBuddy extends UpdateTask {
private final String name;
public SyncBuddy(String name) {
this.name = name;
}
@NonNull
@Override
public String getDescription(Context context) {
if (isValid()) {
return context.getString(R.string.sync_msg_buddy_valid, name);
}
return context.getString(R.string.sync_msg_buddy_invalid);
}
@Override
public boolean isValid() {
return !TextUtils.isEmpty(name);
}
@Override
public void execute(Context context) {
User user = new UserRequest(Adapter.createForXml(), name).execute();
if (user == null || user.getId() == 0 || user.getId() == BggContract.INVALID_ID) {
Timber.i("Invalid user: %s", name);
return;
}
BuddyPersister persister = new BuddyPersister(context);
persister.save(user);
Timber.i("Synced Buddy %s", name);
}
}