Added a few extra features

This commit is contained in:
HeCodes2Much
2024-05-08 16:17:54 +01:00
parent b44fdbf100
commit db922c3b4a
24 changed files with 1092 additions and 131 deletions

View File

@@ -4,8 +4,7 @@
<uses-permission android:name="android.permission.SET_WALLPAPER" />
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
<uses-permission
@@ -17,7 +16,6 @@
<queries>
<intent>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent>
</queries>
@@ -30,8 +28,7 @@
android:icon="@drawable/app_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/Theme.Launcher"
tools:targetApi="31">
android:theme="@style/Theme.Launcher">
<activity
android:name=".ui.activities.SettingsActivity"
android:exported="false" />

View File

@@ -3,7 +3,7 @@ package com.github.droidworksstudio.launcher
object Constants {
const val PACKAGE_NAME = "com.github.droidworksstudio.launcher"
const val PREFS_FILENAME = "droidworksstudioLauncher.pref"
const val PREFS_FILENAME = "EasyLauncher.pref"
const val FIRST_LAUNCH = "FIRST_LAUNCH"
const val SHOW_DATE = "SHOW_DATE"
const val SHOW_TIME = "SHOW_TIME"
@@ -18,9 +18,13 @@ object Constants {
const val DAILY_WORD_COLOR = "DAILY_WORD_COLOR"
const val APP_COLOR = "APP_COLOR"
const val BATTERY_TEXT_SIZE = "BATTERY_TEXT_SIZE"
const val DATE_TEXT_SIZE = "DATE_TEXT_SIZE"
const val TIME_TEXT_SIZE = "TIME_TEXT_SIZE"
const val APP_TEXT_SIZE = "APP_TEXT_SIZE"
const val DAILY_WORD_TEXT_SIZE = "DAILY_WORD_TEXT_SIZE"
const val APP_TEXT_PADDING = "APP_TEXT_PADDING"
const val SHOW_APP_ICON = "SHOW_APP_ICON"

View File

@@ -2,11 +2,13 @@ package com.github.droidworksstudio.launcher.helper
import android.annotation.SuppressLint
import android.app.SearchManager
import android.content.ActivityNotFoundException
import android.content.ComponentName
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.content.res.Configuration
import android.content.res.Resources
import android.net.Uri
import android.os.Build
import android.provider.AlarmClock
@@ -27,6 +29,8 @@ import com.github.droidworksstudio.launcher.R
import com.github.droidworksstudio.launcher.accessibility.MyAccessibilityService
import com.github.droidworksstudio.launcher.data.entities.AppInfo
import com.github.droidworksstudio.launcher.ui.activities.FakeHomeActivity
import java.util.Calendar
import java.util.Date
import javax.inject.Inject
class AppHelper @Inject constructor() {
@@ -92,11 +96,11 @@ class AppHelper @Inject constructor() {
fun dayNightMod(context: Context, view: View) {
when (context.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK) {
Configuration.UI_MODE_NIGHT_YES -> {
view.setBackgroundColor(context.resources.getColor(R.color.whiteTrans25))
view.setBackgroundColor(context.resources.getColor(R.color.blackTrans50, context.theme))
}
Configuration.UI_MODE_NIGHT_NO -> {
view.setBackgroundColor(context.resources.getColor(R.color.blackTrans50))
view.setBackgroundColor(context.resources.getColor(R.color.whiteTrans50, context.theme))
}
}
}
@@ -132,21 +136,53 @@ class AppHelper @Inject constructor() {
}
fun launchCalendar(context: Context) {
val intent = Intent(Intent.ACTION_VIEW)
intent.data = CalendarContract.CONTENT_URI
try {
context.startActivity(intent)
val cal: Calendar = Calendar.getInstance()
cal.time = Date()
val time = cal.time.time
val builder: Uri.Builder = CalendarContract.CONTENT_URI.buildUpon()
builder.appendPath("time")
builder.appendPath(time.toString())
context.startActivity(Intent(Intent.ACTION_VIEW, builder.build()))
} catch (e: Exception) {
val pickerIntent = Intent(Intent.ACTION_MAIN)
pickerIntent.addCategory(Intent.CATEGORY_APP_CALENDAR)
try {
context.startActivity(pickerIntent)
val intent = Intent(Intent.ACTION_MAIN)
intent.addCategory(Intent.CATEGORY_APP_CALENDAR)
context.startActivity(intent)
} catch (e: Exception) {
e.printStackTrace()
Log.d("openCalendar", e.toString())
}
}
}
fun openDigitalWellbeing(context: Context) {
try {
val packageName = "com.google.android.apps.wellbeing"
val className = "com.google.android.apps.wellbeing.settings.TopLevelSettingsActivity"
val intent = Intent()
intent.component = ComponentName(packageName, className)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
context.startActivity(intent)
} catch (e: ActivityNotFoundException) {
// Digital Wellbeing app is not installed or cannot be opened
// Handle this case as needed
showToast(context,"Digital Wellbeing is not available on this device.")
}
}
fun openBatteryManager(context: Context) {
try {
val intent = Intent(Intent.ACTION_POWER_USAGE_SUMMARY)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
context.startActivity(intent)
} catch (e: ActivityNotFoundException) {
// Battery manager settings cannot be opened
// Handle this case as needed
showToast(context, "Battery manager settings are not available on this device.")
}
}
fun unInstallApp(context: Context, appInfo: AppInfo) {
val intent = Intent(Intent.ACTION_DELETE)
intent.data = Uri.parse("package:${appInfo.packageName}")
@@ -215,6 +251,14 @@ class AppHelper @Inject constructor() {
}
}
fun View.showSoftKeyboard() {
if (this.requestFocus()) {
val inputMethodManager: InputMethodManager =
context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.showSoftInput(this, InputMethodManager.SHOW_IMPLICIT)
}
}
fun hideKeyboard(context: Context, view: View) {
val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(view.windowToken, 0)
@@ -224,13 +268,21 @@ class AppHelper @Inject constructor() {
val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(this.windowToken, 0)
}
fun wordOfTheDay(resources: Resources): String {
val dailyWordsArray = resources.getStringArray(R.array.settings_appearance_daily_word_default)
val dayOfYear = Calendar.getInstance().get(Calendar.DAY_OF_YEAR)
val wordIndex = (dayOfYear - 1) % dailyWordsArray.size // Subtracting 1 to align with array indexing
return dailyWordsArray[wordIndex]
}
fun enableAppAsAccessibilityService(context: Context, accessibilityState: Boolean) {
val myAccessibilityService = MyAccessibilityService.instance()
val state: String = if (myAccessibilityService != null) {
context.getString(R.string.accessibility_settings_disable)
}else{
} else {
context.getString(R.string.accessibility_settings_enable)
}
@@ -242,8 +294,10 @@ class AppHelper @Inject constructor() {
val intent = Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS)
context.startActivity(intent)
}
.setNegativeButton(android.R.string.cancel) { dialog, _ -> dialog.dismiss() }
.show()
builder.setNegativeButton(android.R.string.cancel) { dialog, _ ->
dialog.dismiss()
}
builder.show()
}
}

View File

@@ -31,7 +31,7 @@ class PreferenceHelper @Inject constructor(@ApplicationContext context: Context)
set(value) = prefs.edit().putBoolean(Constants.SHOW_BATTERY, value).apply()
var showDailyWord: Boolean
get() = prefs.getBoolean(Constants.SHOW_DAILY_WORD, true)
get() = prefs.getBoolean(Constants.SHOW_DAILY_WORD, false)
set(value) = prefs.edit().putBoolean(Constants.SHOW_DAILY_WORD, value).apply()
var dateColor: Int
@@ -45,6 +45,7 @@ class PreferenceHelper @Inject constructor(@ApplicationContext context: Context)
var batteryColor: Int
get() = prefs.getInt(Constants.BATTERY_COLOR, 0xFFFFFFFF.toInt())
set(value) = prefs.edit().putInt(Constants.BATTERY_COLOR, value).apply()
var dailyWordColor: Int
get() = prefs.getInt(Constants.DAILY_WORD_COLOR, 0xFFFFFFFF.toInt())
set(value) = prefs.edit().putInt(Constants.DAILY_WORD_COLOR, value).apply()
@@ -69,6 +70,10 @@ class PreferenceHelper @Inject constructor(@ApplicationContext context: Context)
get() = prefs.getInt(Constants.HOME_APP_ALIGNMENT, Gravity.START)
set(value) = prefs.edit().putInt(Constants.HOME_APP_ALIGNMENT, value).apply()
var homeAppPadding: Float
get() = prefs.getFloat(Constants.APP_TEXT_PADDING, 10f)
set(value) = prefs.edit().putFloat(Constants.APP_TEXT_PADDING, value).apply()
var homeDateAlignment: Int
get() = prefs.getInt(Constants.HOME_DATE_ALIGNMENT, Gravity.START)
set(value) = prefs.edit().putInt(Constants.HOME_DATE_ALIGNMENT, value).apply()
@@ -81,6 +86,10 @@ class PreferenceHelper @Inject constructor(@ApplicationContext context: Context)
get() = prefs.getInt(Constants.HOME_DAILY_WORD_ALIGNMENT, Gravity.START)
set(value) = prefs.edit().putInt(Constants.HOME_DAILY_WORD_ALIGNMENT,value).apply()
var batteryTextSize: Float
get() = prefs.getFloat(Constants.BATTERY_TEXT_SIZE, 12f)
set(value) = prefs.edit().putFloat(Constants.BATTERY_TEXT_SIZE, value).apply()
var dateTextSize: Float
get() = prefs.getFloat(Constants.DATE_TEXT_SIZE, 32f)
set(value) = prefs.edit().putFloat(Constants.DATE_TEXT_SIZE, value).apply()
@@ -93,6 +102,10 @@ class PreferenceHelper @Inject constructor(@ApplicationContext context: Context)
get() = prefs.getFloat(Constants.APP_TEXT_SIZE, 24f)
set(value) = prefs.edit().putFloat(Constants.APP_TEXT_SIZE, value).apply()
var dailyWordTextSize: Float
get() = prefs.getFloat(Constants.DAILY_WORD_TEXT_SIZE, 18f)
set(value) = prefs.edit().putFloat(Constants.DAILY_WORD_TEXT_SIZE, value).apply()
var tapLockScreen: Boolean
get() = prefs.getBoolean(Constants.DOUBLE_TAP_LOCK, false)
set(value) = prefs.edit().putBoolean(Constants.DOUBLE_TAP_LOCK, value).apply()

View File

@@ -10,6 +10,7 @@ import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavController
import androidx.navigation.findNavController
import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.fragment.findNavController
import androidx.navigation.ui.AppBarConfiguration
import androidx.navigation.ui.navigateUp
import com.github.droidworksstudio.launcher.R
@@ -145,6 +146,7 @@ class MainActivity : AppCompatActivity() {
}
private fun backToHomeScreen() {
navController = findNavController(R.id.nav_host_fragment_content_main)
if (navController.currentDestination?.id != R.id.HomeFragment)
navController.popBackStack(R.id.HomeFragment, false)
}

View File

@@ -70,6 +70,10 @@ class AlignmentBottomSheetDialogFragment(context: Context) : BottomSheetDialogFr
binding.selectAppTextSize.apply {
text = appHelper.gravityToString(preferenceHelper.homeAppAlignment)
}
binding.selectWordTextSize.apply {
text = appHelper.gravityToString(preferenceHelper.homeDailyWordAlignment)
}
}
private fun observeClickListener(){
@@ -87,6 +91,11 @@ class AlignmentBottomSheetDialogFragment(context: Context) : BottomSheetDialogFr
selectedAlignment = REQUEST_KEY_APP_ALIGNMENT
showListDialog(selectedAlignment)
}
binding.bottomAlignmentWordView.setOnClickListener {
selectedAlignment = REQUEST_KEY_WORD_ALIGNMENT
showListDialog(selectedAlignment)
}
}
@@ -127,6 +136,15 @@ class AlignmentBottomSheetDialogFragment(context: Context) : BottomSheetDialogFr
binding.selectDateTextSize
)
}
REQUEST_KEY_WORD_ALIGNMENT -> {
setAlignment(
selectedAlignment,
selectedItem,
gravity,
binding.selectWordTextSize
)
}
}
}
dialog.show()
@@ -157,6 +175,11 @@ class AlignmentBottomSheetDialogFragment(context: Context) : BottomSheetDialogFr
alignmentGetter = { preferenceHelper.homeDateAlignment }
}
REQUEST_KEY_WORD_ALIGNMENT -> {
alignmentPreference = { preferenceViewModel.setHomeDailyWordAppAlignment(it) }
alignmentGetter = { preferenceHelper.homeDailyWordAlignment }
}
else -> return
}
@@ -169,5 +192,6 @@ class AlignmentBottomSheetDialogFragment(context: Context) : BottomSheetDialogFr
private const val REQUEST_KEY_DATE_ALIGNMENT = "REQUEST_KEY_DATE_ALIGNMENT"
private const val REQUEST_KEY_TIME_ALIGNMENT = "REQUEST_KEY_TIME_ALIGNMENT"
private const val REQUEST_KEY_APP_ALIGNMENT = "REQUEST_KEY_APP_ALIGNMENT"
private const val REQUEST_KEY_WORD_ALIGNMENT = "REQUEST_KEY_WORD_ALIGNMENT"
}
}

