package com.piusvelte.sonet.loader; import android.content.Context; import android.database.Cursor; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import com.piusvelte.sonet.SonetCrypto; import com.piusvelte.sonet.fragment.ChoosePostAccounts; import com.piusvelte.sonet.provider.Accounts; import com.piusvelte.sonet.social.Client; import java.util.ArrayList; /** * Created by bemmanuel on 3/29/15. */ public class SendPostLoader extends BaseAsyncTaskLoader<Boolean> { @NonNull private Context mContext; @NonNull private ArrayList<ChoosePostAccounts.Account> mAccounts; @NonNull private String mMessage; @Nullable private String mPhoto; public SendPostLoader(@NonNull Context context, @NonNull ArrayList<ChoosePostAccounts.Account> accounts, @NonNull String message, @Nullable String photo) { super(context); mContext = context.getApplicationContext(); mAccounts = accounts; mMessage = message; mPhoto = photo; } @Override public Boolean loadInBackground() { Boolean success = null; for (ChoosePostAccounts.Account account : mAccounts) { SonetCrypto sonetCrypto = SonetCrypto.getInstance(mContext); // post or comment! Cursor cursor = mContext.getContentResolver().query(Accounts.getContentUri(mContext), new String[] { Accounts._ID, Accounts.TOKEN, Accounts.SECRET }, Accounts._ID + "=?", new String[] { Long.toString(account.id) }, null); if (cursor.moveToFirst()) { String token = sonetCrypto.Decrypt(cursor.getString(cursor.getColumnIndex(Accounts.TOKEN))); String secret = sonetCrypto.Decrypt(cursor.getString(cursor.getColumnIndex(Accounts.SECRET))); Client client = new Client.Builder(mContext) .setNetwork(account.service) .setCredentials(token, secret) .build(); String[] tags; if (account.tags != null) { tags = account.tags.toArray(new String[account.tags.size()]); } else { tags = null; } success = client.createPost(mMessage, account.location, account.latitude, account.longitude, mPhoto, tags); } cursor.close(); } return success; } }