...
This commit is contained in:
@@ -602,6 +602,15 @@ internal class LauncherActivity : CommonActivity() {
|
||||
binding.tabs.setOnCheckedChangeListener { g, id ->
|
||||
showContents(id)
|
||||
}
|
||||
binding.hidden.setOnLongClickListener {
|
||||
supportFragmentManager.beginTransaction()
|
||||
.replace(R.id.fragment_container, RssHome().apply {
|
||||
arguments = Bundle().apply {
|
||||
putBoolean("HIDDEN", true)
|
||||
}}
|
||||
).commit()
|
||||
true
|
||||
}
|
||||
|
||||
/* handle navigation back events */
|
||||
handleBackPress()
|
||||
|
||||
@@ -112,6 +112,11 @@ class GeckoWeb : BWebview {
|
||||
var mPort: WebExtension.Port? = null
|
||||
var mCaache : WebExtension.Port? = null
|
||||
var privateMode = false
|
||||
set(value) {
|
||||
Blog.LOGE("Current Mode = $field")
|
||||
Blog.LOGE("Current Mode = $value")
|
||||
field = value
|
||||
}
|
||||
object WebExtensionInfo {
|
||||
val mPortNam = "browser"
|
||||
val extPath = "resource://android/assets/extensions/my_extension/"
|
||||
|
||||
@@ -29,9 +29,11 @@ import android.os.Bundle
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.view.LayoutInflater
|
||||
import android.view.MotionEvent
|
||||
import android.view.PointerIcon
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.CheckBox
|
||||
import android.widget.EditText
|
||||
import android.widget.ImageView
|
||||
import android.widget.Toast
|
||||
@@ -83,6 +85,7 @@ import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.launch
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Date
|
||||
import kotlin.time.TimeSource
|
||||
|
||||
|
||||
internal class RssHome : Fragment() {
|
||||
@@ -203,9 +206,14 @@ internal class RssHome : Fragment() {
|
||||
return false
|
||||
}
|
||||
})
|
||||
|
||||
var useHiddenMenu = false
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
arguments?.let {
|
||||
if(it.containsKey("HIDDEN") && it.getBoolean("HIDDEN")) {
|
||||
useHiddenMenu = true
|
||||
}
|
||||
}
|
||||
home = this
|
||||
}
|
||||
|
||||
@@ -279,6 +287,12 @@ internal class RssHome : Fragment() {
|
||||
val viewInflated: View = LayoutInflater.from(requireContext())
|
||||
.inflate(R.layout.text_inpu_password, binding.root as ViewGroup?, false)
|
||||
val input = viewInflated.findViewById<View>(R.id.input) as EditText
|
||||
val privateMode = viewInflated.findViewById<CheckBox>(R.id.parivate_mode) as CheckBox
|
||||
privateMode.setOnCheckedChangeListener { v,c->
|
||||
binding.geckoWeb.privateMode = c
|
||||
}
|
||||
privateMode.isChecked = true
|
||||
binding.geckoWeb.privateMode = true
|
||||
builder.setView(viewInflated)
|
||||
builder.setPositiveButton(
|
||||
android.R.string.ok,
|
||||
@@ -306,13 +320,13 @@ internal class RssHome : Fragment() {
|
||||
fun openGecko(originPage: String? = null, rssData: RssData? = null) {
|
||||
if (!imageView) {
|
||||
originPage?.let {
|
||||
binding.geckoWeb.privateMode = false
|
||||
rssId = originPage
|
||||
targetList.clear()
|
||||
|
||||
var setString = hashSetOf<String>()
|
||||
setString.addAll(rssList)
|
||||
setString.removeAll { it.equals(rssId) }
|
||||
|
||||
targetList.addAll(setString)
|
||||
binding.geckoWeb.loadUrl(rssId)
|
||||
}
|
||||
@@ -399,13 +413,28 @@ internal class RssHome : Fragment() {
|
||||
vote()
|
||||
}
|
||||
}
|
||||
binding.test.setOnClickListener {
|
||||
if (binding.geckoWeb.isVisible) {
|
||||
Blog.LOGE("useHiddenMenu >>> $useHiddenMenu")
|
||||
if (useHiddenMenu) {
|
||||
binding.search.setOnLongClickListener {
|
||||
if (binding.geckoWeb.isVisible) {
|
||||
binding.geckoWeb.visibility = View.GONE
|
||||
}
|
||||
binding.geckoWeb.visibility = View.GONE
|
||||
|
||||
ask()
|
||||
true
|
||||
}
|
||||
binding.geckoWeb.visibility = View.GONE
|
||||
ask()
|
||||
binding.privateBtn.setOnClickListener {
|
||||
queryPrevate(true)
|
||||
}
|
||||
binding.privateBtn.setOnLongClickListener {
|
||||
queryPrevate(false)
|
||||
true
|
||||
}
|
||||
binding.privateBtn.visibility = View.VISIBLE
|
||||
binding.search.visibility = View.VISIBLE
|
||||
} else {
|
||||
binding.privateBtn.visibility = View.GONE
|
||||
binding.search.visibility = View.GONE
|
||||
}
|
||||
|
||||
binding.hide.setOnClickListener {
|
||||
@@ -439,9 +468,7 @@ internal class RssHome : Fragment() {
|
||||
binding.layoutRssSummary.root.visibility = View.GONE
|
||||
queryVotes()
|
||||
}
|
||||
binding.prv.setOnClickListener {
|
||||
queryPrevate()
|
||||
}
|
||||
|
||||
binding.layoutRssSummary.link.setOnClickListener {
|
||||
(it.tag as? RssData)?.let {
|
||||
appendReadCount(it, 1, true)
|
||||
@@ -564,12 +591,12 @@ internal class RssHome : Fragment() {
|
||||
flow.collect { changes: ResultsChange<RssData> ->
|
||||
// when (changes) {
|
||||
// is InitialResults -> {
|
||||
commandHandler.removeCallbacks(infoUpdate)
|
||||
WorkersDb.getRealm().apply {
|
||||
lasted.clear()
|
||||
lasted.addAll(copyFromRealm(changes.list))
|
||||
}
|
||||
commandHandler.post(infoUpdate)
|
||||
commandHandler.removeCallbacks(infoUpdate)
|
||||
WorkersDb.getRealm().apply {
|
||||
lasted.clear()
|
||||
lasted.addAll(copyFromRealm(changes.list))
|
||||
}
|
||||
commandHandler.post(infoUpdate)
|
||||
// }
|
||||
//
|
||||
// is UpdatedResults -> {
|
||||
@@ -587,10 +614,10 @@ internal class RssHome : Fragment() {
|
||||
}
|
||||
}
|
||||
|
||||
fun queryPrevate() {
|
||||
fun queryPrevate(filter: Boolean = true) {
|
||||
imageView = true
|
||||
beforeQuery()
|
||||
updateQuery(WorkersDb.getPrivate())
|
||||
updateQuery(WorkersDb.getPrivate(filter))
|
||||
}
|
||||
|
||||
fun queryVotes() {
|
||||
@@ -733,10 +760,28 @@ internal class RssHome : Fragment() {
|
||||
override fun onPause() {
|
||||
super.onPause()
|
||||
}
|
||||
|
||||
var lOnTouchListener = object : View.OnTouchListener{
|
||||
override fun onTouch(
|
||||
v: View,
|
||||
event: MotionEvent
|
||||
): Boolean {
|
||||
when(event.action) {
|
||||
MotionEvent.ACTION_DOWN,MotionEvent.ACTION_MOVE->{
|
||||
v.alpha = Math.min(v.alpha + 0.01f, 1f)
|
||||
}
|
||||
else -> {
|
||||
v.alpha = 0.05f
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
fun loadImage(imageView: ImageView, url: String?, retryCount: Int = 3) {
|
||||
Picasso.get().cancelRequest(imageView)
|
||||
with(imageView) {
|
||||
Picasso.get().cancelRequest(this)
|
||||
setOnTouchListener(null)
|
||||
}
|
||||
url?.let { url ->
|
||||
if (url.length > 4) {
|
||||
try {
|
||||
@@ -747,7 +792,9 @@ internal class RssHome : Fragment() {
|
||||
.load(url)
|
||||
.into(imageView, object : com.squareup.picasso.Callback {
|
||||
override fun onSuccess() {
|
||||
imageView.visibility = View.VISIBLE
|
||||
imageView.setAlpha(0.05f)
|
||||
imageView.setOnTouchListener(lOnTouchListener)
|
||||
Blog.LOGE("Picasso load into onSuccess URL:$url")
|
||||
}
|
||||
|
||||
|
||||
@@ -216,6 +216,7 @@ object WorkersDb {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun prvClear() {
|
||||
getRealm().writeBlocking {
|
||||
var results = query<RssData>().query("category == $0 ",
|
||||
@@ -223,8 +224,14 @@ object WorkersDb {
|
||||
delete(results)
|
||||
}
|
||||
}
|
||||
fun getPrivate() = getRealm().query<RssData>().query("category == $0 ",
|
||||
RssDataType.PRIVATE.name).distinct("originPage", "title").query("read < $0", 5).query("vote != $0", true)
|
||||
|
||||
fun getPrivate(filter : Boolean) : RealmQuery<RssData> {
|
||||
var rq = getRealm().query<RssData>().query("category == $0 ",RssDataType.PRIVATE.name).distinct("originPage", "title")
|
||||
if (filter) {
|
||||
rq = rq.query("read < $0", 5).query("vote != $0", true)
|
||||
}
|
||||
return rq
|
||||
}
|
||||
|
||||
fun getVotedRss() = getRealm().query<RssData>().query("vote == $0", true).distinct("originPage", "title")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user