From 2ae4a94b9d81e82cd9baea2db806ede52876d667 Mon Sep 17 00:00:00 2001 From: Floens Date: Fri, 10 Apr 2015 14:24:52 +0200 Subject: [PATCH] Add setting icon on the "Watching threads" header item. --- .../floens/chan/ui/adapter/PinAdapter.java | 26 +++++++++++++++--- .../controller/RootNavigationController.java | 5 ++++ .../controller/WatchSettingsController.java | 4 ++- .../ic_settings_grey600_24dp.png | Bin 0 -> 572 bytes .../ic_settings_grey600_24dp.png | Bin 0 -> 423 bytes .../ic_settings_grey600_24dp.png | Bin 0 -> 704 bytes .../ic_settings_grey600_24dp.png | Bin 0 -> 994 bytes .../ic_settings_grey600_24dp.png | Bin 0 -> 1299 bytes .../app/src/main/res/layout/cell_header.xml | 12 +++++++- 9 files changed, 41 insertions(+), 6 deletions(-) create mode 100644 Clover/app/src/main/res/drawable-hdpi/ic_settings_grey600_24dp.png create mode 100644 Clover/app/src/main/res/drawable-mdpi/ic_settings_grey600_24dp.png create mode 100644 Clover/app/src/main/res/drawable-xhdpi/ic_settings_grey600_24dp.png create mode 100644 Clover/app/src/main/res/drawable-xxhdpi/ic_settings_grey600_24dp.png create mode 100644 Clover/app/src/main/res/drawable-xxxhdpi/ic_settings_grey600_24dp.png diff --git a/Clover/app/src/main/java/org/floens/chan/ui/adapter/PinAdapter.java b/Clover/app/src/main/java/org/floens/chan/ui/adapter/PinAdapter.java index a4416268..c3bb53d9 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/adapter/PinAdapter.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/adapter/PinAdapter.java @@ -42,7 +42,7 @@ public class PinAdapter extends RecyclerView.Adapter im public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { switch (viewType) { 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: return new PinViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.cell_pin, parent, false)); case TYPE_LINK: @@ -55,7 +55,10 @@ public class PinAdapter extends RecyclerView.Adapter im public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { switch (holder.getItemViewType()) { 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; case TYPE_PIN: final Pin pin = pins.get(position - PIN_OFFSET); @@ -259,13 +262,26 @@ public class PinAdapter extends RecyclerView.Adapter im } } - public class PinHeaderHolder extends RecyclerView.ViewHolder { + public class HeaderHolder extends RecyclerView.ViewHolder { private TextView text; + private ImageView image; - public PinHeaderHolder(View itemView) { + public HeaderHolder(View itemView) { super(itemView); text = (TextView) itemView.findViewById(R.id.text); 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 im void onWatchCountClicked(Pin pin); + void onHeaderClicked(HeaderHolder holder); + boolean isHighlighted(Pin pin); } } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/RootNavigationController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/RootNavigationController.java index 3671fc82..b3c0e1cd 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/RootNavigationController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/RootNavigationController.java @@ -155,6 +155,11 @@ public class RootNavigationController extends NavigationController implements Pi ChanApplication.getWatchManager().toggleWatch(pin); } + @Override + public void onHeaderClicked(PinAdapter.HeaderHolder holder) { + pushController(new WatchSettingsController(context)); + } + public void onEvent(WatchManager.PinAddedMessage message) { pinAdapter.onPinAdded(message.pin); drawerLayout.openDrawer(drawer); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/WatchSettingsController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/WatchSettingsController.java index 784d42df..5f33a460 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/WatchSettingsController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/WatchSettingsController.java @@ -62,7 +62,9 @@ public class WatchSettingsController extends SettingsController implements Compo @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { ChanSettings.watchEnabled.set(isChecked); - ((WatchSettingControllerListener) previousSiblingController).onWatchEnabledChanged(isChecked); + if (previousSiblingController instanceof WatchSettingControllerListener) { + ((WatchSettingControllerListener) previousSiblingController).onWatchEnabledChanged(isChecked); + } crossfadeView.toggle(isChecked, true); } diff --git a/Clover/app/src/main/res/drawable-hdpi/ic_settings_grey600_24dp.png b/Clover/app/src/main/res/drawable-hdpi/ic_settings_grey600_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..20d2b66e05272ae1caa3575316ed6d8d5360610e GIT binary patch literal 572 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 JPDHLkV1jzQPhJ23 literal 0 HcmV?d00001 diff --git a/Clover/app/src/main/res/layout/cell_header.xml b/Clover/app/src/main/res/layout/cell_header.xml index 9e02566c..f3c7da9b 100644 --- a/Clover/app/src/main/res/layout/cell_header.xml +++ b/Clover/app/src/main/res/layout/cell_header.xml @@ -6,8 +6,9 @@ + +