package com.piusvelte.sonet.loader; import android.content.Context; import android.database.Cursor; import android.support.annotation.NonNull; import com.piusvelte.sonet.SonetCrypto; import com.piusvelte.sonet.provider.Accounts; import com.piusvelte.sonet.social.Client; /** * Created by bemmanuel on 4/26/15. */ public class ProfileUrlLoader extends BaseAsyncTaskLoader { @NonNull private Context mContext; private long mAccountId; @NonNull private String mEsid; public ProfileUrlLoader(Context context, long accountId, @NonNull String esid) { super(context); mContext = context.getApplicationContext(); mAccountId = accountId; mEsid = esid; } @Override public Object loadInBackground() { String url = null; Cursor cursor = mContext.getContentResolver().query(Accounts.getContentUri(mContext), new String[] { Accounts._ID, Accounts.TOKEN, Accounts.SECRET, Accounts.SERVICE }, Accounts._ID + "=?", new String[] { Long.toString(mAccountId) }, null); if (cursor.moveToFirst()) { SonetCrypto sonetCrypto = SonetCrypto.getInstance(mContext); String token = sonetCrypto.Decrypt(cursor.getString(cursor.getColumnIndexOrThrow(Accounts.TOKEN))); String secret = sonetCrypto.Decrypt(cursor.getString(cursor.getColumnIndexOrThrow(Accounts.SECRET))); int service = cursor.getInt(cursor.getColumnIndexOrThrow(Accounts.SERVICE)); Client client = new Client.Builder(mContext) .setNetwork(service) .setCredentials(token, secret) .build(); url = client.getProfileUrl(mEsid); } cursor.close(); return url; } }