Make actions removable

by clicking a FontAwesome Times icon
This commit is contained in:
Finn M Glas 2020-05-29 18:06:10 +02:00
parent 0134665ee3
commit 60f8f781f0
No known key found for this signature in database
GPG key ID: 25037A2E81AB459C
4 changed files with 42 additions and 16 deletions

View file

@ -4,7 +4,6 @@ import android.content.*
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import android.view.WindowManager import android.view.WindowManager
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.viewpager.widget.ViewPager import androidx.viewpager.widget.ViewPager
import com.finnmglas.launcher.extern.* import com.finnmglas.launcher.extern.*
@ -67,7 +66,6 @@ class SettingsActivity : AppCompatActivity() {
val value = data?.getStringExtra("value") val value = data?.getStringExtra("value")
val forApp = data?.getStringExtra("forApp") ?: return val forApp = data?.getStringExtra("forApp") ?: return
Toast.makeText(this, forApp, Toast.LENGTH_LONG).show()
// Save the new App to Preferences // Save the new App to Preferences
val sharedPref = this.getSharedPreferences( val sharedPref = this.getSharedPreferences(
getString(R.string.preference_file_key), Context.MODE_PRIVATE) getString(R.string.preference_file_key), Context.MODE_PRIVATE)

View file

@ -3,14 +3,13 @@ package com.finnmglas.launcher.settings.actions
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.SharedPreferences
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.Button import android.widget.Button
import android.widget.ImageView import android.widget.ImageView
import android.widget.TextView import android.widget.TextView
import android.widget.Toast
import androidx.core.app.ActivityCompat.startActivityForResult
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.finnmglas.launcher.ChooseActivity import com.finnmglas.launcher.ChooseActivity
import com.finnmglas.launcher.R import com.finnmglas.launcher.R
@ -29,6 +28,8 @@ class ActionsRecyclerAdapter(val activity: Activity):
var textView: TextView = itemView.findViewById(R.id.row_action_name) var textView: TextView = itemView.findViewById(R.id.row_action_name)
var img: ImageView = itemView.findViewById(R.id.row_app_icon) as ImageView var img: ImageView = itemView.findViewById(R.id.row_app_icon) as ImageView
var chooseButton: Button = itemView.findViewById(R.id.row_choose_button) var chooseButton: Button = itemView.findViewById(R.id.row_choose_button)
var removeAction: FontAwesome = itemView.findViewById(R.id.row_remove_action)
override fun onClick(v: View) { override fun onClick(v: View) {
val pos = adapterPosition val pos = adapterPosition
@ -41,16 +42,31 @@ class ActionsRecyclerAdapter(val activity: Activity):
} }
override fun onBindViewHolder(viewHolder: ViewHolder, i: Int) { override fun onBindViewHolder(viewHolder: ViewHolder, i: Int) {
val actionName = actionsList[i].actionName
val actionText = actionsList[i].actionText val actionText = actionsList[i].actionText
val actionName = actionsList[i].actionName
val content = actionsList[i].content val content = actionsList[i].content
viewHolder.textView.text = actionText viewHolder.textView.text = actionText
try { try {
viewHolder.img.setImageDrawable(activity.packageManager.getApplicationIcon(content.toString())) viewHolder.img.setImageDrawable(activity.packageManager.getApplicationIcon(content.toString()))
viewHolder.img.setOnClickListener{ chooseApp(actionName.toString()) } viewHolder.img.setOnClickListener{ chooseApp(actionName.toString()) }
viewHolder.removeAction.setOnClickListener{
val sharedPref = activity.getSharedPreferences(
activity.getString(R.string.preference_file_key), Context.MODE_PRIVATE)
val editor : SharedPreferences.Editor = sharedPref.edit()
editor.putString("action_$actionName", "") // clear it
editor.apply()
viewHolder.img.visibility = View.INVISIBLE
viewHolder.removeAction.visibility = View.GONE
viewHolder.chooseButton.visibility = View.VISIBLE
viewHolder.chooseButton.setOnClickListener{ chooseApp(actionName.toString()) }
}
} catch (e : Exception) { } catch (e : Exception) {
viewHolder.img.visibility = View.INVISIBLE viewHolder.img.visibility = View.INVISIBLE
viewHolder.removeAction.visibility = View.GONE
viewHolder.chooseButton.visibility = View.VISIBLE viewHolder.chooseButton.visibility = View.VISIBLE
viewHolder.chooseButton.setOnClickListener{ chooseApp(actionName.toString()) } viewHolder.chooseButton.setOnClickListener{ chooseApp(actionName.toString()) }
} }
@ -81,7 +97,6 @@ class ActionsRecyclerAdapter(val activity: Activity):
val intent = Intent(activity, ChooseActivity::class.java) val intent = Intent(activity, ChooseActivity::class.java)
intent.putExtra("action", "pick") intent.putExtra("action", "pick")
intent.putExtra("forApp", forAction) // for which action we choose the app intent.putExtra("forApp", forAction) // for which action we choose the app
Toast.makeText(activity, forAction, Toast.LENGTH_LONG).show()
activity.startActivityForResult(intent, REQUEST_CHOOSE_APP) activity.startActivityForResult(intent, REQUEST_CHOOSE_APP)
} }
} }

View file

@ -19,16 +19,6 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/row_app_icon"
android:layout_width="@dimen/app_icon_side"
android:layout_height="@dimen/app_icon_side"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/row_choose_button"
app:layout_constraintStart_toStartOf="@+id/row_choose_button"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<Button <Button
android:id="@+id/row_choose_button" android:id="@+id/row_choose_button"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -40,4 +30,26 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/row_app_icon"
android:layout_width="@dimen/app_icon_side"
android:layout_height="@dimen/app_icon_side"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/row_choose_button"
app:layout_constraintHorizontal_bias="0.2"
app:layout_constraintStart_toStartOf="@+id/row_choose_button"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<com.finnmglas.launcher.extern.FontAwesome
android:id="@+id/row_remove_action"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8sp"
android:text="@string/fas_times"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/row_app_icon"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -11,6 +11,7 @@
<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>
<!-- 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>