This commit is contained in:
lunaticbum 2025-08-25 09:45:58 +09:00
parent fd0d61c584
commit 6c4d7e68f6
15 changed files with 369 additions and 323 deletions

View File

@ -94,7 +94,7 @@ dependencies {
implementation ("com.ibm.icu:icu4j:68.1") implementation ("com.ibm.icu:icu4j:68.1")
implementation (kotlin("stdlib", version = kotlinVersion)) implementation (kotlin("stdlib", version = kotlinVersion))
implementation ("com.github.cachapa:ExpandableLayout:2.9.2") implementation ("com.github.cachapa:ExpandableLayout:2.9.2")
implementation ("com.squareup.picasso:picasso:2.71828")
implementation ("androidx.work:work-runtime:2.10.0") implementation ("androidx.work:work-runtime:2.10.0")
implementation ("com.google.code.gson:gson:2.11.0") implementation ("com.google.code.gson:gson:2.11.0")
implementation ("io.realm.kotlin:library-base:2.1.0") implementation ("io.realm.kotlin:library-base:2.1.0")

View File

@ -82,7 +82,7 @@ internal class LunaticLauncher : Application() {
.downloader(OkHttp3Downloader(okHttpClient)) .downloader(OkHttp3Downloader(okHttpClient))
.build() .build()
// 앱 전체에 해당 인스턴스를 사용하려면 // 앱 전체에 해당 인스턴스를 사용하려면
Picasso.setSingletonInstance(picasso) Picasso.setSingletonInstance(picasso)
} }

View File

