From 9b8ae6fdf20088fdd749844ca7207a146b1cc90d Mon Sep 17 00:00:00 2001 From: Floens Date: Sun, 15 Nov 2015 23:53:40 +0100 Subject: [PATCH] Allow string resources in all the setting view contructors Convert every Controller.string call to AndroidUtils.getString --- .../floens/chan/controller/Controller.java | 4 - .../AdvancedSettingsController.java | 44 +++++----- .../ui/controller/BoardEditController.java | 5 +- .../chan/ui/controller/BrowseController.java | 4 +- .../DeveloperSettingsController.java | 2 +- .../chan/ui/controller/FiltersController.java | 2 +- .../chan/ui/controller/HistoryController.java | 2 +- .../ui/controller/ImageViewerController.java | 8 +- .../ui/controller/MainSettingsController.java | 81 +++++++++---------- .../ui/controller/PassSettingsController.java | 8 +- .../controller/WatchSettingsController.java | 14 ++-- .../chan/ui/settings/BooleanSettingView.java | 4 + .../chan/ui/settings/IntegerSettingView.java | 4 + .../chan/ui/settings/LinkSettingView.java | 8 ++ .../chan/ui/settings/ListSettingView.java | 8 ++ .../floens/chan/ui/settings/SettingView.java | 6 ++ .../chan/ui/settings/SettingsGroup.java | 4 + .../chan/ui/settings/StringSettingView.java | 4 + 18 files changed, 124 insertions(+), 88 deletions(-) diff --git a/Clover/app/src/main/java/org/floens/chan/controller/Controller.java b/Clover/app/src/main/java/org/floens/chan/controller/Controller.java index 09aed317..da4519fd 100644 --- a/Clover/app/src/main/java/org/floens/chan/controller/Controller.java +++ b/Clover/app/src/main/java/org/floens/chan/controller/Controller.java @@ -238,8 +238,4 @@ public abstract class Controller { public ViewGroup inflateRes(int resId) { return (ViewGroup) LayoutInflater.from(context).inflate(resId, null); } - - public String string(int id) { - return context.getString(id); - } } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/AdvancedSettingsController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/AdvancedSettingsController.java index c4be8e0f..3ccf4c8b 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/AdvancedSettingsController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/AdvancedSettingsController.java @@ -63,7 +63,7 @@ public class AdvancedSettingsController extends SettingsController { public void onCreate() { super.onCreate(); - navigationItem.title = string(R.string.settings_screen_advanced); + navigationItem.setTitle(R.string.settings_screen_advanced); view = inflateRes(R.layout.settings_layout); content = (LinearLayout) view.findViewById(R.id.scrollview_content); @@ -96,10 +96,10 @@ public class AdvancedSettingsController extends SettingsController { } private void populatePreferences() { - SettingsGroup settings = new SettingsGroup(string(R.string.settings_group_advanced)); + SettingsGroup settings = new SettingsGroup(R.string.settings_group_advanced); // TODO change this to a presenting controller - saveLocation = (LinkSettingView) settings.add(new LinkSettingView(this, string(R.string.setting_save_folder), null, new View.OnClickListener() { + saveLocation = (LinkSettingView) settings.add(new LinkSettingView(this, R.string.setting_save_folder, 0, new View.OnClickListener() { @Override public void onClick(View v) { File dir = new File(ChanSettings.saveLocation.get()); @@ -119,28 +119,28 @@ public class AdvancedSettingsController extends SettingsController { })); setSaveLocationDescription(); - newCaptcha = settings.add(new BooleanSettingView(this, ChanSettings.postNewCaptcha, string(R.string.setting_use_new_captcha), string(R.string.setting_use_new_captcha_description))); - settings.add(new BooleanSettingView(this, ChanSettings.saveOriginalFilename, string(R.string.setting_save_original_filename), null)); - settings.add(new BooleanSettingView(this, ChanSettings.shareUrl, string(R.string.setting_share_url), string(R.string.setting_share_url_description))); - settings.add(new BooleanSettingView(this, ChanSettings.networkHttps, string(R.string.setting_network_https), string(R.string.setting_network_https_description))); - forcePhoneLayoutSetting = settings.add(new BooleanSettingView(this, ChanSettings.forcePhoneLayout, string(R.string.setting_force_phone_layout), null)); - enableReplyFab = settings.add(new BooleanSettingView(this, ChanSettings.enableReplyFab, string(R.string.setting_enable_reply_fab), string(R.string.setting_enable_reply_fab_description))); - anonymize = settings.add(new BooleanSettingView(this, ChanSettings.anonymize, string(R.string.setting_anonymize), null)); - anonymizeIds = settings.add(new BooleanSettingView(this, ChanSettings.anonymizeIds, string(R.string.setting_anonymize_ids), null)); - settings.add(new BooleanSettingView(this, ChanSettings.repliesButtonsBottom, string(R.string.setting_buttons_bottom), null)); - settings.add(new BooleanSettingView(this, ChanSettings.confirmExit, string(R.string.setting_confirm_exit), null)); - tapNoReply = settings.add(new BooleanSettingView(this, ChanSettings.tapNoReply, string(R.string.setting_tap_no_rely), null)); - settings.add(new BooleanSettingView(this, ChanSettings.volumeKeysScrolling, string(R.string.setting_volume_key_scrolling), null)); - postFullDate = settings.add(new BooleanSettingView(this, ChanSettings.postFullDate, string(R.string.setting_post_full_date), null)); - postFileInfo = settings.add(new BooleanSettingView(this, ChanSettings.postFileInfo, string(R.string.setting_post_file_info), null)); - postFilename = settings.add(new BooleanSettingView(this, ChanSettings.postFilename, string(R.string.setting_post_filename), null)); + newCaptcha = settings.add(new BooleanSettingView(this, ChanSettings.postNewCaptcha, R.string.setting_use_new_captcha, R.string.setting_use_new_captcha_description)); + settings.add(new BooleanSettingView(this, ChanSettings.saveOriginalFilename, R.string.setting_save_original_filename, 0)); + settings.add(new BooleanSettingView(this, ChanSettings.shareUrl, R.string.setting_share_url, R.string.setting_share_url_description)); + settings.add(new BooleanSettingView(this, ChanSettings.networkHttps, R.string.setting_network_https, R.string.setting_network_https_description)); + forcePhoneLayoutSetting = settings.add(new BooleanSettingView(this, ChanSettings.forcePhoneLayout, R.string.setting_force_phone_layout, 0)); + enableReplyFab = settings.add(new BooleanSettingView(this, ChanSettings.enableReplyFab, R.string.setting_enable_reply_fab,R.string.setting_enable_reply_fab_description)); + anonymize = settings.add(new BooleanSettingView(this, ChanSettings.anonymize, R.string.setting_anonymize, 0)); + anonymizeIds = settings.add(new BooleanSettingView(this, ChanSettings.anonymizeIds, R.string.setting_anonymize_ids, 0)); + settings.add(new BooleanSettingView(this, ChanSettings.repliesButtonsBottom, R.string.setting_buttons_bottom, 0)); + settings.add(new BooleanSettingView(this, ChanSettings.confirmExit, R.string.setting_confirm_exit, 0)); + tapNoReply = settings.add(new BooleanSettingView(this, ChanSettings.tapNoReply, R.string.setting_tap_no_rely, 0)); + settings.add(new BooleanSettingView(this, ChanSettings.volumeKeysScrolling, R.string.setting_volume_key_scrolling, 0)); + postFullDate = settings.add(new BooleanSettingView(this, ChanSettings.postFullDate, R.string.setting_post_full_date, 0)); + postFileInfo = settings.add(new BooleanSettingView(this, ChanSettings.postFileInfo, R.string.setting_post_file_info, 0)); + postFilename = settings.add(new BooleanSettingView(this, ChanSettings.postFilename, R.string.setting_post_filename, 0)); groups.add(settings); - SettingsGroup proxy = new SettingsGroup(string(R.string.settings_group_proxy)); - proxy.add(new BooleanSettingView(this, ChanSettings.proxyEnabled, string(R.string.setting_proxy_enabled), null)); - proxy.add(new StringSettingView(this, ChanSettings.proxyAddress, string(R.string.setting_proxy_address), string(R.string.setting_proxy_address))); - proxy.add(new IntegerSettingView(this, ChanSettings.proxyPort, string(R.string.setting_proxy_port), string(R.string.setting_proxy_port))); + SettingsGroup proxy = new SettingsGroup(R.string.settings_group_proxy); + proxy.add(new BooleanSettingView(this, ChanSettings.proxyEnabled, R.string.setting_proxy_enabled, 0)); + proxy.add(new StringSettingView(this, ChanSettings.proxyAddress, R.string.setting_proxy_address, R.string.setting_proxy_address)); + proxy.add(new IntegerSettingView(this, ChanSettings.proxyPort, R.string.setting_proxy_port, R.string.setting_proxy_port)); groups.add(proxy); } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/BoardEditController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/BoardEditController.java index e36abd90..4996b67d 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/BoardEditController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/BoardEditController.java @@ -60,6 +60,7 @@ import java.util.Locale; import static org.floens.chan.utils.AndroidUtils.dp; import static org.floens.chan.utils.AndroidUtils.fixSnackbarText; +import static org.floens.chan.utils.AndroidUtils.getString; public class BoardEditController extends Controller implements View.OnClickListener, ToolbarMenuItem.ToolbarMenuItemCallback { private static final int OPTION_SORT_A_Z = 1; @@ -81,7 +82,7 @@ public class BoardEditController extends Controller implements View.OnClickListe public void onCreate() { super.onCreate(); - navigationItem.title = string(R.string.board_edit); + navigationItem.setTitle(R.string.board_edit); List items = new ArrayList<>(); items.add(new FloatingMenuItem(OPTION_SORT_A_Z, R.string.board_edit_sort_a_z)); @@ -244,7 +245,7 @@ public class BoardEditController extends Controller implements View.OnClickListe recyclerView.smoothScrollToPosition(boards.size()); - Snackbar snackbar = Snackbar.make(view, string(R.string.board_add_success) + " " + board.key, Snackbar.LENGTH_LONG); + Snackbar snackbar = Snackbar.make(view, getString(R.string.board_add_success) + " " + board.key, Snackbar.LENGTH_LONG); fixSnackbarText(context, snackbar); snackbar.show(); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/BrowseController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/BrowseController.java index 84973d71..c2779d6c 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/BrowseController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/BrowseController.java @@ -47,6 +47,8 @@ import org.floens.chan.utils.AndroidUtils; import java.util.ArrayList; import java.util.List; +import static org.floens.chan.utils.AndroidUtils.getString; + public class BrowseController extends ThreadController implements ToolbarMenuItem.ToolbarMenuItemCallback, ThreadLayout.ThreadLayoutCallback, FloatingMenu.FloatingMenuCallback { private static final int REFRESH_ID = 1; private static final int REPLY_ID = 101; @@ -174,7 +176,7 @@ public class BrowseController extends ThreadController implements ToolbarMenuIte break; } - String name = string(nameId); + String name = getString(nameId); if (order == this.order) { name = "\u2713 " + name; // Checkmark } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/DeveloperSettingsController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/DeveloperSettingsController.java index 7793b545..409e46fc 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/DeveloperSettingsController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/DeveloperSettingsController.java @@ -45,7 +45,7 @@ public class DeveloperSettingsController extends Controller { public void onCreate() { super.onCreate(); - navigationItem.title = string(R.string.settings_developer); + navigationItem.setTitle(R.string.settings_developer); LinearLayout wrapper = new LinearLayout(context); wrapper.setOrientation(LinearLayout.VERTICAL); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/FiltersController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/FiltersController.java index e29e824b..52206485 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/FiltersController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/FiltersController.java @@ -103,7 +103,7 @@ public class FiltersController extends Controller implements ToolbarMenuItem.Too filterEngine = FilterEngine.getInstance(); databaseManager = Chan.getDatabaseManager(); - navigationItem.title = string(R.string.filters_screen); + navigationItem.setTitle(R.string.filters_screen); navigationItem.menu = new ToolbarMenu(context); navigationItem.menu.addItem(new ToolbarMenuItem(context, this, SEARCH_ID, R.drawable.ic_search_white_24dp)); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/HistoryController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/HistoryController.java index 859672a9..ac8027d9 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/HistoryController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/HistoryController.java @@ -68,7 +68,7 @@ public class HistoryController extends Controller implements CompoundButton.OnCh databaseManager = Chan.getDatabaseManager(); - navigationItem.title = string(R.string.history_screen); + navigationItem.setTitle(R.string.history_screen); List items = new ArrayList<>(); items.add(new FloatingMenuItem(CLEAR_ID, R.string.history_clear)); navigationItem.menu = new ToolbarMenu(context); 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 db3d6cef..ede819c3 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 @@ -118,10 +118,10 @@ public class ImageViewerController extends Controller implements ImageViewerPres navigationItem.menu = new ToolbarMenu(context); navigationItem.menu.addItem(new ToolbarMenuItem(context, this, SAVE_ID, R.drawable.ic_file_download_white_24dp)); overflowMenuItem = navigationItem.createOverflow(context, this, Arrays.asList( - new FloatingMenuItem(OPEN_BROWSER_ID, string(R.string.action_open_browser)), - new FloatingMenuItem(SHARE_ID, string(R.string.action_share)), - new FloatingMenuItem(SEARCH_ID, string(R.string.action_search_image)), - new FloatingMenuItem(SAVE_ALBUM, string(R.string.action_download_album)) + new FloatingMenuItem(OPEN_BROWSER_ID, R.string.action_open_browser), + new FloatingMenuItem(SHARE_ID, R.string.action_share), + new FloatingMenuItem(SEARCH_ID, R.string.action_search_image), + new FloatingMenuItem(SAVE_ALBUM, R.string.action_download_album) )); view = inflateRes(R.layout.controller_image_viewer); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/MainSettingsController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/MainSettingsController.java index e93d1135..c2946729 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/MainSettingsController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/MainSettingsController.java @@ -44,11 +44,13 @@ import org.floens.chan.utils.AndroidUtils; import org.floens.chan.utils.AnimationUtils; import java.util.ArrayList; -import java.util.Arrays; +import java.util.Collections; import java.util.List; import de.greenrobot.event.EventBus; +import static org.floens.chan.utils.AndroidUtils.getString; + public class MainSettingsController extends SettingsController implements ToolbarMenuItem.ToolbarMenuItemCallback, WatchSettingsController.WatchSettingControllerListener, PassSettingsController.PassSettingControllerListener { private static final int ADVANCED_SETTINGS = 1; private SettingView imageAutoLoadView; @@ -68,10 +70,10 @@ public class MainSettingsController extends SettingsController implements Toolba public void onCreate() { super.onCreate(); - navigationItem.title = s(R.string.settings_screen); + navigationItem.setTitle(R.string.settings_screen); navigationItem.menu = new ToolbarMenu(context); - navigationItem.createOverflow(context, this, Arrays.asList( - new FloatingMenuItem(ADVANCED_SETTINGS, s(R.string.settings_screen_advanced)) + navigationItem.createOverflow(context, this, Collections.singletonList( + new FloatingMenuItem(ADVANCED_SETTINGS, R.string.settings_screen_advanced) )); view = inflateRes(R.layout.settings_layout); @@ -115,25 +117,25 @@ public class MainSettingsController extends SettingsController implements Toolba @Override public void onWatchEnabledChanged(boolean enabled) { - watchLink.setDescription(s(enabled ? R.string.setting_watch_summary_enabled : R.string.setting_watch_summary_disabled)); + watchLink.setDescription(enabled ? R.string.setting_watch_summary_enabled : R.string.setting_watch_summary_disabled); } @Override public void onPassEnabledChanged(boolean enabled) { - passLink.setDescription(s(enabled ? R.string.setting_pass_summary_enabled : R.string.setting_pass_summary_disabled)); + passLink.setDescription(enabled ? R.string.setting_pass_summary_enabled : R.string.setting_pass_summary_disabled); } private void populatePreferences() { // General group - SettingsGroup general = new SettingsGroup(s(R.string.settings_group_general)); - general.add(new LinkSettingView(this, s(R.string.settings_board_edit), null, new View.OnClickListener() { + SettingsGroup general = new SettingsGroup(R.string.settings_group_general); + general.add(new LinkSettingView(this, R.string.settings_board_edit, 0, new View.OnClickListener() { @Override public void onClick(View v) { navigationController.pushController(new BoardEditController(context)); } })); - watchLink = (LinkSettingView) general.add(new LinkSettingView(this, s(R.string.settings_watch), null, new View.OnClickListener() { + watchLink = (LinkSettingView) general.add(new LinkSettingView(this, R.string.settings_watch, 0, new View.OnClickListener() { @Override public void onClick(View v) { navigationController.pushController(new WatchSettingsController(context)); @@ -142,9 +144,9 @@ public class MainSettingsController extends SettingsController implements Toolba groups.add(general); - SettingsGroup appearance = new SettingsGroup(s(R.string.settings_group_appearance)); + SettingsGroup appearance = new SettingsGroup(R.string.settings_group_appearance); - appearance.add(new LinkSettingView(this, s(R.string.settings_screen_theme), null, new View.OnClickListener() { + appearance.add(new LinkSettingView(this, R.string.settings_screen_theme, 0, new View.OnClickListener() { @Override public void onClick(View v) { navigationController.pushController(new ThemeSettingsController(context)); @@ -153,48 +155,48 @@ public class MainSettingsController extends SettingsController implements Toolba List fontSizes = new ArrayList<>(); for (int size = 10; size <= 19; size++) { - String name = size + (String.valueOf(size).equals(ChanSettings.fontSize.getDefault()) ? " " + s(R.string.setting_font_size_default) : ""); + String name = size + (String.valueOf(size).equals(ChanSettings.fontSize.getDefault()) ? " " + getString(R.string.setting_font_size_default) : ""); fontSizes.add(new ListSettingView.Item(name, String.valueOf(size))); } - fontView = appearance.add(new ListSettingView(this, ChanSettings.fontSize, s(R.string.setting_font_size), fontSizes.toArray(new ListSettingView.Item[fontSizes.size()]))); + fontView = appearance.add(new ListSettingView(this, ChanSettings.fontSize, R.string.setting_font_size, fontSizes.toArray(new ListSettingView.Item[fontSizes.size()]))); groups.add(appearance); // Browsing group - SettingsGroup browsing = new SettingsGroup(s(R.string.settings_group_browsing)); + SettingsGroup browsing = new SettingsGroup(R.string.settings_group_browsing); - browsing.add(new LinkSettingView(this, s(R.string.filters_screen), null, new View.OnClickListener() { + browsing.add(new LinkSettingView(this, R.string.filters_screen, 0, new View.OnClickListener() { @Override public void onClick(View v) { navigationController.pushController(new FiltersController(context)); } })); - browsing.add(new BooleanSettingView(this, ChanSettings.openLinkConfirmation, s(R.string.setting_open_link_confirmation), null)); - browsing.add(new BooleanSettingView(this, ChanSettings.autoRefreshThread, s(R.string.setting_auto_refresh_thread), null)); + browsing.add(new BooleanSettingView(this, ChanSettings.openLinkConfirmation, R.string.setting_open_link_confirmation, 0)); + browsing.add(new BooleanSettingView(this, ChanSettings.autoRefreshThread, R.string.setting_auto_refresh_thread, 0)); List imageAutoLoadTypes = new ArrayList<>(); for (ChanSettings.ImageAutoLoadMode mode : ChanSettings.ImageAutoLoadMode.values()) { - String name = ""; + int name = 0; switch (mode) { case ALL: - name = string(R.string.setting_image_auto_load_all); + name = R.string.setting_image_auto_load_all; break; case WIFI: - name = string(R.string.setting_image_auto_load_wifi); + name = R.string.setting_image_auto_load_wifi; break; case NONE: - name = string(R.string.setting_image_auto_load_none); + name = R.string.setting_image_auto_load_none; break; } - imageAutoLoadTypes.add(new ListSettingView.Item(name, mode.name)); + imageAutoLoadTypes.add(new ListSettingView.Item(getString(name), mode.name)); } - imageAutoLoadView = browsing.add(new ListSettingView(this, ChanSettings.imageAutoLoadNetwork, s(R.string.setting_image_auto_load), imageAutoLoadTypes.toArray(new ListSettingView.Item[imageAutoLoadTypes.size()]))); - videoAutoLoadView = browsing.add(new BooleanSettingView(this, ChanSettings.videoAutoLoad, s(R.string.setting_video_auto_load), s(R.string.setting_video_auto_load_description))); - browsing.add(new BooleanSettingView(this, ChanSettings.videoOpenExternal, s(R.string.setting_video_open_external), s(R.string.setting_video_open_external_description))); - browsing.add(new LinkSettingView(this, string(R.string.setting_clear_thread_hides), null, new View.OnClickListener() { + imageAutoLoadView = browsing.add(new ListSettingView(this, ChanSettings.imageAutoLoadNetwork, R.string.setting_image_auto_load, imageAutoLoadTypes.toArray(new ListSettingView.Item[imageAutoLoadTypes.size()]))); + videoAutoLoadView = browsing.add(new BooleanSettingView(this, ChanSettings.videoAutoLoad, R.string.setting_video_auto_load, R.string.setting_video_auto_load_description)); + browsing.add(new BooleanSettingView(this, ChanSettings.videoOpenExternal, R.string.setting_video_open_external, R.string.setting_video_open_external_description)); + browsing.add(new LinkSettingView(this, R.string.setting_clear_thread_hides, 0, new View.OnClickListener() { @Override public void onClick(View v) { Chan.getDatabaseManager().clearAllThreadHides(); @@ -206,22 +208,22 @@ public class MainSettingsController extends SettingsController implements Toolba groups.add(browsing); // Posting group - SettingsGroup posting = new SettingsGroup(s(R.string.settings_group_posting)); + SettingsGroup posting = new SettingsGroup(R.string.settings_group_posting); - passLink = (LinkSettingView) posting.add(new LinkSettingView(this, s(R.string.settings_pass), null, new View.OnClickListener() { + passLink = (LinkSettingView) posting.add(new LinkSettingView(this, R.string.settings_pass, 0, new View.OnClickListener() { @Override public void onClick(View v) { navigationController.pushController(new PassSettingsController(context)); } })); - posting.add(new BooleanSettingView(this, ChanSettings.postPinThread, s(R.string.setting_post_pin), null)); - posting.add(new StringSettingView(this, ChanSettings.postDefaultName, s(R.string.setting_post_default_name), s(R.string.setting_post_default_name))); + posting.add(new BooleanSettingView(this, ChanSettings.postPinThread, R.string.setting_post_pin, 0)); + posting.add(new StringSettingView(this, ChanSettings.postDefaultName, R.string.setting_post_default_name, R.string.setting_post_default_name)); groups.add(posting); // About group - SettingsGroup about = new SettingsGroup(s(R.string.settings_group_about)); + SettingsGroup about = new SettingsGroup(R.string.settings_group_about); String version = ""; try { version = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName; @@ -229,7 +231,7 @@ public class MainSettingsController extends SettingsController implements Toolba e.printStackTrace(); } - about.add(new LinkSettingView(this, s(R.string.app_name), version, new View.OnClickListener() { + about.add(new LinkSettingView(this, getString(R.string.app_name), version, new View.OnClickListener() { @Override public void onClick(View v) { if ((++clickCount) % 5 == 0) { @@ -281,23 +283,23 @@ public class MainSettingsController extends SettingsController implements Toolba } } - about.add(new LinkSettingView(this, s(R.string.settings_about_license), s(R.string.settings_about_license_description), new View.OnClickListener() { + about.add(new LinkSettingView(this, R.string.settings_about_license, R.string.settings_about_license_description, new View.OnClickListener() { @Override public void onClick(View v) { navigationController.pushController(new LicensesController(context, - s(R.string.settings_about_license), "file:///android_asset/html/license.html")); + getString(R.string.settings_about_license), "file:///android_asset/html/license.html")); } })); - about.add(new LinkSettingView(this, s(R.string.settings_about_licenses), s(R.string.settings_about_licenses_description), new View.OnClickListener() { + about.add(new LinkSettingView(this, R.string.settings_about_licenses, R.string.settings_about_licenses_description, new View.OnClickListener() { @Override public void onClick(View v) { navigationController.pushController(new LicensesController(context, - s(R.string.settings_about_licenses), "file:///android_asset/html/licenses.html")); + getString(R.string.settings_about_licenses), "file:///android_asset/html/licenses.html")); } })); - developerView = about.add(new LinkSettingView(this, s(R.string.settings_developer), null, new View.OnClickListener() { + developerView = about.add(new LinkSettingView(this, R.string.settings_developer, 0, new View.OnClickListener() { @Override public void onClick(View v) { navigationController.pushController(new DeveloperSettingsController(context)); @@ -306,9 +308,4 @@ public class MainSettingsController extends SettingsController implements Toolba groups.add(about); } - - private String s(int id) { - return string(id); - } - } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/PassSettingsController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/PassSettingsController.java index 6e953bd3..fbb6ee87 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/PassSettingsController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/PassSettingsController.java @@ -36,6 +36,8 @@ import org.floens.chan.ui.view.CrossfadeView; import org.floens.chan.utils.AndroidUtils; import org.floens.chan.utils.AnimationUtils; +import static org.floens.chan.utils.AndroidUtils.getString; + public class PassSettingsController extends Controller implements View.OnClickListener, ReplyManager.HttpCallback { private LinearLayout container; private CrossfadeView crossfadeView; @@ -54,7 +56,7 @@ public class PassSettingsController extends Controller implements View.OnClickLi public void onCreate() { super.onCreate(); - navigationItem.title = string(R.string.settings_screen_pass); + navigationItem.setTitle(R.string.settings_screen_pass); view = inflateRes(R.layout.controller_pass); container = (LinearLayout) view.findViewById(R.id.container); @@ -72,7 +74,7 @@ public class PassSettingsController extends Controller implements View.OnClickLi button.setText(loggedIn ? R.string.setting_pass_logout : R.string.setting_pass_login); button.setOnClickListener(this); - bottomDescription.setText(Html.fromHtml(string(R.string.setting_pass_bottom_description))); + bottomDescription.setText(Html.fromHtml(getString(R.string.setting_pass_bottom_description))); bottomDescription.setMovementMethod(LinkMovementMethod.getInstance()); inputToken.setText(ChanSettings.passToken.get()); @@ -131,7 +133,7 @@ public class PassSettingsController extends Controller implements View.OnClickLi private void authFail(PassHttpCall httpPost) { if (httpPost.message == null) { - httpPost.message = string(R.string.setting_pass_error); + httpPost.message = getString(R.string.setting_pass_error); } showError(httpPost.message); 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 c0f6de8b..ed4ce149 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 @@ -51,7 +51,7 @@ public class WatchSettingsController extends SettingsController implements Compo boolean enabled = ChanSettings.watchEnabled.get(); - navigationItem.title = string(R.string.settings_screen_watch); + navigationItem.setTitle(R.string.settings_screen_watch); view = inflateRes(R.layout.controller_watch); content = (LinearLayout) view.findViewById(R.id.scrollview_content); @@ -99,10 +99,10 @@ public class WatchSettingsController extends SettingsController implements Compo } private void populatePreferences() { - SettingsGroup settings = new SettingsGroup(string(R.string.settings_group_watch)); + SettingsGroup settings = new SettingsGroup(R.string.settings_group_watch); // settings.add(new BooleanSettingView(this, ChanSettings.watchCountdown, string(R.string.setting_watch_countdown), string(R.string.setting_watch_countdown_description))); - enableBackground = settings.add(new BooleanSettingView(this, ChanSettings.watchBackground, string(R.string.setting_watch_enable_background), string(R.string.setting_watch_enable_background_description))); + enableBackground = settings.add(new BooleanSettingView(this, ChanSettings.watchBackground, R.string.setting_watch_enable_background, R.string.setting_watch_enable_background_description)); int[] timeouts = new int[]{1, 2, 3, 5, 10, 30, 60}; ListSettingView.Item[] timeoutsItems = new ListSettingView.Item[timeouts.length]; @@ -110,15 +110,15 @@ public class WatchSettingsController extends SettingsController implements Compo String name = context.getResources().getQuantityString(R.plurals.minutes, timeouts[i], timeouts[i]); timeoutsItems[i] = new ListSettingView.Item(name, String.valueOf(timeouts[i] * 60)); } - backgroundTimeout = settings.add(new ListSettingView(this, ChanSettings.watchBackgroundTimeout, string(R.string.setting_watch_background_timeout), timeoutsItems)); + backgroundTimeout = settings.add(new ListSettingView(this, ChanSettings.watchBackgroundTimeout, R.string.setting_watch_background_timeout, timeoutsItems)); - notifyMode = settings.add(new ListSettingView(this, ChanSettings.watchNotifyMode, string(R.string.setting_watch_notify_mode), + notifyMode = settings.add(new ListSettingView(this, ChanSettings.watchNotifyMode, R.string.setting_watch_notify_mode, context.getResources().getStringArray(R.array.setting_watch_notify_modes), new String[]{"all", "quotes"})); - soundMode = settings.add(new ListSettingView(this, ChanSettings.watchSound, string(R.string.setting_watch_sound), + soundMode = settings.add(new ListSettingView(this, ChanSettings.watchSound, R.string.setting_watch_sound, context.getResources().getStringArray(R.array.setting_watch_sounds), new String[]{"all", "quotes"})); - ledMode = settings.add(new ListSettingView(this, ChanSettings.watchLed, string(R.string.setting_watch_led), + ledMode = settings.add(new ListSettingView(this, ChanSettings.watchLed, R.string.setting_watch_led, context.getResources().getStringArray(R.array.setting_watch_leds), new String[]{"-1", "ffffffff", "ffff0000", "ffffff00", "ff00ff00", "ff00ffff", "ff0000ff", "ffff00ff"})); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/settings/BooleanSettingView.java b/Clover/app/src/main/java/org/floens/chan/ui/settings/BooleanSettingView.java index 8612dd67..4ef76075 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/settings/BooleanSettingView.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/settings/BooleanSettingView.java @@ -30,6 +30,10 @@ public class BooleanSettingView extends SettingView implements View.OnClickListe private String description; private boolean building = true; + public BooleanSettingView(SettingsController settingsController, Setting setting, int name, int description) { + this(settingsController, setting, getString(name), getString(description)); + } + public BooleanSettingView(SettingsController settingsController, Setting setting, String name, String description) { super(settingsController, name); this.setting = setting; diff --git a/Clover/app/src/main/java/org/floens/chan/ui/settings/IntegerSettingView.java b/Clover/app/src/main/java/org/floens/chan/ui/settings/IntegerSettingView.java index b4d072c7..9ac67ada 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/settings/IntegerSettingView.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/settings/IntegerSettingView.java @@ -38,6 +38,10 @@ public class IntegerSettingView extends SettingView implements View.OnClickListe private final Setting setting; private final String dialogTitle; + public IntegerSettingView(SettingsController settingsController, Setting setting, int name, int dialogTitle) { + this(settingsController, setting, getString(name), getString(dialogTitle)); + } + public IntegerSettingView(SettingsController settingsController, Setting setting, String name, String dialogTitle) { super(settingsController, name); this.setting = setting; diff --git a/Clover/app/src/main/java/org/floens/chan/ui/settings/LinkSettingView.java b/Clover/app/src/main/java/org/floens/chan/ui/settings/LinkSettingView.java index 5bdb0af8..7f6af869 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/settings/LinkSettingView.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/settings/LinkSettingView.java @@ -26,6 +26,10 @@ public class LinkSettingView extends SettingView { private String description; private boolean built = false; + public LinkSettingView(SettingsController settingsController, int name, int description, View.OnClickListener clickListener) { + this(settingsController, getString(name), getString(description), clickListener); + } + public LinkSettingView(SettingsController settingsController, String name, String description, View.OnClickListener clickListener) { super(settingsController, name); this.description = description; @@ -54,6 +58,10 @@ public class LinkSettingView extends SettingView { } } + public void setDescription(int description) { + setDescription(getString(description)); + } + public void setDescription(String description) { this.description = description; if (built) { diff --git a/Clover/app/src/main/java/org/floens/chan/ui/settings/ListSettingView.java b/Clover/app/src/main/java/org/floens/chan/ui/settings/ListSettingView.java index 2a485ff0..62773c79 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/settings/ListSettingView.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/settings/ListSettingView.java @@ -37,6 +37,10 @@ public class ListSettingView extends SettingView implements FloatingMenu.Floatin private int selected; + public ListSettingView(SettingsController settingsController, Setting setting, int name, String[] itemNames, String[] keys) { + this(settingsController, setting, getString(name), itemNames, keys); + } + public ListSettingView(SettingsController settingsController, Setting setting, String name, String[] itemNames, String[] keys) { super(settingsController, name); @@ -50,6 +54,10 @@ public class ListSettingView extends SettingView implements FloatingMenu.Floatin selectItem(); } + public ListSettingView(SettingsController settingsController, Setting setting, int name, Item[] items) { + this(settingsController, setting, getString(name), items); + } + public ListSettingView(SettingsController settingsController, Setting setting, String name, Item[] items) { super(settingsController, name); this.setting = setting; diff --git a/Clover/app/src/main/java/org/floens/chan/ui/settings/SettingView.java b/Clover/app/src/main/java/org/floens/chan/ui/settings/SettingView.java index 9d4593de..7a9a38c2 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/settings/SettingView.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/settings/SettingView.java @@ -19,6 +19,8 @@ package org.floens.chan.ui.settings; import android.view.View; +import org.floens.chan.utils.AndroidUtils; + public abstract class SettingView { public SettingsController settingsController; public final String name; @@ -44,4 +46,8 @@ public abstract class SettingView { public String getBottomDescription() { return null; } + + public static String getString(int id) { + return id == 0 ? null : AndroidUtils.getString(id); + } } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/settings/SettingsGroup.java b/Clover/app/src/main/java/org/floens/chan/ui/settings/SettingsGroup.java index 3a69a21c..e710ecf0 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/settings/SettingsGroup.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/settings/SettingsGroup.java @@ -24,6 +24,10 @@ public class SettingsGroup { public final String name; public final List settingViews = new ArrayList<>(); + public SettingsGroup(int name) { + this(SettingView.getString(name)); + } + public SettingsGroup(String name) { this.name = name; } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/settings/StringSettingView.java b/Clover/app/src/main/java/org/floens/chan/ui/settings/StringSettingView.java index 52132d09..77e014bb 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/settings/StringSettingView.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/settings/StringSettingView.java @@ -34,6 +34,10 @@ public class StringSettingView extends SettingView implements View.OnClickListen private final Setting setting; private final String dialogTitle; + public StringSettingView(SettingsController settingsController, Setting setting, int name, int dialogTitle) { + this(settingsController, setting, getString(name), getString(dialogTitle)); + } + public StringSettingView(SettingsController settingsController, Setting setting, String name, String dialogTitle) { super(settingsController, name); this.setting = setting;