Started moving all strings to strings.xml

This commit is contained in:
Koen 2023-10-25 12:16:58 +02:00
parent 48ab77eadc
commit 35f9173980
95 changed files with 685 additions and 1117 deletions

View file

@ -45,8 +45,8 @@ class Settings : FragmentedStorageFileJson() {
val onTabsChanged = Event0();
@FormField(
"Manage Polycentric identity", FieldForm.BUTTON,
"Manage your Polycentric identity", -4
R.string.manage_polycentric_identity, FieldForm.BUTTON,
R.string.manage_your_polycentric_identity, -4
)
@FormFieldButton(R.drawable.ic_person)
fun managePolycentricIdentity() {
@ -60,8 +60,8 @@ class Settings : FragmentedStorageFileJson() {
}
@FormField(
"Show FAQ", FieldForm.BUTTON,
"Get answers to common questions", -3
R.string.show_faq, FieldForm.BUTTON,
R.string.get_answers_to_common_questions, -3
)
@FormFieldButton(R.drawable.ic_quiz)
fun openFAQ() {
@ -73,8 +73,8 @@ class Settings : FragmentedStorageFileJson() {
}
}
@FormField(
"Show Issues", FieldForm.BUTTON,
"A list of user-reported and self-reported issues", -2
R.string.show_issues, FieldForm.BUTTON,
R.string.a_list_of_user_reported_and_self_reported_issues, -2
)
@FormFieldButton(R.drawable.ic_data_alert)
fun openIssues() {
@ -87,8 +87,8 @@ class Settings : FragmentedStorageFileJson() {
}
@FormField(
"Submit feedback", FieldForm.BUTTON,
"Give feedback on the application", -1
R.string.submit_feedback, FieldForm.BUTTON,
R.string.give_feedback_on_the_application, -1
)
@FormFieldButton(R.drawable.ic_bug)
fun submitFeedback() {
@ -107,8 +107,8 @@ class Settings : FragmentedStorageFileJson() {
}
@FormField(
"Manage Tabs", FieldForm.BUTTON,
"Change tabs visible on the home screen", -1
R.string.manage_tabs, FieldForm.BUTTON,
R.string.change_tabs_visible_on_the_home_screen, -1
)
@FormFieldButton(R.drawable.ic_tabs)
fun manageTabs() {
@ -121,11 +121,11 @@ class Settings : FragmentedStorageFileJson() {
}
}
@FormField("Home", "group", "Configure how your Home tab works and feels", 1)
@FormField(R.string.home, "group", R.string.configure_how_your_home_tab_works_and_feels, 1)
var home = HomeSettings();
@Serializable
class HomeSettings {
@FormField("Feed Style", FieldForm.DROPDOWN, "", 5)
@FormField(R.string.feed_style, FieldForm.DROPDOWN, -1, 5)
@DropdownFieldOptionsId(R.array.feed_style)
var homeFeedStyle: Int = 1;
@ -137,16 +137,16 @@ class Settings : FragmentedStorageFileJson() {
}
}
@FormField("Search", "group", "", 2)
@FormField(R.string.search, "group", -1, 2)
var search = SearchSettings();
@Serializable
class SearchSettings {
@FormField("Search History", FieldForm.TOGGLE, "", 4)
@FormField(R.string.search_history, FieldForm.TOGGLE, -1, 4)
@Serializable(with = FlexibleBooleanSerializer::class)
var searchHistory: Boolean = true;
@FormField("Feed Style", FieldForm.DROPDOWN, "", 5)
@FormField(R.string.feed_style, FieldForm.DROPDOWN, -1, 5)
@DropdownFieldOptionsId(R.array.feed_style)
var searchFeedStyle: Int = 1;
@ -159,11 +159,11 @@ class Settings : FragmentedStorageFileJson() {
}
}
@FormField("Subscriptions", "group", "Configure how your Subscriptions works and feels", 3)
@FormField(R.string.subscriptions, "group", R.string.configure_how_your_subscriptions_works_and_feels, 3)
var subscriptions = SubscriptionsSettings();
@Serializable
class SubscriptionsSettings {
@FormField("Feed Style", FieldForm.DROPDOWN, "", 5)
@FormField(R.string.feed_style, FieldForm.DROPDOWN, -1, 5)
@DropdownFieldOptionsId(R.array.feed_style)
var subscriptionsFeedStyle: Int = 1;
@ -174,11 +174,11 @@ class Settings : FragmentedStorageFileJson() {
return FeedStyle.THUMBNAIL;
}
@FormField("Fetch on app boot", FieldForm.TOGGLE, "Shortly after opening the app, start fetching subscriptions.", 6)
@FormField(R.string.fetch_on_app_boot, FieldForm.TOGGLE, R.string.shortly_after_opening_the_app_start_fetching_subscriptions, 6)
@Serializable(with = FlexibleBooleanSerializer::class)
var fetchOnAppBoot: Boolean = true;
@FormField("Background Update", FieldForm.DROPDOWN, "Experimental background update for subscriptions cache (requires restart)", 7)
@FormField(R.string.background_update, FieldForm.DROPDOWN, R.string.experimental_background_update_for_subscriptions_cache, 7)
@DropdownFieldOptionsId(R.array.background_interval)
var subscriptionsBackgroundUpdateInterval: Int = 0;
@ -194,7 +194,7 @@ class Settings : FragmentedStorageFileJson() {
};
@FormField("Subscription Concurrency", FieldForm.DROPDOWN, "Specify how many threads are used to fetch channels (requires restart)", 8)
@FormField(R.string.subscription_concurrency, FieldForm.DROPDOWN, R.string.specify_how_many_threads_are_used_to_fetch_channels, 8)
@DropdownFieldOptionsId(R.array.thread_count)
var subscriptionConcurrency: Int = 3;
@ -203,17 +203,17 @@ class Settings : FragmentedStorageFileJson() {
}
}
@FormField("Player", "group", "Change behavior of the player", 4)
@FormField(R.string.player, "group", R.string.change_behavior_of_the_player, 4)
var playback = PlaybackSettings();
@Serializable
class PlaybackSettings {
@FormField("Primary Language", FieldForm.DROPDOWN, "", 0)
@FormField(R.string.primary_language, FieldForm.DROPDOWN, -1, 0)
@DropdownFieldOptionsId(R.array.languages)
var primaryLanguage: Int = 0;
fun getPrimaryLanguage(context: Context) = context.resources.getStringArray(R.array.languages)[primaryLanguage];
@FormField("Default Playback Speed", FieldForm.DROPDOWN, "", 1)
@FormField(R.string.default_playback_speed, FieldForm.DROPDOWN, -1, 1)
@DropdownFieldOptionsId(R.array.playback_speeds)
var defaultPlaybackSpeed: Int = 3;
fun getDefaultPlaybackSpeed(): Float = when(defaultPlaybackSpeed) {
@ -229,29 +229,29 @@ class Settings : FragmentedStorageFileJson() {
else -> 1.0f;
};
@FormField("Preferred Quality", FieldForm.DROPDOWN, "", 2)
@FormField(R.string.preferred_quality, FieldForm.DROPDOWN, -1, 2)
@DropdownFieldOptionsId(R.array.preferred_quality_array)
var preferredQuality: Int = 0;
@FormField("Preferred Metered Quality", FieldForm.DROPDOWN, "", 2)
@FormField(R.string.preferred_metered_quality, FieldForm.DROPDOWN, -1, 2)
@DropdownFieldOptionsId(R.array.preferred_quality_array)
var preferredMeteredQuality: Int = 0;
fun getPreferredQualityPixelCount(): Int = preferedQualityToPixels(preferredQuality);
fun getPreferredMeteredQualityPixelCount(): Int = preferedQualityToPixels(preferredMeteredQuality);
fun getCurrentPreferredQualityPixelCount(): Int = if(!StateApp.instance.isCurrentMetered()) getPreferredQualityPixelCount() else getPreferredMeteredQualityPixelCount();
@FormField("Preferred Preview Quality", FieldForm.DROPDOWN, "", 3)
@FormField(R.string.preferred_preview_quality, FieldForm.DROPDOWN, -1, 3)
@DropdownFieldOptionsId(R.array.preferred_quality_array)
var preferredPreviewQuality: Int = 5;
fun getPreferredPreviewQualityPixelCount(): Int = preferedQualityToPixels(preferredPreviewQuality);
@FormField("Auto-Rotate", FieldForm.DROPDOWN, "", 4)
@FormField(R.string.auto_rotate, FieldForm.DROPDOWN, -1, 4)
@DropdownFieldOptionsId(R.array.system_enabled_disabled_array)
var autoRotate: Int = 2;
fun isAutoRotate() = autoRotate == 1 || (autoRotate == 2 && StateApp.instance.getCurrentSystemAutoRotate());
@FormField("Auto-Rotate Dead Zone", FieldForm.DROPDOWN, "This prevents the device from rotating within the given amount of degrees.", 5)
@FormField(R.string.auto_rotate_dead_zone, FieldForm.DROPDOWN, R.string.this_prevents_the_device_from_rotating_within_the_given_amount_of_degrees, 5)
@DropdownFieldOptionsId(R.array.auto_rotate_dead_zone)
var autoRotateDeadZone: Int = 0;
@ -259,19 +259,19 @@ class Settings : FragmentedStorageFileJson() {
return autoRotateDeadZone * 5;
}
@FormField("Background Behavior", FieldForm.DROPDOWN, "", 6)
@FormField(R.string.background_behavior, FieldForm.DROPDOWN, -1, 6)
@DropdownFieldOptionsId(R.array.player_background_behavior)
var backgroundPlay: Int = 2;
fun isBackgroundContinue() = backgroundPlay == 1;
fun isBackgroundPictureInPicture() = backgroundPlay == 2;
@FormField("Resume After Preview", FieldForm.DROPDOWN, "When watching a video in preview mode, resume at the position when opening the video", 7)
@FormField(R.string.resume_after_preview, FieldForm.DROPDOWN, R.string.when_watching_a_video_in_preview_mode_resume_at_the_position_when_opening_the_video_code, 7)
@DropdownFieldOptionsId(R.array.resume_after_preview)
var resumeAfterPreview: Int = 1;
@FormField("Live Chat Webview", FieldForm.TOGGLE, "Use the live chat web window when available over native implementation.", 8)
@FormField(R.string.live_chat_webview, FieldForm.TOGGLE, R.string.use_the_live_chat_web_window_when_available_over_native_implementation, 8)
var useLiveChatWindow: Boolean = true;
fun shouldResumePreview(previewedPosition: Long): Boolean{
@ -283,12 +283,12 @@ class Settings : FragmentedStorageFileJson() {
}
}
@FormField("Downloads", "group", "Configure downloading of videos", 5)
@FormField(R.string.downloads, "group", R.string.configure_downloading_of_videos, 5)
var downloads = Downloads();
@Serializable
class Downloads {
@FormField("Download when", FieldForm.DROPDOWN, "Configure when videos should be downloaded", 0)
@FormField(R.string.download_when, FieldForm.DROPDOWN, R.string.configure_when_videos_should_be_downloaded, 0)
@DropdownFieldOptionsId(R.array.when_download)
var whenDownload: Int = 0;
@ -301,21 +301,21 @@ class Settings : FragmentedStorageFileJson() {
}
}
@FormField("Default Video Quality", FieldForm.DROPDOWN, "", 2)
@FormField(R.string.default_video_quality, FieldForm.DROPDOWN, -1, 2)
@DropdownFieldOptionsId(R.array.preferred_video_download)
var preferredVideoQuality: Int = 4;
fun getDefaultVideoQualityPixels(): Int = preferedQualityToPixels(preferredVideoQuality);
@FormField("Default Audio Quality", FieldForm.DROPDOWN, "", 3)
@FormField(R.string.default_audio_quality, FieldForm.DROPDOWN, -1, 3)
@DropdownFieldOptionsId(R.array.preferred_audio_download)
var preferredAudioQuality: Int = 1;
fun isHighBitrateDefault(): Boolean = preferredAudioQuality > 0;
@FormField("ByteRange Download", FieldForm.TOGGLE, "Attempt to utilize byte ranges, this can be combined with concurrency to bypass throttling", 4)
@FormField(R.string.byte_range_download, FieldForm.TOGGLE, R.string.attempt_to_utilize_byte_ranges, 4)
@Serializable(with = FlexibleBooleanSerializer::class)
var byteRangeDownload: Boolean = true;
@FormField("ByteRange Concurrency", FieldForm.DROPDOWN, "Number of concurrent threads to multiply download speeds from throttled sources", 5)
@FormField(R.string.byte_range_concurrency, FieldForm.DROPDOWN, R.string.number_of_concurrent_threads_to_multiply_download_speeds_from_throttled_sources, 5)
@DropdownFieldOptionsId(R.array.thread_count)
var byteRangeConcurrency: Int = 3;
fun getByteRangeThreadCount(): Int {
@ -323,20 +323,20 @@ class Settings : FragmentedStorageFileJson() {
}
}
@FormField("Browsing", "group", "Configure browsing behavior", 6)
@FormField(R.string.browsing, "group", R.string.configure_browsing_behavior, 6)
var browsing = Browsing();
@Serializable
class Browsing {
@FormField("Enable Video Cache", FieldForm.TOGGLE, "A cache to quickly load previously fetched videos", 0)
@FormField(R.string.enable_video_cache, FieldForm.TOGGLE, R.string.cache_to_quickly_load_previously_fetched_videos, 0)
@Serializable(with = FlexibleBooleanSerializer::class)
var videoCache: Boolean = true;
}
@FormField("Casting", "group", "Configure casting", 7)
@FormField(R.string.casting, "group", R.string.configure_casting, 7)
var casting = Casting();
@Serializable
class Casting {
@FormField("Enabled", FieldForm.TOGGLE, "Enable casting", 0)
@FormField(R.string.enabled, FieldForm.TOGGLE, R.string.enable_casting, 0)
@Serializable(with = FlexibleBooleanSerializer::class)
var enabled: Boolean = true;
@ -358,24 +358,24 @@ class Settings : FragmentedStorageFileJson() {
}
@FormField("Logging", FieldForm.GROUP, "", 8)
@FormField(R.string.logging, FieldForm.GROUP, -1, 8)
var logging = Logging();
@Serializable
class Logging {
@FormField("Log Level", FieldForm.DROPDOWN, "", 0)
@FormField(R.string.log_level, FieldForm.DROPDOWN, -1, 0)
@DropdownFieldOptionsId(R.array.log_levels)
var logLevel: Int = 0;
@FormField(
"Submit logs", FieldForm.BUTTON,
"Submit logs to help us narrow down issues", 1
R.string.submit_logs, FieldForm.BUTTON,
R.string.submit_logs_to_help_us_narrow_down_issues, 1
)
fun submitLogs() {
StateApp.instance.scopeOrNull?.launch(Dispatchers.IO) {
try {
if (!Logger.submitLogs()) {
withContext(Dispatchers.Main) {
SettingsActivity.getActivity()?.let { UIDialogs.toast(it, "Please enable logging to submit logs") }
SettingsActivity.getActivity()?.let { UIDialogs.toast(it, it.getString(R.string.please_enable_logging_to_submit_logs)) }
}
}
} catch (e: Throwable) {
@ -387,40 +387,40 @@ class Settings : FragmentedStorageFileJson() {
@FormField("Announcement", FieldForm.GROUP, "", 10)
@FormField(R.string.announcement, FieldForm.GROUP, -1, 10)
var announcementSettings = AnnouncementSettings();
@Serializable
class AnnouncementSettings {
@FormField(
"Reset announcements", FieldForm.BUTTON,
"Reset hidden announcements", 1
R.string.reset_announcements, FieldForm.BUTTON,
R.string.reset_hidden_announcements, 1
)
fun resetAnnouncements() {
StateAnnouncement.instance.resetAnnouncements();
UIDialogs.toast("Announcements reset.");
SettingsActivity.getActivity()?.let { UIDialogs.toast(it, it.getString(R.string.announcements_reset)); };
}
}
@FormField("Plugins", FieldForm.GROUP, "", 11)
@FormField(R.string.plugins, FieldForm.GROUP, -1, 11)
@Transient
var plugins = Plugins();
@Serializable
class Plugins {
@FormField("Clear Cookies on Logout", FieldForm.TOGGLE, "Clears cookies when you log out, allowing you to change account.", 0)
@FormField(R.string.clear_cookies_on_logout, FieldForm.TOGGLE, R.string.clears_cookies_when_you_log_out, 0)
var clearCookiesOnLogout: Boolean = true;
@FormField(
"Clear Cookies", FieldForm.BUTTON,
"Clears in-app browser cookies, especially useful for fully logging out of plugins.", 1
R.string.clear_cookies, FieldForm.BUTTON,
R.string.clears_in_app_browser_cookies, 1
)
fun clearCookies() {
val cookieManager: CookieManager = CookieManager.getInstance();
cookieManager.removeAllCookies(null);
}
@FormField(
"Reinstall Embedded Plugins", FieldForm.BUTTON,
"Also removes any data related plugin like login or settings (may not clear browser cache)", 1
R.string.reinstall_embedded_plugins, FieldForm.BUTTON,
R.string.also_removes_any_data_related_plugin_like_login_or_settings, 1
)
fun reinstallEmbedded() {
StateApp.instance.scopeOrNull!!.launch(Dispatchers.IO) {
@ -429,7 +429,7 @@ class Settings : FragmentedStorageFileJson() {
withContext(Dispatchers.Main) {
StateApp.instance.contextOrNull?.let {
UIDialogs.toast(it, "Embedded plugins reinstalled, a reboot is recommended");
UIDialogs.toast(it, it.getString(R.string.embedded_plugins_reinstalled_a_reboot_is_recommended));
};
}
} catch (ex: Exception) {
@ -444,7 +444,7 @@ class Settings : FragmentedStorageFileJson() {
}
@FormField("External Storage", FieldForm.GROUP, "", 12)
@FormField(R.string.external_storage, FieldForm.GROUP, -1, 12)
var storage = Storage();
@Serializable
class Storage {
@ -456,13 +456,13 @@ class Settings : FragmentedStorageFileJson() {
fun isStorageMainValid(context: Context): Boolean = StateApp.instance.isValidStorageUri(context, getStorageGeneralUri());
fun isStorageDownloadValid(context: Context): Boolean = StateApp.instance.isValidStorageUri(context, getStorageDownloadUri());
@FormField("Change external General directory", FieldForm.BUTTON, "Change the external directory for general files, used for persistent files like auto-backup", 3)
@FormField(R.string.change_external_general_directory, FieldForm.BUTTON, R.string.change_the_external_directory_for_general_files, 3)
fun changeStorageGeneral() {
SettingsActivity.getActivity()?.let {
StateApp.instance.changeExternalGeneralDirectory(it);
}
}
@FormField("Change external Downloads directory", FieldForm.BUTTON, "Change the external storage for download files, used for exported download files", 4)
@FormField(R.string.change_external_downloads_directory, FieldForm.BUTTON, R.string.change_the_external_storage_for_download_files, 4)
fun changeStorageDownload() {
SettingsActivity.getActivity()?.let {
StateApp.instance.changeExternalDownloadDirectory(it);
@ -471,19 +471,19 @@ class Settings : FragmentedStorageFileJson() {
}
@FormField("Auto Update", "group", "Configure the auto updater", 12)
@FormField(R.string.auto_update, "group", R.string.configure_the_auto_updater, 12)
var autoUpdate = AutoUpdate();
@Serializable
class AutoUpdate {
@FormField("Check", FieldForm.DROPDOWN, "", 0)
@FormField(R.string.check, FieldForm.DROPDOWN, -1, 0)
@DropdownFieldOptionsId(R.array.auto_update_when_array)
var check: Int = 0;
@FormField("Background download", FieldForm.DROPDOWN, "Configure if background download should be used", 1)
@FormField(R.string.background_download, FieldForm.DROPDOWN, R.string.configure_if_background_download_should_be_used, 1)
@DropdownFieldOptionsId(R.array.background_download)
var backgroundDownload: Int = 0;
@FormField("Download when", FieldForm.DROPDOWN, "Configure when updates should be downloaded", 2)
@FormField(R.string.download_when, FieldForm.DROPDOWN, R.string.configure_when_updates_should_be_downloaded, 2)
@DropdownFieldOptionsId(R.array.when_download)
var whenDownload: Int = 0;
@ -501,8 +501,8 @@ class Settings : FragmentedStorageFileJson() {
}
@FormField(
"Manual check", FieldForm.BUTTON,
"Manually check for updates", 3
R.string.manual_check, FieldForm.BUTTON,
R.string.manually_check_for_updates, 3
)
fun manualCheck() {
if (!BuildConfig.IS_PLAYSTORE_BUILD) {
@ -514,19 +514,20 @@ class Settings : FragmentedStorageFileJson() {
try {
it.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=${it.packageName}")))
} catch (e: ActivityNotFoundException) {
UIDialogs.toast(it, "Failed to show store.");
UIDialogs.toast(it, it.getString(R.string.failed_to_show_store));
}
}
}
}
@FormField(
"View changelog", FieldForm.BUTTON,
"Review the current and past changelogs", 4
R.string.view_changelog, FieldForm.BUTTON,
R.string.review_the_current_and_past_changelogs, 4
)
fun viewChangelog() {
UIDialogs.toast("Retrieving changelog");
SettingsActivity.getActivity()?.let {
UIDialogs.toast(it.getString(R.string.retrieving_changelog));
StateApp.instance.scopeOrNull?.launch(Dispatchers.IO) {
try {
val version = StateUpdate.instance.downloadVersionCode(ManagedHttpClient()) ?: return@launch;
@ -543,8 +544,8 @@ class Settings : FragmentedStorageFileJson() {
}
@FormField(
"Remove Cached Version", FieldForm.BUTTON,
"Remove the last downloaded version", 5
R.string.remove_cached_version, FieldForm.BUTTON,
R.string.remove_the_last_downloaded_version, 5
)
fun removeCachedVersion() {
StateApp.withContext {
@ -561,7 +562,7 @@ class Settings : FragmentedStorageFileJson() {
}
}
@FormField("Backup", FieldForm.GROUP, "", 13)
@FormField(R.string.backup, FieldForm.GROUP, -1, 13)
var backup = Backup();
@Serializable
class Backup {
@ -571,16 +572,16 @@ class Settings : FragmentedStorageFileJson() {
var autoBackupPassword: String? = null;
fun shouldAutomaticBackup() = autoBackupPassword != null;
@FormField("Automatic Backup", FieldForm.READONLYTEXT, "", 0)
@FormField(R.string.automatic_backup, FieldForm.READONLYTEXT, -1, 0)
val automaticBackupText get() = if(!shouldAutomaticBackup()) "None" else "Every Day";
@FormField("Set Automatic Backup", FieldForm.BUTTON, "Configure daily backup in case of catastrophic failure. (Written to the external Grayjay directory)", 1)
@FormField(R.string.set_automatic_backup, FieldForm.BUTTON, R.string.configure_daily_backup_in_case_of_catastrophic_failure, 1)
fun configureAutomaticBackup() {
UIDialogs.showAutomaticBackupDialog(SettingsActivity.getActivity()!!, autoBackupPassword != null) {
SettingsActivity.getActivity()?.reloadSettings();
};
}
@FormField("Restore Automatic Backup", FieldForm.BUTTON, "Restore a previous automatic backup", 2)
@FormField(R.string.restore_automatic_backup, FieldForm.BUTTON, R.string.restore_a_previous_automatic_backup, 2)
fun restoreAutomaticBackup() {
val activity = SettingsActivity.getActivity()!!
@ -591,38 +592,38 @@ class Settings : FragmentedStorageFileJson() {
}
@FormField("Export Data", FieldForm.BUTTON, "Creates a zip file with your data which can be imported by opening it with Grayjay", 3)
@FormField(R.string.export_data, FieldForm.BUTTON, R.string.creates_a_zip_file_with_your_data_which_can_be_imported_by_opening_it_with_grayjay, 3)
fun export() {
StateBackup.startExternalBackup();
}
}
@FormField("Payment", FieldForm.GROUP, "", 14)
@FormField(R.string.payment, FieldForm.GROUP, -1, 14)
var payment = Payment();
@Serializable
class Payment {
@FormField("Payment Status", FieldForm.READONLYTEXT, "", 1)
val paymentStatus: String get() = if (StatePayment.instance.hasPaid) "Paid" else "Not Paid";
@FormField(R.string.payment_status, FieldForm.READONLYTEXT, -1, 1)
val paymentStatus: String get() = SettingsActivity.getActivity()?.let { if (StatePayment.instance.hasPaid) it.getString(R.string.paid) else it.getString(R.string.not_paid); } ?: "Unknown";
@FormField("Clear Payment", FieldForm.BUTTON, "Deletes license keys from app", 2)
@FormField(R.string.clear_payment, FieldForm.BUTTON, R.string.deletes_license_keys_from_app, 2)
fun clearPayment() {
StatePayment.instance.clearLicenses();
SettingsActivity.getActivity()?.let {
UIDialogs.toast(it, "Licenses cleared, might require app restart");
UIDialogs.toast(it, it.getString(R.string.licenses_cleared_might_require_app_restart));
it.reloadSettings();
}
}
}
@FormField("Info", FieldForm.GROUP, "", 15)
@FormField(R.string.info, FieldForm.GROUP, -1, 15)
var info = Info();
@Serializable
class Info {
@FormField("Version Code", FieldForm.READONLYTEXT, "", 1, "code")
@FormField(R.string.version_code, FieldForm.READONLYTEXT, -1, 1, "code")
var versionCode = BuildConfig.VERSION_CODE;
@FormField("Version Name", FieldForm.READONLYTEXT, "", 2)
@FormField(R.string.version_name, FieldForm.READONLYTEXT, -1, 2)
var versionName = BuildConfig.VERSION_NAME;
@FormField("Version Type", FieldForm.READONLYTEXT, "", 3)
@FormField(R.string.version_type, FieldForm.READONLYTEXT, -1, 3)
var versionType = BuildConfig.BUILD_TYPE;
}

View file

@ -34,22 +34,22 @@ import kotlin.system.measureTimeMillis
@Serializable()
class SettingsDev : FragmentedStorageFileJson() {
@FormField("Developer Mode", FieldForm.TOGGLE, "", 0)
@FormField(R.string.developer_mode, FieldForm.TOGGLE, -1, 0)
@Serializable(with = FlexibleBooleanSerializer::class)
var developerMode: Boolean = false;
@FormField("Development Server", FieldForm.GROUP,
"Settings related to development server, be careful as it may open your phone to security vulnerabilities", 1)
@FormField(R.string.development_server, FieldForm.GROUP,
R.string.settings_related_to_development_server_be_careful_as_it_may_open_your_phone_to_security_vulnerabilities, 1)
val devServerSettings: DeveloperServerFields = DeveloperServerFields();
@Serializable
class DeveloperServerFields {
@FormField("Start Server on boot", FieldForm.TOGGLE, "", 0)
@FormField(R.string.start_server_on_boot, FieldForm.TOGGLE, -1, 0)
@Serializable(with = FlexibleBooleanSerializer::class)
var devServerOnBoot: Boolean = false;
@FormField("Start Server", FieldForm.BUTTON,
"Starts a DevServer on port 11337, may expose vulnerabilities.", 1)
@FormField(R.string.start_server, FieldForm.BUTTON,
R.string.starts_a_devServer_on_port_11337_may_expose_vulnerabilities, 1)
fun startServer() {
StateDeveloper.instance.runServer();
StateApp.instance.contextOrNull?.let {
@ -58,31 +58,31 @@ class SettingsDev : FragmentedStorageFileJson() {
}
}
@FormField("Experimental", FieldForm.GROUP,
"Settings related to development server, be careful as it may open your phone to security vulnerabilities", 2)
@FormField(R.string.experimental, FieldForm.GROUP,
R.string.settings_related_to_development_server_be_careful_as_it_may_open_your_phone_to_security_vulnerabilities, 2)
val experimentalSettings: ExperimentalFields = ExperimentalFields();
@Serializable
class ExperimentalFields {
@FormField("Background Subscription Testing", FieldForm.TOGGLE, "", 0)
@FormField(R.string.background_subscription_testing, FieldForm.TOGGLE, -1, 0)
@Serializable(with = FlexibleBooleanSerializer::class)
var backgroundSubscriptionFetching: Boolean = false;
}
@FormField("Crash Me", FieldForm.BUTTON,
"Crashes the application on purpose", 2)
@FormField(R.string.crash_me, FieldForm.BUTTON,
R.string.crashes_the_application_on_purpose, 2)
fun crashMe() {
throw java.lang.IllegalStateException("This is an uncaught exception triggered on purpose!");
}
@FormField("Delete Announcements", FieldForm.BUTTON,
"Delete all announcements", 2)
@FormField(R.string.delete_announcements, FieldForm.BUTTON,
R.string.delete_all_announcements, 2)
fun deleteAnnouncements() {
StateAnnouncement.instance.deleteAllAnnouncements();
}
@FormField("Clear Cookies", FieldForm.BUTTON,
"Clear all cook from the CookieManager", 2)
@FormField(R.string.clear_cookies, FieldForm.BUTTON,
R.string.clear_all_cookies_from_the_cookieManager, 2)
fun clearCookies() {
val cookieManager: CookieManager = CookieManager.getInstance()
cookieManager.removeAllCookies(null);
@ -90,13 +90,13 @@ class SettingsDev : FragmentedStorageFileJson() {
@Contextual
@Transient
@FormField("V8 Benchmarks", FieldForm.GROUP,
"Various benchmarks using the integrated V8 engine", 3)
@FormField(R.string.v8_benchmarks, FieldForm.GROUP,
R.string.various_benchmarks_using_the_integrated_v8_engine, 3)
val v8Benchmarks: V8Benchmarks = V8Benchmarks();
class V8Benchmarks {
@FormField(
"Test V8 Creation speed", FieldForm.BUTTON,
"Tests V8 creation times and running", 1
R.string.test_v8_creation_speed, FieldForm.BUTTON,
R.string.tests_v8_creation_times_and_running, 1
)
fun testV8Creation() {
var plugin: V8Plugin? = null;
@ -138,8 +138,8 @@ class SettingsDev : FragmentedStorageFileJson() {
}
@FormField(
"Test V8 Communication speed", FieldForm.BUTTON,
"Tests V8 communication speeds", 2
R.string.test_v8_communication_speed, FieldForm.BUTTON,
R.string.tests_v8_communication_speeds, 2
)
fun testV8RunSpeeds() {
var plugin: V8Plugin? = null;
@ -183,12 +183,12 @@ class SettingsDev : FragmentedStorageFileJson() {
@Contextual
@Transient
@FormField("V8 Script Testing", FieldForm.GROUP, "Various tests against a custom source", 4)
@FormField(R.string.v8_script_testing, FieldForm.GROUP, R.string.various_tests_against_a_custom_source, 4)
val v8ScriptTests: V8ScriptTests = V8ScriptTests();
class V8ScriptTests {
@Contextual
private var _currentPlugin : JSClient? = null;
@FormField("Inject", FieldForm.BUTTON, "Injects a test source config (local) into V8", 1)
@FormField(R.string.inject, FieldForm.BUTTON, R.string.injects_a_test_source_config_local_into_v8, 1)
fun testV8Init() {
StateApp.instance.scope.launch(Dispatchers.IO) {
try {
@ -204,7 +204,7 @@ class SettingsDev : FragmentedStorageFileJson() {
}
}
}
@FormField("getHome", FieldForm.BUTTON, "Attempts to fetch 2 pages from getHome", 2)
@FormField(R.string.getHome, FieldForm.BUTTON, R.string.attempts_to_fetch_2_pages_from_getHome, 2)
fun testV8Home() {
runTestPlugin(_currentPlugin) {
var home: IPager<IPlatformContent>? = null;
@ -270,10 +270,10 @@ class SettingsDev : FragmentedStorageFileJson() {
@Contextual
@Transient
@FormField("Other", FieldForm.GROUP, "Others...", 5)
@FormField(R.string.other, FieldForm.GROUP, R.string.others_ellipsis, 5)
val otherTests: OtherTests = OtherTests();
class OtherTests {
@FormField("Unsubscribe all", FieldForm.BUTTON, "Removes all subscriptions", -1)
@FormField(R.string.unsubscribe_all, FieldForm.BUTTON, R.string.removes_all_subscriptions, -1)
fun unsubscribeAll() {
val toUnsub = StateSubscriptions.instance.getSubscriptions();
UIDialogs.toast("Started unsubbing.. (${toUnsub.size})")
@ -282,24 +282,24 @@ class SettingsDev : FragmentedStorageFileJson() {
};
UIDialogs.toast("Finished unsubbing.. (${toUnsub.size})")
}
@FormField("Clear Downloads", FieldForm.BUTTON, "Deletes all ongoing downloads", 1)
@FormField(R.string.clear_downloads, FieldForm.BUTTON, R.string.deletes_all_ongoing_downloads, 1)
fun clearDownloads() {
StateDownloads.instance.getDownloading().forEach {
StateDownloads.instance.removeDownload(it);
};
}
@FormField("Clear All Downloaded", FieldForm.BUTTON, "Deletes all downloaded videos and related files", 2)
@FormField(R.string.clear_all_downloaded, FieldForm.BUTTON, R.string.deletes_all_downloaded_videos_and_related_files, 2)
fun clearDownloaded() {
StateDownloads.instance.getDownloadedVideos().forEach {
StateDownloads.instance.deleteCachedVideo(it.id);
};
}
@FormField("Delete Unresolved", FieldForm.BUTTON, "Deletes all unresolved source files", 3)
@FormField(R.string.delete_unresolved, FieldForm.BUTTON, R.string.deletes_all_unresolved_source_files, 3)
fun cleanupDownloads() {
StateDownloads.instance.cleanupDownloads();
}
@FormField("Fill storage till error", FieldForm.BUTTON, "Writes to disk till no space is left", 4)
@FormField(R.string.fill_storage_till_error, FieldForm.BUTTON, R.string.writes_to_disk_till_no_space_is_left, 4)
fun fillStorage(context: Context, scope: CoroutineScope?) {
val gigabuffer = ByteArray(1024 * 1024 * 128);
var count: Long = 0;

View file

@ -1,5 +1,6 @@
package com.futo.platformplayer.api.media.platforms.js
import com.futo.platformplayer.R
import com.futo.platformplayer.constructs.Event0
import com.futo.platformplayer.serializers.FlexibleBooleanSerializer
import com.futo.platformplayer.views.fields.FieldForm
@ -66,15 +67,15 @@ class SourcePluginDescriptor {
@Serializable
class AppPluginSettings {
@FormField("Visibility", "group", "Enable where this plugin's content are visible.", 2)
@FormField(R.string.visibility, "group", R.string.enable_where_this_plugins_content_are_visible, 2)
var tabEnabled = TabEnabled();
@Serializable
class TabEnabled {
@FormField("Home", FieldForm.TOGGLE, "Show content in home tab", 1)
@FormField(R.string.home, FieldForm.TOGGLE, R.string.show_content_in_home_tab, 1)
var enableHome: Boolean? = null;
@FormField("Search", FieldForm.TOGGLE, "Show content in search results", 2)
@FormField(R.string.search, FieldForm.TOGGLE, R.string.show_content_in_search_results, 2)
var enableSearch: Boolean? = null;
}

View file

@ -66,8 +66,8 @@ class ButtonField : BigButton, IField {
val attrField = method.getAnnotation(FormField::class.java);
val attrButtonField = method.getAnnotation(FormFieldButton::class.java);
if(attrField != null) {
super.withPrimaryText(attrField.title)
.withSecondaryText(attrField.subtitle)
super.withPrimaryText(context.getString(attrField.title))
.withSecondaryText(if (attrField.subtitle != -1) context.getString(attrField.subtitle) else "")
.withSecondaryTextMaxLines(2);
descriptor = attrField;
}

View file

@ -37,7 +37,7 @@ class DropdownField : TableRow, IField {
override val onChanged = Event2<IField, Any>();
constructor(context : Context, attrs : AttributeSet? = null) : super(context, attrs){
constructor(context: Context, attrs: AttributeSet? = null) : super(context, attrs){
inflate(context, R.layout.field_dropdown, this);
_spinner = findViewById(R.id.field_spinner);
_title = findViewById(R.id.field_title);
@ -77,17 +77,17 @@ class DropdownField : TableRow, IField {
return this;
}
override fun fromField(obj : Any, field : Field, formField: FormField?) : DropdownField {
override fun fromField(obj: Any, field: Field, formField: FormField?) : DropdownField {
this._field = field;
this._obj = obj;
val attrField = formField ?: field.getAnnotation(FormField::class.java);
if(attrField != null) {
_title.text = attrField.title;
_title.text = context.getString(attrField.title);
descriptor = attrField;
if(attrField.subtitle.isNotBlank()) {
_description.text = attrField.subtitle;
if(attrField.subtitle != -1) {
_description.text = context.getString(attrField.subtitle);
_description.visibility = View.VISIBLE;
}
else

View file

@ -6,7 +6,7 @@ import java.lang.reflect.Field
@Target(AnnotationTarget.FIELD, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY)
@Retention(AnnotationRetention.RUNTIME)
annotation class FormField(val title : String, val type : String, val subtitle : String = "", val order : Int = 0, val id : String = "")
annotation class FormField(val title: Int, val type: String, val subtitle: Int = -1, val order: Int = 0, val id: String = "")
interface IField {
var descriptor: FormField?;

View file

@ -101,8 +101,8 @@ class GroupField : LinearLayout, IField {
val attrField = formField ?: field.getAnnotation(FormField::class.java); //TODO: Get this to work as default
if(attrField != null) {
_title.text = attrField.title;
_subtitle.text = attrField.subtitle;
_title.text = context.getString(attrField.title);
_subtitle.text = if (attrField.subtitle != -1) context.getString(attrField.subtitle) else "";
descriptor = attrField;
}
else

View file

@ -42,7 +42,7 @@ class ReadOnlyTextField : TableRow, IField {
val attrField = formField ?: field.getAnnotation(FormField::class.java);
if(attrField != null) {
_title.text = attrField.title;
_title.text = context.getString(attrField.title);
descriptor = attrField;
}
else
@ -60,7 +60,7 @@ class ReadOnlyTextField : TableRow, IField {
val attrField = formField ?: field.getAnnotation(FormField::class.java);
if(attrField != null) {
_title.text = attrField.title;
_title.text = context.getString(attrField.title);
descriptor = attrField;
}
else

View file

@ -64,16 +64,16 @@ class ToggleField : TableRow, IField {
val attrField = formField ?: field.getAnnotation(FormField::class.java);
if(attrField != null) {
_title.text = attrField.title;
_title.text = context.getString(attrField.title);
descriptor = attrField;
}
else
_title.text = field.name;
if(attrField?.subtitle?.isEmpty() != false)
if(attrField == null || attrField.subtitle == -1)
_description.visibility = View.GONE;
else {
_description.text = attrField.subtitle;
_description.text = context.getString(attrField.subtitle);
_description.visibility = View.VISIBLE;
}

View file

@ -83,7 +83,7 @@
android:textColor="@color/white"
android:layout_marginTop="20dp"
android:fontFamily="@font/inter_light"
android:text="Permissions" />
android:text="@string/permissions" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
@ -120,14 +120,14 @@
android:textColor="@color/white"
android:layout_marginTop="20dp"
android:fontFamily="@font/inter_light"
android:text="Security Warnings" />
android:text="@string/security_warnings" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="12dp"
android:textColor="@color/text_color_tinted"
android:fontFamily="@font/inter_extra_light"
android:text="These are warnings of plugin behavior and implementation" />
android:text="@string/these_are_warnings_of_plugin_behavior_and_implementation" />
<LinearLayout
android:id="@+id/source_warnings"
@ -141,8 +141,6 @@
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
@ -187,9 +185,6 @@
android:paddingEnd="28dp"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>

View file

@ -52,8 +52,8 @@
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginBottom="5dp"
app:buttonText="Install by QR"
app:buttonSubText="Install a plugin by scanning a QR code"
app:buttonText="@string/install_by_qr"
app:buttonSubText="@string/install_a_plugin_by_scanning_a_qr_code"
app:buttonIcon="@drawable/ic_qr" />
<com.futo.platformplayer.views.buttons.BigButton
android:id="@+id/option_url"
@ -62,7 +62,7 @@
android:alpha="0.5"
android:layout_marginTop="5dp"
android:layout_marginBottom="20dp"
app:buttonText="Install by URL"
app:buttonText="@string/install_by_url"
app:buttonSubText="@string/enter_url_explain"
app:buttonIcon="@drawable/ic_link" />
</LinearLayout>

View file

@ -16,7 +16,7 @@
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:layout_gravity="center_vertical"
android:text="Please enter the captcha and close when finished" />
android:text="@string/please_enter_the_captcha_and_close_when_finished" />
<Button
android:id="@+id/button_close"
@ -24,7 +24,7 @@
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginEnd="6dp"
android:text="CLOSE" />
android:text="@string/close_capitalized" />
</LinearLayout>

View file

@ -50,7 +50,7 @@
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:textSize="17dp"
android:text="An uncaught exception was thrown, we're sorry for the inconvenience." />
android:text="@string/an_uncaught_exception_was_thrown_we_re_sorry_for_the_inconvenience" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
@ -58,7 +58,7 @@
android:layout_marginTop="2dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="To help us solve this, please share the below crash report with us, and perhaps adds some context on what you were doing." />
android:text="@string/to_help_us_solve_this_please_share_the_below_crash_report_with_us_and_perhaps_adds_some_context_on_what_you_were_doing" />
</LinearLayout>
<ScrollView
android:layout_width="match_parent"
@ -98,7 +98,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Share"/>
android:text="@string/share"/>
</LinearLayout>
<LinearLayout
@ -113,7 +113,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Submit"/>
android:text="@string/submit"/>
</LinearLayout>
<LinearLayout
@ -128,7 +128,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Restart"/>
android:text="@string/restart"/>
</LinearLayout>
<LinearLayout
@ -143,7 +143,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Close"/>
android:text="@string/close"/>
</LinearLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -32,7 +32,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Manage Tabs"
android:text="@string/manage_tabs"
android:textSize="24dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_extra_light" />

View file

@ -37,7 +37,7 @@
android:id="@+id/text_qr"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Scan to import"
android:text="@string/scan_to_import"
android:fontFamily="@font/inter_light"
android:textSize="32dp"
android:layout_marginTop="12dp"
@ -61,16 +61,16 @@
android:id="@+id/button_share"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:buttonText="Share"
app:buttonSubText="Send your identity to another app"
app:buttonText="@string/share"
app:buttonSubText="@string/send_your_identity_to_another_app"
app:buttonIcon="@drawable/ic_share" />
<com.futo.platformplayer.views.buttons.BigButton
android:id="@+id/button_copy"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:buttonText="Copy"
app:buttonSubText="Copy your identity to clipboard"
app:buttonText="@string/copy"
app:buttonSubText="@string/copy_your_identity_to_clipboard"
app:buttonIcon="@drawable/ic_copy"
android:layout_marginTop="8dp" />
</LinearLayout>

View file

@ -37,7 +37,7 @@
android:id="@+id/text_polycentric"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Polycentric"
android:text="@string/polycentric"
android:fontFamily="@font/inter_light"
android:textSize="32dp"
android:layout_marginTop="12dp"
@ -49,7 +49,7 @@
android:id="@+id/text_profile_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Profile Name"
android:text="@string/profile_name"
android:fontFamily="@font/inter_light"
android:textSize="16dp"
android:layout_marginBottom="8dp"
@ -60,7 +60,7 @@
android:id="@+id/edit_profile_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="This will be visible to other users"
android:hint="@string/this_will_be_visible_to_other_users"
android:layout_marginStart="40dp"
android:layout_marginEnd="40dp"
android:layout_marginTop="60dp"
@ -90,7 +90,7 @@
android:fontFamily="@font/inter_light"
android:textColor="@color/white"
android:textSize="16dp"
android:text="Create Profile" />
android:text="@string/create_profile" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -37,7 +37,7 @@
android:id="@+id/text_polycentric"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Polycentric"
android:text="@string/polycentric"
android:fontFamily="@font/inter_light"
android:textSize="32dp"
android:layout_marginTop="12dp"
@ -61,16 +61,16 @@
android:id="@+id/button_new_profile"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:buttonText="New Profile"
app:buttonSubText="Generate a new identity"
app:buttonText="@string/new_profile"
app:buttonSubText="@string/generate_a_new_identity"
app:buttonIcon="@drawable/ic_person_add" />
<com.futo.platformplayer.views.buttons.BigButton
android:id="@+id/button_import_profile"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:buttonText="Import Existing Profile"
app:buttonSubText="Use an existing identity"
app:buttonText="@string/import_existing_profile"
app:buttonSubText="@string/use_an_existing_identity"
app:buttonIcon="@drawable/ic_arrow_downward"
android:layout_marginTop="8dp" />
</LinearLayout>

View file

@ -42,14 +42,14 @@
android:fontFamily="@font/inter_light"
android:textColor="@color/white"
android:textSize="16dp"
android:text="Scan QR" />
android:text="@string/scan_qr" />
</LinearLayout>
<TextView
android:id="@+id/text_or"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="OR"
android:text="@string/or_capitalized"
android:fontFamily="@font/inter_light"
android:textSize="28dp"
android:layout_marginTop="30dp"
@ -61,7 +61,7 @@
android:id="@+id/edit_profile"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Paste profile here polycentric://..."
android:hint="@string/paste_profile_here_polycentric"
android:layout_marginStart="40dp"
android:layout_marginEnd="40dp"
android:layout_marginTop="30dp"
@ -91,7 +91,7 @@
android:fontFamily="@font/inter_light"
android:textColor="@color/white"
android:textSize="16dp"
android:text="Import Profile" />
android:text="@string/import_profile" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -67,8 +67,8 @@
android:id="@+id/button_export"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:buttonText="Export"
app:buttonSubText="Make a backup of your identity"
app:buttonText="@string/export"
app:buttonSubText="@string/make_a_backup_of_your_identity"
app:buttonIcon="@drawable/ic_export"
android:layout_marginTop="8dp" />
@ -76,8 +76,8 @@
android:id="@+id/button_logout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:buttonText="Logout"
app:buttonSubText="Sign out of this identity"
app:buttonText="@string/logout"
app:buttonSubText="@string/sign_out_of_this_identity"
app:buttonIcon="@drawable/ic_logout"
android:layout_marginTop="8dp" />
@ -85,8 +85,8 @@
android:id="@+id/button_delete"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:buttonText="Delete"
app:buttonSubText="Delete this profile"
app:buttonText="@string/delete"
app:buttonSubText="@string/delete_this_profile"
app:buttonIcon="@drawable/ic_trash"
android:layout_marginTop="8dp"
app:buttonBackground="@drawable/background_big_button_red"/>

View file

@ -35,7 +35,7 @@
android:id="@+id/text_polycentric"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Polycentric"
android:text="@string/polycentric"
android:fontFamily="@font/inter_light"
android:textSize="32dp"
android:layout_marginLeft="16dp"/>
@ -96,16 +96,16 @@
android:id="@+id/button_video"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:buttonText="Video"
app:buttonSubText="View a more in-depth video"
app:buttonText="@string/video"
app:buttonSubText="@string/view_a_more_in_depth_video"
app:buttonIcon="@drawable/ic_smart_display" />
<com.futo.platformplayer.views.buttons.BigButton
android:id="@+id/button_technical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:buttonText="Technical Documentation"
app:buttonSubText="View the technical documentation"
app:buttonText="@string/technical_documentation"
app:buttonSubText="@string/view_the_technical_documentation"
app:buttonIcon="@drawable/ic_wrench"
android:layout_marginTop="8dp" />
</LinearLayout>

View file

@ -76,12 +76,12 @@
android:textSize="14dp"
android:textAlignment="center"
android:layout_margin="5dp"
android:text="You're apparantly a developer" />
android:text="@string/you_re_apparantly_a_developer" />
<com.google.android.material.button.MaterialButton
android:id="@+id/button_dev"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Developer Settings" />
android:text="@string/developer_settings" />
</LinearLayout>
</LinearLayout>

View file

@ -8,7 +8,7 @@
android:id="@+id/header_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Migration"
android:text="@string/migration"
android:fontFamily="@font/inter_light"
android:textSize="18dp"
android:layout_marginTop="12dp"

View file

@ -40,7 +40,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Set a password for your daily backup"
android:text="@string/set_a_password_for_your_daily_backup"
android:textSize="14dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular"
@ -53,7 +53,7 @@
android:layout_width="match_parent"
android:textColor="#AAAAAA"
android:fontFamily="@font/inter_regular"
android:text="Set a password used to encrypt your daily backup that is written to external storage."
android:text="@string/set_a_password_used_to_encrypt_your_daily_backup_that_is_written_to_external_storage"
android:textAlignment="center"
android:layout_marginStart="30dp"
android:layout_marginEnd="30dp"
@ -70,7 +70,7 @@
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textPassword"
android:hint="Backup Password" />
android:hint="@string/backup_password" />
<LinearLayout
android:layout_width="match_parent"
@ -96,7 +96,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Stop"
android:text="@string/stop"
android:textSize="14dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular"
@ -117,7 +117,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Start"
android:text="@string/start"
android:textSize="14dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular"

View file

@ -23,7 +23,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Restore from Automatic Backup"
android:text="@string/restore_from_automatic_backup"
android:textSize="14dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular"
@ -36,7 +36,7 @@
android:layout_width="match_parent"
android:textColor="#AAAAAA"
android:fontFamily="@font/inter_regular"
android:text="It appears an automatic backup exists on your device, if you would like to restore, enter your backup password."
android:text="@string/it_appears_an_automatic_backup_exists_on_your_device_if_you_would_like_to_restore_enter_your_backup_password"
android:textAlignment="center"
android:layout_marginStart="30dp"
android:layout_marginEnd="30dp"
@ -53,7 +53,7 @@
android:layout_height="wrap_content"
android:inputType="textPassword"
android:singleLine="true"
android:hint="Backup Password" />
android:hint="@string/backup_password" />
<LinearLayout
android:layout_width="match_parent"
@ -71,7 +71,7 @@
android:id="@+id/button_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancel"
android:text="@string/cancel"
android:layout_marginEnd="15dp"
android:textSize="14dp"
android:fontFamily="@font/inter_regular"
@ -88,7 +88,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Restore"
android:text="@string/restore"
android:textSize="14dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular"

View file

@ -29,13 +29,13 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:hint="Name" />
android:hint="@string/name" />
<EditText
android:id="@+id/edit_ip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="IP"
android:hint="@string/ip"
android:singleLine="true"
android:layout_marginTop="5dp"/>
@ -43,7 +43,7 @@
android:id="@+id/edit_port"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Port"
android:hint="@string/port"
android:singleLine="true"
android:layout_marginTop="5dp"/>
@ -55,7 +55,7 @@
android:textSize="14dp"
android:textColor="@color/pastel_red"
android:layout_marginTop="5dp"
android:text="Error message here"/>
android:text="@string/error_message_here"/>
<LinearLayout
android:layout_width="match_parent"

View file

@ -17,7 +17,7 @@
android:id="@+id/text_devices"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Discovered Devices"
android:text="@string/discovered_devices"
android:layout_marginStart="20dp"
android:textSize="14dp"
android:textColor="@color/white"
@ -39,7 +39,7 @@
android:id="@+id/button_close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Close"
android:text="@string/close"
android:textSize="14dp"
android:fontFamily="@font/inter_regular"
android:textColor="@color/colorPrimary"
@ -83,7 +83,7 @@
android:id="@+id/text_remembered_devices"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Remembered Devices"
android:text="@string/remembered_devices"
android:layout_marginStart="20dp"
android:textSize="14dp"
android:textColor="@color/white"
@ -97,7 +97,7 @@
android:id="@+id/button_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Add"
android:text="@string/add"
android:textSize="14dp"
android:textAlignment="textEnd"
android:layout_marginEnd="2dp"
@ -117,7 +117,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="10dp"
android:text="There are no remembered devices"
android:text="@string/there_are_no_remembered_devices"
android:layout_marginTop="10dp"
android:layout_marginBottom="20dp"
android:layout_marginStart="20dp"

View file

@ -17,7 +17,7 @@
android:id="@+id/text_devices"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Connected to"
android:text="@string/connected_to"
android:layout_marginStart="20dp"
android:textSize="14dp"
android:textColor="@color/white"
@ -39,7 +39,7 @@
android:id="@+id/button_close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Close"
android:text="@string/close"
android:textSize="14dp"
android:fontFamily="@font/inter_regular"
android:textColor="@color/colorPrimary"
@ -131,7 +131,7 @@
android:id="@+id/text_volume"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Volume"
android:text="@string/volume"
android:textSize="14dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular" />

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
@ -16,7 +17,7 @@
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Changelog"
android:text="@string/changelog"
android:textSize="14dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_medium"
@ -25,7 +26,7 @@
<TextView android:id="@+id/text_version"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="100"
tools:text="100"
android:textSize="14dp"
android:textColor="@color/gray_67"
android:fontFamily="@font/inter_regular"
@ -43,7 +44,7 @@
<TextView android:id="@+id/text_changelog"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Some example changelog."
android:text="@string/some_example_changelog"
android:textSize="14dp"
android:fontFamily="@font/inter_regular"
android:textColor="@color/white" />
@ -65,7 +66,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:text="Previous"
android:text="@string/previous"
android:textSize="14dp"
android:fontFamily="@font/inter_regular"
android:textColor="@color/gray_e0"
@ -75,7 +76,7 @@
android:id="@+id/button_next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Next"
android:text="@string/next"
android:layout_gravity="end"
android:textSize="14dp"
android:fontFamily="@font/inter_regular"

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
@ -39,7 +39,7 @@
android:id="@+id/character_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
tools:text="0"
android:textSize="14dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular"
@ -49,7 +49,7 @@
android:id="@+id/character_count_max"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="/2000"
tools:text="/2000"
android:textSize="14dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular" />
@ -63,7 +63,7 @@
android:id="@+id/button_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancel"
android:text="@string/cancel"
android:textSize="14dp"
android:fontFamily="@font/inter_regular"
android:textColor="@color/colorPrimary"
@ -80,7 +80,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Comment"
android:text="@string/comment"
android:textSize="14dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular"

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
@ -36,7 +36,7 @@
android:layout_width="match_parent"
android:textColor="#AAAAAA"
android:fontFamily="@font/inter_regular"
android:text="This is a test"
tools:text="This is a test"
android:textAlignment="center"
android:layout_marginStart="30dp"
android:layout_marginEnd="30dp"

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
@ -45,7 +45,7 @@
android:id="@+id/text_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="10/100"
tools:text="10/100"
android:layout_gravity="center"
android:textSize="14dp"
android:textColor="@color/white"
@ -56,7 +56,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Import"
android:text="@string/str_import"
android:textSize="15sp"
android:textColor="@color/white"
android:fontFamily="@font/inter_extra_light"
@ -67,7 +67,7 @@
android:id="@+id/import_name_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="My Playlist Name"
android:text="@string/my_playlist_name"
android:textSize="18sp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular"
@ -77,7 +77,7 @@
android:id="@+id/import_type_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Playlists"
android:text="@string/playlists"
android:textSize="15sp"
android:textColor="@color/white"
android:fontFamily="@font/inter_light"
@ -94,7 +94,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:text="Do you want to import this store?"
android:text="@string/do_you_want_to_import_this_store"
android:textSize="14sp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular"
@ -106,7 +106,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:text="Sources required need to be enabled"
android:text="@string/sources_required_need_to_be_enabled"
android:textSize="13sp"
android:textColor="@color/pastel_red"
android:fontFamily="@font/inter_regular"
@ -130,7 +130,7 @@
android:id="@+id/button_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancel"
android:text="@string/cancel"
android:textSize="14dp"
android:fontFamily="@font/inter_regular"
android:textColor="@color/colorPrimary"
@ -147,7 +147,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Import"
android:text="@string/str_import"
android:textSize="14dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular"
@ -178,7 +178,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAlignment="center"
android:text="Restored 7 items"
tools:text="Restored 7 items"
android:textSize="14sp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular"
@ -189,7 +189,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAlignment="center"
android:text="(7 failed)"
tools:text="(7 failed)"
android:textSize="14sp"
android:textColor="@color/pastel_red"
android:fontFamily="@font/inter_regular" />
@ -199,7 +199,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="textStart"
android:text="Failed to restore 2 items"
tools:text="Failed to restore 2 items"
android:textSize="14sp"
android:textColor="@color/pastel_red"
android:fontFamily="@font/inter_regular"
@ -215,7 +215,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:text="Required plugin for 1 items"
tools:text="Required plugin for 1 items"
android:textSize="14sp"
android:textColor="#FFA500"
android:fontFamily="@font/inter_regular"
@ -238,7 +238,7 @@
android:id="@+id/button_retry"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Retry"
android:text="@string/retry"
android:textSize="14dp"
android:fontFamily="@font/inter_regular"
android:textColor="@color/colorPrimary"
@ -248,7 +248,7 @@
android:id="@+id/button_cancel_import"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancel"
android:text="@string/cancel"
android:textSize="14dp"
android:fontFamily="@font/inter_regular"
android:textColor="@color/pastel_red"
@ -265,7 +265,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Ok"
android:text="@string/ok"
android:textSize="14dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular"

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
@ -45,7 +45,7 @@
android:id="@+id/text_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="10/100"
tools:text="10/100"
android:layout_gravity="center"
android:textSize="14dp"
android:textColor="@color/white"
@ -56,7 +56,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Migration"
android:text="@string/migration"
android:textSize="15sp"
android:textColor="@color/white"
android:fontFamily="@font/inter_extra_light"
@ -67,7 +67,7 @@
android:id="@+id/migrate_type_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Playlists"
android:text="@string/playlists"
android:textSize="18sp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular"
@ -77,7 +77,7 @@
android:id="@+id/migrate_count_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="10 items"
tools:text="10 items"
android:textSize="15sp"
android:textColor="@color/white"
android:fontFamily="@font/inter_light"
@ -94,7 +94,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:text="Items require migration or are corrupted, would you like to restore them from backup now?"
android:text="@string/items_require_migration_or_are_corrupted_would_you_like_to_restore_them_from_backup_now"
android:textSize="14sp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular"
@ -105,7 +105,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:text="If ignored you will be asked again next startup."
android:text="@string/if_ignored_you_will_be_asked_again_next_startup"
android:textSize="13sp"
android:textColor="@color/white"
android:fontFamily="@font/inter_light"
@ -117,7 +117,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:text="Sources required need to be enabled"
android:text="@string/sources_required_need_to_be_enabled"
android:textSize="13sp"
android:textColor="@color/pastel_red"
android:fontFamily="@font/inter_regular"
@ -141,7 +141,7 @@
android:id="@+id/button_ignore"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Ignore"
android:text="@string/ignore"
android:textSize="14dp"
android:fontFamily="@font/inter_regular"
android:textColor="@color/colorPrimary"
@ -152,7 +152,7 @@
android:id="@+id/button_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Delete"
android:text="@string/delete"
android:textSize="14dp"
android:fontFamily="@font/inter_regular"
android:textColor="@color/pastel_red"
@ -169,7 +169,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Restore"
android:text="@string/restore"
android:textSize="14dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular"
@ -200,7 +200,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAlignment="center"
android:text="Restored 7 items"
tools:text="Restored 7 items"
android:textSize="14sp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular"
@ -211,7 +211,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAlignment="center"
android:text="(7 failed)"
tools:text="(7 failed)"
android:textSize="14sp"
android:textColor="@color/pastel_red"
android:fontFamily="@font/inter_regular" />
@ -221,7 +221,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="textStart"
android:text="Failed to restore 2 items"
tools:text="Failed to restore 2 items"
android:textSize="14sp"
android:textColor="@color/pastel_red"
android:fontFamily="@font/inter_regular"
@ -238,7 +238,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:text="Required plugin for 1 items"
tools:text="Required plugin for 1 items"
android:textSize="14sp"
android:textColor="#FFA500"
android:fontFamily="@font/inter_regular"
@ -261,7 +261,7 @@
android:id="@+id/button_retry"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Retry"
android:text="@string/retry"
android:textSize="14dp"
android:fontFamily="@font/inter_regular"
android:textColor="@color/colorPrimary"
@ -271,7 +271,7 @@
android:id="@+id/button_delete_failed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Delete"
android:text="@string/delete"
android:textSize="14dp"
android:fontFamily="@font/inter_regular"
android:textColor="@color/pastel_red"
@ -288,7 +288,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Ok"
android:text="@string/ok"
android:textSize="14dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular"

View file

@ -2,6 +2,7 @@
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
@ -57,7 +58,8 @@
android:padding="5dp"
android:background="#111111"
android:textSize="8dp"
android:layout_height="wrap_content" />
android:layout_height="wrap_content"
tools:ignore="HardcodedText" />
<LinearLayout
android:id="@+id/dialog_buttons"

View file

@ -53,7 +53,7 @@
android:id="@+id/button_show_changelog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="View changelog"
android:text="@string/view_changelog"
android:textSize="14dp"
android:fontFamily="@font/inter_regular"
android:textColor="@color/colorPrimary"

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
xmlns:tools="http://schemas.android.com/tools"
android:gravity="center_vertical"
android:layout_marginBottom="10dp"
android:padding="10dp"
@ -12,12 +13,12 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:text="SomeDescriptor" />
tools:text="SomeDescriptor" />
<TextView
android:id="@+id/field_subtitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#888888"
android:text="Some descriptor for button"/>
tools:text="Some descriptor for button"/>
</LinearLayout>

View file

@ -30,7 +30,7 @@
android:layout_height="wrap_content"
android:textSize="15dp"
android:fontFamily="@font/inter_bold"
android:text="UNDER"
android:text="@string/under"
android:textColor="@color/white"
android:layout_marginTop="3dp" />
<TextView
@ -38,7 +38,7 @@
android:layout_height="wrap_content"
android:textSize="20dp"
android:fontFamily="@font/inter_bold"
android:text="CONSTRUCTION"
android:text="@string/construction"
android:textColor="@color/white"
android:layout_marginTop="-8dp"/>
</LinearLayout>

View file

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical">
<ScrollView
@ -76,7 +76,7 @@
android:id="@+id/button_buy_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="$9.99"
tools:text="$9.99"
android:textSize="14dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular"
@ -98,7 +98,7 @@
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="I Already Paid"
android:text="@string/i_already_paid"
android:textSize="14dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular"

View file

@ -95,7 +95,7 @@
android:layout_marginEnd="8dp"
android:maxLines="1"
android:ellipsize="end"
android:text="17 videos"
tools:text="17 videos"
app:layout_constraintLeft_toRightOf="@id/creator_thumbnail"
app:layout_constraintRight_toLeftOf="@id/button_subscribe"
app:layout_constraintBottom_toBottomOf="parent" />

View file

@ -11,8 +11,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:buttonIcon="@drawable/ic_store"
app:buttonText="Store"
app:buttonSubText="Visit my store" />
app:buttonText="@string/store"
app:buttonSubText="@string/visit_my_store" />
<LinearLayout
android:layout_width="match_parent"
@ -27,7 +27,7 @@
android:textSize="16dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular"
android:text="Memberships" />
android:text="@string/memberships" />
<com.google.android.flexbox.FlexboxLayout
android:layout_width="match_parent"
@ -41,7 +41,7 @@
android:textSize="14dp"
android:textColor="#909090"
android:fontFamily="@font/inter_light"
android:text="A monthly recurring payment with often " />
android:text="@string/a_monthly_recurring_payment_with_often" />
<TextView
android:layout_width="wrap_content"
@ -49,7 +49,7 @@
android:textSize="14dp"
android:textColor="#909090"
android:fontFamily="@font/inter_bold"
android:text="additional perks." />
android:text="@string/additional_perks" />
</com.google.android.flexbox.FlexboxLayout>
<LinearLayout
@ -68,7 +68,7 @@
android:textSize="16dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular"
android:text="Donation"
android:text="@string/donation"
android:layout_marginTop="20dp"/>
<TextView
@ -77,7 +77,7 @@
android:textSize="14dp"
android:textColor="#909090"
android:fontFamily="@font/inter_light"
android:text="A one-time payment to support the creator" />
android:text="@string/a_one_time_payment_to_support_the_creator" />
<LinearLayout
android:layout_width="match_parent"

View file

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical">
<TextView
@ -11,6 +11,6 @@
android:textSize="14dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular"
android:text="TODO" />
tools:text="TODO" />
</FrameLayout>

View file

@ -43,7 +43,7 @@
android:textColor="#E0E0E0"
android:fontFamily="@font/inter_extra_light"
android:textSize="11dp"
android:text="5.64GB Used" />
tools:text="5.64GB Used" />
<TextView
android:id="@+id/downloads_usage_available"
android:layout_width="match_parent"
@ -53,7 +53,7 @@
android:layout_gravity="end"
android:fontFamily="@font/inter_extra_light"
android:textSize="11dp"
android:text="13.32GB Available" />
tools:text="13.32GB Available" />
</LinearLayout>
<com.futo.platformplayer.views.announcements.AnnouncementView
@ -77,7 +77,7 @@
android:layout_height="wrap_content"
android:textSize="18dp"
android:textColor="@color/white"
android:text="Downloading"
android:text="@string/downloading"
/>
<TextView
android:id="@+id/downloads_active_downloads_meta"
@ -87,7 +87,7 @@
android:fontFamily="@font/inter_extra_light"
android:textColor="#ACACAC"
android:textSize="15dp"
android:text="(5)"
tools:text="(5)"
/>
</LinearLayout>
<LinearLayout
@ -115,7 +115,7 @@
android:layout_height="wrap_content"
android:textSize="18dp"
android:textColor="@color/white"
android:text="Playlists"
android:text="@string/playlists"
/>
<TextView
android:id="@+id/downloads_playlist_meta"
@ -125,7 +125,7 @@
android:textSize="15dp"
android:fontFamily="@font/inter_extra_light"
android:textColor="#ACACAC"
android:text="(7 playlists, 85 videos)"
tools:text="(7 playlists, 85 videos)"
/>
</LinearLayout>
<LinearLayout
@ -148,7 +148,7 @@
android:layout_height="wrap_content"
android:textSize="18dp"
android:textColor="@color/white"
android:text="Videos" />
android:text="@string/videos" />
<TextView
android:id="@+id/downloads_videos_meta"
android:layout_width="match_parent"
@ -157,7 +157,7 @@
android:textSize="15dp"
android:fontFamily="@font/inter_extra_light"
android:textColor="#ACACAC"
android:text="(12 videos)" />
tools:text="(12 videos)" />
</LinearLayout>
</LinearLayout>

View file

@ -78,7 +78,7 @@
android:id="@+id/text_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Clear history"
android:text="@string/clear_history"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:fontFamily="@font/inter_light"

View file

@ -62,7 +62,7 @@
android:layout_height="wrap_content"
android:fontFamily="@font/inter_light"
android:textSize="15dp"
android:text="Nothing to import"
android:text="@string/nothing_to_import"
android:textColor="@color/white"
android:layout_gravity="center"/>

View file

@ -34,7 +34,7 @@
android:textSize="20dp"
android:textColor="@color/gray_67"
android:fontFamily="@font/inter_extra_light"
android:text="Import"
android:text="@string/str_import"
android:paddingRight="16dp" />
</LinearLayout>

View file

@ -43,7 +43,7 @@
android:layout_height="wrap_content"
android:textSize="15dp"
android:fontFamily="@font/inter_bold"
android:text="UNDER"
android:text="@string/under"
android:textColor="@color/white"
android:layout_marginTop="3dp" />
<TextView
@ -51,7 +51,7 @@
android:layout_height="wrap_content"
android:textSize="20dp"
android:fontFamily="@font/inter_bold"
android:text="CONSTRUCTION"
android:text="@string/construction"
android:textColor="@color/white"
android:layout_marginTop="-8dp"/>
</LinearLayout>

View file

@ -107,7 +107,7 @@
android:textColor="#939393"
android:textSize="12dp"
android:fontFamily="@font/inter_light"
android:text="Enabling lots of sources can reduce the loading speed of your application."
android:text="@string/enabling_lots_of_sources_can_reduce_the_loading_speed_of_your_application"
android:layout_gravity="center"
android:layout_marginStart="8dp"/>

View file

@ -136,7 +136,7 @@
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:layout_marginStart="8dp"
android:text="500K"
tools:text="500K"
android:textColor="@color/white"
android:textSize="10dp" />
@ -154,7 +154,7 @@
android:layout_height="18dp"
android:gravity="center_vertical"
android:layout_marginStart="8dp"
android:text="500K"
tools:text="500K"
android:textColor="@color/white"
android:textSize="10dp" />
</LinearLayout>
@ -230,7 +230,7 @@
android:layout_height="wrap_content"
android:textAppearance="@color/white"
android:fontFamily="@font/inter_light"
android:text="Support"
android:text="@string/support"
android:textSize="14dp"
android:includeFontPadding="false"
android:layout_marginStart="6dp" />
@ -256,7 +256,7 @@
android:layout_height="wrap_content"
android:textAppearance="@color/white"
android:fontFamily="@font/inter_light"
android:text="Store"
android:text="@string/store"
android:textSize="14dp"
android:includeFontPadding="false"
android:layout_marginStart="6dp" />
@ -327,7 +327,7 @@
android:fontFamily="@font/inter_extra_light"
android:textSize="14dp"
android:textColor="@color/white"
android:text="Polycentric"
android:text="@string/polycentric"
android:layout_marginEnd="8dp" />
<com.futo.platformplayer.views.others.Toggle

View file

@ -146,7 +146,7 @@
android:id="@+id/text_resume"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Resume at 00:00"
tools:text="Resume at 00:00"
android:textSize="12dp"
android:fontFamily="@font/inter_light" />
</LinearLayout>
@ -198,7 +198,7 @@
android:fontFamily="@font/inter_medium"
android:textColor="@color/white"
android:textSize="17dp"
android:text="Some Text"
tools:text="Some Text"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@id/layout_title_right"
app:layout_constraintTop_toTopOf="parent" />
@ -211,7 +211,7 @@
android:fontFamily="@font/inter_regular"
android:textColor="#ACACAC"
android:textSize="10dp"
android:text="51K views - 3 years ago"
tools:text="51K views - 3 years ago"
app:layout_constraintLeft_toLeftOf="@id/videodetail_title"
app:layout_constraintTop_toBottomOf="@id/videodetail_title"
app:layout_constraintRight_toLeftOf="@id/layout_title_right"/>
@ -258,7 +258,7 @@
android:layout_height="18dp"
android:gravity="center_vertical"
android:layout_marginStart="4dp"
android:text="500K"
tools:text="500K"
android:textColor="#ACACAC"
android:textSize="10dp" />
</LinearLayout>
@ -281,7 +281,7 @@
android:layout_height="18dp"
android:gravity="center_vertical"
android:layout_marginStart="4dp"
android:text="500K"
tools:text="500K"
android:textColor="#ACACAC"
android:textSize="10dp" />
</LinearLayout>
@ -447,7 +447,7 @@
android:layout_height="wrap_content"
android:textAppearance="@color/white"
android:fontFamily="@font/inter_light"
android:text="Support"
android:text="@string/support"
android:textSize="14dp"
android:includeFontPadding="false"
android:layout_marginStart="6dp" />
@ -473,7 +473,7 @@
android:layout_height="wrap_content"
android:textAppearance="@color/white"
android:fontFamily="@font/inter_light"
android:text="Store"
tools:text="Store"
android:textSize="14dp"
android:includeFontPadding="false"
android:layout_marginStart="6dp" />
@ -494,7 +494,7 @@
android:layout_margin="15dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Live Chat" />
android:text="@string/live_chat" />
</LinearLayout>
<LinearLayout
@ -526,7 +526,7 @@
android:fontFamily="@font/inter_extra_light"
android:textSize="14dp"
android:textColor="@color/white"
android:text="Polycentric"
android:text="@string/polycentric"
android:layout_marginEnd="8dp" />
<com.futo.platformplayer.views.others.Toggle

View file

@ -60,7 +60,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="$100" />
tools:text="$100" />
</LinearLayout>

View file

@ -107,7 +107,7 @@
android:layout_height="18dp"
android:gravity="center_vertical"
android:layout_marginStart="8dp"
android:text="500K"
tools:text="500K"
android:textColor="@color/white"
android:textSize="13dp" />
@ -125,7 +125,7 @@
android:layout_height="18dp"
android:gravity="center_vertical"
android:layout_marginStart="8dp"
android:text="500K"
tools:text="500K"
android:textColor="@color/white"
android:textSize="13dp" />
</LinearLayout>

View file

@ -92,7 +92,7 @@
android:textSize="12dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_light"
android:text="Remove" />
android:text="@string/remove" />
</LinearLayout>
<LinearLayout

View file

@ -49,7 +49,7 @@
android:paddingRight="2dp"
android:textColor="#FFFFFF"
android:textSize="10dp"
android:text="\?"
tools:text="\?"
android:layout_gravity="center"
android:textStyle="normal" />
</LinearLayout>
@ -76,7 +76,7 @@
android:paddingRight="2dp"
android:textColor="#FFFFFF"
android:textSize="10dp"
android:text="0:00"
tools:text="0:00"
android:layout_gravity="center"
android:textStyle="normal" />
</LinearLayout>

View file

@ -49,7 +49,7 @@
android:paddingRight="2dp"
android:textColor="#FFFFFF"
android:textSize="10dp"
android:text="\?"
tools:text="\?"
android:layout_gravity="center"
android:textStyle="normal" />
</LinearLayout>
@ -76,7 +76,7 @@
android:paddingRight="2dp"
android:textColor="#FFFFFF"
android:textSize="10dp"
android:text="0:00"
tools:text="0:00"
android:layout_gravity="center"
android:textStyle="normal" />
</LinearLayout>

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="100dp"
android:layout_height="80dp"
@ -24,7 +25,7 @@
android:id="@+id/downloaded_playlist_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Testing"
tools:text="Testing"
android:textColor="@color/white"
android:textAlignment="center"
android:singleLine="true"

View file

@ -93,7 +93,7 @@
android:paddingRight="2dp"
android:textColor="#FFFFFF"
android:textSize="12dp"
android:text="0:00"
tools:text="0:00"
android:layout_gravity="center"
android:textStyle="normal" />
</LinearLayout>

View file

@ -91,7 +91,7 @@
android:paddingRight="2dp"
android:textColor="#FFFFFF"
android:textSize="12dp"
android:text="0:00"
tools:text="0:00"
android:layout_gravity="center"
android:textStyle="normal" />
</LinearLayout>

View file

@ -51,7 +51,7 @@
android:layout_height="wrap_content"
android:textSize="8dp"
android:fontFamily="@font/inter_regular"
android:text="Playlist"
android:text="@string/playlist"
android:layout_marginStart="8dp"/>
<Space android:layout_width="0dp"
@ -72,7 +72,7 @@
android:layout_height="wrap_content"
android:textSize="8dp"
android:fontFamily="@font/inter_regular"
android:text=" Videos"
android:text="@string/space_videos"
android:layout_marginRight="10dp"
android:textColor="@color/gray_7f" />
</LinearLayout>
@ -122,7 +122,7 @@
android:id="@+id/image_neopass_channel"
android:layout_width="10dp"
android:layout_height="10dp"
android:contentDescription="NeoPass channel"
android:contentDescription="@string/neopass_channel"
app:srcCompat="@drawable/neopass"
app:layout_constraintLeft_toRightOf="@id/text_channel_name"
app:layout_constraintRight_toRightOf="parent"

View file

@ -75,7 +75,7 @@
android:layout_height="wrap_content"
android:textSize="12dp"
android:fontFamily="@font/inter_regular"
android:text="Playlist"
android:text="@string/playlist"
android:layout_marginEnd="8dp"
android:textColor="@color/gray_e0"
app:layout_constraintRight_toRightOf="parent"
@ -88,7 +88,7 @@
android:layout_height="wrap_content"
android:textSize="12dp"
android:fontFamily="@font/inter_light"
android:text=" Videos"
android:text="@string/space_videos"
android:layout_marginEnd="8dp"
android:textColor="@color/gray_7f"
app:layout_constraintRight_toRightOf="parent"

View file

@ -61,7 +61,7 @@
android:layout_height="10dp"
android:layout_marginStart="4dp"
android:layout_marginEnd="8dp"
android:contentDescription="NeoPass channel"
android:contentDescription="@string/neopass_channel"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/text_author_name"
app:layout_constraintLeft_toRightOf="@id/text_author_name"
@ -165,7 +165,7 @@
android:layout_height="18dp"
android:gravity="center_vertical"
android:layout_marginStart="8dp"
android:text="500K"
tools:text="500K"
android:textColor="@color/white"
android:textSize="13dp" />
@ -183,7 +183,7 @@
android:layout_height="18dp"
android:gravity="center_vertical"
android:layout_marginStart="8dp"
android:text="500K"
tools:text="500K"
android:textColor="@color/white"
android:textSize="13dp" />
</LinearLayout>
@ -212,7 +212,7 @@
android:layout_height="18dp"
android:gravity="center_vertical"
android:layout_marginStart="8dp"
android:text="55"
tools:text="55"
android:textColor="@color/white"
android:textSize="13dp" />
</LinearLayout>

View file

@ -60,7 +60,7 @@
android:layout_height="10dp"
android:layout_marginStart="4dp"
android:layout_marginEnd="8dp"
android:contentDescription="NeoPass channel"
android:contentDescription="@string/neopass_channel"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/text_author_name"
app:layout_constraintLeft_toRightOf="@id/text_author_name"

View file

@ -50,7 +50,7 @@
android:id="@+id/text_source_subtitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Under Construction"
android:text="@string/under_construction"
android:textSize="12dp"
android:textColor="@color/gray_ac"
android:fontFamily="@font/inter_extra_light"
@ -77,7 +77,7 @@
android:textSize="12dp"
android:textColor="#AAAAAA"
android:fontFamily="@font/inter_light"
android:text="Enable" />
android:text="@string/enable" />
</LinearLayout>
</LinearLayout>
</LinearLayout>

View file

@ -77,7 +77,7 @@
android:textSize="12dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_light"
android:text="Enable" />
android:text="@string/enable" />
</LinearLayout>
</LinearLayout>
</LinearLayout>

View file

@ -87,7 +87,7 @@
android:textSize="12dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_light"
android:text="Disable" />
android:text="@string/disable" />
</LinearLayout>
</LinearLayout>

View file

@ -77,7 +77,7 @@
android:paddingRight="2dp"
android:textColor="#FFFFFF"
android:textSize="12dp"
android:text="0:00"
tools:text="0:00"
android:layout_gravity="center"
android:textStyle="normal" />
</LinearLayout>

View file

@ -90,7 +90,7 @@
android:includeFontPadding="false"
android:paddingLeft="2dp"
android:paddingRight="2dp"
android:text="0:00"
tools:text="0:00"
android:textColor="#FFFFFF"
android:textSize="12dp"
android:textStyle="normal" />

View file

@ -101,7 +101,7 @@
android:paddingRight="2dp"
android:textColor="#FFFFFF"
android:textSize="12dp"
android:text="0:00"
tools:text="0:00"
android:layout_gravity="center"
android:textStyle="normal" />
</LinearLayout>
@ -132,7 +132,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:layout_weight="1"
android:text="The following content cannot be opened in Grayjay due to a missing plugin."
android:text="@string/the_following_content_cannot_be_opened_in_grayjay_due_to_a_missing_plugin"
android:textAlignment="center" />
<TextView
android:id="@+id/text_nested_url"
@ -140,14 +140,14 @@
android:layout_height="wrap_content"
android:textColor="#828EFF"
android:layout_weight="1"
android:text="Unknown"
android:text="@string/unknown"
android:textAlignment="center" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="50dp"
android:layout_weight="1"
android:text="Tap to open in browser"
android:text="@string/tap_to_open_in_browser"
android:textAlignment="center" />
</LinearLayout>
</FrameLayout>

View file

@ -87,7 +87,7 @@
android:paddingRight="2dp"
android:textColor="#FFFFFF"
android:textSize="12dp"
android:text="0:00"
tools:text="0:00"
android:layout_gravity="center"
android:textStyle="normal" />
</LinearLayout>
@ -222,7 +222,7 @@
android:id="@+id/image_neopass_channel"
android:layout_width="10dp"
android:layout_height="10dp"
android:contentDescription="NeoPass channel"
android:contentDescription="@string/neopass_channel"
app:srcCompat="@drawable/neopass"
app:layout_constraintLeft_toRightOf="@id/text_channel_name"
app:layout_constraintRight_toRightOf="parent"

View file

@ -87,7 +87,7 @@
android:paddingRight="2dp"
android:textColor="#FFFFFF"
android:textSize="12dp"
android:text="0:00"
tools:text="0:00"
android:layout_gravity="center"
android:textStyle="normal" />
</LinearLayout>
@ -140,7 +140,7 @@
android:layout_weight="1"
android:layout_marginTop="10dp"
android:textSize="10dp"
android:text="Missing Plugin"
android:text="@string/missing_plugin"
android:textAlignment="center" />
<TextView
android:id="@+id/text_nested_url"
@ -149,7 +149,7 @@
android:textColor="#828EFF"
android:layout_weight="1"
android:textSize="10dp"
android:text="Unknown"
android:text="@string/unknown"
android:textAlignment="center" />
<TextView
android:layout_width="match_parent"
@ -157,7 +157,7 @@
android:layout_marginBottom="10dp"
android:textSize="10dp"
android:layout_weight="1"
android:text="Tap to open in browser"
android:text="@string/tap_to_open_in_browser"
android:textAlignment="center" />
</LinearLayout>
</FrameLayout>
@ -264,7 +264,7 @@
android:id="@+id/image_neopass_channel"
android:layout_width="10dp"
android:layout_height="10dp"
android:contentDescription="NeoPass channel"
android:contentDescription="@string/neopass_channel"
app:srcCompat="@drawable/neopass"
app:layout_constraintLeft_toRightOf="@id/text_channel_name"
app:layout_constraintRight_toRightOf="parent"

View file

@ -28,7 +28,7 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_margin="10dp"
android:text="Live Chat" />
android:text="@string/live_chat" />
<ImageView
android:id="@+id/ic_viewers"
@ -44,7 +44,7 @@
android:textSize="10dp"
app:layout_constraintTop_toBottomOf="@id/text_name"
app:layout_constraintLeft_toRightOf="@id/ic_viewers"
android:text="1536 viewers"/>
tools:text="1536 viewers"/>
<ScrollView
android:layout_width="match_parent"
@ -141,7 +141,7 @@
android:layout_marginStart="15dp"
android:layout_marginTop="20dp"
android:textSize="15sp"
android:text="Louis Rossmann" />
tools:text="Louis Rossmann" />
<LinearLayout
android:id="@+id/donation_amount_container"
@ -161,7 +161,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="$100" />
tools:text="$100" />
</LinearLayout>
<TextView
@ -173,7 +173,7 @@
app:layout_constraintRight_toRightOf="@id/donation_amount_container"
android:layout_margin="10dp"
android:textColor="#838383"
android:text="@string/lorem_ipsum"/>
tools:text="@string/lorem_ipsum"/>
<TextView
android:id="@+id/donation_source"
@ -182,7 +182,7 @@
app:layout_constraintTop_toBottomOf="@id/donation_text"
app:layout_constraintLeft_toLeftOf="@id/donation_author_image"
app:layout_constraintRight_toRightOf="parent"
android:text="Source: Somesite"
tools:text="Source: Somesite"
android:paddingBottom="10dp"
android:textSize="12sp"
android:textColor="#4F4B4B"
@ -211,7 +211,7 @@
android:layout_height="wrap_content"
android:textColor="#737070"
app:layout_constraintTop_toTopOf="parent"
android:text="Viewers are raiding"
android:text="@string/viewers_are_raiding"
android:gravity="center"
android:paddingTop="20dp"
android:paddingBottom="10dp"/>
@ -241,7 +241,7 @@
app:layout_constraintLeft_toRightOf="@id/raid_thumbnail"
app:layout_constraintTop_toBottomOf="@id/textRaidMessage"
android:textSize="15sp"
android:text="Louis Rossmann" />
tools:text="Louis Rossmann" />
</LinearLayout>
<LinearLayout
@ -263,7 +263,7 @@
android:layout_marginStart="20dp"
android:backgroundTint="#2F2F2F"
android:layout_marginEnd="5dp"
android:text="Go now"/>
android:text="@string/go_now"/>
<Button
android:id="@+id/raid_button_prevent"
android:layout_width="0dp"
@ -276,7 +276,7 @@
android:layout_marginStart="5dp"
android:layout_marginEnd="20dp"
android:backgroundTint="#481414"
android:text="Prevent"/>
android:text="@string/prevent"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -36,7 +36,7 @@
android:layout_weight="1"
android:fontFamily="@font/inter_extra_light"
android:textSize="16dp"
android:text="Add to"
android:text="@string/add_to"
android:textColor="@color/white"/>
<TextView

View file

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@ -10,7 +11,7 @@
android:id="@+id/slide_up_menu_group_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Recently Used Playlist"
tools:text="Recently Used Playlist"
android:textColor="@color/white"
android:fontFamily="@font/inter_semibold"
android:textSize="11dp" />

View file

@ -3,6 +3,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_marginTop="10dp"
android:background="@drawable/background_slide_up_option"
android:id="@+id/slide_up_menu_item_root"
@ -22,7 +23,7 @@
android:gravity="center_vertical"
android:layout_alignParentLeft="true"
android:layout_marginLeft="45dp"
android:text="Cat videos"
tools:text="Cat videos"
android:textSize="11dp"
android:layout_marginTop="2dp"
android:fontFamily="@font/inter_light"
@ -34,7 +35,7 @@
android:gravity="center_vertical"
android:layout_alignParentRight="true"
android:layout_marginRight="15dp"
android:text="3 videos"
tools:text="3 videos"
android:textSize="11dp"
android:layout_marginTop="2dp"
android:fontFamily="@font/inter_light"

View file

@ -10,7 +10,7 @@
android:id="@+id/slide_up_menu_group_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Recently Used Playlist"
android:text="@string/recently_used_playlist"
android:textColor="@color/white"
android:fontFamily="@font/inter_semibold"
android:textSize="11dp" />

View file

@ -1,327 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/background_button_black"
android:padding="10dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/text_license_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/inter_bold"
android:textSize="14dp"
android:text="License email"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/text_email_subtext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/inter_regular"
android:textSize="12dp"
android:textColor="#999999"
android:layout_marginTop="2dp"
android:text="Required to send the license key"
app:layout_constraintTop_toBottomOf="@id/text_license_email" />
<EditText
android:id="@+id/edit_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:inputType="text"
android:imeOptions="actionDone"
android:singleLine="true"
android:hint="Receipt email (user@domain.com)"
android:layout_marginTop="2dp"
android:background="@drawable/background_30_round_4dp"
app:layout_constraintTop_toBottomOf="@id/text_email_subtext" />
<TextView
android:id="@+id/text_method_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/inter_bold"
android:textSize="14dp"
android:text="Payment using"
android:layout_marginTop="10dp"
app:layout_constraintTop_toBottomOf="@id/edit_email"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/text_method"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="14dp"
android:fontFamily="@font/inter_light"
android:text="Stripe"
app:layout_constraintTop_toBottomOf="@id/text_method_header"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/text_country_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/inter_bold"
android:textSize="12dp"
android:text="Country"
android:layout_marginTop="10dp"
app:layout_constraintTop_toBottomOf="@id/text_method"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/text_country"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="12dp"
android:fontFamily="@font/inter_light"
android:text="United States"
app:layout_constraintTop_toBottomOf="@id/text_country_header"
app:layout_constraintStart_toStartOf="parent" />
<FrameLayout
android:id="@+id/button_change_country"
android:layout_width="70dp"
android:layout_height="0dp"
android:background="@drawable/background_button_primary"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/text_country_header"
app:layout_constraintBottom_toBottomOf="@id/text_country">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:fontFamily="@font/inter_medium"
android:text="Change"
android:textSize="12dp" />
</FrameLayout>
<TextView
android:id="@+id/text_currency_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/inter_bold"
android:textSize="12dp"
android:text="Currency"
android:layout_marginTop="10dp"
app:layout_constraintTop_toBottomOf="@id/text_country"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/text_currency"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="12dp"
android:fontFamily="@font/inter_light"
android:text="USD"
app:layout_constraintTop_toBottomOf="@id/text_currency_header"
app:layout_constraintStart_toStartOf="parent" />
<FrameLayout
android:id="@+id/button_change_currency"
android:layout_width="70dp"
android:layout_height="0dp"
android:background="@drawable/background_button_primary"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/text_currency_header"
app:layout_constraintBottom_toBottomOf="@id/text_currency">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Change"
android:textSize="12dp"
android:fontFamily="@font/inter_medium" />
</FrameLayout>
<TextView
android:id="@+id/text_postal_code_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/inter_bold"
android:textSize="12dp"
android:text="Postal Code"
android:layout_marginTop="10dp"
app:layout_constraintTop_toBottomOf="@id/text_currency"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/text_postal_code"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="12dp"
android:fontFamily="@font/inter_light"
android:text="31313"
app:layout_constraintTop_toBottomOf="@id/text_postal_code_header"
app:layout_constraintStart_toStartOf="parent" />
<FrameLayout
android:id="@+id/button_change_postal_code"
android:layout_width="70dp"
android:layout_height="0dp"
android:background="@drawable/background_button_primary"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/text_postal_code_header"
app:layout_constraintBottom_toBottomOf="@id/text_postal_code">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Change"
android:textSize="12dp"
android:fontFamily="@font/inter_medium" />
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout
android:id="@+id/layout_breakdown"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:orientation="vertical"
android:gravity="center"
android:layout_marginStart="40dp"
android:layout_marginEnd="40dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/text_product"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12dp"
app:layout_constraintLeft_toLeftOf="parent"
android:text="Grayjay" />
<TextView
android:id="@+id/text_product_price"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="12dp"
app:layout_constraintLeft_toLeftOf="parent"
android:textAlignment="textEnd"
android:text="$9.40" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:background="#FFFFFF" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12dp"
app:layout_constraintLeft_toLeftOf="parent"
android:text="Sales Tax (" />
<TextView
android:id="@+id/text_tax_percentage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12dp"
app:layout_constraintLeft_toLeftOf="parent"
android:text="6.25" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12dp"
app:layout_constraintLeft_toLeftOf="parent"
android:text="%)" />
</LinearLayout>
<TextView
android:id="@+id/text_tax"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="12dp"
app:layout_constraintLeft_toLeftOf="parent"
android:textAlignment="textEnd"
android:text="$0.60" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:background="#FFFFFF" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
android:textSize="12dp"
android:text="Total" />
<TextView
android:id="@+id/text_total"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
android:textSize="12dp"
android:textAlignment="textEnd"
android:text="$10.00" />
</LinearLayout>
</LinearLayout>
<FrameLayout
android:id="@+id/layout_loader"
android:layout_width="match_parent"
android:layout_height="100dp"
android:orientation="vertical">
<ImageView
android:id="@+id/image_loader"
android:layout_width="80dp"
android:layout_height="80dp"
app:srcCompat="@drawable/ic_loader_animated"
android:layout_gravity="center"
android:contentDescription="@string/loading" />
</FrameLayout>
<TextView
android:id="@+id/text_error"
android:layout_width="match_parent"
android:layout_height="100dp"
android:text="Some error"
android:gravity="center"
android:textColor="#FF0000"
android:fontFamily="@font/inter_regular"
android:layout_gravity="center" />
<FrameLayout
android:id="@+id/button_pay"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/background_button_primary"
android:layout_marginTop="10dp"
android:layout_marginBottom="5dp"
android:paddingTop="10dp"
android:paddingBottom="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Pay"
android:textSize="18dp"
android:fontFamily="@font/inter_bold" />
</FrameLayout>
</LinearLayout>
</LinearLayout>

View file

@ -1,49 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="70dp"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:paddingTop="5dp"
android:paddingBottom="5dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background_button_black">
<ImageView
android:id="@+id/image_flag"
android:layout_width="80dp"
android:layout_height="match_parent"
android:padding="10dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
android:scaleType="fitCenter" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:orientation="vertical"
app:layout_constraintLeft_toRightOf="@id/image_flag"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:gravity="center">
<TextView
android:id="@+id/text_currency_abbr"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/inter_bold"
android:textSize="14dp"
android:text="US" />
<TextView
android:id="@+id/text_currency_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="12dp"
android:fontFamily="@font/inter_regular"
android:text="United States" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -1,49 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="70dp"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:paddingTop="5dp"
android:paddingBottom="5dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background_button_black">
<ImageView
android:id="@+id/image_flag"
android:layout_width="80dp"
android:layout_height="match_parent"
android:padding="10dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
android:scaleType="fitCenter" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:orientation="vertical"
app:layout_constraintLeft_toRightOf="@id/image_flag"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:gravity="center">
<TextView
android:id="@+id/text_currency_abbr"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/inter_bold"
android:textSize="14dp"
android:text="USD" />
<TextView
android:id="@+id/text_currency_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="12dp"
android:fontFamily="@font/inter_regular"
android:text="United States Dollar" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="70dp"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:paddingTop="5dp"
android:paddingBottom="5dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background_button_black">
<!--
<ImageView
android:id="@+id/image_flag"
android:layout_width="80dp"
android:layout_height="match_parent"
android:layout_margin="10dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
android:src="@drawable/us"/> -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:orientation="vertical"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:gravity="center">
<TextView
android:id="@+id/text_currency_abbr"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/inter_bold"
android:textAlignment="center"
android:textSize="14dp"
android:text="Other" />
<TextView
android:id="@+id/text_currency_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:textSize="12dp"
android:fontFamily="@font/inter_regular"
android:text="Select another currency" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -1,50 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="100dp"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:paddingBottom="5dp"
android:paddingTop="5dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background_button_black">
<ImageView
android:id="@+id/image_method"
android:layout_width="70dp"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:paddingEnd="10dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
android:src="@drawable/stripe"/>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:orientation="vertical"
app:layout_constraintLeft_toRightOf="@id/image_method"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:gravity="center">
<TextView
android:id="@+id/text_method_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/inter_bold"
android:textSize="12dp"
android:text="Standard Payment Methods" />
<TextView
android:id="@+id/text_method_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="10dp"
android:fontFamily="@font/inter_regular"
android:text="Stripe is a secure online payment service that accepts major credit cards, debit cards, and various localized payment methods." />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -1,127 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<View
android:id="@+id/overlay_slide_up_menu_background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#C9000000" />
<LinearLayout
android:id="@+id/overlay_slide_up_menu_ovelay_container"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="0dp"
android:background="#1D1D1D"
android:paddingTop="15dp"
android:paddingBottom="0dp">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
android:paddingRight="10dp">
<TextView
android:id="@+id/overlay_slide_up_menu_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:fontFamily="@font/inter_extra_light"
android:textSize="16dp"
android:text="Add to"
android:textColor="@color/white"/>
<TextView
android:id="@+id/overlay_slide_up_menu_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="end"
android:text="@string/cancel"
android:textColor="#585656"
android:padding="10dp" />
<TextView
android:id="@+id/overlay_slide_up_menu_ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="end"
android:text="@string/ok"
android:textColor="@color/colorPrimary"
android:layout_marginStart="20dp"
android:padding="10dp" />
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
android:paddingRight="10dp">
<FrameLayout
android:id="@+id/overlay_slide_up_filter_layout"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:paddingBottom="10dp">
<EditText
android:id="@+id/overlay_slide_up_filter_edit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:inputType="text"
android:imeOptions="actionDone"
android:singleLine="true"
android:paddingEnd="46dp"
android:hint="Search"/>
<ImageButton
android:id="@+id/overlay_slide_up_filter_clear"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:paddingStart="18dp"
android:paddingEnd="18dp"
android:layout_gravity="right|center_vertical"
android:visibility="invisible"
app:srcCompat="@drawable/ic_clear_16dp" />
</FrameLayout>
<ScrollView android:id="@+id/overlay_slide_up_scroll"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintHeight_max="500dp"
app:layout_constraintTop_toBottomOf="@id/overlay_slide_up_filter_layout"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/overlay_slide_up_menu_items"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="20dp" />
</ScrollView>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/overlay_recycler_menu_items"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintHeight_max="400dp"
app:layout_constraintTop_toBottomOf="@id/overlay_slide_up_filter_layout"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent">
</androidx.recyclerview.widget.RecyclerView>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</RelativeLayout>

View file

@ -1,55 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/background_button_black"
android:padding="10dp">
<EditText
android:id="@+id/edit_postal_code"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:inputType="text"
android:imeOptions="actionDone"
android:singleLine="true"
android:hint="ZIP code (36925, ...)"
android:layout_marginTop="2dp"
android:background="@drawable/background_30_round_4dp"/>
<TextView
android:id="@+id/text_subtext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/inter_regular"
android:textSize="12dp"
android:textColor="#999999"
android:layout_marginTop="2dp"
android:text="Required to accurately calculate the applicable sales tax"/>
<FrameLayout
android:id="@+id/button_submit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/background_button_primary"
android:layout_marginTop="10dp"
android:layout_marginBottom="5dp"
android:paddingTop="10dp"
android:paddingBottom="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Submit"
android:textSize="18dp"
android:fontFamily="@font/inter_bold" />
</FrameLayout>
</LinearLayout>
</LinearLayout>

View file

@ -3,6 +3,7 @@
android:layout_width="wrap_content"
android:layout_height="32dp"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:paddingTop="6dp"
android:paddingBottom="7dp"
android:paddingLeft="7dp"
@ -20,7 +21,7 @@
android:textColor="@color/white"
android:textSize="13dp"
android:gravity="center_vertical"
android:text="500K" />
tools:text="500K" />
<View
android:id="@+id/pill_seperator"
@ -42,6 +43,6 @@
android:textColor="@color/white"
android:gravity="center_vertical"
android:textSize="13dp"
android:text="500K" />
tools:text="500K" />
</LinearLayout>

View file

@ -72,7 +72,7 @@
android:paddingRight="2dp"
android:textColor="#FFFFFF"
android:textSize="12dp"
android:text="LIVE"
android:text="@string/live_capitalized"
android:layout_gravity="center"
android:textStyle="normal" />
</LinearLayout>
@ -98,7 +98,7 @@
android:paddingRight="2dp"
android:textColor="#FFFFFF"
android:textSize="12dp"
android:text="00:00"
tools:text="00:00"
android:layout_gravity="center"
android:textStyle="normal" />
</LinearLayout>

View file

@ -102,7 +102,7 @@
android:paddingEnd="4dp"
android:textColor="#FFFFFF"
android:textSize="12sp"
android:text="00:00"
tools:text="00:00"
android:layout_gravity="bottom"
android:textStyle="normal"
android:layout_marginBottom="3dp"
@ -119,7 +119,8 @@
android:text="/"
app:layout_constraintLeft_toRightOf="@id/exo_position"
app:layout_constraintTop_toTopOf="@id/exo_position"
app:layout_constraintBottom_toBottomOf="@id/exo_position" />
app:layout_constraintBottom_toBottomOf="@id/exo_position"
tools:ignore="HardcodedText" />
<TextView
android:id="@id/exo_duration"
@ -130,7 +131,7 @@
android:paddingRight="4dp"
android:textColor="#AAAAAA"
android:textSize="12sp"
android:text="00:00"
tools:text="00:00"
android:layout_gravity="bottom"
android:textStyle="normal"
app:layout_constraintLeft_toRightOf="@id/text_divider"

View file

@ -123,7 +123,7 @@
android:paddingEnd="4dp"
android:textColor="#FFFFFF"
android:textSize="12sp"
android:text="00:00"
tools:text="00:00"
android:layout_gravity="bottom"
android:textStyle="normal"
android:layout_marginBottom="3dp"
@ -140,7 +140,8 @@
android:text="/"
app:layout_constraintLeft_toRightOf="@id/exo_position"
app:layout_constraintTop_toTopOf="@id/exo_position"
app:layout_constraintBottom_toBottomOf="@id/exo_position" />
app:layout_constraintBottom_toBottomOf="@id/exo_position"
tools:ignore="HardcodedText" />
<TextView
android:id="@id/exo_duration"
@ -151,7 +152,7 @@
android:paddingRight="4dp"
android:textColor="#AAAAAA"
android:textSize="12sp"
android:text="00:00"
tools:text="00:00"
android:layout_gravity="bottom"
android:textStyle="normal"
app:layout_constraintLeft_toRightOf="@id/text_divider"

View file

@ -10,7 +10,7 @@
android:id="@+id/edit_comment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Add a comment..."
android:text="@string/add_a_comment"
android:textColor="@color/gray_ae"
android:gravity="top|start"
android:textSize="14sp"

View file

@ -67,7 +67,7 @@
<TextView android:id="@+id/text_never"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Never"
android:text="@string/never"
android:fontFamily="@font/inter_regular"
android:textSize="14sp"
android:textColor="@color/colorPrimary"
@ -81,7 +81,7 @@
<TextView android:id="@+id/text_close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Dismiss"
android:text="@string/dismiss"
android:fontFamily="@font/inter_regular"
android:textSize="14sp"
android:textColor="@color/colorPrimary"

View file

@ -2,6 +2,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="horizontal">
<TextView
android:id="@+id/bullet_point"
@ -10,12 +11,13 @@
android:textColor="@color/white"
android:fontFamily="@font/inter_light"
android:layout_marginEnd="10dp"
android:text="•" />
android:text="•"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/bullet_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:fontFamily="@font/inter_light"
android:text="someurl.com" />
tools:text="someurl.com" />
</LinearLayout>

View file

@ -2,6 +2,7 @@
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="bottom"
@ -92,7 +93,7 @@
android:paddingEnd="4dp"
android:textColor="#FFFFFF"
android:textSize="12sp"
android:text="00:00"
tools:text="00:00"
android:layout_gravity="bottom"
android:textStyle="normal"
android:layout_marginBottom="3dp"
@ -109,7 +110,8 @@
android:text="/"
app:layout_constraintLeft_toRightOf="@id/text_position"
app:layout_constraintTop_toTopOf="@id/text_position"
app:layout_constraintBottom_toBottomOf="@id/text_position" />
app:layout_constraintBottom_toBottomOf="@id/text_position"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/text_duration"
@ -120,7 +122,7 @@
android:paddingRight="4dp"
android:textColor="#AAAAAA"
android:textSize="12sp"
android:text="00:00"
tools:text="00:00"
android:layout_gravity="bottom"
android:textStyle="normal"
app:layout_constraintLeft_toRightOf="@id/text_divider"

View file

@ -30,7 +30,7 @@
android:fontFamily="@font/inter_light"
android:textColor="@color/white"
android:layout_marginTop="5dp"
android:text="Scan QR" />
android:text="@string/scan_qr" />
<TextView
android:id="@+id/text_description"
android:layout_width="match_parent"
@ -38,7 +38,7 @@
android:textSize="12dp"
android:fontFamily="@font/inter_extra_light"
android:textColor="#ACACAC"
android:text="Scan a QR code to install" />
android:text="@string/scan_a_qr_code_to_install" />
</LinearLayout>
</LinearLayout>
</LinearLayout>

View file

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
android:layout_gravity="bottom"
android:layoutDirection="ltr"
android:orientation="vertical">
@ -29,7 +29,7 @@
android:id="@+id/text_rewind"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0 Seconds"
tools:text="0 Seconds"
android:textSize="14dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular"
@ -57,7 +57,7 @@
android:id="@+id/text_fastforward"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0 Seconds"
tools:text="0 Seconds"
android:textSize="14dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_regular"
@ -94,7 +94,7 @@
android:layout_gravity="center"
android:scaleType="centerInside"
app:srcCompat="@drawable/ic_volume_up_1"
android:contentDescription="volume" />
android:contentDescription="@string/volume" />
</FrameLayout>
<FrameLayout
@ -125,7 +125,7 @@
android:layout_gravity="center"
android:scaleType="centerInside"
app:srcCompat="@drawable/ic_brightness_1"
android:contentDescription="volume" />
android:contentDescription="@string/volume" />
</FrameLayout>
<FrameLayout
@ -147,7 +147,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/inter_regular"
android:text="Toggle fullscreen"
android:text="@string/toggle_fullscreen"
android:textColor="@color/white"
android:textSize="16dp"/>
</FrameLayout>

View file

@ -2,6 +2,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical">
<androidx.constraintlayout.widget.ConstraintLayout
@ -27,7 +28,7 @@
android:layout_marginTop="13dp"
android:textColor="@color/white"
android:textSize="18dp"
android:text="Some Plugin" />
tools:text="Some Plugin" />
<LinearLayout
android:id="@+id/byContainer"
@ -42,7 +43,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="By"
android:text="@string/by"
android:fontFamily="@font/inter_extra_light"
android:textSize="15dp"
android:textColor="@color/text_color_tinted" />
@ -50,7 +51,7 @@
android:id="@+id/source_by"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="FUTO"
tools:text="FUTO"
android:fontFamily="@font/inter_extra_light"
android:layout_marginLeft="5dp"
android:textSize="15dp"
@ -59,7 +60,7 @@
android:id="@+id/source_author_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="(a5f64b3)"
tools:text="(a5f64b3)"
android:fontFamily="@font/inter_extra_light"
android:layout_marginLeft="7dp"
android:textSize="15dp"
@ -74,7 +75,7 @@
android:layout_marginTop="8dp"
android:textColor="@color/text_color_tinted"
android:fontFamily="@font/inter_extra_light"
android:text="A plugin that adds Youtube as a source" />
tools:text="A plugin that adds Youtube as a source" />
<!--Version-->
<LinearLayout
@ -88,7 +89,7 @@
android:textColor="@color/white"
android:layout_marginTop="10dp"
android:fontFamily="@font/inter_light"
android:text="Version" />
android:text="@string/version" />
<TextView
android:id="@+id/source_version"
android:layout_width="match_parent"
@ -96,7 +97,7 @@
android:textSize="14dp"
android:textColor="@color/text_color_tinted"
android:fontFamily="@font/inter_extra_light"
android:text="3" />
tools:text="3" />
</LinearLayout>
<!--Repo Url-->
@ -119,7 +120,7 @@
android:textSize="14dp"
android:textColor="@color/colorPrimary"
android:fontFamily="@font/inter_extra_light"
android:text="https://some.repository.url/whatever/something" />
tools:text="https://some.repository.url/whatever/something" />
</LinearLayout>
<!--Script Url-->
@ -142,7 +143,7 @@
android:textSize="14dp"
android:textColor="@color/colorPrimary"
android:fontFamily="@font/inter_extra_light"
android:text="https://some.repository.url/whatever/someScript.js" />
tools:text="https://some.repository.url/whatever/someScript.js" />
</LinearLayout>
<!--Script Url-->
@ -157,7 +158,7 @@
android:textColor="@color/white"
android:layout_marginTop="10dp"
android:fontFamily="@font/inter_light"
android:text="Signature" />
android:text="@string/signature" />
<TextView
android:id="@+id/source_signature"
android:layout_width="match_parent"
@ -165,6 +166,6 @@
android:textSize="14dp"
android:textColor="@color/colorPrimary"
android:fontFamily="@font/inter_extra_light"
android:text="Valid" />
android:text="@string/valid" />
</LinearLayout>
</LinearLayout>

View file

@ -227,7 +227,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Clear"
android:text="@string/clear"
android:includeFontPadding="false"
android:fontFamily="@font/inter_light"
android:textSize="14dp"
@ -258,7 +258,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Shuffle"
android:text="@string/shuffle"
android:includeFontPadding="false"
android:fontFamily="@font/inter_light"
android:textSize="14dp"
@ -295,7 +295,7 @@
android:layout_marginStart="6dp"
android:fontFamily="@font/inter_light"
android:includeFontPadding="false"
android:text="Repeat"
android:text="@string/repeat"
android:textColor="@color/gray_8f"
android:textSize="14dp" />
</LinearLayout>
@ -324,7 +324,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="View"
android:text="@string/view"
android:includeFontPadding="false"
android:fontFamily="@font/inter_light"
android:textSize="14dp"

View file

@ -29,9 +29,10 @@
<string name="close">Close</string>
<string name="never">Never</string>
<string name="there_is_an_update_available_do_you_wish_to_update">There is an update available, do you wish to update?</string>
<string name="downloading_update">Downloading update...</string>
<string name="installing_update">Installing update...</string>
<string name="downloading_update">Downloading update</string>
<string name="installing_update">Installing update</string>
<string name="done">Done</string>
<string name="getHome">getHome</string>
<string-array name="home_screen_array">
<item>Recommendations</item>
<item>Subscriptions</item>
@ -240,7 +241,7 @@
<string name="options">Options</string>
<string name="export">Export</string>
<string name="delete">Delete</string>
<string name="loading_update">Loading update...</string>
<string name="loading_update">Loading update</string>
<string name="polycentric_explanation">As you browse online videos and want to leave a comment, consider trying Polycentric, a new way to manage your online presence that\'s both easy to use and focused on your needs. Here\'s why creating a Polycentric profile is a great choice:\n\n 1. You\'re in Control: With Polycentric, your data isn\'t stored in one place controlled by a single company. Instead, it\'s spread across multiple locations, giving you more control over your online presence. You decide where your data is stored and can easily switch between providers or add new ones.\n\n 2. Privacy and Security: Polycentric keeps your information safe by using advanced security techniques. You can trust that your personal details are well-protected and only accessible by those you choose to share them with.\n\n 3. Seamless Networking: Polycentric lets you connect with others and interact with their content without being tied to a single platform. If a provider becomes unreliable or tries to block access, your Polycentric client will automatically find information from other sources, keeping you connected.\n\n 4. Smart Search and Recommendations: Polycentric uses multiple sources for search and recommendations, offering you top-notch performance while ensuring no single provider has too much influence over the results you see.\n\n 5. Adaptable and Open: Polycentric is designed to be flexible and open to new developments, allowing for constant improvements and new features that adapt to the needs of its users.\n\n 6. By creating a Polycentric profile, you can leave comments on online videos and enjoy a more personalized online experience. See for yourself how this user-friendly solution puts you in control of your digital life. Sign up for Polycentric today!</string>
<string name="publish">Publish</string>
<string name="usage">Usage</string>
@ -248,6 +249,269 @@
<string name="enable_in_search">Enable in search</string>
<string name="check">Check</string>
<string name="buy_text">Grayjay is not an easy or cheap app to build and maintain. We have full time engineers working on the app and its surrounding systems. And will likely not make its money back anytime soon, if ever.\n\nFUTOs mission is for open-source software and non-malicious software business practices to become a sustainable income source for projects and their developers. For this reason we are in favor of users actually paying for the software.\n\nThat is why Grayjay wants you to pay for the software.</string>
<string name="an_uncaught_exception_was_thrown_we_re_sorry_for_the_inconvenience">An uncaught exception was thrown, we\'re sorry for the inconvenience.</string>
<string name="to_help_us_solve_this_please_share_the_below_crash_report_with_us_and_perhaps_adds_some_context_on_what_you_were_doing">To help us solve this, please share the below crash report with us, and perhaps adds some context on what you were doing.</string>
<string name="new_profile">New Profile</string>
<string name="import_existing_profile">Import Existing Profile</string>
<string name="generate_a_new_identity">Generate a new identity</string>
<string name="use_an_existing_identity">Use an existing identity</string>
<string name="permissions">Permissions</string>
<string name="security_warnings">Security Warnings</string>
<string name="these_are_warnings_of_plugin_behavior_and_implementation">These are warnings of plugin behavior and implementation</string>
<string name="please_enter_the_captcha_and_close_when_finished">Please enter the captcha and close when finished</string>
<string name="close_capitalized">CLOSE</string>
<string name="submit">Submit</string>
<string name="restart">Restart</string>
<string name="manage_tabs">Manage Tabs</string>
<string name="scan_to_import">Scan to import</string>
<string name="send_your_identity_to_another_app">Send your identity to another app</string>
<string name="copy">Copy</string>
<string name="copy_your_identity_to_clipboard">Copy your identity to clipboard</string>
<string name="polycentric">Polycentric</string>
<string name="profile_name">Profile Name</string>
<string name="this_will_be_visible_to_other_users">This will be visible to other users</string>
<string name="create_profile">Create Profile</string>
<string name="or_capitalized">OR</string>
<string name="paste_profile_here_polycentric">Paste profile here polycentric://…</string>
<string name="import_profile">Import Profile</string>
<string name="you_re_apparantly_a_developer">You\'re apparently a developer</string>
<string name="developer_settings">Developer Settings</string>
<string name="migration">Migration</string>
<string name="set_a_password_for_your_daily_backup">Set a password for your daily backup</string>
<string name="set_a_password_used_to_encrypt_your_daily_backup_that_is_written_to_external_storage">Set a password used to encrypt your daily backup that is written to external storage.</string>
<string name="backup_password">Backup Password</string>
<string name="restore_from_automatic_backup">Restore from Automatic Backup</string>
<string name="it_appears_an_automatic_backup_exists_on_your_device_if_you_would_like_to_restore_enter_your_backup_password">It appears an automatic backup exists on your device, if you would like to restore, enter your backup password.</string>
<string name="restore">Restore</string>
<string name="error_message_here">Error message here</string>
<string name="name">Name</string>
<string name="ip">IP</string>
<string name="port">Port</string>
<string name="discovered_devices">Discovered Devices</string>
<string name="remembered_devices">Remembered Devices</string>
<string name="there_are_no_remembered_devices">There are no remembered devices</string>
<string name="connected_to">Connected to</string>
<string name="volume">Volume</string>
<string name="changelog">Changelog</string>
<string name="some_example_changelog">Some example changelog.</string>
<string name="previous">Previous</string>
<string name="next">Next</string>
<string name="comment">Comment</string>
<string name="str_import">Import</string>
<string name="my_playlist_name">My Playlist Name</string>
<string name="do_you_want_to_import_this_store">Do you want to import this store?</string>
<string name="sources_required_need_to_be_enabled">Sources required need to be enabled</string>
<string name="items_require_migration_or_are_corrupted_would_you_like_to_restore_them_from_backup_now">Items require migration or are corrupted, would you like to restore them from backup now?</string>
<string name="if_ignored_you_will_be_asked_again_next_startup">If ignored you will be asked again next startup.</string>
<string name="ignore">Ignore</string>
<string name="view_changelog">View changelog</string>
<string name="i_already_paid">I Already Paid</string>
<string name="memberships">Memberships</string>
<string name="a_monthly_recurring_payment_with_often">A monthly recurring payment with often</string>
<string name="additional_perks">additional perks.</string>
<string name="a_one_time_payment_to_support_the_creator">A one-time payment to support the creator</string>
<string name="donation">Donation</string>
<string name="downloading">Downloading</string>
<string name="videos">Videos</string>
<string name="clear_history">Clear history</string>
<string name="nothing_to_import">Nothing to import</string>
<string name="enabling_lots_of_sources_can_reduce_the_loading_speed_of_your_application">Enabling lots of sources can reduce the loading speed of your application.</string>
<string name="support">Support</string>
<string name="store">Store</string>
<string name="live_chat">Live Chat</string>
<string name="remove">Remove</string>
<string name="space_videos">Videos</string>
<string name="playlist">Playlist</string>
<string name="neopass_channel">Polycentric channel</string>
<string name="enable">Enable</string>
<string name="under_construction">Under Construction</string>
<string name="under">UNDER</string>
<string name="construction">CONSTRUCTION</string>
<string name="disable">Disable</string>
<string name="the_following_content_cannot_be_opened_in_grayjay_due_to_a_missing_plugin">The following content cannot be opened in Grayjay due to a missing plugin.</string>
<string name="unknown">Unknown</string>
<string name="tap_to_open_in_browser">Tap to open in browser</string>
<string name="missing_plugin">Missing Plugin</string>
<string name="viewers_are_raiding">Viewers are raiding</string>
<string name="go_now">Go now</string>
<string name="prevent">Prevent</string>
<string name="recently_used_playlist">Recently Used Playlist</string>
<string name="license_email">License email</string>
<string name="required_to_send_the_license_key">Required to send the license key</string>
<string name="receipt_email_user_domain_com">Receipt email (user@domain.com)</string>
<string name="payment_using">Payment using</string>
<string name="country">Country</string>
<string name="postal_code">Postal Code</string>
<string name="grayjay">Grayjay</string>
<string name="sales_tax">Sales Tax (</string>
<string name="total">Total</string>
<string name="pay">Pay</string>
<string name="standard_payment_methods">Standard Payment Methods</string>
<string name="stripe_is_a_secure_online_payment_service_that_accepts_major_credit_cards_debit_cards_and_various_localized_payment_methods">Stripe is a secure online payment service that accepts major credit cards, debit cards, and various localized payment methods.</string>
<string name="live_capitalized">LIVE</string>
<string name="add_a_comment">Add a comment…</string>
<string name="dismiss">Dismiss</string>
<string name="scan_a_qr_code_to_install">Scan a QR code to install</string>
<string name="toggle_fullscreen">Toggle fullscreen</string>
<string name="by">By</string>
<string name="signature">Signature</string>
<string name="valid">Valid</string>
<string name="repeat">Repeat</string>
<string name="view">View</string>
<string name="install_by_qr">Install by QR</string>
<string name="install_a_plugin_by_scanning_a_qr_code">Install a plugin by scanning a QR code</string>
<string name="logout">Logout</string>
<string name="video">Video</string>
<string name="view_a_more_in_depth_video">View a more in-depth video</string>
<string name="technical_documentation">Technical Documentation</string>
<string name="view_the_technical_documentation">View the technical documentation</string>
<string name="visit_my_store">Visit my store</string>
<string name="make_a_backup_of_your_identity">Make a backup of your identity</string>
<string name="sign_out_of_this_identity">Sign out of this identity</string>
<string name="delete_this_profile">Delete this profile</string>
<string name="install_by_url">Install by URL</string>
<string name="cache_to_quickly_load_previously_fetched_videos">Cache to quickly load previously fetched videos</string>
<string name="a_list_of_user_reported_and_self_reported_issues">A list of user-reported and self-reported issues</string>
<string name="also_removes_any_data_related_plugin_like_login_or_settings">Also removes any data related plugin like login or settings</string>
<string name="announcement">Announcement</string>
<string name="attempt_to_utilize_byte_ranges">Attempt to utilize byte ranges</string>
<string name="auto_update">Auto Update</string>
<string name="auto_rotate">Auto-Rotate</string>
<string name="auto_rotate_dead_zone">Auto-Rotate Dead Zone</string>
<string name="automatic_backup">Automatic Backup</string>
<string name="background_behavior">Background Behavior</string>
<string name="background_update">Background Update</string>
<string name="background_download">Background download</string>
<string name="backup">Backup</string>
<string name="browsing">Browsing</string>
<string name="byte_range_concurrency">ByteRange Concurrency</string>
<string name="byte_range_download">ByteRange Download</string>
<string name="casting">Casting</string>
<string name="change_behavior_of_the_player">Change behavior of the player</string>
<string name="change_external_downloads_directory">Change external Downloads directory</string>
<string name="change_external_general_directory">Change external General directory</string>
<string name="change_tabs_visible_on_the_home_screen">Change tabs visible on the home screen</string>
<string name="change_the_external_directory_for_general_files">Change the external directory for general files</string>
<string name="change_the_external_storage_for_download_files">Change the external storage for download files</string>
<string name="clear_cookies">Clear Cookies</string>
<string name="clear_cookies_on_logout">Clear Cookies on Logout</string>
<string name="clear_payment">Clear Payment</string>
<string name="clears_cookies_when_you_log_out">Clears cookies when you log out</string>
<string name="clears_in_app_browser_cookies">Clears in-app browser cookies</string>
<string name="configure_browsing_behavior">Configure browsing behavior</string>
<string name="configure_casting">Configure casting</string>
<string name="configure_daily_backup_in_case_of_catastrophic_failure">Configure daily backup in case of catastrophic failure</string>
<string name="configure_downloading_of_videos">Configure downloading of videos</string>
<string name="configure_how_your_home_tab_works_and_feels">Configure how your Home tab works and feels</string>
<string name="configure_how_your_subscriptions_works_and_feels">Configure how your Subscriptions works and feels</string>
<string name="configure_if_background_download_should_be_used">Configure if background download should be used</string>
<string name="configure_the_auto_updater">Configure the auto updater</string>
<string name="configure_when_updates_should_be_downloaded">Configure when updates should be downloaded</string>
<string name="configure_when_videos_should_be_downloaded">Configure when videos should be downloaded</string>
<string name="creates_a_zip_file_with_your_data_which_can_be_imported_by_opening_it_with_grayjay">Creates a zip file with your data which can be imported by opening it with Grayjay</string>
<string name="default_audio_quality">Default Audio Quality</string>
<string name="default_playback_speed">Default Playback Speed</string>
<string name="default_video_quality">Default Video Quality</string>
<string name="deletes_license_keys_from_app">Deletes license keys from app</string>
<string name="download_when">Download when</string>
<string name="enable_video_cache">Enable Video Cache</string>
<string name="enable_casting">Enable casting</string>
<string name="experimental_background_update_for_subscriptions_cache">Experimental background update for subscriptions cache</string>
<string name="export_data">Export Data</string>
<string name="external_storage">External Storage</string>
<string name="feed_style">Feed Style</string>
<string name="fetch_on_app_boot">Fetch on app boot</string>
<string name="get_answers_to_common_questions">Get answers to common questions</string>
<string name="give_feedback_on_the_application">Give feedback on the application</string>
<string name="info">Info</string>
<string name="live_chat_webview">Live Chat Webview</string>
<string name="log_level">Log Level</string>
<string name="logging">Logging</string>
<string name="manage_polycentric_identity">Manage Polycentric identity</string>
<string name="manage_your_polycentric_identity">Manage your Polycentric identity</string>
<string name="manual_check">Manual check</string>
<string name="manually_check_for_updates">Manually check for updates</string>
<string name="number_of_concurrent_threads_to_multiply_download_speeds_from_throttled_sources">Number of concurrent threads to multiply download speeds from throttled sources</string>
<string name="payment">Payment</string>
<string name="payment_status">Payment Status</string>
<string name="player">Player</string>
<string name="plugins">Plugins</string>
<string name="preferred_casting_quality">Preferred Casting Quality</string>
<string name="preferred_metered_quality">Preferred Metered Quality</string>
<string name="preferred_preview_quality">Preferred Preview Quality</string>
<string name="primary_language">Primary Language</string>
<string name="reinstall_embedded_plugins">Reinstall Embedded Plugins</string>
<string name="remove_cached_version">Remove Cached Version</string>
<string name="remove_the_last_downloaded_version">Remove the last downloaded version</string>
<string name="reset_announcements">Reset announcements</string>
<string name="reset_hidden_announcements">Reset hidden announcements</string>
<string name="restore_automatic_backup">Restore Automatic Backup</string>
<string name="restore_a_previous_automatic_backup">Restore a previous automatic backup</string>
<string name="resume_after_preview">Resume After Preview</string>
<string name="review_the_current_and_past_changelogs">Review the current and past changelogs</string>
<string name="set_automatic_backup">Set Automatic Backup</string>
<string name="shortly_after_opening_the_app_start_fetching_subscriptions">Shortly after opening the app, start fetching subscriptions</string>
<string name="show_faq">Show FAQ</string>
<string name="show_issues">Show Issues</string>
<string name="specify_how_many_threads_are_used_to_fetch_channels">Specify how many threads are used to fetch channels</string>
<string name="submit_feedback">Submit feedback</string>
<string name="submit_logs">Submit logs</string>
<string name="submit_logs_to_help_us_narrow_down_issues">Submit logs to help us narrow down issues</string>
<string name="subscription_concurrency">Subscription Concurrency</string>
<string name="this_prevents_the_device_from_rotating_within_the_given_amount_of_degrees">This prevents the device from rotating within the given amount of degrees</string>
<string name="use_the_live_chat_web_window_when_available_over_native_implementation">Use the live chat web window when available over native implementation</string>
<string name="version_code">Version Code</string>
<string name="version_name">Version Name</string>
<string name="version_type">Version Type</string>
<string name="when_watching_a_video_in_preview_mode_resume_at_the_position_when_opening_the_video_code">When watching a video in preview mode, resume at the position when opening the video code</string>
<string name="please_enable_logging_to_submit_logs">Please enable logging to submit logs</string>
<string name="embedded_plugins_reinstalled_a_reboot_is_recommended">Embedded plugins reinstalled, a reboot is recommended</string>
<string name="announcements_reset">Announcements reset.</string>
<string name="failed_to_show_store">Failed to show store.</string>
<string name="retrieving_changelog">Retrieving changelog</string>
<string name="paid">Paid</string>
<string name="not_paid">Not Paid</string>
<string name="licenses_cleared_might_require_app_restart">Licenses cleared, might require app restart</string>
<string name="attempts_to_fetch_2_pages_from_getHome">Attempts to fetch 2 pages from getHome</string>
<string name="background_subscription_testing">Background Subscription Testing</string>
<string name="clear_all_downloaded">Clear All Downloaded</string>
<string name="clear_downloads">Clear Downloads</string>
<string name="clear_all_cookies_from_the_cookieManager">Clear all cookies from the CookieManager</string>
<string name="crash_me">Crash Me</string>
<string name="crashes_the_application_on_purpose">Crashes the application on purpose</string>
<string name="delete_announcements">Delete Announcements</string>
<string name="delete_unresolved">Delete Unresolved</string>
<string name="delete_all_announcements">Delete all announcements</string>
<string name="deletes_all_downloaded_videos_and_related_files">Deletes all downloaded videos and related files</string>
<string name="deletes_all_ongoing_downloads">Deletes all ongoing downloads</string>
<string name="deletes_all_unresolved_source_files">Deletes all unresolved source files</string>
<string name="developer_mode">Developer Mode</string>
<string name="development_server">Development Server</string>
<string name="experimental">Experimental</string>
<string name="fill_storage_till_error">Fill storage till error</string>
<string name="inject">Inject</string>
<string name="injects_a_test_source_config_local_into_v8">Injects a test source config (local) into V8</string>
<string name="other">Other</string>
<string name="others_ellipsis">Others…</string>
<string name="removes_all_subscriptions">Removes all subscriptions</string>
<string name="settings_related_to_development_server_be_careful_as_it_may_open_your_phone_to_security_vulnerabilities">Settings related to development server, be careful as it may open your phone to security vulnerabilities</string>
<string name="start_server">Start Server</string>
<string name="start_server_on_boot">Start Server on boot</string>
<string name="starts_a_devServer_on_port_11337_may_expose_vulnerabilities">Starts a DevServer on port 11337, may expose vulnerabilities.</string>
<string name="test_v8_communication_speed">Test V8 Communication speed</string>
<string name="test_v8_creation_speed">Test V8 Creation speed</string>
<string name="tests_v8_communication_speeds">Tests V8 communication speeds</string>
<string name="tests_v8_creation_times_and_running">Tests V8 creation times and running</string>
<string name="unsubscribe_all">Unsubscribe all</string>
<string name="v8_benchmarks">V8 Benchmarks</string>
<string name="v8_script_testing">V8 Script Testing</string>
<string name="various_benchmarks_using_the_integrated_v8_engine">Various benchmarks using the integrated V8 engine</string>
<string name="various_tests_against_a_custom_source">Various tests against a custom source</string>
<string name="writes_to_disk_till_no_space_is_left">Writes to disk till no space is left</string>
<string name="visibility">Visibility</string>
<string name="enable_where_this_plugins_content_are_visible">Enable where this plugin\'s content are visible</string>
<string name="show_content_in_home_tab">Show content in home tab</string>
<string name="show_content_in_search_results">Show content in search results</string>
<string-array name="casting_device_type_array">
<item>FastCast</item>
<item>ChromeCast</item>

@ -1 +1 @@
Subproject commit 2c608e7eddb742a918b304e3c52888206275f642
Subproject commit 3090ca3af03ce276fc167d47f49daa76a5b67dd7

View file

@ -20,4 +20,5 @@ kotlin.code.style=official
# Enables namespacing of each library's R class so that its R class includes only the
# resources declared in the library itself and none from the library's dependencies,
# thereby reducing the size of the R class for that library
android.nonTransitiveRClass=true
android.nonTransitiveRClass=true
android.nonFinalResIds=false