diff --git a/app/src/main/java/com/finnmglas/launcher/MainActivity.kt b/app/src/main/java/com/finnmglas/launcher/MainActivity.kt
index 676f196..15857bc 100644
--- a/app/src/main/java/com/finnmglas/launcher/MainActivity.kt
+++ b/app/src/main/java/com/finnmglas/launcher/MainActivity.kt
@@ -32,7 +32,12 @@ class MainActivity : AppCompatActivity(),
// get device dimensions
private val displayMetrics = DisplayMetrics()
+
+ // timers
private var clockTimer = Timer()
+ private var tooltipTimer = Timer()
+
+ private var settingsIconShown = false
/** Activity Lifecycle functions */
override fun onCreate(savedInstanceState: Bundle?) {
@@ -54,6 +59,9 @@ class MainActivity : AppCompatActivity(),
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
setContentView(R.layout.activity_main)
+
+ // Start by showing the settings icon
+ showSettingsIcon()
}
override fun onStart(){
@@ -75,12 +83,13 @@ class MainActivity : AppCompatActivity(),
val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault())
val timeFormat = SimpleDateFormat("HH:mm:ss", Locale.getDefault())
- clockTimer = fixedRateTimer("timer", true, 0L, 1000) {
+ clockTimer = fixedRateTimer("clockTimer", true, 0L, 1000) {
this@MainActivity.runOnUiThread {
dateView.text = dateFormat.format(Date())
timeView.text = timeFormat.format(Date())
}
}
+
}
override fun onPause() {
@@ -88,6 +97,11 @@ class MainActivity : AppCompatActivity(),
clockTimer.cancel()
}
+
+ private fun openSettings(){
+ startActivity(Intent(this, SettingsActivity::class.java))
+ }
+
/** Touch- and Key-related functions to start activities */
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
@@ -120,11 +134,36 @@ class MainActivity : AppCompatActivity(),
return true
}
- // Open Settings Activity
- override fun onLongPress(event: MotionEvent) {
- startActivity(Intent(this, SettingsActivity::class.java))
+ override fun onLongPress(event: MotionEvent) { openSettings() }
+
+ // Tooltip
+ override fun onSingleTapUp(event: MotionEvent): Boolean {
+ when(settingsIconShown) {
+ true -> hideSettingsIcon()
+ false -> showSettingsIcon()
+ }
+ return true
}
+ private fun showSettingsIcon(){
+ settingstooltip.fadeIn()
+ settingstooltip.visibility = View.VISIBLE
+ settingsIconShown = true
+
+ tooltipTimer = fixedRateTimer("tooltipTimer", true, 10000, 1000) {
+ this@MainActivity.runOnUiThread { hideSettingsIcon() }
+ }
+ }
+
+ private fun hideSettingsIcon(){
+ tooltipTimer.cancel()
+ settingstooltip.fadeOut()
+ settingstooltip.visibility = View.INVISIBLE
+ settingsIconShown = false
+ }
+
+ fun settingsIconOnTouch(view: View){ openSettings() }
+
override fun onTouchEvent(event: MotionEvent): Boolean {
return if (mDetector.onTouchEvent(event)) { true } else { super.onTouchEvent(event) }
}
@@ -136,6 +175,5 @@ class MainActivity : AppCompatActivity(),
override fun onDown(event: MotionEvent): Boolean { return true }
override fun onScroll(e1: MotionEvent, e2: MotionEvent, dX: Float, dY: Float): Boolean { return true }
override fun onShowPress(event: MotionEvent) {}
- override fun onSingleTapUp(event: MotionEvent): Boolean { return true }
override fun onSingleTapConfirmed(event: MotionEvent): Boolean { return true }
}
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 0e3d9dd..232fd1e 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -36,4 +36,20 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/icons.xml b/app/src/main/res/values/icons.xml
index 12c70c3..f0ec444 100644
--- a/app/src/main/res/values/icons.xml
+++ b/app/src/main/res/values/icons.xml
@@ -3,6 +3,7 @@
+