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.view.View
import android.view.WindowManager
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.viewpager.widget.ViewPager
import com.finnmglas.launcher.extern.*
@ -67,7 +66,6 @@ class SettingsActivity : AppCompatActivity() {
val value = data?.getStringExtra("value")
val forApp = data?.getStringExtra("forApp") ?: return
Toast.makeText(this, forApp, Toast.LENGTH_LONG).show()
// Save the new App to Preferences
val sharedPref = this.getSharedPreferences(
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.content.Context
import android.content.Intent
import android.content.SharedPreferences
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import android.widget.ImageView
import android.widget.TextView
import android.widget.Toast
import androidx.core.app.ActivityCompat.startActivityForResult
import androidx.recyclerview.widget.RecyclerView
import com.finnmglas.launcher.ChooseActivity
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 img: ImageView = itemView.findViewById(R.id.row_app_icon) as ImageView
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) {
val pos = adapterPosition
@ -41,16 +42,31 @@ class ActionsRecyclerAdapter(val activity: Activity):
}
override fun onBindViewHolder(viewHolder: ViewHolder, i: Int) {
val actionName = actionsList[i].actionName
val actionText = actionsList[i].actionText
val actionName = actionsList[i].actionName
val content = actionsList[i].content
viewHolder.textView.text = actionText
try {
viewHolder.img.setImageDrawable(activity.packageManager.getApplicationIcon(content.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) {
viewHolder.img.visibility = View.INVISIBLE
viewHolder.removeAction.visibility = View.GONE
viewHolder.chooseButton.visibility = View.VISIBLE
viewHolder.chooseButton.setOnClickListener{ chooseApp(actionName.toString()) }
}
@ -81,7 +97,6 @@ class ActionsRecyclerAdapter(val activity: Activity):
val intent = Intent(activity, ChooseActivity::class.java)
intent.putExtra("action", "pick")
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)
}
}

View file

@ -19,16 +19,6 @@
app:layout_constraintStart_toStartOf="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
android:id="@+id/row_choose_button"
android:layout_width="wrap_content"
@ -40,4 +30,26 @@
app:layout_constraintEnd_toEndOf="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>

View file

@ -11,6 +11,7 @@
<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>
<!-- icons that can be used with type="brands" -->
<string name="fab_apple" translatable="false">&#xf179;</string>