feat(ALsettings): skeleton code

This commit is contained in:
sneazy-ibo
2024-06-08 00:43:39 +02:00
parent 6f685a4388
commit c2af6f15e5
6 changed files with 212 additions and 3 deletions

View File

@@ -153,6 +153,16 @@ class SettingsActivity : AppCompatActivity() {
},
isActivity = true
),
Settings(
type = 1,
name = getString(R.string.anilist_settings),
desc = getString(R.string.alsettings_desc),
icon = R.drawable.ic_anilist,
onClick = {
startActivity(Intent(context, SettingsAnilistActivity::class.java))
},
isActivity = true
),
Settings(
type = 1,
name = getString(R.string.notifications),

View File

@@ -0,0 +1,79 @@
package ani.dantotsu.settings
import android.content.Context
import android.os.Bundle
import android.view.ViewGroup
import android.view.animation.LinearInterpolator
import android.widget.ArrayAdapter
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.updateLayoutParams
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager
import ani.dantotsu.R
import ani.dantotsu.databinding.ActivitySettingsAnilistBinding
import ani.dantotsu.databinding.ItemSettingsBinding
import ani.dantotsu.initActivity
import ani.dantotsu.navBarHeight
import ani.dantotsu.restartApp
import ani.dantotsu.settings.saving.PrefManager
import ani.dantotsu.settings.saving.PrefName
import ani.dantotsu.statusBarHeight
import ani.dantotsu.themes.ThemeManager
import ani.dantotsu.util.Logger
class SettingsAnilistActivity : AppCompatActivity() {
private lateinit var binding: ActivitySettingsAnilistBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
ThemeManager(this).applyTheme()
initActivity(this)
val context = this
binding = ActivitySettingsAnilistBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.apply {
settingsAnilistLayout.updateLayoutParams<ViewGroup.MarginLayoutParams> {
topMargin = statusBarHeight
bottomMargin = navBarHeight
}
binding.anilistSettingsBack.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
val titleLang = listOf(
"English (Attack on Titan)",
"Romaji (Shingeki no Kyojin)",
"Native (進撃の巨人)"
)
settingsAnilistLanguage.setText(titleLang[PrefManager.getVal(PrefName.SelectedLanguage)])
settingsAnilistLanguage.setAdapter(
ArrayAdapter(
context, R.layout.item_dropdown, titleLang
)
)
settingsAnilistLanguage.setOnItemClickListener { _, _, i, _ ->
PrefManager.setVal(PrefName.SelectedLanguage, i)
settingsAnilistLanguage.clearFocus()
}
binding.settingsRecyclerView.adapter = SettingsAdapter(
arrayListOf(
Settings(
type = 2,
name = getString(R.string.restrict_messages),
desc = getString(R.string.restrict_messages_desc),
icon = R.drawable.ic_round_lock_24,
isChecked = PrefManager.getVal(PrefName.SettingsPreferDub),
switch = { isChecked, _ ->
PrefManager.setVal(PrefName.SettingsPreferDub, isChecked)
}
),
)
)
binding.settingsRecyclerView.layoutManager =
LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)
}
}
}

View File