View File

@@ -75,6 +75,11 @@ class ColorBottomSheetDialogFragment(context: Context) : BottomSheetDialogFragme
text = bottomDialogHelper.getColorText(preferenceHelper.batteryColor)
setTextColor(preferenceHelper.batteryColor)
}
binding.selectWordTextColor.apply {
text = bottomDialogHelper.getColorText(preferenceHelper.dailyWordColor)
setTextColor(preferenceHelper.dailyWordColor)
}
}
@@ -110,6 +115,14 @@ class ColorBottomSheetDialogFragment(context: Context) : BottomSheetDialogFragme
preferenceHelper.batteryColor
)
}
binding.bottomColorWordView.setOnClickListener {
showColorPickerDialog(
binding.selectWordTextColor,
REQUEST_KEY_DAILY_WORD_COLOR,
preferenceHelper.dailyWordColor
)
}
}
private fun showColorPickerDialog(view: View, requestCode: String, color: Int) {
@@ -123,7 +136,6 @@ class ColorBottomSheetDialogFragment(context: Context) : BottomSheetDialogFragme
ColorChooserDialog.registerListener(this, requestCode, { pickedColor ->
this.color = pickedColor
(view as TextView).apply {
//text = getColorText(pickedColor)
text = bottomDialogHelper.getColorText(pickedColor)
setTextColor(pickedColor)
}

View File

@@ -0,0 +1,75 @@
package com.github.droidworksstudio.launcher.ui.bottomsheetdialog
import android.content.Context
import android.content.DialogInterface
import android.os.Build
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.annotation.RequiresApi
import androidx.fragment.app.viewModels
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import com.github.droidworksstudio.launcher.databinding.BottomsheetdialogPaddingSettingsBinding
import com.github.droidworksstudio.launcher.helper.BottomDialogHelper
import com.github.droidworksstudio.launcher.helper.PreferenceHelper
import com.github.droidworksstudio.launcher.viewmodel.PreferenceViewModel
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
@AndroidEntryPoint
class PaddingBottomSheetDialogFragment(context: Context) : BottomSheetDialogFragment() {
private var _binding: BottomsheetdialogPaddingSettingsBinding? = null
private val binding get() = _binding!!
@Inject
lateinit var preferenceHelper: PreferenceHelper
@Inject
lateinit var bottomDialogHelper: BottomDialogHelper
private val preferenceViewModel: PreferenceViewModel by viewModels()
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View {
_binding = BottomsheetdialogPaddingSettingsBinding.inflate(inflater, container, false)
return binding.root
}
@RequiresApi(Build.VERSION_CODES.O)
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initView()
}
private fun initView(){
bottomDialogHelper.setupDialogStyle(dialog)
binding.selectAppPaddingSize.setText(preferenceHelper.homeAppPadding.toString())
}
private fun observeValueChange(){
val appValue = binding.selectAppPaddingSize.text.toString()
val appFloatValue = parseFloatValue(appValue, preferenceHelper.homeAppPadding)
dismiss()
preferenceViewModel.setAppPaddingSize(appFloatValue)
}
private fun parseFloatValue(text: String, defaultValue: Float): Float {
if (text.isEmpty() || text == "0") {
return defaultValue
}
return text.toFloat()
}
override fun onDismiss(dialog: DialogInterface) {
super.onDismiss(dialog)
observeValueChange()
}
}

View File

@@ -51,21 +51,25 @@ class TextBottomSheetDialogFragment(context: Context) : BottomSheetDialogFragmen
binding.selectDateTextSize.setText(preferenceHelper.dateTextSize.toString())
binding.selectTimeTextSize.setText(preferenceHelper.timeTextSize.toString())
binding.selectAppTextSize.setText(preferenceHelper.appTextSize.toString())
binding.selectBatteryTextSize.setText(preferenceHelper.batteryTextSize.toString())
}
private fun observeValueChange(){
val dateValue = binding.selectDateTextSize.text.toString()
val timeValue = binding.selectTimeTextSize.text.toString()
val appValue = binding.selectAppTextSize.text.toString()
val batteryValue = binding.selectBatteryTextSize.text.toString()
val dateFloatValue = parseFloatValue(dateValue, preferenceHelper.dateTextSize)
val timeFloatValue = parseFloatValue(timeValue, preferenceHelper.timeTextSize)
val appFloatValue = parseFloatValue(appValue, preferenceHelper.appTextSize)
val batteryFloatValue = parseFloatValue(batteryValue, preferenceHelper.batteryTextSize)
dismiss()
preferenceViewModel.setDateTextSize(dateFloatValue)
preferenceViewModel.setTimeTextSize(timeFloatValue)
preferenceViewModel.setAppTextSize(appFloatValue)
preferenceViewModel.setBatteryTextSize(batteryFloatValue)
}
private fun parseFloatValue(text: String, defaultValue: Float): Float {

View File

@@ -107,6 +107,7 @@ class HomeFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener,
binding.clock.setOnClickListener { appHelper.launchClock(context) }
binding.date.setOnClickListener { appHelper.launchCalendar(context) }
binding.battery.setOnClickListener { appHelper.openBatteryManager(context) }
}
private fun setupBattery() {
@@ -129,13 +130,12 @@ class HomeFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener,
val marginTopInPixels = 128
val params: ViewGroup.MarginLayoutParams = binding.appListAdapter.layoutParams as ViewGroup.MarginLayoutParams
params.topMargin = marginTopInPixels
binding.appListAdapter.layoutParams = params
binding.appListAdapter.apply {
adapter = homeAdapter
layoutParams = params
setHasFixedSize(false)
layoutManager = StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL)
//itemAnimator = false
isNestedScrollingEnabled = false
}
}
@@ -143,6 +143,7 @@ class HomeFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener,
private fun observeFavoriteAppList() {
viewModel.compareInstalledAppInfo()
@Suppress("DEPRECATION")
viewLifecycleOwner.lifecycleScope.launchWhenCreated {
viewModel.favoriteApps.flowOn(Dispatchers.Main).collect {
homeAdapter.submitList(it)
@@ -176,17 +177,21 @@ class HomeFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener,
)
}
preferenceViewModel.showBatteryLiveData.observe(viewLifecycleOwner){
//binding.battery.setTextColor(preferenceHelper.batteryColor)
appHelper.updateUI(binding.battery, Gravity.END,
appHelper.updateUI(binding.battery,
Gravity.END,
preferenceHelper.batteryColor,
preferenceHelper.timeTextSize,
preferenceHelper.batteryTextSize,
preferenceHelper.showBattery
)
}
preferenceViewModel.showDailyWordLiveData.observe(viewLifecycleOwner) {
// updateViewVisibility(binding.word, showDailyWord)
// appHelper.updateUI(binding.word, preferenceHelper.homeDailyWordAlignment, preferenceHelper.dailyWordColor, preferenceHelper.showDailyWord)
appHelper.updateUI(binding.word,
preferenceHelper.homeDailyWordAlignment,
preferenceHelper.dailyWordColor,
preferenceHelper.dailyWordTextSize,
preferenceHelper.showDailyWord
)
}
val is24HourFormat = DateFormat.is24HourFormat(requireContext())
val localLocale = Locale.getDefault()
@@ -199,6 +204,8 @@ class HomeFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener,
val datePattern = DateFormat.getBestDateTimePattern(localLocale, "eeeddMMM")
binding.date.format12Hour = datePattern
binding.date.format24Hour = datePattern
binding.word.text = appHelper.wordOfTheDay(resources)
}
private fun observeBioAuthCheck(appInfo: AppInfo) {
@@ -225,7 +232,11 @@ class HomeFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener,
@RequiresApi(Build.VERSION_CODES.P)
override fun onDoubleClick() {
super.onDoubleClick()
if(preferenceHelper.tapLockScreen) { MyAccessibilityService.instance()?.lockScreen() } else { return }
if(preferenceHelper.tapLockScreen) {
MyAccessibilityService.instance()?.lockScreen()
} else {
return
}
}
}
}

