private void getUsageInfo() { final Calendar now = Calendar.getInstance(); final Calendar cal = Calendar.getInstance(); cal.clear(); cal.set(Calendar.YEAR, now.get(Calendar.YEAR)); cal.set(Calendar.MONTH, now.get(Calendar.MONTH)); final int dayMin = now.getActualMinimum(Calendar.DAY_OF_MONTH); final int dayMax = now.getActualMaximum(Calendar.DAY_OF_MONTH); cal.set(Calendar.DAY_OF_MONTH, dayMin); cal.setTimeZone(now.getTimeZone()); final Date start = cal.getTime(); cal.set(Calendar.DAY_OF_MONTH, dayMax); cal.add(Calendar.DATE, 1); final Date end = cal.getTime(); final TaskRunnable<Object[], NetworkUsageInfo, NetworkUsageSummaryPreferences> task; task = new TaskRunnable<Object[], NetworkUsageInfo, NetworkUsageSummaryPreferences>() { @Override public NetworkUsageInfo doLongOperation(Object[] params) throws InterruptedException { final int[] network = {ConnectivityManager.TYPE_MOBILE}; return NetworkUsageInfo.get( (Context) params[0], (Date) params[1], (Date) params[2], dayMin, dayMax, network); } @Override public void callback(NetworkUsageSummaryPreferences handler, NetworkUsageInfo result) { handler.setUsage(result); } }; task.setResultHandler(this); task.setParams(new Object[] {getContext(), start, end}); AsyncManager.runBackgroundTask(task); }
@Override public boolean triggerRefresh() { super.triggerRefresh(); AsyncManager.runBackgroundTask( new TaskRunnable<Object, long[][], CursorStatusesFragment>() { @Override public long[][] doLongOperation(Object o) throws InterruptedException { final long[][] result = new long[3][]; result[0] = getAccountIds(); result[2] = getNewestStatusIds(result[0]); return result; } @Override public void callback(CursorStatusesFragment fragment, long[][] result) { fragment.getStatuses(result[0], result[1], result[2]); } }.setResultHandler(this)); return true; }
@Override public void onLoadMoreContents(boolean fromStart) { if (fromStart) return; //noinspection ConstantConditions super.onLoadMoreContents(fromStart); AsyncManager.runBackgroundTask( new TaskRunnable<Object, long[][], CursorStatusesFragment>() { @Override public long[][] doLongOperation(Object o) throws InterruptedException { final long[][] result = new long[3][]; result[0] = getAccountIds(); result[1] = getOldestStatusIds(result[0]); return result; } @Override public void callback(CursorStatusesFragment fragment, long[][] result) { fragment.getStatuses(result[0], result[1], result[2]); } }.setResultHandler(this)); }