From e646a7241828e48e1445a27df63e0e1102470d5d Mon Sep 17 00:00:00 2001 From: lunaticbum Date: Mon, 25 Aug 2025 15:20:30 +0900 Subject: [PATCH] ... --- .../bums/lunatic/launcher/LauncherActivity.kt | 66 ++++++------------ .../bums/lunatic/launcher/LunaticLauncher.kt | 16 ++--- .../lunatic/launcher/common/CommonActivity.kt | 31 ++++++++ .../bums/lunatic/launcher/home/RssHome.kt | 18 ++--- .../launcher/home/adapters/RssItemAdapter.kt | 12 ++-- .../launcher/model/RssDataInterface.kt | 11 ++- .../bums/lunatic/launcher/tokiz/BaseToki.kt | 4 +- .../bums/lunatic/launcher/tokiz/YouTube.kt | 2 + .../lunatic/launcher/tokiz/view/BWebview.kt | 21 +++++- app/src/main/res/drawable/ic_news.png | Bin 0 -> 34324 bytes app/src/main/res/layout/launcher_activity.xml | 39 ++--------- app/src/main/res/values/styles.xml | 17 ++++- app/src/main/res/values/themes.xml | 13 ++-- 13 files changed, 129 insertions(+), 121 deletions(-) create mode 100644 app/src/main/res/drawable/ic_news.png diff --git a/app/src/main/kotlin/bums/lunatic/launcher/LauncherActivity.kt b/app/src/main/kotlin/bums/lunatic/launcher/LauncherActivity.kt index ae92ebe1..6883e08d 100644 --- a/app/src/main/kotlin/bums/lunatic/launcher/LauncherActivity.kt +++ b/app/src/main/kotlin/bums/lunatic/launcher/LauncherActivity.kt @@ -26,7 +26,6 @@ import android.content.Context import android.content.Intent import android.content.SharedPreferences import android.content.res.Configuration -import android.graphics.Color import android.net.Uri import android.os.Build import android.os.Bundle @@ -485,14 +484,24 @@ open class LauncherActivity : CommonActivity() { getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE); lActivity = this - DynamicColors.applyToActivityIfAvailable(this) +// DynamicColors.applyToActivityIfAvailable(this) settingsPrefs = getSharedPreferences(PREFS_SETTINGS, 0) binding = LauncherActivityBinding.inflate(layoutInflater) setContentView(binding.root) HeadsetActionButtonReceiver.register(this) + ViewCompat.setOnApplyWindowInsetsListener(binding.root) { view, windowInsets -> + // 시스템바 인셋 가져오기 (상단 상태바 + 하단 네비게이션바) + val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars()) + + // 뷰에 패딩 적용 (겹치지 않도록) + view.setPadding(insets.left, insets.top, insets.right, insets.bottom) + + // 변경된 인셋 반환 + WindowInsetsCompat.CONSUMED + } /* handle navigation back events */ handleBackPress() @@ -502,6 +511,13 @@ open class LauncherActivity : CommonActivity() { showContents(binding.feeds.id) + binding.floatingActionMenu.setOnTouchListener { v,e-> + if (binding.floatingActionMenu.isOpened) { + binding.floatingActionMenu.close(true) + return@setOnTouchListener true + } + return@setOnTouchListener false + } binding.floatingActionMenu.setOnMenuButtonClickListener { v-> Blog.LOGE("v >> ${v}") showContents(v.id) @@ -614,16 +630,10 @@ open class LauncherActivity : CommonActivity() { super.onDestroy() } - // var blutoothManager : BluetoothManager? = null + override fun onStart() { super.onStart() -// blutoothManager = BluetoothManager(this) -// blutoothManager?.register() -// blutoothManager?.initBluetoothAdapter() -// blutoothManager?.blueToothState() -// blutoothManager?.getPairedDevices() - statusBarView() - setBgColor() + } @RequiresApi(Build.VERSION_CODES.O_MR1) @@ -647,42 +657,6 @@ open class LauncherActivity : CommonActivity() { } - val appDrawer by lazy { AppDrawer() } - - - fun switchAppDrawer() { - startActivity(Intent(this,AppDrawer::class.java)) - } - - - - - private fun setBgColor() { - binding.root.setBackgroundColor(Color.parseColor("#22000000")) - } - - private fun statusBarView() { - if (settingsPrefs.getBoolean(KEY_STATUS_BAR, false)) { - /* hide status bar */ - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { - window.insetsController?.hide(WindowInsets.Type.statusBars()) - } else { - @Suppress("DEPRECATION") - window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN) - } - topPadding(false) - } else { - /* show status bar */ - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { - window.insetsController?.show(WindowInsets.Type.statusBars()) - } else { - @Suppress("DEPRECATION") - window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) - } - topPadding(true) - } - } - /* alternative of deprecated onBackPressed method */ private fun handleBackPress() { onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) { diff --git a/app/src/main/kotlin/bums/lunatic/launcher/LunaticLauncher.kt b/app/src/main/kotlin/bums/lunatic/launcher/LunaticLauncher.kt index b9f0cbb6..cf622b58 100644 --- a/app/src/main/kotlin/bums/lunatic/launcher/LunaticLauncher.kt +++ b/app/src/main/kotlin/bums/lunatic/launcher/LunaticLauncher.kt @@ -20,8 +20,8 @@ package bums.lunatic.launcher import android.app.Application import android.content.ComponentCallbacks2 -import android.content.Context import android.database.sqlite.SQLiteDatabase +import android.net.Uri import bums.lunatic.launcher.helpers.HourlyLogWriter import bums.lunatic.launcher.helpers.PrefHelper import bums.lunatic.launcher.utils.Blog @@ -30,12 +30,9 @@ import com.squareup.picasso.Picasso import kr.lunaticbum.Base import okhttp3.Cache import okhttp3.OkHttpClient -import org.json.JSONObject -import org.mozilla.geckoview.ExperimentDelegate -import org.mozilla.geckoview.GeckoResult -import org.mozilla.geckoview.GeckoRuntime -import org.mozilla.geckoview.GeckoRuntimeSettings import java.io.File +import java.io.IOException +import java.net.HttpURLConnection import java.util.concurrent.TimeUnit @@ -64,16 +61,17 @@ internal class LunaticLauncher : Application() { .cache(cache) .addInterceptor { chain -> val newRequest = chain.request().newBuilder() - .addHeader("Host","images.ijavtorrent.com") + .addHeader("Host",chain.request().url().host()) .addHeader("User-Agent","Mozilla/5.0 (Android 15; Mobile; rv:139.0) Gecko/139.0 Firefox/139.0") .addHeader("Accept","image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5") .addHeader("Accept-Language","ko-KR,en-US;q=0.5") .addHeader("Accept-Encoding","gzip, deflate, br, zstd") - .addHeader("Referer","https://ijavtorrent.com/") + .addHeader("Referer",chain.request().url().host()) .build() + Blog.LOGE("chain.request().url() >>> ${chain.request().url()}") chain.proceed(newRequest) } - .connectTimeout(10, TimeUnit.SECONDS) // 연결 타임아웃 + .connectTimeout(30, TimeUnit.SECONDS) // 연결 타임아웃 .readTimeout(30, TimeUnit.SECONDS) // 읽기 타임아웃 .writeTimeout(30, TimeUnit.SECONDS) // 쓰기 타임아웃 .build() diff --git a/app/src/main/kotlin/bums/lunatic/launcher/common/CommonActivity.kt b/app/src/main/kotlin/bums/lunatic/launcher/common/CommonActivity.kt index eb09b956..4a8e8529 100644 --- a/app/src/main/kotlin/bums/lunatic/launcher/common/CommonActivity.kt +++ b/app/src/main/kotlin/bums/lunatic/launcher/common/CommonActivity.kt @@ -1,8 +1,16 @@ package bums.lunatic.launcher.common import android.content.Intent +import android.graphics.Color +import android.os.Build +import android.os.Bundle import android.os.Environment +import androidx.annotation.RequiresApi import androidx.appcompat.app.AppCompatActivity +import androidx.core.view.ViewCompat +import androidx.core.view.WindowCompat +import androidx.core.view.WindowInsetsCompat +import androidx.core.view.WindowInsetsControllerCompat import bums.lunatic.launcher.apps.SearchMenu import bums.lunatic.launcher.helpers.PrefBoolean import bums.lunatic.launcher.utils.Blog @@ -23,6 +31,29 @@ import java.util.Base64 abstract class CommonActivity : AppCompatActivity() { + @RequiresApi(Build.VERSION_CODES.R) + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + + WindowCompat.setDecorFitsSystemWindows(window, false) + val insetsController = WindowInsetsControllerCompat(window, window.decorView) + var forWhite = false + if (forWhite) { + insetsController.isAppearanceLightStatusBars = true + insetsController.isAppearanceLightNavigationBars = true + + window.statusBarColor = Color.WHITE + window.navigationBarColor = Color.WHITE + } else { + insetsController.isAppearanceLightStatusBars = false + insetsController.isAppearanceLightNavigationBars = false + + window.statusBarColor = Color.BLACK + window.navigationBarColor = Color.BLACK + } + } + fun openSearchMenus(keyword : String, dismissCalback: DismissCalback) { SearchMenu().show(supportFragmentManager,keyword) {dismissCalback.invoke()} } diff --git a/app/src/main/kotlin/bums/lunatic/launcher/home/RssHome.kt b/app/src/main/kotlin/bums/lunatic/launcher/home/RssHome.kt index f15c0b9b..2089f540 100644 --- a/app/src/main/kotlin/bums/lunatic/launcher/home/RssHome.kt +++ b/app/src/main/kotlin/bums/lunatic/launcher/home/RssHome.kt @@ -437,7 +437,6 @@ internal class RssHome : Fragment() { } } appendReadCount(it, 1, false) - Blog.LOGE("removeFirst >>> ${Gson().toJson(it)}") binding.layoutRssSummary.title.setOnLongClickListener { currentRss?.originPage?.let { binding.geckoWeb.loadUrl(it)} binding.layoutRssSummary.root.visibility = View.GONE @@ -461,18 +460,12 @@ internal class RssHome : Fragment() { val regex = Regex("[A-Za-z0-9-]+") val pattern = Regex("^(?=[A-Za-z0-9-]*$)(?=.*[A-Za-z])(?=.*\\d)(?=.*-)[A-Za-z0-9-]+$") val results = regex.findAll(it) - .map { - Blog.LOGE("Regex:map >>> ${it.value}") - it.value } - .filter { - Blog.LOGE("Regex:filter >>> ${it.matches(pattern)}") - Blog.LOGE("Regex:filter >>> ${!it.contains(" ")}") - it.matches(pattern) && !it.contains(" ") } + .map { it.value } + .filter { it.matches(pattern) && !it.contains(" ") } .toList() if (results.isNotEmpty()) { keyword = results.first() } - Blog.LOGE("Regex:results >>> ${results}") } it.pubDate()?.let { @@ -592,11 +585,12 @@ internal class RssHome : Fragment() { } binding.home.setOnClickListener { - if (binding.geckoWeb.isVisible) { + if (binding.geckoWeb.isVisible || binding.layoutRssSummary.root.isVisible) { binding.geckoWeb.visibility = View.GONE + binding.layoutRssSummary.root.visibility = View.GONE + } else { + queryInfos() } - binding.layoutRssSummary.root.visibility = View.GONE - queryInfos() } diff --git a/app/src/main/kotlin/bums/lunatic/launcher/home/adapters/RssItemAdapter.kt b/app/src/main/kotlin/bums/lunatic/launcher/home/adapters/RssItemAdapter.kt index 2ee88563..ef43e73f 100644 --- a/app/src/main/kotlin/bums/lunatic/launcher/home/adapters/RssItemAdapter.kt +++ b/app/src/main/kotlin/bums/lunatic/launcher/home/adapters/RssItemAdapter.kt @@ -209,14 +209,18 @@ internal class RssItemAdapter ( holder.view.circlePreview.visibility = rssData.category().getDefaultVisibiliy() Picasso.get().cancelRequest(holder.view.circlePreview) + if (rssData.category().getResId() > 0) { + holder.view.circlePreview.setImageResource(rssData.category().getResId()) + } + if (rssData.thumbnailUrl()?.length ?: 0 > 6) { + Blog.LOGE("rssData.thumbnailUrl() >>> ${rssData.thumbnailUrl()}") Picasso.get().load(rssData.thumbnailUrl().replace("&", "&").toUri()) .into(holder.view.circlePreview) - } else if (rssData.category().getResId() > 0) { - holder.view.circlePreview.setImageResource(rssData.category().getResId()) - } else { - holder.view.circlePreview.setImageDrawable(null) } +// else { +// holder.view.circlePreview.setImageDrawable(null) +// } holder.itemView.tag = rssData holder.itemView.setOnClickListener(dateViewClick) diff --git a/app/src/main/kotlin/bums/lunatic/launcher/model/RssDataInterface.kt b/app/src/main/kotlin/bums/lunatic/launcher/model/RssDataInterface.kt index 8ad80ba2..612e63e1 100644 --- a/app/src/main/kotlin/bums/lunatic/launcher/model/RssDataInterface.kt +++ b/app/src/main/kotlin/bums/lunatic/launcher/model/RssDataInterface.kt @@ -34,21 +34,20 @@ enum class RssDataType { DCINSIDE -> R.drawable.dcinside ARCA -> R.drawable.arca else -> { - 0 + R.drawable.ic_news } } fun defaultImgSize() = when (this) { YOUTUBE -> 200 - REDDIT_NSFW,PRIVATE -> 360 - //,GURU,MOST - else -> { 120 } + REDDIT_NSFW,PRIVATE -> 240 + else -> { 160 } } fun getDefaultVisibiliy() = when (this) { - //,GURU,MOST - REDDIT_NSFW,PRIVATE -> View.GONE +// REDDIT_NSFW,PRIVATE -> View.INVISIBLE else -> { View.VISIBLE } + } fun isOn(block : ()->Unit) { diff --git a/app/src/main/kotlin/bums/lunatic/launcher/tokiz/BaseToki.kt b/app/src/main/kotlin/bums/lunatic/launcher/tokiz/BaseToki.kt index ba5eb26d..9673987b 100644 --- a/app/src/main/kotlin/bums/lunatic/launcher/tokiz/BaseToki.kt +++ b/app/src/main/kotlin/bums/lunatic/launcher/tokiz/BaseToki.kt @@ -109,6 +109,7 @@ abstract class BaseToki : Fragment(), PagedTextViewInterface { var lastInfo: LastInfo? = null var currentPage: ContentsPageInfo? = null var saveContinuation = false + open var isPrivateMode = false val handle = object : Handler(Looper.getMainLooper()) { override fun handleMessage(msg: Message) { if (msg.what == 0) { @@ -614,8 +615,9 @@ abstract class BaseToki : Fragment(), PagedTextViewInterface { goToHome() } getRuntime()?.apply { + val sessionSettings = GeckoSessionSettings.Builder() - .usePrivateMode(true) + .usePrivateMode(isPrivateMode) .allowJavascript(true) .screenId(Random(Int.MAX_VALUE).nextInt()) .build() diff --git a/app/src/main/kotlin/bums/lunatic/launcher/tokiz/YouTube.kt b/app/src/main/kotlin/bums/lunatic/launcher/tokiz/YouTube.kt index b3f8866c..ed378761 100644 --- a/app/src/main/kotlin/bums/lunatic/launcher/tokiz/YouTube.kt +++ b/app/src/main/kotlin/bums/lunatic/launcher/tokiz/YouTube.kt @@ -12,6 +12,8 @@ class YouTube : BaseToki(){ override var lastNumber : Int = 143 override val webcontentsName : String = "youtube" override val afterDot = "com" + override var isPrivateMode: Boolean = true + override fun getLastedDoamin(): String { return String.format("https://%s.%s", webcontentsName, afterDot) } diff --git a/app/src/main/kotlin/bums/lunatic/launcher/tokiz/view/BWebview.kt b/app/src/main/kotlin/bums/lunatic/launcher/tokiz/view/BWebview.kt index ac677880..8cd96d63 100644 --- a/app/src/main/kotlin/bums/lunatic/launcher/tokiz/view/BWebview.kt +++ b/app/src/main/kotlin/bums/lunatic/launcher/tokiz/view/BWebview.kt @@ -9,6 +9,7 @@ import android.util.AttributeSet import android.view.MotionEvent import android.view.PointerIcon import android.view.View +import androidx.core.net.toUri import androidx.core.view.isVisible import bums.lunatic.launcher.R import bums.lunatic.launcher.helpers.ForeGroundService @@ -102,7 +103,24 @@ open class BWebview : GeckoView { var request = YoutubeDLRequest(url) (mGKCookie?.COOKIES)?.let{ Blog.LOGE(it) -// request.addOption("--cookies-from-browser", "$it") + val cookies = it.split(";") + .map { it.trim() } + .mapNotNull { + val parts = it.split("=", limit = 2) + if (parts.size == 2) parts[0] to parts[1] else null + } + .toMap() + val expires = (System.currentTimeMillis() / 1000) + 3600 * 24 * 7 // 일주일 후 만료 예시 + + val cookieFileContent = buildString { + appendLine("# Netscape HTTP Cookie File") + for ((name, value) in cookies) { + appendLine(".${url.toUri().host}\tTRUE\t/\tTRUE\t$expires\t$name\t$value") + } + } + val cookieFile = File(context.filesDir, "cookies.txt") + cookieFile.writeText(cookieFileContent) + request.addOption("--cookies", cookieFile.absolutePath) } val videoInfo = YoutubeDL.getInstance().getInfo(request) @@ -121,6 +139,7 @@ open class BWebview : GeckoView { } } catch (e: Exception) { + e.printStackTrace() Blog.LOGE("checkIfDownloadable ${url} ${e}") CoroutineScope(Dispatchers.Main).launch { runOnUiThread { diff --git a/app/src/main/res/drawable/ic_news.png b/app/src/main/res/drawable/ic_news.png new file mode 100644 index 0000000000000000000000000000000000000000..2e38e843cc4b52d7e3ba1d697441f15430f76721 GIT binary patch literal 34324 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�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 M07*qoM6N<$f|UHEX#fBK literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/launcher_activity.xml b/app/src/main/res/layout/launcher_activity.xml index 8c9a967d..4471b012 100644 --- a/app/src/main/res/layout/launcher_activity.xml +++ b/app/src/main/res/layout/launcher_activity.xml @@ -5,7 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" - android:background="@drawable/base_bg" + android:background="@android:color/transparent" android:orientation="vertical" android:id="@+id/mainFragmentsContainer" > @@ -26,31 +26,17 @@ app:layout_constraintTop_toBottomOf="@id/fragment_container" app:layout_constraintLeft_toLeftOf="parent" android:id="@+id/back" - android:scaleType="fitCenter" - android:adjustViewBounds="true" - android:visibility="visible" - android:background="@null" android:src="@drawable/back_vector" - android:tint="@color/white" - android:foregroundTint="@color/white" - android:layout_width="@dimen/main_top_height" tools:ignore="ContentDescription" - android:layout_height="@dimen/main_top_height" /> + style="@style/CommonBottom" /> + style="@style/CommonBottom"/> - "/> + + style="@style/CommonBottom"/> + style="@style/CommonBottom"/> @@ -117,4 +117,15 @@ + + \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index a4dd9b76..f1337d37 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -1,14 +1,15 @@ -