mirror of
https://github.com/jrpie/Launcher.git
synced 2025-02-23 06:21:31 +01:00
commit
463303ebdf
9 changed files with 73 additions and 18 deletions
|
@ -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?) {
|
||||
|
|
|
@ -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<AppsRecyclerAdapter.ViewHolder>() {
|
||||
|
@ -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 }
|
||||
|
|
|
@ -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" />
|
||||
|
||||
<com.finnmglas.launcher.extern.FontAwesome
|
||||
android:id="@+id/choose_row_app_delete"
|
||||
android:layout_width="20sp"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/choose_row_app_menu"
|
||||
android:layout_width="30sp"
|
||||
android:layout_height="0dp"
|
||||
android:gravity="center"
|
||||
android:text="@string/fas_trash"
|
||||
android:text="@string/fas_three_dots"
|
||||
android:textSize="20sp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
|
7
app/src/main/res/menu/menu_app.xml
Normal file
7
app/src/main/res/menu/menu_app.xml
Normal file
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:id="@+id/app_menu_delete"
|
||||
android:title="@string/app_menu_delete_text" />
|
||||
<item android:id="@+id/app_menu_info"
|
||||
android:title="@string/app_menu_info_text" />
|
||||
</menu>
|
|
@ -23,8 +23,11 @@
|
|||
<string name="settings_choose_vol_down">Lautstärke -</string>
|
||||
<string name="settings_choose_double_click">Doppelklick</string>
|
||||
<string name="settings_choose_long_click">Langer Klick</string>
|
||||
|
||||
<string name="settings_choose_btn">App wählen</string>
|
||||
|
||||
<string name="app_menu_delete_text">Deinstallieren</string>
|
||||
<string name="app_menu_info_text">App Info</string>
|
||||
|
||||
<string name="settings_select_launcher">Launcher wählen</string>
|
||||
<string name="settings_reset">Zurücksetzen</string>
|
||||
<string name="settings_reset_message">All deine Einstellungen gehen verloren. Weitermachen?</string>
|
||||
|
|
|
@ -23,8 +23,11 @@
|
|||
<string name="settings_choose_vol_down">Baisser volume</string>
|
||||
<string name="settings_choose_double_click">Double clic</string>
|
||||
<string name="settings_choose_long_click">Clic long</string>
|
||||
|
||||
<string name="settings_choose_btn">Choisir App</string>
|
||||
|
||||
<string name="app_menu_delete_text">Désinstaller</string>
|
||||
<string name="app_menu_info_text">Informations</string>
|
||||
|
||||
<string name="settings_select_launcher">Choisir Launcher</string>
|
||||
<string name="settings_reset">Réinitialiser</string>
|
||||
<string name="settings_reset_message">Vous allez supprimer toutes vos préférences. Continuer?</string>
|
||||
|
|
|
@ -11,7 +11,8 @@
|
|||
<string name="fas_donate" translatable="false"></string>
|
||||
<string name="fas_share" translatable="false"></string>
|
||||
<string name="fas_trash" translatable="false"></string>
|
||||
<string name="fas_times" translatable="false"></string>
|
||||
<string name="fas_times" translatable="false"></string> <!-- 'close' -->
|
||||
<string name="fas_three_dots" translatable="false"></string> <!-- 'ellipsis-v' -->
|
||||
|
||||
<!-- icons that can be used with type="brands" -->
|
||||
<string name="fab_apple" translatable="false"></string>
|
||||
|
|
|
@ -33,6 +33,9 @@
|
|||
<string name="settings_choose_long_click">Long Click</string>
|
||||
<string name="settings_choose_btn">Choose App</string>
|
||||
|
||||
<string name="app_menu_delete_text">Uninstall</string>
|
||||
<string name="app_menu_info_text">App Info</string>
|
||||
|
||||
<string name="settings_select_launcher">Select Launcher</string>
|
||||
<string name="settings_reset">Reset Settings</string>
|
||||
<string name="settings_reset_message">You are going to discard all your preferences. Continue?</string>
|
||||
|
|
|
@ -12,6 +12,8 @@
|
|||
<item name="android:buttonStyle">@style/Widget.AppCompat.Button.Colored</item>
|
||||
<item name="colorButtonNormal">@color/finnmglasTheme_accent_color</item>
|
||||
|
||||
<item name="android:popupMenuStyle">@style/PopupMenuCustom</item>
|
||||
|
||||
<item name="android:windowDisablePreview">true</item>
|
||||
<item name="android:windowAnimationStyle">@style/WindowFadeTransition</item>
|
||||
</style>
|
||||
|
@ -27,6 +29,8 @@
|
|||
<item name="android:buttonStyle">@style/Widget.AppCompat.Button.Colored</item>
|
||||
<item name="colorButtonNormal">@color/darkTheme_accent_color</item>
|
||||
|
||||
<item name="android:popupMenuStyle">@style/PopupMenuCustom</item>
|
||||
|
||||
<item name="android:windowDisablePreview">true</item>
|
||||
<item name="android:windowAnimationStyle">@style/WindowFadeTransition</item>
|
||||
</style>
|
||||
|
@ -37,10 +41,16 @@
|
|||
<item name="android:buttonStyle">@style/Widget.AppCompat.Button.Colored</item>
|
||||
<item name="colorButtonNormal">#252827</item>
|
||||
|
||||
<item name="android:popupMenuStyle">@style/PopupMenuCustom</item>
|
||||
|
||||
<item name="android:windowDisablePreview">true</item>
|
||||
<item name="android:windowAnimationStyle">@style/WindowFadeTransition</item>
|
||||
</style>
|
||||
|
||||
<style name="PopupMenuCustom" parent="@android:style/Widget.PopupMenu">
|
||||
<item name="android:popupBackground">#252827</item>
|
||||
</style>
|
||||
|
||||
<style name="AlertDialogCustom" parent="Theme.AppCompat.Light.Dialog.Alert">
|
||||
<item name="android:textColor">#000000</item>
|
||||
</style>
|
||||
|
|
Loading…
Add table
Reference in a new issue