Add subtitle and download album option to the album view

multisite
Floens 9 years ago
parent 4253dcc7bd
commit 28a2f5cb4c
  1. 4
      Clover/app/src/main/java/org/floens/chan/core/manager/WatchManager.java
  2. 29
      Clover/app/src/main/java/org/floens/chan/ui/controller/AlbumViewController.java
  3. 7
      Clover/app/src/main/res/layout/controller_album_download.xml

@ -582,7 +582,7 @@ public class WatchManager {
public PinWatcher(Pin pin) { public PinWatcher(Pin pin) {
this.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); chanLoader = LoaderPool.getInstance().obtain(pin.loadable, this);
} }
@ -618,7 +618,7 @@ public class WatchManager {
private void destroy() { private void destroy() {
if (chanLoader != null) { if (chanLoader != null) {
Logger.i(TAG, "PinWatcher: destroyed for " + pin); Logger.d(TAG, "PinWatcher: destroyed for " + pin);
LoaderPool.getInstance().release(chanLoader, this); LoaderPool.getInstance().release(chanLoader, this);
chanLoader = null; chanLoader = null;
} }

@ -29,14 +29,20 @@ import org.floens.chan.controller.Controller;
import org.floens.chan.core.model.Loadable; import org.floens.chan.core.model.Loadable;
import org.floens.chan.core.model.PostImage; import org.floens.chan.core.model.PostImage;
import org.floens.chan.ui.cell.AlbumViewCell; 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.GridRecyclerView;
import org.floens.chan.ui.view.ThumbnailView; import org.floens.chan.ui.view.ThumbnailView;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import static org.floens.chan.utils.AndroidUtils.dp; 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 GridRecyclerView recyclerView;
private GridLayoutManager gridLayoutManager; private GridLayoutManager gridLayoutManager;
@ -56,6 +62,11 @@ public class AlbumViewController extends Controller implements ImageViewerContro
view = inflateRes(R.layout.controller_album_view); view = inflateRes(R.layout.controller_album_view);
navigationItem.menu = new ToolbarMenu(context);
List<FloatingMenuItem> 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 = (GridRecyclerView) view.findViewById(R.id.recycler_view);
recyclerView.setHasFixedSize(true); recyclerView.setHasFixedSize(true);
gridLayoutManager = new GridLayoutManager(context, 3); gridLayoutManager = new GridLayoutManager(context, 3);
@ -72,9 +83,25 @@ public class AlbumViewController extends Controller implements ImageViewerContro
this.loadable = loadable; this.loadable = loadable;
this.postImages = postImages; this.postImages = postImages;
navigationItem.title = title; navigationItem.title = title;
navigationItem.subtitle = context.getResources().getQuantityString(R.plurals.image, postImages.size(), postImages.size());
targetIndex = index; 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 @Override
public ThumbnailView getPreviewImageTransitionView(ImageViewerController imageViewerController, PostImage postImage) { public ThumbnailView getPreviewImageTransitionView(ImageViewerController imageViewerController, PostImage postImage) {
ThumbnailView thumbnail = null; ThumbnailView thumbnail = null;

@ -15,15 +15,12 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
--> -->
<android.support.design.widget.CoordinatorLayout <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent">
android:background="?backcolor">
<org.floens.chan.ui.view.GridRecyclerView <org.floens.chan.ui.view.GridRecyclerView
android:id="@+id/recycler_view" android:id="@+id/recycler_view"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="#ff000000" android:background="#ff000000"

Loading…
Cancel
Save