Show download state in GalleryDetailScene
This commit is contained in:
1 parent
09d481db53
commit
008c662209
6 files changed
+182
-55
No files matched your search
@@ -35,6 +35,7 @@ import com.hippo.yorozuya.SimpleHandler;
|
||||
import com.hippo.yorozuya.sparse.SparseIJArray;
|
||||
import com.hippo.yorozuya.sparse.SparseJLArray;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
@@ -68,8 +69,8 @@ public class DownloadManager implements SpiderQueen.OnSpiderListener {
|
||||
|
||||
@Nullable
|
||||
private DownloadListener mDownloadListener;
|
||||
@Nullable
|
||||
private DownloadInfoListener mDownloadInfoListener;
|
||||
@NonNull
|
||||
private final List<DownloadInfoListener> mDownloadInfoListeners;
|
||||
|
||||
@Nullable
|
||||
private DownloadInfo mCurrentTask;
|
||||
@@ -116,10 +117,9 @@ public class DownloadManager implements SpiderQueen.OnSpiderListener {
|
||||
list.add(info);
|
||||
}
|
||||
|
||||
// Create wait list
|
||||
mWaitList = new LinkedList<>();
|
||||
|
||||
mSpeedReminder = new SpeedReminder();
|
||||
mDownloadInfoListeners = new ArrayList<>();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@@ -164,8 +164,21 @@ public class DownloadManager implements SpiderQueen.OnSpiderListener {
|
||||
return mMap.get(label);
|
||||
}
|
||||
|
||||
public void setDownloadInfoListener(@Nullable DownloadInfoListener downloadInfoListener) {
|
||||
mDownloadInfoListener = downloadInfoListener;
|
||||
public int getDownloadState(long gid) {
|
||||
DownloadInfo info = mAllInfoMap.get(gid);
|
||||
if (null != info) {
|
||||
return info.state;
|
||||
} else {
|
||||
return DownloadInfo.STATE_INVALID;
|
||||
}
|
||||
}
|
||||
|
||||
public void addDownloadInfoListener(@Nullable DownloadInfoListener downloadInfoListener) {
|
||||
mDownloadInfoListeners.add(downloadInfoListener);
|
||||
}
|
||||
|
||||
public void removeDownloadInfoListener(@Nullable DownloadInfoListener downloadInfoListener) {
|
||||
mDownloadInfoListeners.remove(downloadInfoListener);
|
||||
}
|
||||
|
||||
public void setDownloadListener(@Nullable DownloadListener listener) {
|
||||
@@ -202,8 +215,10 @@ public class DownloadManager implements SpiderQueen.OnSpiderListener {
|
||||
}
|
||||
// Notify state update
|
||||
List<DownloadInfo> list = getInfoListForLabel(info.label);
|
||||
if (list != null && mDownloadInfoListener != null) {
|
||||
mDownloadInfoListener.onUpdate(info, list);
|
||||
if (list != null) {
|
||||
for (DownloadInfoListener l: mDownloadInfoListeners) {
|
||||
l.onUpdate(info, list);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -226,8 +241,10 @@ public class DownloadManager implements SpiderQueen.OnSpiderListener {
|
||||
EhDB.putDownloadInfo(info);
|
||||
// Notify state update
|
||||
List<DownloadInfo> list = getInfoListForLabel(info.label);
|
||||
if (list != null && mDownloadInfoListener != null) {
|
||||
mDownloadInfoListener.onUpdate(info, list);
|
||||
if (list != null) {
|
||||
for (DownloadInfoListener l: mDownloadInfoListeners) {
|
||||
l.onUpdate(info, list);
|
||||
}
|
||||
}
|
||||
// Make sure download is running
|
||||
ensureDownload();
|
||||
@@ -257,8 +274,8 @@ public class DownloadManager implements SpiderQueen.OnSpiderListener {
|
||||
EhDB.putDownloadInfo(info);
|
||||
|
||||
// Notify
|
||||
if (mDownloadInfoListener != null) {
|
||||
mDownloadInfoListener.onAdd(info, list, list.size() - 1);
|
||||
for (DownloadInfoListener l: mDownloadInfoListeners) {
|
||||
l.onAdd(info, list, list.size() - 1);
|
||||
}
|
||||
// Make sure download is running
|
||||
ensureDownload();
|
||||
@@ -291,8 +308,8 @@ public class DownloadManager implements SpiderQueen.OnSpiderListener {
|
||||
|
||||
if (update) {
|
||||
// Notify Listener
|
||||
if (mDownloadInfoListener != null) {
|
||||
mDownloadInfoListener.onUpdateAll();
|
||||
for (DownloadInfoListener l: mDownloadInfoListeners) {
|
||||
l.onUpdateAll();
|
||||
}
|
||||
// Ensure download
|
||||
ensureDownload();
|
||||
@@ -320,8 +337,8 @@ public class DownloadManager implements SpiderQueen.OnSpiderListener {
|
||||
|
||||
if (update) {
|
||||
// Notify Listener
|
||||
if (mDownloadInfoListener != null) {
|
||||
mDownloadInfoListener.onUpdateAll();
|
||||
for (DownloadInfoListener l: mDownloadInfoListeners) {
|
||||
l.onUpdateAll();
|
||||
}
|
||||
// Ensure download
|
||||
ensureDownload();
|
||||
@@ -333,8 +350,10 @@ public class DownloadManager implements SpiderQueen.OnSpiderListener {
|
||||
if (info != null) {
|
||||
// Update listener
|
||||
List<DownloadInfo> list = getInfoListForLabel(info.label);
|
||||
if (list != null && mDownloadInfoListener != null) {
|
||||
mDownloadInfoListener.onUpdate(info, list);
|
||||
if (list != null) {
|
||||
for (DownloadInfoListener l: mDownloadInfoListeners) {
|
||||
l.onUpdate(info, list);
|
||||
}
|
||||
}
|
||||
// Ensure download
|
||||
ensureDownload();
|
||||
@@ -346,8 +365,10 @@ public class DownloadManager implements SpiderQueen.OnSpiderListener {
|
||||
if (info != null) {
|
||||
// Update listener
|
||||
List<DownloadInfo> list = getInfoListForLabel(info.label);
|
||||
if (list != null && mDownloadInfoListener != null) {
|
||||
mDownloadInfoListener.onUpdate(info, list);
|
||||
if (list != null) {
|
||||
for (DownloadInfoListener l: mDownloadInfoListeners) {
|
||||
l.onUpdate(info, list);
|
||||
}
|
||||
}
|
||||
// Ensure download
|
||||
ensureDownload();
|
||||
@@ -358,8 +379,8 @@ public class DownloadManager implements SpiderQueen.OnSpiderListener {
|
||||
stopRangeDownloadInternal(gidList);
|
||||
|
||||
// Update listener
|
||||
if (mDownloadInfoListener != null) {
|
||||
mDownloadInfoListener.onUpdateAll();
|
||||
for (DownloadInfoListener l: mDownloadInfoListeners) {
|
||||
l.onUpdateAll();
|
||||
}
|
||||
|
||||
// Ensure download
|
||||
@@ -379,8 +400,8 @@ public class DownloadManager implements SpiderQueen.OnSpiderListener {
|
||||
stopCurrentDownloadInternal();
|
||||
|
||||
// Notify mDownloadInfoListener
|
||||
if (mDownloadInfoListener != null) {
|
||||
mDownloadInfoListener.onUpdateAll();
|
||||
for (DownloadInfoListener l: mDownloadInfoListeners) {
|
||||
l.onUpdateAll();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -401,8 +422,8 @@ public class DownloadManager implements SpiderQueen.OnSpiderListener {
|
||||
if (index >= 0) {
|
||||
list.remove(info);
|
||||
// Update listener
|
||||
if (mDownloadInfoListener != null) {
|
||||
mDownloadInfoListener.onRemove(info, list, index);
|
||||
for (DownloadInfoListener l: mDownloadInfoListeners) {
|
||||
l.onRemove(info, list, index);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -437,8 +458,8 @@ public class DownloadManager implements SpiderQueen.OnSpiderListener {
|
||||
}
|
||||
|
||||
// Update listener
|
||||
if (mDownloadInfoListener != null) {
|
||||
mDownloadInfoListener.onReload();
|
||||
for (DownloadInfoListener l: mDownloadInfoListeners) {
|
||||
l.onReload();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -566,8 +587,8 @@ public class DownloadManager implements SpiderQueen.OnSpiderListener {
|
||||
changed = true;
|
||||
}
|
||||
|
||||
if (changed && mDownloadInfoListener != null) {
|
||||
mDownloadInfoListener.onReload();
|
||||
for (DownloadInfoListener l: mDownloadInfoListeners) {
|
||||
l.onReload();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -579,8 +600,8 @@ public class DownloadManager implements SpiderQueen.OnSpiderListener {
|
||||
mLabelList.add(EhDB.addDownloadLabel(label));
|
||||
mMap.put(label, new LinkedList<DownloadInfo>());
|
||||
|
||||
if (mDownloadInfoListener != null) {
|
||||
mDownloadInfoListener.onUpdateLabels();
|
||||
for (DownloadInfoListener l: mDownloadInfoListeners) {
|
||||
l.onUpdateLabels();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -589,8 +610,8 @@ public class DownloadManager implements SpiderQueen.OnSpiderListener {
|
||||
mLabelList.add(toPosition, item);
|
||||
EhDB.moveDownloadLabel(fromPosition, toPosition);
|
||||
|
||||
if (mDownloadInfoListener != null) {
|
||||
mDownloadInfoListener.onUpdateLabels();
|
||||
for (DownloadInfoListener l: mDownloadInfoListeners) {
|
||||
l.onUpdateLabels();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -625,8 +646,8 @@ public class DownloadManager implements SpiderQueen.OnSpiderListener {
|
||||
mMap.put(to, list);
|
||||
|
||||
// Notify listener
|
||||
if (mDownloadInfoListener != null) {
|
||||
mDownloadInfoListener.onRenameLabel(from, to);
|
||||
for (DownloadInfoListener l: mDownloadInfoListeners) {
|
||||
l.onRenameLabel(from, to);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -663,8 +684,8 @@ public class DownloadManager implements SpiderQueen.OnSpiderListener {
|
||||
Collections.sort(mDefaultInfoList, sDateAscComparator);
|
||||
|
||||
// Notify listener
|
||||
if (mDownloadInfoListener != null) {
|
||||
mDownloadInfoListener.onChange();
|
||||
for (DownloadInfoListener l: mDownloadInfoListeners) {
|
||||
l.onChange();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -814,8 +835,10 @@ public class DownloadManager implements SpiderQueen.OnSpiderListener {
|
||||
} else {
|
||||
info.total = mPages;
|
||||
List<DownloadInfo> list = getInfoListForLabel(info.label);
|
||||
if (list != null && mDownloadInfoListener != null) {
|
||||
mDownloadInfoListener.onUpdate(info, list);
|
||||
if (list != null) {
|
||||
for (DownloadInfoListener l: mDownloadInfoListeners) {
|
||||
l.onUpdate(info, list);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -843,8 +866,10 @@ public class DownloadManager implements SpiderQueen.OnSpiderListener {
|
||||
mDownloadListener.onGetPage(info);
|
||||
}
|
||||
List<DownloadInfo> list = getInfoListForLabel(info.label);
|
||||
if (list != null && mDownloadInfoListener != null) {
|
||||
mDownloadInfoListener.onUpdate(info, list);
|
||||
if (list != null) {
|
||||
for (DownloadInfoListener l: mDownloadInfoListeners) {
|
||||
l.onUpdate(info, list);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -859,8 +884,10 @@ public class DownloadManager implements SpiderQueen.OnSpiderListener {
|
||||
info.downloaded = mDownloaded;
|
||||
info.total = mTotal;
|
||||
List<DownloadInfo> list = getInfoListForLabel(info.label);
|
||||
if (list != null && mDownloadInfoListener != null) {
|
||||
mDownloadInfoListener.onUpdate(info, list);
|
||||
if (list != null) {
|
||||
for (DownloadInfoListener l: mDownloadInfoListeners) {
|
||||
l.onUpdate(info, list);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -901,8 +928,10 @@ public class DownloadManager implements SpiderQueen.OnSpiderListener {
|
||||
mDownloadListener.onFinish(info);
|
||||
}
|
||||
List<DownloadInfo> list = getInfoListForLabel(info.label);
|
||||
if (list != null && mDownloadInfoListener != null) {
|
||||
mDownloadInfoListener.onUpdate(info, list);
|
||||
if (list != null) {
|
||||
for (DownloadInfoListener l: mDownloadInfoListeners) {
|
||||
l.onUpdate(info, list);
|
||||
}
|
||||
}
|
||||
// Start next download
|
||||
ensureDownload();
|
||||
@@ -995,8 +1024,10 @@ public class DownloadManager implements SpiderQueen.OnSpiderListener {
|
||||
mDownloadListener.onDownload(info);
|
||||
}
|
||||
List<DownloadInfo> list = getInfoListForLabel(info.label);
|
||||
if (list != null && mDownloadInfoListener != null) {
|
||||
mDownloadInfoListener.onUpdate(info, list);
|
||||
if (list != null) {
|
||||
for (DownloadInfoListener l: mDownloadInfoListeners) {
|
||||
l.onUpdate(info, list);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -120,7 +120,7 @@ public class DownloadScene extends ToolbarScene
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
DownloadManager manager = EhApplication.getDownloadManager(getContext());
|
||||
manager.setDownloadInfoListener(this);
|
||||
manager.addDownloadInfoListener(this);
|
||||
|
||||
if (savedInstanceState == null) {
|
||||
onInit();
|
||||
@@ -134,7 +134,7 @@ public class DownloadScene extends ToolbarScene
|
||||
super.onDestroy();
|
||||
mList = null;
|
||||
DownloadManager manager = EhApplication.getDownloadManager(getContext());
|
||||
manager.setDownloadInfoListener(null);
|
||||
manager.removeDownloadInfoListener(null);
|
||||
}
|
||||
|
||||
private void updateForLabel() {
|
||||
|
||||
@@ -31,6 +31,7 @@ import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.os.Parcelable;
|
||||
import android.support.annotation.IntDef;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentTransaction;
|
||||
@@ -71,9 +72,11 @@ import com.hippo.ehviewer.client.data.GalleryTagGroup;
|
||||
import com.hippo.ehviewer.client.data.LargePreviewSet;
|
||||
import com.hippo.ehviewer.client.data.ListUrlBuilder;
|
||||
import com.hippo.ehviewer.client.parser.RateGalleryParser;
|
||||
import com.hippo.ehviewer.dao.DownloadInfo;
|
||||
import com.hippo.ehviewer.ui.CommonOperations;
|
||||
import com.hippo.ehviewer.ui.GalleryActivity;
|
||||
import com.hippo.ehviewer.ui.annotation.ViewLifeCircle;
|
||||
import com.hippo.ehviewer.ui.annotation.WholeLifeCircle;
|
||||
import com.hippo.rippleold.RippleSalon;
|
||||
import com.hippo.scene.Announcer;
|
||||
import com.hippo.scene.SceneFragment;
|
||||
@@ -97,9 +100,11 @@ import com.hippo.yorozuya.ViewUtils;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
public class GalleryDetailScene extends BaseScene implements View.OnClickListener {
|
||||
public class GalleryDetailScene extends BaseScene implements View.OnClickListener,
|
||||
com.hippo.ehviewer.download.DownloadManager.DownloadInfoListener {
|
||||
|
||||
@IntDef({STATE_INIT, STATE_NORMAL, STATE_REFRESH, STATE_REFRESH_HEADER, STATE_FAILED})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
@@ -124,6 +129,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
|
||||
|
||||
private static final String KEY_GALLERY_DETAIL = "gallery_detail";
|
||||
private static final String KEY_REQUEST_ID = "request_id";
|
||||
private static final String KEY_DOWNLOAD_STATE = "download_state";
|
||||
|
||||
@Nullable
|
||||
@ViewLifeCircle
|
||||
@@ -162,7 +168,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
|
||||
private ViewGroup mActionGroup;
|
||||
@Nullable
|
||||
@ViewLifeCircle
|
||||
private View mDownload;
|
||||
private TextView mDownload;
|
||||
@Nullable
|
||||
@ViewLifeCircle
|
||||
private View mRead;
|
||||
@@ -250,6 +256,9 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
|
||||
@ViewLifeCircle
|
||||
private PopupMenu mPopupMenu;
|
||||
|
||||
@WholeLifeCircle
|
||||
private int mDownloadState;
|
||||
|
||||
@Nullable
|
||||
private String mAction;
|
||||
@Nullable
|
||||
@@ -361,6 +370,12 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
|
||||
|
||||
private void onInit() {
|
||||
handleArgs(getArguments());
|
||||
long gid = getGid();
|
||||
if (gid != -1) {
|
||||
mDownloadState = EhApplication.getDownloadManager(getContext()).getDownloadState(gid);
|
||||
} else {
|
||||
mDownloadState = DownloadInfo.STATE_INVALID;
|
||||
}
|
||||
}
|
||||
|
||||
private void onRestore(Bundle savedInstanceState) {
|
||||
@@ -370,6 +385,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
|
||||
mToken = savedInstanceState.getString(KEY_TOKEN);
|
||||
mGalleryDetail = savedInstanceState.getParcelable(KEY_GALLERY_DETAIL);
|
||||
mRequestId = savedInstanceState.getInt(KEY_REQUEST_ID);
|
||||
mDownloadState = savedInstanceState.getInt(KEY_DOWNLOAD_STATE);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -390,6 +406,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
|
||||
outState.putParcelable(KEY_GALLERY_DETAIL, mGalleryDetail);
|
||||
}
|
||||
outState.putInt(KEY_REQUEST_ID, mRequestId);
|
||||
outState.putInt(KEY_DOWNLOAD_STATE, mDownloadState);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@@ -414,7 +431,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
|
||||
mCategory = (TextView) ViewUtils.$$(mHeader, R.id.category);
|
||||
mOtherActions = (ImageView) ViewUtils.$$(mHeader, R.id.other_actions);
|
||||
mActionGroup = (ViewGroup) ViewUtils.$$(mHeader, R.id.action_card);
|
||||
mDownload = ViewUtils.$$(mActionGroup, R.id.download);
|
||||
mDownload = (TextView) ViewUtils.$$(mActionGroup, R.id.download);
|
||||
mRead = ViewUtils.$$(mActionGroup, R.id.read);
|
||||
RippleSalon.addRipple(mOtherActions, false);
|
||||
RippleSalon.addRipple(mDownload, false);
|
||||
@@ -491,6 +508,8 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
|
||||
adjustViewVisibility(STATE_FAILED, false);
|
||||
}
|
||||
|
||||
EhApplication.getDownloadManager(getContext()).addDownloadInfoListener(this);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
@@ -509,6 +528,8 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
|
||||
EhApplication.getDownloadManager(getContext()).removeDownloadInfoListener(this);
|
||||
|
||||
mFailedView = null;
|
||||
mFailedText = null;
|
||||
mViewTransition = null;
|
||||
@@ -703,6 +724,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
|
||||
mUploader.setText(gi.uploader);
|
||||
mCategory.setText(EhUtils.getCategory(gi.category));
|
||||
mCategory.setTextColor(EhUtils.getCategoryColor(gi.category));
|
||||
updateDownloadText();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -742,6 +764,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
|
||||
mUploader.setText(gd.uploader);
|
||||
mCategory.setText(EhUtils.getCategory(gd.category));
|
||||
mCategory.setTextColor(EhUtils.getCategoryColor(gd.category));
|
||||
updateDownloadText();
|
||||
|
||||
mLanguage.setText(gd.language);
|
||||
mPages.setText(resources.getQuantityString(
|
||||
@@ -1136,6 +1159,77 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
|
||||
}
|
||||
}
|
||||
|
||||
private void updateDownloadText() {
|
||||
if (null == mDownload) {
|
||||
return;
|
||||
}
|
||||
switch (mDownloadState) {
|
||||
default:
|
||||
case DownloadInfo.STATE_INVALID:
|
||||
case DownloadInfo.STATE_NONE:
|
||||
mDownload.setText(R.string.download);
|
||||
break;
|
||||
case DownloadInfo.STATE_WAIT:
|
||||
case DownloadInfo.STATE_DOWNLOAD:
|
||||
mDownload.setText(R.string.download_state_downloading);
|
||||
break;
|
||||
case DownloadInfo.STATE_FINISH:
|
||||
case DownloadInfo.STATE_FAILED:
|
||||
mDownload.setText(R.string.download_state_downloaded);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void updateDownloadState() {
|
||||
long gid = getGid();
|
||||
if (-1L == gid) {
|
||||
return;
|
||||
}
|
||||
|
||||
int downloadState = EhApplication.getDownloadManager(getContext()).getDownloadState(gid);
|
||||
if (downloadState == mDownloadState) {
|
||||
return;
|
||||
}
|
||||
mDownloadState = downloadState;
|
||||
updateDownloadText();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAdd(@NonNull DownloadInfo info, @NonNull List<DownloadInfo> list, int position) {
|
||||
updateDownloadState();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdate(@NonNull DownloadInfo info, @NonNull List<DownloadInfo> list) {
|
||||
updateDownloadState();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdateAll() {
|
||||
updateDownloadState();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReload() {
|
||||
updateDownloadState();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChange() {
|
||||
updateDownloadState();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRemove(@NonNull DownloadInfo info, @NonNull List<DownloadInfo> list, int position) {
|
||||
updateDownloadState();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRenameLabel(String from, String to) {}
|
||||
|
||||
@Override
|
||||
public void onUpdateLabels() {}
|
||||
|
||||
private static class ExitTransaction implements TransitionHelper {
|
||||
|
||||
private final View mThumb;
|
||||
|
||||
Reference in new issue
Block a user