mirror of
https://github.com/rebelonion/Dantotsu.git
synced 2026-01-28 23:51:03 +00:00
feat(ALsettings): skeleton code
This commit is contained in:
@@ -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),
|
||||
|
||||
@@ -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)
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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)),
|
||||
|
||||
@@ -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
|
||||
|
||||
113
app/src/main/res/layout/activity_settings_anilist.xml
Normal file
113
app/src/main/res/layout/activity_settings_anilist.xml
Normal 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>
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user