Commit ef75a2f4 authored by Dan H's avatar Dan H Committed by Commit Bot

Reland "Standardize feed android resources"

This reverts commit 807fab79.

Reason for revert: Culprit was errorprone update this morning, which happened after trybot runs for this CL.

Original change's description:
> Revert "Standardize feed android resources"
> 
> This reverts commit 0e853eb9.
> 
> Reason for revert: Suspect culprit for build failure
> 
> Sample failure:
> https://ci.chromium.org/p/chromium/builders/ci/android-archive-rel/8660
> 
> Original change's description:
> > Standardize feed android resources
> > 
> >   - Restructure to match chrome/browser/java/res
> >   - Replace strings with references to existing .grd strings
> >   - I kept Piet resources separate, since piet may eventually be moved into
> >     a different library.
> >   - Move feed/library sources into chrome_java
> > 
> > Strings changed:
> >   snackbar_fetch_no_new_suggestions -> ntp_suggestions_fetch_no_new_suggestions
> >   snackbar_fetch_failed -> ntp_suggestions_fetch_failed
> >   snackbar_default_action -> undo
> > 
> > It looks like chromium's strings are translated to more languages, so
> > this might provide better localization. Some of these strings are
> > translated differently between feed and zine.
> > 
> > Bug: 1024945
> > Change-Id: If9862a4965756e28ba812bf315556d6b8db09e62
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1956275
> > Reviewed-by: David Trainor <dtrainor@chromium.org>
> > Reviewed-by: Peter Wen <wnwen@chromium.org>
> > Reviewed-by: Theresa  <twellington@chromium.org>
> > Reviewed-by: Carlos Knippschild <carlosk@chromium.org>
> > Commit-Queue: Dan H <harringtond@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#734575}
> 
> TBR=wnwen@chromium.org,dtrainor@chromium.org,twellington@chromium.org,govind@chromium.org,megjablon@chromium.org,carlosk@chromium.org,harringtond@chromium.org
> 
> Change-Id: I3c14db8a0c67bf5b784955df6241443489b5b8af
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: 1024945
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2015411
> Reviewed-by: Sebastien Lalancette <seblalancette@chromium.org>
> Commit-Queue: Sebastien Lalancette <seblalancette@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#734596}

TBR=wnwen@chromium.org,dtrainor@chromium.org,twellington@chromium.org,govind@chromium.org,megjablon@chromium.org,carlosk@chromium.org,seblalancette@chromium.org,harringtond@chromium.org

