Skip to content

Commit

Permalink
shit
Browse files Browse the repository at this point in the history
  • Loading branch information
MrBoomDeveloper committed Jan 11, 2025
1 parent 83fc6fb commit 070ec70
Show file tree
Hide file tree
Showing 146 changed files with 1,089 additions and 1,319 deletions.
2 changes: 2 additions & 0 deletions androidApp/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ plugins {
alias(libs.plugins.android.kotlin)
alias(libs.plugins.kotlin.ksp)
alias(libs.plugins.kotlin.serialization)
alias(libs.plugins.compose)
alias(libs.plugins.compose.compiler)
alias(libs.plugins.room)
}
Expand Down Expand Up @@ -166,6 +167,7 @@ dependencies {
implementation(libs.androidx.adaptive)
implementation(libs.androidx.adaptive.layout)
implementation(libs.androidx.adaptive.navigation)
implementation(compose.components.resources)

// Markdown
implementation(libs.markwon.core)
Expand Down
4 changes: 2 additions & 2 deletions androidApp/mobile/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:label="app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Awery">
<activity
android:name=".MainActivity"
android:exported="true"
android:label="@string/app_name"
android:label="app_name"
android:theme="@style/Theme.Awery">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
Expand Down
2 changes: 1 addition & 1 deletion androidApp/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@
tools:ignore="DiscouragedApi" />

<activity
android:name=".ui.mobile.screens.catalog.MainActivity"
android:name=".MainActivity"
android:windowSoftInputMode="adjustPan"
android:exported="false" />

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mrboomdev.awery.ui.mobile.screens.catalog
package com.mrboomdev.awery

import android.content.Intent
import android.os.Bundle
Expand All @@ -14,7 +14,6 @@ import androidx.lifecycle.lifecycleScope
import androidx.viewpager2.adapter.FragmentStateAdapter
import com.google.android.material.elevation.SurfaceColors
import com.google.android.material.navigationrail.NavigationRailView
import com.mrboomdev.awery.R
import com.mrboomdev.awery.app.App.Companion.database
import com.mrboomdev.awery.app.App.Companion.getMoshi
import com.mrboomdev.awery.app.App.Companion.isLandscape
Expand All @@ -29,7 +28,9 @@ import com.mrboomdev.awery.data.settings.SettingsList
import com.mrboomdev.awery.databinding.LayoutHeaderHomeBinding
import com.mrboomdev.awery.databinding.ScreenMainBinding
import com.mrboomdev.awery.generated.AwerySettings
import com.mrboomdev.awery.platform.PlatformResources.i18n
import com.mrboomdev.awery.generated.Res
import com.mrboomdev.awery.generated.back_to_exit
import com.mrboomdev.awery.platform.i18n
import com.mrboomdev.awery.ui.mobile.components.EmptyStateView
import com.mrboomdev.awery.ui.mobile.screens.catalog.feeds.FeedsFragment
import com.mrboomdev.awery.ui.mobile.screens.search.MultiSearchActivity
Expand All @@ -38,15 +39,12 @@ import com.mrboomdev.awery.ui.mobile.screens.settings.SettingsActivity2
import com.mrboomdev.awery.util.IconStateful
import com.mrboomdev.awery.util.TabsTemplate
import com.mrboomdev.awery.util.extensions.UI_INSETS
import com.mrboomdev.awery.util.extensions.addOnBackPressedListener
import com.mrboomdev.awery.util.extensions.applyInsets
import com.mrboomdev.awery.util.extensions.bottomMargin
import com.mrboomdev.awery.util.extensions.bottomPadding
import com.mrboomdev.awery.util.extensions.dpPx
import com.mrboomdev.awery.util.extensions.enableEdgeToEdge
import com.mrboomdev.awery.util.extensions.inflater
import com.mrboomdev.awery.util.extensions.leftPadding
import com.mrboomdev.awery.util.extensions.removeOnBackPressedListener
import com.mrboomdev.awery.util.extensions.resolveAttrColor
import com.mrboomdev.awery.util.extensions.rightPadding
import com.mrboomdev.awery.util.extensions.setContentViewCompat
Expand All @@ -55,7 +53,12 @@ import com.mrboomdev.awery.util.extensions.startActivity
import com.mrboomdev.awery.util.extensions.topPadding
import com.mrboomdev.awery.util.io.FileUtil.readAssets
import com.mrboomdev.awery.util.ui.FadeTransformer
import com.mrboomdev.awery.utils.addOnBackPressedListener
import com.mrboomdev.awery.utils.buildIntent
import com.mrboomdev.awery.utils.div
import com.mrboomdev.awery.utils.dpPx
import com.mrboomdev.awery.utils.inflater
import com.mrboomdev.awery.utils.removeOnBackPressedListener
import com.squareup.moshi.adapter
import kotlinx.coroutines.CoroutineExceptionHandler
import kotlinx.coroutines.Dispatchers
Expand All @@ -82,7 +85,7 @@ class MainActivity : AppCompatActivity() {
}

doubleBackToExitPressedOnce = true
toast(R.string.back_to_exit)
toast(Res.string.back_to_exit)
runDelayed({ doubleBackToExitPressedOnce = false }, 2000)
}
}
Expand All @@ -95,7 +98,7 @@ class MainActivity : AppCompatActivity() {
if(savedInstanceState != null) {
tabIndex = savedInstanceState.getInt(SAVED_TAB_INDEX, -1)
}

AwerySettings.TABS_TEMPLATE.value.also {
if(it == "custom") loadCustomTabs() else loadTemplateTabs(it)
}
Expand Down Expand Up @@ -173,7 +176,7 @@ class MainActivity : AppCompatActivity() {
val tab = tabs[i]
val icon = icons[tab.icon]

val drawable = icon?.getDrawable(this)
val drawable = icon?.getDrawable(this)
?: ContextCompat.getDrawable(this, R.drawable.ic_view_cozy)!!

if(tabIndex == -1 && tab.id == savedDefaultTab) {
Expand Down Expand Up @@ -201,7 +204,7 @@ class MainActivity : AppCompatActivity() {
"No tabs found",
"Please selecting an template or either create your own tabs to see anything here.",
"Go to settings"
) { startActivity(clazz = SettingsActivity::class) }
) { startActivity(buildIntent(SettingsActivity::class)) }

setContentViewCompat(binding.root)
}
Expand Down Expand Up @@ -404,9 +407,9 @@ class MainActivity : AppCompatActivity() {
override fun getFilters() = SettingsList()
override fun getMaxLoadsAtSameTime() = 1
override fun loadOnStartup() = true
override fun getCacheFile() = requireContext().cacheDir /
Constants.DIRECTORY_NET_CACHE /

override fun getCacheFile() = requireContext().cacheDir /
Constants.DIRECTORY_NET_CACHE /
Constants.FILE_FEEDS_NET_CACHE
}
}
96 changes: 22 additions & 74 deletions androidApp/src/main/java/com/mrboomdev/awery/app/App.kt
Original file line number Diff line number Diff line change
Expand Up @@ -63,18 +63,16 @@ import com.mrboomdev.awery.data.Constants
import com.mrboomdev.awery.data.db.AweryDB
import com.mrboomdev.awery.data.db.item.DBCatalogList
import com.mrboomdev.awery.extensions.data.CatalogList
import com.mrboomdev.awery.generated.AwerySettings
import com.mrboomdev.awery.generated.GeneratedSetting
import com.mrboomdev.awery.platform.PlatformResources
import com.mrboomdev.awery.generated.*
import com.mrboomdev.awery.platform.i18n
import com.mrboomdev.awery.ui.mobile.screens.BrowserActivity
import com.mrboomdev.awery.ui.mobile.screens.IntentHandlerActivity
import com.mrboomdev.awery.ui.mobile.screens.settings.SettingsActivity
import com.mrboomdev.awery.ui.tv.TvExperimentsActivity
import com.mrboomdev.awery.util.extensions.configuration
import com.mrboomdev.awery.util.extensions.startActivity
import com.mrboomdev.awery.util.ui.dialog.DialogBuilder
import com.mrboomdev.awery.util.ui.markdown.LinkifyPlugin
import com.mrboomdev.awery.util.ui.markdown.SpoilerPlugin
import com.mrboomdev.awery.utils.buildIntent
import com.squareup.moshi.Moshi
import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory
import dev.mihon.injekt.patchInjekt
Expand All @@ -88,6 +86,8 @@ import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import org.jetbrains.compose.resources.StringResource
import org.jetbrains.compose.resources.stringResource
import java.util.WeakHashMap

