Compare commits

...

11 Commits

Author SHA1 Message Date
Amine
aa7c630818 erge branch 'master' of github.com:aminecmi/ReaderforSelfoss 2018-09-15 16:26:22 +02:00
Amine
7fb54f14c7 Fixed bug 2018-09-15 16:24:29 +02:00
Amine Bou
3d709c02b7 New Crowdin translations (#219)
* New translations strings.xml (French)

* New translations strings.xml (French)

* New translations strings.xml (Spanish)

* New translations strings.xml (Galician)
2018-09-12 13:16:07 +02:00
Amine
339d384561 Changelog. 2018-09-10 20:29:22 +02:00
Amine Bou
50338d51af New Crowdin translations (#218)
* New translations strings.xml (French)

* New translations strings.xml (French)
2018-09-10 15:17:16 +02:00
Amine Bou
92dbabf899 New Crowdin translations (#217)
* New translations strings.xml (Catalan)

* New translations strings.xml (Japanese)

* New translations strings.xml (Vietnamese)

* New translations strings.xml (Ukrainian)

* New translations strings.xml (Turkish)

* New translations strings.xml (Swedish)

* New translations strings.xml (Spanish)

* New translations strings.xml (Serbian (Cyrillic))

* New translations strings.xml (Russian)

* New translations strings.xml (Romanian)

* New translations strings.xml (Portuguese, Brazilian)

* New translations strings.xml (Portuguese)

* New translations strings.xml (Polish)

* New translations strings.xml (Norwegian)

* New translations strings.xml (Korean)

* New translations strings.xml (Italian)

* New translations strings.xml (Afrikaans)

* New translations strings.xml (Indonesian)

* New translations strings.xml (Hungarian)

* New translations strings.xml (Hebrew)

* New translations strings.xml (Greek)

* New translations strings.xml (German)

* New translations strings.xml (French)

* New translations strings.xml (Finnish)

* New translations strings.xml (Dutch)

* New translations strings.xml (Danish)

* New translations strings.xml (Czech)

* New translations strings.xml (Chinese Traditional)

* New translations strings.xml (Chinese Simplified)

* New translations strings.xml (Arabic)

* New translations strings.xml (Galician)
2018-09-09 20:59:34 +02:00
Amine
0043021390 Merge branch 'master' of github.com:aminecmi/ReaderforSelfoss 2018-09-09 20:40:13 +02:00
Amine
70ba9b20da Items marked as read on open. Closes #208. 2018-09-09 20:39:27 +02:00
Amine
7fda0a04a1 Fixes #215. 2018-09-09 19:45:49 +02:00
Amine
3db3157dc9 Trying to fix a strange issue with the loading when hiding items.. 2018-09-09 19:44:01 +02:00
Amine Bou
2089fe60ca New Crowdin translations (#214)
* New translations strings.xml (Galician)

* New translations strings.xml (French)

* New translations strings.xml (Spanish)
2018-08-06 15:49:50 +02:00
45 changed files with 210 additions and 178 deletions

View File

@@ -16,6 +16,8 @@
- Versions updates. - Versions updates.
- Fixes #215, #208.
**1.5.7.x** **1.5.7.x**
- Added confirmation to the mark as read and update menues. - Added confirmation to the mark as read and update menues.

View File

@@ -36,11 +36,11 @@ android {
targetCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8
} }
compileSdkVersion 28 compileSdkVersion 28
buildToolsVersion '28.0.1' buildToolsVersion '28.0.2'
defaultConfig { defaultConfig {
applicationId "apps.amine.bou.readerforselfoss" applicationId "apps.amine.bou.readerforselfoss"
minSdkVersion 16 minSdkVersion 16
targetSdkVersion 27 targetSdkVersion 28
versionCode versionCodeFromGit() versionCode versionCodeFromGit()
versionName versionNameFromGit() versionName versionNameFromGit()
@@ -66,6 +66,7 @@ android {
buildConfigField "String", "LOGIN_URL", appLoginUrl buildConfigField "String", "LOGIN_URL", appLoginUrl
buildConfigField "String", "LOGIN_USERNAME", appLoginUsername buildConfigField "String", "LOGIN_USERNAME", appLoginUsername
buildConfigField "String", "LOGIN_PASSWORD", appLoginPassword buildConfigField "String", "LOGIN_PASSWORD", appLoginPassword
applicationIdSuffix ".dev"
} }
} }
flavorDimensions "build" flavorDimensions "build"
@@ -93,13 +94,13 @@ dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs') implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
// Android Support // Android Support
implementation 'com.android.support:appcompat-v7:27.1.1' implementation "com.android.support:appcompat-v7:$android_version"
implementation 'com.android.support:design:27.1.1' implementation "com.android.support:design:$android_version"
implementation 'com.android.support:recyclerview-v7:27.1.1' implementation "com.android.support:recyclerview-v7:$android_version"
implementation 'com.android.support:support-v4:27.1.1' implementation "com.android.support:support-v4:$android_version"
implementation 'com.android.support:support-vector-drawable:27.1.1' implementation "com.android.support:support-vector-drawable:$android_version"
implementation 'com.android.support:customtabs:27.1.1' implementation "com.android.support:customtabs:$android_version"
implementation 'com.android.support:cardview-v7:27.1.1' implementation "com.android.support:cardview-v7:$android_version"
implementation 'com.android.support.constraint:constraint-layout:1.1.0' implementation 'com.android.support.constraint:constraint-layout:1.1.0'
//multidex //multidex

View File

@@ -42,7 +42,6 @@ import apps.amine.bou.readerforselfoss.utils.customtabs.CustomTabActivityHelper
import apps.amine.bou.readerforselfoss.utils.drawer.CustomUrlPrimaryDrawerItem import apps.amine.bou.readerforselfoss.utils.drawer.CustomUrlPrimaryDrawerItem
import apps.amine.bou.readerforselfoss.utils.flattenTags import apps.amine.bou.readerforselfoss.utils.flattenTags
import apps.amine.bou.readerforselfoss.utils.longHash import apps.amine.bou.readerforselfoss.utils.longHash
import apps.amine.bou.readerforselfoss.utils.maybeHandleSilentException
import co.zsmb.materialdrawerkt.builders.accountHeader import co.zsmb.materialdrawerkt.builders.accountHeader
import co.zsmb.materialdrawerkt.builders.drawer import co.zsmb.materialdrawerkt.builders.drawer
import co.zsmb.materialdrawerkt.builders.footer import co.zsmb.materialdrawerkt.builders.footer
@@ -66,7 +65,6 @@ import com.mikepenz.materialdrawer.model.DividerDrawerItem
import com.mikepenz.materialdrawer.model.PrimaryDrawerItem import com.mikepenz.materialdrawer.model.PrimaryDrawerItem
import com.mikepenz.materialdrawer.model.SecondaryDrawerItem import com.mikepenz.materialdrawer.model.SecondaryDrawerItem
import kotlinx.android.synthetic.main.activity_home.* import kotlinx.android.synthetic.main.activity_home.*
import org.acra.ACRA
import retrofit2.Call import retrofit2.Call
import retrofit2.Callback import retrofit2.Callback
import retrofit2.Response import retrofit2.Response
@@ -177,13 +175,12 @@ class HomeActivity : AppCompatActivity(), SearchView.OnQueryTextListener {
alertDialog.setMessage(getString(R.string.gdpr_dialog_message)) alertDialog.setMessage(getString(R.string.gdpr_dialog_message))
alertDialog.setButton( alertDialog.setButton(
AlertDialog.BUTTON_NEUTRAL, AlertDialog.BUTTON_NEUTRAL,
"OK", "OK"
{ dialog, _ -> ) { dialog, _ ->
sharedEditor.putBoolean("GDPR_shown", true) sharedEditor.putBoolean("GDPR_shown", true)
sharedEditor.commit() sharedEditor.commit()
dialog.dismiss() dialog.dismiss()
} }
)
alertDialog.show() alertDialog.show()
} }
@@ -242,44 +239,22 @@ class HomeActivity : AppCompatActivity(), SearchView.OnQueryTextListener {
is ItemListAdapter -> adapter.removeItemAtIndex(position) is ItemListAdapter -> adapter.removeItemAtIndex(position)
} }
if (items.size > 0) { badgeNew--
badgeNew-- reloadBadgeContent()
reloadBadgeContent()
val tagHashes = i.tags.split(",").map { it.longHash() } val tagHashes = i.tags.split(",").map { it.longHash() }
tagsBadge = tagsBadge.map { tagsBadge = tagsBadge.map {
if (tagHashes.contains(it.key)) { if (tagHashes.contains(it.key)) {
(it.key to (it.value - 1)) (it.key to (it.value - 1))
} else { } else {
(it.key to it.value) (it.key to it.value)
}
}.toMap()
reloadTagsBadges()
} else {
tabNewBadge.hide()
}
val manager = recyclerView.layoutManager
val lastVisibleItem: Int = when (manager) {
is StaggeredGridLayoutManager -> manager.findLastCompletelyVisibleItemPositions(
null
).last()
is GridLayoutManager -> manager.findLastCompletelyVisibleItemPosition()
else -> 0
}
Log.e("TAGTAG", "$lastVisibleItem === ${items.size} && ${items.size} <= ${maxItemNumber()} && ${!lastFetchDone}x")
if (lastVisibleItem === items.size &&
items.size <= maxItemNumber() &&
!lastFetchDone
) {
if (maxItemNumber() <= itemsNumber) {
lastFetchDone = true
} }
getElementsAccordingToTab( }.toMap()
appendResults = true, reloadTagsBadges()
offsetOverride = lastVisibleItem
) // Just load everythin
if (items.size <= 0) {
getElementsAccordingToTab()
} }
} else { } else {
Toast.makeText( Toast.makeText(
@@ -1012,11 +987,10 @@ class HomeActivity : AppCompatActivity(), SearchView.OnQueryTextListener {
fullHeightCards, fullHeightCards,
appColors, appColors,
debugReadingItems, debugReadingItems,
userIdentifier, userIdentifier
{ ) {
updateItems(it) updateItems(it)
} }
)
} else { } else {
recyclerAdapter = recyclerAdapter =
ItemListAdapter( ItemListAdapter(
@@ -1029,11 +1003,10 @@ class HomeActivity : AppCompatActivity(), SearchView.OnQueryTextListener {
articleViewer, articleViewer,
debugReadingItems, debugReadingItems,
userIdentifier, userIdentifier,
appColors, appColors
{ ) {
updateItems(it) updateItems(it)
} }
)
recyclerView.addItemDecoration( recyclerView.addItemDecoration(
DividerItemDecoration( DividerItemDecoration(
@@ -1161,7 +1134,7 @@ class HomeActivity : AppCompatActivity(), SearchView.OnQueryTextListener {
override fun onOptionsItemSelected(item: MenuItem): Boolean { override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) { when (item.itemId) {
R.id.refresh -> { R.id.refresh -> {
needsConfirmation(R.string.menu_home_refresh, R.string.refresh_dialog_message, { needsConfirmation(R.string.menu_home_refresh, R.string.refresh_dialog_message) {
api.update().enqueue(object : Callback<String> { api.update().enqueue(object : Callback<String> {
override fun onResponse( override fun onResponse(
call: Call<String>, call: Call<String>,
@@ -1183,12 +1156,12 @@ class HomeActivity : AppCompatActivity(), SearchView.OnQueryTextListener {
} }
}) })
Toast.makeText(this, R.string.refresh_in_progress, Toast.LENGTH_SHORT).show() Toast.makeText(this, R.string.refresh_in_progress, Toast.LENGTH_SHORT).show()
}) }
return true return true
} }
R.id.readAll -> { R.id.readAll -> {
if (elementsShown == UNREAD_SHOWN) { if (elementsShown == UNREAD_SHOWN) {
needsConfirmation(R.string.readAll, R.string.markall_dialog_message, { needsConfirmation(R.string.readAll, R.string.markall_dialog_message) {
swipeRefreshLayout.isRefreshing = false swipeRefreshLayout.isRefreshing = false
val ids = allItems.map { it.id } val ids = allItems.map { it.id }
val itemsByTag: Map<Long, Int> = val itemsByTag: Map<Long, Int> =
@@ -1238,7 +1211,6 @@ class HomeActivity : AppCompatActivity(), SearchView.OnQueryTextListener {
) )
) )
} }
} }
swipeRefreshLayout.isRefreshing = false swipeRefreshLayout.isRefreshing = false
@@ -1268,7 +1240,7 @@ class HomeActivity : AppCompatActivity(), SearchView.OnQueryTextListener {
).show() ).show()
} }
handleListResult() handleListResult()
}) }
} }
return true return true
} }

View File

@@ -1,7 +1,5 @@
package apps.amine.bou.readerforselfoss package apps.amine.bou.readerforselfoss
import android.content.Context
import android.content.res.Resources
import android.graphics.drawable.ColorDrawable import android.graphics.drawable.ColorDrawable
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
@@ -9,7 +7,6 @@ import android.preference.PreferenceManager
import android.support.v4.app.FragmentManager import android.support.v4.app.FragmentManager
import android.support.v4.app.FragmentStatePagerAdapter import android.support.v4.app.FragmentStatePagerAdapter
import android.support.v4.content.ContextCompat import android.support.v4.content.ContextCompat
import android.support.v4.view.ViewPager
import android.support.v7.app.AppCompatActivity import android.support.v7.app.AppCompatActivity
import android.view.Menu import android.view.Menu
import android.view.MenuItem import android.view.MenuItem
@@ -22,14 +19,10 @@ import apps.amine.bou.readerforselfoss.fragments.ArticleFragment
import apps.amine.bou.readerforselfoss.themes.AppColors import apps.amine.bou.readerforselfoss.themes.AppColors
import apps.amine.bou.readerforselfoss.themes.Toppings import apps.amine.bou.readerforselfoss.themes.Toppings
import apps.amine.bou.readerforselfoss.transformers.DepthPageTransformer import apps.amine.bou.readerforselfoss.transformers.DepthPageTransformer
import apps.amine.bou.readerforselfoss.utils.Config
import apps.amine.bou.readerforselfoss.utils.maybeHandleSilentException
import apps.amine.bou.readerforselfoss.utils.succeeded
import apps.amine.bou.readerforselfoss.utils.toggleStar import apps.amine.bou.readerforselfoss.utils.toggleStar
import com.ftinc.scoop.Scoop import com.ftinc.scoop.Scoop
import kotlinx.android.synthetic.main.activity_reader.* import kotlinx.android.synthetic.main.activity_reader.*
import me.relex.circleindicator.CircleIndicator import me.relex.circleindicator.CircleIndicator
import org.acra.ACRA
import retrofit2.Call import retrofit2.Call
import retrofit2.Callback import retrofit2.Callback
import retrofit2.Response import retrofit2.Response
@@ -37,9 +30,7 @@ import retrofit2.Response
class ReaderActivity : AppCompatActivity() { class ReaderActivity : AppCompatActivity() {
private var markOnScroll: Boolean = false private var markOnScroll: Boolean = false
private var debugReadingItems: Boolean = false
private var currentItem: Int = 0 private var currentItem: Int = 0
private lateinit var userIdentifier: String
private lateinit var api: SelfossApi private lateinit var api: SelfossApi
@@ -73,24 +64,20 @@ class ReaderActivity : AppCompatActivity() {
supportActionBar?.setDisplayHomeAsUpEnabled(true) supportActionBar?.setDisplayHomeAsUpEnabled(true)
supportActionBar?.setDisplayShowHomeEnabled(true) supportActionBar?.setDisplayShowHomeEnabled(true)
val settings = getSharedPreferences(Config.settingsName, Context.MODE_PRIVATE) val prefs = PreferenceManager.getDefaultSharedPreferences(this)
val sharedPref = PreferenceManager.getDefaultSharedPreferences(this)
debugReadingItems = sharedPref.getBoolean("read_debug", false)
userIdentifier = sharedPref.getString("unique_id", "")
markOnScroll = sharedPref.getBoolean("mark_on_scroll", false)
if (allItems.isEmpty()) {
finish()
}
api = SelfossApi( api = SelfossApi(
this, this,
this@ReaderActivity, this@ReaderActivity,
settings.getBoolean("isSelfSignedCert", false), prefs.getBoolean("isSelfSignedCert", false),
sharedPref.getBoolean("should_log_everything", false) prefs.getBoolean("should_log_everything", false)
) )
if (allItems.isEmpty()) {
finish()
}
currentItem = intent.getIntExtra("currentItem", 0) currentItem = intent.getIntExtra("currentItem", 0)
pager.adapter = ScreenSlidePagerAdapter(supportFragmentManager, AppColors(this@ReaderActivity)) pager.adapter = ScreenSlidePagerAdapter(supportFragmentManager, AppColors(this@ReaderActivity))
@@ -100,60 +87,14 @@ class ReaderActivity : AppCompatActivity() {
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
(pager.adapter as ScreenSlidePagerAdapter).notifyDataSetChanged() notifyAdapter()
pager.setPageTransformer(true, DepthPageTransformer()) pager.setPageTransformer(true, DepthPageTransformer())
(indicator as CircleIndicator).setViewPager(pager) (indicator as CircleIndicator).setViewPager(pager)
}
pager.addOnPageChangeListener( private fun notifyAdapter() {
object : ViewPager.SimpleOnPageChangeListener() { (pager.adapter as ScreenSlidePagerAdapter).notifyDataSetChanged()
var isLastItem = false
override fun onPageSelected(position: Int) {
isLastItem = (position === (allItems.size - 1))
if (allItems[position].starred) {
canRemoveFromFavorite()
} else {
canFavorite()
}
}
override fun onPageScrollStateChanged(state: Int) {
if (markOnScroll && (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}"
ACRA.getErrorReporter().maybeHandleSilentException(Exception(message), this@ReaderActivity)
}
}
override fun onFailure(
call: Call<SuccessResponse>,
t: Throwable
) {
if (debugReadingItems) {
ACRA.getErrorReporter().maybeHandleSilentException(t, this@ReaderActivity)
}
}
}
)
}
}
}
)
} }
override fun onPause() { override fun onPause() {
@@ -215,6 +156,7 @@ class ReaderActivity : AppCompatActivity() {
response: Response<SuccessResponse> response: Response<SuccessResponse>
) { ) {
allItems[pager.currentItem] = allItems[pager.currentItem].toggleStar() allItems[pager.currentItem] = allItems[pager.currentItem].toggleStar()
notifyAdapter()
canRemoveFromFavorite() canRemoveFromFavorite()
} }
@@ -238,6 +180,7 @@ class ReaderActivity : AppCompatActivity() {
response: Response<SuccessResponse> response: Response<SuccessResponse>
) { ) {
allItems[pager.currentItem] = allItems[pager.currentItem].toggleStar() allItems[pager.currentItem] = allItems[pager.currentItem].toggleStar()
notifyAdapter()
canFavorite() canFavorite()
} }

