xml refactoring and added a privacy policy

This commit is contained in:
ottoptj 2024-08-10 20:33:57 +03:00
commit 8ee1d67eb3
34 changed files with 172 additions and 179 deletions

26
PrivacyPolicy.md Normal file
View file

@ -0,0 +1,26 @@
# Privacy Policy
## Collected data
The application stores data related to its preferences.
For example, if you choose to align the clock to the center, this preference is saved so that the clock does not get reset to the left when the application is launched the next time.
By default, no more data is collected, but certain options may result in further data being collected.
### Weather
If you enable weather, the application stores the coordinates that you set for the location. If you have set a location manually, those are the coordinates of that location. If you use GPS location, your GPS coordinates are stored.
### Accessibility service
If you enable the Double Tap to Lock Screen preference, the application needs its accessibility service to be enabled. This means giving it "full control of your device" as described by the notification by Android. This permission is exclusively used to lock your phone's screen. The application does not collect any data using the service.
## Data sent to the developer
No data is sent to the developer.
## Data sent to third parties
By default, the application does not connect to the internet or send any data anywhere.
However, enabling the weather option requires certain data to be sent to Open-Meteo for purposes of retrieving locations and weather. This data includes the URL used for the request. Open-Meteo may also store your IP address.
The URL includes the coordinates of your weather location. If the location is manually set, the coordinates are of the selected location. If GPS location is used, the coordinates are the set GPS coordinates.
For information on how this data is handled, refer to [Open-Meteo](https://open-meteo.com/en/terms).

View file

@ -54,7 +54,7 @@
</intent-filter> </intent-filter>
<meta-data <meta-data
android:name="android.screenLockService" android:name="android.accessibilityservice"
android:resource="@xml/screenlock_service_config" /> android:resource="@xml/screenlock_service_config" />
</service> </service>
</application> </application>

View file

@ -67,7 +67,7 @@ class AppActionMenu {
textView.visibility = View.INVISIBLE textView.visibility = View.INVISIBLE
animations.fadeViewIn(editLayout) animations.fadeViewIn(editLayout)
animations.fadeViewOut(actionMenu, 100) animations.fadeViewOut(actionMenu, 100)
val editText = editLayout.findViewById<EditText>(R.id.app_name_edit) val editText = editLayout.findViewById<EditText>(R.id.appNameEdit)
val resetButton = editLayout.findViewById<AppCompatButton>(R.id.reset) val resetButton = editLayout.findViewById<AppCompatButton>(R.id.reset)
val app = Pair(mainActivity!!, Pair(userHandle, workProfile)) val app = Pair(mainActivity!!, Pair(userHandle, workProfile))

View file

@ -26,7 +26,7 @@ class AppMenuAdapter(
private val itemClickListener: OnItemClickListener, private val itemClickListener: OnItemClickListener,
private val shortcutListener: OnShortcutListener, private val shortcutListener: OnShortcutListener,
private val itemLongClickListener: OnItemLongClickListener, private val itemLongClickListener: OnItemLongClickListener,
private val launcherApps: LauncherApps launcherApps: LauncherApps
) : ) :
RecyclerView.Adapter<AppMenuAdapter.AppViewHolder>() { RecyclerView.Adapter<AppMenuAdapter.AppViewHolder>() {
@ -57,11 +57,11 @@ class AppMenuAdapter(
} }
inner class AppViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { inner class AppViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
private val listItem: FrameLayout = itemView.findViewById(R.id.list_item) private val listItem: FrameLayout = itemView.findViewById(R.id.listItem)
val textView: TextView = listItem.findViewById(R.id.app_name) val textView: TextView = listItem.findViewById(R.id.appName)
val actionMenuLayout: LinearLayout = listItem.findViewById(R.id.action_menu) val actionMenuLayout: LinearLayout = listItem.findViewById(R.id.actionMenu)
private val editView: LinearLayout = listItem.findViewById(R.id.rename_view) private val editView: LinearLayout = listItem.findViewById(R.id.renameView)
val editText: TextInputEditText = editView.findViewById(R.id.app_name_edit) val editText: TextInputEditText = editView.findViewById(R.id.appNameEdit)
init { init {
actionMenuLayout.visibility = View.INVISIBLE actionMenuLayout.visibility = View.INVISIBLE

View file

@ -6,7 +6,6 @@ import android.content.pm.LauncherActivityInfo
import android.content.pm.LauncherApps import android.content.pm.LauncherApps
import android.os.UserHandle import android.os.UserHandle
import android.widget.Toast import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext

View file

@ -27,8 +27,8 @@ class GestureAppsAdapter(
} }
inner class AppViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { inner class AppViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
private val listItem: FrameLayout = itemView.findViewById(R.id.list_item) private val listItem: FrameLayout = itemView.findViewById(R.id.listItem)
val textView: TextView = listItem.findViewById(R.id.app_name) val textView: TextView = listItem.findViewById(R.id.appName)
init { init {
textView.setOnClickListener { textView.setOnClickListener {

View file

@ -14,7 +14,6 @@ import android.view.ViewGroup
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.setFragmentResult import androidx.fragment.app.setFragmentResult
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.preference.PreferenceManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputEditText
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
@ -57,7 +56,7 @@ class GestureAppsFragment : Fragment(), GestureAppsAdapter.OnItemClickListener {
this@GestureAppsFragment this@GestureAppsFragment
) )
} }
val recyclerView = view.findViewById<RecyclerView>(R.id.gesture_app_recycler) val recyclerView = view.findViewById<RecyclerView>(R.id.gestureAppRecycler)
val appMenuEdgeFactory = AppMenuEdgeFactory(requireActivity()) val appMenuEdgeFactory = AppMenuEdgeFactory(requireActivity())
val uiUtils = UIUtils(requireContext()) val uiUtils = UIUtils(requireContext())
@ -68,7 +67,7 @@ class GestureAppsFragment : Fragment(), GestureAppsAdapter.OnItemClickListener {
val searchView = view.findViewById<TextInputEditText>(R.id.gestureAppSearch) val searchView = view.findViewById<TextInputEditText>(R.id.gestureAppSearch)
uiUtils.setMenuTitleAlignment(view.findViewById(R.id.gesture_menutitle)) uiUtils.setMenuTitleAlignment(view.findViewById(R.id.gestureMenuTitle))
uiUtils.setSearchAlignment(searchView) uiUtils.setSearchAlignment(searchView)
uiUtils.setSearchSize(searchView) uiUtils.setSearchSize(searchView)

View file

@ -27,8 +27,8 @@ class HiddenAppsAdapter(
} }
inner class AppViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { inner class AppViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
private val listItem: FrameLayout = itemView.findViewById(R.id.list_item) private val listItem: FrameLayout = itemView.findViewById(R.id.listItem)
val textView: TextView = listItem.findViewById(R.id.app_name) val textView: TextView = listItem.findViewById(R.id.appName)
init { init {

View file

@ -13,7 +13,6 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.view.inputmethod.InputMethodManager import android.view.inputmethod.InputMethodManager
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.preference.PreferenceManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputEditText
@ -41,7 +40,7 @@ class HiddenAppsFragment : Fragment(), HiddenAppsAdapter.OnItemClickListener {
appUtils = AppUtils(requireContext(), launcherApps) appUtils = AppUtils(requireContext(), launcherApps)
sharedPreferenceManager = SharedPreferenceManager(requireContext()) sharedPreferenceManager = SharedPreferenceManager(requireContext())
val recyclerView = view.findViewById<RecyclerView>(R.id.hidden_app_recycler) val recyclerView = view.findViewById<RecyclerView>(R.id.hiddenAppRecycler)
val appMenuEdgeFactory = AppMenuEdgeFactory(requireActivity()) val appMenuEdgeFactory = AppMenuEdgeFactory(requireActivity())
adapter = HiddenAppsAdapter(requireContext(), appUtils.getHiddenApps().toMutableList(), this) adapter = HiddenAppsAdapter(requireContext(), appUtils.getHiddenApps().toMutableList(), this)
@ -54,7 +53,7 @@ class HiddenAppsFragment : Fragment(), HiddenAppsAdapter.OnItemClickListener {
val searchView = view.findViewById<TextInputEditText>(R.id.hiddenAppSearch) val searchView = view.findViewById<TextInputEditText>(R.id.hiddenAppSearch)
uiUtils.setMenuTitleAlignment(view.findViewById(R.id.hidden_menutitle)) uiUtils.setMenuTitleAlignment(view.findViewById(R.id.hiddenMenuTitle))
uiUtils.setSearchAlignment(searchView) uiUtils.setSearchAlignment(searchView)
uiUtils.setSearchSize(searchView) uiUtils.setSearchSize(searchView)

View file

@ -11,7 +11,6 @@ import android.view.ViewGroup
import android.view.inputmethod.InputMethodManager import android.view.inputmethod.InputMethodManager
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.preference.PreferenceManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputEditText
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
@ -52,9 +51,9 @@ class LocationFragment : Fragment(), LocationListAdapter.OnItemClickListener {
} }
adapter = LocationListAdapter(requireContext(), locationList, this) adapter = LocationListAdapter(requireContext(), locationList, this)
val recyclerView = view.findViewById<RecyclerView>(R.id.locationrecycler) val recyclerView = view.findViewById<RecyclerView>(R.id.locationRecycler)
val appMenuEdgeFactory = AppMenuEdgeFactory(requireActivity()) val appMenuEdgeFactory = AppMenuEdgeFactory(requireActivity())
uiUtils.setMenuTitleAlignment(view.findViewById(R.id.location_menutitle)) uiUtils.setMenuTitleAlignment(view.findViewById(R.id.locationMenuTitle))
uiUtils.setSearchAlignment(searchView) uiUtils.setSearchAlignment(searchView)
uiUtils.setSearchSize(searchView) uiUtils.setSearchSize(searchView)

View file

@ -23,9 +23,9 @@ class LocationListAdapter(
} }
inner class AppViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { inner class AppViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
private val listItem: ConstraintLayout = itemView.findViewById(R.id.location_place) private val listItem: ConstraintLayout = itemView.findViewById(R.id.locationPlace)
val textView: TextView = listItem.findViewById(R.id.location_name) val textView: TextView = listItem.findViewById(R.id.locationName)
val regionText: TextView = listItem.findViewById(R.id.region_name) val regionText: TextView = listItem.findViewById(R.id.regionName)
init { init {

View file

@ -14,7 +14,6 @@ import android.os.UserHandle
import android.text.Editable import android.text.Editable
import android.text.TextWatcher import android.text.TextWatcher
import android.view.GestureDetector import android.view.GestureDetector
import android.view.Gravity
import android.view.MotionEvent import android.view.MotionEvent
import android.view.View import android.view.View
import android.view.inputmethod.InputMethodManager import android.view.inputmethod.InputMethodManager
@ -133,11 +132,11 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
gestureDetector = GestureDetector(this, GestureListener()) gestureDetector = GestureDetector(this, GestureListener())
shortcutGestureDetector = GestureDetector(this, TextGestureListener()) shortcutGestureDetector = GestureDetector(this, TextGestureListener())
clock = findViewById(R.id.text_clock) clock = findViewById(R.id.textClock)
clockMargin = clock.marginLeft clockMargin = clock.marginLeft
dateText = findViewById(R.id.text_date) dateText = findViewById(R.id.textDate)
dateElements = mutableListOf(dateText.format12Hour.toString(), dateText.format24Hour.toString(), "", "") dateElements = mutableListOf(dateText.format12Hour.toString(), dateText.format24Hour.toString(), "", "")
@ -213,8 +212,8 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
Toast.makeText(this, "Long click to select an app", Toast.LENGTH_SHORT).show() Toast.makeText(this, "Long click to select an app", Toast.LENGTH_SHORT).show()
} }
textView.setOnLongClickListener { textView.setOnLongClickListener {
uiUtils.setMenuTitleAlignment(binding.menutitle) uiUtils.setMenuTitleAlignment(binding.menuTitle)
binding.menutitle.visibility = View.VISIBLE binding.menuTitle.visibility = View.VISIBLE
adapter?.shortcutTextView = textView adapter?.shortcutTextView = textView
toAppMenu() toAppMenu()
@ -475,7 +474,7 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
private suspend fun setupRecyclerView(newApps: MutableList<Pair<LauncherActivityInfo, Pair<UserHandle, Int>>>) { private suspend fun setupRecyclerView(newApps: MutableList<Pair<LauncherActivityInfo, Pair<UserHandle, Int>>>) {
adapter = AppMenuAdapter(this@MainActivity, newApps, this@MainActivity, this@MainActivity, this@MainActivity, launcherApps) adapter = AppMenuAdapter(this@MainActivity, newApps, this@MainActivity, this@MainActivity, this@MainActivity, launcherApps)
appMenuLinearLayoutManager.stackFromEnd = true appMenuLinearLayoutManager.stackFromEnd = true
recyclerView = findViewById(R.id.recycler_view) recyclerView = findViewById(R.id.recyclerView)
withContext(Dispatchers.Main) { withContext(Dispatchers.Main) {
recyclerView.layoutManager = appMenuLinearLayoutManager recyclerView.layoutManager = appMenuLinearLayoutManager
recyclerView.edgeEffectFactory = appMenuEdgeFactory recyclerView.edgeEffectFactory = appMenuEdgeFactory
@ -732,7 +731,7 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
private fun openAppMenu() { private fun openAppMenu() {
adapter?.shortcutTextView = null adapter?.shortcutTextView = null
binding.menutitle.visibility = View.GONE binding.menuTitle.visibility = View.GONE
toAppMenu() toAppMenu()
} }

View file

@ -14,7 +14,7 @@ class SettingsActivity : AppCompatActivity() {
setContentView(binding.root) setContentView(binding.root)
supportFragmentManager supportFragmentManager
.beginTransaction() .beginTransaction()
.replace(R.id.settings_layout, SettingsFragment()) .replace(R.id.settingsLayout, SettingsFragment())
.commit() .commit()
} }

View file

@ -44,7 +44,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
Preference.OnPreferenceClickListener { Preference.OnPreferenceClickListener {
requireActivity().supportFragmentManager requireActivity().supportFragmentManager
.beginTransaction() .beginTransaction()
.replace(R.id.settings_layout, LocationFragment()) .replace(R.id.settingsLayout, LocationFragment())
.addToBackStack(null) .addToBackStack(null)
.commit() .commit()
true true
@ -55,7 +55,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
Preference.OnPreferenceClickListener { Preference.OnPreferenceClickListener {
requireActivity().supportFragmentManager requireActivity().supportFragmentManager
.beginTransaction() .beginTransaction()
.replace(R.id.settings_layout, HiddenAppsFragment()) .replace(R.id.settingsLayout, HiddenAppsFragment())
.addToBackStack(null) .addToBackStack(null)
.commit() .commit()
true } true }
@ -64,7 +64,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
Preference.OnPreferenceClickListener { Preference.OnPreferenceClickListener {
requireActivity().supportFragmentManager requireActivity().supportFragmentManager
.beginTransaction() .beginTransaction()
.replace(R.id.settings_layout, GestureAppsFragment()) .replace(R.id.settingsLayout, GestureAppsFragment())
.addToBackStack(null) .addToBackStack(null)
.commit() .commit()
setFragmentResultListener("request_key") { _, bundle -> setFragmentResultListener("request_key") { _, bundle ->
@ -84,7 +84,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
Preference.OnPreferenceClickListener { Preference.OnPreferenceClickListener {
requireActivity().supportFragmentManager requireActivity().supportFragmentManager
.beginTransaction() .beginTransaction()
.replace(R.id.settings_layout, GestureAppsFragment()) .replace(R.id.settingsLayout, GestureAppsFragment())
.addToBackStack(null) .addToBackStack(null)
.commit() .commit()
setFragmentResultListener("request_key") { _, bundle -> setFragmentResultListener("request_key") { _, bundle ->
@ -104,7 +104,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
Preference.OnPreferenceClickListener { Preference.OnPreferenceClickListener {
requireActivity().supportFragmentManager requireActivity().supportFragmentManager
.beginTransaction() .beginTransaction()
.replace(R.id.settings_layout, AboutFragment()) .replace(R.id.settingsLayout, AboutFragment())
.addToBackStack(null) .addToBackStack(null)
.commit() .commit()
true } true }

View file

@ -7,7 +7,6 @@ import android.location.Location
import android.location.LocationManager import android.location.LocationManager
import androidx.core.app.ActivityCompat import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.preference.PreferenceManager
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch

View file

@ -2,7 +2,7 @@
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_view" android:id="@+id/mainView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_gravity="fill_vertical" android:layout_gravity="fill_vertical"
@ -10,7 +10,7 @@
tools:context=".MainActivity"> tools:context=".MainActivity">
<LinearLayout <LinearLayout
android:id="@+id/app_view" android:id="@+id/appView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:gravity="bottom" android:gravity="bottom"
@ -22,7 +22,7 @@
android:layout_height="60dp" /> android:layout_height="60dp" />
<TextView <TextView
android:id="@+id/menutitle" android:id="@+id/menuTitle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:clickable="false" android:clickable="false"
@ -37,7 +37,7 @@
android:textSize="36sp" /> android:textSize="36sp" />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view" android:id="@+id/recyclerView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" android:layout_weight="1"
@ -53,7 +53,6 @@
android:id="@+id/searchView" android:id="@+id/searchView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginHorizontal="32dp" android:layout_marginHorizontal="32dp"
android:layout_marginTop="5dp" android:layout_marginTop="5dp"
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
@ -72,7 +71,7 @@
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/home_view" android:id="@+id/homeView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_gravity="fill_vertical" android:layout_gravity="fill_vertical"
@ -81,12 +80,12 @@
android:visibility="visible"> android:visibility="visible">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/clock_layout" android:id="@+id/clockLayout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<TextClock <TextClock
android:id="@+id/text_clock" android:id="@+id/textClock"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="32dp" android:layout_marginHorizontal="32dp"
@ -95,7 +94,6 @@
android:fontFamily="@null" android:fontFamily="@null"
android:format12Hour="hh:mm a" android:format12Hour="hh:mm a"
android:format24Hour="HH:mm" android:format24Hour="HH:mm"
android:gravity="bottom"
android:textAlignment="textStart" android:textAlignment="textStart"
android:textAppearance="@android:style/TextAppearance.DeviceDefault" android:textAppearance="@android:style/TextAppearance.DeviceDefault"
android:textColor="#F3F3F3" android:textColor="#F3F3F3"
@ -106,7 +104,7 @@
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<TextClock <TextClock
android:id="@+id/text_date" android:id="@+id/textDate"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@null" android:fontFamily="@null"
@ -118,9 +116,9 @@
android:textAppearance="@android:style/TextAppearance.DeviceDefault" android:textAppearance="@android:style/TextAppearance.DeviceDefault"
android:textColor="#F3F3F3" android:textColor="#F3F3F3"
android:textSize="20sp" android:textSize="20sp"
app:layout_constraintEnd_toEndOf="@+id/text_clock" app:layout_constraintEnd_toEndOf="@+id/textClock"
app:layout_constraintStart_toStartOf="@+id/text_clock" app:layout_constraintStart_toStartOf="@+id/textClock"
app:layout_constraintTop_toBottomOf="@+id/text_clock" /> app:layout_constraintTop_toBottomOf="@+id/textClock" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -1,16 +1,15 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout 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" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/settingsLayout" android:id="@+id/settingsActivity"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:orientation="vertical"
tools:context=".SettingsActivity"> tools:context=".SettingsActivity">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/settings_layout" android:id="@+id/settingsLayout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:paddingTop="40dp"> android:paddingTop="40dp">

View file

@ -1,22 +1,21 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" android:id="@+id/listItem"
android:id="@+id/list_item"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:padding="0dp"> android:padding="0dp">
<LinearLayout <LinearLayout
android:id="@+id/rename_view" android:id="@+id/renameView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingVertical="10dp" android:paddingVertical="10dp"
android:visibility="invisible"> android:visibility="invisible">
<com.google.android.material.textfield.TextInputEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/app_name_edit" android:id="@+id/appNameEdit"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
@ -44,13 +43,13 @@
android:gravity="center" android:gravity="center"
android:insetTop="0dp" android:insetTop="0dp"
android:insetBottom="0dp" android:insetBottom="0dp"
android:text="Reset" android:text="@string/reset"
android:textAppearance="@android:style/TextAppearance.DeviceDefault" android:textAppearance="@android:style/TextAppearance.DeviceDefault"
android:textColor="#F3F3F3" /> android:textColor="#F3F3F3" />
</LinearLayout> </LinearLayout>
<TextView <TextView
android:id="@+id/app_name" android:id="@+id/appName"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:clickable="false" android:clickable="false"
@ -67,7 +66,7 @@
app:drawableLeftCompat="@drawable/ic_work_app" /> app:drawableLeftCompat="@drawable/ic_work_app" />
<LinearLayout <LinearLayout
android:id="@+id/action_menu" android:id="@+id/actionMenu"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:gravity="center" android:gravity="center"
@ -80,7 +79,7 @@
android:layout_weight="1" android:layout_weight="1"
android:background="#A7000000" android:background="#A7000000"
android:foreground="@drawable/app_action_foreground" android:foreground="@drawable/app_action_foreground"
android:text="Info" android:text="@string/info"
android:textAlignment="center" android:textAlignment="center"
android:textAppearance="@android:style/TextAppearance.DeviceDefault" android:textAppearance="@android:style/TextAppearance.DeviceDefault"
android:textColor="#F3F3F3FF" android:textColor="#F3F3F3FF"
@ -93,7 +92,7 @@
android:layout_weight="1" android:layout_weight="1"
android:background="#A7000000" android:background="#A7000000"
android:foreground="@drawable/app_action_foreground" android:foreground="@drawable/app_action_foreground"
android:text="Uninstall" android:text="@string/uninstall"
android:textAlignment="center" android:textAlignment="center"
android:textAppearance="@android:style/TextAppearance.DeviceDefault" android:textAppearance="@android:style/TextAppearance.DeviceDefault"
android:textColor="#F3F3F3FF" android:textColor="#F3F3F3FF"
@ -106,7 +105,7 @@
android:layout_weight="1" android:layout_weight="1"
android:background="#A7000000" android:background="#A7000000"
android:foreground="@drawable/app_action_foreground" android:foreground="@drawable/app_action_foreground"
android:text="Rename" android:text="@string/rename"
android:textAlignment="center" android:textAlignment="center"
android:textAppearance="@android:style/TextAppearance.DeviceDefault" android:textAppearance="@android:style/TextAppearance.DeviceDefault"
android:textColor="#F3F3F3FF" android:textColor="#F3F3F3FF"
@ -119,7 +118,7 @@
android:layout_weight="1" android:layout_weight="1"
android:background="#A7000000" android:background="#A7000000"
android:foreground="@drawable/app_action_foreground" android:foreground="@drawable/app_action_foreground"
android:text="Hide" android:text="@string/hide"
android:textAlignment="center" android:textAlignment="center"
android:textAppearance="@android:style/TextAppearance.DeviceDefault" android:textAppearance="@android:style/TextAppearance.DeviceDefault"
android:textColor="#F3F3F3FF" android:textColor="#F3F3F3FF"
@ -132,7 +131,7 @@
android:layout_weight="1" android:layout_weight="1"
android:background="#A7000000" android:background="#A7000000"
android:foreground="@drawable/app_action_foreground" android:foreground="@drawable/app_action_foreground"
android:text="Close" android:text="@string/close"
android:textAlignment="center" android:textAlignment="center"
android:textAppearance="@android:style/TextAppearance.DeviceDefault" android:textAppearance="@android:style/TextAppearance.DeviceDefault"
android:textColor="#F3F3F3FF" android:textColor="#F3F3F3FF"

View file

@ -2,7 +2,7 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/frameLayout" android:id="@+id/aboutLayout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context=".AboutFragment"> tools:context=".AboutFragment">
@ -11,13 +11,14 @@
android:id="@+id/imageView" android:id="@+id/imageView"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="200dp" android:layout_height="200dp"
android:contentDescription="@string/app_icon"
android:src="@drawable/ic_launcher_foreground" android:src="@drawable/ic_launcher_foreground"
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" />
<TextView <TextView
android:id="@+id/textView2" android:id="@+id/appNameView"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/app_name" android:text="@string/app_name"
@ -32,18 +33,18 @@
android:id="@+id/creditText" android:id="@+id/creditText"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="By Otto Petäjä" android:text="@string/creditName"
android:textSize="17sp" android:textSize="17sp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@+id/textView2" app:layout_constraintStart_toStartOf="@+id/appNameView"
app:layout_constraintTop_toBottomOf="@+id/textView2" /> app:layout_constraintTop_toBottomOf="@+id/appNameView" />
<TextView <TextView
android:id="@+id/sourceTitle" android:id="@+id/sourceTitle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="30dp" android:layout_marginTop="30dp"
android:text="Source Code" android:text="@string/source_code"
android:textAlignment="center" android:textAlignment="center"
android:textSize="24sp" android:textSize="24sp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@ -66,7 +67,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:linksClickable="true" android:linksClickable="true"
android:text="Codeberg" android:text="@string/codeberg"
android:textAlignment="center" android:textAlignment="center"
android:textSize="20sp" android:textSize="20sp"
app:layout_constraintEnd_toStartOf="@+id/githubLink" app:layout_constraintEnd_toStartOf="@+id/githubLink"
@ -79,7 +80,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:linksClickable="true" android:linksClickable="true"
android:text="GitHub" android:text="@string/github"
android:textAlignment="center" android:textAlignment="center"
android:textSize="20sp" android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@ -91,7 +92,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="40dp" android:layout_marginTop="40dp"
android:text="Donate" android:text="@string/donate"
android:textAlignment="center" android:textAlignment="center"
android:textSize="24sp" android:textSize="24sp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@ -114,7 +115,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:linksClickable="true" android:linksClickable="true"
android:text="Stripe" android:text="@string/stripe"
android:textAlignment="center" android:textAlignment="center"
android:textSize="20sp" android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@ -127,7 +128,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:linksClickable="true" android:linksClickable="true"
android:text="Liberapay" android:text="@string/liberapay"
android:textAlignment="center" android:textAlignment="center"
android:textSize="20sp" android:textSize="20sp"
app:layout_constraintEnd_toStartOf="@+id/stripeLink" app:layout_constraintEnd_toStartOf="@+id/stripeLink"
@ -140,7 +141,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="20dp" android:layout_marginBottom="20dp"
android:linksClickable="true" android:linksClickable="true"
android:text="Weather data by Open-Meteo.com\n(CC BY 4.0)" android:text="@string/weather_data_credit"
android:textAlignment="center" android:textAlignment="center"
android:textSize="16sp" android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"

View file

@ -2,7 +2,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/gesture_app_view" android:id="@+id/gestureAppView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:gravity="bottom" android:gravity="bottom"
@ -13,7 +13,7 @@
android:layout_height="60dp" /> android:layout_height="60dp" />
<TextView <TextView
android:id="@+id/gesture_menutitle" android:id="@+id/gestureMenuTitle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:clickable="false" android:clickable="false"
@ -28,7 +28,7 @@
android:textSize="36sp" /> android:textSize="36sp" />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/gesture_app_recycler" android:id="@+id/gestureAppRecycler"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" android:layout_weight="1"

View file

@ -2,7 +2,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/hidden_app_view" android:id="@+id/hiddenAppView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:gravity="bottom" android:gravity="bottom"
@ -14,7 +14,7 @@
android:layout_height="60dp" /> android:layout_height="60dp" />
<TextView <TextView
android:id="@+id/hidden_menutitle" android:id="@+id/hiddenMenuTitle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:clickable="false" android:clickable="false"
@ -23,13 +23,13 @@
android:paddingTop="20dp" android:paddingTop="20dp"
android:paddingRight="40dp" android:paddingRight="40dp"
android:paddingBottom="20dp" android:paddingBottom="20dp"
android:text="Unhide an app" android:text="@string/unhide_an_app"
android:textAppearance="@android:style/TextAppearance.DeviceDefault" android:textAppearance="@android:style/TextAppearance.DeviceDefault"
android:textColor="#C1F3F3F3" android:textColor="#C1F3F3F3"
android:textSize="36sp" /> android:textSize="36sp" />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/hidden_app_recycler" android:id="@+id/hiddenAppRecycler"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" android:layout_weight="1"

View file

@ -2,7 +2,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/manual_location_view" android:id="@+id/manualLocationView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:gravity="bottom" android:gravity="bottom"
@ -14,7 +14,7 @@
android:layout_height="60dp" /> android:layout_height="60dp" />
<TextView <TextView
android:id="@+id/location_menutitle" android:id="@+id/locationMenuTitle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:clickable="false" android:clickable="false"
@ -23,13 +23,13 @@
android:paddingTop="20dp" android:paddingTop="20dp"
android:paddingRight="40dp" android:paddingRight="40dp"
android:paddingBottom="20dp" android:paddingBottom="20dp"
android:text="Find your city" android:text="@string/find_your_city"
android:textAppearance="@android:style/TextAppearance.DeviceDefault" android:textAppearance="@android:style/TextAppearance.DeviceDefault"
android:textColor="#C1F3F3F3" android:textColor="#C1F3F3F3"
android:textSize="36sp" /> android:textSize="36sp" />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/locationrecycler" android:id="@+id/locationRecycler"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" android:layout_weight="1"
@ -70,7 +70,7 @@
android:layout_marginTop="0dp" android:layout_marginTop="0dp"
android:layout_marginBottom="15dp" android:layout_marginBottom="15dp"
android:linksClickable="true" android:linksClickable="true"
android:text="Weather data by Open-Meteo.com\n(CC BY 4.0)" android:text="@string/weather_data_credit"
android:textAlignment="center" android:textAlignment="center"
android:textColor="#B3A5A5A5" android:textColor="#B3A5A5A5"
android:textColorLink="#7F80CBC4" android:textColorLink="#7F80CBC4"

View file

@ -1,13 +1,12 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" android:id="@+id/locationPlace"
android:id="@+id/location_place"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<TextView <TextView
android:id="@+id/location_name" android:id="@+id/locationName"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:clickable="false" android:clickable="false"
@ -26,7 +25,7 @@
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<TextView <TextView
android:id="@+id/region_name" android:id="@+id/regionName"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:clickable="false" android:clickable="false"
@ -40,8 +39,8 @@
android:textColor="#C3C3C3" android:textColor="#C3C3C3"
android:textSize="14sp" android:textSize="14sp"
android:visibility="visible" android:visibility="visible"
app:layout_constraintEnd_toEndOf="@+id/location_name" app:layout_constraintEnd_toEndOf="@+id/locationName"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/location_name" /> app:layout_constraintTop_toBottomOf="@+id/locationName" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<navigation 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:id="@+id/nav_graph" />

View file

@ -1,3 +0,0 @@
<resources>
<dimen name="fab_margin">48dp</dimen>
</resources>

View file

@ -1,4 +0,0 @@
<resources xmlns:tools="http://schemas.android.com/tools">
</resources>

View file

@ -1,3 +0,0 @@
<resources xmlns:tools="http://schemas.android.com/tools">
</resources>

View file

@ -1,3 +0,0 @@
<resources>
<dimen name="fab_margin">200dp</dimen>
</resources>

View file

@ -1,3 +0,0 @@
<resources>
<dimen name="fab_margin">48dp</dimen>
</resources>

View file

@ -1,13 +1,39 @@
<resources> <resources>
<!-- Reply Preference -->
<string-array name="reply_entries"> <string-array name="shortcut_options">
<item>Reply</item> <item>0</item>
<item>Reply to all</item> <item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
</string-array> </string-array>
<string-array name="reply_values"> <string-array name="bg_options">
<item>reply</item> <item>Transparent</item>
<item>reply_all</item> <item>Black</item>
<item>Grey</item>
<item>White</item>
</string-array>
<string-array name="bg_values">
<item>#00000000</item>
<item>#FF000000</item>
<item>#FF1B1B1B</item>
<item>#FFD6D6D6</item>
</string-array>
<string-array name="color_options">
<item>Light</item>
<item>Dark</item>
</string-array>
<string-array name="color_values">
<item>#FFF3F3F3</item>
<item>#FF0C0C0C</item>
</string-array> </string-array>
<string-array name="h_alignment_options"> <string-array name="h_alignment_options">
@ -43,40 +69,4 @@
<item>celsius</item> <item>celsius</item>
<item>fahrenheit</item> <item>fahrenheit</item>
</string-array> </string-array>
<string-array name="bg_options">
<item>Transparent</item>
<item>Black</item>
<item>Grey</item>
<item>White</item>
</string-array>
<string-array name="bg_values">
<item>#00000000</item>
<item>#FF000000</item>
<item>#FF1B1B1B</item>
<item>#FFD6D6D6</item>
</string-array>
<string-array name="color_options">
<item>Light</item>
<item>Dark</item>
</string-array>
<string-array name="color_values">
<item>#FFF3F3F3</item>
<item>#FF0C0C0C</item>
</string-array>
<string-array name="shortcut_options">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
</string-array>
</resources> </resources>

View file

@ -1,3 +0,0 @@
<resources>
<dimen name="fab_margin">16dp</dimen>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="app_name_edit" type="id" />
</resources>

View file

@ -3,17 +3,30 @@
<string name="empty"></string> <string name="empty"></string>
<string name="select_an_app">Select an app</string>
<string name="search">Search…</string>
<string name="app">App</string>
<string name="shortcut_default">App</string> <string name="shortcut_default">App</string>
<!-- Sync Preferences --> <string name="select_an_app">Select an app</string>
<string name="sync_title">Sync email periodically</string> <string name="unhide_an_app">Unhide an app</string>
<string name="attachment_title">Download incoming attachments</string> <string name="find_your_city">Find your city</string>
<string name="attachment_summary_on">Automatically download attachments for incoming emails
</string> <string name="search">Search…</string>
<string name="attachment_summary_off">Only download attachments when manually requested</string>
<string name="reset">Reset</string>
<string name="info">Info</string>
<string name="uninstall">Uninstall</string>
<string name="rename">Rename</string>
<string name="hide">Hide</string>
<string name="close">Close</string>
<string name="app_icon">App Icon</string>
<string name="creditName">By Otto Petäjä</string>
<string name="source_code">Source Code</string>
<string name="codeberg">Codeberg</string>
<string name="github">GitHub</string>
<string name="donate">Donate</string>
<string name="stripe">Stripe</string>
<string name="liberapay">Liberapay</string>
<string name="weather_data_credit">Weather data by Open-Meteo.com\n(CC BY 4.0)</string>
<string name="my_website_link"><![CDATA[by <a href="https://ottop.eu">Otto Petäjä</a>]]></string> <string name="my_website_link"><![CDATA[by <a href="https://ottop.eu">Otto Petäjä</a>]]></string>
@ -25,7 +38,9 @@
<string name="weather_link"><![CDATA[Weather data by <a href="https://open-meteo.com/">Open-Meteo.com</a><br>(<a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>)]]></string> <string name="weather_link"><![CDATA[Weather data by <a href="https://open-meteo.com/">Open-Meteo.com</a><br>(<a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>)]]></string>
<string name="location_link"><![CDATA[Location data by <a href="https://open-meteo.com/">Open-Meteo.com</a> (<a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>)]]></string> <string name="location_link"><![CDATA[Location data by <a href="https://open-meteo.com/">Open-Meteo.com</a> (<a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>)]]></string>
<string name="accessibility_service_description">Idk this is my service</string>
<string name="region_text">%1$s%2$s</string> <string name="region_text">%1$s%2$s</string>
<string name="accessibility_service_description">The permission is required for double tap to work for locking the screen.\n\nIt is only needed if you want to use the double tap to lock screen feature in YAM Launcher.</string>
</resources> </resources>

View file

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<accessibility-service <accessibility-service
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:description="@string/accessibility_service_description"
android:accessibilityEventTypes="typeViewClicked" android:accessibilityEventTypes="typeViewClicked"
android:accessibilityFeedbackType="feedbackGeneric" android:accessibilityFeedbackType="feedbackGeneric"
android:notificationTimeout="100" android:notificationTimeout="100"
android:canRetrieveWindowContent="true" android:settingsActivity="eu.ottop.yamlauncher.SettingsActivity"/>
android:description="@string/accessibility_service_description" />