@ -27,6 +27,7 @@ import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.os.Handler import android.os.Handler
import android.os.Looper import android.os.Looper
import android.util.Log
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.MotionEvent import android.view.MotionEvent
import android.view.PointerIcon import android.view.PointerIcon
@ -447,13 +448,31 @@ internal class RssHome : Fragment() {
binding.layoutRssSummary.scrollView.scrollTo(0,0) binding.layoutRssSummary.scrollView.scrollTo(0,0)
var vote = it.vote var vote = it.vote
var read = it.read var read = it.read
var keyword = ""
it.title?.let { it.title?.let {
Blog.LOGE(it) Blog.LOGE(it)
keyword = it
binding.layoutRssSummary.title.text = it.replace(Regex("[\\r\\n]+"), " ").plus( "\n[V:${if (vote) { binding.layoutRssSummary.title.text = it.replace(Regex("[\\r\\n]+"), " ").plus( "\n[V:${if (vote) {
"O" "O"
}else { }else {
"X" "X"
}} , R:${read + 1}]") }} , R:${read + 1}]")
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(" ") }
.toList()
if (results.isNotEmpty()) {
keyword = results.first()
}
Blog.LOGE("Regex:results >>> ${results}")
} }
it.pubDate()?.let { it.pubDate()?.let {
@ -485,7 +504,7 @@ internal class RssHome : Fragment() {
binding.layoutRssSummary.screenLink.text = it binding.layoutRssSummary.screenLink.text = it
} }
if (it.getMagnet().length < 10) { if (it.getMagnet().length < 10) {
binding.layoutRssSummary.smallg.loadUrl("https://btsearch.love/en/search?keyword=${it.title}") binding.layoutRssSummary.smallg.loadUrl("https://btsearch.love/en/search?keyword=${keyword}")
} else { } else {
binding.layoutRssSummary.smallg.visibility = View.GONE binding.layoutRssSummary.smallg.visibility = View.GONE
} }

View File

@ -115,10 +115,10 @@ class WebBottomSheet : BottomSheetDialogFragment() {
inputKeyword.setOnEditorActionListener { _, actionId, _ -> inputKeyword.setOnEditorActionListener { _, actionId, _ ->
if (actionId == EditorInfo.IME_ACTION_SEARCH) { if (actionId == EditorInfo.IME_ACTION_SEARCH) {
val keyword = inputKeyword.text.toString() val keyword = inputKeyword.text.toString()
if (keyword.isNotEmpty()) { // if (keyword.isNotEmpty()) {
triggerSearchWithDebounce(keyword) triggerSearchWithDebounce(keyword)
dismiss() // 필요 시 닫기 dismiss() // 필요 시 닫기
} // }
true true
} else { } else {
false false

View File

@ -75,13 +75,13 @@ internal class SettingsActivity : CommonActivity() {
settingsPrefs = this.getSharedPreferences(PREFS_SETTINGS, 0) settingsPrefs = this.getSharedPreferences(PREFS_SETTINGS, 0)
/* launch child settings dialogs on button clicks */ /* launch child settings dialogs on button clicks */
binding.timeDate.setOnClickListener { // binding.timeDate.setOnClickListener {
TopInfos().show(supportFragmentManager, BOTTOM_SHEET_TAG) // TopInfos().show(supportFragmentManager, BOTTOM_SHEET_TAG)
} // }
binding.weather.setOnClickListener { // binding.weather.setOnClickListener {
WeatherSettings().show(supportFragmentManager, BOTTOM_SHEET_TAG) // WeatherSettings().show(supportFragmentManager, BOTTOM_SHEET_TAG)
} // }
binding.todo.setOnClickListener { binding.todo.setOnClickListener {
HomeSettings().show(supportFragmentManager, BOTTOM_SHEET_TAG) HomeSettings().show(supportFragmentManager, BOTTOM_SHEET_TAG)
@ -91,17 +91,17 @@ internal class SettingsActivity : CommonActivity() {
Apps().show(supportFragmentManager, BOTTOM_SHEET_TAG) Apps().show(supportFragmentManager, BOTTOM_SHEET_TAG)
} }
binding.appearances.setOnClickListener { // binding.appearances.setOnClickListener {
Appearances().show(supportFragmentManager, BOTTOM_SHEET_TAG) // Appearances().show(supportFragmentManager, BOTTOM_SHEET_TAG)
} // }
binding.misc.setOnClickListener { binding.misc.setOnClickListener {
Misc().show(supportFragmentManager, BOTTOM_SHEET_TAG) Misc().show(supportFragmentManager, BOTTOM_SHEET_TAG)
} }
binding.advance.setOnClickListener { // binding.advance.setOnClickListener {
Advance().show(supportFragmentManager, BOTTOM_SHEET_TAG) // Advance().show(supportFragmentManager, BOTTOM_SHEET_TAG)
} // }
/* about and support dialogs */ /* about and support dialogs */
binding.about.setOnClickListener { aboutDialog() } binding.about.setOnClickListener { aboutDialog() }
@ -172,17 +172,17 @@ internal class SettingsActivity : CommonActivity() {
if (path.exists() == false) { if (path.exists() == false) {
path.mkdirs() path.mkdirs()
} }
saveObjToJson(path,"prefSettings.txt",PrefHelper.getSettings()) saveObjToJson(path,"prefSettings.json",PrefHelper.getSettings())
WorkersDb.getRealm().apply { WorkersDb.getRealm().apply {
val foundAppInfo = query<AppInfo>().find() val foundAppInfo = query<AppInfo>().find()
Blog.LOGE("foundAppInfo >>> ${foundAppInfo}") Blog.LOGE("foundAppInfo >>> ${foundAppInfo}")
val apps = arrayListOf<AppInfo>().apply { addAll((copyFromRealm(foundAppInfo))) } val apps = arrayListOf<AppInfo>().apply { addAll((copyFromRealm(foundAppInfo))) }
Blog.LOGE("foundAppInfo >>> ${apps.size}") Blog.LOGE("foundAppInfo >>> ${apps.size}")
saveObjToJson(path,"appInfos.txt",apps) saveObjToJson(path,"appInfos.json",apps)
val foundSimpleContact = query<SimpleContact>().find() val foundSimpleContact = query<SimpleContact>().find()
Blog.LOGE("foundSimpleContact >>> ${foundSimpleContact.size}") Blog.LOGE("foundSimpleContact >>> ${foundSimpleContact.size}")
val contacts = arrayListOf<SimpleContact>().apply { addAll(copyFromRealm(foundSimpleContact)) } val contacts = arrayListOf<SimpleContact>().apply { addAll(copyFromRealm(foundSimpleContact)) }
saveObjToJson(path,"contactInfos.txt",contacts) saveObjToJson(path,"contactInfos.json",contacts)
} }
} }
/* affiliate button */ /* affiliate button */
@ -203,12 +203,12 @@ internal class SettingsActivity : CommonActivity() {
val file = File(path, fileName) val file = File(path, fileName)
if (path.exists() && file.exists()) { if (path.exists() && file.exists()) {
val retMap = readMap(file) val retMap = readMap(file)
decodeString(File(path, "appInfos.txt"))?.let { decodeString(File(path, "appInfos.json"))?.let {
val appInfos = Gson().fromJson(it, object : TypeToken<ArrayList<AppInfo?>?>() {}.type) as ArrayList<AppInfo> val appInfos = Gson().fromJson(it, object : TypeToken<ArrayList<AppInfo?>?>() {}.type) as ArrayList<AppInfo>
Blog.LOGE("appInfos >>>> ${appInfos.size}") Blog.LOGE("appInfos >>>> ${appInfos.size}")
WorkersDb.getRealm().writeBlocking { appInfos.forEach { copyToRealm(it,UpdatePolicy.ALL) } } WorkersDb.getRealm().writeBlocking { appInfos.forEach { copyToRealm(it,UpdatePolicy.ALL) } }
} }
decodeString(File(path,"contactInfos.txt"))?.let { decodeString(File(path,"contactInfos.json"))?.let {
val contacts = Gson().fromJson(it, object : TypeToken<ArrayList<SimpleContact?>?>() {}.type) as ArrayList<SimpleContact> val contacts = Gson().fromJson(it, object : TypeToken<ArrayList<SimpleContact?>?>() {}.type) as ArrayList<SimpleContact>
Blog.LOGE("contacts >>>> ${contacts.size}") Blog.LOGE("contacts >>>> ${contacts.size}")
WorkersDb.getRealm().writeBlocking { contacts.forEach { copyToRealm(it,UpdatePolicy.ALL) } } WorkersDb.getRealm().writeBlocking { contacts.forEach { copyToRealm(it,UpdatePolicy.ALL) } }

View File

@ -63,29 +63,29 @@ internal class Apps : BottomSheetDialogFragment() {
packageManager = requireActivity().packageManager packageManager = requireActivity().packageManager
binding.keyboardAutoGroup.isChecked = PrefBoolean.openWithKayboard.get() // binding.keyboardAutoGroup.isChecked = PrefBoolean.openWithKayboard.get()
binding.keyboardAutoGroup.setOnCheckedChangeListener { c,v -> // binding.keyboardAutoGroup.setOnCheckedChangeListener { c,v ->
settingsChanged = true // settingsChanged = true
PrefBoolean.openWithKayboard.set(v) // PrefBoolean.openWithKayboard.set(v)
} // }
//
binding.quickLaunchGroup.isChecked = PrefBoolean.useQuickLaunch.get() // binding.quickLaunchGroup.isChecked = PrefBoolean.useQuickLaunch.get()
binding.quickLaunchGroup.setOnCheckedChangeListener { c,v -> // binding.quickLaunchGroup.setOnCheckedChangeListener { c,v ->
settingsChanged = true // settingsChanged = true
PrefBoolean.useQuickLaunch.get(v) // PrefBoolean.useQuickLaunch.get(v)
} // }
//
binding.appsCountGroup.isChecked = PrefBoolean.showAppResultCount.get() // binding.appsCountGroup.isChecked = PrefBoolean.showAppResultCount.get()
binding.appsCountGroup.setOnCheckedChangeListener { c,v -> // binding.appsCountGroup.setOnCheckedChangeListener { c,v ->
settingsChanged = true // settingsChanged = true
PrefBoolean.showAppResultCount.set(v) // PrefBoolean.showAppResultCount.set(v)
} // }
//
//
((PrefLong.maxQueryCount.get(18L) as? Long)?.toFloat() ?: 18F).let { // ((PrefLong.maxQueryCount.get(18L) as? Long)?.toFloat() ?: 18F).let {
binding.columnsCountTitle.text = getString(R.string.grid_columns_count) +" [${it.toInt()}]" // binding.columnsCountTitle.text = getString(R.string.grid_columns_count) +" [${it.toInt()}]"
binding.columnsCount.value = it // binding.columnsCount.value = it
} // }
PrefLong.shortTimePeriod.get(20L).let { PrefLong.shortTimePeriod.get(20L).let {
binding.shortTimeTitle.text = getString(R.string.shortTimeTitle) +" [${it.toInt()}분 마다]" binding.shortTimeTitle.text = getString(R.string.shortTimeTitle) +" [${it.toInt()}분 마다]"
@ -122,11 +122,11 @@ internal class Apps : BottomSheetDialogFragment() {
(requireDialog() as BottomSheetDialog).dismissWithAnimation = true (requireDialog() as BottomSheetDialog).dismissWithAnimation = true
binding.columnsCount.addOnChangeListener(Slider.OnChangeListener { _, value, _ -> // binding.columnsCount.addOnChangeListener(Slider.OnChangeListener { _, value, _ ->
settingsChanged = true // settingsChanged = true
PrefLong.maxQueryCount.set(value.toLong()) // PrefLong.maxQueryCount.set(value.toLong())
binding.columnsCountTitle.text = getString(R.string.grid_columns_count) +" [${value.toInt()}]" // binding.columnsCountTitle.text = getString(R.string.grid_columns_count) +" [${value.toInt()}]"
}) // })
binding.shortTime.addOnChangeListener(Slider.OnChangeListener { _, value, _ -> binding.shortTime.addOnChangeListener(Slider.OnChangeListener { _, value, _ ->
settingsChanged = true settingsChanged = true

View File

@ -52,20 +52,20 @@ internal class HomeSettings : BottomSheetDialogFragment() {
setTableItem(binding.normal04) setTableItem(binding.normal04)
binding.callInfo.isChecked = PrefBoolean.showCallHistory.get(false) // binding.callInfo.isChecked = PrefBoolean.showCallHistory.get(false)
binding.callInfo.setOnCheckedChangeListener { buttonView, isChecked -> PrefBoolean.showCallHistory.set(isChecked) // binding.callInfo.setOnCheckedChangeListener { buttonView, isChecked -> PrefBoolean.showCallHistory.set(isChecked)
settingsChanged = true} // settingsChanged = true}
binding.smsInfos.isChecked = PrefBoolean.showSMSHistory.get(false) // binding.smsInfos.isChecked = PrefBoolean.showSMSHistory.get(false)
binding.smsInfos.setOnCheckedChangeListener { buttonView, isChecked -> PrefBoolean.showSMSHistory.set(isChecked) // binding.smsInfos.setOnCheckedChangeListener { buttonView, isChecked -> PrefBoolean.showSMSHistory.set(isChecked)
settingsChanged = true} // settingsChanged = true}
binding.notificationInfos.isChecked = PrefBoolean.showNotificationHistory.get(false) // binding.notificationInfos.isChecked = PrefBoolean.showNotificationHistory.get(false)
binding.notificationInfos.setOnCheckedChangeListener { buttonView, isChecked -> PrefBoolean.showNotificationHistory.set(isChecked) // binding.notificationInfos.setOnCheckedChangeListener { buttonView, isChecked -> PrefBoolean.showNotificationHistory.set(isChecked)
settingsChanged = true} // settingsChanged = true}
binding.nowPlaying.isChecked = PrefBoolean.showNowPlaying.get(false) // binding.nowPlaying.isChecked = PrefBoolean.showNowPlaying.get(false)
binding.nowPlaying.setOnCheckedChangeListener { buttonView, isChecked -> // binding.nowPlaying.setOnCheckedChangeListener { buttonView, isChecked ->
PrefBoolean.showNowPlaying.set(isChecked) // PrefBoolean.showNowPlaying.set(isChecked)
settingsChanged = true // settingsChanged = true
} // }

View File

@ -24,6 +24,7 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.widget.doOnTextChanged import androidx.core.widget.doOnTextChanged
import bums.lunatic.launcher.R
import bums.lunatic.launcher.databinding.SettingsPrivitServiceBinding import bums.lunatic.launcher.databinding.SettingsPrivitServiceBinding
import bums.lunatic.launcher.helpers.Constants.Companion.KEY_RSS_URL import bums.lunatic.launcher.helpers.Constants.Companion.KEY_RSS_URL
import bums.lunatic.launcher.helpers.Constants.Companion.KEY_RSS_URL2 import bums.lunatic.launcher.helpers.Constants.Companion.KEY_RSS_URL2
@ -31,10 +32,28 @@ import bums.lunatic.launcher.helpers.PrefString
import bums.lunatic.launcher.settings.SettingsActivity.Companion.settingsPrefs import bums.lunatic.launcher.settings.SettingsActivity.Companion.settingsPrefs
import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.bottomsheet.BottomSheetDialog
import com.google.android.material.bottomsheet.BottomSheetDialogFragment import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import java.util.Objects import java.util.Objects
import kotlin.system.exitProcess
internal class Misc : BottomSheetDialogFragment() { open class SettingChild : BottomSheetDialogFragment() {
protected var settingsChanged: Boolean = false
override fun onDismiss(dialog: DialogInterface) {
super.onDismiss(dialog)
if (settingsChanged) {
MaterialAlertDialogBuilder(requireActivity())
.setTitle(R.string.restart_now)
.setMessage(R.string.restart_message)
.setPositiveButton(R.string.restart) { _, _ ->
exitProcess(0)
}
.setNeutralButton(R.string.later, null)
.show()
}
}
}
internal class Misc : SettingChild() {
private lateinit var binding : SettingsPrivitServiceBinding private lateinit var binding : SettingsPrivitServiceBinding
@ -43,26 +62,32 @@ internal class Misc : BottomSheetDialogFragment() {
/* initialize views according to the saved values */ /* initialize views according to the saved values */
binding.inputFeedUrl.setText(PrefString.telegramBotApi.get("")) binding.inputFeedUrl.setText(PrefString.telegramBotApi.get(""))
binding.inputFeedUrl.doOnTextChanged { t,s,b,l -> PrefString.telegramBotApi.set(t.toString()) binding.inputFeedUrl.doOnTextChanged { t,s,b,l -> PrefString.telegramBotApi.set(t.toString())
settingsChanged = true
} }
binding.inputFeedUrl2.setText(PrefString.telegramMyId.get("")) binding.inputFeedUrl2.setText(PrefString.telegramMyId.get(""))
binding.inputFeedUrl2.doOnTextChanged { t,s,b,l -> PrefString.telegramMyId.set(t.toString()) binding.inputFeedUrl2.doOnTextChanged { t,s,b,l -> PrefString.telegramMyId.set(t.toString())
settingsChanged = true
} }
binding.inputFeedUrl3.setText(PrefString.telegramSendTarget.get("")) binding.inputFeedUrl3.setText(PrefString.telegramSendTarget.get(""))
binding.inputFeedUrl3.doOnTextChanged { t,s,b,l -> PrefString.telegramSendTarget.set(t.toString()) binding.inputFeedUrl3.doOnTextChanged { t,s,b,l -> PrefString.telegramSendTarget.set(t.toString())
settingsChanged = true
} }
binding.inputFeedUrl4.setText(PrefString.locationApi.get("")) binding.inputFeedUrl4.setText(PrefString.locationApi.get(""))
binding.inputFeedUrl4.doOnTextChanged { t,s,b,l -> PrefString.locationApi.set(t.toString())} binding.inputFeedUrl4.doOnTextChanged { t,s,b,l -> PrefString.locationApi.set(t.toString())
settingsChanged = true
}
binding.inputFeedUrl5.setText(PrefString.carName.get("")) binding.inputFeedUrl5.setText(PrefString.carName.get(""))
binding.inputFeedUrl5.doOnTextChanged { t,s,b,l -> PrefString.carName.set(t.toString())} binding.inputFeedUrl5.doOnTextChanged { t,s,b,l -> PrefString.carName.set(t.toString())
settingsChanged = true
}
binding.inputOwm.setText(PrefString.weatherApiKey.get(""))
binding.inputOwm.doOnTextChanged { text, start, before, count ->
PrefString.weatherApiKey.set(text.toString())
settingsChanged = true
}
return binding.root return binding.root
} }

View File

@ -33,23 +33,6 @@ import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import kotlin.system.exitProcess import kotlin.system.exitProcess
open class SettingChild : BottomSheetDialogFragment() {
protected var settingsChanged: Boolean = false
override fun onDismiss(dialog: DialogInterface) {
super.onDismiss(dialog)
if (settingsChanged) {
MaterialAlertDialogBuilder(requireActivity())
.setTitle(R.string.restart_now)
.setMessage(R.string.restart_message)
.setPositiveButton(R.string.restart) { _, _ ->
exitProcess(0)
}
.setNeutralButton(R.string.later, null)
.show()
}
}
}
internal class WeatherSettings : SettingChild() { internal class WeatherSettings : SettingChild() {
private lateinit var binding : SettingsWeatherBinding private lateinit var binding : SettingsWeatherBinding
@ -64,12 +47,12 @@ internal class WeatherSettings : SettingChild() {
PrefString.weatherApiKey.set(text.toString()) PrefString.weatherApiKey.set(text.toString())
settingsChanged = true settingsChanged = true
} }
binding.dress.isChecked = PrefBoolean.weatherDress.get(false) // binding.dress.isChecked = PrefBoolean.weatherDress.get(false)
binding.weather.isChecked = PrefBoolean.weatherState.get(false) // binding.weather.isChecked = PrefBoolean.weatherState.get(false)
binding.weather.setOnCheckedChangeListener { buttonView, isChecked -> PrefBoolean.weatherState.set(isChecked) // binding.weather.setOnCheckedChangeListener { buttonView, isChecked -> PrefBoolean.weatherState.set(isChecked)
settingsChanged = true} // settingsChanged = true}
binding.dress.setOnCheckedChangeListener { buttonView, isChecked -> PrefBoolean.weatherDress.set(isChecked) // binding.dress.setOnCheckedChangeListener { buttonView, isChecked -> PrefBoolean.weatherDress.set(isChecked)
settingsChanged = true} // settingsChanged = true}
return binding.root return binding.root
} }

View File

@ -19,14 +19,15 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/lunar_settings" android:text="@string/lunar_settings"
android:textColor="?attr/colorControlNormal" /> android:textStyle="bold"
android:textColor="@color/white" />
</com.google.android.material.appbar.AppBarLayout> </com.google.android.material.appbar.AppBarLayout>
<ScrollView <ScrollView
android:layout_width="@dimen/zero" android:layout_width="@dimen/zero"
android:layout_height="@dimen/zero" android:layout_height="@dimen/zero"
android:background="@drawable/rounded_bg_top" android:background="@drawable/rounded_bg_top"
android:backgroundTint="?attr/colorSurface" android:backgroundTint="@color/black"
android:paddingHorizontal="@dimen/thirtySix" android:paddingHorizontal="@dimen/thirtySix"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@ -40,23 +41,23 @@
app:singleSelection="true" app:singleSelection="true"
android:layout_gravity="center"> android:layout_gravity="center">
<com.google.android.material.button.MaterialButton <!-- <com.google.android.material.button.MaterialButton-->
android:id="@+id/timeDate" <!-- android:id="@+id/timeDate"-->
style="@style/Widget.Material3.Button.ElevatedButton" <!-- style="@style/Widget.Material3.Button.ElevatedButton"-->
android:layout_width="match_parent" <!-- android:layout_width="match_parent"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
android:text="Display Info" <!-- android:text="Display Info"-->
android:textAllCaps="true" <!-- android:textAllCaps="true"-->
android:textStyle="bold" /> <!-- android:textStyle="bold" />-->
<com.google.android.material.button.MaterialButton <!-- <com.google.android.material.button.MaterialButton-->
android:id="@+id/weather" <!-- android:id="@+id/weather"-->
style="@style/Widget.Material3.Button.ElevatedButton" <!-- style="@style/Widget.Material3.Button.ElevatedButton"-->
android:layout_width="match_parent" <!-- android:layout_width="match_parent"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
android:text="@string/weather" <!-- android:text="@string/weather"-->
android:textAllCaps="true" <!-- android:textAllCaps="true"-->
android:textStyle="bold" /> <!-- android:textStyle="bold" />-->
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/todo" android:id="@+id/todo"
@ -76,14 +77,14 @@
android:textAllCaps="true" android:textAllCaps="true"
android:textStyle="bold" /> android:textStyle="bold" />
<com.google.android.material.button.MaterialButton <!-- <com.google.android.material.button.MaterialButton-->
android:id="@+id/appearances" <!-- android:id="@+id/appearances"-->
style="@style/Widget.Material3.Button.ElevatedButton" <!-- style="@style/Widget.Material3.Button.ElevatedButton"-->
android:layout_width="match_parent" <!-- android:layout_width="match_parent"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
android:text="@string/appearances" <!-- android:text="@string/appearances"-->
android:textAllCaps="true" <!-- android:textAllCaps="true"-->
android:textStyle="bold" /> <!-- android:textStyle="bold" />-->
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/misc" android:id="@+id/misc"
@ -94,14 +95,14 @@
android:textAllCaps="true" android:textAllCaps="true"
android:textStyle="bold" /> android:textStyle="bold" />
<com.google.android.material.button.MaterialButton <!-- <com.google.android.material.button.MaterialButton-->
android:id="@+id/advance" <!-- android:id="@+id/advance"-->
style="@style/Widget.Material3.Button.ElevatedButton" <!-- style="@style/Widget.Material3.Button.ElevatedButton"-->
android:layout_width="match_parent" <!-- android:layout_width="match_parent"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
android:text="@string/advance" <!-- android:text="@string/advance"-->
android:textAllCaps="true" <!-- android:textAllCaps="true"-->
android:textStyle="bold" /> <!-- android:textStyle="bold" />-->
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/about" android:id="@+id/about"

View File

@ -13,94 +13,94 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="@dimen/twelve"> android:padding="@dimen/twelve">
<com.google.android.material.textview.MaterialTextView <!-- <com.google.android.material.textview.MaterialTextView-->
android:id="@+id/searchWithKeyboard" <!-- android:id="@+id/searchWithKeyboard"-->
android:layout_width="wrap_content" <!-- android:layout_width="wrap_content"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
android:text="@string/search_with_keyboard" <!-- android:text="@string/search_with_keyboard"-->
android:textSize="@dimen/normalText" <!-- android:textSize="@dimen/normalText"-->
app:layout_constraintEnd_toEndOf="parent" <!-- app:layout_constraintEnd_toEndOf="parent"-->
app:layout_constraintStart_toStartOf="parent" <!-- app:layout_constraintStart_toStartOf="parent"-->
app:layout_constraintTop_toTopOf="parent" /> <!-- app:layout_constraintTop_toTopOf="parent" />-->
<com.google.android.material.switchmaterial.SwitchMaterial <!-- <com.google.android.material.switchmaterial.SwitchMaterial-->
android:id="@+id/keyboardAutoGroup" <!-- android:id="@+id/keyboardAutoGroup"-->
android:layout_width="wrap_content" <!-- android:layout_width="wrap_content"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
app:layout_constraintEnd_toEndOf="parent" <!-- app:layout_constraintEnd_toEndOf="parent"-->
app:layout_constraintStart_toStartOf="parent" <!-- app:layout_constraintStart_toStartOf="parent"-->
app:layout_constraintTop_toBottomOf="@+id/searchWithKeyboard" <!-- app:layout_constraintTop_toBottomOf="@+id/searchWithKeyboard"-->
app:selectionRequired="true" <!-- app:selectionRequired="true"-->
app:singleSelection="true"/> <!-- app:singleSelection="true"/>-->
<com.google.android.material.textview.MaterialTextView <!-- <com.google.android.material.textview.MaterialTextView-->
android:id="@+id/quickLaunch" <!-- android:id="@+id/quickLaunch"-->
android:layout_width="wrap_content" <!-- android:layout_width="wrap_content"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
android:layout_marginTop="@dimen/twelve" <!-- android:layout_marginTop="@dimen/twelve"-->
android:text="@string/quick_launch" <!-- android:text="@string/quick_launch"-->
android:textSize="@dimen/normalText" <!-- android:textSize="@dimen/normalText"-->
app:layout_constraintEnd_toEndOf="parent" <!-- app:layout_constraintEnd_toEndOf="parent"-->
app:layout_constraintStart_toStartOf="parent" <!-- app:layout_constraintStart_toStartOf="parent"-->
app:layout_constraintTop_toBottomOf="@+id/keyboardAutoGroup" /> <!-- app:layout_constraintTop_toBottomOf="@+id/keyboardAutoGroup" />-->
<com.google.android.material.switchmaterial.SwitchMaterial <!-- <com.google.android.material.switchmaterial.SwitchMaterial-->
android:id="@+id/quickLaunchGroup" <!-- android:id="@+id/quickLaunchGroup"-->
android:layout_width="wrap_content" <!-- android:layout_width="wrap_content"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
app:layout_constraintEnd_toEndOf="parent" <!-- app:layout_constraintEnd_toEndOf="parent"-->
app:layout_constraintStart_toStartOf="parent" <!-- app:layout_constraintStart_toStartOf="parent"-->
app:layout_constraintTop_toBottomOf="@+id/quickLaunch" <!-- app:layout_constraintTop_toBottomOf="@+id/quickLaunch"-->
app:selectionRequired="true" <!-- app:selectionRequired="true"-->
app:singleSelection="true"/> <!-- app:singleSelection="true"/>-->
<com.google.android.material.textview.MaterialTextView <!-- <com.google.android.material.textview.MaterialTextView-->
android:id="@+id/appsCount" <!-- android:id="@+id/appsCount"-->
android:layout_width="wrap_content" <!-- android:layout_width="wrap_content"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
android:layout_marginTop="@dimen/twelve" <!-- android:layout_marginTop="@dimen/twelve"-->
android:text="@string/apps_count" <!-- android:text="@string/apps_count"-->
android:textSize="@dimen/normalText" <!-- android:textSize="@dimen/normalText"-->
app:layout_constraintEnd_toEndOf="parent" <!-- app:layout_constraintEnd_toEndOf="parent"-->
app:layout_constraintStart_toStartOf="parent" <!-- app:layout_constraintStart_toStartOf="parent"-->
app:layout_constraintTop_toBottomOf="@+id/quickLaunchGroup" /> <!-- app:layout_constraintTop_toBottomOf="@+id/quickLaunchGroup" />-->
<com.google.android.material.switchmaterial.SwitchMaterial <!-- <com.google.android.material.switchmaterial.SwitchMaterial-->
android:id="@+id/appsCountGroup" <!-- android:id="@+id/appsCountGroup"-->
android:layout_width="wrap_content" <!-- android:layout_width="wrap_content"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
app:layout_constraintEnd_toEndOf="parent" <!-- app:layout_constraintEnd_toEndOf="parent"-->
app:layout_constraintStart_toStartOf="parent" <!-- app:layout_constraintStart_toStartOf="parent"-->
app:layout_constraintTop_toBottomOf="@+id/appsCount" <!-- app:layout_constraintTop_toBottomOf="@+id/appsCount"-->
app:selectionRequired="true" <!-- app:selectionRequired="true"-->
app:singleSelection="true"/> <!-- app:singleSelection="true"/>-->
<com.google.android.material.textview.MaterialTextView <!-- <com.google.android.material.textview.MaterialTextView-->
android:id="@+id/columnsCountTitle" <!-- android:id="@+id/columnsCountTitle"-->
android:layout_width="wrap_content" <!-- android:layout_width="wrap_content"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
android:layout_marginTop="@dimen/twelve" <!-- android:layout_marginTop="@dimen/twelve"-->
android:textSize="@dimen/normalText" <!-- android:textSize="@dimen/normalText"-->
android:text="@string/grid_columns_count" <!-- android:text="@string/grid_columns_count"-->
app:layout_constraintStart_toStartOf="parent" <!-- app:layout_constraintStart_toStartOf="parent"-->
app:layout_constraintEnd_toEndOf="parent" <!-- app:layout_constraintEnd_toEndOf="parent"-->
app:layout_constraintTop_toBottomOf="@+id/appsCountGroup" /> <!-- app:layout_constraintTop_toBottomOf="@+id/appsCountGroup" />-->
<com.google.android.material.slider.Slider <!-- <com.google.android.material.slider.Slider-->
android:id="@+id/columnsCount" <!-- android:id="@+id/columnsCount"-->
android:layout_width="@dimen/zero" <!-- android:layout_width="@dimen/zero"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
android:valueFrom="5" <!-- android:valueFrom="5"-->
android:valueTo="40" <!-- android:valueTo="40"-->
android:stepSize="1" <!-- android:stepSize="1"-->
app:layout_constraintEnd_toEndOf="parent" <!-- app:layout_constraintEnd_toEndOf="parent"-->
app:layout_constraintStart_toStartOf="parent" <!-- app:layout_constraintStart_toStartOf="parent"-->
app:layout_constraintTop_toBottomOf="@+id/columnsCountTitle" /> <!-- app:layout_constraintTop_toBottomOf="@+id/columnsCountTitle" />-->
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/shortTimeTitle" android:id="@+id/shortTimeTitle"
@ -111,7 +111,7 @@
android:textSize="@dimen/normalText" android:textSize="@dimen/normalText"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/columnsCount" /> app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.slider.Slider <com.google.android.material.slider.Slider
android:id="@+id/shortTime" android:id="@+id/shortTime"

View File

@ -114,7 +114,25 @@
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/owmInputLayout"
android:layout_width="@dimen/threeTwentyFour"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/twelve"
android:hint="@string/owm_key"
app:endIconMode="clear_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/feedInputLayout5">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/inputOwm"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:imeOptions="actionDone"
android:singleLine="true" />
</com.google.android.material.textfield.TextInputLayout>
<!-- <com.google.android.material.textview.MaterialTextView--> <!-- <com.google.android.material.textview.MaterialTextView-->
<!-- android:id="@+id/doubleTapLock"--> <!-- android:id="@+id/doubleTapLock"-->

View File

@ -5,26 +5,26 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="@dimen/twelve"> android:padding="@dimen/twelve">
<com.google.android.material.textview.MaterialTextView <!-- <com.google.android.material.textview.MaterialTextView-->
android:id="@+id/phoneTitle" <!-- android:id="@+id/phoneTitle"-->
android:layout_width="wrap_content" <!-- android:layout_width="wrap_content"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
android:text="통화목록" <!-- android:text="통화목록"-->
android:textSize="@dimen/normalText" <!-- android:textSize="@dimen/normalText"-->
app:layout_constraintEnd_toEndOf="parent" <!-- app:layout_constraintEnd_toEndOf="parent"-->
app:layout_constraintStart_toStartOf="parent" <!-- app:layout_constraintStart_toStartOf="parent"-->
app:layout_constraintTop_toTopOf="parent" /> <!-- app:layout_constraintTop_toTopOf="parent" />-->
<com.google.android.material.switchmaterial.SwitchMaterial <!-- <com.google.android.material.switchmaterial.SwitchMaterial-->
android:id="@+id/callInfo" <!-- android:id="@+id/callInfo"-->
android:text="사용 여부" <!-- android:text="사용 여부"-->
android:layout_width="wrap_content" <!-- android:layout_width="wrap_content"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
app:layout_constraintEnd_toEndOf="parent" <!-- app:layout_constraintEnd_toEndOf="parent"-->
app:layout_constraintStart_toStartOf="parent" <!-- app:layout_constraintStart_toStartOf="parent"-->
app:layout_constraintTop_toBottomOf="@+id/phoneTitle" <!-- app:layout_constraintTop_toBottomOf="@+id/phoneTitle"-->
app:selectionRequired="true" <!-- app:selectionRequired="true"-->
app:singleSelection="true"/> <!-- app:singleSelection="true"/>-->
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/newsTitle" android:id="@+id/newsTitle"
@ -34,7 +34,7 @@
android:textSize="@dimen/normalText" android:textSize="@dimen/normalText"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/callInfo" /> app:layout_constraintTop_toTopOf="parent" />
<TableLayout <TableLayout
android:id="@+id/contentsTypes" android:id="@+id/contentsTypes"
@ -142,67 +142,67 @@
</TableRow> </TableRow>
</TableLayout> </TableLayout>
<com.google.android.material.textview.MaterialTextView <!-- <com.google.android.material.textview.MaterialTextView-->
android:id="@+id/smsTitle" <!-- android:id="@+id/smsTitle"-->
android:layout_width="wrap_content" <!-- android:layout_width="wrap_content"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
android:text="문자 내역" <!-- android:text="문자 내역"-->
android:textSize="@dimen/normalText" <!-- android:textSize="@dimen/normalText"-->
app:layout_constraintEnd_toEndOf="parent" <!-- app:layout_constraintEnd_toEndOf="parent"-->
app:layout_constraintStart_toStartOf="parent" <!-- app:layout_constraintStart_toStartOf="parent"-->
app:layout_constraintTop_toBottomOf="@id/contentsTypes" /> <!-- app:layout_constraintTop_toBottomOf="@id/contentsTypes" />-->
<com.google.android.material.switchmaterial.SwitchMaterial <!-- <com.google.android.material.switchmaterial.SwitchMaterial-->
android:id="@+id/smsInfos" <!-- android:id="@+id/smsInfos"-->
android:text="사용 여부" <!-- android:text="사용 여부"-->
android:layout_width="wrap_content" <!-- android:layout_width="wrap_content"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
app:layout_constraintEnd_toEndOf="parent" <!-- app:layout_constraintEnd_toEndOf="parent"-->
app:layout_constraintStart_toStartOf="parent" <!-- app:layout_constraintStart_toStartOf="parent"-->
app:layout_constraintTop_toBottomOf="@+id/smsTitle" <!-- app:layout_constraintTop_toBottomOf="@+id/smsTitle"-->
app:selectionRequired="true" <!-- app:selectionRequired="true"-->
app:singleSelection="true"/> <!-- app:singleSelection="true"/>-->
<com.google.android.material.textview.MaterialTextView <!-- <com.google.android.material.textview.MaterialTextView-->
android:id="@+id/notificationTitle" <!-- android:id="@+id/notificationTitle"-->
android:layout_width="wrap_content" <!-- android:layout_width="wrap_content"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
android:text="알림 내역" <!-- android:text="알림 내역"-->
android:textSize="@dimen/normalText" <!-- android:textSize="@dimen/normalText"-->
app:layout_constraintEnd_toEndOf="parent" <!-- app:layout_constraintEnd_toEndOf="parent"-->
app:layout_constraintStart_toStartOf="parent" <!-- app:layout_constraintStart_toStartOf="parent"-->
app:layout_constraintTop_toBottomOf="@id/smsInfos" /> <!-- app:layout_constraintTop_toBottomOf="@id/smsInfos" />-->
<com.google.android.material.switchmaterial.SwitchMaterial <!-- <com.google.android.material.switchmaterial.SwitchMaterial-->
android:id="@+id/notificationInfos" <!-- android:id="@+id/notificationInfos"-->
android:text="표시 여부" <!-- android:text="표시 여부"-->
android:layout_width="wrap_content" <!-- android:layout_width="wrap_content"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
app:layout_constraintEnd_toEndOf="parent" <!-- app:layout_constraintEnd_toEndOf="parent"-->
app:layout_constraintStart_toStartOf="parent" <!-- app:layout_constraintStart_toStartOf="parent"-->
app:layout_constraintTop_toBottomOf="@+id/notificationTitle" <!-- app:layout_constraintTop_toBottomOf="@+id/notificationTitle"-->
app:selectionRequired="true" <!-- app:selectionRequired="true"-->
app:singleSelection="true"/> <!-- app:singleSelection="true"/>-->
<com.google.android.material.textview.MaterialTextView <!-- <com.google.android.material.textview.MaterialTextView-->
android:id="@+id/nowPlayingTitle" <!-- android:id="@+id/nowPlayingTitle"-->
android:layout_width="wrap_content" <!-- android:layout_width="wrap_content"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
android:text="재생중인 곡" <!-- android:text="재생중인 곡"-->
android:textSize="@dimen/normalText" <!-- android:textSize="@dimen/normalText"-->
app:layout_constraintEnd_toEndOf="parent" <!-- app:layout_constraintEnd_toEndOf="parent"-->
app:layout_constraintStart_toStartOf="parent" <!-- app:layout_constraintStart_toStartOf="parent"-->
app:layout_constraintTop_toBottomOf="@id/notificationInfos" /> <!-- app:layout_constraintTop_toBottomOf="@id/notificationInfos" />-->
<com.google.android.material.switchmaterial.SwitchMaterial <!-- <com.google.android.material.switchmaterial.SwitchMaterial-->
android:id="@+id/nowPlaying" <!-- android:id="@+id/nowPlaying"-->
android:text="사용 여부" <!-- android:text="사용 여부"-->
android:layout_width="wrap_content" <!-- android:layout_width="wrap_content"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
app:layout_constraintEnd_toEndOf="parent" <!-- app:layout_constraintEnd_toEndOf="parent"-->
app:layout_constraintStart_toStartOf="parent" <!-- app:layout_constraintStart_toStartOf="parent"-->
app:layout_constraintTop_toBottomOf="@+id/nowPlayingTitle" <!-- app:layout_constraintTop_toBottomOf="@+id/nowPlayingTitle"-->
app:selectionRequired="true" <!-- app:selectionRequired="true"-->
app:singleSelection="true"/> <!-- app:singleSelection="true"/>-->
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -27,47 +27,47 @@
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textview.MaterialTextView <!-- <com.google.android.material.textview.MaterialTextView-->
android:id="@+id/dressTitle" <!-- android:id="@+id/dressTitle"-->
android:layout_width="wrap_content" <!-- android:layout_width="wrap_content"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
android:text="옷차림 보기" <!-- android:text="옷차림 보기"-->
android:textSize="@dimen/normalText" <!-- android:textSize="@dimen/normalText"-->
app:layout_constraintEnd_toEndOf="parent" <!-- app:layout_constraintEnd_toEndOf="parent"-->
app:layout_constraintStart_toStartOf="parent" <!-- app:layout_constraintStart_toStartOf="parent"-->
app:layout_constraintTop_toBottomOf="@id/owmInputLayout" /> <!-- app:layout_constraintTop_toBottomOf="@id/owmInputLayout" />-->
<com.google.android.material.switchmaterial.SwitchMaterial <!-- <com.google.android.material.switchmaterial.SwitchMaterial-->
android:id="@+id/dress" <!-- android:id="@+id/dress"-->
android:text="사용 여부" <!-- android:text="사용 여부"-->
android:layout_width="wrap_content" <!-- android:layout_width="wrap_content"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
app:layout_constraintEnd_toEndOf="parent" <!-- app:layout_constraintEnd_toEndOf="parent"-->
app:layout_constraintStart_toStartOf="parent" <!-- app:layout_constraintStart_toStartOf="parent"-->
app:layout_constraintTop_toBottomOf="@+id/dressTitle" <!-- app:layout_constraintTop_toBottomOf="@+id/dressTitle"-->
app:selectionRequired="true" <!-- app:selectionRequired="true"-->
app:singleSelection="true"/> <!-- app:singleSelection="true"/>-->
<com.google.android.material.textview.MaterialTextView <!-- <com.google.android.material.textview.MaterialTextView-->
android:id="@+id/weatherTitle" <!-- android:id="@+id/weatherTitle"-->
android:layout_width="wrap_content" <!-- android:layout_width="wrap_content"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
android:text="날씨 보기" <!-- android:text="날씨 보기"-->
android:textSize="@dimen/normalText" <!-- android:textSize="@dimen/normalText"-->
app:layout_constraintEnd_toEndOf="parent" <!-- app:layout_constraintEnd_toEndOf="parent"-->
app:layout_constraintStart_toStartOf="parent" <!-- app:layout_constraintStart_toStartOf="parent"-->
app:layout_constraintTop_toBottomOf="@id/dress" /> <!-- app:layout_constraintTop_toBottomOf="@id/dress" />-->
<com.google.android.material.switchmaterial.SwitchMaterial <!-- <com.google.android.material.switchmaterial.SwitchMaterial-->
android:id="@+id/weather" <!-- android:id="@+id/weather"-->
android:text="사용 여부" <!-- android:text="사용 여부"-->
android:layout_width="wrap_content" <!-- android:layout_width="wrap_content"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
app:layout_constraintEnd_toEndOf="parent" <!-- app:layout_constraintEnd_toEndOf="parent"-->
app:layout_constraintStart_toStartOf="parent" <!-- app:layout_constraintStart_toStartOf="parent"-->
app:layout_constraintTop_toBottomOf="@+id/weatherTitle" <!-- app:layout_constraintTop_toBottomOf="@+id/weatherTitle"-->
app:selectionRequired="true" <!-- app:selectionRequired="true"-->
app:singleSelection="true"/> <!-- app:singleSelection="true"/>-->
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -79,7 +79,7 @@
<string name="light_theme">Light</string> <string name="light_theme">Light</string>
<string name="list">List</string> <string name="list">List</string>
<string name="list_with_icon">List with Icon</string> <string name="list_with_icon">List with Icon</string>
<string name="lunar_settings">Lunar Settings</string> <string name="lunar_settings">Bum\'s Settings</string>
<string name="misc">Misc</string> <string name="misc">Misc</string>
<string name="misc_info_titles"> <string name="misc_info_titles">
Device Uptime\nSystem Active\nMemory Threshold\nBattery Temperature\nBattery Voltage Device Uptime\nSystem Active\nMemory Threshold\nBattery Temperature\nBattery Voltage