View File

@@ -1,5 +1,6 @@
package apps.amine.bou.readerforselfoss.fragments package apps.amine.bou.readerforselfoss.fragments
import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.SharedPreferences import android.content.SharedPreferences
import android.content.res.ColorStateList import android.content.res.ColorStateList
@@ -23,6 +24,8 @@ import apps.amine.bou.readerforselfoss.R
import apps.amine.bou.readerforselfoss.api.mercury.MercuryApi import apps.amine.bou.readerforselfoss.api.mercury.MercuryApi
import apps.amine.bou.readerforselfoss.api.mercury.ParsedContent import apps.amine.bou.readerforselfoss.api.mercury.ParsedContent
import apps.amine.bou.readerforselfoss.api.selfoss.Item 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.themes.AppColors import apps.amine.bou.readerforselfoss.themes.AppColors
import apps.amine.bou.readerforselfoss.utils.Config import apps.amine.bou.readerforselfoss.utils.Config
import apps.amine.bou.readerforselfoss.utils.buildCustomTabsIntent import apps.amine.bou.readerforselfoss.utils.buildCustomTabsIntent
@@ -32,6 +35,7 @@ import apps.amine.bou.readerforselfoss.utils.maybeHandleSilentException
import apps.amine.bou.readerforselfoss.utils.openItemUrl import apps.amine.bou.readerforselfoss.utils.openItemUrl
import apps.amine.bou.readerforselfoss.utils.shareLink import apps.amine.bou.readerforselfoss.utils.shareLink
import apps.amine.bou.readerforselfoss.utils.sourceAndDateText import apps.amine.bou.readerforselfoss.utils.sourceAndDateText
import apps.amine.bou.readerforselfoss.utils.succeeded
import apps.amine.bou.readerforselfoss.utils.toPx import apps.amine.bou.readerforselfoss.utils.toPx
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions import com.bumptech.glide.request.RequestOptions
@@ -90,6 +94,22 @@ class ArticleFragment : Fragment() {
contentImage = allItems[pageNumber.toInt()].getThumbnail(activity!!) contentImage = allItems[pageNumber.toInt()].getThumbnail(activity!!)
contentSource = allItems[pageNumber.toInt()].sourceAndDateText() contentSource = allItems[pageNumber.toInt()].sourceAndDateText()
val prefs = PreferenceManager.getDefaultSharedPreferences(activity)
editor = prefs.edit()
fontSize = prefs.getString("reader_font_size", "14").toInt()
showMalformedUrl = prefs.getBoolean("show_error_malformed_url", true)
val settings = activity!!.getSharedPreferences(Config.settingsName, Context.MODE_PRIVATE)
val debugReadingItems = prefs.getBoolean("read_debug", false)
val markOnScroll = prefs.getBoolean("mark_on_scroll", false)
val api = SelfossApi(
context!!,
activity!!,
settings.getBoolean("isSelfSignedCert", false),
prefs.getBoolean("should_log_everything", false)
)
fab = rootView.fab fab = rootView.fab
fab.backgroundTintList = ColorStateList.valueOf(appColors.colorAccent) fab.backgroundTintList = ColorStateList.valueOf(appColors.colorAccent)
@@ -105,11 +125,6 @@ class ArticleFragment : Fragment() {
mCustomTabActivityHelper = CustomTabActivityHelper() mCustomTabActivityHelper = CustomTabActivityHelper()
mCustomTabActivityHelper.bindCustomTabsService(activity) mCustomTabActivityHelper.bindCustomTabsService(activity)
val prefs = PreferenceManager.getDefaultSharedPreferences(activity)
editor = prefs.edit()
fontSize = prefs.getString("reader_font_size", "14").toInt()
showMalformedUrl = prefs.getBoolean("show_error_malformed_url", true)
floatingToolbar.setClickListener( floatingToolbar.setClickListener(
object : FloatingToolbar.ItemClickListener { object : FloatingToolbar.ItemClickListener {
@@ -126,6 +141,35 @@ class ArticleFragment : Fragment() {
false, false,
activity!! activity!!
) )
R.id.unread_action -> api.unmarkItem(allItems[pageNumber.toInt()].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}"
ACRA.getErrorReporter().maybeHandleSilentException(Exception(message), activity!!)
}
}
override fun onFailure(
call: Call<SuccessResponse>,
t: Throwable
) {
if (debugReadingItems) {
ACRA.getErrorReporter().maybeHandleSilentException(t, activity!!)
}
}
}
)
else -> Unit else -> Unit
} }
} }
@@ -167,6 +211,38 @@ class ArticleFragment : Fragment() {
} }
) )
if (markOnScroll) {
api.markItem(allItems[pageNumber.toInt()].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}"
ACRA.getErrorReporter().maybeHandleSilentException(Exception(message), activity!!)
}
}
override fun onFailure(
call: Call<SuccessResponse>,
t: Throwable
) {
if (debugReadingItems) {
ACRA.getErrorReporter().maybeHandleSilentException(t, activity!!)
}
}
}
)
}
return rootView return rootView
} }
@@ -325,36 +401,33 @@ class ArticleFragment : Fragment() {
alertDialog.setMessage("You are encountering a bug that I can't solve. Can you please contact me to solve the issue, please ?") alertDialog.setMessage("You are encountering a bug that I can't solve. Can you please contact me to solve the issue, please ?")
alertDialog.setButton( alertDialog.setButton(
AlertDialog.BUTTON_POSITIVE, AlertDialog.BUTTON_POSITIVE,
"Send mail", "Send mail"
{ dialog, _ -> ) { dialog, _ ->
// This won't be translated because it should only be temporary. // This won't be translated because it should only be temporary.
val to = Config.feedbackEmail val to = Config.feedbackEmail
val subject= "[ReaderForSelfoss MalformedURLException]" val subject= "[ReaderForSelfoss MalformedURLException]"
val body= "Please specify the source, item and spout you are using for the url below : \n ${e.message}" val body= "Please specify the source, item and spout you are using for the url below : \n ${e.message}"
val mailTo = "mailto:" + to + "?&subject=" + Uri.encode(subject) + "&body=" + Uri.encode(body) val mailTo = "mailto:" + to + "?&subject=" + Uri.encode(subject) + "&body=" + Uri.encode(body)
val emailIntent = Intent(Intent.ACTION_VIEW) val emailIntent = Intent(Intent.ACTION_VIEW)
emailIntent.data = Uri.parse(mailTo) emailIntent.data = Uri.parse(mailTo)
startActivity(emailIntent) startActivity(emailIntent)
dialog.dismiss() dialog.dismiss()
} }
)
alertDialog.setButton( alertDialog.setButton(
AlertDialog.BUTTON_NEUTRAL, AlertDialog.BUTTON_NEUTRAL,
"Not now", "Not now"
{ dialog, _ -> dialog.dismiss() } ) { dialog, _ -> dialog.dismiss() }
)
alertDialog.setButton( alertDialog.setButton(
AlertDialog.BUTTON_NEGATIVE, AlertDialog.BUTTON_NEGATIVE,
"Don't show anymore.", "Don't show anymore."
{ dialog, _ -> ) { dialog, _ ->
editor.putBoolean("show_error_malformed_url", false) editor.putBoolean("show_error_malformed_url", false)
editor.apply() editor.apply()
dialog.dismiss() dialog.dismiss()
} }
)
alertDialog.show() alertDialog.show()
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 490 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 567 B

View File

@@ -12,7 +12,7 @@
android:icon="@drawable/ic_done_all_white_24dp" android:icon="@drawable/ic_done_all_white_24dp"
android:title="@string/readAll" android:title="@string/readAll"
android:orderInCategory="1" android:orderInCategory="1"
app:showAsAction="ifRoom"/> app:showAsAction="always"/>
<item <item
android:id="@+id/refresh" android:id="@+id/refresh"

View File

@@ -2,6 +2,12 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android" <menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/unread_action"
android:icon="@drawable/ic_fiber_new"
android:title="@string/unmark"
app:showAsAction="ifRoom" />
<item <item
android:id="@+id/more_action" android:id="@+id/more_action"
android:icon="@drawable/ic_chrome_reader_mode" android:icon="@drawable/ic_chrome_reader_mode"

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Registre de depuració (s\'enviarà automàticament)</string> <string name="pref_debug_debug_logs">Registre de depuració (s\'enviarà automàticament)</string>
<string name="acra_login">Habilita el registre</string> <string name="acra_login">Habilita el registre</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -127,7 +127,7 @@
<string name="self_signed_cert_warning">Por razones de seguridad, los certificados propios no son compatibles por defecto. Activando esto, no seré responsable de cualquier problema de seguridad que encuentre.</string> <string name="self_signed_cert_warning">Por razones de seguridad, los certificados propios no son compatibles por defecto. Activando esto, no seré responsable de cualquier problema de seguridad que encuentre.</string>
<string name="pref_selfoss_category">Api de Selfoss</string> <string name="pref_selfoss_category">Api de Selfoss</string>
<string name="pref_api_items_number_title">Número de artículos cargados</string> <string name="pref_api_items_number_title">Número de artículos cargados</string>
<string name="pref_hidden_tags">Hidden Tags</string> <string name="pref_hidden_tags">Etiquetas ocultas</string>
<string name="read_debug_title">¿Leer los artículos que aparecen como no leídos?</string> <string name="read_debug_title">¿Leer los artículos que aparecen como no leídos?</string>
<string name="read_debug_off">Sin registro al marcar un elemento como leído</string> <string name="read_debug_off">Sin registro al marcar un elemento como leído</string>
<string name="read_debug_on">Llamadas a la Api se registrarán al marcar un artículo como leído</string> <string name="read_debug_on">Llamadas a la Api se registrarán al marcar un artículo como leído</string>
@@ -167,5 +167,6 @@
<string name="pref_debug_crash_reports">Informe de fallos</string> <string name="pref_debug_crash_reports">Informe de fallos</string>
<string name="pref_debug_debug_logs">Registro de depuración (éstos se enviarán sin diálogo)</string> <string name="pref_debug_debug_logs">Registro de depuración (éstos se enviarán sin diálogo)</string>
<string name="acra_login">Habilitar el registro</string> <string name="acra_login">Habilitar el registro</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Etiquetas ocultas</string>
<string name="unmark">Marcar artículo como no leído</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -127,7 +127,7 @@
<string name="self_signed_cert_warning">Pour des raisons de sécurité, les certificats auto-signés sont désactivés par défaut. En les activant, je ne serais pas responsable de quelconques problèmes de sécurité rencontrés.</string> <string name="self_signed_cert_warning">Pour des raisons de sécurité, les certificats auto-signés sont désactivés par défaut. En les activant, je ne serais pas responsable de quelconques problèmes de sécurité rencontrés.</string>
<string name="pref_selfoss_category">Api Selfoss</string> <string name="pref_selfoss_category">Api Selfoss</string>
<string name="pref_api_items_number_title">Nombre d\'articles chargés</string> <string name="pref_api_items_number_title">Nombre d\'articles chargés</string>
<string name="pref_hidden_tags">Hidden Tags</string> <string name="pref_hidden_tags">Tags Cachés</string>
<string name="read_debug_title">Des articles lus marqués comme non lus ?</string> <string name="read_debug_title">Des articles lus marqués comme non lus ?</string>
<string name="read_debug_off">Aucun log quand un article est marqué comme lu</string> <string name="read_debug_off">Aucun log quand un article est marqué comme lu</string>
<string name="read_debug_on">Les appels API vont être logués lorsqu\'un article est marqué comme lu</string> <string name="read_debug_on">Les appels API vont être logués lorsqu\'un article est marqué comme lu</string>
@@ -155,7 +155,7 @@
<string name="markall_dialog_message">Marquer tous les éléments comme lus ?</string> <string name="markall_dialog_message">Marquer tous les éléments comme lus ?</string>
<string name="pref_switch_actions_pager_scroll">Marquer comme lu à la navigation.</string> <string name="pref_switch_actions_pager_scroll">Marquer comme lu à la navigation.</string>
<string name="pref_switch_actions_pager_scroll_off">Ne pas marquer les articles comme lus à la navigation.</string> <string name="pref_switch_actions_pager_scroll_off">Ne pas marquer les articles comme lus à la navigation.</string>
<string name="gdpr_dialog_message">L\'application ne collecte aucune donnée personnelle. Tous les outils d\'anlytics ont été supprimés. Les rapports d\'erreurs sont maintenant optionnels, ainsi que les logs. N\'oubliez pas que les rapports d\'erreurs sont essentiels pour la résolution des bugs (Vous pouvez configurer toute cela dans Paramètres &gt; Debug).</string> <string name="gdpr_dialog_message">L\'application ne collecte aucune donnée personnelle. Tous les outils d\'analytics ont été supprimés. Les rapports d\'erreurs sont maintenant optionnels, ainsi que les logs. N\'oubliez pas que les rapports d\'erreurs sont essentiels pour la résolution des bugs (vous pouvez configurer tout cela dans Paramètres &gt; Debug).</string>
<string name="gdpr_dialog_title">L\'application ne partage aucune de vos données.</string> <string name="gdpr_dialog_title">L\'application ne partage aucune de vos données.</string>
<string name="crash_dialog_text">Quelque chose s\'est mal passé, S\'il vous plaît, envoyez le rapport au développeur.</string> <string name="crash_dialog_text">Quelque chose s\'est mal passé, S\'il vous plaît, envoyez le rapport au développeur.</string>
<string name="crash_dialog_comment">Vous pouvez ajouter tous les détails utiles dans le champ de commentaire plus bas. N\'ajoutez aucune information personnelle. Vous pouvez m\'envoyer un email avec votre identifiant de debug, et je vous informerai à la correction du problème.</string> <string name="crash_dialog_comment">Vous pouvez ajouter tous les détails utiles dans le champ de commentaire plus bas. N\'ajoutez aucune information personnelle. Vous pouvez m\'envoyer un email avec votre identifiant de debug, et je vous informerai à la correction du problème.</string>
@@ -167,5 +167,6 @@
<string name="pref_debug_crash_reports">Rapport d\'erreur</string> <string name="pref_debug_crash_reports">Rapport d\'erreur</string>
<string name="pref_debug_debug_logs">Log de debug (seront envoyés automatiquement)</string> <string name="pref_debug_debug_logs">Log de debug (seront envoyés automatiquement)</string>
<string name="acra_login">Activer les logs</string> <string name="acra_login">Activer les logs</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Tags Cachés</string>
<string name="unmark">Marquer l\'article comme non lu</string>
</resources> </resources>

View File

@@ -127,7 +127,7 @@
<string name="self_signed_cert_warning">Por razóns de seguridade, por defecto non se permiten os certificados autoasinados. Activando isto, non serei responsable de calquera problema de seguridade que atopes.</string> <string name="self_signed_cert_warning">Por razóns de seguridade, por defecto non se permiten os certificados autoasinados. Activando isto, non serei responsable de calquera problema de seguridade que atopes.</string>
<string name="pref_selfoss_category">API de Selfoss</string> <string name="pref_selfoss_category">API de Selfoss</string>
<string name="pref_api_items_number_title">Número de elementos cargados</string> <string name="pref_api_items_number_title">Número de elementos cargados</string>
<string name="pref_hidden_tags">Hidden Tags</string> <string name="pref_hidden_tags">Etiquetas ocultas</string>
<string name="read_debug_title">Ler os artigos que aparecen coma non lidos?</string> <string name="read_debug_title">Ler os artigos que aparecen coma non lidos?</string>
<string name="read_debug_off">Non rexistrar cando se marca un elemento coma lido</string> <string name="read_debug_off">Non rexistrar cando se marca un elemento coma lido</string>
<string name="read_debug_on">As chamadas á API serán rexistradas cando se marque un artigo coma lido</string> <string name="read_debug_on">As chamadas á API serán rexistradas cando se marque un artigo coma lido</string>
@@ -167,5 +167,6 @@
<string name="pref_debug_crash_reports">Informes de erros</string> <string name="pref_debug_crash_reports">Informes de erros</string>
<string name="pref_debug_debug_logs">Rexistro de depuración (Estes enviaranse automáticamente)</string> <string name="pref_debug_debug_logs">Rexistro de depuración (Estes enviaranse automáticamente)</string>
<string name="acra_login">Habilitar o rexistro</string> <string name="acra_login">Habilitar o rexistro</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Etiquetas ocultas</string>
<string name="unmark">Marcar artículo como non lido</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Log de depuração (Serão enviados sem uma caixa de diálogo)</string> <string name="pref_debug_debug_logs">Log de depuração (Serão enviados sem uma caixa de diálogo)</string>
<string name="acra_login">Ativar registro de erros</string> <string name="acra_login">Ativar registro de erros</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -168,4 +168,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -171,4 +171,5 @@
<string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string> <string name="pref_debug_debug_logs">Debug logging (these will be sent without a dialog)</string>
<string name="acra_login">Enable logging</string> <string name="acra_login">Enable logging</string>
<string name="drawer_item_hidden_tags">Hidden Tags</string> <string name="drawer_item_hidden_tags">Hidden Tags</string>
<string name="unmark">Mark item as unread</string>
</resources> </resources>

View File

@@ -1,7 +1,10 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules. // Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript { buildscript {
ext.kotlin_version = '1.2.31' ext {
kotlin_version = '1.2.31'
android_version = '27.1.1'
}
repositories { repositories {
jcenter() jcenter()
google() google()
@@ -10,7 +13,7 @@ buildscript {
} }
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:3.1.3' classpath 'com.android.tools.build:gradle:3.1.4'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
} }
} }