View File

@@ -1,5 +1,6 @@
package com.github.droidworksstudio.launcher.ui.home
import android.content.Context
import android.util.Log
import android.view.View
import androidx.appcompat.widget.LinearLayoutCompat
@@ -15,16 +16,17 @@ class HomeViewHolder @Inject constructor(
private val binding: ItemHomeBinding,
private val onAppClickedListener: OnItemClickedListener.OnAppsClickedListener,
private val onAppLongClickedListener: OnItemClickedListener.OnAppLongClickedListener,
private val preferenceHelper: PreferenceHelper
private val preferenceHelper: PreferenceHelper,
) : RecyclerView.ViewHolder(binding.root) {
fun bind(appInfo: AppInfo) {
binding.apply {
val layoutParams = LinearLayoutCompat.LayoutParams(
LinearLayoutCompat.LayoutParams.WRAP_CONTENT,
LinearLayoutCompat.LayoutParams.WRAP_CONTENT
).apply {
gravity = preferenceHelper.homeAppAlignment
topMargin = preferenceHelper.homeAppPadding.toInt()
bottomMargin = preferenceHelper.homeAppPadding.toInt()
}
appHomeName.layoutParams = layoutParams
@@ -32,6 +34,11 @@ class HomeViewHolder @Inject constructor(
appHomeName.setTextColor(preferenceHelper.appColor)
appHomeName.textSize = preferenceHelper.appTextSize
Log.d("Tag", "Home Adapter Color: ${preferenceHelper.appColor}")
val appIcon = binding.root.context.packageManager.getApplicationIcon(appInfo.packageName)
appHomeIcon.setImageDrawable(appIcon)
appHomeIcon.layoutParams.width = preferenceHelper.appTextSize.toInt() * 3
appHomeIcon.layoutParams.height = preferenceHelper.appTextSize.toInt() * 3
appHomeIcon.visibility = View.GONE
}

View File

@@ -1,5 +1,6 @@
package com.github.droidworksstudio.launcher.ui.settings
import android.annotation.SuppressLint
import android.content.Intent
import android.os.Bundle
import android.util.Log
@@ -17,6 +18,7 @@ import com.github.droidworksstudio.launcher.helper.PreferenceHelper
import com.github.droidworksstudio.launcher.listener.ScrollEventListener
import com.github.droidworksstudio.launcher.ui.bottomsheetdialog.AlignmentBottomSheetDialogFragment
import com.github.droidworksstudio.launcher.ui.bottomsheetdialog.ColorBottomSheetDialogFragment
import com.github.droidworksstudio.launcher.ui.bottomsheetdialog.PaddingBottomSheetDialogFragment
import com.github.droidworksstudio.launcher.ui.bottomsheetdialog.TextBottomSheetDialogFragment
import com.github.droidworksstudio.launcher.viewmodel.PreferenceViewModel
import dagger.hilt.android.AndroidEntryPoint
@@ -52,6 +54,7 @@ class SettingsFragment : Fragment(), ScrollEventListener {
// Called after the fragment view is created
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
navController = findNavController()
// Set according to the system theme mode
appHelper.dayNightMod(requireContext(), binding.nestScrollView)
super.onViewCreated(view, savedInstanceState)
@@ -60,8 +63,8 @@ class SettingsFragment : Fragment(), ScrollEventListener {
observeClickListener()
}
@SuppressLint("SetTextI18n")
private fun initializeInjectedDependencies() {
navController = findNavController()
binding.nestScrollView.scrollEventListener = this
// Set initial values and listeners for switches
@@ -69,6 +72,7 @@ class SettingsFragment : Fragment(), ScrollEventListener {
binding.timeSwitchCompat.isChecked = preferenceHelper.showTime
binding.dateSwitchCompat.isChecked = preferenceHelper.showDate
binding.batterySwitchCompat.isChecked = preferenceHelper.showBattery
binding.dailyWordSwitchCompat.isChecked = preferenceHelper.showDailyWord
binding.gesturesLockSwitchCompat1.isChecked = preferenceHelper.tapLockScreen
}
@@ -103,6 +107,11 @@ class SettingsFragment : Fragment(), ScrollEventListener {
bottomSheetFragment.show(parentFragmentManager, "BottomSheetDialog")
}
binding.selectAppearancePadding.setOnClickListener {
val bottomSheetFragment = PaddingBottomSheetDialogFragment(this.requireContext())
bottomSheetFragment.show(parentFragmentManager, "BottomSheetDialog")
}
binding.selectAppearanceColor.setOnClickListener {
val bottomSheetFragment = ColorBottomSheetDialogFragment(this.requireContext())
bottomSheetFragment.show(parentFragmentManager, "BottomSheetDialog")
@@ -121,9 +130,15 @@ class SettingsFragment : Fragment(), ScrollEventListener {
binding.dateSwitchCompat.setOnCheckedChangeListener { _, isChecked ->
preferenceViewModel.setShowDate(isChecked)
}
binding.batterySwitchCompat.setOnCheckedChangeListener { _, isChecked ->
preferenceViewModel.setShowBattery(isChecked)
}
binding.dailyWordSwitchCompat.setOnCheckedChangeListener { _, isChecked ->
preferenceViewModel.setShowDailyWord(isChecked)
}
binding.gesturesLockSwitchCompat1.setOnCheckedChangeListener { _, isChecked ->
appHelper.enableAppAsAccessibilityService(requireContext(), preferenceHelper.tapLockScreen)
preferenceViewModel.setDoubleTapLock(isChecked)

View File

@@ -20,6 +20,7 @@ class PreferenceViewModel @Inject constructor(
val homeAppAlignmentLiveData: MutableLiveData<Int> = MutableLiveData()
val homeDateAlignmentLiveData: MutableLiveData<Int> = MutableLiveData()
val homeTimeAlignmentLiveData: MutableLiveData<Int> = MutableLiveData()
val homeDailyWordAlignmentLiveData: MutableLiveData<Int> = MutableLiveData()
val dateColorLiveData: MutableLiveData<Int> = MutableLiveData()
val timeColorLiveData: MutableLiveData<Int> = MutableLiveData()
val batteryColorLiveData: MutableLiveData<Int> = MutableLiveData()
@@ -28,7 +29,9 @@ class PreferenceViewModel @Inject constructor(
val dateTextSizeLiveData: MutableLiveData<Float> = MutableLiveData()
val timeTextSizeLiveData: MutableLiveData<Float> = MutableLiveData()
val appTextSizeLiveData: MutableLiveData<Float> = MutableLiveData()
val batteryTextSizeLiveData: MutableLiveData<Float> = MutableLiveData()
val tapLockScreenLiveData: MutableLiveData<Boolean> = MutableLiveData()
val appPaddingSizeLiveData: MutableLiveData<Float> = MutableLiveData()
fun setFirstLaunch(firstLaunch: Boolean) {
preferenceHelper.firstLaunch = firstLaunch
@@ -100,6 +103,11 @@ class PreferenceViewModel @Inject constructor(
homeTimeAlignmentLiveData.postValue(preferenceHelper.homeTimeAlignment)
}
fun setHomeDailyWordAppAlignment(homeDailyWordAlignment: Int) {
preferenceHelper.homeDailyWordAlignment = homeDailyWordAlignment
homeDailyWordAlignmentLiveData.postValue(preferenceHelper.homeDailyWordAlignment)
}
fun setDateTextSize(dateTextSize: Float) {
preferenceHelper.dateTextSize = dateTextSize
dateTextSizeLiveData.postValue(preferenceHelper.dateTextSize)
@@ -115,6 +123,16 @@ class PreferenceViewModel @Inject constructor(
appTextSizeLiveData.postValue(preferenceHelper.appTextSize)
}
fun setBatteryTextSize(batteryTextSize: Float) {
preferenceHelper.batteryTextSize = batteryTextSize
batteryTextSizeLiveData.postValue(preferenceHelper.batteryTextSize)
}
fun setAppPaddingSize(appPaddingSize: Float) {
preferenceHelper.homeAppPadding = appPaddingSize
appPaddingSizeLiveData.postValue(preferenceHelper.homeAppPadding)
}
fun setDoubleTapLock(tapLockScreen: Boolean){
preferenceHelper.tapLockScreen = tapLockScreen
tapLockScreenLiveData.postValue((preferenceHelper.tapLockScreen))

View File

@@ -32,6 +32,7 @@
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/select_date_title"
style="@style/TextDefaultStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
@@ -42,8 +43,7 @@
android:textSize="@dimen/text_large"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded"
style="@style/TextDefaultStyle"/>
tools:ignore="RtlHardcoded,TouchTargetSizeCheck" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/select_date_text_size"
@@ -70,18 +70,18 @@
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/select_time_title"
style="@style/TextDefaultStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
android:gravity="left|center"
android:text="@string/appearance_bottom_dialog_desc_time"
android:background="@android:color/transparent"
android:textSize="@dimen/text_large"
android:gravity="left|center"
android:inputType="number"
android:text="@string/appearance_bottom_dialog_desc_time"
android:textSize="@dimen/text_large"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded"
style="@style/TextDefaultStyle"/>
tools:ignore="RtlHardcoded,TouchTargetSizeCheck" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/select_time_text_size"
@@ -106,18 +106,18 @@
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/select_app_title"
style="@style/TextDefaultStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
android:gravity="left|center"
android:text="@string/appearance_bottom_dialog_desc_app"
android:background="@android:color/transparent"
android:textSize="@dimen/text_large"
android:gravity="left|center"
android:inputType="number"
android:text="@string/appearance_bottom_dialog_desc_app"
android:textSize="@dimen/text_large"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded"
style="@style/TextDefaultStyle"/>
tools:ignore="RtlHardcoded,TouchTargetSizeCheck" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/select_app_text_size"
@@ -134,6 +134,42 @@
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/bottom_alignment_word_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/select_word_title"
style="@style/TextDefaultStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
android:background="@android:color/transparent"
android:gravity="left|center"
android:inputType="number"
android:text="@string/appearance_bottom_dialog_desc_word"
android:textSize="@dimen/text_large"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded,TouchTargetSizeCheck" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/select_word_text_size"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
android:gravity="left|center"
android:background="@android:color/transparent"
android:textSize="@dimen/text_large"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded"
style="@style/TextDefaultStyle"/>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -32,6 +32,7 @@
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/select_date_title"
style="@style/TextDefaultStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
@@ -42,8 +43,7 @@
android:textSize="@dimen/text_large"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded"
style="@style/TextDefaultStyle"/>
tools:ignore="RtlHardcoded,TouchTargetSizeCheck" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/select_date_text_color"
@@ -70,18 +70,18 @@
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/select_time_title"
style="@style/TextDefaultStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
android:gravity="left|center"
android:text="@string/appearance_bottom_dialog_desc_time"
android:background="@android:color/transparent"
android:textSize="@dimen/text_large"
android:gravity="left|center"
android:inputType="number"
android:text="@string/appearance_bottom_dialog_desc_time"
android:textSize="@dimen/text_large"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded"
style="@style/TextDefaultStyle"/>
tools:ignore="RtlHardcoded,TouchTargetSizeCheck" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/select_time_text_color"
@@ -106,18 +106,18 @@
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/select_app_title"
style="@style/TextDefaultStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
android:gravity="left|center"
android:text="@string/appearance_bottom_dialog_desc_app"
android:background="@android:color/transparent"
android:textSize="@dimen/text_large"
android:gravity="left|center"
android:inputType="number"
android:text="@string/appearance_bottom_dialog_desc_app"
android:textSize="@dimen/text_large"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded"
style="@style/TextDefaultStyle"/>
tools:ignore="RtlHardcoded,TouchTargetSizeCheck" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/select_app_text_color"
@@ -142,18 +142,18 @@
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/select_battery_title"
style="@style/TextDefaultStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
android:gravity="left|center"
android:text="@string/appearance_bottom_dialog_desc_battery"
android:background="@android:color/transparent"
android:textSize="@dimen/text_large"
android:gravity="left|center"
android:inputType="number"
android:text="@string/appearance_bottom_dialog_desc_battery"
android:textSize="@dimen/text_large"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded"
style="@style/TextDefaultStyle"/>
tools:ignore="RtlHardcoded,TouchTargetSizeCheck" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/select_battery_text_color"
@@ -170,6 +170,42 @@
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/bottom_color_word_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/select_word_title"
style="@style/TextDefaultStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
android:background="@android:color/transparent"
android:gravity="left|center"
android:inputType="number"
android:text="@string/appearance_bottom_dialog_desc_word"
android:textSize="@dimen/text_large"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded,TouchTargetSizeCheck" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/select_word_text_color"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
android:background="@android:color/transparent"
android:textSize="@dimen/text_large"
android:gravity="left|center"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
tools:ignore="RtlHardcoded"
style="@style/TextDefaultStyle"/>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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="wrap_content">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp"
android:orientation="vertical"
tools:ignore="MissingConstraints">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/textSizeSave"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
android:text="@string/settings_appearance_padding_title"
android:textAlignment="textStart"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
style="@style/TextDefaultStyle"/>
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/select_app_title"
style="@style/TextDefaultStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
android:background="@android:color/transparent"
android:gravity="left|center"
android:inputType="number"
android:text="@string/appearance_bottom_dialog_desc_app"
android:textSize="@dimen/text_large"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded,TouchTargetSizeCheck" />
<androidx.appcompat.widget.AppCompatEditText
android:id="@+id/select_app_padding_size"
style="@style/TextDefaultStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
android:background="@android:color/transparent"
android:gravity="left|center"
android:inputType="number"
android:textSize="@dimen/text_large"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded,SpeakableTextPresentCheck,TouchTargetSizeCheck,VisualLintTextFieldSize" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -32,6 +32,7 @@
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/select_date_title"
style="@style/TextDefaultStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
@@ -42,22 +43,21 @@
android:textSize="@dimen/text_large"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded"
style="@style/TextDefaultStyle"/>
tools:ignore="RtlHardcoded,TouchTargetSizeCheck" />
<androidx.appcompat.widget.AppCompatEditText
android:id="@+id/select_date_text_size"
style="@style/TextDefaultStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
android:gravity="left|center"
android:background="@android:color/transparent"
android:textSize="@dimen/text_large"
android:gravity="left|center"
android:inputType="number"
android:textSize="@dimen/text_large"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded"
style="@style/TextDefaultStyle"/>
tools:ignore="RtlHardcoded,SpeakableTextPresentCheck,TouchTargetSizeCheck,VisualLintTextFieldSize" />
</androidx.appcompat.widget.LinearLayoutCompat>
@@ -70,32 +70,32 @@
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/select_time_title"
style="@style/TextDefaultStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
android:gravity="left|center"
android:text="@string/appearance_bottom_dialog_desc_time"
android:background="@android:color/transparent"
android:textSize="@dimen/text_large"
android:gravity="left|center"
android:inputType="number"
android:text="@string/appearance_bottom_dialog_desc_time"
android:textSize="@dimen/text_large"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded"
style="@style/TextDefaultStyle"/>
tools:ignore="RtlHardcoded,TouchTargetSizeCheck" />
<androidx.appcompat.widget.AppCompatEditText
android:id="@+id/select_time_text_size"
style="@style/TextDefaultStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
android:gravity="left|center"
android:background="@android:color/transparent"
android:textSize="@dimen/text_large"
android:gravity="left|center"
android:inputType="number"
android:textSize="@dimen/text_large"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded"
style="@style/TextDefaultStyle"/>
tools:ignore="RtlHardcoded,SpeakableTextPresentCheck,TouchTargetSizeCheck,VisualLintTextFieldSize" />
</androidx.appcompat.widget.LinearLayoutCompat>
@@ -106,36 +106,70 @@
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/select_app_title"
style="@style/TextDefaultStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
android:gravity="left|center"
android:text="@string/appearance_bottom_dialog_desc_app"
android:background="@android:color/transparent"
android:textSize="@dimen/text_large"
android:gravity="left|center"
android:inputType="number"
android:text="@string/appearance_bottom_dialog_desc_app"
android:textSize="@dimen/text_large"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded"
style="@style/TextDefaultStyle"/>
tools:ignore="RtlHardcoded,TouchTargetSizeCheck" />
<androidx.appcompat.widget.AppCompatEditText
android:id="@+id/select_app_text_size"
style="@style/TextDefaultStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
android:gravity="left|center"
android:background="@android:color/transparent"
android:textSize="@dimen/text_large"
android:gravity="left|center"
android:inputType="number"
android:textSize="@dimen/text_large"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded"
style="@style/TextDefaultStyle"/>
tools:ignore="RtlHardcoded,SpeakableTextPresentCheck,TouchTargetSizeCheck,VisualLintTextFieldSize" />
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/select_battery_title"
style="@style/TextDefaultStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
android:background="@android:color/transparent"
android:gravity="left|center"
android:inputType="number"
android:text="@string/appearance_bottom_dialog_desc_battery"
android:textSize="@dimen/text_large"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded,TouchTargetSizeCheck" />
<androidx.appcompat.widget.AppCompatEditText
android:id="@+id/select_battery_text_size"
style="@style/TextDefaultStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="20dp"
android:background="@android:color/transparent"
android:gravity="left|center"
android:inputType="number"
android:textSize="@dimen/text_large"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded,SpeakableTextPresentCheck,TouchTargetSizeCheck,VisualLintTextFieldSize" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>

View File

@@ -37,11 +37,11 @@
</androidx.appcompat.widget.AppCompatEditText>
<!--androidx.appcompat.widget.SearchView
<androidx.appcompat.widget.SearchView
android:id="@+id/searchView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"/-->
android:visibility="gone"/>
</androidx.appcompat.widget.LinearLayoutCompat>

View File

@@ -43,7 +43,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:text="Battery"
android:text="@string/battery_level"
android:textSize="16sp"
style="@style/TextDefaultStyle"/>
@@ -52,7 +52,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:layout_marginVertical="16dp"
android:layout_marginVertical="8dp"
android:fontFamily="sans-serif-light"
android:format12Hour="h:mm"
android:textSize="48sp"
@@ -64,7 +64,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="8dp"
android:format12Hour="EEE, dd MMM"
android:format24Hour="EEE, dd MMM"
android:gravity="start"
@@ -73,15 +72,13 @@
tools:text="Thu, 30 Dec"
style="@style/TextDefaultStyle"/>
<!--TextView
<TextView
android:id="@+id/word"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/settings_appearance_daily_word_default"
android:textSize="32sp"
android:visibility="gone"
android:layout_marginBottom="42dp" /-->
android:visibility="gone" />
</androidx.appcompat.widget.LinearLayoutCompat>

View File

@@ -44,7 +44,6 @@
android:textSize="@dimen/text_large"
style="@style/TextDefaultStyle"/>
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -186,6 +185,38 @@
tools:ignore="TouchTargetSizeCheck" />
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp"
android:orientation="horizontal"
tools:ignore="MissingConstraints">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/dailyWord_text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="left|center"
android:text="@string/settings_appearance_daily_word"
android:textSize="@dimen/text_large"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded"
style="@style/TextDefaultStyle"/>
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/dailyWord_switchCompat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleX="0.7"
android:scaleY="0.8"
android:thumb="@drawable/shape_switch_thumb"
app:track="@drawable/selector_switch"
tools:ignore="TouchTargetSizeCheck" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
@@ -270,6 +301,28 @@
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/select_appearance_padding"
android:layout_width="match_parent"
android:layout_height="28dp"
android:layout_marginHorizontal="20dp"
android:layout_marginBottom="20dp"
tools:ignore="MissingConstraints,TextSizeCheck">
<androidx.appcompat.widget.AppCompatTextView
style="@style/TextDefaultStyle"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="left|center"
android:text="@string/settings_appearance_padding_title"
android:textSize="@dimen/text_large"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded" />
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/set_app_wallpaper"
android:layout_width="match_parent"
@@ -399,10 +452,10 @@
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:ignore="MissingConstraints">
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:ignore="MissingConstraints">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="match_parent"
@@ -411,6 +464,75 @@
android:text="@string/settings_title_others"
android:textSize="@dimen/text_super_large"
style="@style/TextDefaultStyle"/>
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginHorizontal="20dp"
android:layout_marginBottom="20dp"
android:layout_weight="4"
tools:ignore="MissingConstraints">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/rate_view"
android:text="@string/settings_title_others"
android:textSize="@dimen/text_large"
style="@style/TextDefaultStyle"
android:layout_weight="1"/>
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/share_view"
android:text="@string/settings_title_others"
android:textSize="@dimen/text_large"
style="@style/TextDefaultStyle"
android:layout_weight="1"/>
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/github_view"
android:text="@string/settings_title_others"
android:textSize="@dimen/text_large"
style="@style/TextDefaultStyle"
android:layout_weight="1"/>
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/feedback_view"
android:text="@string/settings_title_others"
android:textSize="@dimen/text_large"
style="@style/TextDefaultStyle"
android:layout_weight="1"/>
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginHorizontal="20dp"
android:layout_marginBottom="20dp"
android:layout_weight="4"
tools:ignore="MissingConstraints">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/version_info"
android:text="@string/settings_version"
android:textSize="@dimen/text_large"
style="@style/TextDefaultStyle"
android:layout_weight="1"/>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>

View File

@@ -21,25 +21,16 @@
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="16dp"
android:orientation="vertical">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/appHome_name"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_height="wrap_content"
android:textSize="24sp"
style="@style/TextDefaultStyle"
android:gravity="center"/>
<!--TextView
android:id="@+id/package_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="14sp"
android:textAlignment="center"
android:visibility="gone"/-->
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>

View File

@@ -20,6 +20,7 @@
<string name="bottom_dialog_app_uninstall">Uninstall App</string>
<string name="settings_name">Launcher Settings</string>
<string name="settings_version">Version</string>
<string name="settings_home">Home</string>
<string name="settings_title_home_display_preferences">Display</string>
@@ -36,11 +37,10 @@
<string name="settings_appearance_battery">Show Battery</string>
<string name="settings_appearance_daily_word">Show Daily Word</string>
<string name="settings_appearance_daily_word_default">Keep Going</string>
<string name="settings_appearance_color_title">Color</string>
<string name="settings_appearance_text_size_title">Size</string>
<string name="settings_appearance_color_title">Color</string>
<string name="settings_appearance_alignment_title">Alignment</string>
<string name="settings_appearance_padding_title">Padding</string>
<string name="settings_appearance_date_color">Select Date Color</string>
<string name="settings_appearance_time_color">Select Time Color</string>
@@ -54,9 +54,11 @@
<string name="appearance_bottom_dialog_text_size_title">Size</string>
<string name="appearance_bottom_dialog_text_color_title">Color</string>
<string name="appearance_bottom_dialog_alignment_title">Alignment</string>
<string name="appearance_bottom_dialog_padding_title">Padding</string>
<string name="appearance_bottom_dialog_desc_date">Date\u0020:\u0020</string>
<string name="appearance_bottom_dialog_desc_time">Time\u0020:\u0020 </string>
<string name="appearance_bottom_dialog_desc_app">App\u0020:\u0020</string>
<string name="appearance_bottom_dialog_desc_word">Word\u0020:\u0020</string>
<string name="appearance_bottom_dialog_desc_battery">Battery\u0020:\u0020 </string>
<string name="settings_appearance_wallpaper">Custom Wallpaper</string>
@@ -94,10 +96,461 @@
<!-- Small description inside Device Administrator Setting -->
<string name="receiver_desc">Allows to lock the screen</string>
<string name="admin_permission_message">Aster launcher promises to use lock screen permission responsibly.Aster launcher does not collect or share any data.</string>
<string-array name="settings_appearance_daily_word_default">
<item>Stay resilient!</item>
<item>You got this!</item>
<item>Shine bright!</item>
<item>Create destiny.</item>
<item>Embrace journey.</item>
<item>Strength within.</item>
<item>Keep pushing!</item>
<item>You\'re amazing!</item>
<item>Trust, never give.</item>
<item>Limitless potential.</item>
<item>Progress over perfection.</item>
<item>Challenges = growth.</item>
<item>Worthy of success.</item>
<item>Chase your dreams.</item>
<item>Overcome all!</item>
<item>Determination wins.</item>
<item>Every step counts.</item>
<item>Stay positive!</item>
<item>Resilience rocks.</item>
<item>Strength in you.</item>
<item>Celebrate progress.</item>
<item>Hard work pays.</item>
<item>Trust, have faith.</item>
<item>Unique journey.</item>
<item>Eyes on prize.</item>
<item>Achieve anything!</item>
<item>Take bold steps.</item>
<item>Passion fuels you.</item>
<item>Focus on goals.</item>
<item>Persevere, win.</item>
<item>Self-belief key.</item>
<item>Deserving of good.</item>
<item>Reach for dreams.</item>
<item>Brave, strong, smart.</item>
<item>Positive attitude.</item>
<item>Trust the journey.</item>
<item>Unwavering determination.</item>
<item>Setbacks = comeback.</item>
<item>Turn dreams reality.</item>
<item>Commit to goals.</item>
<item>Strength, no bounds.</item>
<item>Head up, breakthrough.</item>
<item>Your potential shines.</item>
<item>Dreams within reach.</item>
<item>You\'re unstoppable!</item>
<item>Believe, achieve.</item>
<item>Push past limits.</item>
<item>Perseverance pays.</item>
<item>Stay fearless!</item>
<item>Rise above challenges.</item>
<item>Keep dreaming big.</item>
<item>Live with purpose.</item>
<item>Focus on the good.</item>
<item>Strength from within.</item>
<item>Believe in magic.</item>
<item>Smile, you\'ve got this.</item>
<item>Never lose hope.</item>
<item>Embrace every moment.</item>
<item>Be your own hero.</item>
<item>You\'re enough.</item>
<item>Conquer your fears.</item>
<item>Seize the day!</item>
<item>Love yourself first.</item>
<item>Stay positive, always.</item>
<item>You\'re a warrior.</item>
<item>Believe in yourself.</item>
<item>Embrace possibilities.</item>
<item>Live with passion.</item>
<item>Keep moving forward.</item>
<item>You\'re unstoppable!</item>
<item>Stay true to you.</item>
<item>Live boldly.</item>
<item>Keep the faith.</item>
<item>Strength in adversity.</item>
<item>Every day, grow.</item>
<item>Perseverance, victory.</item>
<item>Chase your passions.</item>
<item>Find joy in journey.</item>
<item>Take risks, thrive.</item>
<item>Stay strong, brave.</item>
<item>Trust inner wisdom.</item>
<item>Keep shining bright.</item>
<item>Dream, believe, achieve.</item>
<item>Be unstoppable.</item>
<item>Own your greatness.</item>
<item>Embrace the unknown.</item>
<item>Keep pushing forward.</item>
<item>Trust in yourself.</item>
<item>Spread kindness always.</item>
<item>Believe in your dreams.</item>
<item>Stay focused, determined.</item>
<item>Embrace your journey.</item>
<item>Keep your head up.</item>
<item>Never give up hope.</item>
<item>Strength from within.</item>
<item>Stay resilient, strong.</item>
<item>You\'re unstoppable!</item>
<item>Embrace the challenge.</item>
<item>Keep the fire burning.</item>
<item>Focus on what\'s possible.</item>
<item>Dream big, work hard.</item>
<item>Keep your eyes on prize.</item>
<item>Trust the process.</item>
<item>Stay true to yourself.</item>
<item>Believe, achieve, succeed.</item>
<item>Stay inspired always.</item>
<item>Be fearless in pursuit.</item>
<item>Stay grounded, rise.</item>
<item>Find strength in struggle.</item>
<item>Embrace every challenge.</item>
<item>Stay bold, stay bright.</item>
<item>You\'re capable of greatness.</item>
<item>Trust your journey.</item>
<item>Keep fighting, keep rising.</item>
<item>Believe in the impossible.</item>
<item>Stay resilient, never give.</item>
<item>You\'re stronger than you know.</item>
<item>Live with passion and purpose.</item>
<item>Find joy in every journey.</item>
<item>Dream, believe, achieve!</item>
<item>Stay positive, stay strong.</item>
<item>Every day is a new chance.</item>
<item>Embrace every opportunity.</item>
<item>Keep pushing past limits.</item>
<item>Trust your inner strength.</item>
<item>You\'re destined for greatness.</item>
<item>Believe in your dreams!</item>
<item>Stay determined, succeed.</item>
<item>Keep moving towards your goals.</item>
<item>Chase your dreams relentlessly.</item>
<item>Strength comes from within.</item>
<item>Stay focused on your goals.</item>
<item>You\'re capable of anything.</item>
<item>Stay fearless, stay strong.</item>
<item>Believe, achieve, succeed!</item>
<item>Trust in your journey.</item>
<item>Stay resilient, rise above.</item>
<item>You have the power within you.</item>
<item>Dream big, work hard, achieve.</item>
<item>Stay focused, stay strong.</item>
<item>You\'re stronger than you think!</item>
<item>Believe in yourself, always.</item>
<item>Stay determined, stay strong.</item>
<item>Embrace every opportunity.</item>
<item>You\'re capable of greatness!</item>
<item>Stay true to yourself.</item>
<item>Trust in your journey.</item>
<item>Keep pushing forward.</item>
<item>Dream, believe, achieve!</item>
<item>Stay fearless, stay strong.</item>
<item>You\'re destined for greatness!</item>
<item>Believe in your dreams!</item>
<item>Stay determined, succeed.</item>
<item>Keep moving towards your goals.</item>
<item>Chase your dreams relentlessly.</item>
<item>Strength comes from within.</item>
<item>Stay focused on your goals.</item>
<item>You\'re capable of anything.</item>
<item>Stay fearless, stay strong.</item>
<item>Believe, achieve, succeed!</item>
<item>Trust in your journey.</item>
<item>Stay resilient, rise above.</item>
<item>You have the power within you.</item>
<item>Dream big, work hard, achieve.</item>
<item>Stay focused, stay strong.</item>
<item>You\'re stronger than you think!</item>
<item>Believe in yourself, always.</item>
<item>Stay determined, stay strong.</item>
<item>Embrace every opportunity.</item>
<item>You\'re capable of greatness!</item>
<item>Stay true to yourself.</item>
<item>Trust in your journey.</item>
<item>Keep pushing forward.</item>
<item>Dream, believe, achieve!</item>
<item>Stay fearless, stay strong.</item>
<item>You\'re destined for greatness!</item>
<item>Believe in your dreams!</item>
<item>Stay determined, succeed.</item>
<item>Keep moving towards your goals.</item>
<item>Chase your dreams relentlessly.</item>
<item>Strength comes from within.</item>
<item>Stay focused on your goals.</item>
<item>You\'re capable of anything.</item>
<item>Stay fearless, stay strong.</item>
<item>Believe, achieve, succeed!</item>
<item>Trust in your journey.</item>
<item>Stay resilient, rise above.</item>
<item>You have the power within you.</item>
<item>Dream big, work hard, achieve.</item>
<item>Stay focused, stay strong.</item>
<item>You\'re stronger than you think!</item>
<item>Believe in yourself, always.</item>
<item>Stay determined, stay strong.</item>
<item>Embrace every opportunity.</item>
<item>You\'re capable of greatness!</item>
<item>Stay true to yourself.</item>
<item>Trust in your journey.</item>
<item>Keep pushing forward.</item>
<item>Dream, believe, achieve!</item>
<item>Stay fearless, stay strong.</item>
<item>You\'re destined for greatness!</item>
<item>Believe in your dreams!</item>
<item>Stay determined, succeed.</item>
<item>Keep moving towards your goals.</item>
<item>Chase your dreams relentlessly.</item>
<item>Strength comes from within.</item>
<item>Stay focused on your goals.</item>
<item>You\'re capable of anything.</item>
<item>Stay fearless, stay strong.</item>
<item>Believe, achieve, succeed!</item>
<item>Trust in your journey.</item>
<item>Stay resilient, rise above.</item>
<item>You have the power within you.</item>
<item>Dream big, work hard, achieve.</item>
<item>Stay focused, stay strong.</item>
<item>You\'re stronger than you think!</item>
<item>Believe in yourself, always.</item>
<item>Stay determined, stay strong.</item>
<item>Embrace every opportunity.</item>
<item>You\'re capable of greatness!</item>
<item>Stay true to yourself.</item>
<item>Trust in your journey.</item>
<item>Keep pushing forward.</item>
<item>Dream, believe, achieve!</item>
<item>Stay fearless, stay strong.</item>
<item>You\'re destined for greatness!</item>
<item>Believe in your dreams!</item>
<item>Stay determined, succeed.</item>
<item>Keep moving towards your goals.</item>
<item>Chase your dreams relentlessly.</item>
<item>Strength comes from within.</item>
<item>Stay focused on your goals.</item>
<item>You\'re capable of anything.</item>
<item>Stay fearless, stay strong.</item>
<item>Believe, achieve, succeed!</item>
<item>Trust in your journey.</item>
<item>Stay resilient, rise above.</item>
<item>You have the power within you.</item>
<item>Dream big, work hard, achieve.</item>
<item>Stay focused, stay strong.</item>
<item>You\'re stronger than you think!</item>
<item>Believe in yourself, always.</item>
<item>Stay determined, stay strong.</item>
<item>Embrace every opportunity.</item>
<item>You\'re capable of greatness!</item>
<item>Stay true to yourself.</item>
<item>Trust in your journey.</item>
<item>Keep pushing forward.</item>
<item>Dream, believe, achieve!</item>
<item>Stay fearless, stay strong.</item>
<item>You\'re destined for greatness!</item>
<item>Believe in your dreams!</item>
<item>Stay determined, succeed.</item>
<item>Keep moving towards your goals.</item>
<item>Chase your dreams relentlessly.</item>
<item>Strength comes from within.</item>
<item>Stay focused on your goals.</item>
<item>You\'re capable of anything.</item>
<item>Stay fearless, stay strong.</item>
<item>Believe, achieve, succeed!</item>
<item>Trust in your journey.</item>
<item>Stay resilient, rise above.</item>
<item>You have the power within you.</item>
<item>Dream big, work hard, achieve.</item>
<item>Stay focused, stay strong.</item>
<item>You\'re stronger than you think!</item>
<item>Believe in yourself, always.</item>
<item>Stay determined, stay strong.</item>
<item>Embrace every opportunity.</item>
<item>You\'re capable of greatness!</item>
<item>Stay true to yourself.</item>
<item>Trust in your journey.</item>
<item>Keep pushing forward.</item>
<item>Dream, believe, achieve!</item>
<item>Stay fearless, stay strong.</item>
<item>You\'re destined for greatness!</item>
<item>Believe in your dreams!</item>
<item>Stay determined, succeed.</item>
<item>Keep moving towards your goals.</item>
<item>Chase your dreams relentlessly.</item>
<item>Strength comes from within.</item>
<item>Stay focused on your goals.</item>
<item>You\'re capable of anything.</item>
<item>Stay fearless, stay strong.</item>
<item>Believe, achieve, succeed!</item>
<item>Trust in your journey.</item>
<item>Stay resilient, rise above.</item>
<item>You have the power within you.</item>
<item>Dream big, work hard, achieve.</item>
<item>Stay focused, stay strong.</item>
<item>You\'re stronger than you think!</item>
<item>Believe in yourself, always.</item>
<item>Stay determined, stay strong.</item>
<item>Embrace every opportunity.</item>
<item>You\'re capable of greatness!</item>
<item>Stay true to yourself.</item>
<item>Trust in your journey.</item>
<item>Keep pushing forward.</item>
<item>Dream, believe, achieve!</item>
<item>Stay fearless, stay strong.</item>
<item>You\'re destined for greatness!</item>
<item>Believe in your dreams!</item>
<item>Stay determined, succeed.</item>
<item>Keep moving towards your goals.</item>
<item>Chase your dreams relentlessly.</item>
<item>Strength comes from within.</item>
<item>Stay focused on your goals.</item>
<item>You\'re capable of anything.</item>
<item>Stay fearless, stay strong.</item>
<item>Believe, achieve, succeed!</item>
<item>Trust in your journey.</item>
<item>Stay resilient, rise above.</item>
<item>You have the power within you.</item>
<item>Dream big, work hard, achieve.</item>
<item>Stay focused, stay strong.</item>
<item>You\'re stronger than you think!</item>
<item>Believe in yourself, always.</item>
<item>Stay determined, stay strong.</item>
<item>Embrace every opportunity.</item>
<item>You\'re capable of greatness!</item>
<item>Stay true to yourself.</item>
<item>Trust in your journey.</item>
<item>Keep pushing forward.</item>
<item>Dream, believe, achieve!</item>
<item>Stay fearless, stay strong.</item>
<item>You\'re destined for greatness!</item>
<item>Believe in your dreams!</item>
<item>Stay determined, succeed.</item>
<item>Keep moving towards your goals.</item>
<item>Chase your dreams relentlessly.</item>
<item>Strength comes from within.</item>
<item>Stay focused on your goals.</item>
<item>You\'re capable of anything.</item>
<item>Stay fearless, stay strong.</item>
<item>Believe, achieve, succeed!</item>
<item>Trust in your journey.</item>
<item>Stay resilient, rise above.</item>
<item>You have the power within you.</item>
<item>Dream big, work hard, achieve.</item>
<item>Stay focused, stay strong.</item>
<item>You\'re stronger than you think!</item>
<item>Believe in yourself, always.</item>
<item>Stay determined, stay strong.</item>
<item>Embrace every opportunity.</item>
<item>You\'re capable of greatness!</item>
<item>Stay true to yourself.</item>
<item>Trust in your journey.</item>
<item>Keep pushing forward.</item>
<item>Dream, believe, achieve!</item>
<item>Stay fearless, stay strong.</item>
<item>You\'re destined for greatness!</item>
<item>Believe in your dreams!</item>
<item>Stay determined, succeed.</item>
<item>Keep moving towards your goals.</item>
<item>Chase your dreams relentlessly.</item>
<item>Strength comes from within.</item>
<item>Stay focused on your goals.</item>
<item>You\'re capable of anything.</item>
<item>Stay fearless, stay strong.</item>
<item>Believe, achieve, succeed!</item>
<item>Trust in your journey.</item>
<item>Stay resilient, rise above.</item>
<item>You have the power within you.</item>
<item>Dream big, work hard, achieve.</item>
<item>Stay focused, stay strong.</item>
<item>You\'re stronger than you think!</item>
<item>Believe in yourself, always.</item>
<item>Stay determined, stay strong.</item>
<item>Embrace every opportunity.</item>
<item>You\'re capable of greatness!</item>
<item>Stay true to yourself.</item>
<item>Trust in your journey.</item>
<item>Keep pushing forward.</item>
<item>Dream, believe, achieve!</item>
<item>Stay fearless, stay strong.</item>
<item>You\'re destined for greatness!</item>
<item>Believe in your dreams!</item>
<item>Stay determined, succeed.</item>
<item>Keep moving towards your goals.</item>
<item>Chase your dreams relentlessly.</item>
<item>Strength comes from within.</item>
<item>Stay focused on your goals.</item>
<item>You\'re capable of anything.</item>
<item>Stay fearless, stay strong.</item>
<item>Believe, achieve, succeed!</item>
<item>Trust in your journey.</item>
<item>Stay resilient, rise above.</item>
<item>You have the power within you.</item>
<item>Dream big, work hard, achieve.</item>
<item>Stay focused, stay strong.</item>
<item>You\'re stronger than you think!</item>
<item>Believe in yourself, always.</item>
<item>Stay determined, stay strong.</item>
<item>Embrace every opportunity.</item>
<item>You\'re capable of greatness!</item>
<item>Stay true to yourself.</item>
<item>Trust in your journey.</item>
<item>Keep pushing forward.</item>
<item>Dream, believe, achieve!</item>
<item>Stay fearless, stay strong.</item>
<item>You\'re destined for greatness!</item>
<item>Believe in your dreams!</item>
<item>Stay determined, succeed.</item>
<item>Keep moving towards your goals.</item>
<item>Chase your dreams relentlessly.</item>
<item>Strength comes from within.</item>
<item>Stay focused on your goals.</item>
<item>You\'re capable of anything.</item>
<item>Stay fearless, stay strong.</item>
<item>Believe, achieve, succeed!</item>
<item>Trust in your journey.</item>
<item>Stay resilient, rise above.</item>
<item>You have the power within you.</item>
<item>Dream big, work hard, achieve.</item>
<item>Stay focused, stay strong.</item>
<item>You\'re stronger than you think!</item>
<item>Believe in yourself, always.</item>
<item>Stay determined, stay strong.</item>
<item>Embrace every opportunity.</item>
<item>You\'re capable of greatness!</item>
<item>Stay true to yourself.</item>
<item>Trust in your journey.</item>
<item>Keep pushing forward.</item>
<item>Dream, believe, achieve!</item>
<item>Stay fearless, stay strong.</item>
<item>You\'re destined for greatness!</item>
<item>Believe in your dreams!</item>
<item>Stay determined, succeed.</item>
<item>Keep moving towards your goals.</item>
<item>Chase your dreams relentlessly.</item>
<item>Strength comes from within.</item>
<item>Stay focused on your goals.</item>
<item>You\'re capable of anything.</item>
<item>Stay fearless, stay strong.</item>
<item>Believe, achieve, succeed!</item>
<item>Trust in your journey.</item>
<item>Stay resilient, rise above.</item>
<item>You have the power within you.</item>
<item>Dream big, work hard, achieve.</item>
<item>Stay focused, stay strong.</item>
<item>You\'re stronger than you think!</item>
<item>Believe in yourself, always.</item>
<item>Stay determined, stay strong.</item>
<item>Embrace every opportunity.</item>
<item>You\'re capable of greatness!</item>
<item>Stay true to yourself.</item>
<item>Trust in your journey.</item>
<item>Keep pushing forward.</item>
<item>Dream, believe, achieve!</item>
</string-array>
<string-array name="alignment_options">
<item>Left</item>
<item>Center</item>
<item>Right</item>
</string-array>
</resources>