package net.dev123.yibo.service.task; import java.util.List; import net.dev123.commons.Paging; import net.dev123.yibo.service.adapter.CacheAdapter; import net.dev123.yibo.service.adapter.CommentsListAdapter; import net.dev123.yibo.service.adapter.DirectMessagesListAdapter; import net.dev123.yibo.service.adapter.MentionsListAdapter; import net.dev123.yibo.service.cache.ListCache; import android.os.AsyncTask; public class InitAdapterTask extends AsyncTask<Void, Void, Void> { private ListCache<?, ?> cache; private CacheAdapter<?> adapter; private Object max; //private boolean isRefreshOnFirstEnter; public InitAdapterTask(ListCache<?, ?> cache, CacheAdapter<?> adapter) { this.cache = cache; this.adapter = adapter; //Context context = adapter.getContext(); //YiBoApplication yibo = (YiBoApplication)context.getApplicationContext(); //isRefreshOnFirstEnter = yibo.isRefreshOnFirstEnter(); } @Override protected Void doInBackground(Void... params) { initAdapter(); return null; } @Override protected void onPostExecute(Void result) { if (max == null) { if (adapter instanceof MentionsListAdapter) { MetionsPageUpTask task = new MetionsPageUpTask((MentionsListAdapter)adapter); task.execute(); } else if (adapter instanceof CommentsListAdapter) { CommentsPageUpTask task = new CommentsPageUpTask((CommentsListAdapter)adapter); task.execute(); } else if (adapter instanceof DirectMessagesListAdapter){ DirectMessagePageUpTask task = new DirectMessagePageUpTask((DirectMessagesListAdapter)adapter); task.execute(); } } else { if (adapter instanceof MentionsListAdapter) { MetionsPageUpTask task = new MetionsPageUpTask((MentionsListAdapter)adapter); task.setAutoUpdate(true); task.execute(); } else if (adapter instanceof CommentsListAdapter) { CommentsPageUpTask task = new CommentsPageUpTask((CommentsListAdapter)adapter); task.setAutoUpdate(true); task.execute(); } else if (adapter instanceof DirectMessagesListAdapter){ DirectMessagePageUpTask task = new DirectMessagePageUpTask((DirectMessagesListAdapter)adapter); task.setAutoUpdate(true); task.execute(); } } adapter.notifyDataSetChanged(); } private void initAdapter() { Paging localPaging = adapter.getPaging(); localPaging.moveToNext(); List list = cache.read(localPaging); cache.addAll(list); max = adapter.getMax(); if (max != null) { String maxId = null; localPaging.setGlobalMax(max); } } }