diff --git a/Clover/app/src/main/java/org/floens/chan/core/presenter/ImageViewerPresenter.java b/Clover/app/src/main/java/org/floens/chan/core/presenter/ImageViewerPresenter.java index b90d0b8a..64e7665d 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/presenter/ImageViewerPresenter.java +++ b/Clover/app/src/main/java/org/floens/chan/core/presenter/ImageViewerPresenter.java @@ -51,7 +51,7 @@ public class ImageViewerPresenter implements MultiImageView.Callback, ViewPager. public void onViewMeasured() { // Pager is measured, but still invisible callback.startPreviewInTransition(images.get(selectedPosition)); - callback.setTitle(images.get(selectedPosition)); + callback.setTitle(images.get(selectedPosition), selectedPosition, images.size()); } public void onInTransitionEnd() { @@ -133,7 +133,7 @@ public class ImageViewerPresenter implements MultiImageView.Callback, ViewPager. } private void onPageSwipedTo(int position) { - callback.setTitle(images.get(selectedPosition)); + callback.setTitle(images.get(selectedPosition), position, images.size()); callback.scrollToImage(images.get(selectedPosition)); for (PostImage other : getOther(position, false)) { @@ -261,7 +261,7 @@ public class ImageViewerPresenter implements MultiImageView.Callback, ViewPager. void setImageMode(PostImage postImage, MultiImageView.Mode mode); - void setTitle(PostImage postImage); + void setTitle(PostImage postImage, int index, int count); void scrollToImage(PostImage postImage); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java index 6b013ea5..b054c699 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java @@ -93,6 +93,7 @@ public class ImageViewerController extends Controller implements View.OnClickLis super.onCreate(); navigationItem.menu = new ToolbarMenu(context); + navigationItem.subtitle = "0"; overflowMenuItem = navigationItem.createOverflow(context, this, Arrays.asList( new FloatingMenuItem(SAVE_ID, string(R.string.image_save)), new FloatingMenuItem(OPEN_BROWSER_ID, string(R.string.action_open_browser)), @@ -220,8 +221,9 @@ public class ImageViewerController extends Controller implements View.OnClickLis return ((ImageViewerAdapter) pager.getAdapter()).getMode(postImage); } - public void setTitle(PostImage postImage) { + public void setTitle(PostImage postImage, int index, int count) { navigationItem.title = postImage.filename; + navigationItem.subtitle = (index + 1) + "/" + count; navigationItem.updateTitle(); } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/toolbar/NavigationItem.java b/Clover/app/src/main/java/org/floens/chan/ui/toolbar/NavigationItem.java index 2cbece32..6255663e 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/toolbar/NavigationItem.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/toolbar/NavigationItem.java @@ -30,6 +30,7 @@ import java.util.List; public class NavigationItem { public String title = ""; + public String subtitle = ""; public ToolbarMenu menu; public boolean hasBack = true; public FloatingMenu middleMenu; @@ -50,7 +51,7 @@ public class NavigationItem { public void updateTitle() { if (toolbar != null) { - toolbar.setTitle(this, title); + toolbar.setTitle(this); } } } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/toolbar/Toolbar.java b/Clover/app/src/main/java/org/floens/chan/ui/toolbar/Toolbar.java index 54417b0b..e992ddb0 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/toolbar/Toolbar.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/toolbar/Toolbar.java @@ -26,6 +26,7 @@ import android.content.Context; import android.graphics.drawable.Drawable; import android.os.Build; import android.text.Editable; +import android.text.TextUtils; import android.text.TextWatcher; import android.util.AttributeSet; import android.util.TypedValue; @@ -119,11 +120,18 @@ public class Toolbar extends LinearLayout implements View.OnClickListener, LoadV } } - void setTitle(NavigationItem navigationItem, String title) { + void setTitle(NavigationItem navigationItem) { if (navigationItem.view != null) { TextView titleView = (TextView) navigationItem.view.findViewById(R.id.title); if (titleView != null) { - titleView.setText(title); + titleView.setText(navigationItem.title); + } + + if (!TextUtils.isEmpty(navigationItem.subtitle)) { + TextView subtitleView = (TextView) navigationItem.view.findViewById(R.id.subtitle); + if (subtitleView != null) { + subtitleView.setText(navigationItem.subtitle); + } } } } @@ -346,6 +354,8 @@ public class Toolbar extends LinearLayout implements View.OnClickListener, LoadV LinearLayout menu = (LinearLayout) LayoutInflater.from(getContext()).inflate(R.layout.toolbar_menu, null); menu.setGravity(Gravity.CENTER_VERTICAL); + FrameLayout titleContainer = (FrameLayout) menu.findViewById(R.id.title_container); + final TextView titleView = (TextView) menu.findViewById(R.id.title); titleView.setTypeface(AndroidUtils.ROBOTO_MEDIUM); titleView.setText(item.title); @@ -365,6 +375,17 @@ public class Toolbar extends LinearLayout implements View.OnClickListener, LoadV }); } + TextView subtitleView = (TextView) menu.findViewById(R.id.subtitle); + if (!TextUtils.isEmpty(item.subtitle)) { + ViewGroup.LayoutParams titleParams = titleView.getLayoutParams(); + titleParams.height = ViewGroup.LayoutParams.WRAP_CONTENT; + titleView.setLayoutParams(titleParams); + subtitleView.setText(item.subtitle); + titleView.setPadding(titleView.getPaddingLeft(), dp(5f), titleView.getPaddingRight(), titleView.getPaddingBottom()); + } else { + titleContainer.removeView(subtitleView); + } + if (item.menu != null) { menu.addView(item.menu, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT)); } diff --git a/Clover/app/src/main/res/layout/toolbar_menu.xml b/Clover/app/src/main/res/layout/toolbar_menu.xml index 5972b070..732e5e6a 100644 --- a/Clover/app/src/main/res/layout/toolbar_menu.xml +++ b/Clover/app/src/main/res/layout/toolbar_menu.xml @@ -25,6 +25,20 @@ android:minWidth="150dp" android:paddingLeft="16dp" android:drawablePadding="16dp" /> + +