Compare commits
28 Commits
Author | SHA1 | Date | |
---|---|---|---|
3a189ee4b6 | |||
e25dc49271 | |||
4208a80db8 | |||
ddb75e0d93 | |||
8b37e992a2 | |||
bac59036cd | |||
6c89a3b77c | |||
dc2ef39fc6 | |||
a4806da2c5 | |||
ee30edb214 | |||
e4ed663fb3 | |||
01629309b0 | |||
059c2991fb | |||
686ec5dd90 | |||
eab9df8ed9 | |||
0107c3d7e2 | |||
2def2f2e2c | |||
44c79892a0 | |||
bc96b314c2 | |||
8dcf749b4e | |||
6a56ec6442 | |||
30e46d7eae | |||
9458b1834b | |||
297f797b97 | |||
c70e80758c | |||
3bf1d7c4f9 | |||
173247041a | |||
3a28772096 |
20
CHANGELOG.md
20
CHANGELOG.md
@ -1,6 +1,22 @@
|
||||
**1.5.5.x**
|
||||
**1.5.7.x**
|
||||
|
||||
- Completed Dutch and Indonesian translation !
|
||||
- Added an option to use a webview in the article viewer (see #149)
|
||||
|
||||
- Fixes (#151)
|
||||
|
||||
**1.5.5.x (didn't last long) AND 1.5.6.x**
|
||||
|
||||
- Toolbar in reader activity.
|
||||
|
||||
- Marking items as read on scroll (with settings to enable/disable).
|
||||
|
||||
- Swapped the title and subtitle in the article viewer.
|
||||
|
||||
- Added an animation to the viewpager.
|
||||
|
||||
- Completed Dutch, Indonesian and Portuguese translations !
|
||||
|
||||
- Fixed #142, #144, #147.
|
||||
|
||||
- Changed versions handling.
|
||||
|
||||
|
@ -20,7 +20,7 @@ def gitVersion() {
|
||||
}
|
||||
|
||||
def versionCodeFromGit() {
|
||||
def versionCode = gitVersion() + (ext.configuration.buildDate.format("SSssmm")).toInteger()
|
||||
def versionCode = gitVersion() + (ext.configuration.buildDate.format("yyMMD")).toInteger()
|
||||
println "version code " + versionCode
|
||||
return versionCode.toInteger()
|
||||
}
|
||||
@ -49,7 +49,7 @@ repositories {
|
||||
|
||||
android {
|
||||
compileSdkVersion 27
|
||||
buildToolsVersion '27.0.0'
|
||||
buildToolsVersion '27.0.2'
|
||||
defaultConfig {
|
||||
applicationId "apps.amine.bou.readerforselfoss"
|
||||
minSdkVersion 16
|
||||
@ -117,19 +117,19 @@ dependencies {
|
||||
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
|
||||
|
||||
// Android Support
|
||||
compile 'com.android.support:appcompat-v7:27.0.0'
|
||||
compile 'com.android.support:design:27.0.0'
|
||||
compile 'com.android.support:recyclerview-v7:27.0.0'
|
||||
compile 'com.android.support:support-v4:27.0.0'
|
||||
compile 'com.android.support:support-vector-drawable:27.0.0'
|
||||
compile 'com.android.support:customtabs:27.0.0'
|
||||
compile 'com.android.support:cardview-v7:27.0.0'
|
||||
compile 'com.android.support:appcompat-v7:27.0.2'
|
||||
compile 'com.android.support:design:27.0.2'
|
||||
compile 'com.android.support:recyclerview-v7:27.0.2'
|
||||
compile 'com.android.support:support-v4:27.0.2'
|
||||
compile 'com.android.support:support-vector-drawable:27.0.2'
|
||||
compile 'com.android.support:customtabs:27.0.2'
|
||||
compile 'com.android.support:cardview-v7:27.0.2'
|
||||
compile 'com.android.support.constraint:constraint-layout:1.0.2'
|
||||
|
||||
// Firebase + crashlytics
|
||||
compile 'com.google.firebase:firebase-core:11.4.2'
|
||||
compile 'com.google.firebase:firebase-config:11.4.2'
|
||||
compile 'com.google.firebase:firebase-invites:11.4.2'
|
||||
compile 'com.google.firebase:firebase-core:11.6.2'
|
||||
compile 'com.google.firebase:firebase-config:11.6.2'
|
||||
compile 'com.google.firebase:firebase-invites:11.6.2'
|
||||
compile('com.crashlytics.sdk.android:crashlytics:2.8.0@aar') {
|
||||
transitive = true;
|
||||
}
|
||||
@ -164,9 +164,6 @@ dependencies {
|
||||
// Asking politely users to rate the app
|
||||
compile 'com.github.stkent:amplify:2.1.0'
|
||||
|
||||
// For the article reader
|
||||
compile 'com.klinkerapps:drag-dismiss-activity:1.5.0'
|
||||
|
||||
// Drawer
|
||||
implementation 'co.zsmb:materialdrawer-kt:1.2.1'
|
||||
compile 'com.anupcowkur:reservoir:3.1.0'
|
||||
@ -181,6 +178,7 @@ dependencies {
|
||||
|
||||
// Pager
|
||||
compile 'me.relex:circleindicator:1.2.2@aar'
|
||||
|
||||
}
|
||||
|
||||
apply plugin: 'com.google.gms.google-services'
|
||||
|
4
app/proguard-rules.pro
vendored
4
app/proguard-rules.pro
vendored
@ -69,4 +69,6 @@
|
||||
|
||||
-dontwarn com.anupcowkur.reservoir.**
|
||||
|
||||
-dontwarn javax.annotation.**
|
||||
-dontwarn javax.annotation.**
|
||||
|
||||
-keep class android.support.v7.widget.SearchView { *; }
|
@ -71,6 +71,12 @@
|
||||
<meta-data
|
||||
android:name="apps.amine.bou.readerforselfoss.utils.glide.SelfSignedGlideModule"
|
||||
android:value="GlideModule" />
|
||||
|
||||
<meta-data android:name="android.webkit.WebView.MetricsOptOut"
|
||||
android:value="true" />
|
||||
|
||||
<meta-data android:name="android.webkit.WebView.EnableSafeBrowsing"
|
||||
android:value="true" />
|
||||
</application>
|
||||
|
||||
</manifest>
|
@ -1,30 +1,149 @@
|
||||
package apps.amine.bou.readerforselfoss
|
||||
|
||||
import android.content.Context
|
||||
import android.os.Bundle
|
||||
import android.preference.PreferenceManager
|
||||
import android.support.v4.app.FragmentManager
|
||||
import android.support.v4.app.FragmentStatePagerAdapter
|
||||
import android.support.v4.view.ViewPager
|
||||
import android.support.v7.app.AppCompatActivity
|
||||
import android.view.MenuItem
|
||||
import apps.amine.bou.readerforselfoss.api.selfoss.Item
|
||||
import apps.amine.bou.readerforselfoss.api.selfoss.SelfossApi
|
||||
import apps.amine.bou.readerforselfoss.api.selfoss.SuccessResponse
|
||||
import apps.amine.bou.readerforselfoss.fragments.ArticleFragment
|
||||
import apps.amine.bou.readerforselfoss.transformers.DepthPageTransformer
|
||||
import apps.amine.bou.readerforselfoss.utils.Config
|
||||
import apps.amine.bou.readerforselfoss.utils.succeeded
|
||||
import com.crashlytics.android.Crashlytics
|
||||
import com.ftinc.scoop.Scoop
|
||||
import kotlinx.android.synthetic.main.activity_reader.*
|
||||
import me.relex.circleindicator.CircleIndicator
|
||||
import retrofit2.Call
|
||||
import retrofit2.Callback
|
||||
import retrofit2.Response
|
||||
|
||||
class ReaderActivity : AppCompatActivity() {
|
||||
|
||||
private lateinit var allItems: ArrayList<Item>
|
||||
private var markOnScroll: Boolean = false
|
||||
|
||||
private var useWebview: Boolean = false
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
Scoop.getInstance().apply(this)
|
||||
setContentView(R.layout.activity_reader)
|
||||
|
||||
allItems = intent.getParcelableArrayListExtra<Item>("allItems")
|
||||
setSupportActionBar(toolBar)
|
||||
supportActionBar?.setDisplayHomeAsUpEnabled(true)
|
||||
supportActionBar?.setDisplayShowHomeEnabled(true)
|
||||
|
||||
val settings = getSharedPreferences(Config.settingsName, Context.MODE_PRIVATE)
|
||||
val sharedPref = PreferenceManager.getDefaultSharedPreferences(this)
|
||||
|
||||
val debugReadingItems = sharedPref.getBoolean("read_debug", false)
|
||||
val userIdentifier = sharedPref.getString("unique_id", "")
|
||||
markOnScroll = sharedPref.getBoolean("mark_on_scroll", false)
|
||||
useWebview = sharedPref.getBoolean("prefer_webview_in_article_viewer", false)
|
||||
|
||||
|
||||
if (allItems.isEmpty()) {
|
||||
Crashlytics.setUserIdentifier(userIdentifier)
|
||||
Crashlytics.log(
|
||||
100,
|
||||
"READER_ITEMS_EMPTY",
|
||||
"Items empty when trying to open the Article Reader. Was (static) companion object field set ?"
|
||||
)
|
||||
Crashlytics.logException(Exception("Empty items on Reader Activity."))
|
||||
|
||||
finish()
|
||||
}
|
||||
|
||||
val api = SelfossApi(
|
||||
this,
|
||||
this@ReaderActivity,
|
||||
settings.getBoolean("isSelfSignedCert", false),
|
||||
sharedPref.getBoolean("should_log_everything", false)
|
||||
)
|
||||
|
||||
val currentItem = intent.getIntExtra("currentItem", 0)
|
||||
|
||||
var adapter = ScreenSlidePagerAdapter(supportFragmentManager)
|
||||
pager.adapter = adapter
|
||||
pager.currentItem = currentItem
|
||||
|
||||
pager.setPageTransformer(true, DepthPageTransformer())
|
||||
(indicator as CircleIndicator).setViewPager(pager)
|
||||
|
||||
if (markOnScroll) {
|
||||
pager.addOnPageChangeListener(
|
||||
object : ViewPager.SimpleOnPageChangeListener() {
|
||||
var isLastItem = false
|
||||
|
||||
override fun onPageSelected(position: Int) {
|
||||
isLastItem = (position === (allItems.size - 1))
|
||||
}
|
||||
|
||||
override fun onPageScrollStateChanged(state: Int) {
|
||||
if (state === ViewPager.SCROLL_STATE_DRAGGING || (state === ViewPager.SCROLL_STATE_IDLE && isLastItem)) {
|
||||
api.markItem(allItems[pager.currentItem].id).enqueue(
|
||||
object : Callback<SuccessResponse> {
|
||||
override fun onResponse(
|
||||
call: Call<SuccessResponse>,
|
||||
response: Response<SuccessResponse>
|
||||
) {
|
||||
if (!response.succeeded() && debugReadingItems) {
|
||||
val message =
|
||||
"message: ${response.message()} " +
|
||||
"response isSuccess: ${response.isSuccessful} " +
|
||||
"response code: ${response.code()} " +
|
||||
"response message: ${response.message()} " +
|
||||
"response errorBody: ${response.errorBody()?.string()} " +
|
||||
"body success: ${response.body()?.success} " +
|
||||
"body isSuccess: ${response.body()?.isSuccess}"
|
||||
Crashlytics.setUserIdentifier(userIdentifier)
|
||||
Crashlytics.log(
|
||||
100,
|
||||
"READ_DEBUG_SUCCESS",
|
||||
message
|
||||
)
|
||||
Crashlytics.logException(Exception("Was success, but did it work ?"))
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(
|
||||
call: Call<SuccessResponse>,
|
||||
t: Throwable
|
||||
) {
|
||||
if (debugReadingItems) {
|
||||
Crashlytics.setUserIdentifier(userIdentifier)
|
||||
Crashlytics.log(
|
||||
100,
|
||||
"READ_DEBUG_ERROR",
|
||||
t.message
|
||||
)
|
||||
Crashlytics.logException(t)
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
super.onPause()
|
||||
if (markOnScroll) {
|
||||
pager.clearOnPageChangeListeners()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onSaveInstanceState(oldInstanceState: Bundle?) {
|
||||
super.onSaveInstanceState(oldInstanceState)
|
||||
oldInstanceState!!.clear()
|
||||
}
|
||||
|
||||
private inner class ScreenSlidePagerAdapter(fm: FragmentManager) : FragmentStatePagerAdapter(fm) {
|
||||
@ -33,7 +152,21 @@ class ReaderActivity : AppCompatActivity() {
|
||||
}
|
||||
|
||||
override fun getItem(position: Int): ArticleFragment {
|
||||
return ArticleFragment.newInstance(position, allItems)
|
||||
return ArticleFragment.newInstance(position, allItems, useWebview)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
when (item.itemId) {
|
||||
android.R.id.home -> {
|
||||
onBackPressed()
|
||||
return true
|
||||
}
|
||||
}
|
||||
return super.onOptionsItemSelected(item)
|
||||
}
|
||||
|
||||
companion object {
|
||||
var allItems: ArrayList<Item> = ArrayList()
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package apps.amine.bou.readerforselfoss.fragments
|
||||
|
||||
import android.content.SharedPreferences
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.preference.PreferenceManager
|
||||
import android.support.customtabs.CustomTabsIntent
|
||||
@ -9,10 +10,12 @@ import android.support.v4.app.Fragment
|
||||
import android.support.v4.widget.NestedScrollView
|
||||
import android.text.Html
|
||||
import android.text.method.LinkMovementMethod
|
||||
import android.util.TypedValue
|
||||
import android.view.LayoutInflater
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.webkit.WebSettings
|
||||
import apps.amine.bou.readerforselfoss.BuildConfig
|
||||
import apps.amine.bou.readerforselfoss.R
|
||||
import apps.amine.bou.readerforselfoss.api.mercury.MercuryApi
|
||||
@ -28,19 +31,16 @@ import com.bumptech.glide.Glide
|
||||
import com.bumptech.glide.request.RequestOptions
|
||||
import com.crashlytics.android.Crashlytics
|
||||
import com.github.rubensousa.floatingtoolbar.FloatingToolbar
|
||||
import kotlinx.android.synthetic.main.fragment_article.view.*
|
||||
import org.sufficientlysecure.htmltextview.HtmlHttpImageGetter
|
||||
import retrofit2.Call
|
||||
import retrofit2.Callback
|
||||
import retrofit2.Response
|
||||
|
||||
|
||||
import kotlinx.android.synthetic.main.fragment_article.view.*
|
||||
|
||||
class ArticleFragment : Fragment() {
|
||||
private lateinit var pageNumber: Number
|
||||
private lateinit var allItems: ArrayList<Item>
|
||||
private lateinit var mCustomTabActivityHelper: CustomTabActivityHelper
|
||||
//private lateinit var content: HtmlTextView
|
||||
private lateinit var url: String
|
||||
private lateinit var contentText: String
|
||||
private lateinit var contentSource: String
|
||||
@ -48,6 +48,8 @@ class ArticleFragment : Fragment() {
|
||||
private lateinit var contentTitle: String
|
||||
private lateinit var fab: FloatingActionButton
|
||||
|
||||
private var useWebview: Boolean = false
|
||||
|
||||
override fun onStop() {
|
||||
super.onStop()
|
||||
mCustomTabActivityHelper.unbindCustomTabsService(activity)
|
||||
@ -57,6 +59,7 @@ class ArticleFragment : Fragment() {
|
||||
super.onCreate(savedInstanceState)
|
||||
pageNumber = arguments!!.getInt(ARG_POSITION)
|
||||
allItems = arguments!!.getParcelableArrayList(ARG_ITEMS)
|
||||
useWebview = arguments!!.getBoolean(ARG_WEBVIEW)
|
||||
}
|
||||
|
||||
private lateinit var rootView: ViewGroup
|
||||
@ -85,27 +88,29 @@ class ArticleFragment : Fragment() {
|
||||
|
||||
val prefs = PreferenceManager.getDefaultSharedPreferences(activity)
|
||||
|
||||
mFloatingToolbar.setClickListener(object : FloatingToolbar.ItemClickListener {
|
||||
override fun onItemClick(item: MenuItem) {
|
||||
when (item.itemId) {
|
||||
R.id.more_action -> getContentFromMercury(customTabsIntent, prefs)
|
||||
R.id.share_action -> activity!!.shareLink(url)
|
||||
R.id.open_action -> activity!!.openItemUrl(
|
||||
allItems,
|
||||
pageNumber.toInt(),
|
||||
url,
|
||||
customTabsIntent,
|
||||
false,
|
||||
false,
|
||||
activity!!
|
||||
)
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
mFloatingToolbar.setClickListener(
|
||||
object : FloatingToolbar.ItemClickListener {
|
||||
override fun onItemClick(item: MenuItem) {
|
||||
when (item.itemId) {
|
||||
R.id.more_action -> getContentFromMercury(customTabsIntent, prefs)
|
||||
R.id.share_action -> activity!!.shareLink(url)
|
||||
R.id.open_action -> activity!!.openItemUrl(
|
||||
allItems,
|
||||
pageNumber.toInt(),
|
||||
url,
|
||||
customTabsIntent,
|
||||
false,
|
||||
false,
|
||||
activity!!
|
||||
)
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
|
||||
override fun onItemLongClick(item: MenuItem?) {
|
||||
}
|
||||
})
|
||||
override fun onItemLongClick(item: MenuItem?) {
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
if (contentText.isEmptyOrNullOrNullString()) {
|
||||
@ -113,7 +118,12 @@ class ArticleFragment : Fragment() {
|
||||
} else {
|
||||
rootView.source.text = contentSource
|
||||
rootView.titleView.text = contentTitle
|
||||
tryToHandleHtml(contentText, customTabsIntent, prefs)
|
||||
|
||||
if (!useWebview) {
|
||||
htmlToTextview(contentText, customTabsIntent, prefs)
|
||||
} else {
|
||||
htmlToWebview(contentText)
|
||||
}
|
||||
|
||||
if (!contentImage.isEmptyOrNullOrNullString()) {
|
||||
rootView.imageView.visibility = View.VISIBLE
|
||||
@ -138,7 +148,9 @@ class ArticleFragment : Fragment() {
|
||||
}
|
||||
)
|
||||
|
||||
rootView.content.movementMethod = LinkMovementMethod.getInstance()
|
||||
if (!useWebview) {
|
||||
rootView.content.movementMethod = LinkMovementMethod.getInstance()
|
||||
}
|
||||
|
||||
return rootView
|
||||
}
|
||||
@ -153,56 +165,69 @@ class ArticleFragment : Fragment() {
|
||||
prefs.getBoolean("should_log_everything", false)
|
||||
)
|
||||
|
||||
parser.parseUrl(url).enqueue(object : Callback<ParsedContent> {
|
||||
override fun onResponse(
|
||||
call: Call<ParsedContent>,
|
||||
response: Response<ParsedContent>
|
||||
) {
|
||||
if (response.body() != null && response.body()!!.content != null && response.body()!!.content.isNotEmpty()) {
|
||||
rootView.source.text = response.body()!!.domain
|
||||
rootView.titleView.text = response.body()!!.title
|
||||
url = response.body()!!.url
|
||||
parser.parseUrl(url).enqueue(
|
||||
object : Callback<ParsedContent> {
|
||||
override fun onResponse(
|
||||
call: Call<ParsedContent>,
|
||||
response: Response<ParsedContent>
|
||||
) {
|
||||
if (response.body() != null && response.body()!!.content != null && response.body()!!.content.isNotEmpty()) {
|
||||
rootView.source.text = response.body()!!.domain
|
||||
rootView.titleView.text = response.body()!!.title
|
||||
url = response.body()!!.url
|
||||
|
||||
if (response.body()!!.content != null && !response.body()!!.content.isEmpty()) {
|
||||
tryToHandleHtml(response.body()!!.content, customTabsIntent, prefs)
|
||||
if (response.body()!!.content != null && !response.body()!!.content.isEmpty()) {
|
||||
if (!useWebview) {
|
||||
htmlToTextview(
|
||||
response.body()!!.content,
|
||||
customTabsIntent,
|
||||
prefs
|
||||
)
|
||||
} else {
|
||||
htmlToWebview(response.body()!!.content)
|
||||
}
|
||||
}
|
||||
|
||||
if (response.body()!!.lead_image_url != null && !response.body()!!.lead_image_url.isEmpty()) {
|
||||
rootView.imageView.visibility = View.VISIBLE
|
||||
Glide
|
||||
.with(activity!!.baseContext)
|
||||
.asBitmap()
|
||||
.load(response.body()!!.lead_image_url)
|
||||
.apply(RequestOptions.fitCenterTransform())
|
||||
.into(rootView.imageView)
|
||||
} else {
|
||||
rootView.imageView.visibility = View.GONE
|
||||
}
|
||||
|
||||
rootView.nestedScrollView.scrollTo(0, 0)
|
||||
|
||||
rootView.progressBar.visibility = View.GONE
|
||||
} else {
|
||||
openInBrowserAfterFailing(customTabsIntent)
|
||||
}
|
||||
}
|
||||
|
||||
if (response.body()!!.lead_image_url != null && !response.body()!!.lead_image_url.isEmpty()) {
|
||||
rootView.imageView.visibility = View.VISIBLE
|
||||
Glide
|
||||
.with(activity!!.baseContext)
|
||||
.asBitmap()
|
||||
.load(response.body()!!.lead_image_url)
|
||||
.apply(RequestOptions.fitCenterTransform())
|
||||
.into(rootView.imageView)
|
||||
} else {
|
||||
rootView.imageView.visibility = View.GONE
|
||||
}
|
||||
|
||||
rootView.nestedScrollView.scrollTo(0, 0)
|
||||
|
||||
rootView.progressBar.visibility = View.GONE
|
||||
} else {
|
||||
openInBrowserAfterFailing(customTabsIntent)
|
||||
override fun onFailure(
|
||||
call: Call<ParsedContent>,
|
||||
t: Throwable
|
||||
) = openInBrowserAfterFailing(customTabsIntent)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(
|
||||
call: Call<ParsedContent>,
|
||||
t: Throwable
|
||||
) = openInBrowserAfterFailing(customTabsIntent)
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
private fun tryToHandleHtml(
|
||||
private fun htmlToTextview(
|
||||
c: String,
|
||||
customTabsIntent: CustomTabsIntent,
|
||||
prefs: SharedPreferences
|
||||
) {
|
||||
try {
|
||||
rootView.content.text = Html.fromHtml(c, HtmlHttpImageGetter(rootView.content, null, true), null)
|
||||
|
||||
//content.setHtml(response.body()!!.content, HtmlHttpImageGetter(content, null, true))
|
||||
rootView.content.visibility = View.VISIBLE
|
||||
rootView.content.text = Html.fromHtml(
|
||||
c,
|
||||
HtmlHttpImageGetter(rootView.content, null, true),
|
||||
null
|
||||
)
|
||||
} catch (e: Exception) {
|
||||
Crashlytics.setUserIdentifier(prefs.getString("unique_id", ""))
|
||||
Crashlytics.log(100, "CANT_TRANSFORM_TO_HTML", e.message)
|
||||
@ -211,6 +236,42 @@ class ArticleFragment : Fragment() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun htmlToWebview(c: String) {
|
||||
val attrBackground = TypedValue()
|
||||
activity!!.baseContext.theme.resolveAttribute(
|
||||
android.R.attr.colorBackground,
|
||||
attrBackground,
|
||||
true
|
||||
)
|
||||
|
||||
val defaultColor = TypedValue()
|
||||
activity!!.baseContext.theme.resolveAttribute(
|
||||
android.R.attr.colorAccent,
|
||||
defaultColor,
|
||||
true
|
||||
)
|
||||
val accentColor = fab.backgroundTintList?.defaultColor ?: defaultColor.data
|
||||
val stringColor = String.format("#%06X", 0xFFFFFF and accentColor)
|
||||
|
||||
rootView.webcontent.visibility = View.VISIBLE
|
||||
rootView.webcontent.setBackgroundColor(attrBackground.data)
|
||||
rootView.webcontent.settings.useWideViewPort = true
|
||||
rootView.webcontent.settings.loadWithOverviewMode = true
|
||||
rootView.webcontent.settings.javaScriptEnabled = false
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
rootView.webcontent.settings.layoutAlgorithm = WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING
|
||||
} else {
|
||||
rootView.webcontent.settings.layoutAlgorithm = WebSettings.LayoutAlgorithm.SINGLE_COLUMN
|
||||
}
|
||||
|
||||
rootView.webcontent.loadData(
|
||||
"<style>img{display: inline-block;height: auto; width: 100%; max-width: 100%;} a{color: $stringColor}</style>$c",
|
||||
"text/html; charset=utf-8",
|
||||
"utf-8"
|
||||
)
|
||||
}
|
||||
|
||||
private fun openInBrowserAfterFailing(customTabsIntent: CustomTabsIntent) {
|
||||
rootView.progressBar.visibility = View.GONE
|
||||
activity!!.openItemUrl(
|
||||
@ -224,15 +285,20 @@ class ArticleFragment : Fragment() {
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
companion object {
|
||||
private val ARG_POSITION = "position"
|
||||
private val ARG_ITEMS = "items"
|
||||
private val ARG_WEBVIEW = "userWebview"
|
||||
|
||||
fun newInstance(position: Int, allItems: ArrayList<Item>): ArticleFragment {
|
||||
fun newInstance(
|
||||
position: Int,
|
||||
allItems: ArrayList<Item>,
|
||||
webview: Boolean
|
||||
): ArticleFragment {
|
||||
val fragment = ArticleFragment()
|
||||
val args = Bundle()
|
||||
args.putInt(ARG_POSITION, position)
|
||||
args.putBoolean(ARG_WEBVIEW, webview)
|
||||
args.putParcelableArrayList(ARG_ITEMS, allItems)
|
||||
fragment.arguments = args
|
||||
return fragment
|
||||
|
@ -0,0 +1,43 @@
|
||||
package apps.amine.bou.readerforselfoss.transformers
|
||||
|
||||
import android.support.v4.view.ViewPager
|
||||
import android.view.View
|
||||
|
||||
class DepthPageTransformer : ViewPager.PageTransformer {
|
||||
|
||||
override fun transformPage(view: View, position: Float) {
|
||||
val pageWidth = view.width
|
||||
|
||||
when {
|
||||
position < -1 -> // [-Infinity,-1)
|
||||
// This page is way off-screen to the left.
|
||||
view.alpha = 0F
|
||||
position <= 0 -> { // [-1,0]
|
||||
// Use the default slide transition when moving to the left page
|
||||
view.alpha = 1F
|
||||
view.translationX = 0F
|
||||
view.scaleX = 1F
|
||||
view.scaleY = 1F
|
||||
}
|
||||
position <= 1 -> { // (0,1]
|
||||
// Fade the page out.
|
||||
view.alpha = 1 - position
|
||||
|
||||
// Counteract the default slide transition
|
||||
view.translationX = pageWidth * -position
|
||||
|
||||
// Scale the page down (between MIN_SCALE and 1)
|
||||
val scaleFactor = MIN_SCALE + (1 - MIN_SCALE) * (1 - Math.abs(position))
|
||||
view.scaleX = scaleFactor
|
||||
view.scaleY = scaleFactor
|
||||
}
|
||||
else -> // (1,+Infinity]
|
||||
// This page is way off-screen to the right.
|
||||
view.alpha = 0F
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
private val MIN_SCALE = 0.75f
|
||||
}
|
||||
}
|
@ -67,8 +67,8 @@ fun Context.openItemUrlInternally(
|
||||
app: Activity
|
||||
) {
|
||||
if (articleViewer) {
|
||||
ReaderActivity.allItems = allItems
|
||||
val intent = Intent(this, ReaderActivity::class.java)
|
||||
intent.putParcelableArrayListExtra("allItems", allItems)
|
||||
intent.putExtra("currentItem", currentItem)
|
||||
app.startActivity(intent)
|
||||
} else {
|
||||
|
@ -1,11 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.constraint.ConstraintLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<android.support.design.widget.AppBarLayout
|
||||
android:id="@+id/appBarLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<android.support.v7.widget.Toolbar
|
||||
android:id="@+id/toolBar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
app:popupTheme="?attr/toolbarPopupTheme"
|
||||
app:theme="@style/ToolBarStyle" />
|
||||
|
||||
</android.support.design.widget.AppBarLayout>
|
||||
|
||||
<android.support.v4.view.ViewPager
|
||||
android:id="@+id/pager"
|
||||
android:layout_width="match_parent"
|
||||
@ -13,7 +29,7 @@
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
app:layout_constraintTop_toBottomOf="@+id/appBarLayout" />
|
||||
|
||||
|
||||
<me.relex.circleindicator.CircleIndicator
|
||||
|
@ -1,8 +1,10 @@
|
||||
<android.support.design.widget.CoordinatorLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
android:layout_height="match_parent"
|
||||
android:descendantFocusability="blocksDescendants">
|
||||
|
||||
<android.support.v4.widget.NestedScrollView
|
||||
android:id="@+id/nestedScrollView"
|
||||
@ -27,65 +29,61 @@
|
||||
android:id="@+id/source"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Small"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/imageView" />
|
||||
app:layout_constraintTop_toBottomOf="@+id/titleView" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/titleView"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="6dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Headline"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/source" />
|
||||
app:layout_constraintTop_toBottomOf="@+id/imageView" />
|
||||
|
||||
|
||||
<WebView
|
||||
android:id="@+id/webcontent"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColorLink="?attr/colorAccent"
|
||||
android:visibility="gone"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginTop="24dp"
|
||||
android:paddingBottom="48dp"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/source"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="24dp"
|
||||
android:paddingBottom="48dp"
|
||||
android:textColorLink="?attr/colorAccent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/titleView"
|
||||
android:textColorLink="?attr/colorAccent"/>
|
||||
|
||||
<!--<org.sufficientlysecure.htmltextview.HtmlTextView
|
||||
android:id="@+id/content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="24dp"
|
||||
android:paddingBottom="48dp"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/titleView" />-->
|
||||
|
||||
app:layout_constraintTop_toBottomOf="@+id/source"
|
||||
android:visibility="gone"/>
|
||||
</android.support.constraint.ConstraintLayout>
|
||||
|
||||
</android.support.v4.widget.NestedScrollView>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Read more</string>
|
||||
<string name="reader_action_open">Open in browser</string>
|
||||
<string name="reader_action_share">Share</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Read more</string>
|
||||
<string name="reader_action_open">Open in browser</string>
|
||||
<string name="reader_action_share">Share</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Read more</string>
|
||||
<string name="reader_action_open">Open in browser</string>
|
||||
<string name="reader_action_share">Share</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Read more</string>
|
||||
<string name="reader_action_open">Open in browser</string>
|
||||
<string name="reader_action_share">Share</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Read more</string>
|
||||
<string name="reader_action_open">Open in browser</string>
|
||||
<string name="reader_action_share">Share</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Read more</string>
|
||||
<string name="reader_action_open">Open in browser</string>
|
||||
<string name="reader_action_share">Share</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Read more</string>
|
||||
<string name="reader_action_open">Open in browser</string>
|
||||
<string name="reader_action_share">Share</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Read more</string>
|
||||
<string name="reader_action_open">Open in browser</string>
|
||||
<string name="reader_action_share">Share</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Leer más</string>
|
||||
<string name="reader_action_open">Abrir en el navegador</string>
|
||||
<string name="reader_action_share">Compartir</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Read more</string>
|
||||
<string name="reader_action_open">Open in browser</string>
|
||||
<string name="reader_action_share">Share</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Lire plus</string>
|
||||
<string name="reader_action_open">Ouvrir</string>
|
||||
<string name="reader_action_share">Partager</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Marquer les articles comme lus à la navigation dans le lecteur d\'article.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Read more</string>
|
||||
<string name="reader_action_open">Open in browser</string>
|
||||
<string name="reader_action_share">Share</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Baca lebih lanjut</string>
|
||||
<string name="reader_action_open">Buka di peramban</string>
|
||||
<string name="reader_action_share">Bagikan</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Read more</string>
|
||||
<string name="reader_action_open">Open in browser</string>
|
||||
<string name="reader_action_share">Share</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Read more</string>
|
||||
<string name="reader_action_open">Open in browser</string>
|
||||
<string name="reader_action_share">Share</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Read more</string>
|
||||
<string name="reader_action_open">Open in browser</string>
|
||||
<string name="reader_action_share">Share</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Read more</string>
|
||||
<string name="reader_action_open">Open in browser</string>
|
||||
<string name="reader_action_share">Share</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Lees meer</string>
|
||||
<string name="reader_action_open">Openen in browser</string>
|
||||
<string name="reader_action_share">Delen</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Read more</string>
|
||||
<string name="reader_action_open">Open in browser</string>
|
||||
<string name="reader_action_share">Share</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Read more</string>
|
||||
<string name="reader_action_open">Open in browser</string>
|
||||
<string name="reader_action_share">Share</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Leia mais</string>
|
||||
<string name="reader_action_open">Abrir no navegador</string>
|
||||
<string name="reader_action_share">Compartilhar</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -1,161 +1,165 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.com-->
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="app_name">"Reader for Selfoss"</string>
|
||||
<string name="title_activity_login">"Log in"</string>
|
||||
<string name="prompt_password">"Password"</string>
|
||||
<string name="prompt_http_password">"HTTP Password"</string>
|
||||
<string name="action_sign_in">"Go"</string>
|
||||
<string name="error_invalid_password">"Password not long enough"</string>
|
||||
<string name="error_field_required">"Field required"</string>
|
||||
<string name="app_name">"Leitor para Selfoss"</string>
|
||||
<string name="title_activity_login">"Iniciar sessão"</string>
|
||||
<string name="prompt_password">"Palavra passe"</string>
|
||||
<string name="prompt_http_password">"Senha HTTP"</string>
|
||||
<string name="action_sign_in">"Ir"</string>
|
||||
<string name="error_invalid_password">"Senha não é longa o suficiente"</string>
|
||||
<string name="error_field_required">"Campo obrigatório"</string>
|
||||
<string name="prompt_url">"Url"</string>
|
||||
<string name="withLoginSwitch">"Login required ?"</string>
|
||||
<string name="withHttpLoginSwitch">"HTTP Login required ?"</string>
|
||||
<string name="login_url_problem">"Oops. You may need to add a \"/\" at the end of the url."</string>
|
||||
<string name="prompt_login">"Username"</string>
|
||||
<string name="prompt_http_login">"HTTP Username"</string>
|
||||
<string name="label_share">"Share"</string>
|
||||
<string name="readAll">"Read all"</string>
|
||||
<string name="action_disconnect">"Disconnect"</string>
|
||||
<string name="title_activity_settings">"Settings"</string>
|
||||
<string name="pref_header_general">"General"</string>
|
||||
<string name="pref_switch_actions_tap_title">"Tap action on the articles"</string>
|
||||
<string name="withLoginSwitch">"É necessário fazer login?"</string>
|
||||
<string name="withHttpLoginSwitch">"É necessário fazer login on HTTP?"</string>
|
||||
<string name="login_url_problem">"Uups. Você pode precisar adicionar uma \"/\" no final da url."</string>
|
||||
<string name="prompt_login">"Nome do usuário"</string>
|
||||
<string name="prompt_http_login">"Nome de utilizador HTTP"</string>
|
||||
<string name="label_share">"Compartilhar"</string>
|
||||
<string name="readAll">"Ler tudo"</string>
|
||||
<string name="action_disconnect">"Desligar"</string>
|
||||
<string name="title_activity_settings">"Configurações"</string>
|
||||
<string name="pref_header_general">"Geral"</string>
|
||||
<string name="pref_switch_actions_tap_title">"Toque em ação sobre os artigos"</string>
|
||||
<string name="add_source_hint_tags">"Tag1, Tag2, Tag3"</string>
|
||||
<string name="add_source_hint_url">"Link"</string>
|
||||
<string name="add_source_hint_name">"Name"</string>
|
||||
<string name="add_source">"Add a source"</string>
|
||||
<string name="add_source_save">"Save"</string>
|
||||
<string name="wrong_infos">"Check your details again."</string>
|
||||
<string name="all_posts_not_read">"All posts weren't read"</string>
|
||||
<string name="all_posts_read">"All posts were read"</string>
|
||||
<string name="cant_get_favs">"Can't get favorites"</string>
|
||||
<string name="cant_get_new_elements">"Can't get new articles"</string>
|
||||
<string name="cant_get_read">"Can't get read articles"</string>
|
||||
<string name="nothing_here">"Nothing here"</string>
|
||||
<string name="tab_new">"New"</string>
|
||||
<string name="tab_read">"All"</string>
|
||||
<string name="tab_favs">"Favorites"</string>
|
||||
<string name="action_about">"About"</string>
|
||||
<string name="marked_as_read">"Item read"</string>
|
||||
<string name="undo_string">"Undo"</string>
|
||||
<string name="addStringNoUrl">"Log in to add sources."</string>
|
||||
<string name="cant_get_sources">"Can't get sources list."</string>
|
||||
<string name="cant_create_source">"Can't create source."</string>
|
||||
<string name="cant_get_spouts">"Can't get spouts list."</string>
|
||||
<string name="form_not_complete">"The form is not complete"</string>
|
||||
<string name="add_source_hint_name">"Nome"</string>
|
||||
<string name="add_source">"Adicionar uma fonte"</string>
|
||||
<string name="add_source_save">"Salvar"</string>
|
||||
<string name="wrong_infos">"Verifique seus dados novamente."</string>
|
||||
<string name="all_posts_not_read">"Todas as postagens não foram lidas"</string>
|
||||
<string name="all_posts_read">"Todas as postagens foram lidas"</string>
|
||||
<string name="cant_get_favs">"Não é possível obter favoritos"</string>
|
||||
<string name="cant_get_new_elements">"Não é possível obter novos artigos"</string>
|
||||
<string name="cant_get_read">"Não é possível ler artigos"</string>
|
||||
<string name="nothing_here">"Nada aqui"</string>
|
||||
<string name="tab_new">"Novo"</string>
|
||||
<string name="tab_read">"Tudo"</string>
|
||||
<string name="tab_favs">"Favoritos"</string>
|
||||
<string name="action_about">"Sobre"</string>
|
||||
<string name="marked_as_read">"Item lido"</string>
|
||||
<string name="undo_string">"Desfazer"</string>
|
||||
<string name="addStringNoUrl">"Logar para adicionar fontes."</string>
|
||||
<string name="cant_get_sources">"Não é possível obter a lista de fontes."</string>
|
||||
<string name="cant_create_source">"Não é possível criar a fonte."</string>
|
||||
<string name="cant_get_spouts">"Não é possível obter a lista de bicos."</string>
|
||||
<string name="form_not_complete">"O formulário não está completo"</string>
|
||||
<string name="pref_header_links">"Links"</string>
|
||||
<string name="issue_tracker_link">"Issue Tracker"</string>
|
||||
<string name="issue_tracker_summary">"Report a bug or ask for a new feature"</string>
|
||||
<string name="warning_wrong_url">"WARNING"</string>
|
||||
<string name="pref_switch_card_view_title">"Card View"</string>
|
||||
<string name="cant_mark_favortie">"Can't mark article as favorite"</string>
|
||||
<string name="cant_unmark_favortie">"Can't remove item from favorite"</string>
|
||||
<string name="share">"Share"</string>
|
||||
<string name="rating_prompt_title">"Enjoying the app ?"</string>
|
||||
<string name="rating_prompt_yes">"Yes !"</string>
|
||||
<string name="rating_prompt_no">"Not really …"</string>
|
||||
<string name="rating_prompt_feedback_title">"Can you tell us why ?"</string>
|
||||
<string name="rating_prompt_feedback_yes">"OK !"</string>
|
||||
<string name="rating_prompt_feedback_no">"Not now."</string>
|
||||
<string name="rating_prompt_rating_title">"Great ! Can you rate us on the Store ?"</string>
|
||||
<string name="rating_prompt_rating_yes">"Sure !"</string>
|
||||
<string name="rating_prompt_rating_no">"Not right now."</string>
|
||||
<string name="rating_prompt_thanks">"Thanks, your feedback help enhance the app !"</string>
|
||||
<string name="switch_unread_count">"Display the unread count as a badge for the bottom bar."</string>
|
||||
<string name="switch_unread_count_title">"Display unread count"</string>
|
||||
<string name="display_all_counts_title">"Display count for favorite and read"</string>
|
||||
<string name="menu_share_the_app">"Invite friends"</string>
|
||||
<string name="invitation_title">"Try this app for your Selfoss RSS feeds !"</string>
|
||||
<string name="invitation_message">"I use this app for my Selfoss RSS feeds. You may like it too !"</string>
|
||||
<string name="invitation_cta">"Try the app"</string>
|
||||
<string name="text_wrong_url">"You seem to be trying to use an invalid URL. Make sure it is correct, and if the problem persists, contact me (via the store contact link). Please note that the app needs you to be using Selfoss. You can't access RSS feeds without it."</string>
|
||||
<string name="pref_general_internal_browser_title">"Open links inside the app"</string>
|
||||
<string name="pref_general_internal_browser_on">"Articles will open inside the app"</string>
|
||||
<string name="pref_general_internal_browser_off">"Articles will open with your default browser"</string>
|
||||
<string name="prefer_article_viewer_title">"Use the article viewer"</string>
|
||||
<string name="prefer_article_viewer_on">"Will use the article viewer instead of the internal browser"</string>
|
||||
<string name="prefer_article_viewer_off">"Will use the internal browser instead of the article viewer"</string>
|
||||
<string name="pref_general_category_links">"Link handling"</string>
|
||||
<string name="pref_general_category_displaying">"Displaying"</string>
|
||||
<string name="pref_general_category_actions">"Actions"</string>
|
||||
<string name="pref_switch_card_view_on">"The articles will be displayed as cards"</string>
|
||||
<string name="pref_switch_card_view_off">"The articles will be displayed as a list"</string>
|
||||
<string name="pref_switch_actions_tap_on">"Displays the action bar under the article"</string>
|
||||
<string name="pref_switch_actions_tap_off">"When selecting an article it will open in your selected browser"</string>
|
||||
<string name="menu_home_refresh">"Update remote"</string>
|
||||
<string name="refresh_success_response">"The remote is updated, you can now reload the articles list"</string>
|
||||
<string name="refresh_failer_message">"The update didn't work, try again later, or check your selfoss logs."</string>
|
||||
<string name="refresh_in_progress">"Refresh in progress"</string>
|
||||
<string name="new_apk_available_title">"A new APK is available."</string>
|
||||
<string name="new_apk_available_message">"A new APK is available to download on the official repository."</string>
|
||||
<string name="new_apk_available_get">"Download now"</string>
|
||||
<string name="new_apk_available_no">"Ignore version"</string>
|
||||
<string name="intro_hello_title">"Hi there !"</string>
|
||||
<string name="intro_hello_message">"Thanks for downloading the app !"</string>
|
||||
<string name="intro_needs_selfoss_title">"Before you start…"</string>
|
||||
<string name="intro_needs_selfoss_message">"You can't use the app without a Selfoss instance."</string>
|
||||
<string name="intro_needs_selfoss_link">"What is Selfoss ?"</string>
|
||||
<string name="intro_all_set_title">"All set !"</string>
|
||||
<string name="intro_all_set_message">"You are ready to use the app. Don't forget to go to the settings page to configure your app, and where you'll find some useful links."</string>
|
||||
<string name="card_height_title">Full height cards</string>
|
||||
<string name="card_height_on">Cards height will adjust to its content</string>
|
||||
<string name="card_height_off">Card height will be fixed</string>
|
||||
<string name="source_code">Source code</string>
|
||||
<string name="cant_mark_read">Can\'t mark article as read</string>
|
||||
<string name="drawer_error_loading_tags">Error loading tags…</string>
|
||||
<string name="drawer_error_loading_sources">Error loading sources…</string>
|
||||
<string name="drawer_item_filters">Filters</string>
|
||||
<string name="drawer_action_clear">clear</string>
|
||||
<string name="drawer_item_tags">Tags</string>
|
||||
<string name="drawer_item_sources">Sources</string>
|
||||
<string name="drawer_action_edit">edit</string>
|
||||
<string name="cache_drawer_error" tools:keep="@string/cache_drawer_error">Couldn\'t cache your drawer data</string>
|
||||
<string name="no_tags_loaded">No tags loaded</string>
|
||||
<string name="no_sources_loaded">No sources loaded</string>
|
||||
<string name="drawer_loading">Loading …</string>
|
||||
<string name="menu_home_search">Search</string>
|
||||
<string name="can_delete_source">Can\'t delete the source…</string>
|
||||
<string name="base_url_error">There was an issue when trying to communicate with your Selfoss Instance. If the issue persists, please get in touch with me.</string>
|
||||
<string name="pref_header_theme">Themes</string>
|
||||
<string name="default_theme">Default</string>
|
||||
<string name="teal_orange_theme">Teal/Orange/Light</string>
|
||||
<string name="cyan_pink_theme">Cyan/Pink/Light</string>
|
||||
<string name="grey_orange_theme">Grey/Orange/Light</string>
|
||||
<string name="blue_amber_theme">Blue/Amber/Light</string>
|
||||
<string name="indigo_pink_theme">Indigo/Pink/Light</string>
|
||||
<string name="red_teal_theme">Red/Teal/Light</string>
|
||||
<string name="teal_orange_dark_theme">Teal/Orange/Dark</string>
|
||||
<string name="cyan_pink_dark_theme">Cyan/Pink/Dark</string>
|
||||
<string name="default_dark_theme">Default/Dark</string>
|
||||
<string name="grey_orange_dark_theme">Grey/Orange/Dark</string>
|
||||
<string name="blue_amber_dark_theme">Blue/Amber/Dark</string>
|
||||
<string name="indigo_pink_dark_theme">Indigo/Pink/Dark</string>
|
||||
<string name="red_teal_dark_theme">Red/Teal/Dark</string>
|
||||
<string name="pref_header_debug">Debug</string>
|
||||
<string name="login_debug_title">Activate to log login errors</string>
|
||||
<string name="login_debug_on">Any error on the login page will be logged</string>
|
||||
<string name="login_debug_off">No log on the login page</string>
|
||||
<string name="login_menu_debug">Debug</string>
|
||||
<string name="self_hosted_cert_switch">Using a self hosted certificate ?</string>
|
||||
<string name="self_signed_cert_warning">Due to security reasons, self signed certificates are not supported by default. By activating this, I\'ll not be responsible of any security problem you encounter.</string>
|
||||
<string name="pref_selfoss_category">Selfoss Api</string>
|
||||
<string name="pref_api_items_number_title">Loaded items number</string>
|
||||
<string name="read_debug_title">Read articles appearing as unread ?</string>
|
||||
<string name="read_debug_off">No log when marking an item as read</string>
|
||||
<string name="read_debug_on">Api calls will be logged when marking an article as read</string>
|
||||
<string name="summary_debug_identifier">Debug identifier</string>
|
||||
<string name="unique_id_to_clipboard">Identifier copied to your clipboard</string>
|
||||
<string name="display_header_drawer_summary">Display a header with the selfoss instance url on the lateral drawer.</string>
|
||||
<string name="display_header_drawer_title">Account header</string>
|
||||
<string name="login_everything_title">Logging every api calls</string>
|
||||
<string name="login_everything_on">This will log every api call for debug purpose.</string>
|
||||
<string name="login_everything_off">No api call will be logged</string>
|
||||
<string name="pref_general_infinite_loading_title">Load more articles on scroll</string>
|
||||
<string name="translation">Translation</string>
|
||||
<string name="cant_open_invalid_url">The item url is invalid. I\'m looking into solving this issue so the app won\'t crash.</string>
|
||||
<string name="drawer_report_bug">Report a bug</string>
|
||||
<string name="items_number_should_be_number">The items number should be an integer.</string>
|
||||
<string name="reader_action_more">Read more</string>
|
||||
<string name="reader_action_open">Open in browser</string>
|
||||
<string name="reader_action_share">Share</string>
|
||||
<string name="issue_tracker_link">"Rastreador de problemas"</string>
|
||||
<string name="issue_tracker_summary">"Relatar um bug ou pedir um novo recurso"</string>
|
||||
<string name="warning_wrong_url">"AVISO"</string>
|
||||
<string name="pref_switch_card_view_title">"Vista de cartão"</string>
|
||||
<string name="cant_mark_favortie">"Não é possível marcar o artigo como favorito"</string>
|
||||
<string name="cant_unmark_favortie">"Não pode remover o item do favorito"</string>
|
||||
<string name="share">"Compartilhar"</string>
|
||||
<string name="rating_prompt_title">"Gosta da aplicação?"</string>
|
||||
<string name="rating_prompt_yes">"Sim!"</string>
|
||||
<string name="rating_prompt_no">"Não realmente…"</string>
|
||||
<string name="rating_prompt_feedback_title">"Pode nos dizer por que?"</string>
|
||||
<string name="rating_prompt_feedback_yes">"Okey!"</string>
|
||||
<string name="rating_prompt_feedback_no">"Agora não."</string>
|
||||
<string name="rating_prompt_rating_title">"Legal! Você pode classificar-na loja?"</string>
|
||||
<string name="rating_prompt_rating_yes">"Claro!"</string>
|
||||
<string name="rating_prompt_rating_no">"Agora não."</string>
|
||||
<string name="rating_prompt_thanks">"Obrigado, seu feedback ajudar a realçar o app!"</string>
|
||||
<string name="switch_unread_count">"Exibir a contagem não lida como um emblema para a barra inferior."</string>
|
||||
<string name="switch_unread_count_title">"Exibir a contagem não lida"</string>
|
||||
<string name="display_all_counts_title">"Exibir a contagem para o favorito e leitura"</string>
|
||||
<string name="menu_share_the_app">"Convidar amigos"</string>
|
||||
<string name="invitation_title">"Tente este aplicativo para seus Selfoss RSS feeds!"</string>
|
||||
<string name="invitation_message">"Eu uso este app para meus Selfoss RSS feeds. Você pode gostar também!"</string>
|
||||
<string name="invitation_cta">"Tente o aplicativo"</string>
|
||||
<string name="text_wrong_url">"Você parece estar tentando usar um URL inválido. Certifique-se de que está correto, e se o problema persistir, entre em contato comigo (através do link de contato da loja). Por favor, note que o aplicativo precisa que você esteja usando o Selfoss. Você não pode acessar feeds RSS sem ele."</string>
|
||||
<string name="pref_general_internal_browser_title">"Abrir links dentro do app"</string>
|
||||
<string name="pref_general_internal_browser_on">"Artigos serão aberto dentro do aplicativo"</string>
|
||||
<string name="pref_general_internal_browser_off">"Artigos serão aberto com o seu navegador padrão"</string>
|
||||
<string name="prefer_article_viewer_title">"Use o Visualizador de artigo"</string>
|
||||
<string name="prefer_article_viewer_on">"Vai usar o Visualizador de artigo em vez do navegador interno"</string>
|
||||
<string name="prefer_article_viewer_off">"Vai usar o navegador interno em vez do Visualizador de artigo"</string>
|
||||
<string name="pref_general_category_links">"Manipulação de ligações"</string>
|
||||
<string name="pref_general_category_displaying">"Mostrando"</string>
|
||||
<string name="pref_general_category_actions">"Ações"</string>
|
||||
<string name="pref_switch_card_view_on">"Os artigos serão exibidos como cartões"</string>
|
||||
<string name="pref_switch_card_view_off">"Os artigos serão exibidos como lista"</string>
|
||||
<string name="pref_switch_actions_tap_on">"Exibe a barra de ação sob o artigo"</string>
|
||||
<string name="pref_switch_actions_tap_off">"Ao selecionar um artigo, ele será aberto no seu navegador selecionado"</string>
|
||||
<string name="menu_home_refresh">"Atualização remota"</string>
|
||||
<string name="refresh_success_response">"O remoto é atualizado, você agora pode recarregar a lista de artigos"</string>
|
||||
<string name="refresh_failer_message">"A atualização não funcionar, tente novamente mais tarde ou verifique seus logs de selfoss."</string>
|
||||
<string name="refresh_in_progress">"Atualização em curso"</string>
|
||||
<string name="new_apk_available_title">"Está disponível um novo APK."</string>
|
||||
<string name="new_apk_available_message">"Um APK novo está disponível para download no repositório oficial."</string>
|
||||
<string name="new_apk_available_get">"Fazer download agora"</string>
|
||||
<string name="new_apk_available_no">"Ignorar esta versão"</string>
|
||||
<string name="intro_hello_title">"Olá ai!"</string>
|
||||
<string name="intro_hello_message">"Obrigado por baixar o aplicativo!"</string>
|
||||
<string name="intro_needs_selfoss_title">"Antes de começar…"</string>
|
||||
<string name="intro_needs_selfoss_message">"Você não pode usar o app sem uma instância de Selfoss."</string>
|
||||
<string name="intro_needs_selfoss_link">"O que é Selfoss?"</string>
|
||||
<string name="intro_all_set_title">"Tudo configurado!"</string>
|
||||
<string name="intro_all_set_message">"Você está pronto para usar o app. não se esqueça de ir para a página de configurações para configurar o seu aplicativo, e onde você encontrará alguns links úteis."</string>
|
||||
<string name="card_height_title">Cartões de altura total</string>
|
||||
<string name="card_height_on">Altura de cartas irá ajustar ao seu conteúdo</string>
|
||||
<string name="card_height_off">Altura do cartão será corrigida</string>
|
||||
<string name="source_code">Código fonte</string>
|
||||
<string name="cant_mark_read">Não pode marcar o artigo como lido</string>
|
||||
<string name="drawer_error_loading_tags">Erro ao carregar etiquetas…</string>
|
||||
<string name="drawer_error_loading_sources">Erro ao carregar fontes…</string>
|
||||
<string name="drawer_item_filters">Filtros</string>
|
||||
<string name="drawer_action_clear">limpar</string>
|
||||
<string name="drawer_item_tags">Etiquetas</string>
|
||||
<string name="drawer_item_sources">Fontes</string>
|
||||
<string name="drawer_action_edit">editar</string>
|
||||
<string name="cache_drawer_error" tools:keep="@string/cache_drawer_error">Não armazenar em cache dados sua gaveta</string>
|
||||
<string name="no_tags_loaded">Não tags carregado</string>
|
||||
<string name="no_sources_loaded">Não há fontes carregadas</string>
|
||||
<string name="drawer_loading">A carregar…</string>
|
||||
<string name="menu_home_search">Buscar</string>
|
||||
<string name="can_delete_source">Não é possível excluir a fonte…</string>
|
||||
<string name="base_url_error">Houve um problema ao tentar se comunicar com sua instância de Selfoss. Se o problema persistir, por favor entre em contato comigo.</string>
|
||||
<string name="pref_header_theme">Temas</string>
|
||||
<string name="default_theme">Predefinição</string>
|
||||
<string name="teal_orange_theme">Verde-azulado/laranja/Luz</string>
|
||||
<string name="cyan_pink_theme">Ciano/rosa/luz</string>
|
||||
<string name="grey_orange_theme">Cinza/laranja/luz</string>
|
||||
<string name="blue_amber_theme">Azul/âmbar/luz</string>
|
||||
<string name="indigo_pink_theme">Índigo/rosa/luz</string>
|
||||
<string name="red_teal_theme">Vermelha/verde-azulado/Luz</string>
|
||||
<string name="teal_orange_dark_theme">Verde-azulado/laranja/escuro</string>
|
||||
<string name="cyan_pink_dark_theme">Ciano/rosa/escura</string>
|
||||
<string name="default_dark_theme">Padrão/escuro</string>
|
||||
<string name="grey_orange_dark_theme">Cinza/laranja/Escuro</string>
|
||||
<string name="blue_amber_dark_theme">Azul/âmbar/escuro</string>
|
||||
<string name="indigo_pink_dark_theme">Índigo/rosa/escura</string>
|
||||
<string name="red_teal_dark_theme">Verde-azulado/vermelho/escuro</string>
|
||||
<string name="pref_header_debug">Depurar</string>
|
||||
<string name="login_debug_title">Ativar para registrar erros de logon</string>
|
||||
<string name="login_debug_on">Qualquer erro na página de login será registrado</string>
|
||||
<string name="login_debug_off">Não há registro na página de login</string>
|
||||
<string name="login_menu_debug">Depurar</string>
|
||||
<string name="self_hosted_cert_switch">Usando um certificado hospedado?</string>
|
||||
<string name="self_signed_cert_warning">Devido a razões de segurança, auto certificados auto-assinados não são suportados por padrão. Ao activar isto, eu não vou ser responsável de qualquer problema de segurança que você encontrar.</string>
|
||||
<string name="pref_selfoss_category">Api de Selfoss</string>
|
||||
<string name="pref_api_items_number_title">Número de itens carregados</string>
|
||||
<string name="read_debug_title">Leia artigos aparecem como não lidas?</string>
|
||||
<string name="read_debug_off">Sem log quando marcar um item como lido</string>
|
||||
<string name="read_debug_on">Chamadas de Api serão registradas quando marcar um artigo como lido</string>
|
||||
<string name="summary_debug_identifier">Depurar o identificador</string>
|
||||
<string name="unique_id_to_clipboard">Identificador de copiados para a área de transferência</string>
|
||||
<string name="display_header_drawer_summary">Exibir um cabeçalho com o url de instância de selfoss na gaveta lateral.</string>
|
||||
<string name="display_header_drawer_title">Cabeçalho de conta</string>
|
||||
<string name="login_everything_title">Logando todas as chamadas api</string>
|
||||
<string name="login_everything_on">Isto irá registrar todas as chamadas de api para fins de depuração.</string>
|
||||
<string name="login_everything_off">Nenhuma chamada de api será registrada</string>
|
||||
<string name="pref_general_infinite_loading_title">Carregar mais artigos no pergaminho</string>
|
||||
<string name="translation">Tradução</string>
|
||||
<string name="cant_open_invalid_url">A url do item é inválido. Eu estou olhando para resolver esta questão, para que o app não vai falhar.</string>
|
||||
<string name="drawer_report_bug">Reportar falha</string>
|
||||
<string name="items_number_should_be_number">O número de itens deve ser um número inteiro.</string>
|
||||
<string name="reader_action_more">Ler mais</string>
|
||||
<string name="reader_action_open">Abrir no browser</string>
|
||||
<string name="reader_action_share">Compartilhar</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Artigos de marca como lida quando passar entre artigos.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Read more</string>
|
||||
<string name="reader_action_open">Open in browser</string>
|
||||
<string name="reader_action_share">Share</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Read more</string>
|
||||
<string name="reader_action_open">Open in browser</string>
|
||||
<string name="reader_action_share">Share</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Read more</string>
|
||||
<string name="reader_action_open">Open in browser</string>
|
||||
<string name="reader_action_share">Share</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Read more</string>
|
||||
<string name="reader_action_open">Open in browser</string>
|
||||
<string name="reader_action_share">Share</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Daha fazlasını görüntüle</string>
|
||||
<string name="reader_action_open">Tarayıcıda aç</string>
|
||||
<string name="reader_action_share">Paylaş</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Read more</string>
|
||||
<string name="reader_action_open">Open in browser</string>
|
||||
<string name="reader_action_share">Share</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">Read more</string>
|
||||
<string name="reader_action_open">Open in browser</string>
|
||||
<string name="reader_action_share">Share</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">阅读更多</string>
|
||||
<string name="reader_action_open">在浏览器中打开</string>
|
||||
<string name="reader_action_share">分享</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -158,4 +158,8 @@
|
||||
<string name="reader_action_more">阅读更多</string>
|
||||
<string name="reader_action_open">在浏览器中打开</string>
|
||||
<string name="reader_action_share">分享</string>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -161,4 +161,8 @@
|
||||
<string name="reader_action_more">Read more</string>
|
||||
<string name="reader_action_open">Open in browser</string>
|
||||
<string name="reader_action_share">Share</string>
|
||||
</resources>
|
||||
<string name="pref_switch_actions_pager_scroll">Mark articles as read when swiping between articles.</string>
|
||||
<string name="prefer_webview_in_article_viewer_title">Use a webview in the article viewer.</string>
|
||||
<string name="prefer_webview_in_article_viewer_on">Using the webview for the content of the article viewer. Urls, gifs and images will be better handled, but may be slower.</string>
|
||||
<string name="prefer_webview_in_article_viewer_off">The content of the article will be displayed as simple text with links and images. Urls may not work, and gifs won\'t load.</string>
|
||||
</resources>
|
||||
|
@ -1,11 +1,5 @@
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<!--<SwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="preferred_browser"
|
||||
android:summary="@string/pref_switch_browser"
|
||||
android:title="@string/pref_switch_browser_title"/>-->
|
||||
|
||||
<PreferenceCategory
|
||||
android:title="@string/pref_selfoss_category">
|
||||
|
||||
@ -39,6 +33,14 @@
|
||||
android:summaryOff="@string/prefer_article_viewer_off"
|
||||
android:summaryOn="@string/prefer_article_viewer_on"
|
||||
android:title="@string/prefer_article_viewer_title" />
|
||||
<SwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:dependency="prefer_article_viewer"
|
||||
android:key="prefer_webview_in_article_viewer"
|
||||
android:summaryOff="@string/prefer_webview_in_article_viewer_off"
|
||||
android:summaryOn="@string/prefer_webview_in_article_viewer_on"
|
||||
android:title="@string/prefer_webview_in_article_viewer_title" />
|
||||
|
||||
<PreferenceCategory
|
||||
android:title="@string/pref_general_category_displaying">
|
||||
|
||||
@ -81,5 +83,9 @@
|
||||
android:summaryOff="@string/pref_switch_actions_tap_off"
|
||||
android:summaryOn="@string/pref_switch_actions_tap_on"
|
||||
android:title="@string/pref_switch_actions_tap_title" />
|
||||
<SwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="mark_on_scroll"
|
||||
android:title="@string/pref_switch_actions_pager_scroll" />
|
||||
|
||||
</PreferenceScreen>
|
||||
|
@ -1,7 +1,7 @@
|
||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||
|
||||
buildscript {
|
||||
ext.kotlin_version = '1.1.60'
|
||||
ext.kotlin_version = '1.2.0'
|
||||
repositories {
|
||||
jcenter()
|
||||
google()
|
||||
@ -17,8 +17,7 @@ buildscript {
|
||||
// in the individual module build.gradle files
|
||||
classpath 'com.google.gms:google-services:3.1.1'
|
||||
|
||||
// Not the official version https://stackoverflow.com/questions/46525040/sonarqube-android-not-working-for-gradle-3-0-0/46813528#46813528
|
||||
classpath "com.github.Shusshu:sonar-scanner-gradle:feature~support-android-gradle-3-SNAPSHOT"
|
||||
classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6.1"
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user