diff options
| author | Andrew Dolgov <fox@fakecake.org> | 2025-05-06 19:58:35 +0300 |
|---|---|---|
| committer | Andrew Dolgov <fox@fakecake.org> | 2025-05-06 19:58:35 +0300 |
| commit | 97e92defd99b4d9b4bbb85a6a7170a70b05cae75 (patch) | |
| tree | fbd9f67d404266beba751232994c0eed6ec89f36 /org.fox.ttrss/src/main/java | |
| parent | eec72cb0137d01011620bdca9d51dcb8de81cf44 (diff) | |
drawer style tweaks
Diffstat (limited to 'org.fox.ttrss/src/main/java')
| -rwxr-xr-x | org.fox.ttrss/src/main/java/org/fox/ttrss/BaseFeedlistFragment.java | 210 | ||||
| -rwxr-xr-x | org.fox.ttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java | 2 |
2 files changed, 86 insertions, 126 deletions
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/BaseFeedlistFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/BaseFeedlistFragment.java index 853cfcbd..0952e7f7 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/BaseFeedlistFragment.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/BaseFeedlistFragment.java @@ -25,152 +25,112 @@ public abstract class BaseFeedlistFragment extends androidx.fragment.app.Fragmen boolean isOffline = activity instanceof OfflineActivity; - if (true /*m_activity.findViewById(R.id.headlines_drawer) != null*/) { - try { + try { + View layout = inflater.inflate(R.layout.drawer_header, list, false); + list.addHeaderView(layout, null, false); - boolean needSettingsFooter = false; + TextView login = view.findViewById(R.id.drawer_header_login); + TextView server = view.findViewById(R.id.drawer_header_server); - if (activity.isSmallScreen()) { - View layout = inflater.inflate(R.layout.drawer_header, list, false); - list.addHeaderView(layout, null, false); + login.setText(prefs.getString("login", "")); + try { + server.setText(new URL(prefs.getString("ttrss_url", "")).getHost()); + } catch (MalformedURLException e) { + server.setText(""); + } - TextView login = view.findViewById(R.id.drawer_header_login); - TextView server = view.findViewById(R.id.drawer_header_server); + View settings = view.findViewById(R.id.drawer_settings_btn); - login.setText(prefs.getString("login", "")); + settings.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { try { - server.setText(new URL(prefs.getString("ttrss_url", "")).getHost()); - } catch (MalformedURLException e) { - server.setText(""); - } + Intent intent = new Intent(getActivity(), + PreferencesActivity.class); - View settings = view.findViewById(R.id.drawer_settings_btn); + startActivityForResult(intent, 0); - settings.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - try { - Intent intent = new Intent(getActivity(), - PreferencesActivity.class); + } catch (Exception e) { + e.printStackTrace(); + } + } + }); - startActivityForResult(intent, 0); + /* deal with ~material~ footers */ - } catch (Exception e) { - e.printStackTrace(); - } - } - }); - } else { - needSettingsFooter = true; + // divider + final View footer = inflater.inflate(R.layout.drawer_divider, list, false); + footer.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + // + } + }); + list.addFooterView(footer); + + // unread only checkbox + final View rowToggle = inflater.inflate(R.layout.feeds_row_toggle, list, false); + list.addFooterView(rowToggle); + TextView text = rowToggle.findViewById(R.id.title); + text.setText(R.string.unread_only); + + ImageView icon = rowToggle.findViewById(R.id.icon); + TypedValue tv = new TypedValue(); + getActivity().getTheme().resolveAttribute(R.attr.ic_filter_variant, tv, true); + icon.setImageResource(tv.resourceId); + + final SwitchCompat rowSwitch = rowToggle.findViewById(R.id.row_switch); + rowSwitch.setChecked(activity.getUnreadOnly()); + + rowSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton button, boolean isChecked) { + activity.setUnreadOnly(isChecked); + refresh(); } + }); - /* deal with ~material~ footers */ + footer.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + rowSwitch.setChecked(!rowSwitch.isChecked()); + } + }); - // divider - View footer = inflater.inflate(R.layout.drawer_divider, list, false); - footer.setOnClickListener(new View.OnClickListener() { + // root or subdirectory (i.e. feed category) + if (isRoot) { + // offline + final View offlineFooter = inflater.inflate(R.layout.feeds_row, list, false); + offlineFooter.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - // - } - }); - list.addFooterView(footer); - - // unread only checkbox - footer = inflater.inflate(R.layout.feeds_row_toggle, list, false); - list.addFooterView(footer); - TextView text = footer.findViewById(R.id.title); - text.setText(R.string.unread_only); - - ImageView icon = footer.findViewById(R.id.icon); - TypedValue tv = new TypedValue(); - getActivity().getTheme().resolveAttribute(R.attr.ic_filter_variant, tv, true); - icon.setImageResource(tv.resourceId); - - final SwitchCompat rowSwitch = footer.findViewById(R.id.row_switch); - rowSwitch.setChecked(activity.getUnreadOnly()); + if (activity instanceof OnlineActivity) { + ((OnlineActivity)activity).switchOffline(); - rowSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton button, boolean isChecked) { - activity.setUnreadOnly(isChecked); - refresh(); - } - }); - - footer.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - rowSwitch.setChecked(!rowSwitch.isChecked()); + } else if (activity instanceof OfflineActivity) { + ((OfflineActivity)activity).switchOnline(); + } } }); - if (isRoot) { - if (needSettingsFooter) { - // settings (as a list footer row) - - footer = inflater.inflate(R.layout.feeds_row, list, false); - footer.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - try { - Intent intent = new Intent(getActivity(), - PreferencesActivity.class); - - startActivityForResult(intent, 0); - - } catch (Exception e) { - e.printStackTrace(); - } - } - }); - - list.addFooterView(footer); - text = footer.findViewById(R.id.title); - text.setText(R.string.action_settings); - - icon = footer.findViewById(R.id.icon); - tv = new TypedValue(); - getActivity().getTheme().resolveAttribute(R.attr.ic_settings, tv, true); - icon.setImageResource(tv.resourceId); - - TextView counter = footer.findViewById(R.id.unread_counter); - counter.setText(R.string.blank); - } + list.addFooterView(offlineFooter); + text = offlineFooter.findViewById(R.id.title); + text.setText(isOffline ? R.string.go_online : R.string.go_offline); - // offline - footer = inflater.inflate(R.layout.feeds_row, list, false); - footer.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (activity instanceof OnlineActivity) { - ((OnlineActivity)activity).switchOffline(); - - } else if (activity instanceof OfflineActivity) { - ((OfflineActivity)activity).switchOnline(); - } - } - }); - - list.addFooterView(footer); - text = footer.findViewById(R.id.title); - text.setText(isOffline ? R.string.go_online : R.string.go_offline); - - icon = footer.findViewById(R.id.icon); - tv = new TypedValue(); - getActivity().getTheme().resolveAttribute(isOffline ? R.attr.ic_cloud_upload : R.attr.ic_cloud_download, tv, true); - icon.setImageResource(tv.resourceId); - - TextView counter = footer.findViewById(R.id.unread_counter); - counter.setText(R.string.blank); - } + icon = offlineFooter.findViewById(R.id.icon); + tv = new TypedValue(); + getActivity().getTheme().resolveAttribute(isOffline ? R.attr.ic_cloud_upload : R.attr.ic_cloud_download, tv, true); + icon.setImageResource(tv.resourceId); - } catch (InflateException e) { - // welp couldn't inflate header i guess - e.printStackTrace(); - } catch (java.lang.UnsupportedOperationException e) { - e.printStackTrace(); + TextView counter = offlineFooter.findViewById(R.id.unread_counter); + counter.setText(R.string.blank); } + + } catch (InflateException e) { + // welp couldn't inflate header i guess + e.printStackTrace(); + } catch (java.lang.UnsupportedOperationException e) { + e.printStackTrace(); } } diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java index af925ea4..b805ee6a 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java @@ -300,7 +300,7 @@ public class FeedCategoriesFragment extends BaseFeedlistFragment implements OnIt @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.fragment_cats, container, false); + View view = inflater.inflate(R.layout.fragment_feeds, container, false); m_swipeLayout = view.findViewById(R.id.feeds_swipe_container); |