diff --git a/app/build.gradle.kts b/app/build.gradle.kts index dcd6be4f..406af2b5 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -118,7 +118,7 @@ dependencies { implementation ("androidx.media:media:1.7.0") - implementation(project(":sdk")) +// implementation(project(":sdk")) // implementation ("me.everything:providers-android:1.0.1") // implementation ("me.everything:providers-core:1.0.1") // implementation ("androidx.window:window:1.0.0") diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0e830b9b..f45aca64 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -109,11 +109,11 @@ - - + + + + + { - WorkersDb.getRealm().apply { - writeBlocking { - var ddd = copyFromRealm(WorkersDb.getRssQuery("", RssDataType.getAdts(),false).limit(100).find()).map { it.originPage() } - var origin = ddd.first() - RssViewBuilder(lActivity!!) - .setRssList(arrayListOf().apply { this.addAll(ddd) }) - .setRssId(origin) - .showIconClose(true).showIconBack(false).showProgressBar(true).backPressToClose(false).webViewMixedContentMode(1) - .show(origin) - } - } + } KEYCODE_BUTTON_A->{ WorkersDb.getRealm().apply { @@ -337,11 +328,11 @@ internal class LauncherActivity : CommonActivity() { } } KEYCODE_BUTTON_B->{ - RssViewBuilder(lActivity!!) - .setRssId("https://jav.guru") - .webViewJavaScriptEnabled(true) - .showIconClose(true).showIconBack(false).showProgressBar(true).backPressToClose(false).webViewMixedContentMode(1) - .show("https://jav.guru") +// RssViewBuilder(lActivity!!) +// .setRssId("https://jav.guru") +// .webViewJavaScriptEnabled(true) +// .showIconClose(true).showIconBack(false).showProgressBar(true).backPressToClose(false).webViewMixedContentMode(1) +// .show("https://jav.guru") } KEYCODE_DPAD_DOWN->{ @@ -381,9 +372,21 @@ internal class LauncherActivity : CommonActivity() { fun onClickCenterButton() { + WorkersDb.getRealm().apply { writeBlocking { - var ddd = copyFromRealm(WorkersDb.getRssQuery("", RssDataType.getExcAdt(),false).limit(100).query("read == $0", 0).query("vote != $0", true).find()).map { it.originPage() } + delete( + query() + .query("pubDate < $0", + bums.lunatic.launcher.utils.beforeDay(28) + ) + .query("vote != $0", true).apply { + Blog.LOGE("onClickCenterButton DELETE >> ${this.description()}") + }.find() + ) + var ddd = copyFromRealm(WorkersDb.getRssQuery("", RssDataType.getExcAdt(),false).limit(100).query("read == $0", 0).query("vote != $0", true).apply { + Blog.LOGE("onClickCenterButton SELECT >> ${this.description()}") + }.find()).map { it.originPage() } var origin = ddd.first() var jjjj = hashSetOf() jjjj.addAll(ddd) diff --git a/app/src/main/kotlin/bums/lunatic/launcher/PhotoFilter.kt b/app/src/main/kotlin/bums/lunatic/launcher/PhotoFilter.kt index 11e3880f..e6e2bd3b 100644 --- a/app/src/main/kotlin/bums/lunatic/launcher/PhotoFilter.kt +++ b/app/src/main/kotlin/bums/lunatic/launcher/PhotoFilter.kt @@ -1,139 +1,108 @@ -package bums.lunatic.launcher - -import bums.lunatic.launcher.common.CommonActivity -import android.Manifest -import android.app.Activity -import android.content.Intent -import android.content.pm.PackageManager -import android.graphics.Bitmap -import android.net.Uri -import android.os.Build -import android.os.Bundle -import android.provider.MediaStore -import android.widget.Button -import android.widget.ImageView -import androidx.activity.result.ActivityResultLauncher -import androidx.activity.result.contract.ActivityResultContracts -import androidx.annotation.RequiresApi -import androidx.appcompat.app.AppCompatActivity -import androidx.core.app.ActivityCompat -import androidx.core.content.ContextCompat -import bums.lunatic.launcher.utils.Blog -import org.opencv.android.OpenCVLoader -import org.opencv.android.Utils -import org.opencv.core.Mat -import org.opencv.photo.Photo - -class PhotoFilter : CommonActivity() { - private lateinit var originalImageView: ImageView - private lateinit var filteredImageView: ImageView - private lateinit var selectImageButton: Button - private val PICK_IMAGE_REQUEST = 1 - private val PERMISSION_REQUEST_CODE = 200 - - init { - OpenCVLoader.initDebug() - } - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContentView(R.layout.photo_filter) - - originalImageView = findViewById(R.id.originalImageView) - filteredImageView = findViewById(R.id.filteredImageView) - selectImageButton = findViewById(R.id.selectImageButton) - - selectImageButton.setOnClickListener { - Blog.LOGE("imagePickerLauncher checkPermission() ${checkPermission()}") - if (checkPermission()) { - openGallery() - } else { - requestPermission() - } - } - - imagePickerLauncher = registerForActivityResult( - ActivityResultContracts.GetContent(), - {result -> - Blog.LOGE("imagePickerLauncher result ${result}") - if (result != null) { - // Handle the selected image - FilePathUri = result; - try { - var bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), FilePathUri) - Blog.LOGE("imagePickerLauncher result ${result} 2") - originalImageView.setImageBitmap(bitmap) - Blog.LOGE("imagePickerLauncher result ${result} 3") - val filteredBitmap = applyCartoonFilter(bitmap) - Blog.LOGE("imagePickerLauncher result ${result} 4") - filteredImageView.setImageBitmap(filteredBitmap) - } catch (e : Exception ) { - e.printStackTrace(); - } - } - } - ); - } - - var FilePathUri : Uri? = null - - private var imagePickerLauncher : ActivityResultLauncher? = null - - - private fun openGallery() { -// val intent = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI) -// startActivityForResult(intent, PICK_IMAGE_REQUEST) - - imagePickerLauncher?.launch("image/*"); - Blog.LOGE("imagePickerLauncher ") - - } - -// override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { -// super.onActivityResult(requestCode, resultCode, data) -// if (requestCode == PICK_IMAGE_REQUEST && resultCode == Activity.RESULT_OK && data != null) { -// val selectedImage = data.data -// val bitmap = MediaStore.Images.Media.getBitmap(contentResolver, selectedImage) -// originalImageView.setImageBitmap(bitmap) +//package bums.lunatic.launcher // -// val filteredBitmap = applyCartoonFilter(bitmap) -// filteredImageView.setImageBitmap(filteredBitmap) -// } -// } - - private fun applyCartoonFilter(inputBitmap: Bitmap): Bitmap { - Blog.LOGE("applyCartoonFilter") - val src = Mat() - Blog.LOGE("applyCartoonFilter 2") - Utils.bitmapToMat(inputBitmap, src) - Blog.LOGE("applyCartoonFilter 3") - val dst = Mat() - Blog.LOGE("applyCartoonFilter 4") - Photo.stylization(src, dst, 60f, 0.07f) - - val resultBitmap = Bitmap.createBitmap(inputBitmap.width, inputBitmap.height, Bitmap.Config.ARGB_8888) - Utils.matToBitmap(dst, resultBitmap) - - return resultBitmap - } - - - @RequiresApi(Build.VERSION_CODES.TIRAMISU) - private fun checkPermission(): Boolean { - return ContextCompat.checkSelfPermission(this, Manifest.permission.READ_MEDIA_IMAGES) == PackageManager.PERMISSION_GRANTED - } - - @RequiresApi(Build.VERSION_CODES.TIRAMISU) - private fun requestPermission() { - ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.READ_MEDIA_IMAGES), PERMISSION_REQUEST_CODE) - } - - override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) { - super.onRequestPermissionsResult(requestCode, permissions, grantResults) - if (requestCode == PERMISSION_REQUEST_CODE) { - if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) { - openGallery() - } - } - } -} \ No newline at end of file +//import bums.lunatic.launcher.common.CommonActivity +//import android.Manifest +//import android.app.Activity +//import android.content.Intent +//import android.content.pm.PackageManager +//import android.graphics.Bitmap +//import android.net.Uri +//import android.os.Build +//import android.os.Bundle +//import android.provider.MediaStore +//import android.widget.Button +//import android.widget.ImageView +//import androidx.activity.result.ActivityResultLauncher +//import androidx.activity.result.contract.ActivityResultContracts +//import androidx.annotation.RequiresApi +//import androidx.appcompat.app.AppCompatActivity +//import androidx.core.app.ActivityCompat +//import androidx.core.content.ContextCompat +//import bums.lunatic.launcher.utils.Blog +// +// +//class PhotoFilter : CommonActivity() { +//// private lateinit var originalImageView: ImageView +//// private lateinit var filteredImageView: ImageView +//// private lateinit var selectImageButton: Button +//// private val PICK_IMAGE_REQUEST = 1 +//// private val PERMISSION_REQUEST_CODE = 200 +//// +//// init { +//// +//// } +//// +//// override fun onCreate(savedInstanceState: Bundle?) { +//// super.onCreate(savedInstanceState) +//// setContentView(R.layout.photo_filter) +//// +//// originalImageView = findViewById(R.id.originalImageView) +//// filteredImageView = findViewById(R.id.filteredImageView) +//// selectImageButton = findViewById(R.id.selectImageButton) +//// +//// selectImageButton.setOnClickListener { +//// Blog.LOGE("imagePickerLauncher checkPermission() ${checkPermission()}") +//// if (checkPermission()) { +//// openGallery() +//// } else { +//// requestPermission() +//// } +//// } +//// +//// imagePickerLauncher = registerForActivityResult( +//// ActivityResultContracts.GetContent(), +//// {result -> +//// Blog.LOGE("imagePickerLauncher result ${result}") +//// if (result != null) { +//// // Handle the selected image +//// FilePathUri = result; +//// try { +//// var bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), FilePathUri) +//// Blog.LOGE("imagePickerLauncher result ${result} 2") +//// originalImageView.setImageBitmap(bitmap) +//// Blog.LOGE("imagePickerLauncher result ${result} 3") +//// val filteredBitmap = applyCartoonFilter(bitmap) +//// Blog.LOGE("imagePickerLauncher result ${result} 4") +//// filteredImageView.setImageBitmap(filteredBitmap) +//// } catch (e : Exception ) { +//// e.printStackTrace(); +//// } +//// } +//// } +//// ); +//// } +//// +//// var FilePathUri : Uri? = null +//// +//// private var imagePickerLauncher : ActivityResultLauncher? = null +//// +//// +//// private fun openGallery() { +////// val intent = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI) +////// startActivityForResult(intent, PICK_IMAGE_REQUEST) +//// +//// imagePickerLauncher?.launch("image/*"); +//// Blog.LOGE("imagePickerLauncher ") +//// +//// } +//// +//// +//// @RequiresApi(Build.VERSION_CODES.TIRAMISU) +//// private fun checkPermission(): Boolean { +//// return ContextCompat.checkSelfPermission(this, Manifest.permission.READ_MEDIA_IMAGES) == PackageManager.PERMISSION_GRANTED +//// } +//// +//// @RequiresApi(Build.VERSION_CODES.TIRAMISU) +//// private fun requestPermission() { +//// ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.READ_MEDIA_IMAGES), PERMISSION_REQUEST_CODE) +//// } +//// +//// override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) { +//// super.onRequestPermissionsResult(requestCode, permissions, grantResults) +//// if (requestCode == PERMISSION_REQUEST_CODE) { +//// if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) { +//// openGallery() +//// } +//// } +//// } +//} \ No newline at end of file diff --git a/app/src/main/kotlin/bums/lunatic/launcher/home/LauncherHome.kt b/app/src/main/kotlin/bums/lunatic/launcher/home/LauncherHome.kt index 42e09de9..e27f07dc 100644 --- a/app/src/main/kotlin/bums/lunatic/launcher/home/LauncherHome.kt +++ b/app/src/main/kotlin/bums/lunatic/launcher/home/LauncherHome.kt @@ -55,7 +55,6 @@ import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.RecyclerView import androidx.viewpager2.widget.ViewPager2 import bums.lunatic.launcher.LauncherActivity.Companion.lActivity -import bums.lunatic.launcher.PhotoFilter import bums.lunatic.launcher.R import bums.lunatic.launcher.apps.AppsAdapter import bums.lunatic.launcher.behavior.Behavior @@ -259,7 +258,7 @@ internal class LauncherHome : Fragment() { } binding.missedCalls.setOnLongClickListener { - lActivity?.startActivity(Intent(lActivity, PhotoFilter::class.java)) +// lActivity?.startActivity(Intent(lActivity, PhotoFilter::class.java)) // RssViewBuilder(lActivity!!) // .setRssId("https://booktoki468.com/") // .webViewMixedContentMode(MIXED_CONTENT_ALWAYS_ALLOW) diff --git a/app/src/main/kotlin/bums/lunatic/launcher/home/RssViewerActivity.kt b/app/src/main/kotlin/bums/lunatic/launcher/home/RssViewerActivity.kt index c57c53fd..7b3da9f8 100644 --- a/app/src/main/kotlin/bums/lunatic/launcher/home/RssViewerActivity.kt +++ b/app/src/main/kotlin/bums/lunatic/launcher/home/RssViewerActivity.kt @@ -2,12 +2,15 @@ package bums.lunatic.launcher.home import android.content.ClipData import android.content.ClipboardManager +import android.content.ComponentName import android.content.Context import android.content.Intent import android.net.Uri import android.os.Bundle import android.print.PDFPrint +import android.provider.AlarmClock import android.util.Base64 +import android.view.HapticFeedbackConstants import android.view.KeyEvent import android.view.KeyEvent.ACTION_UP import android.view.KeyEvent.KEYCODE_BUTTON_A @@ -31,9 +34,18 @@ import android.widget.Toast import androidx.appcompat.app.AlertDialog import androidx.core.net.toUri import androidx.core.view.postDelayed +import bums.lunatic.launcher.LauncherActivity.Companion.lActivity +import bums.lunatic.launcher.behavior.Behavior +import bums.lunatic.launcher.helpers.Constants.Companion.BOTTOM_SHEET_TAG +import bums.lunatic.launcher.helpers.Constants.Companion.KEY_LOCK_METHOD +import bums.lunatic.launcher.helpers.UniUtils.Companion.expandNotificationPanel +import bums.lunatic.launcher.helpers.UniUtils.Companion.lockMethod import bums.lunatic.launcher.model.CiliMagnet import bums.lunatic.launcher.model.RssData +import bums.lunatic.launcher.qaccess.QuickAccess +import bums.lunatic.launcher.settings.SettingsActivity import bums.lunatic.launcher.utils.Blog +import bums.lunatic.launcher.utils.SimpleFingerGestures import bums.lunatic.launcher.workers.WorkersDb import com.google.gson.Gson import io.realm.kotlin.UpdatePolicy @@ -88,8 +100,9 @@ class RssViewBuilder(context: Context) : AwesomeWebView.Builder(context) { ContextUtil.startActivity(intent) } + } -class RssViewerActivity : AwesomeWebViewActivity(), View.OnGenericMotionListener { +class RssViewerActivity : AwesomeWebViewActivity(), View.OnGenericMotionListener , View.OnTouchListener { var actionButtonPressX = 0f var actionButtonPressY = 0f var rssId : String = "" @@ -108,8 +121,98 @@ class RssViewerActivity : AwesomeWebViewActivity(), View.OnGenericMotionListene } else { loadWithIntent = false } + webView?.setOnTouchListener(this) } + private var startX = 0f + private var startY = 0f + private var startTime = 0L + + // 임계값(앱에 맞게 조정) + private val swipeThreshold = 150 // 스와이프 최소 거리(px) + private val swipeTime = 300 // 스와이프 최대 시간(ms) + private val clickThreshold = 30 // 클릭으로 인정할 최대 이동 거리(px) + override fun onTouch(v: View?, event: MotionEvent): Boolean { + if(event.device.name.equals("JX-12",true)) { + when (event.action) { + MotionEvent.ACTION_DOWN -> { + startX = event.x + startY = event.y + startTime = System.currentTimeMillis() + return true + } + + MotionEvent.ACTION_UP -> { + val endX = event.x + val endY = event.y + val endTime = System.currentTimeMillis() + val dx = endX - startX + val dy = endY - startY + val duration = endTime - startTime + + // 클릭: 거의 움직이지 않고 짧은 시간 + if (Math.abs(dx) < clickThreshold && Math.abs(dy) < clickThreshold && duration < 250) { + onClick() // View의 기본 클릭 호출 + return true + } + + // 좌우 스와이프: 수평 이동이 크고, 빠르게 + if (Math.abs(dx) > swipeThreshold && Math.abs(dx) > Math.abs(dy) && duration < swipeTime) { + if (dx > 0) { + onSwipeRight() + } else { + onSwipeLeft() + } + return true + } + Blog.LOGE("dy >>> $dy") + // 상하 스크롤: 수직 이동이 더 크고, 일정 거리 이상 +// if (Math.abs(dy) > swipeThreshold && Math.abs(dy) > Math.abs(dx)) { +// if (dy > 0) { +// onScrollDown() +// } else { +// onScrollUp() +// } +// return true +// } + + } + else -> return super.onTouchEvent(event) + } + } + return super.onTouchEvent(event) + } + + private fun onClick() { + Blog.LOGE("onClick") + finish() + } + + // 아래 메서드에 원하는 동작 구현 + private fun onSwipeLeft() { + Blog.LOGE("onSwipeLeft") + vote() + } + + private fun onSwipeRight() { + Blog.LOGE("onSwipeRight") + doNextPage() + } + + private fun onScrollUp() { + Blog.LOGE("onScrollUp") + webView?.let { + it.scrollBy(0, (it.contentHeight / 100).coerceAtLeast(200) * -1) + } + + } + + private fun onScrollDown() { + Blog.LOGE("onScrollDown") + webView?.let { + it.scrollBy(0, (it.contentHeight / 100).coerceAtLeast(200) * 1) + } + } override fun onResume() { super.onResume() @@ -151,6 +254,9 @@ class RssViewerActivity : AwesomeWebViewActivity(), View.OnGenericMotionListene } return false } + private var lastX = 0f + private var lastY = 0f + private var onDown = false override fun onGenericMotionEvent(ev: MotionEvent?): Boolean { @@ -217,13 +323,14 @@ class RssViewerActivity : AwesomeWebViewActivity(), View.OnGenericMotionListene } } } - webView?.evaluateJavascript("document.documentElement.outerHTML", - object : ValueCallback { - override fun onReceiveValue(value: String?) { - val html = value?.replace("\\u003C", "<") - onHtml(html, false) - } - }) + doNextPage() +// webView?.evaluateJavascript("document.documentElement.outerHTML", +// object : ValueCallback { +// override fun onReceiveValue(value: String?) { +// val html = value?.replace("\\u003C", "<") +// onHtml(html, false) +// } +// }) } else { finish() } @@ -534,8 +641,8 @@ class RssViewerActivity : AwesomeWebViewActivity(), View.OnGenericMotionListene guru.getElementsByClass("row")?.forEach { row -> row.getElementsByClass("grid1").first().getElementsByTag("a")?.first() ?.attr("title")?.let { title -> - Blog.LOGE("row >>> ${title.split("]")?.first()?.replace("[", "")}") - } + Blog.LOGE("row >>> ${title.split("]")?.first()?.replace("[", "")}") + } } } } else if(rssId.contains("book")){ @@ -583,9 +690,9 @@ class RssViewerActivity : AwesomeWebViewActivity(), View.OnGenericMotionListene } } }.apply { - temp.add(ciliMgn) + temp.add(ciliMgn) - } + } }catch (e:Exception) {} } } @@ -609,48 +716,49 @@ class RssViewerActivity : AwesomeWebViewActivity(), View.OnGenericMotionListene } override fun onHtml(value: String?, autoCheck : Boolean) { - chechHandler.removeCallbacks(cancelSearch) - if (loadWithIntent){ - return - } - showBlock() - - var count = (webView!!.contentHeight / (webView!!.height * 0.3).toInt()) - LogUtil.e("count >>>> ${count} webView!!.contentHeight >>>> ${webView!!.contentHeight} , webView!!.height >>>> ${webView!!.height} :: ${(webView!!.height * 0.3).toInt()}") - chechHandler.postDelayed(pageDown, defaultTime) - webView!!.setOnScrollChangeListener { v, scrollX, scrollY, oldScrollX, oldScrollY -> - val measuredHeight: Int = v.measuredHeight - LogUtil.e("OnScrollChange >>> ${scrollY} , ${oldScrollY}") - if(measuredHeight + scrollY == webView!!.computeVerticalScrollRange()){ - chechHandler.removeCallbacks(scrollDown) - chechHandler.removeCallbacks(pageDown) - chechHandler.postDelayed({ - webView!!.evaluateJavascript("document.documentElement.outerHTML",object : ValueCallback { - override fun onReceiveValue(value: String?) { - val html = value?.replace("\\u003C", "<") - this@RssViewerActivity.run(html!!, autoCheck) - } - }) - },defaultTime.times(2)) - } else { - chechHandler.removeCallbacks(cancelSearch) - Blog.LOGE("onScrollChanged called PageDown") + vote() +// chechHandler.removeCallbacks(cancelSearch) +// if (loadWithIntent){ +// return +// } +// showBlock() +// +// var count = (webView!!.contentHeight / (webView!!.height * 0.3).toInt()) +// LogUtil.e("count >>>> ${count} webView!!.contentHeight >>>> ${webView!!.contentHeight} , webView!!.height >>>> ${webView!!.height} :: ${(webView!!.height * 0.3).toInt()}") +// chechHandler.postDelayed(pageDown, defaultTime) +// webView!!.setOnScrollChangeListener { v, scrollX, scrollY, oldScrollX, oldScrollY -> +// val measuredHeight: Int = v.measuredHeight +// LogUtil.e("OnScrollChange >>> ${scrollY} , ${oldScrollY}") +// if(measuredHeight + scrollY == webView!!.computeVerticalScrollRange()){ // chechHandler.removeCallbacks(scrollDown) - if (switch) { - chechHandler.removeCallbacks(pageDown) - chechHandler.postDelayed(scrollDown, defaultTime) - switch = false - } else { - switch = true - chechHandler.removeCallbacks(scrollDown) - chechHandler.postDelayed(pageDown, defaultTime) - } - } -// else if (scrollY % 10 == 0 || oldScrollY % 10 == 0){ -//// chechHandler.removeCallbacks(pageDown) -//// chechHandler.postDelayed(scrollDown, defaultTime) +// chechHandler.removeCallbacks(pageDown) +// chechHandler.postDelayed({ +// webView!!.evaluateJavascript("document.documentElement.outerHTML",object : ValueCallback { +// override fun onReceiveValue(value: String?) { +// val html = value?.replace("\\u003C", "<") +// this@RssViewerActivity.run(html!!, autoCheck) +// } +// }) +// },defaultTime.times(2)) +// } else { +// chechHandler.removeCallbacks(cancelSearch) +// Blog.LOGE("onScrollChanged called PageDown") +//// chechHandler.removeCallbacks(scrollDown) +// if (switch) { +// chechHandler.removeCallbacks(pageDown) +// chechHandler.postDelayed(scrollDown, defaultTime) +// switch = false +// } else { +// switch = true +// chechHandler.removeCallbacks(scrollDown) +// chechHandler.postDelayed(pageDown, defaultTime) +// } // } - } +//// else if (scrollY % 10 == 0 || oldScrollY % 10 == 0){ +////// chechHandler.removeCallbacks(pageDown) +////// chechHandler.postDelayed(scrollDown, defaultTime) +//// } +// } } var switch = false var scrollDown : Runnable = Runnable{ @@ -705,7 +813,58 @@ class RssViewerActivity : AwesomeWebViewActivity(), View.OnGenericMotionListene // } } } + try { + val muted = + "try{" + + "var videos = document.getElementsByTagName('video');" + + "for (var i = 0; i < videos.length; i++) {" + + "videos[i].muted = true;" + + "}" + + "}catch(e){}" + webView?.evaluateJavascript(muted,{ + Blog.LOGE("RESULT >> $it") + }) + }catch (e : Exception) {e.printStackTrace()} + try { + val muted = + "try{" + + "var videos = document.getElementsByTagName('video');" + + "for (var i = 0; i < videos.length; i++) {" + + "videos[i].controlsList.remove('nodownload');" + "}" + + "}catch(e){}" + webView?.evaluateJavascript(muted,{ + Blog.LOGE("RESULT >> $it") + }) + }catch (e : Exception) {e.printStackTrace()} + webView?.postDelayed({ + + try { + val muted = + "try{" + + "var videos = document.getElementsByTagName('video');" + + "for (var i = 0; i < videos.length; i++) {" + + "videos[i].muted = true;" + + "}" + + "}catch(e){console.log(e);}" + webView?.evaluateJavascript(muted,{ + Blog.LOGE("RESULT >> $it") + }) + }catch (e : Exception) {e.printStackTrace()} + try { + val muted = + "try{" + + "var videos = document.getElementsByTagName('video');" + + "for (var i = 0; i < videos.length; i++) {" + + "videos[i].controlsList.remove('nodownload');" + "}" + + "}catch(e){console.log(e);}" + webView?.evaluateJavascript(muted,{ + Blog.LOGE("RESULT >> $it") + }) + }catch (e : Exception) {e.printStackTrace()} + },1000) if (loadWithIntent) { webView?.evaluateJavascript( "try{document.querySelector('meta[name=viewport]').setAttribute('content','initial-scale=1.0')}catch(e){}", diff --git a/app/src/main/kotlin/bums/lunatic/launcher/utils/SimpleGesture.kt b/app/src/main/kotlin/bums/lunatic/launcher/utils/SimpleGesture.kt index 228f3047..928e0abf 100644 --- a/app/src/main/kotlin/bums/lunatic/launcher/utils/SimpleGesture.kt +++ b/app/src/main/kotlin/bums/lunatic/launcher/utils/SimpleGesture.kt @@ -414,7 +414,6 @@ class GestureAnalyser @JvmOverloads constructor( } } -///https://api.telegram.org/bot7934509464:AAE_xUbICxMdywLGnxo7BkeIqA1nVza4P9w/getUpdates class SimpleFingerGestures : OnTouchListener { private var debug = BuildConfig.DEBUG @@ -537,28 +536,28 @@ class SimpleFingerGestures : OnTouchListener { 1, mGt.gestureDuration, mGt.gestureDistance - ) + ).apply { consumeTouchEvents = this } GestureAnalyser.SWIPE_1_DOWN -> onFingerGestureListener!!.onSwipeDown( targetView, 1, mGt.gestureDuration, mGt.gestureDistance - ) + ).apply { consumeTouchEvents = this } GestureAnalyser.SWIPE_1_LEFT -> onFingerGestureListener!!.onSwipeLeft( targetView, 1, mGt.gestureDuration, mGt.gestureDistance - ) + ).apply { consumeTouchEvents = this } GestureAnalyser.SWIPE_1_RIGHT -> onFingerGestureListener!!.onSwipeRight( targetView, 1, mGt.gestureDuration, mGt.gestureDistance - ) + ).apply { consumeTouchEvents = this } GestureAnalyser.SWIPE_2_UP -> onFingerGestureListener!!.onSwipeUp( targetView, diff --git a/app/src/main/kotlin/bums/lunatic/launcher/workers/WorkersDb.kt b/app/src/main/kotlin/bums/lunatic/launcher/workers/WorkersDb.kt index 85cbcf82..431362a0 100644 --- a/app/src/main/kotlin/bums/lunatic/launcher/workers/WorkersDb.kt +++ b/app/src/main/kotlin/bums/lunatic/launcher/workers/WorkersDb.kt @@ -28,6 +28,7 @@ import bums.lunatic.launcher.model.UserActionModel import bums.lunatic.launcher.model.WeatherForcast import bums.lunatic.launcher.utils.Blog import bums.lunatic.launcher.utils.JamoUtils +import bums.lunatic.launcher.utils.beforeDay import bums.lunatic.launcher.utils.beforeOneDay import io.realm.kotlin.Realm import io.realm.kotlin.RealmConfiguration @@ -35,6 +36,7 @@ import io.realm.kotlin.UpdatePolicy import io.realm.kotlin.ext.query import io.realm.kotlin.migration.AutomaticSchemaMigration import io.realm.kotlin.query.RealmQuery +import io.realm.kotlin.query.Sort import io.realm.kotlin.types.BaseRealmObject import io.realm.kotlin.types.TypedRealmObject import java.util.Calendar @@ -218,10 +220,15 @@ object WorkersDb { fun getVotedRss() = getRealm().query().query("vote == $0", true).distinct("originPage", "title") + fun getDeleteQuery( ) : RealmQuery{ + var rQ = getRealm().query() + rQ.query("pubDate > $0", beforeDay(14)).query("vote == $0", true) + return rQ + } fun getRssQuery(keyword: String?, category: Collection? = arrayListOf(), noLimit: Boolean = false) : RealmQuery{ - var rQ = getRealm().query() + var rQ = getRealm().query().sort("pubDate", Sort.DESCENDING) if (!noLimit) rQ.query("pubDate > $0", beforeOneDay()) keyword?.isNotEmpty()?.letTrue { if (JamoUtils.CHOSUNG.contains(keyword.split("")[0])) { diff --git a/settings.gradle.kts b/settings.gradle.kts index 6e023d87..0fc8912f 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -20,5 +20,3 @@ dependencyResolutionManagement { rootProject.name = "LunarLauncher" include ("app","library","utils") -//annotations -include(":sdk")