mirror of
https://github.com/jrpie/Launcher.git
synced 2025-02-23 14:31:30 +01:00
Improve Application Choosing
This commit is contained in:
parent
20f2c6ccab
commit
e2915dcfe7
2 changed files with 60 additions and 39 deletions
|
@ -13,7 +13,21 @@ import kotlinx.android.synthetic.main.activity_choose.*
|
||||||
|
|
||||||
class ChooseActivity : AppCompatActivity() {
|
class ChooseActivity : AppCompatActivity() {
|
||||||
|
|
||||||
private fun listApps() {
|
@SuppressLint("SetTextI18n") // I do not care
|
||||||
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
|
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
|
||||||
|
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
||||||
|
|
||||||
|
setContentView(R.layout.activity_choose)
|
||||||
|
|
||||||
|
val bundle = intent.extras
|
||||||
|
val action = bundle!!.getString("action") // why choose an app
|
||||||
|
val forApp = bundle.getString("forApp") // which app we choose
|
||||||
|
|
||||||
|
// Build Layout
|
||||||
|
|
||||||
val mainIntent = Intent(Intent.ACTION_MAIN, null)
|
val mainIntent = Intent(Intent.ACTION_MAIN, null)
|
||||||
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER)
|
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER)
|
||||||
|
|
||||||
|
@ -47,20 +61,25 @@ class ChooseActivity : AppCompatActivity() {
|
||||||
tvdynamic.text = app.loadLabel(pm).toString()
|
tvdynamic.text = app.loadLabel(pm).toString()
|
||||||
tvdynamic.setTextColor(Color.parseColor("#cccccc"))
|
tvdynamic.setTextColor(Color.parseColor("#cccccc"))
|
||||||
|
|
||||||
tvdynamic.setOnClickListener { startActivity(pm.getLaunchIntentForPackage(app.packageName)) }
|
if (action == "run"){
|
||||||
|
tvdynamic.setOnClickListener { startActivity(pm.getLaunchIntentForPackage(app.packageName)) }
|
||||||
|
}
|
||||||
|
else if (action == "pick"){
|
||||||
|
tvdynamic.setOnClickListener {
|
||||||
|
|
||||||
|
val returnIntent = Intent()
|
||||||
|
returnIntent.putExtra("value", app.packageName)
|
||||||
|
returnIntent.putExtra("forApp", forApp)
|
||||||
|
setResult(
|
||||||
|
5000,
|
||||||
|
returnIntent
|
||||||
|
)
|
||||||
|
|
||||||
|
finish()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
apps_list.addView(tvdynamic)
|
apps_list.addView(tvdynamic)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("SetTextI18n") // I do not care
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
|
||||||
super.onCreate(savedInstanceState)
|
|
||||||
|
|
||||||
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
|
|
||||||
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
|
||||||
|
|
||||||
setContentView(R.layout.activity_choose)
|
|
||||||
listApps()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,24 +2,28 @@ package com.finnmglas.launcher
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.pm.PackageManager
|
|
||||||
import android.content.pm.ResolveInfo
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.os.CountDownTimer
|
||||||
import android.util.DisplayMetrics
|
import android.util.DisplayMetrics
|
||||||
import android.view.KeyEvent
|
import android.view.KeyEvent
|
||||||
import android.view.MotionEvent
|
import android.view.MotionEvent
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
import android.widget.TextView
|
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.core.view.MotionEventCompat
|
import androidx.core.view.MotionEventCompat
|
||||||
import kotlinx.android.synthetic.main.activity_main.*
|
import kotlinx.android.synthetic.main.activity_main.*
|
||||||
import kotlin.math.abs
|
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import kotlin.concurrent.fixedRateTimer
|
import kotlin.concurrent.fixedRateTimer
|
||||||
|
import kotlin.math.abs
|
||||||
|
|
||||||
|
var upApp = "org.mozilla.firefox"
|
||||||
|
var downApp = "com.samsung.android.app.galaxyfinder"
|
||||||
|
var rightApp = "com.samsung.android.email.provider"
|
||||||
|
var leftApp = "com.google.android.calendar"
|
||||||
|
var volumeUpApp = "com.whatsapp"
|
||||||
|
var volumeDownApp = "com.sec.android.app.popupcalculator"
|
||||||
|
|
||||||
class MainActivity : AppCompatActivity() {
|
class MainActivity : AppCompatActivity() {
|
||||||
// get device dimensions
|
// get device dimensions
|
||||||
|
@ -50,30 +54,22 @@ class MainActivity : AppCompatActivity() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun launchInstagram(v: View){ launchApp("com.instagram.android") }
|
|
||||||
fun launchWhatsapp(v: View){ launchApp("com.whatsapp") }
|
|
||||||
|
|
||||||
fun launchFinder(v: View){ launchApp("com.samsung.android.app.galaxyfinder") }
|
|
||||||
fun launchMail(v: View){ launchApp("com.samsung.android.email.provider", "com.google.android.gm") }
|
|
||||||
fun launchCalendar(v: View){ launchApp("com.google.android.calendar", "com.samsung.android.calendar") }
|
fun launchCalendar(v: View){ launchApp("com.google.android.calendar", "com.samsung.android.calendar") }
|
||||||
fun launchClock(v: View){ launchApp("com.sec.android.app.clockpackage") }
|
fun launchClock(v: View){ launchApp("com.sec.android.app.clockpackage") }
|
||||||
fun launchBrowser(v: View){ launchApp("org.mozilla.firefox", "com.sec.android.app.sbrowser") }
|
|
||||||
|
|
||||||
fun launchUpApp() { launchBrowser(container) }
|
fun launchUpApp() { launchApp(upApp) }
|
||||||
fun launchDownApp() { launchFinder(container) }
|
fun launchDownApp() { launchApp(downApp) }
|
||||||
fun lauchLeftApp() { launchCalendar(container) }
|
fun lauchLeftApp() { launchApp(leftApp) }
|
||||||
fun lauchRightApp() { launchMail(container) }
|
fun lauchRightApp() { launchApp(rightApp) }
|
||||||
|
|
||||||
fun lauchVolumeUpApp() { }
|
fun lauchVolumeUpApp() { launchApp(volumeUpApp) }
|
||||||
fun lauchVolumeDownApp() {
|
fun lauchVolumeDownApp() { launchApp(volumeDownApp) }
|
||||||
val intent = Intent(this, ChooseActivity::class.java)
|
|
||||||
startActivity(intent)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Overrides
|
/* Overrides */
|
||||||
|
|
||||||
var touchX : Float = 0F
|
var touchX : Float = 0F
|
||||||
var touchY : Float = 0F
|
var touchY : Float = 0F
|
||||||
|
var touchT : Long = 0L
|
||||||
|
|
||||||
override fun onTouchEvent(event: MotionEvent): Boolean {
|
override fun onTouchEvent(event: MotionEvent): Boolean {
|
||||||
|
|
||||||
|
@ -81,6 +77,8 @@ class MainActivity : AppCompatActivity() {
|
||||||
MotionEvent.ACTION_DOWN -> {
|
MotionEvent.ACTION_DOWN -> {
|
||||||
touchX = event.x
|
touchX = event.x
|
||||||
touchY = event.y
|
touchY = event.y
|
||||||
|
touchT = System.currentTimeMillis()
|
||||||
|
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
MotionEvent.ACTION_MOVE -> {
|
MotionEvent.ACTION_MOVE -> {
|
||||||
|
@ -94,15 +92,17 @@ class MainActivity : AppCompatActivity() {
|
||||||
|
|
||||||
val diffX = touchX - event.x
|
val diffX = touchX - event.x
|
||||||
val diffY = touchY - event.y
|
val diffY = touchY - event.y
|
||||||
|
val diffT = System.currentTimeMillis() - touchT
|
||||||
|
|
||||||
val strictness = 4 // of direction
|
val strictness = 4 // of direction
|
||||||
|
|
||||||
// Decide which one to open
|
/* Decide for an action */
|
||||||
|
|
||||||
if (diffY > height/8
|
if (diffY > height/8
|
||||||
&& abs(diffY) > strictness * abs(diffX))
|
&& abs(diffY) > strictness * abs(diffX))
|
||||||
launchUpApp()
|
launchUpApp()
|
||||||
|
|
||||||
|
// Only open if the swipe was not from the phone edge
|
||||||
else if (diffY < -height/8
|
else if (diffY < -height/8
|
||||||
&& abs(diffY) > strictness * abs(diffX)
|
&& abs(diffY) > strictness * abs(diffX)
|
||||||
&& touchY > 100)
|
&& touchY > 100)
|
||||||
|
@ -116,6 +116,12 @@ class MainActivity : AppCompatActivity() {
|
||||||
&& abs(diffX) > strictness * abs(diffY))
|
&& abs(diffX) > strictness * abs(diffY))
|
||||||
lauchRightApp()
|
lauchRightApp()
|
||||||
|
|
||||||
|
// Open Settings on LongPress
|
||||||
|
else if (abs(diffX) < 10
|
||||||
|
&& abs(diffX) < 10 && diffT > 750){
|
||||||
|
startActivity(Intent(this, SettingsActivity::class.java))
|
||||||
|
}
|
||||||
|
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
MotionEvent.ACTION_CANCEL -> {
|
MotionEvent.ACTION_CANCEL -> {
|
||||||
|
@ -129,7 +135,7 @@ class MainActivity : AppCompatActivity() {
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
|
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
|
||||||
if (keyCode == KeyEvent.KEYCODE_BACK) { return true }
|
if (keyCode == KeyEvent.KEYCODE_BACK) return true
|
||||||
else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) lauchVolumeUpApp()
|
else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) lauchVolumeUpApp()
|
||||||
else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) lauchVolumeDownApp()
|
else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) lauchVolumeDownApp()
|
||||||
return true
|
return true
|
||||||
|
@ -145,9 +151,6 @@ class MainActivity : AppCompatActivity() {
|
||||||
val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault())
|
val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault())
|
||||||
val timeFormat = SimpleDateFormat("HH:mm:ss", Locale.getDefault())
|
val timeFormat = SimpleDateFormat("HH:mm:ss", Locale.getDefault())
|
||||||
|
|
||||||
//dateFormat.timeZone = TimeZone.getTimeZone("GMT")
|
|
||||||
//timeFormat.timeZone = TimeZone.getTimeZone("GMT")
|
|
||||||
|
|
||||||
fixedRateTimer("timer", false, 0L, 1000) {
|
fixedRateTimer("timer", false, 0L, 1000) {
|
||||||
this@MainActivity.runOnUiThread {
|
this@MainActivity.runOnUiThread {
|
||||||
dateView.text = dateFormat.format(Date())
|
dateView.text = dateFormat.format(Date())
|
||||||
|
@ -156,6 +159,5 @@ class MainActivity : AppCompatActivity() {
|
||||||
}
|
}
|
||||||
|
|
||||||
setContentView(R.layout.activity_main)
|
setContentView(R.layout.activity_main)
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue