From 4c131e4aed4870f25a74782c6b98a1bce7a196a5 Mon Sep 17 00:00:00 2001 From: Finn M Glas Date: Wed, 27 May 2020 10:59:19 +0200 Subject: [PATCH 1/3] Replace apps list with a `RecyclerView` this is way faster, more efficient - and it even enables the app to show app icone, which Closes #31 --- .../com/finnmglas/launcher/ChooseActivity.kt | 68 +++++--------- .../com/finnmglas/launcher/choose/AppInfo.kt | 9 ++ .../launcher/choose/AppsRecyclerAdapter.kt | 93 +++++++++++++++++++ app/src/main/res/layout/activity_choose.xml | 20 ++-- app/src/main/res/layout/recycler_apps_row.xml | 30 ++++++ 5 files changed, 161 insertions(+), 59 deletions(-) create mode 100644 app/src/main/java/com/finnmglas/launcher/choose/AppInfo.kt create mode 100644 app/src/main/java/com/finnmglas/launcher/choose/AppsRecyclerAdapter.kt create mode 100644 app/src/main/res/layout/recycler_apps_row.xml diff --git a/app/src/main/java/com/finnmglas/launcher/ChooseActivity.kt b/app/src/main/java/com/finnmglas/launcher/ChooseActivity.kt index 7037d03..439cb78 100644 --- a/app/src/main/java/com/finnmglas/launcher/ChooseActivity.kt +++ b/app/src/main/java/com/finnmglas/launcher/ChooseActivity.kt @@ -2,21 +2,22 @@ package com.finnmglas.launcher import android.app.Activity import android.content.Intent -import android.graphics.Color -import android.net.Uri import android.os.Bundle import android.view.View import android.view.WindowManager -import android.widget.TextView import android.widget.Toast import androidx.appcompat.app.AppCompatActivity +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.finnmglas.launcher.choose.AppsRecyclerAdapter import com.finnmglas.launcher.extern.* import kotlinx.android.synthetic.main.activity_choose.* class ChooseActivity : AppCompatActivity() { - /** Activity Lifecycle functions */ + private lateinit var viewAdapter: RecyclerView.Adapter<*> + private lateinit var viewManager: RecyclerView.LayoutManager override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -42,57 +43,32 @@ class ChooseActivity : AppCompatActivity() { // As older APIs somehow do not recognize the xml defined onClick activity_choose_close.setOnClickListener() { finish() } + // get info about which action this activity is open for val bundle = intent.extras val action = bundle!!.getString("action") // why choose an app val forApp = bundle.getString("forApp") // which app we choose - if (action == "launch") - activity_choose_heading.text = getString(R.string.choose_title_launch) - else if (action == "pick") - activity_choose_heading.text = getString(R.string.choose_title) - else if (action == "uninstall") - activity_choose_heading.text = getString(R.string.choose_title_remove) + when (action) { + "launch" -> activity_choose_heading.text = getString(R.string.choose_title_launch) + "pick" -> activity_choose_heading.text = getString(R.string.choose_title) + "uninstall" -> activity_choose_heading.text = getString(R.string.choose_title_remove) + } - /* Build Layout */ + // set up the list / recycler + viewManager = LinearLayoutManager(this) + viewAdapter = AppsRecyclerAdapter( this, action, forApp) - for (resolveInfo in appsList) { - val app = resolveInfo.activityInfo - - // creating TextView programmatically - val tvdynamic = TextView(this) - tvdynamic.textSize = 24f - tvdynamic.text = app.loadLabel(packageManager).toString() - tvdynamic.setTextColor(Color.parseColor("#cccccc")) - - if (action == "launch"){ - tvdynamic.setOnClickListener { startActivity(packageManager.getLaunchIntentForPackage(app.packageName)) } - } - else if (action == "pick"){ - tvdynamic.setOnClickListener { - val returnIntent = Intent() - returnIntent.putExtra("value", app.packageName) - returnIntent.putExtra("forApp", forApp) - setResult( - REQUEST_CHOOSE_APP, - returnIntent - ) - finish() - } - } - else if (action == "uninstall"){ - tvdynamic.setOnClickListener { - val intent = Intent(Intent.ACTION_UNINSTALL_PACKAGE) - intent.data = Uri.parse("package:" + app.packageName) - intent.putExtra(Intent.EXTRA_RETURN_RESULT, true) - startActivityForResult(intent, - REQUEST_UNINSTALL - ) - } - } - activity_choose_apps_list.addView(tvdynamic) + activity_choose_apps_recycler_view.apply { + // improve performance (since content changes don't change the layout size) + setHasFixedSize(true) + layoutManager = viewManager + adapter = viewAdapter } } + /* + }*/ + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (requestCode == REQUEST_UNINSTALL) { diff --git a/app/src/main/java/com/finnmglas/launcher/choose/AppInfo.kt b/app/src/main/java/com/finnmglas/launcher/choose/AppInfo.kt new file mode 100644 index 0000000..801a43c --- /dev/null +++ b/app/src/main/java/com/finnmglas/launcher/choose/AppInfo.kt @@ -0,0 +1,9 @@ +package com.finnmglas.launcher.choose + +import android.graphics.drawable.Drawable + +class AppInfo { + var label: CharSequence? = null + var packageName: CharSequence? = null + var icon: Drawable? = null +} \ No newline at end of file diff --git a/app/src/main/java/com/finnmglas/launcher/choose/AppsRecyclerAdapter.kt b/app/src/main/java/com/finnmglas/launcher/choose/AppsRecyclerAdapter.kt new file mode 100644 index 0000000..78ef583 --- /dev/null +++ b/app/src/main/java/com/finnmglas/launcher/choose/AppsRecyclerAdapter.kt @@ -0,0 +1,93 @@ +package com.finnmglas.launcher.choose + +import android.app.Activity +import android.content.Context +import android.content.Intent +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.TextView +import android.widget.Toast +import androidx.recyclerview.widget.RecyclerView +import com.finnmglas.launcher.R +import com.finnmglas.launcher.extern.* + + +class AppsRecyclerAdapter(val activity: Activity, val action: String?, val forApp: String?): + RecyclerView.Adapter() { + + private val appsList: MutableList + + inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), + 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 + + override fun onClick(v: View) { + val pos = adapterPosition + val context: Context = v.context + val appPackageName = appsList[pos].packageName.toString() + + when (action){ + "launch" -> { + val launchIntent: Intent = context.packageManager + .getLaunchIntentForPackage(appPackageName)!! + context.startActivity(launchIntent) + Toast.makeText(v.context, appsList[pos].label.toString(), Toast.LENGTH_LONG) + .show() + } + "pick" -> { + val returnIntent = Intent() + returnIntent.putExtra("value", appPackageName) + returnIntent.putExtra("forApp", forApp) + activity.setResult(REQUEST_CHOOSE_APP, returnIntent) + activity.finish() + } + "uninstall" -> { + 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) + } + } + } + + init { itemView.setOnClickListener(this) } + } + + override fun onBindViewHolder(viewHolder: ViewHolder, i: Int) { + val appLabel = appsList[i].label.toString() + val appPackage = appsList[i].packageName.toString() + val appIcon = appsList[i].icon + val textView = viewHolder.textView + textView.text = appLabel + val imageView: ImageView = viewHolder.img + imageView.setImageDrawable(appIcon) + } + + override fun getItemCount(): Int { return appsList.size } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + val inflater = LayoutInflater.from(parent.context) + val view: View = inflater.inflate(R.layout.recycler_apps_row, parent, false) + return ViewHolder(view) + } + + init { + val pm: PackageManager = activity.packageManager + appsList = ArrayList() + val i = Intent(Intent.ACTION_MAIN, null) + i.addCategory(Intent.CATEGORY_LAUNCHER) + val allApps = pm.queryIntentActivities(i, 0) + for (ri in allApps) { + val app = AppInfo() + app.label = ri.loadLabel(pm) + app.packageName = ri.activityInfo.packageName + app.icon = ri.activityInfo.loadIcon(pm) + appsList.add(app) + } + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_choose.xml b/app/src/main/res/layout/activity_choose.xml index e15028a..911d0cd 100644 --- a/app/src/main/res/layout/activity_choose.xml +++ b/app/src/main/res/layout/activity_choose.xml @@ -58,25 +58,19 @@ - - - - + app:layout_constraintTop_toBottomOf="@id/activity_choose_app_bar" /> \ No newline at end of file diff --git a/app/src/main/res/layout/recycler_apps_row.xml b/app/src/main/res/layout/recycler_apps_row.xml new file mode 100644 index 0000000..f981ccd --- /dev/null +++ b/app/src/main/res/layout/recycler_apps_row.xml @@ -0,0 +1,30 @@ + + + + + + + + \ No newline at end of file From 9fa009bf998345ba68feca5c4c9ba8074477edfc Mon Sep 17 00:00:00 2001 From: Finn M Glas Date: Wed, 27 May 2020 11:12:40 +0200 Subject: [PATCH 2/3] Remove unnecessary leftover code zombiecode, toasts and the old apps list --- .../main/java/com/finnmglas/launcher/ChooseActivity.kt | 4 ---- .../main/java/com/finnmglas/launcher/MainActivity.kt | 8 -------- .../finnmglas/launcher/choose/AppsRecyclerAdapter.kt | 3 --- .../java/com/finnmglas/launcher/extern/Functions.kt | 10 ---------- 4 files changed, 25 deletions(-) diff --git a/app/src/main/java/com/finnmglas/launcher/ChooseActivity.kt b/app/src/main/java/com/finnmglas/launcher/ChooseActivity.kt index 439cb78..0f84628 100644 --- a/app/src/main/java/com/finnmglas/launcher/ChooseActivity.kt +++ b/app/src/main/java/com/finnmglas/launcher/ChooseActivity.kt @@ -66,15 +66,11 @@ class ChooseActivity : AppCompatActivity() { } } - /* - }*/ - override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (requestCode == REQUEST_UNINSTALL) { if (resultCode == Activity.RESULT_OK) { Toast.makeText(this, getString(R.string.choose_removed_toast), Toast.LENGTH_LONG).show() - updateAppList(packageManager) finish() } else if (resultCode == Activity.RESULT_FIRST_USER) { Toast.makeText(this, getString(R.string.choose_not_removed_toast), Toast.LENGTH_LONG).show() diff --git a/app/src/main/java/com/finnmglas/launcher/MainActivity.kt b/app/src/main/java/com/finnmglas/launcher/MainActivity.kt index d16cfa5..00bba0a 100644 --- a/app/src/main/java/com/finnmglas/launcher/MainActivity.kt +++ b/app/src/main/java/com/finnmglas/launcher/MainActivity.kt @@ -32,7 +32,6 @@ class MainActivity : AppCompatActivity(), // timers private var clockTimer = Timer() private var tooltipTimer = Timer() - private var loadAppsTimer = Timer() private var settingsIconShown = false @@ -125,18 +124,11 @@ class MainActivity : AppCompatActivity(), activity_main_date_view.text = d } } - - val pm = packageManager - - loadAppsTimer = fixedRateTimer("loadAppsTimer", true, 0L, 30000) { - AsyncTask.execute { updateAppList(pm) } - } } override fun onPause() { super.onPause() clockTimer.cancel() - loadAppsTimer.cancel() } private fun openSettings(){ diff --git a/app/src/main/java/com/finnmglas/launcher/choose/AppsRecyclerAdapter.kt b/app/src/main/java/com/finnmglas/launcher/choose/AppsRecyclerAdapter.kt index 78ef583..a8b832b 100644 --- a/app/src/main/java/com/finnmglas/launcher/choose/AppsRecyclerAdapter.kt +++ b/app/src/main/java/com/finnmglas/launcher/choose/AppsRecyclerAdapter.kt @@ -10,7 +10,6 @@ import android.view.View import android.view.ViewGroup import android.widget.ImageView import android.widget.TextView -import android.widget.Toast import androidx.recyclerview.widget.RecyclerView import com.finnmglas.launcher.R import com.finnmglas.launcher.extern.* @@ -36,8 +35,6 @@ class AppsRecyclerAdapter(val activity: Activity, val action: String?, val forAp val launchIntent: Intent = context.packageManager .getLaunchIntentForPackage(appPackageName)!! context.startActivity(launchIntent) - Toast.makeText(v.context, appsList[pos].label.toString(), Toast.LENGTH_LONG) - .show() } "pick" -> { val returnIntent = Intent() diff --git a/app/src/main/java/com/finnmglas/launcher/extern/Functions.kt b/app/src/main/java/com/finnmglas/launcher/extern/Functions.kt index c2c967a..5bc9245 100644 --- a/app/src/main/java/com/finnmglas/launcher/extern/Functions.kt +++ b/app/src/main/java/com/finnmglas/launcher/extern/Functions.kt @@ -7,7 +7,6 @@ import android.content.DialogInterface import android.content.Intent import android.content.SharedPreferences import android.content.pm.PackageManager -import android.content.pm.ResolveInfo import android.graphics.* import android.net.Uri import android.os.Build @@ -30,8 +29,6 @@ var volumeDownApp = "" var calendarApp = "" var clockApp = "" -var appsList : MutableList = mutableListOf() - var background : Bitmap? = null var dominantColor = 0 @@ -126,13 +123,6 @@ fun isInstalled(uri: String, context: Context): Boolean { return false } -fun updateAppList(pm : PackageManager) { - val intent = Intent(Intent.ACTION_MAIN) - .addCategory(Intent.CATEGORY_LAUNCHER) - appsList = pm.queryIntentActivities(intent, 0) - appsList.sortBy { it.activityInfo.loadLabel(pm).toString() } -} - private fun getIntent(packageName: String, context: Context): Intent? { val intent: Intent? = context.packageManager.getLaunchIntentForPackage(packageName) intent?.addCategory(Intent.CATEGORY_LAUNCHER) From 52c9a99e01dc7cb7d9062521e7bd691250f4750b Mon Sep 17 00:00:00 2001 From: Finn M Glas Date: Wed, 27 May 2020 12:24:37 +0200 Subject: [PATCH 3/3] Merge app menus into one `View all apps` menu + Apps can be launched + Apps can be removed + In the `Choose App` for action menu, the delete option is hidden + The recycler is a little faster as I asynchronously cache it in `onCreate` --- .../com/finnmglas/launcher/ChooseActivity.kt | 6 +--- .../com/finnmglas/launcher/MainActivity.kt | 8 +++++ .../com/finnmglas/launcher/choose/AppInfo.kt | 1 + .../launcher/choose/AppsRecyclerAdapter.kt | 33 +++++++++++-------- .../launcher/settings/SettingsFragmentApps.kt | 12 ++----- .../res/layout/fragment_settings_apps.xml | 10 ++---- app/src/main/res/layout/recycler_apps_row.xml | 19 +++++++++-- app/src/main/res/values-de/strings.xml | 6 ++-- app/src/main/res/values-fr/strings.xml | 8 ++--- app/src/main/res/values/icons.xml | 1 + app/src/main/res/values/strings.xml | 8 ++--- 11 files changed, 61 insertions(+), 51 deletions(-) diff --git a/app/src/main/java/com/finnmglas/launcher/ChooseActivity.kt b/app/src/main/java/com/finnmglas/launcher/ChooseActivity.kt index 0f84628..7c91398 100644 --- a/app/src/main/java/com/finnmglas/launcher/ChooseActivity.kt +++ b/app/src/main/java/com/finnmglas/launcher/ChooseActivity.kt @@ -16,9 +16,6 @@ import kotlinx.android.synthetic.main.activity_choose.* class ChooseActivity : AppCompatActivity() { - private lateinit var viewAdapter: RecyclerView.Adapter<*> - private lateinit var viewManager: RecyclerView.LayoutManager - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -49,9 +46,8 @@ class ChooseActivity : AppCompatActivity() { val forApp = bundle.getString("forApp") // which app we choose when (action) { - "launch" -> activity_choose_heading.text = getString(R.string.choose_title_launch) + "view" -> activity_choose_heading.text = getString(R.string.choose_title_view) "pick" -> activity_choose_heading.text = getString(R.string.choose_title) - "uninstall" -> activity_choose_heading.text = getString(R.string.choose_title_remove) } // set up the list / recycler diff --git a/app/src/main/java/com/finnmglas/launcher/MainActivity.kt b/app/src/main/java/com/finnmglas/launcher/MainActivity.kt index 00bba0a..8934ccd 100644 --- a/app/src/main/java/com/finnmglas/launcher/MainActivity.kt +++ b/app/src/main/java/com/finnmglas/launcher/MainActivity.kt @@ -10,6 +10,8 @@ import android.util.DisplayMetrics import android.view.* import androidx.appcompat.app.AppCompatActivity import androidx.core.view.GestureDetectorCompat +import androidx.recyclerview.widget.RecyclerView +import com.finnmglas.launcher.choose.AppsRecyclerAdapter import com.finnmglas.launcher.extern.* import kotlinx.android.synthetic.main.activity_main.* import java.text.SimpleDateFormat @@ -17,6 +19,9 @@ import java.util.* import kotlin.concurrent.fixedRateTimer import kotlin.math.abs +// used for the apps drawer / menu (ChooseActivity) +lateinit var viewAdapter: RecyclerView.Adapter<*> +lateinit var viewManager: RecyclerView.LayoutManager class MainActivity : AppCompatActivity(), GestureDetector.OnGestureListener, GestureDetector.OnDoubleTapListener { @@ -76,6 +81,9 @@ class MainActivity : AppCompatActivity(), // As older APIs somehow do not recognize the xml defined onClick activity_main_settings_icon.setOnClickListener() { openSettings() } + // Load apps list first - speed up settings that way + AsyncTask.execute { viewAdapter = AppsRecyclerAdapter( this, "", "") } + // First Startup if (!sharedPref.getBoolean("startedBefore", false)){ startActivity(Intent(this, FirstStartupActivity::class.java)) diff --git a/app/src/main/java/com/finnmglas/launcher/choose/AppInfo.kt b/app/src/main/java/com/finnmglas/launcher/choose/AppInfo.kt index 801a43c..4221dad 100644 --- a/app/src/main/java/com/finnmglas/launcher/choose/AppInfo.kt +++ b/app/src/main/java/com/finnmglas/launcher/choose/AppInfo.kt @@ -6,4 +6,5 @@ class AppInfo { var label: CharSequence? = null var packageName: CharSequence? = null var icon: Drawable? = null + var isSystemApp: Boolean = false } \ No newline at end of file diff --git a/app/src/main/java/com/finnmglas/launcher/choose/AppsRecyclerAdapter.kt b/app/src/main/java/com/finnmglas/launcher/choose/AppsRecyclerAdapter.kt index a8b832b..0fcbb26 100644 --- a/app/src/main/java/com/finnmglas/launcher/choose/AppsRecyclerAdapter.kt +++ b/app/src/main/java/com/finnmglas/launcher/choose/AppsRecyclerAdapter.kt @@ -3,6 +3,7 @@ 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 @@ -12,7 +13,9 @@ import android.widget.ImageView import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.finnmglas.launcher.R -import com.finnmglas.launcher.extern.* +import com.finnmglas.launcher.extern.FontAwesome +import com.finnmglas.launcher.extern.REQUEST_CHOOSE_APP +import com.finnmglas.launcher.extern.REQUEST_UNINSTALL class AppsRecyclerAdapter(val activity: Activity, val action: String?, val forApp: String?): @@ -24,6 +27,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) override fun onClick(v: View) { val pos = adapterPosition @@ -31,7 +35,7 @@ class AppsRecyclerAdapter(val activity: Activity, val action: String?, val forAp val appPackageName = appsList[pos].packageName.toString() when (action){ - "launch" -> { + "view" -> { val launchIntent: Intent = context.packageManager .getLaunchIntentForPackage(appPackageName)!! context.startActivity(launchIntent) @@ -43,12 +47,6 @@ class AppsRecyclerAdapter(val activity: Activity, val action: String?, val forAp activity.setResult(REQUEST_CHOOSE_APP, returnIntent) activity.finish() } - "uninstall" -> { - 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) - } } } @@ -57,12 +55,21 @@ class AppsRecyclerAdapter(val activity: Activity, val action: String?, val forAp override fun onBindViewHolder(viewHolder: ViewHolder, i: Int) { val appLabel = appsList[i].label.toString() - val appPackage = appsList[i].packageName.toString() + val appPackageName = appsList[i].packageName.toString() val appIcon = appsList[i].icon - val textView = viewHolder.textView - textView.text = appLabel - val imageView: ImageView = viewHolder.img - imageView.setImageDrawable(appIcon) + val isSystemApp = appsList[i].isSystemApp + + 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.delete.visibility = if(isSystemApp || action == "pick") View.INVISIBLE else View.VISIBLE } override fun getItemCount(): Int { return appsList.size } diff --git a/app/src/main/java/com/finnmglas/launcher/settings/SettingsFragmentApps.kt b/app/src/main/java/com/finnmglas/launcher/settings/SettingsFragmentApps.kt index 62189ad..93d2915 100644 --- a/app/src/main/java/com/finnmglas/launcher/settings/SettingsFragmentApps.kt +++ b/app/src/main/java/com/finnmglas/launcher/settings/SettingsFragmentApps.kt @@ -42,9 +42,8 @@ class SettingsFragmentApps : Fragment() { setButtonColor(fragment_settings_apps_choose_vol_up_btn, vibrantColor) setButtonColor(fragment_settings_apps_choose_vol_down_btn, vibrantColor) - setButtonColor(fragment_settings_apps_launch_btn, vibrantColor) + setButtonColor(fragment_settings_apps_btn, vibrantColor) setButtonColor(fragment_settings_apps_install_btn, vibrantColor) - setButtonColor(fragment_settings_apps_remove_btn, vibrantColor) } // Action - selecting buttons @@ -56,9 +55,9 @@ class SettingsFragmentApps : Fragment() { fragment_settings_apps_choose_vol_down_btn.setOnClickListener{ chooseApp("volumeDownApp")} // App management buttons - fragment_settings_apps_launch_btn.setOnClickListener{ + fragment_settings_apps_btn.setOnClickListener{ val intent = Intent(this.context, ChooseActivity::class.java) - intent.putExtra("action", "launch") + intent.putExtra("action", "view") startActivity(intent) } fragment_settings_apps_install_btn.setOnClickListener{ @@ -72,11 +71,6 @@ class SettingsFragmentApps : Fragment() { .show() } } - fragment_settings_apps_remove_btn.setOnClickListener{ - val intent = Intent(this.context, ChooseActivity::class.java) - intent.putExtra("action", "uninstall") - startActivity(intent) - } super.onStart() } diff --git a/app/src/main/res/layout/fragment_settings_apps.xml b/app/src/main/res/layout/fragment_settings_apps.xml index cf0ca53..a1c3718 100644 --- a/app/src/main/res/layout/fragment_settings_apps.xml +++ b/app/src/main/res/layout/fragment_settings_apps.xml @@ -160,10 +160,10 @@