summaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
authorTanuj <thetanuj@hotmail.com>2023-03-04 16:02:06 +0530
committerTanuj <thetanuj@hotmail.com>2023-03-04 16:02:06 +0530
commitf00cff2c396a9efd6728dce25027101867ec4db9 (patch)
treeaadb26046d5a69516953c5345694a718823c47d8 /app/src
parent674492e48e072e4e760826babb112433497c4b5d (diff)
downloadSidePhOnelauncher-f00cff2c396a9efd6728dce25027101867ec4db9.tar.gz
SidePhOnelauncher-f00cff2c396a9efd6728dce25027101867ec4db9.tar.bz2
SidePhOnelauncher-f00cff2c396a9efd6728dce25027101867ec4db9.zip
Added rename app feature
Diffstat (limited to 'app/src')
-rw-r--r--app/src/main/java/app/olauncher/MainViewModel.kt2
-rw-r--r--app/src/main/java/app/olauncher/data/Prefs.kt4
-rw-r--r--app/src/main/java/app/olauncher/helper/Utils.kt11
-rw-r--r--app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt28
-rw-r--r--app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt4
-rw-r--r--app/src/main/res/drawable/ic_rename.xml9
-rw-r--r--app/src/main/res/layout/adapter_app_drawer.xml51
7 files changed, 103 insertions, 6 deletions
diff --git a/app/src/main/java/app/olauncher/MainViewModel.kt b/app/src/main/java/app/olauncher/MainViewModel.kt
index 09be03e..3f749fe 100644
--- a/app/src/main/java/app/olauncher/MainViewModel.kt
+++ b/app/src/main/java/app/olauncher/MainViewModel.kt
@@ -161,7 +161,7 @@ class MainViewModel(application: Application) : AndroidViewModel(application) {
fun getAppList(includeHiddenApps: Boolean = false) {
viewModelScope.launch {
- appList.value = getAppsList(appContext, includeHiddenApps)
+ appList.value = getAppsList(appContext, prefs, includeHiddenApps)
}
}
diff --git a/app/src/main/java/app/olauncher/data/Prefs.kt b/app/src/main/java/app/olauncher/data/Prefs.kt
index 4957516..38389ac 100644
--- a/app/src/main/java/app/olauncher/data/Prefs.kt
+++ b/app/src/main/java/app/olauncher/data/Prefs.kt
@@ -399,4 +399,8 @@ class Prefs(context: Context) {
else -> ""
}
}
+
+ fun getAppRenameLabel(appPackage: String): String = prefs.getString(appPackage, "").toString()
+
+ fun setAppRenameLabel(appPackage: String, renameLabel: String) = prefs.edit().putString(appPackage, renameLabel).apply()
} \ No newline at end of file
diff --git a/app/src/main/java/app/olauncher/helper/Utils.kt b/app/src/main/java/app/olauncher/helper/Utils.kt
index 26aa209..0787486 100644
--- a/app/src/main/java/app/olauncher/helper/Utils.kt
+++ b/app/src/main/java/app/olauncher/helper/Utils.kt
@@ -52,7 +52,7 @@ fun Context.showToast(stringResource: Int, duration: Int = Toast.LENGTH_SHORT) {
Toast.makeText(this, getString(stringResource), duration).show()
}
-suspend fun getAppsList(context: Context, includeHiddenApps: Boolean = false): MutableList<AppModel> {
+suspend fun getAppsList(context: Context, prefs: Prefs, includeHiddenApps: Boolean = false): MutableList<AppModel> {
return withContext(Dispatchers.IO) {
val appList: MutableList<AppModel> = mutableListOf()
@@ -66,10 +66,13 @@ suspend fun getAppsList(context: Context, includeHiddenApps: Boolean = false): M
for (profile in userManager.userProfiles) {
for (app in launcherApps.getActivityList(null, profile)) {
+
+ val appLabelShown = prefs.getAppRenameLabel(app.applicationInfo.packageName).ifBlank { app.label.toString() }
+
if (includeHiddenApps && app.applicationInfo.packageName != BuildConfig.APPLICATION_ID)
appList.add(
AppModel(
- app.label.toString(),
+ appLabelShown,
collator.getCollationKey(app.label.toString()),
app.applicationInfo.packageName,
app.componentName.className,
@@ -81,7 +84,7 @@ suspend fun getAppsList(context: Context, includeHiddenApps: Boolean = false): M
)
appList.add(
AppModel(
- app.label.toString(),
+ appLabelShown,
collator.getCollationKey(app.label.toString()),
app.applicationInfo.packageName,
app.componentName.className,
@@ -90,7 +93,7 @@ suspend fun getAppsList(context: Context, includeHiddenApps: Boolean = false): M
)
}
}
- appList.sort()
+ appList.sortBy { it.appLabel.lowercase() }
} catch (e: Exception) {
e.printStackTrace()
diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt b/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt
index 4394c9d..1cd7e13 100644
--- a/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt
+++ b/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt
@@ -13,6 +13,7 @@ import app.olauncher.data.AppModel
import app.olauncher.data.Constants
import app.olauncher.databinding.AdapterAppDrawerBinding
import app.olauncher.helper.isSystemApp
+import app.olauncher.helper.showKeyboard
import java.text.Normalizer
@SuppressLint("NotifyDataSetChanged")
@@ -23,6 +24,7 @@ class AppDrawerAdapter(
private val appInfoListener: (AppModel) -> Unit,
private val appDeleteListener: (AppModel) -> Unit,
private val appHideListener: (AppModel, Int) -> Unit,
+ private val appRenameListener: (AppModel, String) -> Unit,
) : RecyclerView.Adapter<AppDrawerAdapter.ViewHolder>(), Filterable {
private var autoLaunch = true
@@ -40,7 +42,17 @@ class AppDrawerAdapter(
try {
if (appFilteredList.size == 0) return
val appModel = appFilteredList[holder.bindingAdapterPosition]
- holder.bind(flag, appLabelGravity, myUserHandle, appModel, appClickListener, appDeleteListener, appInfoListener, appHideListener)
+ holder.bind(
+ flag,
+ appLabelGravity,
+ myUserHandle,
+ appModel,
+ appClickListener,
+ appDeleteListener,
+ appInfoListener,
+ appHideListener,
+ appRenameListener
+ )
} catch (e: Exception) {
e.printStackTrace()
}
@@ -117,6 +129,7 @@ class AppDrawerAdapter(
appDeleteListener: (AppModel) -> Unit,
appInfoListener: (AppModel) -> Unit,
appHideListener: (AppModel, Int) -> Unit,
+ appRenameListener: (AppModel, String) -> Unit,
) =
with(binding) {
appHideLayout.visibility = View.GONE
@@ -133,6 +146,19 @@ class AppDrawerAdapter(
}
true
}
+ appRename.setOnClickListener {
+ if (appModel.appPackage.isNotEmpty()) {
+ etAppRename.hint = appModel.appLabel
+ renameLayout.visibility = View.VISIBLE
+ appHideLayout.visibility = View.GONE
+ etAppRename.showKeyboard()
+ }
+ }
+ tvSaveRename.setOnClickListener {
+ val renameLabel = etAppRename.text.toString().trim()
+ if (renameLabel.isNotBlank() && appModel.appPackage.isNotBlank())
+ appRenameListener(appModel, renameLabel)
+ }
appInfo.setOnClickListener { appInfoListener(appModel) }
appDelete.setOnClickListener { appDeleteListener(appModel) }
appHideLayout.setOnClickListener { appHideLayout.visibility = View.GONE }
diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt
index 5588e0f..3ded041 100644
--- a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt
+++ b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt
@@ -138,6 +138,10 @@ class AppDrawerFragment : Fragment() {
viewModel.showMessageDialog(getString(R.string.hidden_apps_message))
findNavController().navigate(R.id.action_appListFragment_to_settingsFragment2)
}
+ },
+ appRenameListener = { appModel, renameLabel ->
+ prefs.setAppRenameLabel(appModel.appPackage, renameLabel)
+ viewModel.getAppList()
}
)
binding.recyclerView.adapter = adapter
diff --git a/app/src/main/res/drawable/ic_rename.xml b/app/src/main/res/drawable/ic_rename.xml
new file mode 100644
index 0000000..b07e067
--- /dev/null
+++ b/app/src/main/res/drawable/ic_rename.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path
+ android:fillColor="?attr/primaryColor"
+ android:pathData="M18.41,5.8L17.2,4.59c-0.78,-0.78 -2.05,-0.78 -2.83,0l-2.68,2.68L3,15.96V20h4.04l8.74,-8.74 2.63,-2.63c0.79,-0.78 0.79,-2.05 0,-2.83zM6.21,18H5v-1.21l8.66,-8.66 1.21,1.21L6.21,18zM11,20l4,-4h6v4H11z" />
+</vector>
diff --git a/app/src/main/res/layout/adapter_app_drawer.xml b/app/src/main/res/layout/adapter_app_drawer.xml
index a9a9c64..f2fdc05 100644
--- a/app/src/main/res/layout/adapter_app_drawer.xml
+++ b/app/src/main/res/layout/adapter_app_drawer.xml
@@ -52,6 +52,18 @@
app:drawableTopCompat="@drawable/ic_delete" />
<TextView
+ android:id="@+id/appRename"
+ style="@style/TextSmall"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:drawablePadding="2dp"
+ android:gravity="center"
+ android:paddingHorizontal="12dp"
+ android:text="@string/rename"
+ android:textSize="12sp"
+ app:drawableTopCompat="@drawable/ic_rename" />
+
+ <TextView
android:id="@+id/appHide"
style="@style/TextSmall"
android:layout_width="wrap_content"
@@ -77,4 +89,43 @@
</LinearLayout>
+ <LinearLayout
+ android:id="@+id/renameLayout"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:animateLayoutChanges="true"
+ android:background="?attr/primaryColorInverseTrans80"
+ android:clickable="true"
+ android:focusable="true"
+ android:gravity="end|center_vertical"
+ android:orientation="horizontal"
+ android:visibility="gone"
+ tools:visibility="visible">
+
+ <EditText
+ android:id="@+id/etAppRename"
+ style="@style/TextLarge"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_marginStart="20dp"
+ android:layout_weight="1"
+ android:background="@null"
+ android:gravity="center_vertical"
+ android:inputType="textCapWords"
+ android:maxLength="30"
+ android:maxLines="1"
+ android:textColorHint="?attr/primaryColorTrans50" />
+
+ <TextView
+ android:id="@+id/tvSaveRename"
+ style="@style/TextSmallBold"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:paddingHorizontal="20dp"
+ android:text="@string/rename"
+ android:textAllCaps="true" />
+
+ </LinearLayout>
+
</FrameLayout>