Add subtitle to toolbar

filtering
Floens 10 years ago
parent 331aa69f92
commit 7ba355b5bd
  1. 6
      Clover/app/src/main/java/org/floens/chan/core/presenter/ImageViewerPresenter.java
  2. 4
      Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java
  3. 3
      Clover/app/src/main/java/org/floens/chan/ui/toolbar/NavigationItem.java
  4. 25
      Clover/app/src/main/java/org/floens/chan/ui/toolbar/Toolbar.java
  5. 14
      Clover/app/src/main/res/layout/toolbar_menu.xml

@ -51,7 +51,7 @@ public class ImageViewerPresenter implements MultiImageView.Callback, ViewPager.
public void onViewMeasured() { public void onViewMeasured() {
// Pager is measured, but still invisible // Pager is measured, but still invisible
callback.startPreviewInTransition(images.get(selectedPosition)); callback.startPreviewInTransition(images.get(selectedPosition));
callback.setTitle(images.get(selectedPosition)); callback.setTitle(images.get(selectedPosition), selectedPosition, images.size());
} }
public void onInTransitionEnd() { public void onInTransitionEnd() {
@ -133,7 +133,7 @@ public class ImageViewerPresenter implements MultiImageView.Callback, ViewPager.
} }
private void onPageSwipedTo(int position) { private void onPageSwipedTo(int position) {
callback.setTitle(images.get(selectedPosition)); callback.setTitle(images.get(selectedPosition), position, images.size());
callback.scrollToImage(images.get(selectedPosition)); callback.scrollToImage(images.get(selectedPosition));
for (PostImage other : getOther(position, false)) { 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 setImageMode(PostImage postImage, MultiImageView.Mode mode);
void setTitle(PostImage postImage); void setTitle(PostImage postImage, int index, int count);
void scrollToImage(PostImage postImage); void scrollToImage(PostImage postImage);

@ -93,6 +93,7 @@ public class ImageViewerController extends Controller implements View.OnClickLis
super.onCreate(); super.onCreate();
navigationItem.menu = new ToolbarMenu(context); navigationItem.menu = new ToolbarMenu(context);
navigationItem.subtitle = "0";
overflowMenuItem = navigationItem.createOverflow(context, this, Arrays.asList( overflowMenuItem = navigationItem.createOverflow(context, this, Arrays.asList(
new FloatingMenuItem(SAVE_ID, string(R.string.image_save)), new FloatingMenuItem(SAVE_ID, string(R.string.image_save)),
new FloatingMenuItem(OPEN_BROWSER_ID, string(R.string.action_open_browser)), 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); 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.title = postImage.filename;
navigationItem.subtitle = (index + 1) + "/" + count;
navigationItem.updateTitle(); navigationItem.updateTitle();
} }

@ -30,6 +30,7 @@ import java.util.List;
public class NavigationItem { public class NavigationItem {
public String title = ""; public String title = "";
public String subtitle = "";
public ToolbarMenu menu; public ToolbarMenu menu;
public boolean hasBack = true; public boolean hasBack = true;
public FloatingMenu middleMenu; public FloatingMenu middleMenu;
@ -50,7 +51,7 @@ public class NavigationItem {
public void updateTitle() { public void updateTitle() {
if (toolbar != null) { if (toolbar != null) {
toolbar.setTitle(this, title); toolbar.setTitle(this);
} }
} }
} }

@ -26,6 +26,7 @@ import android.content.Context;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Build; import android.os.Build;
import android.text.Editable; import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher; import android.text.TextWatcher;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.util.TypedValue; 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) { if (navigationItem.view != null) {
TextView titleView = (TextView) navigationItem.view.findViewById(R.id.title); TextView titleView = (TextView) navigationItem.view.findViewById(R.id.title);
if (titleView != null) { 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); LinearLayout menu = (LinearLayout) LayoutInflater.from(getContext()).inflate(R.layout.toolbar_menu, null);
menu.setGravity(Gravity.CENTER_VERTICAL); menu.setGravity(Gravity.CENTER_VERTICAL);
FrameLayout titleContainer = (FrameLayout) menu.findViewById(R.id.title_container);
final TextView titleView = (TextView) menu.findViewById(R.id.title); final TextView titleView = (TextView) menu.findViewById(R.id.title);
titleView.setTypeface(AndroidUtils.ROBOTO_MEDIUM); titleView.setTypeface(AndroidUtils.ROBOTO_MEDIUM);
titleView.setText(item.title); 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) { if (item.menu != null) {
menu.addView(item.menu, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT)); menu.addView(item.menu, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT));
} }

@ -25,6 +25,20 @@
android:minWidth="150dp" android:minWidth="150dp"
android:paddingLeft="16dp" android:paddingLeft="16dp"
android:drawablePadding="16dp" /> android:drawablePadding="16dp" />
<TextView
android:id="@+id/subtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14dp"
android:textColor="#ffededed"
android:gravity="center_vertical"
android:singleLine="true"
android:lines="1"
android:ellipsize="end"
android:minWidth="150dp"
android:paddingTop="29dp"
android:paddingLeft="16dp"/>
</FrameLayout> </FrameLayout>
<!-- menu inserted here <!-- menu inserted here

Loading…
Cancel
Save