package org.freemp.droid.playlist; import android.app.Activity; import android.os.AsyncTask; import org.freemp.droid.Constants; import java.lang.ref.WeakReference; /** * Created by recoil on 01.06.14. */ public class TaskGetPlaylist extends AsyncTask { private final WeakReference<Activity> mActivity; private final WeakReference<OnTaskGetPlaylist> mOnTaskGetPlaylist; private int type; private boolean refresh; public TaskGetPlaylist(Activity activity, int type, boolean refresh, OnTaskGetPlaylist onTaskGetPlaylist) { mActivity = new WeakReference<Activity>(activity); mOnTaskGetPlaylist = new WeakReference<OnTaskGetPlaylist>(onTaskGetPlaylist); this.type = type; this.refresh = refresh; } @Override protected Object doInBackground(Object... params) { Activity activity = mActivity.get(); if (null == activity) { return null; } switch (this.type) { case Constants.TYPE_MS: return (new MakePlaylistMS(activity, refresh)).getArrTracks(); case Constants.TYPE_FS: return new MakePlaylistFS(activity, refresh).getArrTracks(); default: return new MakePlaylistMS(activity, refresh).getArrTracks(); } } protected void onPostExecute(Object result) { OnTaskGetPlaylist onTaskGetPlaylist = mOnTaskGetPlaylist.get(); Activity activity = mActivity.get(); if (null != onTaskGetPlaylist) { onTaskGetPlaylist.OnTaskResult(result); } if (null != activity) { ((ActPlaylist) activity).setRefreshing(false); ((ActPlaylist) activity).setRefreshActionButtonState(); } } public static interface OnTaskGetPlaylist { public void OnTaskResult(Object result); } }