mirror of
https://github.com/jrpie/Launcher.git
synced 2025-02-23 14:31:30 +01:00
fix #5: don't show uninstall option for system apps.
The three dot menu button was removed, since the menu is already available by long clicking
This commit is contained in:
parent
522353a62c
commit
bc0ecad1ac
4 changed files with 15 additions and 29 deletions
|
@ -9,6 +9,7 @@ import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.SharedPreferences
|
import android.content.SharedPreferences
|
||||||
import android.content.pm.ActivityInfo
|
import android.content.pm.ActivityInfo
|
||||||
|
import android.content.pm.ApplicationInfo
|
||||||
import android.content.pm.LauncherActivityInfo
|
import android.content.pm.LauncherActivityInfo
|
||||||
import android.content.pm.LauncherApps
|
import android.content.pm.LauncherApps
|
||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
|
@ -403,6 +404,7 @@ fun loadApps(packageManager: PackageManager, context: Context) {
|
||||||
app.packageName = activityInfo.applicationInfo.packageName
|
app.packageName = activityInfo.applicationInfo.packageName
|
||||||
app.icon = activityInfo.getBadgedIcon(0)
|
app.icon = activityInfo.getBadgedIcon(0)
|
||||||
app.user = user.hashCode()
|
app.user = user.hashCode()
|
||||||
|
app.isSystemApp = activityInfo.applicationInfo.flags.and(ApplicationInfo.FLAG_SYSTEM) != 0
|
||||||
loadList.add(app)
|
loadList.add(app)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,11 +51,9 @@ class AppsRecyclerAdapter(val activity: Activity,
|
||||||
View.OnClickListener {
|
View.OnClickListener {
|
||||||
var textView: TextView = itemView.findViewById(R.id.list_apps_row_name)
|
var textView: TextView = itemView.findViewById(R.id.list_apps_row_name)
|
||||||
var img: ImageView = itemView.findViewById(R.id.list_apps_row_icon)
|
var img: ImageView = itemView.findViewById(R.id.list_apps_row_icon)
|
||||||
var menuDots: ImageView = itemView.findViewById(R.id.list_apps_row_menu)
|
|
||||||
|
|
||||||
override fun onClick(v: View) {
|
override fun onClick(v: View) {
|
||||||
val pos = adapterPosition
|
val pos = adapterPosition
|
||||||
val context: Context = v.context
|
|
||||||
val appPackageName = appsListDisplayed[pos].packageName.toString()
|
val appPackageName = appsListDisplayed[pos].packageName.toString()
|
||||||
val appUser = appsListDisplayed[pos].user
|
val appUser = appsListDisplayed[pos].user
|
||||||
when (intention){
|
when (intention){
|
||||||
|
@ -93,17 +91,9 @@ class AppsRecyclerAdapter(val activity: Activity,
|
||||||
)
|
)
|
||||||
|
|
||||||
// decide when to show the options popup menu about
|
// decide when to show the options popup menu about
|
||||||
if (isSystemApp || intention == ListActivity.ListActivityIntention.PICK) {
|
if (intention == ListActivity.ListActivityIntention.VIEW) {
|
||||||
viewHolder.menuDots.visibility = View.INVISIBLE
|
viewHolder.textView.setOnLongClickListener{ showOptionsPopup(viewHolder, appPackageName, appUser, isSystemApp) }
|
||||||
}
|
viewHolder.img.setOnLongClickListener{ showOptionsPopup(viewHolder, appPackageName, appUser, isSystemApp) }
|
||||||
else {
|
|
||||||
viewHolder.menuDots.visibility = View.VISIBLE
|
|
||||||
|
|
||||||
viewHolder.menuDots.setOnClickListener{ showOptionsPopup(viewHolder, appPackageName, appUser) }
|
|
||||||
viewHolder.menuDots.setOnLongClickListener{ showOptionsPopup(viewHolder, appPackageName, appUser) }
|
|
||||||
viewHolder.textView.setOnLongClickListener{ showOptionsPopup(viewHolder, appPackageName, appUser) }
|
|
||||||
viewHolder.img.setOnLongClickListener{ showOptionsPopup(viewHolder, appPackageName, appUser) }
|
|
||||||
|
|
||||||
// ensure onClicks are actually caught
|
// ensure onClicks are actually caught
|
||||||
viewHolder.textView.setOnClickListener{ viewHolder.onClick(viewHolder.textView) }
|
viewHolder.textView.setOnClickListener{ viewHolder.onClick(viewHolder.textView) }
|
||||||
viewHolder.img.setOnClickListener{ viewHolder.onClick(viewHolder.img) }
|
viewHolder.img.setOnClickListener{ viewHolder.onClick(viewHolder.img) }
|
||||||
|
@ -111,12 +101,16 @@ class AppsRecyclerAdapter(val activity: Activity,
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("SameReturnValue")
|
@Suppress("SameReturnValue")
|
||||||
private fun showOptionsPopup(viewHolder: ViewHolder, appPackageName: String, user: Int?): Boolean {
|
private fun showOptionsPopup(viewHolder: ViewHolder, appPackageName: String, user: Int?, isSystemApp: Boolean): Boolean {
|
||||||
//create the popup menu
|
//create the popup menu
|
||||||
|
|
||||||
val popup = PopupMenu(activity, viewHolder.menuDots)
|
val popup = PopupMenu(activity, viewHolder.img)
|
||||||
popup.inflate(R.menu.menu_app)
|
popup.inflate(R.menu.menu_app)
|
||||||
|
|
||||||
|
if (isSystemApp) {
|
||||||
|
popup.menu.findItem(R.id.app_menu_delete).setVisible(false)
|
||||||
|
}
|
||||||
|
|
||||||
popup.setOnMenuItemClickListener {
|
popup.setOnMenuItemClickListener {
|
||||||
when (it.itemId) {
|
when (it.itemId) {
|
||||||
R.id.app_menu_delete -> {
|
R.id.app_menu_delete -> {
|
||||||
|
|
|
@ -22,25 +22,11 @@
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="60sp"
|
android:layout_marginStart="60sp"
|
||||||
android:layout_marginLeft="60sp"
|
|
||||||
android:layout_marginEnd="5dp"
|
|
||||||
android:layout_marginRight="5dp"
|
|
||||||
android:gravity="start"
|
android:gravity="start"
|
||||||
android:text=""
|
android:text=""
|
||||||
android:textSize="20sp"
|
android:textSize="20sp"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/list_apps_row_menu"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/list_apps_row_menu"
|
|
||||||
android:layout_width="30sp"
|
|
||||||
android:layout_height="0dp"
|
|
||||||
android:gravity="center"
|
|
||||||
android:src="@drawable/baseline_more_horiz_24"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
4
fastlane/metadata/android/en-US/changelogs/21.txt
Normal file
4
fastlane/metadata/android/en-US/changelogs/21.txt
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
- Chinese translation (thank you, yzqzss!)
|
||||||
|
- Fixed workaround for bug when opening keyboard in full screen mode
|
||||||
|
- Removed uninstall option for system apps
|
||||||
|
- Removed three dots in app list (use long click instead)
|
Loading…
Add table
Reference in a new issue