diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1d5250d..a32ce2e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -3,6 +3,8 @@
xmlns:tools="http://schemas.android.com/tools"
package="com.finnmglas.launcher">
+
+
+
diff --git a/app/src/main/java/com/finnmglas/launcher/ChooseActivity.kt b/app/src/main/java/com/finnmglas/launcher/ChooseActivity.kt
index 2b908ff..34ea301 100644
--- a/app/src/main/java/com/finnmglas/launcher/ChooseActivity.kt
+++ b/app/src/main/java/com/finnmglas/launcher/ChooseActivity.kt
@@ -1,18 +1,23 @@
package com.finnmglas.launcher
import android.annotation.SuppressLint
+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 kotlinx.android.synthetic.main.activity_choose.*
class ChooseActivity : AppCompatActivity() {
+ val UNINSTALL_REQUEST_CODE = 1
+
fun backHome(view: View) {
finish()
}
@@ -30,6 +35,15 @@ class ChooseActivity : AppCompatActivity() {
val action = bundle!!.getString("action") // why choose an app
val forApp = bundle.getString("forApp") // which app we choose
+ if (action == "launch")
+ heading.text = "Launch Apps"
+ else if (action == "pick") {
+ heading.text = "Choose App"
+ subheading.text = forApp
+ }
+ else if (action == "uninstall")
+ heading.text = "Uninstall Apps"
+
/* Build Layout */
// TODO: Make this more efficient, faster, generate the list before
@@ -54,8 +68,7 @@ class ChooseActivity : AppCompatActivity() {
tvdynamic.text = app.loadLabel(pm).toString()
tvdynamic.setTextColor(Color.parseColor("#cccccc"))
- //TODO Add delete app option
- if (action == "run"){
+ if (action == "launch"){
tvdynamic.setOnClickListener { startActivity(pm.getLaunchIntentForPackage(app.packageName)) }
}
else if (action == "pick"){
@@ -70,7 +83,40 @@ class ChooseActivity : AppCompatActivity() {
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, UNINSTALL_REQUEST_CODE)
+ }
+ }
apps_list.addView(tvdynamic)
}
}
+
+ override fun onActivityResult(
+ requestCode: Int,
+ resultCode: Int,
+ data: Intent?
+ ) {
+ super.onActivityResult(requestCode, resultCode, data)
+ if (requestCode == UNINSTALL_REQUEST_CODE) {
+ if (resultCode == Activity.RESULT_OK) {
+ Toast.makeText(
+ this,
+ "Removed the selected application",
+ Toast.LENGTH_LONG
+ ).show()
+ finish()
+ } else if (resultCode == Activity.RESULT_FIRST_USER) {
+ Toast.makeText(
+ this,
+ "Can't remove this app",
+ Toast.LENGTH_LONG
+ ).show()
+ finish()
+ }
+ }
+ }
}
diff --git a/app/src/main/java/com/finnmglas/launcher/SettingsActivity.kt b/app/src/main/java/com/finnmglas/launcher/SettingsActivity.kt
index 212b9f9..e122a63 100644
--- a/app/src/main/java/com/finnmglas/launcher/SettingsActivity.kt
+++ b/app/src/main/java/com/finnmglas/launcher/SettingsActivity.kt
@@ -17,6 +17,8 @@ import androidx.annotation.RequiresApi
import androidx.appcompat.app.AppCompatActivity
+//TODO Make Settings scrollable as soon as more are added
+
class SettingsActivity : AppCompatActivity() {
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if(requestCode == 5000)
@@ -48,11 +50,23 @@ class SettingsActivity : AppCompatActivity() {
fun chooseApp(forAction :String) {
val intent = Intent(this, ChooseActivity::class.java)
- intent.putExtra("action", "pick") // why choose an app
- intent.putExtra("forApp", forAction) // which app we choose
+ intent.putExtra("action", "pick")
+ intent.putExtra("forApp", forAction) // for which action we choose the app
startActivityForResult(intent, 5000)
}
+ fun chooseUninstallApp(view: View) {
+ val intent = Intent(this, ChooseActivity::class.java)
+ intent.putExtra("action", "uninstall")
+ startActivity(intent)
+ }
+
+ fun chooseLaunchApp(view: View) {
+ val intent = Intent(this, ChooseActivity::class.java)
+ intent.putExtra("action", "launch")
+ startActivity(intent)
+ }
+
fun openNewTabWindow(urls: String, context : Context) {
val uris = Uri.parse(urls)
val intents = Intent(Intent.ACTION_VIEW, uris)
diff --git a/app/src/main/res/layout/activity_choose.xml b/app/src/main/res/layout/activity_choose.xml
index 5183bf0..e0a755f 100644
--- a/app/src/main/res/layout/activity_choose.xml
+++ b/app/src/main/res/layout/activity_choose.xml
@@ -20,6 +20,18 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.100000024" />
+
+
+
+
+ app:layout_constraintVertical_bias="0.19999999">
+ android:onClick="setLauncher"
+ android:text="Select Launcher" />
+ android:onClick="resetSettingsClick"
+ android:text="Reset Settings" />
+
+
+
+
+
+
+
+
+
+
+
+
-