package com.metis.base.activity; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.Button; import com.bokecc.sdk.mobile.download.Downloader; import com.metis.base.R; import com.metis.base.manager.CacheManager; import com.metis.base.manager.DownloadManager; import com.metis.base.module.DownloadTaskImpl; import com.metis.base.utils.Log; import com.metis.base.widget.adapter.DownloadingAdapter; import com.metis.base.widget.adapter.delegate.DownloadTaskDelegate; import java.io.File; public class DownloadingActivity extends TitleBarActivity { private static final String TAG = DownloadingActivity.class.getSimpleName(); private RecyclerView mDownloadingRv = null; private DownloadingAdapter mDownloadingAdapter = null; private Button mAddBtn = null; private int mProgress = 0; private boolean isInEditMode = false; private DownloadManager.OnTaskQueueChangeCallback mQueueCallback = new DownloadManager.OnTaskQueueChangeCallback() { @Override public void onTaskAdd(DownloadTaskImpl task) { mDownloadingAdapter.addDataItem(new DownloadTaskDelegate(task)); mDownloadingAdapter.notifyDataSetChanged(); } @Override public void onTaskRemove(DownloadTaskImpl task) { mDownloadingAdapter.removeTaskItem(task.getId()); } }; private DownloadManager.OnDownloadCallback mDownloadCallback = new DownloadManager.OnDownloadCallback() { @Override public void onTaskWait(String id) { } @Override public void onTaskStart(String id) { } @Override public void onTaskPausing(String id) { } @Override public void onTaskPause(String id) { } @Override public void onTaskProgress(String id, long current, long total, int percent) { mDownloadingAdapter.notifyDataSetChanged(); } @Override public void onTaskFinish(String id) { } @Override public void onTaskFailed() { } @Override public void onTaskCancel(String id) { } }; private DownloadManager mDownloadManager = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_downloading); mDownloadManager = DownloadManager.getInstance(this); mDownloadManager.registerOnDownloadCallback(mDownloadCallback); mDownloadManager.registerOnTaskQueueChangeCallback(mQueueCallback); mAddBtn = (Button)findViewById(R.id.downloading_add_task); mAddBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { File file = new File(CacheManager.getInstance(DownloadingActivity.this).getMyVideoCacheDir(), "1"); Log.v(TAG, "download to " + file.getAbsolutePath()); DownloadTaskImpl task = new DownloadTaskImpl(); task.setState(Downloader.WAIT); task.setTargetPath(file.getAbsolutePath()); task.setId("2C4349EB23345F859C33DC5901307461"); mDownloadManager.addTask(task); } }); mDownloadingRv = (RecyclerView)findViewById(R.id.downloading_recycler_view); mDownloadingRv.setLayoutManager(new LinearLayoutManager(this)); mDownloadingAdapter = new DownloadingAdapter(this); mDownloadingRv.setAdapter(mDownloadingAdapter); getTitleBar().setTitleRight(R.string.text_edit_mode); getTitleBar().setOnRightBtnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { isInEditMode = !isInEditMode; if (isInEditMode) { getTitleBar().setTitleRight(R.string.cancel); } else { getTitleBar().setTitleRight(R.string.text_edit_mode); } } }); } @Override protected void onDestroy() { super.onDestroy(); mDownloadManager.unregisterOnDownloadCallback(mDownloadCallback); mDownloadManager.unregisterOnTaskQueueChangeCallback(mQueueCallback); } @Override public boolean showAsUpEnable() { return true; } }