package com.architjn.materialicons.tasks;
import android.content.Context;
import android.os.AsyncTask;
import com.architjn.materialicons.R;
import com.pk.requestmanager.AppInfo;
import com.pk.requestmanager.PkRequestManager;
import com.pk.requestmanager.RequestSettings;
import java.util.List;
/**
* Created by architjn on 29/07/15.
*/
public class LoadAppsList extends AsyncTask<Void, Void, Void> {
public interface Callback {
public void onListLoaded(List<AppInfo> apps, PkRequestManager requestManager);
}
private Callback callback;
private Context context;
private PkRequestManager requestManager;
private List<AppInfo> apps;
public LoadAppsList(Context context, Callback callback, PkRequestManager requestManager) {
this.callback = callback;
this.context = context;
this.requestManager = requestManager;
}
@Override
protected Void doInBackground(Void... params) {
// Grab a reference to the manager and store it in a variable. This helps make code shorter.
requestManager = PkRequestManager.getInstance(context);
// Enable debugging. Disable this during production!
requestManager.setDebugging(true);
// Set your custom settings. Email address is required! Everything else is set to default.
requestManager.setSettings(new RequestSettings.Builder()
.addEmailAddress(context.getResources().getString(R.string.email_id))
.emailSubject(context.getResources().getString(R.string.email_request_subject))
.build());
// Load the list of apps if none are loaded. This should normally be done asynchronously.
requestManager.loadAppsIfEmpty();
// Get the list of apps
apps = requestManager.getApps();
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
callback.onListLoaded(apps, requestManager);
}
}