mirror of
https://github.com/He4eT/yamf_launcher.git
synced 2026-05-05 01:47:24 +00:00
Renaming seems to be working?
This commit is contained in:
parent
15f58dc886
commit
3deaa2b57d
4 changed files with 17 additions and 391 deletions
|
|
@ -93,7 +93,7 @@ class AppActionMenu {
|
||||||
imm.hideSoftInputFromWindow(editText.windowToken, 0)
|
imm.hideSoftInputFromWindow(editText.windowToken, 0)
|
||||||
sharedPreferenceManager.setAppName(activity, appInfo.packageName, workProfile, editText.text.toString())
|
sharedPreferenceManager.setAppName(activity, appInfo.packageName, workProfile, editText.text.toString())
|
||||||
uiScope.launch {
|
uiScope.launch {
|
||||||
//activity.refreshAppMenu()
|
activity.manualRefreshApps()
|
||||||
}
|
}
|
||||||
|
|
||||||
return@setOnEditorActionListener true
|
return@setOnEditorActionListener true
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ class AppMenuActivity : AppCompatActivity(), AppMenuAdapter.OnItemClickListener,
|
||||||
recyclerView.layoutManager = LinearLayoutManager(this)
|
recyclerView.layoutManager = LinearLayoutManager(this)
|
||||||
installedApps = getInstalledApps()
|
installedApps = getInstalledApps()
|
||||||
filteredApps = mutableListOf()
|
filteredApps = mutableListOf()
|
||||||
adapter = AppMenuAdapter(installedApps, this, this)
|
adapter = AppMenuAdapter(this@AppMenuActivity, installedApps, this, this)
|
||||||
recyclerView.adapter = adapter
|
recyclerView.adapter = adapter
|
||||||
|
|
||||||
setupSearch()
|
setupSearch()
|
||||||
|
|
@ -196,387 +196,3 @@ class AppMenuActivity : AppCompatActivity(), AppMenuAdapter.OnItemClickListener,
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
private lateinit var binding: ActivityAppMenuBinding
|
|
||||||
private lateinit var searchView: SearchView
|
|
||||||
private lateinit var container: LinearLayout
|
|
||||||
private lateinit var shownApps: List<Pair<LauncherActivityInfo, Pair<UserHandle, Int>>>
|
|
||||||
private var checkApps: Job? = null
|
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
|
||||||
super.onCreate(savedInstanceState)
|
|
||||||
|
|
||||||
binding = ActivityAppMenuBinding.inflate(layoutInflater)
|
|
||||||
setContentView(binding.root)
|
|
||||||
setSupportActionBar(null)
|
|
||||||
shownApps = listOf()
|
|
||||||
searchView = findViewById(R.id.searchView)
|
|
||||||
container = findViewById(R.id.container)
|
|
||||||
|
|
||||||
// Set a listener on the search view
|
|
||||||
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
|
|
||||||
override fun onQueryTextSubmit(query: String?): Boolean {
|
|
||||||
searchView.clearFocus()
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onQueryTextChange(newText: String?): Boolean {
|
|
||||||
// Filter items based on the search query
|
|
||||||
filterItems(newText)
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
})
|
|
||||||
|
|
||||||
binding.root.addOnLayoutChangeListener { _, _, top, _, bottom, _, oldTop, _, oldBottom ->
|
|
||||||
if (bottom - top > oldBottom - oldTop) {
|
|
||||||
searchView.clearFocus()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun filterItems(query: String?) {
|
|
||||||
val cleanQuery = query?.replace("[^a-zA-Z0-9]".toRegex(), "")
|
|
||||||
|
|
||||||
for (i in 0 until container.childCount) {
|
|
||||||
val view = container.getChildAt(i)
|
|
||||||
|
|
||||||
if (view is TextView) {
|
|
||||||
val itemText = view.text.toString()
|
|
||||||
val cleanItemText = itemText.replace("[^a-zA-Z0-9]".toRegex(), "")
|
|
||||||
|
|
||||||
if (cleanItemText.contains(cleanQuery ?: "", ignoreCase = true)) {
|
|
||||||
view.visibility = View.VISIBLE
|
|
||||||
} else {
|
|
||||||
view.visibility = View.GONE
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onStop() {
|
|
||||||
super.onStop()
|
|
||||||
checkApps?.cancel()
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onStart() {
|
|
||||||
super.onStart()
|
|
||||||
startTask()
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun startTask() {
|
|
||||||
checkApps = lifecycleScope.launch {
|
|
||||||
while (true) {
|
|
||||||
if (!listsEqual(shownApps, getInstalledApps())) {
|
|
||||||
shownApps = getInstalledApps()
|
|
||||||
runOnUiThread {
|
|
||||||
refreshAppMenu()
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
delay(1000)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun listsEqual(
|
|
||||||
list1: List<Pair<LauncherActivityInfo, Pair<UserHandle, Int>>>,
|
|
||||||
list2: List<Pair<LauncherActivityInfo, Pair<UserHandle, Int>>>
|
|
||||||
): Boolean {
|
|
||||||
if (list1.size != list2.size) return false
|
|
||||||
|
|
||||||
for (i in list1.indices) {
|
|
||||||
if (list1[i].first.componentName != list2[i].first.componentName || list1[i].second.first != list2[i].second.first) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun refreshAppMenu() {
|
|
||||||
deleteAppMenuContents()
|
|
||||||
createAppMenu()
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun deleteAppMenuContents(): Boolean {
|
|
||||||
binding.container.removeAllViewsInLayout()
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun createAppMenu(): Boolean {
|
|
||||||
val apps = getInstalledApps()
|
|
||||||
apps.forEach { appInfo ->
|
|
||||||
createAppText(appInfo.first, appInfo.second.first, appInfo.second.second)
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun getInstalledApps(): List<Pair<LauncherActivityInfo, Pair<UserHandle, Int>>> {
|
|
||||||
val allApps = mutableListOf<Pair<LauncherActivityInfo, Pair<UserHandle, Int>>>()
|
|
||||||
val launcherApps = this.getSystemService(Context.LAUNCHER_APPS_SERVICE) as LauncherApps
|
|
||||||
for (i in launcherApps.profiles.indices) {
|
|
||||||
launcherApps.getActivityList(null, launcherApps.profiles[i]).forEach { app ->
|
|
||||||
if (!isAppHidden(app.activityInfo.applicationInfo.packageName, i)) {
|
|
||||||
allApps.add(Pair(app, Pair(launcherApps.profiles[i], i)))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return allApps.sortedBy {
|
|
||||||
it.first.applicationInfo.loadLabel(packageManager).toString().lowercase()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun createAppText(
|
|
||||||
appInfo: LauncherActivityInfo,
|
|
||||||
userHandle: UserHandle,
|
|
||||||
workProfile: Int
|
|
||||||
): Boolean {
|
|
||||||
val appInfo = appInfo.activityInfo.applicationInfo
|
|
||||||
|
|
||||||
val textView = TextView(this)
|
|
||||||
val editLayout = LinearLayout(this)
|
|
||||||
|
|
||||||
val editText = EditText(this)
|
|
||||||
editText.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1f)
|
|
||||||
|
|
||||||
val imageView = ImageView(this)
|
|
||||||
imageView.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)
|
|
||||||
|
|
||||||
val launcherApps = getSystemService(Context.LAUNCHER_APPS_SERVICE) as LauncherApps
|
|
||||||
val mainActivity = launcherApps.getActivityList(appInfo.packageName, userHandle).firstOrNull()
|
|
||||||
|
|
||||||
editLayout.layoutParams = LinearLayout.LayoutParams(
|
|
||||||
LinearLayout.LayoutParams.MATCH_PARENT,
|
|
||||||
LinearLayout.LayoutParams.WRAP_CONTENT
|
|
||||||
)
|
|
||||||
editLayout.orientation = LinearLayout.HORIZONTAL;
|
|
||||||
|
|
||||||
setupTextView(textView, editText, appInfo, workProfile)
|
|
||||||
|
|
||||||
setupTextListeners(textView, editLayout, appInfo, userHandle, workProfile, launcherApps, mainActivity)
|
|
||||||
|
|
||||||
editLayout.addView(editText);
|
|
||||||
editLayout.addView(imageView);
|
|
||||||
|
|
||||||
editLayout.visibility = View.GONE
|
|
||||||
|
|
||||||
binding.container.addView(textView)
|
|
||||||
binding.container.addView(editLayout)
|
|
||||||
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun setupTextView(textView: TextView, editText: EditText, appInfo: ApplicationInfo, workProfile: Int) {
|
|
||||||
val states = arrayOf(
|
|
||||||
intArrayOf(-android.R.attr.state_pressed),
|
|
||||||
intArrayOf(android.R.attr.state_pressed)
|
|
||||||
)
|
|
||||||
|
|
||||||
val colors = intArrayOf(
|
|
||||||
Color.parseColor("#f3f3f3"), // Default text color
|
|
||||||
Color.parseColor("#c3c3c3") // Text color when pressed
|
|
||||||
)
|
|
||||||
|
|
||||||
with(textView) {
|
|
||||||
textSize = 28f
|
|
||||||
setPadding(0, 10, 0, 80)
|
|
||||||
isClickable = true
|
|
||||||
focusable = View.FOCUSABLE
|
|
||||||
gravity = Gravity.START
|
|
||||||
|
|
||||||
text = getAppName(appInfo.packageName, workProfile, appInfo.loadLabel(packageManager))
|
|
||||||
if (workProfile != 0) {text = "*" + text}
|
|
||||||
setTextColor(ColorStateList(states, colors))
|
|
||||||
}
|
|
||||||
with(editText) {
|
|
||||||
id = R.id.app_name
|
|
||||||
textSize = 28f
|
|
||||||
setPadding(0, 10, 0, 80)
|
|
||||||
isClickable = true
|
|
||||||
focusable = View.FOCUSABLE
|
|
||||||
gravity = Gravity.CENTER_VERTICAL
|
|
||||||
isElegantTextHeight = false
|
|
||||||
isFocusable = true
|
|
||||||
isClickable = true
|
|
||||||
includeFontPadding = true
|
|
||||||
isSingleLine = true
|
|
||||||
setTextColor(ColorStateList(states, colors))
|
|
||||||
background = null
|
|
||||||
imeOptions = EditorInfo.IME_ACTION_DONE
|
|
||||||
}
|
|
||||||
editText.setText(textView.text)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun setupTextListeners(
|
|
||||||
textView: TextView,
|
|
||||||
editLayout: LinearLayout,
|
|
||||||
appInfo: ApplicationInfo,
|
|
||||||
userHandle: UserHandle,
|
|
||||||
workProfile: Int,
|
|
||||||
launcherApps: LauncherApps,
|
|
||||||
mainActivity: LauncherActivityInfo?
|
|
||||||
) {
|
|
||||||
textView.setOnLongClickListener {
|
|
||||||
appActionMenu(textView, editLayout, appInfo, userHandle, workProfile, launcherApps, mainActivity)
|
|
||||||
}
|
|
||||||
|
|
||||||
textView.setOnClickListener {
|
|
||||||
if (mainActivity != null) {
|
|
||||||
launcherApps.startMainActivity(mainActivity.componentName, userHandle, null, null)
|
|
||||||
} else {
|
|
||||||
Toast.makeText(
|
|
||||||
this,
|
|
||||||
"Unable to launch ${appInfo.loadLabel(packageManager)}",
|
|
||||||
Toast.LENGTH_SHORT
|
|
||||||
).show()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun appActionMenu(
|
|
||||||
textView: TextView,
|
|
||||||
editLayout: LinearLayout,
|
|
||||||
appInfo: ApplicationInfo,
|
|
||||||
userHandle: UserHandle,
|
|
||||||
workProfile: Int,
|
|
||||||
launcherApps: LauncherApps,
|
|
||||||
mainActivity: LauncherActivityInfo?
|
|
||||||
): Boolean {
|
|
||||||
val inflater = getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
|
|
||||||
val popupView = inflater.inflate(R.layout.app_action_menu, null)
|
|
||||||
|
|
||||||
val popupWindow = PopupWindow(
|
|
||||||
popupView,
|
|
||||||
LinearLayout.LayoutParams.MATCH_PARENT,
|
|
||||||
LinearLayout.LayoutParams.WRAP_CONTENT
|
|
||||||
)
|
|
||||||
|
|
||||||
popupWindow.isOutsideTouchable = true
|
|
||||||
popupWindow.isFocusable = true
|
|
||||||
|
|
||||||
popupWindow.animationStyle = android.R.style.Animation_Translucent
|
|
||||||
|
|
||||||
if (appInfo.flags and ApplicationInfo.FLAG_SYSTEM != 0) {
|
|
||||||
popupView.findViewById<TextView>(R.id.uninstall).visibility = View.GONE
|
|
||||||
}
|
|
||||||
|
|
||||||
textView.visibility = View.INVISIBLE
|
|
||||||
|
|
||||||
popupWindow.showAsDropDown(textView, 0, -textView.height)
|
|
||||||
var editing = false
|
|
||||||
popupWindow.setOnDismissListener {
|
|
||||||
if (!editing) {textView.visibility = View.VISIBLE}
|
|
||||||
}
|
|
||||||
|
|
||||||
popupView.findViewById<TextView>(R.id.info).setOnClickListener {
|
|
||||||
if (mainActivity != null) {
|
|
||||||
launcherApps.startAppDetailsActivity(
|
|
||||||
mainActivity.componentName,
|
|
||||||
userHandle,
|
|
||||||
null,
|
|
||||||
null
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
popupWindow.dismiss()
|
|
||||||
}
|
|
||||||
|
|
||||||
popupView.findViewById<TextView>(R.id.uninstall).setOnClickListener {
|
|
||||||
val intent = Intent(Intent.ACTION_DELETE)
|
|
||||||
intent.data = Uri.parse("package:${appInfo.packageName}")
|
|
||||||
intent.putExtra(Intent.EXTRA_USER, userHandle)
|
|
||||||
startActivity(intent)
|
|
||||||
|
|
||||||
popupWindow.dismiss()
|
|
||||||
}
|
|
||||||
|
|
||||||
popupView.findViewById<TextView>(R.id.rename).setOnClickListener {
|
|
||||||
textView.visibility = View.GONE
|
|
||||||
editLayout.visibility = View.VISIBLE
|
|
||||||
editing = true
|
|
||||||
popupWindow.dismiss()
|
|
||||||
val editText = editLayout.findViewById<EditText>(R.id.app_name)
|
|
||||||
|
|
||||||
editText.requestFocus()
|
|
||||||
|
|
||||||
val handler = Handler(Looper.getMainLooper())
|
|
||||||
handler.postDelayed({
|
|
||||||
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
|
|
||||||
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT)
|
|
||||||
binding.appList.scrollToDescendant(textView)
|
|
||||||
}, 100)
|
|
||||||
|
|
||||||
binding.root.addOnLayoutChangeListener {
|
|
||||||
_, _, top, _, bottom, _, oldTop, _, oldBottom ->
|
|
||||||
if (bottom - top > oldBottom - oldTop) {
|
|
||||||
editing = false
|
|
||||||
editLayout.clearFocus()
|
|
||||||
|
|
||||||
editLayout.visibility = View.GONE
|
|
||||||
textView.visibility = View.VISIBLE
|
|
||||||
}
|
|
||||||
}
|
|
||||||
editText.setOnEditorActionListener { _, actionId, _ ->
|
|
||||||
if (actionId == EditorInfo.IME_ACTION_DONE) {
|
|
||||||
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
|
|
||||||
imm.hideSoftInputFromWindow(editText.windowToken, 0)
|
|
||||||
setAppName(appInfo.packageName, workProfile, editText.text.toString())
|
|
||||||
refreshAppMenu()
|
|
||||||
|
|
||||||
return@setOnEditorActionListener true
|
|
||||||
}
|
|
||||||
false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
popupView.findViewById<TextView>(R.id.hide).setOnClickListener {
|
|
||||||
setAppHidden(appInfo.packageName, workProfile, true)
|
|
||||||
refreshAppMenu()
|
|
||||||
|
|
||||||
popupWindow.dismiss()
|
|
||||||
}
|
|
||||||
|
|
||||||
return true // Indicate that the long click event is consumed}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun setAppHidden(packageName: String, profile: Int, hidden: Boolean) {
|
|
||||||
// Get the shared preferences editor
|
|
||||||
val editor = getSharedPreferences("hidden_apps", MODE_PRIVATE).edit()
|
|
||||||
val key = "$packageName-$profile"
|
|
||||||
editor.putBoolean(key, hidden)
|
|
||||||
editor.apply()
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun isAppHidden(packageName: String, profile: Int): Boolean {
|
|
||||||
// Get the shared preferences object
|
|
||||||
val sharedPref = getSharedPreferences("hidden_apps", MODE_PRIVATE)
|
|
||||||
val key = "$packageName-$profile"
|
|
||||||
return sharedPref.getBoolean(key, false) // Default to false (visible)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun setAppVisible(packageName: String, profile: Int) {
|
|
||||||
// Get the shared preferences editor
|
|
||||||
val editor = getSharedPreferences("hidden_apps", MODE_PRIVATE).edit()
|
|
||||||
val key = "$packageName-$profile"
|
|
||||||
editor.remove(key)
|
|
||||||
editor.apply()
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun setAppName(packageName: String, profile: Int, newName: String) {
|
|
||||||
val editor = getSharedPreferences("renamed_apps", MODE_PRIVATE).edit()
|
|
||||||
val key = "$packageName-$profile"
|
|
||||||
editor.putString(key, newName)
|
|
||||||
editor.apply()
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun getAppName(packageName: String, profile: Int, appName: CharSequence): CharSequence? {
|
|
||||||
val sharedPreferences = getSharedPreferences("renamed_apps", MODE_PRIVATE)
|
|
||||||
val key = "$packageName-$profile"
|
|
||||||
return sharedPreferences.getString(key, appName.toString())
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
@ -1,20 +1,24 @@
|
||||||
package eu.ottop.yamlauncher
|
package eu.ottop.yamlauncher
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
import android.content.pm.LauncherActivityInfo
|
import android.content.pm.LauncherActivityInfo
|
||||||
import android.os.UserHandle
|
import android.os.UserHandle
|
||||||
import android.util.Log
|
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
import android.view.inputmethod.InputMethodManager
|
||||||
import android.widget.EditText
|
import android.widget.EditText
|
||||||
import android.widget.FrameLayout
|
import android.widget.FrameLayout
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
|
import androidx.appcompat.widget.AppCompatButton
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
|
|
||||||
class AppMenuAdapter(private var apps: List<Pair<LauncherActivityInfo, Pair<UserHandle, Int>>>, private val itemClickListener: OnItemClickListener, private val itemLongClickListener: OnItemLongClickListener) :
|
class AppMenuAdapter(private val activity: AppMenuActivity, private var apps: List<Pair<LauncherActivityInfo, Pair<UserHandle, Int>>>, private val itemClickListener: OnItemClickListener, private val itemLongClickListener: OnItemLongClickListener) :
|
||||||
RecyclerView.Adapter<AppMenuAdapter.AppViewHolder>() {
|
RecyclerView.Adapter<AppMenuAdapter.AppViewHolder>() {
|
||||||
|
|
||||||
|
private val sharedPreferenceManager = SharedPreferenceManager()
|
||||||
|
|
||||||
interface OnItemClickListener {
|
interface OnItemClickListener {
|
||||||
fun onItemClick(appInfo: LauncherActivityInfo, userHandle: UserHandle)
|
fun onItemClick(appInfo: LauncherActivityInfo, userHandle: UserHandle)
|
||||||
}
|
}
|
||||||
|
|
@ -67,9 +71,15 @@ class AppMenuAdapter(private var apps: List<Pair<LauncherActivityInfo, Pair<User
|
||||||
override fun onBindViewHolder(holder: AppViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: AppViewHolder, position: Int) {
|
||||||
val app = apps[position]
|
val app = apps[position]
|
||||||
val appInfo = app.first.activityInfo.applicationInfo
|
val appInfo = app.first.activityInfo.applicationInfo
|
||||||
holder.textView.text = appInfo.loadLabel(holder.itemView.context.packageManager)
|
holder.textView.text = sharedPreferenceManager.getAppName(activity, app.first.applicationInfo.packageName,app.second.second, appInfo.loadLabel(holder.itemView.context.packageManager))
|
||||||
holder.editView.findViewById<EditText>(R.id.app_name_edit).setText(holder.textView.text)
|
holder.editView.findViewById<EditText>(R.id.app_name_edit).setText(holder.textView.text)
|
||||||
holder.textView.visibility = View.VISIBLE
|
holder.textView.visibility = View.VISIBLE
|
||||||
|
holder.editView.findViewById<AppCompatButton>(R.id.reset).setOnClickListener {
|
||||||
|
val imm = activity.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
|
||||||
|
imm.hideSoftInputFromWindow(holder.editView.windowToken, 0)
|
||||||
|
sharedPreferenceManager.resetAppName(activity, app.first.applicationInfo.packageName, app.second.second)
|
||||||
|
activity.manualRefreshApps()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getItemCount(): Int {
|
override fun getItemCount(): Int {
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
android:textAppearance="@android:style/TextAppearance.DeviceDefault" />
|
android:textAppearance="@android:style/TextAppearance.DeviceDefault" />
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatButton
|
<androidx.appcompat.widget.AppCompatButton
|
||||||
android:id="@+id/button2"
|
android:id="@+id/reset"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue