Merge pull request #42 from finnmglas/feature/appinfo

Feature/appinfo
This commit is contained in:
Finn M Glas 2020-05-30 01:24:47 +02:00 committed by GitHub
commit 463303ebdf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 73 additions and 18 deletions

View file

@ -12,6 +12,7 @@ import com.finnmglas.launcher.choose.AppsRecyclerAdapter
import com.finnmglas.launcher.extern.* import com.finnmglas.launcher.extern.*
import kotlinx.android.synthetic.main.activity_choose.* import kotlinx.android.synthetic.main.activity_choose.*
var intendedChoosePause = false // know when to close
class ChooseActivity : AppCompatActivity() { class ChooseActivity : AppCompatActivity() {
@ -64,7 +65,12 @@ class ChooseActivity : AppCompatActivity() {
override fun onPause() { override fun onPause() {
super.onPause() super.onPause()
intendedSettingsPause = false intendedSettingsPause = false
finish() if(!intendedChoosePause) finish()
}
override fun onResume() {
super.onResume()
intendedChoosePause = false
} }
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {

View file

@ -3,20 +3,21 @@ package com.finnmglas.launcher.choose
import android.app.Activity import android.app.Activity
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.pm.ApplicationInfo
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.net.Uri import android.net.Uri
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.ImageView import android.widget.ImageView
import android.widget.PopupMenu
import android.widget.TextView import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.finnmglas.launcher.R import com.finnmglas.launcher.R
import com.finnmglas.launcher.extern.FontAwesome import com.finnmglas.launcher.extern.FontAwesome
import com.finnmglas.launcher.extern.REQUEST_CHOOSE_APP import com.finnmglas.launcher.extern.REQUEST_CHOOSE_APP
import com.finnmglas.launcher.extern.REQUEST_UNINSTALL 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?): class AppsRecyclerAdapter(val activity: Activity, val action: String?, val forApp: String?):
RecyclerView.Adapter<AppsRecyclerAdapter.ViewHolder>() { RecyclerView.Adapter<AppsRecyclerAdapter.ViewHolder>() {
@ -27,7 +28,7 @@ class AppsRecyclerAdapter(val activity: Activity, val action: String?, val forAp
View.OnClickListener { View.OnClickListener {
var textView: TextView = itemView.findViewById(R.id.choose_row_app_name) 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 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) { override fun onClick(v: View) {
val pos = adapterPosition val pos = adapterPosition
@ -62,14 +63,35 @@ class AppsRecyclerAdapter(val activity: Activity, val action: String?, val forAp
viewHolder.textView.text = appLabel viewHolder.textView.text = appLabel
viewHolder.img.setImageDrawable(appIcon) viewHolder.img.setImageDrawable(appIcon)
viewHolder.delete.setOnClickListener{ 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) val intent = Intent(Intent.ACTION_UNINSTALL_PACKAGE)
intent.data = Uri.parse("package:$appPackageName") intent.data = Uri.parse("package:$appPackageName")
intent.putExtra(Intent.EXTRA_RETURN_RESULT, true) intent.putExtra(Intent.EXTRA_RETURN_RESULT, true)
activity.startActivityForResult(intent, REQUEST_UNINSTALL) activity.startActivityForResult(intent, REQUEST_UNINSTALL)
true
}
R.id.app_menu_info -> { // open app settings
intendedChoosePause = true
openAppSettings(appPackageName, activity)
true
}
else -> false
}
} }
viewHolder.delete.visibility = if(isSystemApp || action == "pick") View.INVISIBLE else View.VISIBLE popup.show()
}
viewHolder.menuDots.visibility = if(isSystemApp || action == "pick") View.INVISIBLE else View.VISIBLE
} }
override fun getItemCount(): Int { return appsList.size } override fun getItemCount(): Int { return appsList.size }

View file

@ -27,16 +27,16 @@
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/choose_row_app_delete" app:layout_constraintEnd_toStartOf="@+id/choose_row_app_menu"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<com.finnmglas.launcher.extern.FontAwesome <com.finnmglas.launcher.extern.FontAwesome
android:id="@+id/choose_row_app_delete" android:id="@+id/choose_row_app_menu"
android:layout_width="20sp" android:layout_width="30sp"
android:layout_height="wrap_content" android:layout_height="0dp"
android:gravity="center" android:gravity="center"
android:text="@string/fas_trash" android:text="@string/fas_three_dots"
android:textSize="20sp" android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"

View 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>

View file

@ -23,8 +23,11 @@
<string name="settings_choose_vol_down">Lautstärke -</string> <string name="settings_choose_vol_down">Lautstärke -</string>
<string name="settings_choose_double_click">Doppelklick</string> <string name="settings_choose_double_click">Doppelklick</string>
<string name="settings_choose_long_click">Langer Klick</string> <string name="settings_choose_long_click">Langer Klick</string>
<string name="settings_choose_btn">App wählen</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_select_launcher">Launcher wählen</string>
<string name="settings_reset">Zurücksetzen</string> <string name="settings_reset">Zurücksetzen</string>
<string name="settings_reset_message">All deine Einstellungen gehen verloren. Weitermachen?</string> <string name="settings_reset_message">All deine Einstellungen gehen verloren. Weitermachen?</string>

View file

@ -23,8 +23,11 @@
<string name="settings_choose_vol_down">Baisser volume</string> <string name="settings_choose_vol_down">Baisser volume</string>
<string name="settings_choose_double_click">Double clic</string> <string name="settings_choose_double_click">Double clic</string>
<string name="settings_choose_long_click">Clic long</string> <string name="settings_choose_long_click">Clic long</string>
<string name="settings_choose_btn">Choisir App</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_select_launcher">Choisir Launcher</string>
<string name="settings_reset">Réinitialiser</string> <string name="settings_reset">Réinitialiser</string>
<string name="settings_reset_message">Vous allez supprimer toutes vos préférences. Continuer?</string> <string name="settings_reset_message">Vous allez supprimer toutes vos préférences. Continuer?</string>

View file

@ -11,7 +11,8 @@
<string name="fas_donate" translatable="false">&#xf4b9;</string> <string name="fas_donate" translatable="false">&#xf4b9;</string>
<string name="fas_share" translatable="false">&#xf064;</string> <string name="fas_share" translatable="false">&#xf064;</string>
<string name="fas_trash" translatable="false">&#xf1f8;</string> <string name="fas_trash" translatable="false">&#xf1f8;</string>
<string name="fas_times" translatable="false">&#xf00d;</string> <string name="fas_times" translatable="false">&#xf00d;</string> <!-- 'close' -->
<string name="fas_three_dots" translatable="false">&#xf142;</string> <!-- 'ellipsis-v' -->
<!-- icons that can be used with type="brands" --> <!-- icons that can be used with type="brands" -->
<string name="fab_apple" translatable="false">&#xf179;</string> <string name="fab_apple" translatable="false">&#xf179;</string>

View file

@ -33,6 +33,9 @@
<string name="settings_choose_long_click">Long Click</string> <string name="settings_choose_long_click">Long Click</string>
<string name="settings_choose_btn">Choose App</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_select_launcher">Select Launcher</string>
<string name="settings_reset">Reset Settings</string> <string name="settings_reset">Reset Settings</string>
<string name="settings_reset_message">You are going to discard all your preferences. Continue?</string> <string name="settings_reset_message">You are going to discard all your preferences. Continue?</string>

View file

@ -12,6 +12,8 @@
<item name="android:buttonStyle">@style/Widget.AppCompat.Button.Colored</item> <item name="android:buttonStyle">@style/Widget.AppCompat.Button.Colored</item>
<item name="colorButtonNormal">@color/finnmglasTheme_accent_color</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:windowDisablePreview">true</item>
<item name="android:windowAnimationStyle">@style/WindowFadeTransition</item> <item name="android:windowAnimationStyle">@style/WindowFadeTransition</item>
</style> </style>
@ -27,6 +29,8 @@
<item name="android:buttonStyle">@style/Widget.AppCompat.Button.Colored</item> <item name="android:buttonStyle">@style/Widget.AppCompat.Button.Colored</item>
<item name="colorButtonNormal">@color/darkTheme_accent_color</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:windowDisablePreview">true</item>
<item name="android:windowAnimationStyle">@style/WindowFadeTransition</item> <item name="android:windowAnimationStyle">@style/WindowFadeTransition</item>
</style> </style>
@ -37,10 +41,16 @@
<item name="android:buttonStyle">@style/Widget.AppCompat.Button.Colored</item> <item name="android:buttonStyle">@style/Widget.AppCompat.Button.Colored</item>
<item name="colorButtonNormal">#252827</item> <item name="colorButtonNormal">#252827</item>
<item name="android:popupMenuStyle">@style/PopupMenuCustom</item>
<item name="android:windowDisablePreview">true</item> <item name="android:windowDisablePreview">true</item>
<item name="android:windowAnimationStyle">@style/WindowFadeTransition</item> <item name="android:windowAnimationStyle">@style/WindowFadeTransition</item>
</style> </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"> <style name="AlertDialogCustom" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="android:textColor">#000000</item> <item name="android:textColor">#000000</item>
</style> </style>