class App : Application() {
Expand Down Expand Up @@ -130,16 +130,16 @@ class App : Application() {
if(AwerySettings.USE_DARK_THEME.value == null) {
AwerySettings.USE_DARK_THEME.value = ThemeManager.isDarkModeEnabled
}

if(AwerySettings.LAST_OPENED_VERSION.value < 1) {
CoroutineScope(Dispatchers.IO).launch {
database.listDao.insert(
DBCatalogList.fromCatalogList(CatalogList(getString(R.string.currently_watching), "1")),
DBCatalogList.fromCatalogList(CatalogList(getString(R.string.planning_watch), "2")),
DBCatalogList.fromCatalogList(CatalogList(getString(R.string.delayed), "3")),
DBCatalogList.fromCatalogList(CatalogList(getString(R.string.completed), "4")),
DBCatalogList.fromCatalogList(CatalogList(getString(R.string.dropped), "5")),
DBCatalogList.fromCatalogList(CatalogList(getString(R.string.favourites), "6")),
DBCatalogList.fromCatalogList(CatalogList(i18n(Res.string.currently_watching), "1")),
DBCatalogList.fromCatalogList(CatalogList(i18n(Res.string.planning_watch), "2")),
DBCatalogList.fromCatalogList(CatalogList(i18n(Res.string.delayed), "3")),
DBCatalogList.fromCatalogList(CatalogList(i18n(Res.string.completed), "4")),
DBCatalogList.fromCatalogList(CatalogList(i18n(Res.string.dropped), "5")),
DBCatalogList.fromCatalogList(CatalogList(i18n(Res.string.favourites), "6")),
DBCatalogList.fromCatalogList(CatalogList("Hidden", Constants.CATALOG_LIST_BLACKLIST)),
DBCatalogList.fromCatalogList(CatalogList("History", Constants.CATALOG_LIST_HISTORY))
)
Expand Down Expand Up @@ -244,7 +244,7 @@ class App : Application() {
// Android 13 and higher shows a visual confirmation of copied contents
// https://developer.android.com/about/versions/13/features/copy-paste
if(Build.VERSION.SDK_INT <= Build.VERSION_CODES.S_V2) {
toast(R.string.copied_to_clipboard)
toast(i18n(Res.string.copied_to_clipboard))
}
}

Expand All @@ -257,6 +257,7 @@ class App : Application() {
}

@JvmStatic
@Deprecated("Old java shit")
fun getResourceId(type: Class<*>, res: String?): Int {
if(res == null) return 0

Expand All @@ -280,33 +281,6 @@ class App : Application() {
}
}

inline fun <reified T> getResourceId(res: String?): Int {
return getResourceId(T::class.java, res)
}

@JvmStatic
@Deprecated("old shit", ReplaceWith(
"PlatformResources.i18n(string, *args)",
"com.mrboomdev.awery.platform.PlatformResources"))
fun i18n(clazz: Class<*>, string: String?, vararg args: Any): String? {
val id = getResourceId(clazz, string)
return if(id == 0) null else PlatformResources.i18n(id, *args)
}

@Deprecated("old shit", ReplaceWith(
"PlatformResources.i18n(resourceId, *args)",
"com.mrboomdev.awery.platform.PlatformResources"))
inline fun <reified T> i18n(resourceId: String, vararg args: Any): String? {
return PlatformResources.i18n(resourceId, *args)
}

@JvmStatic
@Deprecated("old shit", ReplaceWith(
"PlatformResources.i18n(res, *params)",
"com.mrboomdev.awery.platform.PlatformResources"))
fun i18n(@StringRes res: Int, vararg params: Any) =
ContextCompat.getContextForLanguage(appContext).getString(res, *params)

private fun toastImpl(context: Context?, text: Any?, duration: Int = 0) {
runOnUiThread { Toast.makeText(context, text.toString(), duration).show() }
}
Expand All @@ -317,12 +291,6 @@ class App : Application() {
toastImpl(appContext, text, duration)
}

@JvmStatic
@JvmOverloads
fun toast(@StringRes res: Int, duration: Int = 0) {
toast(appContext.getString(res), duration)
}

/**
* There is a bug in an appcompat library which sometimes throws an [NullPointerException].
* This method tries to do it without throwing any exceptions.
Expand Down Expand Up @@ -415,7 +383,7 @@ class App : Application() {

@JvmStatic
fun isLandscape(context: Context): Boolean {
return context.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE
return context.resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE
}

@JvmStatic
Expand All @@ -435,10 +403,10 @@ class App : Application() {

@JvmStatic
@JvmOverloads
fun openUrl(context: Context, url: String, forceInternal: Boolean = false) {
fun openUrl(context: Context, url: String, forceInternal: Boolean = false) = with(context) {
if(forceInternal) {
context.startActivity(BrowserActivity::class, BrowserActivity.Extras(url))
return
startActivity(buildIntent(BrowserActivity::class, BrowserActivity.Extras(url)))
return@with
}

val customTabsIntent = CustomTabsIntent.Builder().apply {
Expand All @@ -449,11 +417,11 @@ class App : Application() {
intent.data = Uri.parse(url)
}

customTabsIntent.intent.resolveActivity(context.packageManager)?.also {
context.startActivity(customTabsIntent.intent, customTabsIntent.startAnimationBundle)
customTabsIntent.intent.resolveActivity(packageManager)?.also {
startActivity(customTabsIntent.intent, customTabsIntent.startAnimationBundle)
} ?: run {
Log.e(TAG, "No external browser was found, launching a internal one.")
context.startActivity(BrowserActivity::class, BrowserActivity.Extras(url))
startActivity(buildIntent(BrowserActivity::class, BrowserActivity.Extras(url)))
}
}

Expand Down Expand Up @@ -487,7 +455,7 @@ class App : Application() {
runOnUiThread { DialogBuilder(getAnyActivity<AppCompatActivity>()!!)
.setTitle("StrictMode.VmPolicy Violation!")
.setMessage(Log.getStackTraceString(violation))
.setPositiveButton(R.string.ok) { it.dismiss() }
.setPositiveButton(i18n(Res.string.ok)) { it.dismiss() }
.show() }
} catch(e: Throwable) {
Log.e(TAG, "Failed to warn about an strict mode violation!", e)
Expand All @@ -507,26 +475,6 @@ class App : Application() {
if(isTv) AwerySettings.NavigationStyleValue.MATERIAL else it
}

@Deprecated(message = "java shit")
fun getConfiguration(context: Context): Configuration {
return context.configuration
}

val configuration: Configuration
get() = anyContext.configuration

@JvmStatic
@JvmOverloads
fun snackbar(
activity: Activity,
@StringRes title: Int,
@StringRes button: Int,
buttonCallback: Runnable?,
duration: Int = Snackbar.LENGTH_SHORT
) {
snackbar(activity, activity.getString(title), activity.getString(button), buttonCallback, duration)
}

@JvmStatic
fun snackbar(activity: Activity, title: Any?, button: Any?, buttonCallback: Runnable?, duration: Int) {
runOnUiThread {
Expand Down
Loading

0 comments on commit 070ec70

Please sign in to comment.