package com.geoloqi.rpc;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.ReentrantLock;
import android.content.Context;
import com.geoloqi.interfaces.GeoloqiConstants;
import com.geoloqi.interfaces.RPCException;
public class AccountMonitor {
private static ReentrantLock lock = new ReentrantLock();
private static Condition userIDReceived = lock.newCondition();
public static void createUserID(final Context context) {
new Thread() {
@Override
public void run() {
lock.lock();
try {
MapAttackClient.getApplicationClient(context).createAnonymousAccount();
userIDReceived.signalAll();
} catch (RPCException e) {
throw new RuntimeException(e);
} finally {
lock.unlock();
}
}
}.start();
}
public static String getUserID(Context context) {
lock.lock();
try {
if (!context.getSharedPreferences(GeoloqiConstants.PREFERENCES_FILE, Context.MODE_PRIVATE).contains("userID")) {
userIDReceived.awaitUninterruptibly();
}
return context.getSharedPreferences(GeoloqiConstants.PREFERENCES_FILE, Context.MODE_PRIVATE).getString("userID", null);
} finally {
lock.unlock();
}
}
}