diff --git a/app/src/main/java/com/finnmglas/launcher/ChooseActivity.kt b/app/src/main/java/com/finnmglas/launcher/ChooseActivity.kt index f84a2e5..7c1c533 100644 --- a/app/src/main/java/com/finnmglas/launcher/ChooseActivity.kt +++ b/app/src/main/java/com/finnmglas/launcher/ChooseActivity.kt @@ -12,6 +12,7 @@ import com.finnmglas.launcher.choose.AppsRecyclerAdapter import com.finnmglas.launcher.extern.* import kotlinx.android.synthetic.main.activity_choose.* +var intendedChoosePause = false // know when to close class ChooseActivity : AppCompatActivity() { @@ -64,7 +65,12 @@ class ChooseActivity : AppCompatActivity() { override fun onPause() { super.onPause() intendedSettingsPause = false - finish() + if(!intendedChoosePause) finish() + } + + override fun onResume() { + super.onResume() + intendedChoosePause = false } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { diff --git a/app/src/main/java/com/finnmglas/launcher/choose/AppsRecyclerAdapter.kt b/app/src/main/java/com/finnmglas/launcher/choose/AppsRecyclerAdapter.kt index 70ce1a1..df1ed41 100644 --- a/app/src/main/java/com/finnmglas/launcher/choose/AppsRecyclerAdapter.kt +++ b/app/src/main/java/com/finnmglas/launcher/choose/AppsRecyclerAdapter.kt @@ -3,20 +3,21 @@ package com.finnmglas.launcher.choose import android.app.Activity import android.content.Context import android.content.Intent -import android.content.pm.ApplicationInfo import android.content.pm.PackageManager import android.net.Uri import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.ImageView +import android.widget.PopupMenu import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.finnmglas.launcher.R import com.finnmglas.launcher.extern.FontAwesome import com.finnmglas.launcher.extern.REQUEST_CHOOSE_APP import com.finnmglas.launcher.extern.REQUEST_UNINSTALL - +import com.finnmglas.launcher.extern.openAppSettings +import com.finnmglas.launcher.intendedChoosePause class AppsRecyclerAdapter(val activity: Activity, val action: String?, val forApp: String?): RecyclerView.Adapter() { @@ -27,7 +28,7 @@ class AppsRecyclerAdapter(val activity: Activity, val action: String?, val forAp View.OnClickListener { var textView: TextView = itemView.findViewById(R.id.choose_row_app_name) var img: ImageView = itemView.findViewById(R.id.choose_row_app_icon) as ImageView - var delete: FontAwesome = itemView.findViewById(R.id.choose_row_app_delete) + var menuDots: FontAwesome = itemView.findViewById(R.id.choose_row_app_menu) override fun onClick(v: View) { val pos = adapterPosition @@ -62,14 +63,35 @@ class AppsRecyclerAdapter(val activity: Activity, val action: String?, val forAp viewHolder.textView.text = appLabel viewHolder.img.setImageDrawable(appIcon) - viewHolder.delete.setOnClickListener{ - val intent = Intent(Intent.ACTION_UNINSTALL_PACKAGE) - intent.data = Uri.parse("package:$appPackageName") - intent.putExtra(Intent.EXTRA_RETURN_RESULT, true) - activity.startActivityForResult(intent, REQUEST_UNINSTALL) + viewHolder.menuDots.setOnClickListener{ //creating a popup menu + + val popup = PopupMenu(activity, viewHolder.menuDots) + popup.inflate(R.menu.menu_app) + + popup.setOnMenuItemClickListener { + when (it.itemId) { + R.id.app_menu_delete -> { // delete + intendedChoosePause = true + val intent = Intent(Intent.ACTION_UNINSTALL_PACKAGE) + intent.data = Uri.parse("package:$appPackageName") + intent.putExtra(Intent.EXTRA_RETURN_RESULT, true) + activity.startActivityForResult(intent, REQUEST_UNINSTALL) + + true + } + R.id.app_menu_info -> { // open app settings + intendedChoosePause = true + openAppSettings(appPackageName, activity) + true + } + else -> false + } + } + + popup.show() } - viewHolder.delete.visibility = if(isSystemApp || action == "pick") View.INVISIBLE else View.VISIBLE + viewHolder.menuDots.visibility = if(isSystemApp || action == "pick") View.INVISIBLE else View.VISIBLE } override fun getItemCount(): Int { return appsList.size } diff --git a/app/src/main/res/layout/recycler_apps_row.xml b/app/src/main/res/layout/recycler_apps_row.xml index 8e8e667..80da072 100644 --- a/app/src/main/res/layout/recycler_apps_row.xml +++ b/app/src/main/res/layout/recycler_apps_row.xml @@ -27,16 +27,16 @@ android:text="" android:textSize="20sp" app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toStartOf="@+id/choose_row_app_delete" + app:layout_constraintEnd_toStartOf="@+id/choose_row_app_menu" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + + + diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index ad8e44d..ef3a368 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -23,8 +23,11 @@ Lautstärke - Doppelklick Langer Klick - App wählen + + Deinstallieren + App Info + Launcher wählen Zurücksetzen All deine Einstellungen gehen verloren. Weitermachen? diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 23362b9..97bd459 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -23,8 +23,11 @@ Baisser volume Double clic Clic long - Choisir App + + Désinstaller + Informations + Choisir Launcher Réinitialiser Vous allez supprimer toutes vos préférences. Continuer? diff --git a/app/src/main/res/values/icons.xml b/app/src/main/res/values/icons.xml index 0a96570..dcc0cc7 100644 --- a/app/src/main/res/values/icons.xml +++ b/app/src/main/res/values/icons.xml @@ -11,7 +11,8 @@ - + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4e29162..9e65424 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -33,6 +33,9 @@ Long Click Choose App + Uninstall + App Info + Select Launcher Reset Settings You are going to discard all your preferences. Continue? diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 916ab05..695101d 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -12,6 +12,8 @@ @style/Widget.AppCompat.Button.Colored @color/finnmglasTheme_accent_color + @style/PopupMenuCustom + true @style/WindowFadeTransition @@ -27,6 +29,8 @@ @style/Widget.AppCompat.Button.Colored @color/darkTheme_accent_color + @style/PopupMenuCustom + true @style/WindowFadeTransition @@ -37,10 +41,16 @@ @style/Widget.AppCompat.Button.Colored #252827 + @style/PopupMenuCustom + true @style/WindowFadeTransition + +