@@ -18,6 +18,7 @@ enum class PrefName(val data: Pref) { //TODO: Split this into multiple files
SearchSources(Pref(Location.General, Boolean::class, false)),
RecentlyListOnly(Pref(Location.General, Boolean::class, false)),
SettingsPreferDub(Pref(Location.General, Boolean::class, false)),
SelectedLanguage(Pref(Location.General, Int::class, 1)),
SubscriptionCheckingNotifications(Pref(Location.General, Boolean::class, true)),
CheckUpdate(Pref(Location.General, Boolean::class, true)),
VerboseLogging(Pref(Location.General, Boolean::class, false)),

View File

@@ -1,6 +1,7 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24">
<path

View File

@@ -0,0 +1,113 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".settings.SettingsAccountActivity">
<LinearLayout
android:id="@+id/settingsAnilistLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.cardview.widget.CardView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="32dp"
app:cardBackgroundColor="@color/nav_bg_inv"
app:cardCornerRadius="16dp"
app:cardElevation="0dp">
<ImageButton
android:id="@+id/anilistSettingsBack"
android:layout_width="64dp"
android:layout_height="64dp"
android:background="@color/nav_bg_inv"
android:padding="16dp"
app:srcCompat="@drawable/ic_round_arrow_back_ios_new_24"
app:tint="?attr/colorOnBackground"
tools:ignore="ContentDescription,SpeakableTextPresentCheck" />
</androidx.cardview.widget.CardView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:ignore="UseCompoundDrawables">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginEnd="10dp"
android:layout_marginTop="32dp"
android:layout_marginBottom="32dp"
android:layout_weight="1"
android:fontFamily="@font/poppins_bold"
android:text="@string/anilist_settings"
android:textSize="28sp" />
<ImageView
android:layout_width="96dp"
android:layout_height="96dp"
android:layout_marginEnd="20dp"
android:layout_marginBottom="20dp"
android:padding="24dp"
app:srcCompat="@drawable/ic_anilist"
app:tint="?attr/colorOnBackground"
tools:ignore="ContentDescription" />
</LinearLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:alpha="0.58"
android:fontFamily="@font/poppins_bold"
android:text="@string/selected_language" />
<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginBottom="8dp"
app:boxCornerRadiusBottomEnd="8dp"
app:boxCornerRadiusBottomStart="8dp"
app:boxCornerRadiusTopEnd="8dp"
app:boxCornerRadiusTopStart="8dp"
app:hintAnimationEnabled="true"
app:startIconDrawable="@drawable/ic_round_dns_24">
<AutoCompleteTextView
android:id="@+id/settingsAnilistLanguage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:fontFamily="@font/poppins_bold"
android:freezesText="false"
android:inputType="none"
android:padding="8dp"
android:text="@string/placeholder"
android:textAllCaps="true"
android:textColor="?android:attr/textColorSecondary"
android:textSize="14sp"
tools:ignore="LabelFor,TextContrastCheck,DuplicateSpeakableTextCheck" />
</com.google.android.material.textfield.TextInputLayout>
<ani.dantotsu.FadingEdgeRecyclerView
android:id="@+id/settingsRecyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginHorizontal="24dp"
android:nestedScrollingEnabled="false"
android:requiresFadingEdge="vertical"
tools:itemCount="5"
tools:listitem="@layout/item_settings" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>

View File

@@ -329,6 +329,7 @@
<string name="none">None</string>
<string name="selected_dns">Selected DNS</string>
<string name="dns_info">Change if your ISP blocks any source</string>
<string name="selected_language">Selected Language</string>
<string name="keep_screen_on">Keep Screen On</string>
<string name="layout">Layout</string>
<string name="spaced_pages">Spaced Pages</string>
@@ -387,7 +388,6 @@
<string name="faq">FAQ</string>
<string name="accounts">Accounts</string>
<string name="addons">Add-ons</string>
<string name="addons_desc">Get more features out of your app</string>
<string name="myanimelist">MyAnimeList</string>
<string name="login_with_anilist">Login with Anilist!</string>
<string name="anilist">Anilist</string>
@@ -902,11 +902,13 @@ Non quae tempore quo provident laudantium qui illo dolor vel quia dolor et exerc
<string name="unknown_track">\[%1$s\] Unknown</string>
<string name="accounts_desc">Anilist, MAL and Discord.\nWhat more could you need?</string>
<string name="theme_desc">Change the vibe of your app</string>
<string name="extensions_desc">Manage your reliable repositories</string>
<string name="common_desc">UI and other mischievous stuff</string>
<string name="notifications_desc">Customise your news and updates</string>
<string name="anime_desc">Choose how you watch</string>
<string name="manga_desc">Choose how you read</string>
<string name="extensions_desc">Manage your reliable repositories</string>
<string name="addons_desc">Get more features out of your app</string>
<string name="alsettings_desc">Change your AniList settings</string>
<string name="notifications_desc">Customise your news and updates</string>
<string name="about_desc">Learn more about Dantotsu</string>
<string name="faq_desc">General questions about Dantotsu</string>
<string name="check_app_updates_desc">Check Github for app updates</string>
@@ -958,6 +960,9 @@ Non quae tempore quo provident laudantium qui illo dolor vel quia dolor et exerc
<string name="update_addon">Add-on update available</string>
<string name="install_addon">Install Add-on</string>
<string name="download_addon_not_found">Add-on not found</string>
<string name="restrict_messages">Follower only</string>
<string name="restrict_messages_desc">Restrict Messages to following</string>
<string name="image">Image</string>
<string name="failed_ext_install_conflict">Failed to install extension due to conflict</string>
<string name="reading">READING</string>