diff --git a/app/src/main/java/eu/ottop/yamlauncher/AppMenuActivity.kt b/app/src/main/java/eu/ottop/yamlauncher/AppMenuActivity.kt index e7619bd..dda4c4d 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/AppMenuActivity.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/AppMenuActivity.kt @@ -44,10 +44,10 @@ class AppMenuActivity : AppCompatActivity(), AppMenuAdapter.OnItemClickListener, private lateinit var menuMode: String companion object { - private lateinit var callback: (Pair>) -> Unit + private lateinit var callback: (Pair, Pair>) -> Unit private const val MENU_MODE = "abcd" - fun start(context: Context, param1: String = "app", callback: (Pair>) -> Unit) { + fun start(context: Context, param1: String = "app", callback: (Pair, Pair>) -> Unit) { val intent = Intent(context, AppMenuActivity::class.java).apply { putExtra(MENU_MODE, param1) } @@ -88,8 +88,8 @@ class AppMenuActivity : AppCompatActivity(), AppMenuAdapter.OnItemClickListener, } } - override fun onShortcut(appInfo: LauncherActivityInfo, userHandle: UserHandle, textView: TextView) { - callback.invoke(Pair(textView.text.toString(), Pair(appInfo, userHandle,))) + override fun onShortcut(appInfo: LauncherActivityInfo, userHandle: UserHandle, textView: TextView, userProfile: Int) { + callback.invoke(Pair(Pair(textView.text.toString(), userProfile), Pair(appInfo, userHandle,))) finish() } diff --git a/app/src/main/java/eu/ottop/yamlauncher/AppMenuAdapter.kt b/app/src/main/java/eu/ottop/yamlauncher/AppMenuAdapter.kt index 2527274..256d03c 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/AppMenuAdapter.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/AppMenuAdapter.kt @@ -31,7 +31,7 @@ class AppMenuAdapter( } interface OnShortcutListener { - fun onShortcut(appInfo: LauncherActivityInfo, userHandle: UserHandle, textView: TextView) + fun onShortcut(appInfo: LauncherActivityInfo, userHandle: UserHandle, textView: TextView, userProfile: Int) } interface OnItemLongClickListener { @@ -60,7 +60,7 @@ class AppMenuAdapter( if (position != RecyclerView.NO_POSITION) { val app = apps[position].first if (menuMode == "shortcut") { - shortcutListener.onShortcut(app, apps[position].second.first, textView) + shortcutListener.onShortcut(app, apps[position].second.first, textView, apps[position].second.second ) } else if (menuMode == "app") { itemClickListener.onItemClick(app, apps[position].second.first) diff --git a/app/src/main/java/eu/ottop/yamlauncher/MainActivity.kt b/app/src/main/java/eu/ottop/yamlauncher/MainActivity.kt index 9264775..af58172 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/MainActivity.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/MainActivity.kt @@ -24,6 +24,7 @@ class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding private lateinit var gestureDetector: GestureDetector private lateinit var launcherApps: LauncherApps + private val sharedPreferenceManager = SharedPreferenceManager() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -35,15 +36,25 @@ class MainActivity : AppCompatActivity() { for (i in findViewById(R.id.shortcuts).children) { - var textView = i as TextView + val textView = i as TextView - i.setOnClickListener { - Log.d("hHJKJFAF", "Click done") + val savedView = sharedPreferenceManager.getShortcut(this, textView) + + if (savedView?.get(1) != "e") { + textView.text = savedView?.get(2) + textView.setOnClickListener { + val mainActivity = launcherApps.getActivityList(savedView?.get(0).toString(), launcherApps.profiles[savedView?.get(1)!!.toInt()]).firstOrNull() + if (mainActivity != null) { + launcherApps.startMainActivity(mainActivity.componentName, launcherApps.profiles[savedView[1]!!.toInt()], null, null) + } else { + Toast.makeText(this, "Cannot launch app", Toast.LENGTH_SHORT).show() + } + } } i.setOnLongClickListener { AppMenuActivity.start(this@MainActivity, "shortcut") { newText -> - textView.text = newText.first + textView.text = newText.first.first i.setOnClickListener { val mainActivity = launcherApps.getActivityList(newText.second.first.applicationInfo.packageName, newText.second.second).firstOrNull() if (mainActivity != null) { @@ -52,6 +63,7 @@ class MainActivity : AppCompatActivity() { Toast.makeText(this, "Cannot launch app", Toast.LENGTH_SHORT).show() } } + sharedPreferenceManager.setShortcut(this, textView, newText.second.first.applicationInfo.packageName, newText.first.second) } return@setOnLongClickListener true diff --git a/app/src/main/java/eu/ottop/yamlauncher/SharedPreferenceManager.kt b/app/src/main/java/eu/ottop/yamlauncher/SharedPreferenceManager.kt index 7c08923..bb8d5a5 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/SharedPreferenceManager.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/SharedPreferenceManager.kt @@ -1,10 +1,25 @@ package eu.ottop.yamlauncher import android.content.Context +import android.widget.TextView import androidx.appcompat.app.AppCompatActivity 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.apply() + } + + fun getShortcut(cont: Context, textView: TextView): List? { + val sharedPref = cont.getSharedPreferences("shortcuts", AppCompatActivity.MODE_PRIVATE) + val key = textView.id.toString() + val value = sharedPref.getString(key, "e-e") + return value?.split("-") + } + fun setAppHidden(cont: Context, packageName: String, profile: Int, hidden: Boolean) { val editor = cont.getSharedPreferences("hidden_apps", AppCompatActivity.MODE_PRIVATE).edit() val key = "$packageName-$profile" diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 9db353d..2c4a04e 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -93,6 +93,22 @@ android:textColor="#F3F3F3" android:textSize="28sp" android:visibility="visible" /> + +