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 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?) {

View file

@ -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 }

View file

@ -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"

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

View file

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

View file

@ -11,7 +11,8 @@
<string name="fas_donate" translatable="false">&#xf4b9;</string>
<string name="fas_share" translatable="false">&#xf064;</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" -->
<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_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>

View file

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