Add setting icon on the "Watching threads" header item.

filtering
Floens 10 years ago
parent ad02acaefe
commit 2ae4a94b9d
  1. 26
      Clover/app/src/main/java/org/floens/chan/ui/adapter/PinAdapter.java
  2. 5
      Clover/app/src/main/java/org/floens/chan/ui/controller/RootNavigationController.java
  3. 4
      Clover/app/src/main/java/org/floens/chan/ui/controller/WatchSettingsController.java
  4. BIN
      Clover/app/src/main/res/drawable-hdpi/ic_settings_grey600_24dp.png
  5. BIN
      Clover/app/src/main/res/drawable-mdpi/ic_settings_grey600_24dp.png
  6. BIN
      Clover/app/src/main/res/drawable-xhdpi/ic_settings_grey600_24dp.png
  7. BIN
      Clover/app/src/main/res/drawable-xxhdpi/ic_settings_grey600_24dp.png
  8. BIN
      Clover/app/src/main/res/drawable-xxxhdpi/ic_settings_grey600_24dp.png
  9. 12
      Clover/app/src/main/res/layout/cell_header.xml

@ -42,7 +42,7 @@ public class PinAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> im
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
switch (viewType) { switch (viewType) {
case TYPE_HEADER: case TYPE_HEADER:
return new PinHeaderHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.cell_header, parent, false)); return new HeaderHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.cell_header, parent, false));
case TYPE_PIN: case TYPE_PIN:
return new PinViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.cell_pin, parent, false)); return new PinViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.cell_pin, parent, false));
case TYPE_LINK: case TYPE_LINK:
@ -55,7 +55,10 @@ public class PinAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> im
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
switch (holder.getItemViewType()) { switch (holder.getItemViewType()) {
case TYPE_HEADER: case TYPE_HEADER:
((PinHeaderHolder) holder).text.setText(R.string.drawer_pinned); HeaderHolder headerHolder = (HeaderHolder) holder;
headerHolder.text.setText(R.string.drawer_pinned);
headerHolder.image.setImageResource(R.drawable.ic_settings_grey600_24dp);
break; break;
case TYPE_PIN: case TYPE_PIN:
final Pin pin = pins.get(position - PIN_OFFSET); final Pin pin = pins.get(position - PIN_OFFSET);
@ -259,13 +262,26 @@ public class PinAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> im
} }
} }
public class PinHeaderHolder extends RecyclerView.ViewHolder { public class HeaderHolder extends RecyclerView.ViewHolder {
private TextView text; private TextView text;
private ImageView image;
public PinHeaderHolder(View itemView) { public HeaderHolder(View itemView) {
super(itemView); super(itemView);
text = (TextView) itemView.findViewById(R.id.text); text = (TextView) itemView.findViewById(R.id.text);
text.setTypeface(ROBOTO_MEDIUM); text.setTypeface(ROBOTO_MEDIUM);
image = (ImageView) itemView.findViewById(R.id.image);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
image.setBackground(getAttrDrawable(itemView.getContext(), android.R.attr.selectableItemBackgroundBorderless));
} else {
image.setBackgroundResource(R.drawable.gray_background_selector);
}
image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
callback.onHeaderClicked(HeaderHolder.this);
}
});
} }
} }
@ -293,6 +309,8 @@ public class PinAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> im
void onWatchCountClicked(Pin pin); void onWatchCountClicked(Pin pin);
void onHeaderClicked(HeaderHolder holder);
boolean isHighlighted(Pin pin); boolean isHighlighted(Pin pin);
} }
} }

@ -155,6 +155,11 @@ public class RootNavigationController extends NavigationController implements Pi
ChanApplication.getWatchManager().toggleWatch(pin); ChanApplication.getWatchManager().toggleWatch(pin);
} }
@Override
public void onHeaderClicked(PinAdapter.HeaderHolder holder) {
pushController(new WatchSettingsController(context));
}
public void onEvent(WatchManager.PinAddedMessage message) { public void onEvent(WatchManager.PinAddedMessage message) {
pinAdapter.onPinAdded(message.pin); pinAdapter.onPinAdded(message.pin);
drawerLayout.openDrawer(drawer); drawerLayout.openDrawer(drawer);

@ -62,7 +62,9 @@ public class WatchSettingsController extends SettingsController implements Compo
@Override @Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
ChanSettings.watchEnabled.set(isChecked); ChanSettings.watchEnabled.set(isChecked);
((WatchSettingControllerListener) previousSiblingController).onWatchEnabledChanged(isChecked); if (previousSiblingController instanceof WatchSettingControllerListener) {
((WatchSettingControllerListener) previousSiblingController).onWatchEnabledChanged(isChecked);
}
crossfadeView.toggle(isChecked, true); crossfadeView.toggle(isChecked, true);
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 572 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 423 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 704 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 994 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -6,8 +6,9 @@
<TextView <TextView
android:id="@+id/text" android:id="@+id/text"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="1"
android:ellipsize="end" android:ellipsize="end"
android:gravity="center_vertical" android:gravity="center_vertical"
android:paddingLeft="16dp" android:paddingLeft="16dp"
@ -16,4 +17,13 @@
android:textColor="#ff757575" android:textColor="#ff757575"
android:textSize="14sp" /> android:textSize="14sp" />
<ImageView
android:id="@+id/image"
android:layout_width="56dp"
android:layout_height="match_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:scaleType="center"
android:layout_gravity="center_vertical" />
</LinearLayout> </LinearLayout>

Loading…
Cancel
Save