chore: changing actions in reader fragment.
This commit is contained in:
parent
3b3a575dae
commit
acc4ec2dc0
@ -156,7 +156,7 @@ dependencies {
|
|||||||
implementation("com.github.bumptech.glide:okhttp3-integration:4.16.0")
|
implementation("com.github.bumptech.glide:okhttp3-integration:4.16.0")
|
||||||
|
|
||||||
// Themes
|
// Themes
|
||||||
implementation("com.github.rubensousa:floatingtoolbar:1.5.1")
|
implementation("com.leinardi.android:speed-dial:3.3.0")
|
||||||
|
|
||||||
// Pager
|
// Pager
|
||||||
implementation("me.relex:circleindicator:2.1.6")
|
implementation("me.relex:circleindicator:2.1.6")
|
||||||
|
@ -65,19 +65,6 @@ class SettingsActivityGeneralTest {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
onView(withSettingsCheckboxWidget(R.string.reader_static_bar_title)).check(
|
|
||||||
matches(
|
|
||||||
allOf(
|
|
||||||
isDisplayed(),
|
|
||||||
not(isChecked()),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
onView(withSettingsCheckboxFrame(R.string.reader_static_bar_title)).check(
|
|
||||||
matches(
|
|
||||||
isEnabled(),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
onView(withText(R.string.pref_general_category_displaying)).check(matches(isDisplayed()))
|
onView(withText(R.string.pref_general_category_displaying)).check(matches(isDisplayed()))
|
||||||
onView(withSettingsCheckboxWidget(R.string.pref_switch_card_view_title)).check(
|
onView(withSettingsCheckboxWidget(R.string.pref_switch_card_view_title)).check(
|
||||||
matches(
|
matches(
|
||||||
@ -161,19 +148,6 @@ class SettingsActivityGeneralTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testGeneralActionsCheckboxes() {
|
fun testGeneralActionsCheckboxes() {
|
||||||
// article viewer settings
|
|
||||||
onView(withSettingsCheckboxFrame(R.string.reader_static_bar_title)).check(
|
|
||||||
matches(
|
|
||||||
isEnabled(),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
onView(withSettingsCheckboxWidget(R.string.pref_article_viewer_title)).perform(click())
|
|
||||||
onView(withSettingsCheckboxFrame(R.string.reader_static_bar_title)).check(
|
|
||||||
matches(
|
|
||||||
not(isEnabled()),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
onView(withSettingsCheckboxFrame(R.string.card_height_title)).check(matches(not(isEnabled())))
|
onView(withSettingsCheckboxFrame(R.string.card_height_title)).check(matches(not(isEnabled())))
|
||||||
onView(withSettingsCheckboxWidget(R.string.pref_switch_card_view_title)).perform(click())
|
onView(withSettingsCheckboxWidget(R.string.pref_switch_card_view_title)).perform(click())
|
||||||
onView(withSettingsCheckboxFrame(R.string.card_height_title)).check(matches(isEnabled()))
|
onView(withSettingsCheckboxFrame(R.string.card_height_title)).check(matches(isEnabled()))
|
||||||
|
@ -2,18 +2,14 @@ package bou.amine.apps.readerforselfossv2.android.fragments
|
|||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.res.ColorStateList
|
|
||||||
import android.content.res.TypedArray
|
import android.content.res.TypedArray
|
||||||
import android.graphics.Bitmap
|
import android.graphics.Bitmap
|
||||||
import android.graphics.Typeface
|
import android.graphics.Typeface
|
||||||
import android.graphics.drawable.ColorDrawable
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.util.TypedValue
|
|
||||||
import android.util.TypedValue.DATA_NULL_UNDEFINED
|
import android.util.TypedValue.DATA_NULL_UNDEFINED
|
||||||
import android.view.GestureDetector
|
import android.view.GestureDetector
|
||||||
import android.view.InflateException
|
import android.view.InflateException
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.MenuItem
|
|
||||||
import android.view.MotionEvent
|
import android.view.MotionEvent
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
@ -23,7 +19,6 @@ import android.webkit.WebView
|
|||||||
import android.webkit.WebViewClient
|
import android.webkit.WebViewClient
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
import androidx.core.widget.NestedScrollView
|
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import bou.amine.apps.readerforselfossv2.android.ImageActivity
|
import bou.amine.apps.readerforselfossv2.android.ImageActivity
|
||||||
import bou.amine.apps.readerforselfossv2.android.R
|
import bou.amine.apps.readerforselfossv2.android.R
|
||||||
@ -32,6 +27,8 @@ import bou.amine.apps.readerforselfossv2.android.model.ParecelableItem
|
|||||||
import bou.amine.apps.readerforselfossv2.android.model.toModel
|
import bou.amine.apps.readerforselfossv2.android.model.toModel
|
||||||
import bou.amine.apps.readerforselfossv2.android.model.toParcelable
|
import bou.amine.apps.readerforselfossv2.android.model.toParcelable
|
||||||
import bou.amine.apps.readerforselfossv2.android.utils.acra.sendSilentlyWithAcraWithName
|
import bou.amine.apps.readerforselfossv2.android.utils.acra.sendSilentlyWithAcraWithName
|
||||||
|
import bou.amine.apps.readerforselfossv2.android.utils.bottombar.addHomeMadeActionItem
|
||||||
|
import bou.amine.apps.readerforselfossv2.android.utils.getColorFromAttr
|
||||||
import bou.amine.apps.readerforselfossv2.android.utils.glide.bitmapFitCenter
|
import bou.amine.apps.readerforselfossv2.android.utils.glide.bitmapFitCenter
|
||||||
import bou.amine.apps.readerforselfossv2.android.utils.glide.getBitmapInputStream
|
import bou.amine.apps.readerforselfossv2.android.utils.glide.getBitmapInputStream
|
||||||
import bou.amine.apps.readerforselfossv2.android.utils.glide.getGlideImageForResource
|
import bou.amine.apps.readerforselfossv2.android.utils.glide.getGlideImageForResource
|
||||||
@ -48,8 +45,7 @@ import bou.amine.apps.readerforselfossv2.utils.getHtmlDecoded
|
|||||||
import bou.amine.apps.readerforselfossv2.utils.getImages
|
import bou.amine.apps.readerforselfossv2.utils.getImages
|
||||||
import bou.amine.apps.readerforselfossv2.utils.getThumbnail
|
import bou.amine.apps.readerforselfossv2.utils.getThumbnail
|
||||||
import bou.amine.apps.readerforselfossv2.utils.isEmptyOrNullOrNullString
|
import bou.amine.apps.readerforselfossv2.utils.isEmptyOrNullOrNullString
|
||||||
import com.github.rubensousa.floatingtoolbar.FloatingToolbar
|
import com.leinardi.android.speeddial.SpeedDialView
|
||||||
import com.google.android.material.floatingactionbutton.FloatingActionButton
|
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
@ -74,6 +70,8 @@ private const val DEFAULT_FONT_SIZE = 16
|
|||||||
class ArticleFragment :
|
class ArticleFragment :
|
||||||
Fragment(),
|
Fragment(),
|
||||||
DIAware {
|
DIAware {
|
||||||
|
private var colorOnSurface: Int = 0
|
||||||
|
private var colorSurface: Int = 0
|
||||||
private var fontSize: Int = DEFAULT_FONT_SIZE
|
private var fontSize: Int = DEFAULT_FONT_SIZE
|
||||||
private lateinit var item: SelfossModel.Item
|
private lateinit var item: SelfossModel.Item
|
||||||
private lateinit var url: String
|
private lateinit var url: String
|
||||||
@ -82,7 +80,7 @@ class ArticleFragment :
|
|||||||
private lateinit var contentImage: String
|
private lateinit var contentImage: String
|
||||||
private lateinit var contentTitle: String
|
private lateinit var contentTitle: String
|
||||||
private lateinit var allImages: ArrayList<String>
|
private lateinit var allImages: ArrayList<String>
|
||||||
private lateinit var fab: FloatingActionButton
|
private lateinit var fab: SpeedDialView
|
||||||
private lateinit var textAlignment: String
|
private lateinit var textAlignment: String
|
||||||
private lateinit var binding: FragmentArticleBinding
|
private lateinit var binding: FragmentArticleBinding
|
||||||
|
|
||||||
@ -93,7 +91,6 @@ class ArticleFragment :
|
|||||||
private var typeface: Typeface? = null
|
private var typeface: Typeface? = null
|
||||||
private var resId: Int = 0
|
private var resId: Int = 0
|
||||||
private var font = ""
|
private var font = ""
|
||||||
private var staticBar = false
|
|
||||||
|
|
||||||
private val mercuryApi: MercuryApi by instance()
|
private val mercuryApi: MercuryApi by instance()
|
||||||
|
|
||||||
@ -120,6 +117,9 @@ class ArticleFragment :
|
|||||||
e.sendSilentlyWithAcra()
|
e.sendSilentlyWithAcra()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
colorOnSurface = requireContext().getColorFromAttr(R.attr.colorOnSurface)
|
||||||
|
colorSurface = requireContext().getColorFromAttr(R.attr.colorSurface)
|
||||||
|
|
||||||
contentText = item.content
|
contentText = item.content
|
||||||
contentTitle = item.title.getHtmlDecoded()
|
contentTitle = item.title.getHtmlDecoded()
|
||||||
contentImage = item.getThumbnail(repository.baseUrl)
|
contentImage = item.getThumbnail(repository.baseUrl)
|
||||||
@ -133,23 +133,11 @@ class ArticleFragment :
|
|||||||
allImages = item.getImages()
|
allImages = item.getImages()
|
||||||
|
|
||||||
fontSize = appSettingsService.getFontSize()
|
fontSize = appSettingsService.getFontSize()
|
||||||
staticBar = appSettingsService.isStaticBarEnabled()
|
|
||||||
font = appSettingsService.getFont()
|
font = appSettingsService.getFont()
|
||||||
|
|
||||||
refreshAlignment()
|
refreshAlignment()
|
||||||
|
|
||||||
fab = binding.fab
|
handleFloatingToolbar()
|
||||||
|
|
||||||
fab.backgroundTintList = ColorStateList.valueOf(resources.getColor(R.color.colorAccent))
|
|
||||||
|
|
||||||
fab.rippleColor = resources.getColor(R.color.colorAccentDark)
|
|
||||||
|
|
||||||
val floatingToolbar: FloatingToolbar = handleFloatingToolbar()
|
|
||||||
|
|
||||||
if (staticBar) {
|
|
||||||
fab.hide()
|
|
||||||
floatingToolbar.show()
|
|
||||||
}
|
|
||||||
|
|
||||||
binding.source.text = contentSource
|
binding.source.text = contentSource
|
||||||
if (typeface != null) {
|
if (typeface != null) {
|
||||||
@ -157,21 +145,6 @@ class ArticleFragment :
|
|||||||
}
|
}
|
||||||
|
|
||||||
handleContent()
|
handleContent()
|
||||||
|
|
||||||
binding.nestedScrollView.setOnScrollChangeListener(
|
|
||||||
NestedScrollView.OnScrollChangeListener { _, _, scrollY, _, oldScrollY ->
|
|
||||||
if (scrollY > oldScrollY) {
|
|
||||||
floatingToolbar.hide()
|
|
||||||
fab.hide()
|
|
||||||
} else {
|
|
||||||
if (staticBar) {
|
|
||||||
floatingToolbar.show()
|
|
||||||
} else {
|
|
||||||
if (floatingToolbar.isShowing) floatingToolbar.hide() else fab.show()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
)
|
|
||||||
} catch (e: InflateException) {
|
} catch (e: InflateException) {
|
||||||
e.sendSilentlyWithAcraWithName("webview not available")
|
e.sendSilentlyWithAcraWithName("webview not available")
|
||||||
try {
|
try {
|
||||||
@ -216,60 +189,77 @@ class ArticleFragment :
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun handleFloatingToolbar(): FloatingToolbar {
|
private fun handleFloatingToolbar() {
|
||||||
val floatingToolbar: FloatingToolbar = binding.floatingToolbar
|
fab = binding.speedDial
|
||||||
if (appSettingsService.getPublicAccess()) {
|
fab.mainFabClosedIconColor = colorOnSurface
|
||||||
floatingToolbar.setMenu(R.menu.reader_toolbar_no_read)
|
fab.mainFabOpenedIconColor = colorOnSurface
|
||||||
}
|
|
||||||
floatingToolbar.attachFab(fab)
|
|
||||||
|
|
||||||
floatingToolbar.background = ColorDrawable(resources.getColor(R.color.colorAccent))
|
handleFloatingToolbarActionItems()
|
||||||
|
|
||||||
floatingToolbar.setClickListener(
|
fab.setOnActionSelectedListener { actionItem ->
|
||||||
object : FloatingToolbar.ItemClickListener {
|
when (actionItem.id) {
|
||||||
override fun onItemClick(item: MenuItem) {
|
R.id.share_action -> requireActivity().shareLink(url, contentTitle)
|
||||||
when (item.itemId) {
|
R.id.open_action -> requireActivity().openItemUrlInBrowserAsNewTask(this@ArticleFragment.item)
|
||||||
R.id.share_action -> requireActivity().shareLink(url, contentTitle)
|
R.id.unread_action ->
|
||||||
R.id.open_action -> requireActivity().openItemUrlInBrowserAsNewTask(this@ArticleFragment.item)
|
try {
|
||||||
R.id.unread_action ->
|
if (this@ArticleFragment.item.unread) {
|
||||||
try {
|
CoroutineScope(Dispatchers.IO).launch {
|
||||||
if (this@ArticleFragment.item.unread) {
|
repository.markAsRead(this@ArticleFragment.item)
|
||||||
CoroutineScope(Dispatchers.IO).launch {
|
|
||||||
repository.markAsRead(this@ArticleFragment.item)
|
|
||||||
}
|
|
||||||
this@ArticleFragment.item.unread = false
|
|
||||||
Toast
|
|
||||||
.makeText(
|
|
||||||
requireContext(),
|
|
||||||
R.string.marked_as_read,
|
|
||||||
Toast.LENGTH_LONG,
|
|
||||||
).show()
|
|
||||||
} else {
|
|
||||||
CoroutineScope(Dispatchers.IO).launch {
|
|
||||||
repository.unmarkAsRead(this@ArticleFragment.item)
|
|
||||||
}
|
|
||||||
this@ArticleFragment.item.unread = true
|
|
||||||
Toast
|
|
||||||
.makeText(
|
|
||||||
context,
|
|
||||||
R.string.marked_as_unread,
|
|
||||||
Toast.LENGTH_LONG,
|
|
||||||
).show()
|
|
||||||
}
|
|
||||||
} catch (e: IllegalStateException) {
|
|
||||||
e.sendSilentlyWithAcraWithName("Context required is null")
|
|
||||||
}
|
}
|
||||||
|
this@ArticleFragment.item.unread = false
|
||||||
else -> Unit
|
Toast
|
||||||
|
.makeText(
|
||||||
|
requireContext(),
|
||||||
|
R.string.marked_as_read,
|
||||||
|
Toast.LENGTH_LONG,
|
||||||
|
).show()
|
||||||
|
} else {
|
||||||
|
CoroutineScope(Dispatchers.IO).launch {
|
||||||
|
repository.unmarkAsRead(this@ArticleFragment.item)
|
||||||
|
}
|
||||||
|
this@ArticleFragment.item.unread = true
|
||||||
|
Toast
|
||||||
|
.makeText(
|
||||||
|
context,
|
||||||
|
R.string.marked_as_unread,
|
||||||
|
Toast.LENGTH_LONG,
|
||||||
|
).show()
|
||||||
|
}
|
||||||
|
} catch (e: IllegalStateException) {
|
||||||
|
e.sendSilentlyWithAcraWithName("Context required is null")
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
override fun onItemLongClick(item: MenuItem?) {
|
else -> Unit
|
||||||
// We do nothing
|
}
|
||||||
}
|
false
|
||||||
},
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun handleFloatingToolbarActionItems() {
|
||||||
|
fab.addHomeMadeActionItem(
|
||||||
|
R.id.share_action,
|
||||||
|
resources.getDrawable(R.drawable.ic_share_white_24dp),
|
||||||
|
R.string.reader_action_share,
|
||||||
|
colorOnSurface,
|
||||||
|
colorSurface,
|
||||||
|
requireContext(),
|
||||||
|
)
|
||||||
|
fab.addHomeMadeActionItem(
|
||||||
|
R.id.open_action,
|
||||||
|
resources.getDrawable(R.drawable.ic_open_in_browser_white_24dp),
|
||||||
|
R.string.reader_action_open,
|
||||||
|
colorOnSurface,
|
||||||
|
colorSurface,
|
||||||
|
requireContext(),
|
||||||
|
)
|
||||||
|
fab.addHomeMadeActionItem(
|
||||||
|
R.id.unread_action,
|
||||||
|
resources.getDrawable(R.drawable.ic_baseline_white_eye_24dp),
|
||||||
|
R.string.unmark,
|
||||||
|
colorOnSurface,
|
||||||
|
colorSurface,
|
||||||
|
requireContext(),
|
||||||
)
|
)
|
||||||
return floatingToolbar
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun refreshAlignment() {
|
private fun refreshAlignment() {
|
||||||
@ -392,19 +382,12 @@ class ArticleFragment :
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
val colorOnSurface = TypedValue()
|
|
||||||
val colorSurface = TypedValue()
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
val attrs: IntArray = intArrayOf(android.R.attr.fontFamily)
|
val attrs: IntArray = intArrayOf(android.R.attr.fontFamily)
|
||||||
val a: TypedArray = context.obtainStyledAttributes(resId, attrs)
|
val a: TypedArray = context.obtainStyledAttributes(resId, attrs)
|
||||||
|
|
||||||
binding.webcontent.settings.standardFontFamily = a.getString(0)
|
binding.webcontent.settings.standardFontFamily = a.getString(0)
|
||||||
binding.webcontent.visibility = View.VISIBLE
|
binding.webcontent.visibility = View.VISIBLE
|
||||||
|
|
||||||
context.theme.resolveAttribute(R.attr.colorOnSurface, colorOnSurface, true)
|
|
||||||
|
|
||||||
context.theme.resolveAttribute(R.attr.colorSurface, colorSurface, true)
|
|
||||||
} catch (e: IllegalStateException) {
|
} catch (e: IllegalStateException) {
|
||||||
e.sendSilentlyWithAcraWithName("Context issue when setting attributes, but context wasn't null before")
|
e.sendSilentlyWithAcraWithName("Context issue when setting attributes, but context wasn't null before")
|
||||||
}
|
}
|
||||||
@ -412,13 +395,13 @@ class ArticleFragment :
|
|||||||
val colorSurfaceString =
|
val colorSurfaceString =
|
||||||
String.format(
|
String.format(
|
||||||
"#%06X",
|
"#%06X",
|
||||||
WHITE_COLOR_HEX and (if (colorSurface.data != DATA_NULL_UNDEFINED) colorSurface.data else WHITE_COLOR_HEX),
|
WHITE_COLOR_HEX and (if (colorSurface != DATA_NULL_UNDEFINED) colorSurface else WHITE_COLOR_HEX),
|
||||||
)
|
)
|
||||||
|
|
||||||
val colorOnSurfaceString =
|
val colorOnSurfaceString =
|
||||||
String.format(
|
String.format(
|
||||||
"#%06X",
|
"#%06X",
|
||||||
WHITE_COLOR_HEX and (if (colorOnSurface.data != DATA_NULL_UNDEFINED) colorOnSurface.data else 0),
|
WHITE_COLOR_HEX and (if (colorOnSurface != DATA_NULL_UNDEFINED) colorOnSurface else 0),
|
||||||
)
|
)
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -2,7 +2,11 @@ package bou.amine.apps.readerforselfossv2.android.utils
|
|||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import android.util.TypedValue
|
||||||
|
import androidx.annotation.AttrRes
|
||||||
|
import androidx.annotation.ColorInt
|
||||||
import bou.amine.apps.readerforselfossv2.android.R
|
import bou.amine.apps.readerforselfossv2.android.R
|
||||||
|
import bou.amine.apps.readerforselfossv2.android.utils.acra.sendSilentlyWithAcraWithName
|
||||||
import bou.amine.apps.readerforselfossv2.utils.toStringUriWithHttp
|
import bou.amine.apps.readerforselfossv2.utils.toStringUriWithHttp
|
||||||
|
|
||||||
fun Context.shareLink(
|
fun Context.shareLink(
|
||||||
@ -23,3 +27,17 @@ fun Context.shareLink(
|
|||||||
).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK),
|
).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ColorInt
|
||||||
|
fun Context.getColorFromAttr(
|
||||||
|
@AttrRes attrColor: Int,
|
||||||
|
resolveRefs: Boolean = true,
|
||||||
|
): Int {
|
||||||
|
val typedValue = TypedValue()
|
||||||
|
try {
|
||||||
|
this.theme.resolveAttribute(attrColor, typedValue, resolveRefs)
|
||||||
|
} catch (e: Throwable) {
|
||||||
|
e.sendSilentlyWithAcraWithName("ColorFromAttr")
|
||||||
|
}
|
||||||
|
return typedValue.data
|
||||||
|
}
|
||||||
|
@ -1,6 +1,13 @@
|
|||||||
package bou.amine.apps.readerforselfossv2.android.utils.bottombar
|
package bou.amine.apps.readerforselfossv2.android.utils.bottombar
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.graphics.drawable.Drawable
|
||||||
|
import androidx.annotation.IdRes
|
||||||
|
import androidx.annotation.StringRes
|
||||||
|
import bou.amine.apps.readerforselfossv2.android.R
|
||||||
import com.ashokvarma.bottomnavigation.TextBadgeItem
|
import com.ashokvarma.bottomnavigation.TextBadgeItem
|
||||||
|
import com.leinardi.android.speeddial.SpeedDialActionItem
|
||||||
|
import com.leinardi.android.speeddial.SpeedDialView
|
||||||
|
|
||||||
fun TextBadgeItem.removeBadge(): TextBadgeItem {
|
fun TextBadgeItem.removeBadge(): TextBadgeItem {
|
||||||
this.setText("")
|
this.setText("")
|
||||||
@ -9,3 +16,25 @@ fun TextBadgeItem.removeBadge(): TextBadgeItem {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun TextBadgeItem.maybeShow(): TextBadgeItem = if (this.isHidden) this.show() else this
|
fun TextBadgeItem.maybeShow(): TextBadgeItem = if (this.isHidden) this.show() else this
|
||||||
|
|
||||||
|
@Suppress("detekt:LongParameterList")
|
||||||
|
fun SpeedDialView.addHomeMadeActionItem(
|
||||||
|
@IdRes actionId: Int,
|
||||||
|
actionIcon: Drawable,
|
||||||
|
@StringRes labelId: Int,
|
||||||
|
colorOnSurface: Int,
|
||||||
|
colorSurface: Int,
|
||||||
|
context: Context,
|
||||||
|
) {
|
||||||
|
this.addActionItem(
|
||||||
|
SpeedDialActionItem
|
||||||
|
.Builder(actionId, actionIcon)
|
||||||
|
.setFabBackgroundColor(context.resources.getColor(R.color.colorAccent))
|
||||||
|
.setFabImageTintColor(colorOnSurface)
|
||||||
|
.setLabel(context.getString(labelId))
|
||||||
|
.setLabelClickable(false)
|
||||||
|
.setLabelBackgroundColor(colorOnSurface)
|
||||||
|
.setLabelColor(colorSurface)
|
||||||
|
.create(),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
@ -71,35 +71,13 @@
|
|||||||
|
|
||||||
</androidx.core.widget.NestedScrollView>
|
</androidx.core.widget.NestedScrollView>
|
||||||
|
|
||||||
<FrameLayout
|
<com.leinardi.android.speeddial.SpeedDialView
|
||||||
android:layout_width="match_parent"
|
android:id="@+id/speedDial"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="start|bottom|end"
|
android:layout_gravity="bottom|end"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_behavior="@string/speeddial_scrolling_view_snackbar_behavior"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:sdMainFabClosedSrc="@drawable/ic_add_white_24dp" />
|
||||||
app:layout_constraintStart_toStartOf="parent">
|
|
||||||
|
|
||||||
<com.github.rubensousa.floatingtoolbar.FloatingToolbar
|
|
||||||
android:id="@+id/floatingToolbar"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="?attr/actionBarSize"
|
|
||||||
android:layout_gravity="bottom"
|
|
||||||
app:floatingMenu="@menu/reader_toolbar" />
|
|
||||||
|
|
||||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
|
||||||
android:id="@+id/fab"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="end|bottom"
|
|
||||||
android:layout_marginEnd="16dp"
|
|
||||||
android:layout_marginBottom="16dp"
|
|
||||||
android:paddingTop="@dimen/activity_vertical_margin"
|
|
||||||
android:paddingBottom="@dimen/activity_vertical_margin"
|
|
||||||
android:src="@drawable/ic_add_white_24dp"
|
|
||||||
app:backgroundTint="?attr/colorAccent"
|
|
||||||
app:fabSize="mini"
|
|
||||||
app:rippleColor="?attr/colorAccentDark" />
|
|
||||||
</FrameLayout>
|
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:id="@+id/progressBar"
|
android:id="@+id/progressBar"
|
||||||
@ -119,4 +97,5 @@
|
|||||||
android:progressTint="?attr/colorAccent" />
|
android:progressTint="?attr/colorAccent" />
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
|
|
||||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
|
||||||
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||||
|
@ -1,23 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
|
||||||
|
|
||||||
<item
|
|
||||||
android:id="@+id/unread_action"
|
|
||||||
android:icon="@drawable/ic_baseline_white_eye_24dp"
|
|
||||||
android:title="@string/unmark"
|
|
||||||
app:showAsAction="ifRoom" />
|
|
||||||
|
|
||||||
<item
|
|
||||||
android:id="@+id/open_action"
|
|
||||||
android:icon="@drawable/ic_open_in_browser_white_24dp"
|
|
||||||
android:title="@string/reader_action_open"
|
|
||||||
app:showAsAction="ifRoom" />
|
|
||||||
|
|
||||||
<item
|
|
||||||
android:id="@+id/share_action"
|
|
||||||
android:icon="@drawable/ic_share_white_24dp"
|
|
||||||
android:title="@string/reader_action_share"
|
|
||||||
app:showAsAction="ifRoom" />
|
|
||||||
|
|
||||||
</menu>
|
|
@ -106,9 +106,6 @@
|
|||||||
<string name="reader_text_align_left">Align left</string>
|
<string name="reader_text_align_left">Align left</string>
|
||||||
<string name="reader_text_align_justify">Justify</string>
|
<string name="reader_text_align_justify">Justify</string>
|
||||||
<string name="settings_reader_font">Reader font</string>
|
<string name="settings_reader_font">Reader font</string>
|
||||||
<string name="reader_static_bar_title">Static bottom bar in the article viewer</string>
|
|
||||||
<string name="reader_static_bar_on">The bottom bar will always be displayed</string>
|
|
||||||
<string name="reader_static_bar_off">The bottom bar can be shown through the floating button</string>
|
|
||||||
<string name="remove_source">Remove source</string>
|
<string name="remove_source">Remove source</string>
|
||||||
<string name="pref_theme_title">Light/Dark mode</string>
|
<string name="pref_theme_title">Light/Dark mode</string>
|
||||||
<string name="mode_dark">Dark mode</string>
|
<string name="mode_dark">Dark mode</string>
|
||||||
@ -132,4 +129,4 @@
|
|||||||
<string name="action_about">"Quant a"</string>
|
<string name="action_about">"Quant a"</string>
|
||||||
<string name="marked_as_read">"Element llegit"</string>
|
<string name="marked_as_read">"Element llegit"</string>
|
||||||
<string name="marked_as_unread">"Item unread"</string>
|
<string name="marked_as_unread">"Item unread"</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -106,9 +106,6 @@
|
|||||||
<string name="reader_text_align_left">Linksbündig</string>
|
<string name="reader_text_align_left">Linksbündig</string>
|
||||||
<string name="reader_text_align_justify">Blocksatz</string>
|
<string name="reader_text_align_justify">Blocksatz</string>
|
||||||
<string name="settings_reader_font">Schriftgröße im Lesemodus</string>
|
<string name="settings_reader_font">Schriftgröße im Lesemodus</string>
|
||||||
<string name="reader_static_bar_title">Statische untere Leiste im Lesemodus</string>
|
|
||||||
<string name="reader_static_bar_on">Die untere Leiste wird dauerhaft angezeigt</string>
|
|
||||||
<string name="reader_static_bar_off">Die untere Leiste kann über einen schwebenden Button angezeigt werden</string>
|
|
||||||
<string name="remove_source">Quelle entfernen</string>
|
<string name="remove_source">Quelle entfernen</string>
|
||||||
<string name="pref_theme_title">Heller/Dunkler Modus</string>
|
<string name="pref_theme_title">Heller/Dunkler Modus</string>
|
||||||
<string name="mode_dark">Dunkler Modus</string>
|
<string name="mode_dark">Dunkler Modus</string>
|
||||||
@ -132,4 +129,4 @@
|
|||||||
<string name="action_about">"Über"</string>
|
<string name="action_about">"Über"</string>
|
||||||
<string name="marked_as_read">"Artikel gelesen"</string>
|
<string name="marked_as_read">"Artikel gelesen"</string>
|
||||||
<string name="marked_as_unread">"Item unread"</string>
|
<string name="marked_as_unread">"Item unread"</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -106,9 +106,6 @@
|
|||||||
<string name="reader_text_align_left">Alinear a la izquierda</string>
|
<string name="reader_text_align_left">Alinear a la izquierda</string>
|
||||||
<string name="reader_text_align_justify">Justificado</string>
|
<string name="reader_text_align_justify">Justificado</string>
|
||||||
<string name="settings_reader_font">Modo lectura</string>
|
<string name="settings_reader_font">Modo lectura</string>
|
||||||
<string name="reader_static_bar_title">Static bottom bar in the article viewer</string>
|
|
||||||
<string name="reader_static_bar_on">The bottom bar will always be displayed</string>
|
|
||||||
<string name="reader_static_bar_off">The bottom bar can be shown through the floating button</string>
|
|
||||||
<string name="remove_source">Remove source</string>
|
<string name="remove_source">Remove source</string>
|
||||||
<string name="pref_theme_title">Light/Dark mode</string>
|
<string name="pref_theme_title">Light/Dark mode</string>
|
||||||
<string name="mode_dark">Dark mode</string>
|
<string name="mode_dark">Dark mode</string>
|
||||||
@ -132,4 +129,4 @@
|
|||||||
<string name="action_about">"Acerca de"</string>
|
<string name="action_about">"Acerca de"</string>
|
||||||
<string name="marked_as_read">"Artículo leído"</string>
|
<string name="marked_as_read">"Artículo leído"</string>
|
||||||
<string name="marked_as_unread">"Artículo no leído"</string>
|
<string name="marked_as_unread">"Artículo no leído"</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -106,9 +106,6 @@
|
|||||||
<string name="reader_text_align_left">Aligner à gauche</string>
|
<string name="reader_text_align_left">Aligner à gauche</string>
|
||||||
<string name="reader_text_align_justify">Justifier le texte</string>
|
<string name="reader_text_align_justify">Justifier le texte</string>
|
||||||
<string name="settings_reader_font">Police du lecteur d\'articles</string>
|
<string name="settings_reader_font">Police du lecteur d\'articles</string>
|
||||||
<string name="reader_static_bar_title">Barre statique pour le visionneur d\'articles</string>
|
|
||||||
<string name="reader_static_bar_on">La barre sera affichée</string>
|
|
||||||
<string name="reader_static_bar_off">La barre sera affichée grâce au bouton</string>
|
|
||||||
<string name="remove_source">Supprimer la source</string>
|
<string name="remove_source">Supprimer la source</string>
|
||||||
<string name="pref_theme_title">Thème Clair/Sombre</string>
|
<string name="pref_theme_title">Thème Clair/Sombre</string>
|
||||||
<string name="mode_dark">Thème sombre</string>
|
<string name="mode_dark">Thème sombre</string>
|
||||||
@ -132,4 +129,4 @@
|
|||||||
<string name="action_about">"À propos"</string>
|
<string name="action_about">"À propos"</string>
|
||||||
<string name="marked_as_read">"Marqué comme lu"</string>
|
<string name="marked_as_read">"Marqué comme lu"</string>
|
||||||
<string name="marked_as_unread">"Marqué comme non lu"</string>
|
<string name="marked_as_unread">"Marqué comme non lu"</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -106,9 +106,6 @@
|
|||||||
<string name="reader_text_align_left">Aliñar á esquerda</string>
|
<string name="reader_text_align_left">Aliñar á esquerda</string>
|
||||||
<string name="reader_text_align_justify">Xustificado</string>
|
<string name="reader_text_align_justify">Xustificado</string>
|
||||||
<string name="settings_reader_font">Modo lector</string>
|
<string name="settings_reader_font">Modo lector</string>
|
||||||
<string name="reader_static_bar_title">Barra inferior estática na vista de artigos</string>
|
|
||||||
<string name="reader_static_bar_on">A barra inferior mostrarase sempre</string>
|
|
||||||
<string name="reader_static_bar_off">A barra inferior pode mostrarse a través do botón flotante</string>
|
|
||||||
<string name="remove_source">Eliminar fonte</string>
|
<string name="remove_source">Eliminar fonte</string>
|
||||||
<string name="pref_theme_title">Modo Claro/Escuro</string>
|
<string name="pref_theme_title">Modo Claro/Escuro</string>
|
||||||
<string name="mode_dark">Modo escuro</string>
|
<string name="mode_dark">Modo escuro</string>
|
||||||
@ -132,4 +129,4 @@
|
|||||||
<string name="action_about">"Acerca de"</string>
|
<string name="action_about">"Acerca de"</string>
|
||||||
<string name="marked_as_read">"Elemento lido"</string>
|
<string name="marked_as_read">"Elemento lido"</string>
|
||||||
<string name="marked_as_unread">"Elemento non lido"</string>
|
<string name="marked_as_unread">"Elemento non lido"</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -106,9 +106,6 @@
|
|||||||
<string name="reader_text_align_left">Align left</string>
|
<string name="reader_text_align_left">Align left</string>
|
||||||
<string name="reader_text_align_justify">Justify</string>
|
<string name="reader_text_align_justify">Justify</string>
|
||||||
<string name="settings_reader_font">Reader font</string>
|
<string name="settings_reader_font">Reader font</string>
|
||||||
<string name="reader_static_bar_title">Static bottom bar in the article viewer</string>
|
|
||||||
<string name="reader_static_bar_on">The bottom bar will always be displayed</string>
|
|
||||||
<string name="reader_static_bar_off">The bottom bar can be shown through the floating button</string>
|
|
||||||
<string name="remove_source">Remove source</string>
|
<string name="remove_source">Remove source</string>
|
||||||
<string name="pref_theme_title">Light/Dark mode</string>
|
<string name="pref_theme_title">Light/Dark mode</string>
|
||||||
<string name="mode_dark">Dark mode</string>
|
<string name="mode_dark">Dark mode</string>
|
||||||
@ -132,4 +129,4 @@
|
|||||||
<string name="action_about">"Tentang"</string>
|
<string name="action_about">"Tentang"</string>
|
||||||
<string name="marked_as_read">"Membaca item"</string>
|
<string name="marked_as_read">"Membaca item"</string>
|
||||||
<string name="marked_as_unread">"Item unread"</string>
|
<string name="marked_as_unread">"Item unread"</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -106,9 +106,6 @@
|
|||||||
<string name="reader_text_align_left">Align left</string>
|
<string name="reader_text_align_left">Align left</string>
|
||||||
<string name="reader_text_align_justify">Justify</string>
|
<string name="reader_text_align_justify">Justify</string>
|
||||||
<string name="settings_reader_font">Reader font</string>
|
<string name="settings_reader_font">Reader font</string>
|
||||||
<string name="reader_static_bar_title">Static bottom bar in the article viewer</string>
|
|
||||||
<string name="reader_static_bar_on">The bottom bar will always be displayed</string>
|
|
||||||
<string name="reader_static_bar_off">The bottom bar can be shown through the floating button</string>
|
|
||||||
<string name="remove_source">Remove source</string>
|
<string name="remove_source">Remove source</string>
|
||||||
<string name="pref_theme_title">Light/Dark mode</string>
|
<string name="pref_theme_title">Light/Dark mode</string>
|
||||||
<string name="mode_dark">Dark mode</string>
|
<string name="mode_dark">Dark mode</string>
|
||||||
@ -132,4 +129,4 @@
|
|||||||
<string name="action_about">"Informazioni"</string>
|
<string name="action_about">"Informazioni"</string>
|
||||||
<string name="marked_as_read">"Articolo letto"</string>
|
<string name="marked_as_read">"Articolo letto"</string>
|
||||||
<string name="marked_as_unread">"Item unread"</string>
|
<string name="marked_as_unread">"Item unread"</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -106,9 +106,6 @@
|
|||||||
<string name="reader_text_align_left">Align left</string>
|
<string name="reader_text_align_left">Align left</string>
|
||||||
<string name="reader_text_align_justify">Justify</string>
|
<string name="reader_text_align_justify">Justify</string>
|
||||||
<string name="settings_reader_font">Reader font</string>
|
<string name="settings_reader_font">Reader font</string>
|
||||||
<string name="reader_static_bar_title">Static bottom bar in the article viewer</string>
|
|
||||||
<string name="reader_static_bar_on">The bottom bar will always be displayed</string>
|
|
||||||
<string name="reader_static_bar_off">The bottom bar can be shown through the floating button</string>
|
|
||||||
<string name="remove_source">Remove source</string>
|
<string name="remove_source">Remove source</string>
|
||||||
<string name="pref_theme_title">Light/Dark mode</string>
|
<string name="pref_theme_title">Light/Dark mode</string>
|
||||||
<string name="mode_dark">Dark mode</string>
|
<string name="mode_dark">Dark mode</string>
|
||||||
@ -132,4 +129,4 @@
|
|||||||
<string name="action_about">"정보"</string>
|
<string name="action_about">"정보"</string>
|
||||||
<string name="marked_as_read">"항목 읽기"</string>
|
<string name="marked_as_read">"항목 읽기"</string>
|
||||||
<string name="marked_as_unread">"Item unread"</string>
|
<string name="marked_as_unread">"Item unread"</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -105,9 +105,6 @@
|
|||||||
<string name="reader_text_align_left">Align left</string>
|
<string name="reader_text_align_left">Align left</string>
|
||||||
<string name="reader_text_align_justify">Justify</string>
|
<string name="reader_text_align_justify">Justify</string>
|
||||||
<string name="settings_reader_font">Reader font</string>
|
<string name="settings_reader_font">Reader font</string>
|
||||||
<string name="reader_static_bar_title">Static bottom bar in the article viewer</string>
|
|
||||||
<string name="reader_static_bar_on">The bottom bar will always be displayed</string>
|
|
||||||
<string name="reader_static_bar_off">The bottom bar can be shown through the floating button</string>
|
|
||||||
<string name="remove_source">Remove source</string>
|
<string name="remove_source">Remove source</string>
|
||||||
<string name="pref_theme_title">Light/Dark mode</string>
|
<string name="pref_theme_title">Light/Dark mode</string>
|
||||||
<string name="mode_dark">Dark mode</string>
|
<string name="mode_dark">Dark mode</string>
|
||||||
@ -132,4 +129,4 @@
|
|||||||
<string name="marked_as_read">"Artikel gelezen"</string>
|
<string name="marked_as_read">"Artikel gelezen"</string>
|
||||||
<string name="marked_as_unread">"Item unread"</string>
|
<string name="marked_as_unread">"Item unread"</string>
|
||||||
<string name="undo_string">"Ongedaan maken"</string>
|
<string name="undo_string">"Ongedaan maken"</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -106,9 +106,6 @@
|
|||||||
<string name="reader_text_align_left">Align left</string>
|
<string name="reader_text_align_left">Align left</string>
|
||||||
<string name="reader_text_align_justify">Justify</string>
|
<string name="reader_text_align_justify">Justify</string>
|
||||||
<string name="settings_reader_font">Reader font</string>
|
<string name="settings_reader_font">Reader font</string>
|
||||||
<string name="reader_static_bar_title">Static bottom bar in the article viewer</string>
|
|
||||||
<string name="reader_static_bar_on">The bottom bar will always be displayed</string>
|
|
||||||
<string name="reader_static_bar_off">The bottom bar can be shown through the floating button</string>
|
|
||||||
<string name="remove_source">Remove source</string>
|
<string name="remove_source">Remove source</string>
|
||||||
<string name="pref_theme_title">Light/Dark mode</string>
|
<string name="pref_theme_title">Light/Dark mode</string>
|
||||||
<string name="mode_dark">Dark mode</string>
|
<string name="mode_dark">Dark mode</string>
|
||||||
@ -132,4 +129,4 @@
|
|||||||
<string name="action_about">"Sobre"</string>
|
<string name="action_about">"Sobre"</string>
|
||||||
<string name="marked_as_read">"Item lido"</string>
|
<string name="marked_as_read">"Item lido"</string>
|
||||||
<string name="marked_as_unread">"Item unread"</string>
|
<string name="marked_as_unread">"Item unread"</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -106,9 +106,6 @@
|
|||||||
<string name="reader_text_align_left">Align left</string>
|
<string name="reader_text_align_left">Align left</string>
|
||||||
<string name="reader_text_align_justify">Justify</string>
|
<string name="reader_text_align_justify">Justify</string>
|
||||||
<string name="settings_reader_font">Reader font</string>
|
<string name="settings_reader_font">Reader font</string>
|
||||||
<string name="reader_static_bar_title">Static bottom bar in the article viewer</string>
|
|
||||||
<string name="reader_static_bar_on">The bottom bar will always be displayed</string>
|
|
||||||
<string name="reader_static_bar_off">The bottom bar can be shown through the floating button</string>
|
|
||||||
<string name="remove_source">Remove source</string>
|
<string name="remove_source">Remove source</string>
|
||||||
<string name="pref_theme_title">Light/Dark mode</string>
|
<string name="pref_theme_title">Light/Dark mode</string>
|
||||||
<string name="mode_dark">Dark mode</string>
|
<string name="mode_dark">Dark mode</string>
|
||||||
@ -132,4 +129,4 @@
|
|||||||
<string name="action_about">"Sobre"</string>
|
<string name="action_about">"Sobre"</string>
|
||||||
<string name="marked_as_read">"Item lido"</string>
|
<string name="marked_as_read">"Item lido"</string>
|
||||||
<string name="marked_as_unread">"Item unread"</string>
|
<string name="marked_as_unread">"Item unread"</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -106,9 +106,6 @@
|
|||||||
<string name="reader_text_align_left">Align left</string>
|
<string name="reader_text_align_left">Align left</string>
|
||||||
<string name="reader_text_align_justify">Justify</string>
|
<string name="reader_text_align_justify">Justify</string>
|
||||||
<string name="settings_reader_font">Reader font</string>
|
<string name="settings_reader_font">Reader font</string>
|
||||||
<string name="reader_static_bar_title">Static bottom bar in the article viewer</string>
|
|
||||||
<string name="reader_static_bar_on">The bottom bar will always be displayed</string>
|
|
||||||
<string name="reader_static_bar_off">The bottom bar can be shown through the floating button</string>
|
|
||||||
<string name="remove_source">Remove source</string>
|
<string name="remove_source">Remove source</string>
|
||||||
<string name="pref_theme_title">Light/Dark mode</string>
|
<string name="pref_theme_title">Light/Dark mode</string>
|
||||||
<string name="mode_dark">Dark mode</string>
|
<string name="mode_dark">Dark mode</string>
|
||||||
@ -132,4 +129,4 @@
|
|||||||
<string name="action_about">"මේ ගැන"</string>
|
<string name="action_about">"මේ ගැන"</string>
|
||||||
<string name="marked_as_read">"Item read"</string>
|
<string name="marked_as_read">"Item read"</string>
|
||||||
<string name="marked_as_unread">"Item unread"</string>
|
<string name="marked_as_unread">"Item unread"</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -106,9 +106,6 @@
|
|||||||
<string name="reader_text_align_left">Align left</string>
|
<string name="reader_text_align_left">Align left</string>
|
||||||
<string name="reader_text_align_justify">Justify</string>
|
<string name="reader_text_align_justify">Justify</string>
|
||||||
<string name="settings_reader_font">Reader font</string>
|
<string name="settings_reader_font">Reader font</string>
|
||||||
<string name="reader_static_bar_title">Static bottom bar in the article viewer</string>
|
|
||||||
<string name="reader_static_bar_on">The bottom bar will always be displayed</string>
|
|
||||||
<string name="reader_static_bar_off">The bottom bar can be shown through the floating button</string>
|
|
||||||
<string name="remove_source">Remove source</string>
|
<string name="remove_source">Remove source</string>
|
||||||
<string name="pref_theme_title">Light/Dark mode</string>
|
<string name="pref_theme_title">Light/Dark mode</string>
|
||||||
<string name="mode_dark">Dark mode</string>
|
<string name="mode_dark">Dark mode</string>
|
||||||
@ -132,4 +129,4 @@
|
|||||||
<string name="action_about">"Hakkında"</string>
|
<string name="action_about">"Hakkında"</string>
|
||||||
<string name="marked_as_read">"Öğeleri oku"</string>
|
<string name="marked_as_read">"Öğeleri oku"</string>
|
||||||
<string name="marked_as_unread">"Item unread"</string>
|
<string name="marked_as_unread">"Item unread"</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -106,9 +106,6 @@
|
|||||||
<string name="reader_text_align_left">左对齐</string>
|
<string name="reader_text_align_left">左对齐</string>
|
||||||
<string name="reader_text_align_justify">左右对齐</string>
|
<string name="reader_text_align_justify">左右对齐</string>
|
||||||
<string name="settings_reader_font">阅读器字体</string>
|
<string name="settings_reader_font">阅读器字体</string>
|
||||||
<string name="reader_static_bar_title">文章查看器中的静态底部栏</string>
|
|
||||||
<string name="reader_static_bar_on">底部栏将始终显示</string>
|
|
||||||
<string name="reader_static_bar_off">底部栏可以通过浮动按钮显示</string>
|
|
||||||
<string name="remove_source">删除源</string>
|
<string name="remove_source">删除源</string>
|
||||||
<string name="pref_theme_title">浅色/深色模式</string>
|
<string name="pref_theme_title">浅色/深色模式</string>
|
||||||
<string name="mode_dark">深色模式</string>
|
<string name="mode_dark">深色模式</string>
|
||||||
@ -132,4 +129,4 @@
|
|||||||
<string name="action_about">"关于我们"</string>
|
<string name="action_about">"关于我们"</string>
|
||||||
<string name="marked_as_read">"已读"</string>
|
<string name="marked_as_read">"已读"</string>
|
||||||
<string name="marked_as_unread">"未读条目"</string>
|
<string name="marked_as_unread">"未读条目"</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -106,9 +106,6 @@
|
|||||||
<string name="reader_text_align_left">Align left</string>
|
<string name="reader_text_align_left">Align left</string>
|
||||||
<string name="reader_text_align_justify">Justify</string>
|
<string name="reader_text_align_justify">Justify</string>
|
||||||
<string name="settings_reader_font">Reader font</string>
|
<string name="settings_reader_font">Reader font</string>
|
||||||
<string name="reader_static_bar_title">Static bottom bar in the article viewer</string>
|
|
||||||
<string name="reader_static_bar_on">The bottom bar will always be displayed</string>
|
|
||||||
<string name="reader_static_bar_off">The bottom bar can be shown through the floating button</string>
|
|
||||||
<string name="remove_source">Remove source</string>
|
<string name="remove_source">Remove source</string>
|
||||||
<string name="pref_theme_title">Light/Dark mode</string>
|
<string name="pref_theme_title">Light/Dark mode</string>
|
||||||
<string name="mode_dark">Dark mode</string>
|
<string name="mode_dark">Dark mode</string>
|
||||||
@ -132,4 +129,4 @@
|
|||||||
<string name="action_about">"关于我们"</string>
|
<string name="action_about">"关于我们"</string>
|
||||||
<string name="marked_as_read">"已读"</string>
|
<string name="marked_as_read">"已读"</string>
|
||||||
<string name="marked_as_unread">"未讀項目"</string>
|
<string name="marked_as_unread">"未讀項目"</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
6
androidApp/src/main/res/values/ids.xml
Normal file
6
androidApp/src/main/res/values/ids.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<item name="unread_action" type="id" />
|
||||||
|
<item name="open_action" type="id" />
|
||||||
|
<item name="share_action" type="id" />
|
||||||
|
</resources>
|
@ -108,9 +108,6 @@
|
|||||||
<string name="source_code_pro_font_id" translatable="false">source_code_pro_medium</string>
|
<string name="source_code_pro_font_id" translatable="false">source_code_pro_medium</string>
|
||||||
<string name="open_sans_font_id" translatable="false">open_sans</string>
|
<string name="open_sans_font_id" translatable="false">open_sans</string>
|
||||||
<string name="roboto_font_id" translatable="false">roboto</string>
|
<string name="roboto_font_id" translatable="false">roboto</string>
|
||||||
<string name="reader_static_bar_title">Static bottom bar in the article viewer</string>
|
|
||||||
<string name="reader_static_bar_on">The bottom bar will always be displayed</string>
|
|
||||||
<string name="reader_static_bar_off">The bottom bar can be shown through the floating button</string>
|
|
||||||
<string name="remove_source">Remove source</string>
|
<string name="remove_source">Remove source</string>
|
||||||
<string name="pref_theme_title">Light/Dark mode</string>
|
<string name="pref_theme_title">Light/Dark mode</string>
|
||||||
<string name="mode_dark">Dark mode</string>
|
<string name="mode_dark">Dark mode</string>
|
||||||
@ -134,4 +131,4 @@
|
|||||||
<string name="action_about">"About"</string>
|
<string name="action_about">"About"</string>
|
||||||
<string name="marked_as_read">"Item read"</string>
|
<string name="marked_as_read">"Item read"</string>
|
||||||
<string name="marked_as_unread">"Item unread"</string>
|
<string name="marked_as_unread">"Item unread"</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -30,14 +30,6 @@
|
|||||||
android:summaryOn="@string/pref_article_viewer_on"
|
android:summaryOn="@string/pref_article_viewer_on"
|
||||||
android:title="@string/pref_article_viewer_title"
|
android:title="@string/pref_article_viewer_title"
|
||||||
app:iconSpaceReserved="false"/>
|
app:iconSpaceReserved="false"/>
|
||||||
<SwitchPreference
|
|
||||||
android:defaultValue="false"
|
|
||||||
android:dependency="prefer_article_viewer"
|
|
||||||
android:key="reader_static_bar"
|
|
||||||
android:summaryOff="@string/reader_static_bar_off"
|
|
||||||
android:summaryOn="@string/reader_static_bar_on"
|
|
||||||
android:title="@string/reader_static_bar_title"
|
|
||||||
app:iconSpaceReserved="false"/>
|
|
||||||
|
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:title="@string/pref_general_category_displaying">
|
android:title="@string/pref_general_category_displaying">
|
||||||
|
@ -18,7 +18,7 @@ kotlin.code.style=official
|
|||||||
#Android
|
#Android
|
||||||
android.useAndroidX=true
|
android.useAndroidX=true
|
||||||
#android.nonTransitiveRClass=true
|
#android.nonTransitiveRClass=true
|
||||||
android.enableJetifier=true
|
android.enableJetifier=false
|
||||||
android.nonTransitiveRClass=false
|
android.nonTransitiveRClass=false
|
||||||
#MPP
|
#MPP
|
||||||
kotlin.mpp.enableCInteropCommonization=true
|
kotlin.mpp.enableCInteropCommonization=true
|
||||||
|
@ -53,7 +53,6 @@ class AppSettingsService(
|
|||||||
private var activeAlignment: Int? = null
|
private var activeAlignment: Int? = null
|
||||||
|
|
||||||
private var fontSize: Int? = null
|
private var fontSize: Int? = null
|
||||||
private var staticBar: Boolean? = null
|
|
||||||
private var font: String = ""
|
private var font: String = ""
|
||||||
private var theme: Int? = null
|
private var theme: Int? = null
|
||||||
|
|
||||||
@ -386,17 +385,6 @@ class AppSettingsService(
|
|||||||
return fontSize ?: DEFAULT_FONT_SIZE
|
return fontSize ?: DEFAULT_FONT_SIZE
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun refreshStaticBarEnabled() {
|
|
||||||
staticBar = settings.getBoolean(READER_STATIC_BAR, false)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun isStaticBarEnabled(): Boolean {
|
|
||||||
if (staticBar != null) {
|
|
||||||
refreshStaticBarEnabled()
|
|
||||||
}
|
|
||||||
return staticBar == true
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun refreshFont() {
|
private fun refreshFont() {
|
||||||
font = settings.getString(READER_FONT, "")
|
font = settings.getString(READER_FONT, "")
|
||||||
}
|
}
|
||||||
@ -449,7 +437,6 @@ class AppSettingsService(
|
|||||||
refreshActiveAllignment()
|
refreshActiveAllignment()
|
||||||
refreshFontSize()
|
refreshFontSize()
|
||||||
refreshFont()
|
refreshFont()
|
||||||
refreshStaticBarEnabled()
|
|
||||||
refreshCurrentTheme()
|
refreshCurrentTheme()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -547,8 +534,6 @@ class AppSettingsService(
|
|||||||
|
|
||||||
const val READER_FONT = "reader_font"
|
const val READER_FONT = "reader_font"
|
||||||
|
|
||||||
const val READER_STATIC_BAR = "reader_static_bar"
|
|
||||||
|
|
||||||
const val READER_FONT_SIZE = "reader_font_size"
|
const val READER_FONT_SIZE = "reader_font_size"
|
||||||
|
|
||||||
const val TEXT_ALIGN = "text_align"
|
const val TEXT_ALIGN = "text_align"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user