diff --git a/Clover/app/src/main/java/org/floens/chan/core/manager/WatchManager.java b/Clover/app/src/main/java/org/floens/chan/core/manager/WatchManager.java index 50cdd381..1352f0ef 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/manager/WatchManager.java +++ b/Clover/app/src/main/java/org/floens/chan/core/manager/WatchManager.java @@ -582,7 +582,7 @@ public class WatchManager { public PinWatcher(Pin pin) { this.pin = pin; - Logger.i(TAG, "PinWatcher: created for " + pin); + Logger.d(TAG, "PinWatcher: created for " + pin); chanLoader = LoaderPool.getInstance().obtain(pin.loadable, this); } @@ -618,7 +618,7 @@ public class WatchManager { private void destroy() { if (chanLoader != null) { - Logger.i(TAG, "PinWatcher: destroyed for " + pin); + Logger.d(TAG, "PinWatcher: destroyed for " + pin); LoaderPool.getInstance().release(chanLoader, this); chanLoader = null; } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/AlbumViewController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/AlbumViewController.java index db75fdaf..f7742527 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/AlbumViewController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/AlbumViewController.java @@ -29,14 +29,20 @@ import org.floens.chan.controller.Controller; import org.floens.chan.core.model.Loadable; import org.floens.chan.core.model.PostImage; import org.floens.chan.ui.cell.AlbumViewCell; +import org.floens.chan.ui.toolbar.ToolbarMenu; +import org.floens.chan.ui.toolbar.ToolbarMenuItem; +import org.floens.chan.ui.view.FloatingMenuItem; import org.floens.chan.ui.view.GridRecyclerView; import org.floens.chan.ui.view.ThumbnailView; +import java.util.ArrayList; import java.util.List; import static org.floens.chan.utils.AndroidUtils.dp; -public class AlbumViewController extends Controller implements ImageViewerController.ImageViewerCallback, ImageViewerController.GoPostCallback { +public class AlbumViewController extends Controller implements ImageViewerController.ImageViewerCallback, ImageViewerController.GoPostCallback, ToolbarMenuItem.ToolbarMenuItemCallback { + private static final int SAVE_ALBUM_ID = 101; + private GridRecyclerView recyclerView; private GridLayoutManager gridLayoutManager; @@ -56,6 +62,11 @@ public class AlbumViewController extends Controller implements ImageViewerContro view = inflateRes(R.layout.controller_album_view); + navigationItem.menu = new ToolbarMenu(context); + List items = new ArrayList<>(); + items.add(new FloatingMenuItem(SAVE_ALBUM_ID, R.string.action_download_album)); + navigationItem.createOverflow(context, this, items); + recyclerView = (GridRecyclerView) view.findViewById(R.id.recycler_view); recyclerView.setHasFixedSize(true); gridLayoutManager = new GridLayoutManager(context, 3); @@ -72,9 +83,25 @@ public class AlbumViewController extends Controller implements ImageViewerContro this.loadable = loadable; this.postImages = postImages; navigationItem.title = title; + navigationItem.subtitle = context.getResources().getQuantityString(R.plurals.image, postImages.size(), postImages.size()); targetIndex = index; } + @Override + public void onMenuItemClicked(ToolbarMenuItem item) { + } + + @Override + public void onSubMenuItemClicked(ToolbarMenuItem parent, FloatingMenuItem item) { + switch ((Integer)item.getId()) { + case SAVE_ALBUM_ID: + AlbumDownloadController albumDownloadController = new AlbumDownloadController(context); + albumDownloadController.setPostImages(loadable, postImages); + navigationController.pushController(albumDownloadController); + break; + } + } + @Override public ThumbnailView getPreviewImageTransitionView(ImageViewerController imageViewerController, PostImage postImage) { ThumbnailView thumbnail = null; diff --git a/Clover/app/src/main/res/layout/controller_album_download.xml b/Clover/app/src/main/res/layout/controller_album_download.xml index 38796d46..a4e68685 100644 --- a/Clover/app/src/main/res/layout/controller_album_download.xml +++ b/Clover/app/src/main/res/layout/controller_album_download.xml @@ -15,15 +15,12 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . --> - + android:layout_height="match_parent"> . android:padding="5dp" android:paddingBottom="72dp" android:scrollbarStyle="outsideOverlay" - android:scrollbars="vertical"/> + android:scrollbars="vertical" /> . android:layout_height="wrap_content" android:layout_gravity="right|bottom" android:layout_margin="16dp" - android:src="@drawable/ic_file_download_white_24dp"/> + android:src="@drawable/ic_file_download_white_24dp" />