From 23a76e6e7b077e0e5811c2656cf7a1315ee8d139 Mon Sep 17 00:00:00 2001 From: seven332 Date: Sun, 23 Aug 2015 23:27:06 +0800 Subject: [PATCH] Add changing download info label --- .../ehviewer/ui/scene/DownloadScene.java | 47 ++++++++++++++++++- app/src/main/java/com/hippo/scene/Scene.java | 5 ++ .../res/drawable/ic_folder_move_dark_x24.xml | 41 ++++++++++++++++ app/src/main/res/layout/scene_download.xml | 8 ++++ app/src/main/res/values/pathdata.xml | 1 + 5 files changed, 100 insertions(+), 2 deletions(-) create mode 100644 app/src/main/res/drawable/ic_folder_move_dark_x24.xml 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