Change-Id: Ie6d83d3cf8d802a70cc73e4a24b0872d3b04ae17
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 1024945
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2017944Reviewed-by: default avatarDan H <harringtond@chromium.org>
Commit-Queue: Dan H <harringtond@chromium.org>
Cr-Commit-Position: refs/heads/master@{#734597}
parent 807fab79
...@@ -51,6 +51,12 @@ Still reading? ...@@ -51,6 +51,12 @@ Still reading?
</issue> </issue>
<issue id="ContentDescription" severity="Error"> <issue id="ContentDescription" severity="Error">
<ignore regexp="chromecast/internal"/> <ignore regexp="chromecast/internal"/>
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/layout/contacts_list_item_view.xml"/>
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/layout/photo_picker_dialog.xml"/>
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/layout/video_player.xml"/>
</issue> </issue>
<issue id="DefaultLocale"> <issue id="DefaultLocale">
<ignore regexp="clank"/> <ignore regexp="clank"/>
...@@ -190,12 +196,18 @@ Still reading? ...@@ -190,12 +196,18 @@ Still reading?
</issue> </issue>
<issue id="LogConditional" severity="ignore"/> <issue id="LogConditional" severity="ignore"/>
<issue id="LongLogTag" severity="ignore"/> <issue id="LongLogTag" severity="ignore"/>
<issue id="MergeRootFrame" severity="Error">
<!-- TODO(crbug.com/1039415): Remove suppression after fixing bug. -->
<ignore regexp="chrome/android/feed/core/java/res/layout/feed_more_button.xml"/>
</issue>
<issue id="MissingApplicationIcon" severity="ignore"/> <issue id="MissingApplicationIcon" severity="ignore"/>
<issue id="MissingDefaultResource"> <issue id="MissingDefaultResource">
<!-- Only used by ToolbarControlContainer guarded by tablet form-factor. --> <!-- Only used by ToolbarControlContainer guarded by tablet form-factor. -->
<ignore regexp="toolbar_background.9.png"/> <ignore regexp="toolbar_background.9.png"/>
<!-- Only used by FirstRunFlowSequencer guarded by tablet form-factor. --> <!-- Only used by FirstRunFlowSequencer guarded by tablet form-factor. -->
<ignore regexp="window_background.xml"/> <ignore regexp="window_background.xml"/>
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/layout-sw360dp/preference_spinner_single_line.xml"/>
</issue> </issue>
<issue id="MissingPermission" severity="ignore"/> <issue id="MissingPermission" severity="ignore"/>
<!-- TODO(yolandyan) remove this once all tests are converted to junit4 --> <!-- TODO(yolandyan) remove this once all tests are converted to junit4 -->
...@@ -240,6 +252,36 @@ Still reading? ...@@ -240,6 +252,36 @@ Still reading?
<!-- 1 This is for testonly target android_support_chromium_java in android_sdk. --> <!-- 1 This is for testonly target android_support_chromium_java in android_sdk. -->
<ignore regexp="third_party/android_sdk/public/extras/chromium/support/src/org/chromium/android/support/PackageManagerWrapper.java"/> <ignore regexp="third_party/android_sdk/public/extras/chromium/support/src/org/chromium/android/support/PackageManagerWrapper.java"/>
<!-- Endnote: Please specify number of suppressions when adding more --> <!-- Endnote: Please specify number of suppressions when adding more -->
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/drawable/address.xml"/>
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/drawable/email.xml"/>
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/drawable/face.xml"/>
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/drawable/ic_infobar_nfc.xml"/>
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/drawable/ic_logo_googleg_20dp.xml"/>
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/drawable/ic_pause_circle_outline_white_24dp.xml"/>
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/drawable/ic_speed_24dp.xml"/>
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/drawable/ic_volume_off_white_24dp.xml"/>
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/drawable/ic_volume_on_white_24dp.xml"/>
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/drawable/logo_partly_cloudy.xml"/>
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/drawable/names.xml"/>
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/values/styles.xml"/>
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/drawable/telephone.xml"/>
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/drawable/zoom_in.xml"/>
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/drawable/zoom_out.xml"/>
</issue> </issue>
<!-- This warning just adds a lot of false positives. --> <!-- This warning just adds a lot of false positives. -->
<issue id="ObsoleteSdkInt" severity="ignore"/> <issue id="ObsoleteSdkInt" severity="ignore"/>
...@@ -400,6 +442,16 @@ Still reading? ...@@ -400,6 +442,16 @@ Still reading?
<!-- 1 string used by Android's policies system, pulled from app directly --> <!-- 1 string used by Android's policies system, pulled from app directly -->
<ignore regexp="restriction_values.xml"/> <ignore regexp="restriction_values.xml"/>
<!-- Endnote: Please specify number of suppressions when adding more --> <!-- Endnote: Please specify number of suppressions when adding more -->
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="../obj/components/strings/components_strings_grd.resources.zip/values/components_strings.xml"/>
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/values/dimens.xml"/>
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/layout-sw360dp/preference_spinner_single_line.xml"/>
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/values/styles.xml"/>
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/layout/tab_switcher_action_menu_layout.xml"/>
</issue> </issue>
<issue id="UseCompoundDrawables"> <issue id="UseCompoundDrawables">
<!-- Upscaling 24dp to 48dp doesn't work as expected with a TextView compound drawable. --> <!-- Upscaling 24dp to 48dp doesn't work as expected with a TextView compound drawable. -->
...@@ -443,4 +495,16 @@ Still reading? ...@@ -443,4 +495,16 @@ Still reading?
<ignore regexp="chrome/android/java/src/org/chromium/chrome/browser/widget/prefeditor/EditorDialog.java"/> <ignore regexp="chrome/android/java/src/org/chromium/chrome/browser/widget/prefeditor/EditorDialog.java"/>
<ignore regexp="third_party/android_data_chart/java/src/org/chromium/third_party/android/datausagechart/ChartDataUsageView.java"/> <ignore regexp="third_party/android_data_chart/java/src/org/chromium/third_party/android/datausagechart/ChartDataUsageView.java"/>
</issue> </issue>
<issue id="DuplicateIds" severity="Fatal">
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/menu/main_menu.xml"/>
</issue>
<issue id="IncludeLayoutParam" severity="Error">
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/layout/start_top_toolbar.xml"/>
</issue>
<issue id="RtlHardcoded" severity="Error">
<!--TODO(crbug.com/1044658): This suppression was added blindly, and needs investigated.-->
<ignore regexp="chrome/android/java/res/layout/sheet_tab_toolbar.xml"/>
</issue>
</lint> </lint>
...@@ -176,14 +176,6 @@ if (enable_vr) { ...@@ -176,14 +176,6 @@ if (enable_vr) {
} }
} }
if (enable_feed_in_chrome) {
android_resources("chrome_feed_java_resources") {
resource_dirs = [ "//chrome/android/feed/core/java/res" ]
deps = [ ":chrome_app_java_resources" ]
custom_package = "org.chromium.chrome.feed"
}
}
android_resources("chrome_download_java_resources") { android_resources("chrome_download_java_resources") {
resource_dirs = [ "//chrome/android/java/res_download" ] resource_dirs = [ "//chrome/android/java/res_download" ]
deps = [ ":chrome_app_java_resources" ] deps = [ ":chrome_app_java_resources" ]
...@@ -245,6 +237,7 @@ android_library("chrome_java") { ...@@ -245,6 +237,7 @@ android_library("chrome_java") {
"//base:base_java", "//base:base_java",
"//base:jni_java", "//base:jni_java",
"//chrome/android/features/keyboard_accessory:public_java", "//chrome/android/features/keyboard_accessory:public_java",
"//chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library:piet_resources",
"//chrome/android/public/crypto:java", "//chrome/android/public/crypto:java",
"//chrome/android/public/profiles:java", "//chrome/android/public/profiles:java",
"//chrome/android/third_party/compositor_animator:compositor_animator_java", "//chrome/android/third_party/compositor_animator:compositor_animator_java",
...@@ -457,7 +450,7 @@ android_library("chrome_java") { ...@@ -457,7 +450,7 @@ android_library("chrome_java") {
srcjar_deps += [ ":chrome_vr_android_java_enums_srcjar" ] srcjar_deps += [ ":chrome_vr_android_java_enums_srcjar" ]
if (enable_feed_in_chrome) { if (enable_feed_in_chrome) {
deps += [ ":chrome_feed_java_resources" ] deps += [ "//chrome/android/feed:chrome_feed_java_resources" ]
} }
# Add the actual implementation where necessary so that downstream targets # Add the actual implementation where necessary so that downstream targets
...@@ -648,8 +641,6 @@ junit_binary("chrome_junit_tests") { ...@@ -648,8 +641,6 @@ junit_binary("chrome_junit_tests") {
"//base:base_junit_test_support", "//base:base_junit_test_support",
"//chrome/android/features/keyboard_accessory:internal_java", "//chrome/android/features/keyboard_accessory:internal_java",
"//chrome/android/features/tab_ui:java", "//chrome/android/features/tab_ui:java",
"//chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library:feed_conformance_test_lib_android_java",
"//chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library:feed_lib_java",
"//chrome/android/webapk/libs/client:client_java", "//chrome/android/webapk/libs/client:client_java",
"//chrome/android/webapk/libs/common:common_java", "//chrome/android/webapk/libs/common:common_java",
"//chrome/android/webapk/test:junit_test_support", "//chrome/android/webapk/test:junit_test_support",
......
...@@ -255,7 +255,6 @@ android_library("test_java") { ...@@ -255,7 +255,6 @@ android_library("test_java") {
"//base:base_java_test_support", "//base:base_java_test_support",
"//chrome/android:chrome_java", "//chrome/android:chrome_java",
"//chrome/android:chrome_test_util_java", "//chrome/android:chrome_test_util_java",
"//chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library:feed_lib_java",
"//chrome/browser/image_fetcher:java", "//chrome/browser/image_fetcher:java",
"//chrome/browser/preferences:java", "//chrome/browser/preferences:java",
"//chrome/browser/ui/android/widget:java", "//chrome/browser/ui/android/widget:java",
......
# Copyright 2020 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/android/rules.gni")
import("//chrome/common/features.gni")
import("//components/feed/features.gni")
if (enable_feed_in_chrome) {
android_resources("chrome_feed_java_resources") {
resource_dirs = [ "core/java/res" ]
deps = [
"//chrome/android:chrome_app_java_resources",
"//ui/android:ui_java_resources",
]
custom_package = "org.chromium.chrome.feed"
}
}
...@@ -7,7 +7,7 @@ found in the LICENSE file. ...@@ -7,7 +7,7 @@ found in the LICENSE file.
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"> <item android:state_pressed="true">
<shape> <shape>
<solid android:color="@color/feed_alpha_10_modern_blue_300"/> <solid android:color="@color/modern_blue_300_alpha_10"/>
<corners android:radius="@dimen/button_compat_radius"/> <corners android:radius="@dimen/button_compat_radius"/>
</shape> </shape>
</item> </item>
......
...@@ -7,7 +7,7 @@ found in the LICENSE file. ...@@ -7,7 +7,7 @@ found in the LICENSE file.
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"> <item android:state_pressed="true">
<shape> <shape>
<solid android:color="@color/feed_alpha_10_modern_blue_600"/> <solid android:color="@color/modern_blue_600_alpha_10"/>
<corners android:radius="@dimen/button_compat_radius"/> <corners android:radius="@dimen/button_compat_radius"/>
</shape> </shape>
</item> </item>
......
...@@ -14,7 +14,7 @@ found in the LICENSE file. ...@@ -14,7 +14,7 @@ found in the LICENSE file.
android:id="@+id/action_button" android:id="@+id/action_button"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/more_button_label" android:text="@string/more"
android:layout_gravity="center" /> android:layout_gravity="center" />
<include layout="@layout/feed_spinner_gone"/> <include layout="@layout/feed_spinner_gone"/>
</FrameLayout> </FrameLayout>
...@@ -10,8 +10,7 @@ found in the LICENSE file. ...@@ -10,8 +10,7 @@ found in the LICENSE file.
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center_vertical" android:gravity="center_vertical"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:minHeight="?android:attr/listPreferredItemHeightSmall" android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:textColor="?feedContextMenuTextColor" android:textAppearance="@style/TextAppearance.BlackTitle1"
style="@style/FeedMenuTextPaddingStyle" style="@style/FeedMenuTextPaddingStyle"
/> />
...@@ -15,13 +15,11 @@ found in the LICENSE file. ...@@ -15,13 +15,11 @@ found in the LICENSE file.
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingBottom="@dimen/no_content_text_padding" android:paddingBottom="@dimen/no_content_text_padding"
android:textColor="?feedPrimaryTextColor" android:textAppearance="@style/TextAppearance.BlackTitle1"
android:textSize="@dimen/no_content_text_size" android:text="@string/ntp_title_no_suggestions" />
android:text="@string/no_suggestions" />
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="?feedSecondaryTextColor" android:textAppearance="@style/TextAppearance.BlackHint1"
android:textSize="@dimen/no_content_text_size" android:text="@string/ntp_article_suggestions_section_empty" />
android:text="@string/suggestions_section_empty" />
</LinearLayout> </LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright 2019 The Chromium Authors. All rights reserved. Copyright 2020 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file. found in the LICENSE file.
--> -->
...@@ -21,7 +21,7 @@ found in the LICENSE file. ...@@ -21,7 +21,7 @@ found in the LICENSE file.
<style name="FeedTextButton" parent="FeedButtonCompatBase"> <style name="FeedTextButton" parent="FeedButtonCompatBase">
<item name="android:paddingLeft">8dp</item> <item name="android:paddingLeft">8dp</item>
<item name="android:paddingRight">8dp</item> <item name="android:paddingRight">8dp</item>
<item name="android:textAppearance">@style/FeedBlueButtonText2</item> <item name="android:textAppearance">@style/TextAppearance.BlueButtonText2</item>
<item name="android:background">?feedTextRippleDrawable</item> <item name="android:background">?feedTextRippleDrawable</item>
</style> </style>
...@@ -37,20 +37,6 @@ found in the LICENSE file. ...@@ -37,20 +37,6 @@ found in the LICENSE file.
<item name="android:paddingBottom">@dimen/more_button_padding</item> <item name="android:paddingBottom">@dimen/more_button_padding</item>
</style> </style>
<!-- Used by Content -->
<style name="FeedRobotoMediumStyle">
<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">bold</item>
</style>
<!-- Blue Text Styles -->
<style name="FeedBlueTitle" parent="FeedRobotoMediumStyle">
<item name="android:textColor">?feedBlueTitleColor</item>
<item name="android:textSize">@dimen/text_size_medium</item>
</style>
<style name="FeedBlueButtonText2" parent="FeedBlueTitle" />
<!-- Menu Text Padding Styles --> <!-- Menu Text Padding Styles -->
<style name="FeedMenuTextPaddingStyle"> <style name="FeedMenuTextPaddingStyle">
<item name="android:paddingLeft">?android:attr/listPreferredItemPaddingLeft</item> <item name="android:paddingLeft">?android:attr/listPreferredItemPaddingLeft</item>
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright 2019 The Chromium Authors. All rights reserved. Copyright 2020 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file. found in the LICENSE file.
--> -->
...@@ -15,14 +15,13 @@ found in the LICENSE file. ...@@ -15,14 +15,13 @@ found in the LICENSE file.
<item name="android:paddingBottom">5dp</item> <item name="android:paddingBottom">5dp</item>
<item name="android:focusable">true</item> <item name="android:focusable">true</item>
<item name="android:clickable">true</item> <item name="android:clickable">true</item>
<item name="android:textAllCaps">false</item>
<item name="android:gravity">center_vertical|center_horizontal</item> <item name="android:gravity">center_vertical|center_horizontal</item>
</style> </style>
<style name="FeedTextButton" parent="FeedButtonCompatBase"> <style name="FeedTextButton" parent="FeedButtonCompatBase">
<item name="android:paddingStart">8dp</item> <item name="android:paddingStart">8dp</item>
<item name="android:paddingEnd">8dp</item> <item name="android:paddingEnd">8dp</item>
<item name="android:textAppearance">@style/FeedBlueButtonText2</item> <item name="android:textAppearance">@style/TextAppearance.BlueButtonText2</item>
<item name="android:background">?feedTextRippleDrawable</item> <item name="android:background">?feedTextRippleDrawable</item>
</style> </style>
......
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2020 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file. -->
<resources>
<declare-styleable name="FeedSharedStream">
<!-- Sets which drawable to use for the text ripple pre-v21. -->
<attr name="feedTextRippleDrawable" format="reference" />
<!-- Sets the color of the no content card title text. -->
<attr name="feedPrimaryTextColor" format="reference" />
<!--Sets the color of the no content card subtitle text. -->
<attr name="feedSecondaryTextColor" format="reference" />
<!-- Sets the color of the spinner. -->
<attr name="feedSpinnerColor" format="reference" />
</declare-styleable>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2020 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file. -->
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- TODO(crbug.com/1039415): Remove these feed-specific colors. -->
<!-- Feed text colors -->
<color name="feed_default_text_color">@color/modern_grey_900</color>
<color name="feed_default_text_color_secondary">@color/modern_grey_700</color>
<color name="feed_default_text_color_dark">@android:color/white</color>
<color name="feed_default_text_color_secondary_dark">@color/modern_grey_500</color>
</resources>
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!-- Copyright 2020 The Chromium Authors. All rights reserved.
Copyright 2019 The Chromium Authors. All rights reserved. Use of this source code is governed by a BSD-style license that can be
Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. -->
found in the LICENSE file.
--> <resources xmlns:tools="http://schemas.android.com/tools">
<resources> <!-- TODO(crbug.com/1039415): Remove text size dimensions. -->
<dimen name="text_size_medium">14sp</dimen> <dimen name="text_size_medium">14sp</dimen>
<dimen name="text_size_large">16sp</dimen> <dimen name="text_size_large">16sp</dimen>
<dimen name="button_compat_radius">4dp</dimen> <dimen name="button_compat_radius">4dp</dimen>
<!-- Card dimensions. -->
<!-- Card dimensions -->
<dimen name="feed_suggestion_card_action_min_height">48dp</dimen> <dimen name="feed_suggestion_card_action_min_height">48dp</dimen>
<!-- More button dimensions. -->
<!-- More button dimensions -->
<dimen name="more_button_padding">8dp</dimen> <dimen name="more_button_padding">8dp</dimen>
<dimen name="feed_more_button_container_top_margins">-20dp</dimen> <dimen name="feed_more_button_container_top_margins">-20dp</dimen>
<!-- No content dimensions. -->
<!-- No content dimensions -->
<dimen name="no_content_text_size">16sp</dimen>
<dimen name="no_content_padding">16dp</dimen> <dimen name="no_content_padding">16dp</dimen>
<dimen name="no_content_text_padding">8dp</dimen> <dimen name="no_content_text_padding">8dp</dimen>
<!-- Context Menu -->
<!-- The Material spec specifies that the width of a menu must be a multiple of 56dp. -->
<!-- TODO(crbug.com/1039415): Not feed-specific. Try to unify with the rest of Chrome -->
<dimen name="menu_width_multiple">56dp</dimen>
</resources> </resources>
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2020 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources>
<!-- Id to use for content which encapsulates a single card. -->
<item type="id" name="feed_content_card" />
<!-- Id to use for root RecyclerView used in Stream. -->
<item type="id" name="feed_stream_recycler_view" />
</resources>
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!-- Copyright 2020 The Chromium Authors. All rights reserved.
Copyright 2019 The Chromium Authors. All rights reserved. Use of this source code is governed by a BSD-style license that can be
Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. -->
found in the LICENSE file.
-->
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- TODO(crbug.com/1039415): All of this should be swapped for pre-defined styles.
See ui/android/java/res/values-v17/styles.xml -->
<!-- TODO(crbug.com/1039415): See if this can be simplified.
Android can swap themes for us automatically if we use styles with the
same name in values and values-night.-->
<style name="Light" parent="@style/Theme.AppCompat.Light"> <style name="Light" parent="@style/Theme.AppCompat.Light">
<item name="feedBlueTitleColor">@color/feed_modern_blue_600</item>
<item name="feedMoreButtonRipple">@color/feed_alpha_10_modern_blue_600</item>
<item name="feedTouchNonPressed">@android:color/white</item>
<item name="feedTextRippleDrawable">@drawable/feed_text_ripple_drawable_light</item> <item name="feedTextRippleDrawable">@drawable/feed_text_ripple_drawable_light</item>
<item name="feedContextMenuTextColor">@color/black_alpha_87</item> <!-- TODO(crbug.com/1039415): This is an old text style color (changed for
Modern update back in 2018). Swap for @color/default_text_color.-->
<item name="feedPrimaryTextColor">@color/feed_default_text_color</item> <item name="feedPrimaryTextColor">@color/feed_default_text_color</item>
<item name="feedSecondaryTextColor">@color/feed_default_text_color_secondary</item> <item name="feedSecondaryTextColor">@color/feed_default_text_color_secondary</item>
<item name="feedSpinnerColor">@color/google_blue_500</item> <item name="feedSpinnerColor">@color/modern_blue_600</item>
</style> </style>
<style name="Dark" parent="@style/Theme.AppCompat"> <style name="Dark" parent="@style/Theme.AppCompat">
<item name="feedBlueTitleColor">@color/feed_modern_blue_300</item>
<item name="feedMoreButtonRipple">@color/feed_alpha_10_modern_blue_300</item>
<item name="feedTouchNonPressed">@color/feed_modern_grey_900_white_alpha_4</item>
<item name="feedTextRippleDrawable">@drawable/feed_text_ripple_drawable_dark</item> <item name="feedTextRippleDrawable">@drawable/feed_text_ripple_drawable_dark</item>
<item name="feedContextMenuTextColor">@color/feed_default_text_color_dark</item>
<item name="feedPrimaryTextColor">@color/feed_default_text_color_dark</item> <item name="feedPrimaryTextColor">@color/feed_default_text_color_dark</item>
<item name="feedSecondaryTextColor">@color/feed_default_text_color_secondary_dark</item> <item name="feedSecondaryTextColor">@color/feed_default_text_color_secondary_dark</item>
<item name="feedSpinnerColor">@color/feed_modern_blue_300</item> <item name="feedSpinnerColor">@color/modern_blue_300</item>
</style> </style>
</resources> </resources>
...@@ -80,6 +80,7 @@ import org.chromium.chrome.browser.feed.library.sharedstream.piet.PietStringForm ...@@ -80,6 +80,7 @@ import org.chromium.chrome.browser.feed.library.sharedstream.piet.PietStringForm
import org.chromium.chrome.browser.feed.library.sharedstream.publicapi.menumeasurer.MenuMeasurer; import org.chromium.chrome.browser.feed.library.sharedstream.publicapi.menumeasurer.MenuMeasurer;
import org.chromium.chrome.browser.feed.library.sharedstream.publicapi.scroll.ScrollObservable; import org.chromium.chrome.browser.feed.library.sharedstream.publicapi.scroll.ScrollObservable;
import org.chromium.chrome.browser.feed.library.sharedstream.scroll.ScrollListenerNotifier; import org.chromium.chrome.browser.feed.library.sharedstream.scroll.ScrollListenerNotifier;
import org.chromium.chrome.feed.R;
import org.chromium.components.feed.core.proto.libraries.api.internal.StreamDataProto.UiContext; import org.chromium.components.feed.core.proto.libraries.api.internal.StreamDataProto.UiContext;
import org.chromium.components.feed.core.proto.libraries.basicstream.internal.StreamSavedInstanceStateProto.StreamSavedInstanceState; import org.chromium.components.feed.core.proto.libraries.basicstream.internal.StreamSavedInstanceStateProto.StreamSavedInstanceState;
import org.chromium.components.feed.core.proto.libraries.sharedstream.ScrollStateProto.ScrollState; import org.chromium.components.feed.core.proto.libraries.sharedstream.ScrollStateProto.ScrollState;
......
...@@ -14,6 +14,7 @@ import android.view.View.OnClickListener; ...@@ -14,6 +14,7 @@ import android.view.View.OnClickListener;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.feed.library.api.host.config.Configuration; import org.chromium.chrome.browser.feed.library.api.host.config.Configuration;
import org.chromium.chrome.browser.feed.library.api.host.config.Configuration.ConfigKey; import org.chromium.chrome.browser.feed.library.api.host.config.Configuration.ConfigKey;
import org.chromium.chrome.browser.feed.library.api.host.logging.BasicLoggingApi; import org.chromium.chrome.browser.feed.library.api.host.logging.BasicLoggingApi;
...@@ -31,7 +32,6 @@ import org.chromium.chrome.browser.feed.library.api.internal.modelprovider.Token ...@@ -31,7 +32,6 @@ import org.chromium.chrome.browser.feed.library.api.internal.modelprovider.Token
import org.chromium.chrome.browser.feed.library.api.internal.modelprovider.TokenCompletedObserver; import org.chromium.chrome.browser.feed.library.api.internal.modelprovider.TokenCompletedObserver;
import org.chromium.chrome.browser.feed.library.basicstream.internal.viewholders.ContinuationViewHolder; import org.chromium.chrome.browser.feed.library.basicstream.internal.viewholders.ContinuationViewHolder;
import org.chromium.chrome.browser.feed.library.basicstream.internal.viewholders.FeedViewHolder; import org.chromium.chrome.browser.feed.library.basicstream.internal.viewholders.FeedViewHolder;
import org.chromium.chrome.browser.feed.library.basicstream.internal.viewholders.R;
import org.chromium.chrome.browser.feed.library.basicstream.internal.viewholders.ViewHolderType; import org.chromium.chrome.browser.feed.library.basicstream.internal.viewholders.ViewHolderType;
import org.chromium.chrome.browser.feed.library.common.logging.Logger; import org.chromium.chrome.browser.feed.library.common.logging.Logger;
import org.chromium.chrome.browser.feed.library.common.time.Clock; import org.chromium.chrome.browser.feed.library.common.time.Clock;
...@@ -221,8 +221,8 @@ public class ContinuationDriver extends LeafFeatureDriver ...@@ -221,8 +221,8 @@ public class ContinuationDriver extends LeafFeatureDriver
&& (modelChildren.isEmpty() && (modelChildren.isEmpty()
|| (modelChildren.size() == 1 || (modelChildren.size() == 1
&& modelChildren.get(0).getType() == Type.TOKEN))) { && modelChildren.get(0).getType() == Type.TOKEN))) {
mSnackbarApi.show( mSnackbarApi.show(mContext.getResources().getString(
mContext.getResources().getString(R.string.snackbar_fetch_no_new_suggestions)); R.string.ntp_suggestions_fetch_no_new_suggestions));
} }
mCursorChangedListener.onNewChildren(mModelChild, modelChildren, mModelToken.isSynthetic()); mCursorChangedListener.onNewChildren(mModelChild, modelChildren, mModelToken.isSynthetic());
...@@ -244,7 +244,7 @@ public class ContinuationDriver extends LeafFeatureDriver ...@@ -244,7 +244,7 @@ public class ContinuationDriver extends LeafFeatureDriver
mContinuationViewHolder.setShowSpinner(false); mContinuationViewHolder.setShowSpinner(false);
} }
mSnackbarApi.show(mContext.getString(R.string.snackbar_fetch_failed)); mSnackbarApi.show(mContext.getString(R.string.ntp_suggestions_fetch_failed));
} }
@Override @Override
......
...@@ -11,6 +11,7 @@ import android.support.annotation.VisibleForTesting; ...@@ -11,6 +11,7 @@ import android.support.annotation.VisibleForTesting;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.feed.library.api.client.stream.Stream.ContentChangedListener; import org.chromium.chrome.browser.feed.library.api.client.stream.Stream.ContentChangedListener;
import org.chromium.chrome.browser.feed.library.api.host.action.ActionApi; import org.chromium.chrome.browser.feed.library.api.host.action.ActionApi;
import org.chromium.chrome.browser.feed.library.api.host.config.Configuration; import org.chromium.chrome.browser.feed.library.api.host.config.Configuration;
...@@ -602,9 +603,8 @@ public class StreamDriver ...@@ -602,9 +603,8 @@ public class StreamDriver
removeDriver(modelChild); removeDriver(modelChild);
addNoContentCardOrZeroStateIfNecessary(ZeroStateShowReason.CONTENT_DISMISSED); addNoContentCardOrZeroStateIfNecessary(ZeroStateShowReason.CONTENT_DISMISSED);
mSnackbarApi.show(undoAction.getConfirmationLabel(), mSnackbarApi.show(undoAction.getConfirmationLabel(),
undoAction.hasUndoLabel() undoAction.hasUndoLabel() ? undoAction.getUndoLabel()
? undoAction.getUndoLabel() : mContext.getResources().getString(R.string.undo),
: mContext.getResources().getString(R.string.snackbar_default_action),
new SnackbarCallbackApi() { new SnackbarCallbackApi() {
@Override @Override
public void onDismissNoAction() { public void onDismissNoAction() {
......
...@@ -21,6 +21,7 @@ import org.chromium.chrome.browser.feed.library.api.host.stream.CardConfiguratio ...@@ -21,6 +21,7 @@ import org.chromium.chrome.browser.feed.library.api.host.stream.CardConfiguratio
import org.chromium.chrome.browser.feed.library.common.ui.LayoutUtils; import org.chromium.chrome.browser.feed.library.common.ui.LayoutUtils;
import org.chromium.chrome.browser.feed.library.sharedstream.logging.LoggingListener; import org.chromium.chrome.browser.feed.library.sharedstream.logging.LoggingListener;
import org.chromium.chrome.browser.feed.library.sharedstream.logging.VisibilityMonitor; import org.chromium.chrome.browser.feed.library.sharedstream.logging.VisibilityMonitor;
import org.chromium.chrome.feed.R;
/** {@link android.support.v7.widget.RecyclerView.ViewHolder} for the more button. */ /** {@link android.support.v7.widget.RecyclerView.ViewHolder} for the more button. */
public class ContinuationViewHolder extends FeedViewHolder { public class ContinuationViewHolder extends FeedViewHolder {
......
...@@ -14,6 +14,7 @@ import android.widget.FrameLayout; ...@@ -14,6 +14,7 @@ import android.widget.FrameLayout;
import org.chromium.chrome.browser.feed.library.api.host.stream.CardConfiguration; import org.chromium.chrome.browser.feed.library.api.host.stream.CardConfiguration;
import org.chromium.chrome.browser.feed.library.common.ui.LayoutUtils; import org.chromium.chrome.browser.feed.library.common.ui.LayoutUtils;
import org.chromium.chrome.feed.R;
/** {@link android.support.v7.widget.RecyclerView.ViewHolder} for no content card. */ /** {@link android.support.v7.widget.RecyclerView.ViewHolder} for no content card. */
public class NoContentViewHolder extends FeedViewHolder { public class NoContentViewHolder extends FeedViewHolder {
......
...@@ -33,6 +33,7 @@ import org.chromium.chrome.browser.feed.library.sharedstream.piet.PietEventLogge ...@@ -33,6 +33,7 @@ import org.chromium.chrome.browser.feed.library.sharedstream.piet.PietEventLogge
import org.chromium.chrome.browser.feed.library.sharedstream.publicapi.scroll.ScrollObservable; import org.chromium.chrome.browser.feed.library.sharedstream.publicapi.scroll.ScrollObservable;
import org.chromium.chrome.browser.feed.library.sharedstream.scroll.PietScrollObserver; import org.chromium.chrome.browser.feed.library.sharedstream.scroll.PietScrollObserver;
import org.chromium.chrome.browser.feed.library.sharedstream.scroll.ScrollListenerNotifier; import org.chromium.chrome.browser.feed.library.sharedstream.scroll.ScrollListenerNotifier;
import org.chromium.chrome.feed.R;
import org.chromium.components.feed.core.proto.ui.action.FeedActionPayloadProto.FeedActionPayload; import org.chromium.components.feed.core.proto.ui.action.FeedActionPayloadProto.FeedActionPayload;
import org.chromium.components.feed.core.proto.ui.piet.PietProto.Frame; import org.chromium.components.feed.core.proto.ui.piet.PietProto.Frame;
import org.chromium.components.feed.core.proto.ui.piet.PietProto.PietSharedState; import org.chromium.components.feed.core.proto.ui.piet.PietProto.PietSharedState;
......
...@@ -15,6 +15,7 @@ import android.widget.FrameLayout.LayoutParams; ...@@ -15,6 +15,7 @@ import android.widget.FrameLayout.LayoutParams;
import org.chromium.chrome.browser.feed.library.api.host.stream.CardConfiguration; import org.chromium.chrome.browser.feed.library.api.host.stream.CardConfiguration;
import org.chromium.chrome.browser.feed.library.common.ui.LayoutUtils; import org.chromium.chrome.browser.feed.library.common.ui.LayoutUtils;
import org.chromium.chrome.feed.R;
/** {@link android.support.v7.widget.RecyclerView.ViewHolder} for zero state. */ /** {@link android.support.v7.widget.RecyclerView.ViewHolder} for zero state. */
public class ZeroStateViewHolder extends FeedViewHolder { public class ZeroStateViewHolder extends FeedViewHolder {
......
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources>
<!-- Id to use for content which encapsulates a single card. -->
<item name="feed_content_card" type="id" />
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources>
<!-- Id to use for root RecyclerView used in Stream. -->
<item name="feed_stream_recycler_view" type="id" />
</resources>
# Feed proguard flags should only target and affect Feed classes. Any app-wide
# specific flags should be added to each host's proguard specs and overall
# should be avoided.
-assumenosideeffects class org.chromium.chrome.browser.feed.library.common.logging.Logger {
public static boolean isDebugEnabled(java.lang.String) return false;
public static boolean isVerboseEnabled(java.lang.String) return false;
private static boolean shouldWtfCrash() return false;
public static void v(...);
public static void vWithStackTrace(...);
public static void d(...);
public static void dWithStackTrace(...);
# Protocol buffers are large. Only allow spamming a developer's device.
public static void debugLogRawProto(...);
}
...@@ -25,6 +25,7 @@ import org.chromium.chrome.browser.feed.library.common.logging.Logger; ...@@ -25,6 +25,7 @@ import org.chromium.chrome.browser.feed.library.common.logging.Logger;
import org.chromium.chrome.browser.feed.library.common.ui.LayoutUtils; import org.chromium.chrome.browser.feed.library.common.ui.LayoutUtils;
import org.chromium.chrome.browser.feed.library.sharedstream.publicapi.menumeasurer.MenuMeasurer; import org.chromium.chrome.browser.feed.library.sharedstream.publicapi.menumeasurer.MenuMeasurer;
import org.chromium.chrome.browser.feed.library.sharedstream.publicapi.menumeasurer.Size; import org.chromium.chrome.browser.feed.library.sharedstream.publicapi.menumeasurer.Size;
import org.chromium.chrome.feed.R;
import java.util.List; import java.util.List;
......
...@@ -16,6 +16,8 @@ import android.widget.ListView; ...@@ -16,6 +16,8 @@ import android.widget.ListView;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import org.chromium.chrome.feed.R;
import java.util.List; import java.util.List;
/** /**
......
...@@ -14,6 +14,8 @@ import android.widget.ListAdapter; ...@@ -14,6 +14,8 @@ import android.widget.ListAdapter;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import org.chromium.chrome.feed.R;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
......
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<!-- Dimension resources. -->
<resources>
<!-- The Material spec specifies that the width of a menu must be a multiple of 56dp -->
<dimen name="menu_width_multiple">56dp</dimen>
</resources>
...@@ -14,6 +14,8 @@ import android.view.View; ...@@ -14,6 +14,8 @@ import android.view.View;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import org.chromium.chrome.feed.R;
/** View compatible with KitKat that shows a Material themed spinner. */ /** View compatible with KitKat that shows a Material themed spinner. */
public class MaterialSpinnerView extends AppCompatImageView { public class MaterialSpinnerView extends AppCompatImageView {
private final CircularProgressDrawable mSpinner; private final CircularProgressDrawable mSpinner;
......
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">ተጨማሪ</string>
<string name="no_suggestions">ለአሁን ያለው ይኸው ነው</string>
<string name="zero_state_text_morning">ተጨማሪ ጽሑፎች በቅርቡ ይታያሉ። የእርስዎን ጥዋት ይዝናኑበት!</string>
<string name="zero_state_text_afternoon">ተጨማሪ ጽሑፎች በቅርቡ ይታያሉ። የእርስዎን ከሰዓት በኋላ ጊዜ ይዝናኑበት!</string>
<string name="zero_state_text_evening">ተጨማሪ ጽሑፎች በቅርቡ ይታያሉ። የእርስዎን ምሽት ይዝናኑበት!</string>
<string name="feed_refresh">አድስ</string>
<string name="snackbar_fetch_failed">የአስተያየት ጥቆማዎችን ማግኘት አልተቻለም</string>
<string name="snackbar_fetch_no_new_suggestions">ምንም አዲስ የአስተያየት ጥቆማዎች የሉም</string>
<string name="suggestions_section_empty">የእርስዎ የተጠቆሙ ዘገባዎች እዚህ ይመጣሉ</string>
<string name="snackbar_default_action">ቀልብስ</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">المزيد</string>
<string name="no_suggestions">هذا كل شيء الآن</string>
<string name="zero_state_text_morning">ستظهر المزيد من المقالات قريبًا. استمتع بصباحك!</string>
<string name="zero_state_text_afternoon">ستظهر المزيد من المقالات قريبًا. استمتع بقضاء وقت الظهيرة!</string>
<string name="zero_state_text_evening">ستظهر المزيد من المقالات قريبًا. استمتع بليلتك!</string>
<string name="feed_refresh">إعادة التحميل</string>
<string name="snackbar_fetch_failed">يتعذر الحصول على الاقتراحات</string>
<string name="snackbar_fetch_no_new_suggestions">ما من اقتراحات جديدة</string>
<string name="suggestions_section_empty">تظهر مقالاتك المقترحة هنا</string>
<string name="snackbar_default_action">تراجع</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Още</string>
<string name="no_suggestions">Това е всичко засега</string>
<string name="zero_state_text_morning">Скоро ще се покажат още статии. Приятна сутрин!</string>
<string name="zero_state_text_afternoon">Скоро ще се покажат още статии. Приятен следобед!</string>
<string name="zero_state_text_evening">Скоро ще се покажат още статии. Приятна вечер!</string>
<string name="feed_refresh">Опресняване</string>
<string name="snackbar_fetch_failed">Предложенията не могат да бъдат показани</string>
<string name="snackbar_fetch_no_new_suggestions">Няма нови предложения</string>
<string name="suggestions_section_empty">Предложените ви статии ще се показват тук</string>
<string name="snackbar_default_action">Отмяна</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Més</string>
<string name="no_suggestions">De moment, això és tot</string>
<string name="zero_state_text_morning">Aviat es mostraran més articles. Que tinguis un bon matí.</string>
<string name="zero_state_text_afternoon">Aviat es mostraran més articles. Que tinguis una bona tarda.</string>
<string name="zero_state_text_evening">Aviat es mostraran més articles. Que tinguis un bon vespre.</string>
<string name="feed_refresh">Actualitza</string>
<string name="snackbar_fetch_failed">No es poden obtenir suggeriments</string>
<string name="snackbar_fetch_no_new_suggestions">No hi ha cap suggeriment nou</string>
<string name="suggestions_section_empty">Els articles suggerits es mostren aquí</string>
<string name="snackbar_default_action">Desfés</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Více</string>
<string name="no_suggestions">To je prozatím vše</string>
<string name="zero_state_text_morning">Brzy se zobrazí další články. Užijte si ráno.</string>
<string name="zero_state_text_afternoon">Brzy se zobrazí další články. Užijte si odpoledne.</string>
<string name="zero_state_text_evening">Brzy se zobrazí další články. Užijte si večer.</string>
<string name="feed_refresh">Obnovit</string>
<string name="snackbar_fetch_failed">Návrhy nelze načíst</string>
<string name="snackbar_fetch_no_new_suggestions">Žádné nové návrhy</string>
<string name="suggestions_section_empty">Zde se zobrazí navrhované články</string>
<string name="snackbar_default_action">Vrátit zpět</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Mere</string>
<string name="no_suggestions">Det var det hele indtil videre</string>
<string name="zero_state_text_morning">Der vises snart flere artikler. Hav en god formiddag!</string>
<string name="zero_state_text_afternoon">Der vises snart flere artikler. Hav en god eftermiddag!</string>
<string name="zero_state_text_evening">Der vises snart flere artikler. Hav en god aften!</string>
<string name="feed_refresh">Opdater</string>
<string name="snackbar_fetch_failed">Forslagene kan ikke hentes</string>
<string name="snackbar_fetch_no_new_suggestions">Der er ingen nye forslag</string>
<string name="suggestions_section_empty">Forslag til artikler til dig vises her</string>
<string name="snackbar_default_action">Fortryd</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Mehr</string>
<string name="no_suggestions">Das ist im Moment alles</string>
<string name="zero_state_text_morning">Weitere Artikel werden in Kürze erscheinen. Schönen Tag noch!</string>
<string name="zero_state_text_afternoon">Weitere Artikel werden in Kürze erscheinen. Schönen Tag noch!</string>
<string name="zero_state_text_evening">Weitere Artikel werden in Kürze erscheinen. Schönen Abend!</string>
<string name="feed_refresh">Aktualisieren</string>
<string name="snackbar_fetch_failed">Vorschläge können nicht abgerufen werden</string>
<string name="snackbar_fetch_no_new_suggestions">Keine neuen Vorschläge</string>
<string name="suggestions_section_empty">Hier werden Ihre vorgeschlagenen Artikel angezeigt</string>
<string name="snackbar_default_action">Rückgängig</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Περισσότερα</string>
<string name="no_suggestions">Αυτά προς το παρόν</string>
<string name="zero_state_text_morning">Σύντομα θα εμφανιστούν περισσότερα άρθρα. Να έχετε ένα όμορφο πρωινό!</string>
<string name="zero_state_text_afternoon">Σύντομα θα εμφανιστούν περισσότερα άρθρα. Να έχετε ένα όμορφο απόγευμα!</string>
<string name="zero_state_text_evening">Σύντομα θα εμφανιστούν περισσότερα άρθρα. Να έχετε ένα όμορφο βράδυ!</string>
<string name="feed_refresh">Ανανέωση</string>
<string name="snackbar_fetch_failed">Δεν είναι δυνατή η λήψη προτάσεων</string>
<string name="snackbar_fetch_no_new_suggestions">Δεν υπάρχουν νέες προτάσεις</string>
<string name="suggestions_section_empty">Τα προτεινόμενα άρθρα σας εμφανίζονται εδώ</string>
<string name="snackbar_default_action">Αναίρεση</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">More</string>
<string name="no_suggestions">That’s all for now</string>
<string name="zero_state_text_morning">More articles will appear soon. Enjoy your morning!</string>
<string name="zero_state_text_afternoon">More articles will appear soon. Enjoy your afternoon!</string>
<string name="zero_state_text_evening">More articles will appear soon. Enjoy your evening!</string>
<string name="feed_refresh">Refresh</string>
<string name="snackbar_fetch_failed">Can’t get suggestions</string>
<string name="snackbar_fetch_no_new_suggestions">No new suggestions</string>
<string name="suggestions_section_empty">Your suggested articles appear here</string>
<string name="snackbar_default_action">Undo</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Más</string>
<string name="no_suggestions">Eso es todo por ahora</string>
<string name="zero_state_text_morning">Pronto se mostrarán más artículos. Disfruta tu mañana.</string>
<string name="zero_state_text_afternoon">Pronto se mostrarán más artículos. Disfruta tu tarde.</string>
<string name="zero_state_text_evening">Pronto se mostrarán más artículos. Disfruta tu tarde.</string>
<string name="feed_refresh">Actualizar</string>
<string name="snackbar_fetch_failed">No se pueden obtener sugerencias</string>
<string name="snackbar_fetch_no_new_suggestions">No hay sugerencias nuevas</string>
<string name="suggestions_section_empty">Tus artículos sugeridos aparecen aquí</string>
<string name="snackbar_default_action">Deshacer</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Más</string>
<string name="no_suggestions">Eso es todo por ahora</string>
<string name="zero_state_text_morning">Próximamente se mostrarán más artículos. Disfruta de la mañana.</string>
<string name="zero_state_text_afternoon">Próximamente se mostrarán más artículos. Disfruta de la tarde.</string>
<string name="zero_state_text_evening">Próximamente se mostrarán más artículos. Disfruta de la noche.</string>
<string name="feed_refresh">Actualizar</string>
<string name="snackbar_fetch_failed">No se pueden obtener sugerencias</string>
<string name="snackbar_fetch_no_new_suggestions">No hay sugerencias nuevas</string>
<string name="suggestions_section_empty">Los artículos sugeridos aparecen aquí</string>
<string name="snackbar_default_action">Deshacer</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">بیشتر</string>
<string name="no_suggestions">درحال‌حاضر مورد دیگری وجود ندارد</string>
<string name="zero_state_text_morning">به‌زودی مقاله‌های بیشتری نشان داده می‌شود. صبح خوبی داشته باشید!</string>
<string name="zero_state_text_afternoon">به‌زودی مقاله‌های بیشتری نشان داده می‌شود. بعدازظهر خوبی داشته باشید!</string>
<string name="zero_state_text_evening">به‌زودی مقاله‌های بیشتری نشان داده می‌شود. شب خوبی داشته باشید!</string>
<string name="feed_refresh">بازخوانی</string>
<string name="snackbar_fetch_failed">دریافت پیشنهادها امکان‌پذیر نیست</string>
<string name="snackbar_fetch_no_new_suggestions">پیشنهاد جدیدی وجود ندارد</string>
<string name="suggestions_section_empty">مقاله‌های پیشنهادی برای شما اینجا نشان داده می‌شود</string>
<string name="snackbar_default_action">واگرد</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Lisää</string>
<string name="no_suggestions">Siinä kaikki toistaiseksi</string>
<string name="zero_state_text_morning">Muita artikkeleita ilmestyy pian. Nauti aamustasi!</string>
<string name="zero_state_text_afternoon">Muita artikkeleita ilmestyy pian. Nauti iltapäivästäsi!</string>
<string name="zero_state_text_evening">Muita artikkeleita ilmestyy pian. Nauti illastasi!</string>
<string name="feed_refresh">Päivitä</string>
<string name="snackbar_fetch_failed">Ehdotusten haku epäonnistui</string>
<string name="snackbar_fetch_no_new_suggestions">Ei uusia ehdotuksia</string>
<string name="suggestions_section_empty">Suositellut artikkelit näkyvät tässä.</string>
<string name="snackbar_default_action">Kumoa</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Higit pa</string>
<string name="no_suggestions">\'Yan na muna sa ngayon</string>
<string name="zero_state_text_morning">Marami pang artikulo ang malapit nang lumabas. I-enjoy ang iyong umaga!</string>
<string name="zero_state_text_afternoon">Marami pang artikulo ang malapit nang lumabas. I-enjoy ang iyong hapon!</string>
<string name="zero_state_text_evening">Marami pang artikulo ang malapit nang lumabas. I-enjoy ang iyong gabi!</string>
<string name="feed_refresh">I-refresh</string>
<string name="snackbar_fetch_failed">Hindi makakuha ng mga suhestyon</string>
<string name="snackbar_fetch_no_new_suggestions">Walang bagong suhestyon</string>
<string name="suggestions_section_empty">Lalabas dito ang mga iminungkahi mong artikulo</string>
<string name="snackbar_default_action">I-undo</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Plus</string>
<string name="no_suggestions">C\'est tout !</string>
<string name="zero_state_text_morning">D\'autres articles vous seront bientôt proposés. Bonne matinée !</string>
<string name="zero_state_text_afternoon">D\'autres articles vous seront bientôt proposés. Bon après-midi !</string>
<string name="zero_state_text_evening">D\'autres articles vous seront bientôt proposés. Bonne soirée !</string>
<string name="feed_refresh">Actualiser</string>
<string name="snackbar_fetch_failed">Impossible d\'obtenir des suggestions</string>
<string name="snackbar_fetch_no_new_suggestions">Aucune nouvelle suggestion</string>
<string name="suggestions_section_empty">Vos suggestions d\'articles s\'affichent ici</string>
<string name="snackbar_default_action">Annuler</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">और ज़्यादा</string>
<string name="no_suggestions">फिलहाल बस इतना ही</string>
<string name="zero_state_text_morning">जल्द ही और लेख दिखाई देंगे. अपनी सुबह का आनंद लें!</string>
<string name="zero_state_text_afternoon">जल्द ही और लेख दिखाई देंगे. अपनी दोपहर का आनंद लें!</string>
<string name="zero_state_text_evening">जल्द ही और लेख दिखाई देंगे. अपनी शाम का आनंद लें!</string>
<string name="feed_refresh">रीफ़्रेश करें</string>
<string name="snackbar_fetch_failed">सुझाव नहीं मिल पा रहे हैं</string>
<string name="snackbar_fetch_no_new_suggestions">कोई नया सुझाव नहीं है</string>
<string name="suggestions_section_empty">आपके सुझाए हुए लेख यहां दिखाई देते हैं</string>
<string name="snackbar_default_action">पहले जैसा करें</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Više</string>
<string name="no_suggestions">To je zasad sve</string>
<string name="zero_state_text_morning">Uskoro će se prikazati više članaka. Želimo vam ugodno prijepodne!</string>
<string name="zero_state_text_afternoon">Uskoro će se prikazati više članaka. Želimo vam ugodno poslijepodne!</string>
<string name="zero_state_text_evening">Uskoro će se prikazati više članaka. Želimo vam ugodnu večer!</string>
<string name="feed_refresh">Osvježi</string>
<string name="snackbar_fetch_failed">Prijedlozi se ne mogu dohvatiti</string>
<string name="snackbar_fetch_no_new_suggestions">Nema novih prijedloga</string>
<string name="suggestions_section_empty">Ovdje će se prikazivati predloženi članci</string>
<string name="snackbar_default_action">Poništi</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Továbbiak</string>
<string name="no_suggestions">Egyelőre ennyi</string>
<string name="zero_state_text_morning">Hamarosan további cikkek jelennek meg. Kellemes délelőttöt kívánunk!</string>
<string name="zero_state_text_afternoon">Hamarosan további cikkek jelennek meg. Kellemes délutánt kívánunk!</string>
<string name="zero_state_text_evening">Hamarosan további cikkek jelennek meg. Kellemes estét kívánunk!</string>
<string name="feed_refresh">Frissítés</string>
<string name="snackbar_fetch_failed">Nem sikerült lekérni a javaslatokat</string>
<string name="snackbar_fetch_no_new_suggestions">Nincsenek új javaslatok</string>
<string name="suggestions_section_empty">A javasolt cikkek helye</string>
<string name="snackbar_default_action">Mégse</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Lainnya</string>
<string name="no_suggestions">Itu saja untuk sekarang</string>
<string name="zero_state_text_morning">Artikel lainnya akan segera muncul. Selamat beraktivitas pagi!</string>
<string name="zero_state_text_afternoon">Artikel lainnya akan segera muncul. Selamat beraktivitas siang!</string>
<string name="zero_state_text_evening">Artikel lainnya akan segera muncul. Nikmati malam Anda!</string>
<string name="feed_refresh">Perbarui</string>
<string name="snackbar_fetch_failed">Tidak bisa mendapatkan saran</string>
<string name="snackbar_fetch_no_new_suggestions">Tidak ada saran baru</string>
<string name="suggestions_section_empty">Artikel yang disarankan ditampilkan di sini</string>
<string name="snackbar_default_action">Urungkan</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Altro</string>
<string name="no_suggestions">Per il momento è tutto</string>
<string name="zero_state_text_morning">A breve verranno visualizzati altri articoli. Buona giornata.</string>
<string name="zero_state_text_afternoon">A breve verranno visualizzati altri articoli. Buon pomeriggio.</string>
<string name="zero_state_text_evening">A breve verranno visualizzati altri articoli. Buona serata.</string>
<string name="feed_refresh">Aggiorna</string>
<string name="snackbar_fetch_failed">Impossibile ricevere suggerimenti</string>
<string name="snackbar_fetch_no_new_suggestions">Nessun nuovo suggerimento</string>
<string name="suggestions_section_empty">Gli articoli suggeriti vengono visualizzati qui</string>
<string name="snackbar_default_action">Annulla</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">עוד</string>
<string name="no_suggestions">זה הכול בינתיים</string>
<string name="zero_state_text_morning">בקרוב יופיעו מאמרים נוספים. שיהיה לך בוקר נפלא!</string>
<string name="zero_state_text_afternoon">בקרוב יופיעו מאמרים נוספים. שיהיה לך המשך יום נפלא!</string>
<string name="zero_state_text_evening">בקרוב יופיעו מאמרים נוספים. שיהיה לך ערב נפלא!</string>
<string name="feed_refresh">רענון</string>
<string name="snackbar_fetch_failed">לא ניתן לקבל הצעות</string>
<string name="snackbar_fetch_no_new_suggestions">אין הצעות חדשות</string>
<string name="suggestions_section_empty">הצעות של מאמרים עבורך מופיעות כאן</string>
<string name="snackbar_default_action">ביטול</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">もっと見る</string>
<string name="no_suggestions">現在、コンテンツはありません</string>
<string name="zero_state_text_morning">記事は随時更新されます。また後でご覧ください。</string>
<string name="zero_state_text_afternoon">記事は随時更新されます。また後でご覧ください。</string>
<string name="zero_state_text_evening">記事は随時更新されます。また後でご覧ください。</string>
<string name="feed_refresh">更新</string>
<string name="snackbar_fetch_failed">おすすめの記事を取得できません</string>
<string name="snackbar_fetch_no_new_suggestions">新しいおすすめ記事はありません</string>
<string name="suggestions_section_empty">おすすめの記事がここに表示されます</string>
<string name="snackbar_default_action">元に戻す</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">더보기</string>
<string name="no_suggestions">새 콘텐츠 없음</string>
<string name="zero_state_text_morning">더 많은 콘텐츠가 표시될 예정이니 기대해 주세요. 즐거운 아침 시간 보내세요.</string>
<string name="zero_state_text_afternoon">더 많은 콘텐츠가 표시될 예정이니 기대해주세요. 즐거운 오후 보내세요.</string>
<string name="zero_state_text_evening">더 많은 콘텐츠가 표시될 예정이니 기대해주세요. 즐거운 저녁 시간 보내세요.</string>
<string name="feed_refresh">새로고침</string>
<string name="snackbar_fetch_failed">추천을 받을 수 없음</string>
<string name="snackbar_fetch_no_new_suggestions">새로운 추천 콘텐츠 없음</string>
<string name="suggestions_section_empty">추천 콘텐츠가 여기에 표시됩니다.</string>
<string name="snackbar_default_action">실행취소</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Daugiau</string>
<string name="no_suggestions">Kol kas tiek</string>
<string name="zero_state_text_morning">Netrukus bus rodoma daugiau straipsnių. Gero ryto!</string>
<string name="zero_state_text_afternoon">Netrukus bus rodoma daugiau straipsnių. Geros popietės!</string>
<string name="zero_state_text_evening">Netrukus bus rodoma daugiau straipsnių. Gero vakaro!</string>
<string name="feed_refresh">Atnaujinti</string>
<string name="snackbar_fetch_failed">Nepavyksta gauti pasiūlymų</string>
<string name="snackbar_fetch_no_new_suggestions">Nėra jokių naujų pasiūlymų</string>
<string name="suggestions_section_empty">Jūsų pasiūlyti straipsniai rodomi čia</string>
<string name="snackbar_default_action">Anuliuoti</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Vairāk</string>
<string name="no_suggestions">Pagaidām tas arī viss!</string>
<string name="zero_state_text_morning">Drīzumā būs pieejami citi raksti. Jauku rītu!</string>
<string name="zero_state_text_afternoon">Drīzumā būs pieejami citi raksti. Jauku pēcpusdienu!</string>
<string name="zero_state_text_evening">Drīzumā būs pieejami citi raksti. Jauku vakaru!</string>
<string name="feed_refresh">Atsvaidzināt</string>
<string name="snackbar_fetch_failed">Nevar iegūt ieteikumus.</string>
<string name="snackbar_fetch_no_new_suggestions">Nav jaunu ieteikumu</string>
<string name="suggestions_section_empty">Ieteiktie raksti tiek parādīti šeit</string>
<string name="snackbar_default_action">Atsaukt</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Mer</string>
<string name="no_suggestions">Det var alt for denne gangen</string>
<string name="zero_state_text_morning">Flere artikler kommer snart. Ha en fin dag.</string>
<string name="zero_state_text_afternoon">Flere artikler kommer snart. Ha en fin ettermiddag.</string>
<string name="zero_state_text_evening">Flere artikler kommer snart. Ha en fin kveld.</string>
<string name="feed_refresh">Last inn på nytt</string>
<string name="snackbar_fetch_failed">Kan ikke hente forslag</string>
<string name="snackbar_fetch_no_new_suggestions">Ingen nye forslag</string>
<string name="suggestions_section_empty">De foreslåtte artiklene dine vises her</string>
<string name="snackbar_default_action">Angre</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Meer</string>
<string name="no_suggestions">Dat is voorlopig alles</string>
<string name="zero_state_text_morning">Er worden binnenkort meer artikelen weergegeven. Geniet van je ochtend.</string>
<string name="zero_state_text_afternoon">Er worden binnenkort meer artikelen weergegeven. Geniet van je middag.</string>
<string name="zero_state_text_evening">Er worden binnenkort meer artikelen weergegeven. Geniet van je avond.</string>
<string name="feed_refresh">Vernieuwen</string>
<string name="snackbar_fetch_failed">Kan suggesties niet ophalen</string>
<string name="snackbar_fetch_no_new_suggestions">Geen nieuwe suggesties</string>
<string name="suggestions_section_empty">Je voorgestelde artikelen worden hier weergegeven</string>
<string name="snackbar_default_action">Ongedaan maken</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Więcej</string>
<string name="no_suggestions">Na razie to wszystko</string>
<string name="zero_state_text_morning">Wkrótce pojawi się więcej artykułów. Życzymy miłego poranka!</string>
<string name="zero_state_text_afternoon">Wkrótce pojawi się więcej artykułów. Życzymy miłego popołudnia!</string>
<string name="zero_state_text_evening">Wkrótce pojawi się więcej artykułów. Życzymy miłego wieczoru!</string>
<string name="feed_refresh">Odśwież</string>
<string name="snackbar_fetch_failed">Nie można uzyskać sugestii</string>
<string name="snackbar_fetch_no_new_suggestions">Brak nowych sugestii</string>
<string name="suggestions_section_empty">Tutaj wyświetlą się sugerowane artykuły</string>
<string name="snackbar_default_action">Cofnij</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Mais</string>
<string name="no_suggestions">Isso é tudo por enquanto</string>
<string name="zero_state_text_morning">Mais artigos serão exibidos em breve. Aproveite a manhã.</string>
<string name="zero_state_text_afternoon">Mais artigos serão exibidos em breve. Aproveite a tarde.</string>
<string name="zero_state_text_evening">Mais artigos serão exibidos em breve. Aproveite o fim do dia.</string>
<string name="feed_refresh">Atualizar</string>
<string name="snackbar_fetch_failed">Não é possível exibir as sugestões</string>
<string name="snackbar_fetch_no_new_suggestions">Nenhuma nova sugestão</string>
<string name="suggestions_section_empty">Os artigos sugeridos aparecerão aqui</string>
<string name="snackbar_default_action">Desfazer</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Mais</string>
<string name="no_suggestions">É tudo por agora</string>
<string name="zero_state_text_morning">Serão apresentados mais artigos em breve. Desfrute da sua manhã!</string>
<string name="zero_state_text_afternoon">Serão apresentados mais artigos em breve. Desfrute da sua tarde!</string>
<string name="zero_state_text_evening">Serão apresentados mais artigos em breve. Desfrute do seu serão!</string>
<string name="feed_refresh">Atualizar</string>
<string name="snackbar_fetch_failed">Não é possível obter sugestões</string>
<string name="snackbar_fetch_no_new_suggestions">Não existem novas sugestões.</string>
<string name="suggestions_section_empty">Os seus artigos sugeridos são apresentados aqui.</string>
<string name="snackbar_default_action">Anular</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Mai multe</string>
<string name="no_suggestions">Asta este tot</string>
<string name="zero_state_text_morning">În curând vor apărea mai multe articole. O dimineață plăcută!</string>
<string name="zero_state_text_afternoon">În curând vor apărea mai multe articole. O după-amiază plăcută!</string>
<string name="zero_state_text_evening">În curând vor apărea mai multe articole. O seară plăcută!</string>
<string name="feed_refresh">Actualizați</string>
<string name="snackbar_fetch_failed">Nu se pot obține sugestii</string>
<string name="snackbar_fetch_no_new_suggestions">Nicio sugestie nouă</string>
<string name="suggestions_section_empty">Articolele sugerate apar aici</string>
<string name="snackbar_default_action">Anulați</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Ещё</string>
<string name="no_suggestions">Пока это всё</string>
<string name="zero_state_text_morning">Скоро появятся другие статьи. Хорошего утра!</string>
<string name="zero_state_text_afternoon">Скоро появятся другие статьи. Хорошего дня!</string>
<string name="zero_state_text_evening">Скоро появятся другие статьи. Хорошего вечера!</string>
<string name="feed_refresh">Обновить</string>
<string name="snackbar_fetch_failed">Не удалось загрузить рекомендации</string>
<string name="snackbar_fetch_no_new_suggestions">Новых рекомендаций нет</string>
<string name="suggestions_section_empty">Здесь появятся рекомендуемые статьи.</string>
<string name="snackbar_default_action">Отменить</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Viac</string>
<string name="no_suggestions">To je zatiaľ všetko</string>
<string name="zero_state_text_morning">Čoskoro sa zobrazia ďalšie články. Dobré ráno!</string>
<string name="zero_state_text_afternoon">Čoskoro sa zobrazia ďalšie články. Príjemné popoludnie!</string>
<string name="zero_state_text_evening">Čoskoro sa zobrazia ďalšie články. Príjemný večer!</string>
<string name="feed_refresh">Obnoviť</string>
<string name="snackbar_fetch_failed">Návrhy sa nedajú získať</string>
<string name="snackbar_fetch_no_new_suggestions">Žiadne nové návrhy</string>
<string name="suggestions_section_empty">Tu sa zobrazia vaše navrhované články</string>
<string name="snackbar_default_action">Späť</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Več</string>
<string name="no_suggestions">To je vse za zdaj</string>
<string name="zero_state_text_morning">Kmalu bo prikazanih več člankov. Prijetno jutro.</string>
<string name="zero_state_text_afternoon">Kmalu bo prikazanih več člankov. Prijetno popoldne.</string>
<string name="zero_state_text_evening">Kmalu bo prikazanih več člankov. Prijeten večer.</string>
<string name="feed_refresh">Osveži</string>
<string name="snackbar_fetch_failed">Prejemanje predlogov ni mogoče</string>
<string name="snackbar_fetch_no_new_suggestions">Ni novih predlogov</string>
<string name="suggestions_section_empty">Tu so prikazani predlagani članki</string>
<string name="snackbar_default_action">Razveljavi</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Још</string>
<string name="no_suggestions">То је све за сада</string>
<string name="zero_state_text_morning">Још чланака ће се појавити ускоро. Желимо вам пријатно јутро!</string>
<string name="zero_state_text_afternoon">Још чланака ће се појавити ускоро. Желимо вам пријатно поподне!</string>
<string name="zero_state_text_evening">Још чланака ће се појавити ускоро. Желимо вам пријатно вече!</string>
<string name="feed_refresh">Освежи</string>
<string name="snackbar_fetch_failed">Не можете да добијете предлоге</string>
<string name="snackbar_fetch_no_new_suggestions">Нема нових предлога</string>
<string name="suggestions_section_empty">Предложени чланци се приказују овде</string>
<string name="snackbar_default_action">Опозови</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Mer</string>
<string name="no_suggestions">Det var allt för den här gången</string>
<string name="zero_state_text_morning">Fler artiklar visas snart. Ha en bra förmiddag!</string>
<string name="zero_state_text_afternoon">Fler artiklar visas snart. Ha en bra eftermiddag!</string>
<string name="zero_state_text_evening">Fler artiklar visas snart. Trevlig kväll!</string>
<string name="feed_refresh">Uppdatera</string>
<string name="snackbar_fetch_failed">Det går inte att få förslag</string>
<string name="snackbar_fetch_no_new_suggestions">Inga nya förslag</string>
<string name="suggestions_section_empty">Rekommenderade artiklar visas här</string>
<string name="snackbar_default_action">Ångra</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Zaidi</string>
<string name="no_suggestions">Hakuna maudhui mengine kwa sasa</string>
<string name="zero_state_text_morning">Makala zaidi yataonekana hivi karibuni. Asubuhi njema!</string>
<string name="zero_state_text_afternoon">Makala zaidi yataonekena hivi karibuni. Alasiri njema!</string>
<string name="zero_state_text_evening">Makala zaidi yataonekana hivi karibuni. Jioni njema!</string>
<string name="feed_refresh">Onyesha upya</string>
<string name="snackbar_fetch_failed">Imeshindwa kupata mapendekezo</string>
<string name="snackbar_fetch_no_new_suggestions">Hakuna mapendekezo mapya</string>
<string name="suggestions_section_empty">Makala unayopendekezewa yataonekana hapa</string>
<string name="snackbar_default_action">Tendua</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">เพิ่มเติม</string>
<string name="no_suggestions">เสร็จเรียบร้อย</string>
<string name="zero_state_text_morning">บทความอื่นๆ จะปรากฏขึ้นในอีกไม่ช้า ขอให้เพลิดเพลินกับยามเช้า</string>
<string name="zero_state_text_afternoon">บทความอื่นๆ จะปรากฏขึ้นในอีกไม่ช้า ขอให้เพลิดเพลินกับยามบ่าย</string>
<string name="zero_state_text_evening">บทความอื่นๆ จะปรากฏขึ้นในอีกไม่ช้า ขอให้เพลิดเพลินกับยามค่ำ</string>
<string name="feed_refresh">รีเฟรช</string>
<string name="snackbar_fetch_failed">รับคำแนะนำไม่ได้</string>
<string name="snackbar_fetch_no_new_suggestions">ไม่มีคำแนะนำใหม่</string>
<string name="suggestions_section_empty">บทความที่แนะนำจะปรากฏที่นี่</string>
<string name="snackbar_default_action">เลิกทำ</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Daha fazla</string>
<string name="no_suggestions">Şimdilik hepsi bu</string>
<string name="zero_state_text_morning">Yakında daha fazla seçenek gösterilecek. Güzel bir sabah geçirmenizi dileriz.</string>
<string name="zero_state_text_afternoon">Yakında daha fazla seçenek gösterilecek. Güzel bir öğleden sonra geçirmenizi dileriz.</string>
<string name="zero_state_text_evening">Yakında daha fazla seçenek gösterilecek. Güzel bir akşam geçirmenizi dileriz.</string>
<string name="feed_refresh">Yenile</string>
<string name="snackbar_fetch_failed">Öneriler alınamıyor</string>
<string name="snackbar_fetch_no_new_suggestions">Yeni öneri yok</string>
<string name="suggestions_section_empty">Önerilen makaleler burada görünür</string>
<string name="snackbar_default_action">Geri al</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Більше</string>
<string name="no_suggestions">Більше нічого немає</string>
<string name="zero_state_text_morning">Згодом тут з’являться інші статті. Гарного ранку.</string>
<string name="zero_state_text_afternoon">Згодом тут з’являться інші статті. Гарного дня.</string>
<string name="zero_state_text_evening">Згодом тут з’являться інші статті. Гарного вечора.</string>
<string name="feed_refresh">Оновити</string>
<string name="snackbar_fetch_failed">Не вдається отримати пропозиції</string>
<string name="snackbar_fetch_no_new_suggestions">Немає нових пропозицій</string>
<string name="suggestions_section_empty">Тут відображатимуться пропоновані статті</string>
<string name="snackbar_default_action">Відмінити</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources>
<!-- Sets the color of the more button text. -->
<attr name="feedBlueTitleColor" format="reference" />
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Used by Content -->
<style name="FeedRobotoMediumStyle">
<item name="android:fontFamily">sans-serif-medium</item>
</style>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">Xem thêm</string>
<string name="no_suggestions">Hiện chưa có nội dung</string>
<string name="zero_state_text_morning">Các bài viết khác sẽ sớm xuất hiện. Chúc bạn buổi sáng vui vẻ!</string>
<string name="zero_state_text_afternoon">Các bài viết khác sẽ sớm xuất hiện. Chúc bạn buổi chiều vui vẻ!</string>
<string name="zero_state_text_evening">Các bài viết khác sẽ sớm xuất hiện. Chúc bạn buổi tối vui vẻ!</string>
<string name="feed_refresh">Làm mới</string>
<string name="snackbar_fetch_failed">Không thể nhận nội dung đề xuất</string>
<string name="snackbar_fetch_no_new_suggestions">Không có nội dung đề xuất mới</string>
<string name="suggestions_section_empty">Bài viết đề xuất cho bạn sẽ xuất hiện ở đây</string>
<string name="snackbar_default_action">Hủy</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">更多</string>
<string name="no_suggestions">暂无新内容</string>
<string name="zero_state_text_morning">我们很快将会为您奉上更多文章,伴您度过美好的晨间时光!</string>
<string name="zero_state_text_afternoon">我们很快将会为您奉上更多文章,伴您度过美好的午后时光!</string>
<string name="zero_state_text_evening">我们很快将会为您奉上更多文章,伴您度过美好的夜晚时光!</string>
<string name="feed_refresh">刷新</string>
<string name="snackbar_fetch_failed">无法获取建议</string>
<string name="snackbar_fetch_no_new_suggestions">没有新建议</string>
<string name="suggestions_section_empty">为您推荐的文章会显示在此处</string>
<string name="snackbar_default_action">撤消</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label">更多</string>
<string name="no_suggestions">暫無內容</string>
<string name="zero_state_text_morning">系統即將顯示更多文章供你閱覽,陪你度過美好的早晨!</string>
<string name="zero_state_text_afternoon">系統即將顯示更多文章供你閱覽,陪你度過美好的午後時光!</string>
<string name="zero_state_text_evening">系統即將顯示更多文章供你閱覽,陪你度過美好的夜晚!</string>
<string name="feed_refresh">重新整理</string>
<string name="snackbar_fetch_failed">無法取得建議</string>
<string name="snackbar_fetch_no_new_suggestions">沒有新的建議</string>
<string name="suggestions_section_empty">這裡會顯示為你推薦的文章</string>
<string name="snackbar_default_action">復原</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources>
<!-- Sets the color of the more button when pressed. -->
<attr name="feedMoreButtonRipple" format="reference" />
<!-- Sets the color of the more button when not pressed. -->
<attr name="feedTouchNonPressed" format="reference" />
<!-- Sets which drawable to use for the text ripple pre-v21. -->
<attr name="feedTextRippleDrawable" format="reference" />
<!-- Sets the color of the context menu text. -->
<attr name = "feedContextMenuTextColor" format="reference" />
<!-- Sets the color of the no content card title text. -->
<attr name="feedPrimaryTextColor" format="reference" />
<!--Sets the color of the no content card subtitle text. -->
<attr name="feedSecondaryTextColor" format="reference" />
<!-- Sets the color of the spinner. -->
<attr name="feedSpinnerColor" format="reference" />
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources>
<color name="google_blue_500">#4285F4</color>
<color name="feed_modern_blue_600">#1A73E8</color>
<!-- feed_modern_blue_600 with a 10% opacity -->
<color name="feed_alpha_10_modern_blue_600">#191A73E8</color>
<color name="feed_modern_blue_300">#8AB4F8</color>
<!-- feed_modern_blue_300 with a 10% opacity -->
<color name="feed_alpha_10_modern_blue_300">#198AB4F8</color>
<color name="black_alpha_87">#DE000000</color>
<!-- Text colors -->
<color name="feed_default_text_color">@color/feed_modern_grey_900</color>
<color name="feed_default_text_color_secondary">@color/feed_modern_grey_700</color>
<color name="feed_default_text_color_dark">@android:color/white</color>
<color name="feed_default_text_color_secondary_dark">@color/feed_modern_grey_500</color>
<!-- Modern color palette -->
<color name="feed_modern_grey_500">#9AA0A6</color>
<color name="feed_modern_grey_700">#5F6368</color>
<color name="feed_modern_grey_900">#202124</color>
<color name="feed_modern_grey_900_white_alpha_4">#28292C</color>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_button_label"
description="Generic label for a button to show more items or options. [CHAR LIMIT=20]">
More
</string>
<string name="no_suggestions"
description="Title text explaining there is no content.">
That’s all for now
</string>
<!-- String resources for zero state -->
<string name="zero_state_text_morning"
description="Body text shown in the morning on the New Tab Page when all suggested content
has been dismissed.">
More articles will appear soon. Enjoy your morning!
</string>
<string name="zero_state_text_afternoon"
description="Body text shown in the afternoon on the New Tab Page when all suggested
content has been dismissed.">
More articles will appear soon. Enjoy your afternoon!
</string>
<string name="zero_state_text_evening"
description="Body text shown in the evening on the New Tab Page when all suggested content
has been dismissed.">
More articles will appear soon. Enjoy your evening!
</string>
<string name="feed_refresh"
description="Text label for button to refresh suggested content. [CHAR-LIMIT=20]">
Refresh
</string>
<!-- String resources for snackbar pagination errors -->
<string name="snackbar_fetch_failed"
description="Snackbar text shown when the user presses the More button to get more
suggested articles, but this fails (eg, no internet connectivity).">
Can’t get suggestions
</string>
<string name="snackbar_fetch_no_new_suggestions"
description="Snackbar text shown when the user presses the More button to get more
suggested articles, the fetch succeeds but provides no new suggestions.">
No new suggestions
</string>
<!-- String resources for no content card -->
<string name="suggestions_section_empty"
description="Text of a card explaining to the user that they can expect to see suggested
articles in this area in the future.">
Your suggested articles appear here
</string>
<string name="snackbar_default_action"
description="Text that appears on the snackbar that when clicked will allow users to undo the previous action [CHAR_LIMIT=20]">
Undo
</string>
</resources>
...@@ -96,6 +96,7 @@ import org.chromium.chrome.browser.feed.library.sharedstream.publicapi.menumeasu ...@@ -96,6 +96,7 @@ import org.chromium.chrome.browser.feed.library.sharedstream.publicapi.menumeasu
import org.chromium.chrome.browser.feed.library.sharedstream.publicapi.scroll.ScrollObservable; import org.chromium.chrome.browser.feed.library.sharedstream.publicapi.scroll.ScrollObservable;
import org.chromium.chrome.browser.feed.library.sharedstream.scroll.ScrollListenerNotifier; import org.chromium.chrome.browser.feed.library.sharedstream.scroll.ScrollListenerNotifier;
import org.chromium.chrome.browser.feed.library.testing.shadows.ShadowRecycledViewPool; import org.chromium.chrome.browser.feed.library.testing.shadows.ShadowRecycledViewPool;
import org.chromium.chrome.feed.R;
import org.chromium.components.feed.core.proto.libraries.api.internal.StreamDataProto.UiContext; import org.chromium.components.feed.core.proto.libraries.api.internal.StreamDataProto.UiContext;
import org.chromium.components.feed.core.proto.libraries.basicstream.internal.StreamSavedInstanceStateProto.StreamSavedInstanceState; import org.chromium.components.feed.core.proto.libraries.basicstream.internal.StreamSavedInstanceStateProto.StreamSavedInstanceState;
import org.chromium.components.feed.core.proto.libraries.sharedstream.ScrollStateProto.ScrollState; import org.chromium.components.feed.core.proto.libraries.sharedstream.ScrollStateProto.ScrollState;
......
...@@ -59,7 +59,7 @@ import org.chromium.chrome.browser.feed.library.piet.host.EventLogger; ...@@ -59,7 +59,7 @@ import org.chromium.chrome.browser.feed.library.piet.host.EventLogger;
import org.chromium.chrome.browser.feed.library.sharedstream.deepestcontenttracker.DeepestContentTracker; import org.chromium.chrome.browser.feed.library.sharedstream.deepestcontenttracker.DeepestContentTracker;
import org.chromium.chrome.browser.feed.library.sharedstream.piet.PietEventLogger; import org.chromium.chrome.browser.feed.library.sharedstream.piet.PietEventLogger;
import org.chromium.chrome.browser.feed.library.sharedstream.publicapi.scroll.ScrollObservable; import org.chromium.chrome.browser.feed.library.sharedstream.publicapi.scroll.ScrollObservable;
import org.chromium.chrome.browser.feed.library.sharedstream.ui.R; import org.chromium.chrome.feed.R;
import org.chromium.testing.local.LocalRobolectricTestRunner; import org.chromium.testing.local.LocalRobolectricTestRunner;
import java.util.Collections; import java.util.Collections;
......
...@@ -38,6 +38,7 @@ import org.mockito.Mockito; ...@@ -38,6 +38,7 @@ import org.mockito.Mockito;
import org.robolectric.Robolectric; import org.robolectric.Robolectric;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.feed.library.api.host.config.Configuration; import org.chromium.chrome.browser.feed.library.api.host.config.Configuration;
import org.chromium.chrome.browser.feed.library.api.host.config.Configuration.ConfigKey; import org.chromium.chrome.browser.feed.library.api.host.config.Configuration.ConfigKey;
import org.chromium.chrome.browser.feed.library.api.host.logging.BasicLoggingApi; import org.chromium.chrome.browser.feed.library.api.host.logging.BasicLoggingApi;
...@@ -53,7 +54,6 @@ import org.chromium.chrome.browser.feed.library.api.internal.modelprovider.Model ...@@ -53,7 +54,6 @@ import org.chromium.chrome.browser.feed.library.api.internal.modelprovider.Model
import org.chromium.chrome.browser.feed.library.api.internal.modelprovider.TokenCompleted; import org.chromium.chrome.browser.feed.library.api.internal.modelprovider.TokenCompleted;
import org.chromium.chrome.browser.feed.library.basicstream.internal.drivers.ContinuationDriver.CursorChangedListener; import org.chromium.chrome.browser.feed.library.basicstream.internal.drivers.ContinuationDriver.CursorChangedListener;
import org.chromium.chrome.browser.feed.library.basicstream.internal.viewholders.ContinuationViewHolder; import org.chromium.chrome.browser.feed.library.basicstream.internal.viewholders.ContinuationViewHolder;
import org.chromium.chrome.browser.feed.library.basicstream.internal.viewholders.R;
import org.chromium.chrome.browser.feed.library.common.time.Clock; import org.chromium.chrome.browser.feed.library.common.time.Clock;
import org.chromium.chrome.browser.feed.library.common.time.testing.FakeClock; import org.chromium.chrome.browser.feed.library.common.time.testing.FakeClock;
import org.chromium.chrome.browser.feed.library.sharedstream.logging.LoggingListener; import org.chromium.chrome.browser.feed.library.sharedstream.logging.LoggingListener;
...@@ -473,7 +473,8 @@ public class ContinuationDriverTest { ...@@ -473,7 +473,8 @@ public class ContinuationDriverTest {
clickWithTokenCompleted(EMPTY_TOKEN_COMPLETED); clickWithTokenCompleted(EMPTY_TOKEN_COMPLETED);
verify(mSnackbarApi).show(mContext.getString(R.string.snackbar_fetch_no_new_suggestions)); verify(mSnackbarApi)
.show(mContext.getString(R.string.ntp_suggestions_fetch_no_new_suggestions));
verify(mCursorChangedListener) verify(mCursorChangedListener)
.onNewChildren(mModelChild, ImmutableList.of(), /* wasSynthetic= */ false); .onNewChildren(mModelChild, ImmutableList.of(), /* wasSynthetic= */ false);
} }
...@@ -485,7 +486,8 @@ public class ContinuationDriverTest { ...@@ -485,7 +486,8 @@ public class ContinuationDriverTest {
FakeModelCursor cursor = FakeModelCursor.newBuilder().addToken().build(); FakeModelCursor cursor = FakeModelCursor.newBuilder().addToken().build();
clickWithTokenCompleted(new TokenCompleted(cursor)); clickWithTokenCompleted(new TokenCompleted(cursor));
verify(mSnackbarApi).show(mContext.getString(R.string.snackbar_fetch_no_new_suggestions)); verify(mSnackbarApi)
.show(mContext.getString(R.string.ntp_suggestions_fetch_no_new_suggestions));
verify(mCursorChangedListener) verify(mCursorChangedListener)
.onNewChildren(mModelChild, cursor.getModelChildren(), /* wasSynthetic= */ false); .onNewChildren(mModelChild, cursor.getModelChildren(), /* wasSynthetic= */ false);
} }
...@@ -518,7 +520,7 @@ public class ContinuationDriverTest { ...@@ -518,7 +520,7 @@ public class ContinuationDriverTest {
clickWithError(); clickWithError();
verify(mContinuationViewHolder).setShowSpinner(false); verify(mContinuationViewHolder).setShowSpinner(false);
verify(mSnackbarApi).show(mContext.getString(R.string.snackbar_fetch_failed)); verify(mSnackbarApi).show(mContext.getString(R.string.ntp_suggestions_fetch_failed));
} }
@Test @Test
...@@ -594,7 +596,7 @@ public class ContinuationDriverTest { ...@@ -594,7 +596,7 @@ public class ContinuationDriverTest {
verify(mBasicLoggingApi).onInternalError(InternalFeedError.UNHANDLED_TOKEN); verify(mBasicLoggingApi).onInternalError(InternalFeedError.UNHANDLED_TOKEN);
verify(mContinuationViewHolder).setShowSpinner(false); verify(mContinuationViewHolder).setShowSpinner(false);
verify(mSnackbarApi).show(mContext.getString(R.string.snackbar_fetch_failed)); verify(mSnackbarApi).show(mContext.getString(R.string.ntp_suggestions_fetch_failed));
} }
@Test @Test
......
...@@ -36,6 +36,7 @@ import org.mockito.Mockito; ...@@ -36,6 +36,7 @@ import org.mockito.Mockito;
import org.robolectric.Robolectric; import org.robolectric.Robolectric;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.feed.library.api.client.stream.Stream.ContentChangedListener; import org.chromium.chrome.browser.feed.library.api.client.stream.Stream.ContentChangedListener;
import org.chromium.chrome.browser.feed.library.api.host.action.ActionApi; import org.chromium.chrome.browser.feed.library.api.host.action.ActionApi;
import org.chromium.chrome.browser.feed.library.api.host.config.Configuration; import org.chromium.chrome.browser.feed.library.api.host.config.Configuration;
...@@ -1011,9 +1012,9 @@ public class StreamDriverTest { ...@@ -1011,9 +1012,9 @@ public class StreamDriverTest {
verify(mContentlistener).notifyContentRemoved(0); verify(mContentlistener).notifyContentRemoved(0);
verify(mSnackbarApi) verify(mSnackbarApi)
.show(eq(undoAction.getConfirmationLabel()), .show(eq(undoAction.getConfirmationLabel()),
undoAction.hasUndoLabel() ? eq(undoAction.getUndoLabel()) undoAction.hasUndoLabel()
: eq(mContext.getResources().getString( ? eq(undoAction.getUndoLabel())
R.string.snackbar_default_action)), : eq(mContext.getResources().getString(R.string.undo)),
snackbarCallbackApi.capture()); snackbarCallbackApi.capture());
return snackbarCallbackApi.getValue(); return snackbarCallbackApi.getValue();
......
...@@ -28,6 +28,7 @@ import org.chromium.chrome.browser.feed.library.api.host.stream.CardConfiguratio ...@@ -28,6 +28,7 @@ import org.chromium.chrome.browser.feed.library.api.host.stream.CardConfiguratio
import org.chromium.chrome.browser.feed.library.sharedstream.logging.LoggingListener; import org.chromium.chrome.browser.feed.library.sharedstream.logging.LoggingListener;
import org.chromium.chrome.browser.feed.library.sharedstream.logging.VisibilityMonitor; import org.chromium.chrome.browser.feed.library.sharedstream.logging.VisibilityMonitor;
import org.chromium.chrome.browser.feed.library.testing.host.stream.FakeCardConfiguration; import org.chromium.chrome.browser.feed.library.testing.host.stream.FakeCardConfiguration;
import org.chromium.chrome.feed.R;
import org.chromium.testing.local.LocalRobolectricTestRunner; import org.chromium.testing.local.LocalRobolectricTestRunner;
/** Tests for {@link ContinuationViewHolder}. */ /** Tests for {@link ContinuationViewHolder}. */
......
...@@ -25,6 +25,7 @@ import org.robolectric.Robolectric; ...@@ -25,6 +25,7 @@ import org.robolectric.Robolectric;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
import org.chromium.chrome.browser.feed.library.api.host.stream.CardConfiguration; import org.chromium.chrome.browser.feed.library.api.host.stream.CardConfiguration;
import org.chromium.chrome.feed.R;
import org.chromium.testing.local.LocalRobolectricTestRunner; import org.chromium.testing.local.LocalRobolectricTestRunner;
/** Tests for {@link NoContentViewHolder}. */ /** Tests for {@link NoContentViewHolder}. */
......
...@@ -52,6 +52,7 @@ import org.chromium.chrome.browser.feed.library.sharedstream.logging.LoggingList ...@@ -52,6 +52,7 @@ import org.chromium.chrome.browser.feed.library.sharedstream.logging.LoggingList
import org.chromium.chrome.browser.feed.library.sharedstream.logging.VisibilityMonitor; import org.chromium.chrome.browser.feed.library.sharedstream.logging.VisibilityMonitor;
import org.chromium.chrome.browser.feed.library.sharedstream.piet.PietEventLogger; import org.chromium.chrome.browser.feed.library.sharedstream.piet.PietEventLogger;
import org.chromium.chrome.browser.feed.library.testing.host.stream.FakeCardConfiguration; import org.chromium.chrome.browser.feed.library.testing.host.stream.FakeCardConfiguration;
import org.chromium.chrome.feed.R;
import org.chromium.components.feed.core.proto.ui.action.FeedActionPayloadProto.FeedActionPayload; import org.chromium.components.feed.core.proto.ui.action.FeedActionPayloadProto.FeedActionPayload;
import org.chromium.components.feed.core.proto.ui.action.FeedActionProto.FeedAction; import org.chromium.components.feed.core.proto.ui.action.FeedActionProto.FeedAction;
import org.chromium.components.feed.core.proto.ui.piet.ActionsProto.Action; import org.chromium.components.feed.core.proto.ui.piet.ActionsProto.Action;
......
...@@ -25,6 +25,7 @@ import org.robolectric.annotation.Config; ...@@ -25,6 +25,7 @@ import org.robolectric.annotation.Config;
import org.chromium.chrome.browser.feed.library.api.host.stream.CardConfiguration; import org.chromium.chrome.browser.feed.library.api.host.stream.CardConfiguration;
import org.chromium.chrome.browser.feed.library.testing.host.stream.FakeCardConfiguration; import org.chromium.chrome.browser.feed.library.testing.host.stream.FakeCardConfiguration;
import org.chromium.chrome.feed.R;
import org.chromium.testing.local.LocalRobolectricTestRunner; import org.chromium.testing.local.LocalRobolectricTestRunner;
/** Tests for {@link ZeroStateViewHolder}. */ /** Tests for {@link ZeroStateViewHolder}. */
......
...@@ -33,6 +33,7 @@ import org.robolectric.annotation.Config; ...@@ -33,6 +33,7 @@ import org.robolectric.annotation.Config;
import org.chromium.chrome.browser.feed.library.sharedstream.contextmenumanager.ContextMenuManager.ContextMenuClickHandler; import org.chromium.chrome.browser.feed.library.sharedstream.contextmenumanager.ContextMenuManager.ContextMenuClickHandler;
import org.chromium.chrome.browser.feed.library.sharedstream.publicapi.menumeasurer.MenuMeasurer; import org.chromium.chrome.browser.feed.library.sharedstream.publicapi.menumeasurer.MenuMeasurer;
import org.chromium.chrome.browser.feed.library.sharedstream.publicapi.menumeasurer.Size; import org.chromium.chrome.browser.feed.library.sharedstream.publicapi.menumeasurer.Size;
import org.chromium.chrome.feed.R;
import org.chromium.testing.local.LocalRobolectricTestRunner; import org.chromium.testing.local.LocalRobolectricTestRunner;
import java.util.ArrayList; import java.util.ArrayList;
......
...@@ -30,6 +30,7 @@ import org.robolectric.annotation.Config; ...@@ -30,6 +30,7 @@ import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowAlertDialog; import org.robolectric.shadows.ShadowAlertDialog;
import org.chromium.chrome.browser.feed.library.sharedstream.contextmenumanager.ContextMenuManager.ContextMenuClickHandler; import org.chromium.chrome.browser.feed.library.sharedstream.contextmenumanager.ContextMenuManager.ContextMenuClickHandler;
import org.chromium.chrome.feed.R;
import org.chromium.testing.local.LocalRobolectricTestRunner; import org.chromium.testing.local.LocalRobolectricTestRunner;
/** Tests for {@link ContextMenuManagerImpl}. */ /** Tests for {@link ContextMenuManagerImpl}. */
......
...@@ -19,6 +19,7 @@ import org.junit.runner.RunWith; ...@@ -19,6 +19,7 @@ import org.junit.runner.RunWith;
import org.robolectric.Robolectric; import org.robolectric.Robolectric;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
import org.chromium.chrome.feed.R;
import org.chromium.testing.local.LocalRobolectricTestRunner; import org.chromium.testing.local.LocalRobolectricTestRunner;
/** Tests for {@link MenuMeasurer}. */ /** Tests for {@link MenuMeasurer}. */
......
...@@ -16,6 +16,7 @@ import org.junit.runner.RunWith; ...@@ -16,6 +16,7 @@ import org.junit.runner.RunWith;
import org.robolectric.Robolectric; import org.robolectric.Robolectric;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
import org.chromium.chrome.feed.R;
import org.chromium.testing.local.LocalRobolectricTestRunner; import org.chromium.testing.local.LocalRobolectricTestRunner;
/** Tests for {@link MaterialSpinnerView}. */ /** Tests for {@link MaterialSpinnerView}. */
......
This diff is collapsed.
...@@ -304,27 +304,6 @@ ...@@ -304,27 +304,6 @@
public <init>(); public <init>();
} }
################################################################################
# ../../chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/library/buildtools/proguard/r8_release.flags
################################################################################
# Feed proguard flags should only target and affect Feed classes. Any app-wide
# specific flags should be added to each host's proguard specs and overall
# should be avoided.
-assumenosideeffects class org.chromium.chrome.browser.feed.library.common.logging.Logger {
public static boolean isDebugEnabled(java.lang.String) return false;
public static boolean isVerboseEnabled(java.lang.String) return false;
private static boolean shouldWtfCrash() return false;
public static void v(...);
public static void vWithStackTrace(...);
public static void d(...);
public static void dWithStackTrace(...);
# Protocol buffers are large. Only allow spamming a developer's device.
public static void debugLogRawProto(...);
}
################################################################################ ################################################################################
# ../../chrome/android/java/proguard.flags # ../../chrome/android/java/proguard.flags
################################################################################ ################################################################################
......
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file. -->
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="@color/modern_grey_100" />
<corners
android:topRightRadius="@dimen/default_rounded_corner_radius"
android:bottomRightRadius="@dimen/default_rounded_corner_radius" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file. -->
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="@color/modern_grey_100" />
<stroke android:width="1dp" android:color="@color/hairline_stroke_color"/>
<corners
android:topRightRadius="@dimen/default_rounded_corner_radius"
android:bottomRightRadius="@dimen/default_rounded_corner_radius" />
</shape>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment