Fixed an issue with shortcuts and gestures with apps that have a dash on the name.

This commit is contained in:
ottoptj 2024-08-06 18:02:22 +03:00
commit 914c7a0ed4
7 changed files with 129 additions and 84 deletions

View file

@ -143,7 +143,7 @@ class GestureAppsFragment : Fragment(), GestureAppsAdapter.OnItemClickListener {
private fun performConfirmedAction(appInfo: LauncherActivityInfo, appName: String, profile: Int) {
val result = Bundle().apply {
putString("gesture_app", "$appName-${appInfo.applicationInfo.packageName}-$profile")
putString("gesture_app", "$appName§splitter§${appInfo.applicationInfo.packageName}§splitter§$profile")
}
setFragmentResult("request_key", result)
requireActivity().supportFragmentManager.popBackStack()

View file

@ -294,6 +294,10 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
}
}
}
"shortcutNo" -> {
handleListItems()
}
}
}
@ -432,14 +436,14 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
}
private fun getSwipeInfo(direction: String): Pair<LauncherActivityInfo?, Int?> {
val app = preferences.getString("${direction}SwipeApp", "")?.split("-")
val app = preferences.getString("${direction}SwipeApp", "")?.split("§splitter§")
if (app != null) {
if (app.size >= 3)
return Pair(
launcherApps.getActivityList(
app?.get(1), launcherApps.profiles[app.get(2)!!
app[1], launcherApps.profiles[app[2]
.toInt()]
).firstOrNull(), app[2].toInt()
)
@ -461,16 +465,30 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
}
private fun handleListItems() {
for (i in arrayOf(R.id.app1, R.id.app2, R.id.app3, R.id.app4, R.id.app5, R.id.app6, R.id.app7, R.id.app8)) {
val shortcuts = arrayOf(R.id.app1, R.id.app2, R.id.app3, R.id.app4, R.id.app5, R.id.app6, R.id.app7, R.id.app8)
val textView = findViewById<TextView>(i)
for (i in shortcuts.indices) {
unselectedSetup(textView)
val textView = findViewById<TextView>(shortcuts[i])
val savedView = sharedPreferenceManager.getShortcut(this, textView)
val shortcutNo = preferences.getString("shortcutNo", "4")?.toInt()
if (savedView?.get(1) != "e") {
selectedSetup(textView, savedView)
if (i >= shortcutNo!!) {
textView.visibility = View.GONE
}
else {
textView.visibility = View.VISIBLE
unselectedSetup(textView)
val savedView = sharedPreferenceManager.getShortcut(this, textView)
if (savedView?.get(1) != "e") {
selectedSetup(textView, savedView)
}
setShortcutAlignment(preferences.getString("shortcutAlignment", "left"), binding.homeView)
}
}
@ -702,6 +720,35 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
shortcutView.setCompoundDrawablesWithIntrinsicBounds(ResourcesCompat.getDrawable(resources, R.drawable.ic_empty, null),null,null,null)
}
when (preferences.getString("shortcutAlignment", "left")) {
"left" -> {
shortcutView.setCompoundDrawablesWithIntrinsicBounds(
textView.compoundDrawables.filterNotNull().first(), null, null, null
)
shortcutView.gravity = Gravity.CENTER_VERTICAL or Gravity.START
}
"center" -> {
shortcutView.setCompoundDrawablesWithIntrinsicBounds(
shortcutView.compoundDrawables.filterNotNull().first(),
null,
shortcutView.compoundDrawables.filterNotNull().first(),
null
)
shortcutView.gravity = Gravity.CENTER
}
"right" -> {
shortcutView.setCompoundDrawablesWithIntrinsicBounds(
null,
null,
shortcutView.compoundDrawables.filterNotNull().first(),
null
)
shortcutView.gravity = Gravity.CENTER_VERTICAL or Gravity.END
}
}
shortcutView.text = textView.text.toString()
shortcutView.setOnClickListener {
val mainActivity = launcherApps.getActivityList(appInfo.applicationInfo.packageName, userHandle).firstOrNull()
@ -808,22 +855,36 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
if (it is TextView) {
try {
when (alignment) {
"left" -> {
it.setCompoundDrawablesWithIntrinsicBounds(
it.compoundDrawables.filterNotNull().first(), null, null, null
)
it.gravity = Gravity.CENTER_VERTICAL or Gravity.START
}
when (alignment) {
"left" -> {
it.setCompoundDrawablesWithIntrinsicBounds(it.compoundDrawables.filterNotNull().first(),null, null, null)
it.gravity = Gravity.CENTER_VERTICAL or Gravity.START
}
"center" -> {
it.setCompoundDrawablesWithIntrinsicBounds(it.compoundDrawables.filterNotNull().first(),null,it.compoundDrawables.filterNotNull().first(), null)
it.gravity = Gravity.CENTER
}
"right" -> {
it.setCompoundDrawablesWithIntrinsicBounds(null,null, it.compoundDrawables.filterNotNull().first(), null)
it.gravity = Gravity.CENTER_VERTICAL or Gravity.END
}
}
"center" -> {
it.setCompoundDrawablesWithIntrinsicBounds(
it.compoundDrawables.filterNotNull().first(),
null,
it.compoundDrawables.filterNotNull().first(),
null
)
it.gravity = Gravity.CENTER
}
"right" -> {
it.setCompoundDrawablesWithIntrinsicBounds(
null,
null,
it.compoundDrawables.filterNotNull().first(),
null
)
it.gravity = Gravity.CENTER_VERTICAL or Gravity.END
}
}
} catch(_: Exception) {}
}
}
}

View file

@ -70,15 +70,16 @@ class SettingsFragment : PreferenceFragmentCompat() {
.replace(R.id.settings_layout, GestureAppsFragment())
.addToBackStack(null)
.commit()
setFragmentResultListener("request_key") { requestKey, bundle ->
setFragmentResultListener("request_key") { _, bundle ->
clearFragmentResultListener("request_key")
val result = bundle.getString("gesture_app")
val appDetails = result?.split("-")
val appDetails = result?.split("§splitter§")
if (leftSwipePref != null && result != null) {
setPreference("leftSwipeApp", result)
}
sharedPreferenceManager.setGestures(requireContext(), "left",
appDetails?.get(0), appDetails?.get(1), appDetails?.get(2)
sharedPreferenceManager.setGestures(
requireContext(), "left",
appDetails?.get(0)
)
val appName = appDetails?.get(0)
leftSwipePref?.summary = appName
@ -92,15 +93,16 @@ class SettingsFragment : PreferenceFragmentCompat() {
.replace(R.id.settings_layout, GestureAppsFragment())
.addToBackStack(null)
.commit()
setFragmentResultListener("request_key") { requestKey, bundle ->
setFragmentResultListener("request_key") { _, bundle ->
clearFragmentResultListener("request_key")
val result = bundle.getString("gesture_app")
val appDetails = result?.split("-")
val appDetails = result?.split("§splitter§")
if (rightSwipePref != null && result != null) {
setPreference("rightSwipeApp", result)
}
sharedPreferenceManager.setGestures(requireContext(), "right",
appDetails?.get(0), appDetails?.get(1), appDetails?.get(2)
sharedPreferenceManager.setGestures(
requireContext(), "right",
appDetails?.get(0)
)
val appName = appDetails?.get(0)
rightSwipePref?.summary = appName

View file

@ -9,15 +9,15 @@ class SharedPreferenceManager {
fun setShortcut(cont: Context, textView: TextView, packageName: String, profile: Int) {
val editor = cont.getSharedPreferences("shortcuts", AppCompatActivity.MODE_PRIVATE).edit()
val key = textView.id.toString()
editor.putString(key, "$packageName-$profile-${textView.text}")
editor.putString(key, "$packageName§splitter§$profile§splitter§${textView.text}")
editor.apply()
}
fun getShortcut(cont: Context, textView: TextView): List<String>? {
val sharedPref = cont.getSharedPreferences("shortcuts", AppCompatActivity.MODE_PRIVATE)
val key = textView.id.toString()
val value = sharedPref.getString(key, "e-e")
return value?.split("-")
val value = sharedPref.getString(key, "e§splitter§e")
return value?.split("§splitter§")
}
fun setAppHidden(cont: Context, packageName: String, profile: Int, hidden: Boolean) {
@ -81,20 +81,14 @@ class SharedPreferenceManager {
return sharedPreferences.getString(key, "")
}
fun setGestures(cont: Context, direction: String, appName: String?, packageName: String?, profile: String?) {
fun setGestures(cont: Context, direction: String, appName: String?) {
val editor = cont.getSharedPreferences("gestures", AppCompatActivity.MODE_PRIVATE).edit()
val nameKey = "$direction-name"
editor.putString(direction, "$packageName-$profile")
editor.putString(nameKey, appName)
editor.apply()
}
fun getGestureApp(cont: Context, direction: String) : String? {
val sharedPreferences = cont.getSharedPreferences("gestures", AppCompatActivity.MODE_PRIVATE)
return sharedPreferences.getString(direction, "")
}
fun getGestureName(cont: Context, direction: String) : String? {
val sharedPreferences = cont.getSharedPreferences("gestures", AppCompatActivity.MODE_PRIVATE)
val key = "$direction-name"

View file

@ -144,12 +144,7 @@
android:text="@string/shortcut_default"
android:textAppearance="@android:style/TextAppearance.DeviceDefault"
android:textColor="#F3F3F3"
android:visibility="visible" />
<Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.01" />
android:visibility="gone" />
<TextView
android:id="@+id/app2"
@ -167,12 +162,7 @@
android:textAppearance="@android:style/TextAppearance.DeviceDefault"
android:textColor="#F3F3F3"
android:textSize="28sp"
android:visibility="visible" />
<Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.01" />
android:visibility="gone" />
<TextView
android:id="@+id/app3"
@ -190,12 +180,7 @@
android:textAppearance="@android:style/TextAppearance.DeviceDefault"
android:textColor="#F3F3F3"
android:textSize="28sp"
android:visibility="visible" />
<Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.01" />
android:visibility="gone" />
<TextView
android:id="@+id/app4"
@ -213,12 +198,6 @@
android:textAppearance="@android:style/TextAppearance.DeviceDefault"
android:textColor="#F3F3F3"
android:textSize="28sp"
android:visibility="visible" />
<Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.01"
android:visibility="gone" />
<TextView
@ -239,12 +218,6 @@
android:textSize="28sp"
android:visibility="gone" />
<Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.01"
android:visibility="gone" />
<TextView
android:id="@+id/app6"
android:layout_width="match_parent"
@ -263,12 +236,6 @@
android:textSize="28sp"
android:visibility="gone" />
<Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.01"
android:visibility="gone" />
<TextView
android:id="@+id/app7"
android:layout_width="match_parent"
@ -287,12 +254,6 @@
android:textSize="28sp"
android:visibility="gone" />
<Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.01"
android:visibility="gone" />
<TextView
android:id="@+id/app8"
android:layout_width="match_parent"

View file

@ -67,4 +67,16 @@
<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>

View file

@ -1,6 +1,21 @@
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<PreferenceCategory
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:allowDividerAbove="false"
app:title="Shortcuts">
<ListPreference
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:defaultValue="4"
app:entries="@array/shortcut_options"
app:entryValues="@array/shortcut_options"
app:key="shortcutNo"
app:title="Number of Shortcuts"
app:useSimpleSummaryProvider="true" />
</PreferenceCategory>
<PreferenceCategory
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -43,7 +58,7 @@
app:entries="@array/h_alignment_options"
app:entryValues="@array/h_alignment_values"
app:key="shortcutAlignment"
app:title="Home App Alignment"
app:title="Shortcut Alignment"
app:useSimpleSummaryProvider="true" />
<ListPreference
android:layout_width="wrap_content"