mirror of
https://github.com/He4eT/yamf_launcher.git
synced 2026-05-04 17:37:25 +00:00
Added work profile app indicators and long click to select app toast for shortcuts
This commit is contained in:
parent
25a1274821
commit
27bca8260f
8 changed files with 166 additions and 32 deletions
|
|
@ -65,6 +65,11 @@ class AppMenuActivity : AppCompatActivity(), AppMenuAdapter.OnItemClickListener,
|
|||
binding = ActivityAppMenuBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
setSupportActionBar(null)
|
||||
|
||||
if (menuMode == "shortcut") {
|
||||
binding.menutitle.visibility = View.VISIBLE
|
||||
}
|
||||
|
||||
launcherApps = getSystemService(Context.LAUNCHER_APPS_SERVICE) as LauncherApps
|
||||
searchView = findViewById(R.id.searchView)
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package eu.ottop.yamlauncher
|
|||
|
||||
import android.content.Context
|
||||
import android.content.pm.LauncherActivityInfo
|
||||
import android.content.res.Resources
|
||||
import android.os.UserHandle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
|
|
@ -12,6 +13,7 @@ import android.widget.FrameLayout
|
|||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
import androidx.appcompat.widget.AppCompatButton
|
||||
import androidx.core.content.res.ResourcesCompat
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
|
||||
class AppMenuAdapter(
|
||||
|
|
@ -55,9 +57,8 @@ class AppMenuAdapter(
|
|||
actionMenuLayout.visibility = View.INVISIBLE
|
||||
editView.visibility = View.INVISIBLE
|
||||
|
||||
itemView.setOnClickListener {
|
||||
textView.setOnClickListener {
|
||||
val position = bindingAdapterPosition
|
||||
if (position != RecyclerView.NO_POSITION) {
|
||||
val app = apps[position].first
|
||||
if (menuMode == "shortcut") {
|
||||
shortcutListener.onShortcut(app, apps[position].second.first, textView, apps[position].second.second)
|
||||
|
|
@ -66,11 +67,10 @@ class AppMenuAdapter(
|
|||
itemClickListener.onItemClick(app, apps[position].second.first)
|
||||
}
|
||||
}
|
||||
}
|
||||
if (menuMode == "app") {
|
||||
itemView.setOnLongClickListener {
|
||||
textView.setOnLongClickListener {
|
||||
val position = bindingAdapterPosition
|
||||
if (position != RecyclerView.NO_POSITION) {
|
||||
|
||||
val app = apps[position].first
|
||||
itemLongClickListener.onItemLongClick(
|
||||
app,
|
||||
|
|
@ -82,8 +82,8 @@ class AppMenuAdapter(
|
|||
)
|
||||
return@setOnLongClickListener true
|
||||
}
|
||||
false
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -96,6 +96,17 @@ class AppMenuAdapter(
|
|||
|
||||
override fun onBindViewHolder(holder: AppViewHolder, position: Int) {
|
||||
val app = apps[position]
|
||||
|
||||
holder.textView.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null)
|
||||
|
||||
if (app.second.second != 0) {
|
||||
holder.textView.setCompoundDrawablesWithIntrinsicBounds(ResourcesCompat.getDrawable(activity.resources, R.drawable.ic_work_app, null),null,null,null)
|
||||
}
|
||||
else {
|
||||
holder.textView.setCompoundDrawablesWithIntrinsicBounds(ResourcesCompat.getDrawable(activity.resources, R.drawable.ic_empty, null),null,null,null)
|
||||
}
|
||||
holder.textView.compoundDrawablePadding = 0
|
||||
|
||||
val appInfo = app.first.activityInfo.applicationInfo
|
||||
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)
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ import android.widget.Toast
|
|||
import androidx.activity.result.ActivityResultLauncher
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.content.res.ResourcesCompat
|
||||
import androidx.core.view.children
|
||||
import eu.ottop.yamlauncher.databinding.ActivityMainBinding
|
||||
import kotlin.math.abs
|
||||
|
|
@ -40,12 +41,27 @@ class MainActivity : AppCompatActivity() {
|
|||
|
||||
val savedView = sharedPreferenceManager.getShortcut(this, textView)
|
||||
|
||||
textView.setCompoundDrawablesWithIntrinsicBounds(ResourcesCompat.getDrawable(resources, R.drawable.ic_empty, null),null,null,null)
|
||||
|
||||
textView.compoundDrawablePadding = 0
|
||||
|
||||
i.setOnClickListener {
|
||||
Toast.makeText(this, "Long click to select an app", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
|
||||
if (savedView?.get(1) != "e") {
|
||||
|
||||
if (savedView?.get(1) != "0") {
|
||||
textView.setCompoundDrawablesWithIntrinsicBounds(ResourcesCompat.getDrawable(resources, R.drawable.ic_work_app, null),null,null,null)
|
||||
}
|
||||
else {
|
||||
textView.setCompoundDrawablesWithIntrinsicBounds(ResourcesCompat.getDrawable(resources, R.drawable.ic_empty, null),null,null,null)
|
||||
}
|
||||
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)
|
||||
launcherApps.startMainActivity(mainActivity.componentName, launcherApps.profiles[savedView[1].toInt()], null, null)
|
||||
} else {
|
||||
Toast.makeText(this, "Cannot launch app", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
|
|
@ -54,6 +70,13 @@ class MainActivity : AppCompatActivity() {
|
|||
|
||||
i.setOnLongClickListener {
|
||||
AppMenuActivity.start(this@MainActivity, "shortcut") { newText ->
|
||||
|
||||
if (newText.first.second != 0) {
|
||||
textView.setCompoundDrawablesWithIntrinsicBounds(ResourcesCompat.getDrawable(resources, R.drawable.ic_work_app, null),null,null,null)
|
||||
}
|
||||
else {
|
||||
textView.setCompoundDrawablesWithIntrinsicBounds(ResourcesCompat.getDrawable(resources, R.drawable.ic_empty, null),null,null,null)
|
||||
}
|
||||
textView.text = newText.first.first
|
||||
i.setOnClickListener {
|
||||
val mainActivity = launcherApps.getActivityList(newText.second.first.applicationInfo.packageName, newText.second.second).firstOrNull()
|
||||
|
|
|
|||
10
app/src/main/res/drawable/ic_empty.xml
Normal file
10
app/src/main/res/drawable/ic_empty.xml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="15dp"
|
||||
android:height="15dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:alpha="0">
|
||||
<group>
|
||||
<path/>
|
||||
</group>
|
||||
</vector>
|
||||
17
app/src/main/res/drawable/ic_work_app.xml
Normal file
17
app/src/main/res/drawable/ic_work_app.xml
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="15dp"
|
||||
android:height="15dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="#F3F3F3"
|
||||
android:alpha="1">
|
||||
<group android:scaleX="0.5"
|
||||
android:scaleY="0.5"
|
||||
android:translateX="0
|
||||
"
|
||||
android:translateY="6">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M12,2C6.47,2 2,6.47 2,12s4.47,10 10,10 10,-4.47 10,-10S17.53,2 12,2z"/>
|
||||
</group>
|
||||
</vector>
|
||||
|
|
@ -6,11 +6,30 @@
|
|||
android:gravity="bottom"
|
||||
android:orientation="vertical">
|
||||
|
||||
<Space
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/menutitle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:clickable="false"
|
||||
android:gravity="start"
|
||||
android:paddingLeft="40dp"
|
||||
android:paddingTop="20dp"
|
||||
android:paddingRight="40dp"
|
||||
android:paddingBottom="20dp"
|
||||
android:text="Select an app"
|
||||
android:textAppearance="@android:style/TextAppearance.DeviceDefault"
|
||||
android:textColor="#C1F3F3F3"
|
||||
android:textSize="36sp"
|
||||
android:visibility="gone" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginTop="25dp"
|
||||
android:layout_weight="1"
|
||||
android:clipToPadding="false"
|
||||
android:fadingEdgeLength="20dp"
|
||||
|
|
|
|||
|
|
@ -15,19 +15,19 @@
|
|||
<TextClock
|
||||
android:id="@+id/text_clock"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginVertical="20dp"
|
||||
android:layout_weight="1"
|
||||
android:textAlignment="center"
|
||||
android:textColor="#F3F3F3"
|
||||
android:textSize="70sp"
|
||||
android:fontFamily="@null"
|
||||
android:textAppearance= "@android:style/TextAppearance.DeviceDefault" />
|
||||
android:textAlignment="center"
|
||||
android:textAppearance="@android:style/TextAppearance.DeviceDefault"
|
||||
android:textColor="#F3F3F3"
|
||||
android:textSize="70sp" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/shortcuts"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
|
|
@ -109,6 +109,54 @@
|
|||
android:textColor="#F3F3F3"
|
||||
android:textSize="28sp"
|
||||
android:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/app6"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:clickable="false"
|
||||
android:gravity="start"
|
||||
android:paddingLeft="40dp"
|
||||
android:paddingTop="20dp"
|
||||
android:paddingRight="40dp"
|
||||
android:paddingBottom="20dp"
|
||||
android:text="App"
|
||||
android:textAppearance="@android:style/TextAppearance.DeviceDefault"
|
||||
android:textColor="#F3F3F3"
|
||||
android:textSize="28sp"
|
||||
android:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/app7"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:clickable="false"
|
||||
android:gravity="start"
|
||||
android:paddingLeft="40dp"
|
||||
android:paddingTop="20dp"
|
||||
android:paddingRight="40dp"
|
||||
android:paddingBottom="20dp"
|
||||
android:text="App"
|
||||
android:textAppearance="@android:style/TextAppearance.DeviceDefault"
|
||||
android:textColor="#F3F3F3"
|
||||
android:textSize="28sp"
|
||||
android:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/app8"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:clickable="false"
|
||||
android:gravity="start"
|
||||
android:paddingLeft="40dp"
|
||||
android:paddingTop="20dp"
|
||||
android:paddingRight="40dp"
|
||||
android:paddingBottom="20dp"
|
||||
android:text="App"
|
||||
android:textAppearance="@android:style/TextAppearance.DeviceDefault"
|
||||
android:textColor="#F3F3F3"
|
||||
android:textSize="28sp"
|
||||
android:visibility="visible" />
|
||||
</LinearLayout>
|
||||
|
||||
<Space
|
||||
|
|
|
|||
|
|
@ -31,8 +31,8 @@
|
|||
android:paddingBottom="10dp"
|
||||
android:selectAllOnFocus="true"
|
||||
android:singleLine="true"
|
||||
android:textSize="28sp"
|
||||
android:textAppearance="@android:style/TextAppearance.DeviceDefault" />
|
||||
android:textAppearance="@android:style/TextAppearance.DeviceDefault"
|
||||
android:textSize="28sp" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/reset"
|
||||
|
|
@ -45,8 +45,8 @@
|
|||
android:insetTop="0dp"
|
||||
android:insetBottom="0dp"
|
||||
android:text="Reset"
|
||||
android:textColor="#F3F3F3"
|
||||
android:textAppearance="@android:style/TextAppearance.DeviceDefault"/>
|
||||
android:textAppearance="@android:style/TextAppearance.DeviceDefault"
|
||||
android:textColor="#F3F3F3" />
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
|
|
@ -62,7 +62,8 @@
|
|||
android:textAppearance="@android:style/TextAppearance.DeviceDefault"
|
||||
android:textColor="#F3F3F3"
|
||||
android:textSize="28sp"
|
||||
android:visibility="visible" />
|
||||
android:visibility="visible"
|
||||
app:drawableLeftCompat="@drawable/ic_work_app" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/action_menu"
|
||||
|
|
@ -80,9 +81,9 @@
|
|||
android:foreground="@drawable/app_action_foreground"
|
||||
android:text="Info"
|
||||
android:textAlignment="center"
|
||||
android:textAppearance="@android:style/TextAppearance.DeviceDefault"
|
||||
android:textColor="#F3F3F3FF"
|
||||
app:drawableTopCompat="@android:drawable/ic_menu_info_details"
|
||||
android:textAppearance="@android:style/TextAppearance.DeviceDefault" />
|
||||
app:drawableTopCompat="@android:drawable/ic_menu_info_details" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/uninstall"
|
||||
|
|
@ -93,9 +94,9 @@
|
|||
android:foreground="@drawable/app_action_foreground"
|
||||
android:text="Uninstall"
|
||||
android:textAlignment="center"
|
||||
android:textAppearance="@android:style/TextAppearance.DeviceDefault"
|
||||
android:textColor="#F3F3F3FF"
|
||||
app:drawableTopCompat="@android:drawable/ic_menu_delete"
|
||||
android:textAppearance="@android:style/TextAppearance.DeviceDefault" />
|
||||
app:drawableTopCompat="@android:drawable/ic_menu_delete" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/rename"
|
||||
|
|
@ -106,9 +107,9 @@
|
|||
android:foreground="@drawable/app_action_foreground"
|
||||
android:text="Rename"
|
||||
android:textAlignment="center"
|
||||
android:textAppearance="@android:style/TextAppearance.DeviceDefault"
|
||||
android:textColor="#F3F3F3FF"
|
||||
app:drawableTopCompat="@android:drawable/ic_menu_edit"
|
||||
android:textAppearance="@android:style/TextAppearance.DeviceDefault" />
|
||||
app:drawableTopCompat="@android:drawable/ic_menu_edit" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/hide"
|
||||
|
|
@ -119,9 +120,9 @@
|
|||
android:foreground="@drawable/app_action_foreground"
|
||||
android:text="Hide"
|
||||
android:textAlignment="center"
|
||||
android:textAppearance="@android:style/TextAppearance.DeviceDefault"
|
||||
android:textColor="#F3F3F3FF"
|
||||
app:drawableTopCompat="@android:drawable/ic_menu_view"
|
||||
android:textAppearance="@android:style/TextAppearance.DeviceDefault" />
|
||||
app:drawableTopCompat="@android:drawable/ic_menu_view" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/close"
|
||||
|
|
@ -132,9 +133,9 @@
|
|||
android:foreground="@drawable/app_action_foreground"
|
||||
android:text="Close"
|
||||
android:textAlignment="center"
|
||||
android:textAppearance="@android:style/TextAppearance.DeviceDefault"
|
||||
android:textColor="#F3F3F3FF"
|
||||
app:drawableTopCompat="@android:drawable/ic_menu_close_clear_cancel"
|
||||
android:textAppearance="@android:style/TextAppearance.DeviceDefault" />
|
||||
app:drawableTopCompat="@android:drawable/ic_menu_close_clear_cancel" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue