diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadScene.java
index f53720129..bffb13c8d 100644
--- a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadScene.java
+++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadScene.java
@@ -23,11 +23,13 @@ import android.content.Intent;
import android.content.res.Resources;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
+import android.util.Log;
import android.util.SparseBooleanArray;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ProgressBar;
import android.widget.TextView;
+import android.widget.Toast;
import com.hippo.animation.SimpleAnimatorListener;
import com.hippo.conaco.Conaco;
@@ -48,6 +50,7 @@ import com.hippo.ehviewer.widget.SimpleRatingView;
import com.hippo.rippleold.RippleSalon;
import com.hippo.scene.Announcer;
import com.hippo.scene.AppbarScene;
+import com.hippo.scene.SimpleDialog;
import com.hippo.widget.FabLayout;
import com.hippo.widget.recyclerview.EasyRecyclerView;
import com.hippo.yorozuya.AssertUtils;
@@ -73,6 +76,7 @@ public class DownloadScene extends AppbarScene implements DrawerProvider,
private View mStart;
private View mStop;
private View mDelete;
+ private View mMove;
private View mCheckAll;
private View mMainFab;
@@ -157,7 +161,8 @@ public class DownloadScene extends AppbarScene implements DrawerProvider,
mStart = mFabLayout.getSecondaryFabAt(0);
mStop = mFabLayout.getSecondaryFabAt(1);
mDelete = mFabLayout.getSecondaryFabAt(2);
- mCheckAll = mFabLayout.getSecondaryFabAt(3);
+ mMove = mFabLayout.getSecondaryFabAt(3);
+ mCheckAll = mFabLayout.getSecondaryFabAt(4);
mAdapter = new DownloadAdapter();
mAdapter.setHasStableIds(true);
@@ -176,6 +181,7 @@ public class DownloadScene extends AppbarScene implements DrawerProvider,
mStart.setOnClickListener(this);
mStop.setOnClickListener(this);
mDelete.setOnClickListener(this);
+ mMove.setOnClickListener(this);
mCheckAll.setOnClickListener(this);
mOriginalRecyclerViewPaddingBottom = mRecyclerView.getPaddingBottom();
@@ -193,6 +199,11 @@ public class DownloadScene extends AppbarScene implements DrawerProvider,
updateTitle();
}
+ @Override
+ public void onIconClick() {
+ finish();
+ }
+
@Override
protected void onResume() {
super.onResume();
@@ -455,7 +466,6 @@ public class DownloadScene extends AppbarScene implements DrawerProvider,
mAdapter.notifyDataSetChanged();
mRecyclerView.scrollToPosition(0);
}
- // TODO
break;
case DownloadManager.DownloadLabelModify.OPS_MOVE:
int fromPosition = mLabels.indexOf(modify.label.label);
@@ -489,6 +499,15 @@ public class DownloadScene extends AppbarScene implements DrawerProvider,
}
}
+
+
+
+
+
+
+
+
+
@Override
public void onClick(View v) {
if (mMainFab == v) {
@@ -516,6 +535,30 @@ public class DownloadScene extends AppbarScene implements DrawerProvider,
}
} else if (mDelete == v) {
// TODO
+ } else if (mMove == v) {
+ // Get available target label
+ final List labels = DBUtils.getAllDownloadLabel();
+ if (mActivatedLabelPosition > INDEX_DEFAULT) {
+ labels.remove(mActivatedLabelPosition - 2);
+ }
+ if (mActivatedLabelPosition != INDEX_DEFAULT) {
+ labels.add(getResources().getString(R.string.download_tag_default));
+ }
+
+ if (labels.isEmpty()) {
+ Toast.makeText(getContext(), "No available label", Toast.LENGTH_SHORT).show(); // TODO hardcode
+ } else {
+ new SimpleDialog.Builder(getContext()).setTitle("Move to") // TODO hardcode
+ .setItems(labels.toArray(new String[labels.size()]), new SimpleDialog.OnClickListener() {
+ @Override
+ public boolean onClick(SimpleDialog dialog, int which) {
+ String label = labels.get(which);
+ Log.d("TAG", "label = " + label);
+ // TODO
+ return true;
+ }
+ }).show(this);
+ }
} else if (mCheckAll == v) {
SparseBooleanArray checkedState = mRecyclerView.getCheckedItemPositions();
for (int i = 0, n = mAdapter.getItemCount(); i < n; i++) {
diff --git a/app/src/main/java/com/hippo/scene/Scene.java b/app/src/main/java/com/hippo/scene/Scene.java
index 4b1af14f8..569b4a217 100644
--- a/app/src/main/java/com/hippo/scene/Scene.java
+++ b/app/src/main/java/com/hippo/scene/Scene.java
@@ -18,6 +18,7 @@ package com.hippo.scene;
import android.content.Context;
import android.content.Intent;
+import android.content.res.Resources;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.annotation.NonNull;
@@ -107,6 +108,10 @@ public abstract class Scene {
return getStageActivity();
}
+ public Resources getResources() {
+ return getStageActivity().getResources();
+ }
+
public int getLaunchMode() {
return LAUNCH_MODE_STANDARD;
}
diff --git a/app/src/main/res/drawable/ic_folder_move_dark_x24.xml b/app/src/main/res/drawable/ic_folder_move_dark_x24.xml
new file mode 100644
index 000000000..1e203effb
--- /dev/null
+++ b/app/src/main/res/drawable/ic_folder_move_dark_x24.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/scene_download.xml b/app/src/main/res/layout/scene_download.xml
index 3c32f5776..45e8d262c 100644
--- a/app/src/main/res/layout/scene_download.xml
+++ b/app/src/main/res/layout/scene_download.xml
@@ -62,6 +62,14 @@
auto:drawable="@drawable/ic_close_dark_x24"
auto:forceNoElevation="true"/>
+
+
M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z
M0.41,13.41L6,19L7.41,17.58L1.83,12M22.24,5.58L11.66,16.17L7.5,12L6.07,13.41L11.66,19L23.66,7M18,7L16.59,5.58L10.24,11.93L11.66,13.34L18,7Z
M8.5,11A1.5,1.5 0 0,1 7,9.5A1.5,1.5 0 0,1 8.5,8A1.5,1.5 0 0,1 10,9.5A1.5,1.5 0 0,1 8.5,11M15.5,11A1.5,1.5 0 0,1 14,9.5A1.5,1.5 0 0,1 15.5,8A1.5,1.5 0 0,1 17,9.5A1.5,1.5 0 0,1 15.5,11M12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22C6.47,22 2,17.5 2,12A10,10 0 0,1 12,2M9,14H15A1,1 0 0,1 16,15A1,1 0 0,1 15,16H9A1,1 0 0,1 8,15A1,1 0 0,1 9,14Z
+ M9,18V15H5V11H9V8L14,13M20,6H12L10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6Z
M13,0c7.2,0,13,5.9,13,13.2c0,3.7-2,7.6-7.3,12.9L13,32l-5.8-5.8C2,20.8,0,16.9,0,13.3C0,5.9,5.8,0,13,0z