From 552bc1002e4c728e9d4afa82b9088a5149a6dbe8 Mon Sep 17 00:00:00 2001 From: Finn M Glas Date: Thu, 21 May 2020 19:05:55 +0200 Subject: [PATCH] Adjust and Make older APIs recognize the tooltip onClick too Settings Tooltip is now centered, Just as the heading in `SettingsActivity` --- .../com/finnmglas/launcher/MainActivity.kt | 28 +++++++++++++------ .../finnmglas/launcher/SettingsActivity.kt | 1 + app/src/main/res/layout/activity_main.xml | 5 ++-- app/src/main/res/layout/activity_settings.xml | 27 +++++++++++------- 4 files changed, 39 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/finnmglas/launcher/MainActivity.kt b/app/src/main/java/com/finnmglas/launcher/MainActivity.kt index f388c06..2af0b7c 100644 --- a/app/src/main/java/com/finnmglas/launcher/MainActivity.kt +++ b/app/src/main/java/com/finnmglas/launcher/MainActivity.kt @@ -62,6 +62,13 @@ class MainActivity : AppCompatActivity(), // Start by showing the settings icon showSettingsIcon() + + // As older APIs somehow do not recognize the xml defined onClick + findViewById(R.id.settingstooltip).setOnClickListener() { + openSettings() + true + } + } override fun onStart(){ @@ -75,6 +82,8 @@ class MainActivity : AppCompatActivity(), mDetector = GestureDetectorCompat(this, this) mDetector.setOnDoubleTapListener(this) + + windowManager.defaultDisplay.getMetrics(displayMetrics) } override fun onResume() { @@ -116,7 +125,6 @@ class MainActivity : AppCompatActivity(), override fun onFling(e1: MotionEvent, e2: MotionEvent, dX: Float, dY: Float): Boolean { - windowManager.defaultDisplay.getMetrics(displayMetrics) val width = displayMetrics.widthPixels val height = displayMetrics.heightPixels @@ -139,10 +147,12 @@ class MainActivity : AppCompatActivity(), // Tooltip override fun onSingleTapConfirmed(event: MotionEvent): Boolean { when(settingsIconShown) { - true -> hideSettingsIcon() + true -> { + hideSettingsIcon() + } false -> showSettingsIcon() } - return true + return false } private fun showSettingsIcon(){ @@ -165,15 +175,15 @@ class MainActivity : AppCompatActivity(), fun settingsIconOnTouch(view: View){ openSettings() } override fun onTouchEvent(event: MotionEvent): Boolean { - return if (mDetector.onTouchEvent(event)) { true } else { super.onTouchEvent(event) } + return if (mDetector.onTouchEvent(event)) { false } else { super.onTouchEvent(event) } } /* TODO: Remove those. For now they are necessary * because this inherits from GestureDetector.OnGestureListener */ - override fun onDoubleTap(event: MotionEvent): Boolean { return true } - override fun onDoubleTapEvent(event: MotionEvent): Boolean { return true } - override fun onDown(event: MotionEvent): Boolean { return true } - override fun onScroll(e1: MotionEvent, e2: MotionEvent, dX: Float, dY: Float): Boolean { return true } + override fun onDoubleTap(event: MotionEvent): Boolean { return false } + override fun onDoubleTapEvent(event: MotionEvent): Boolean { return false } + override fun onDown(event: MotionEvent): Boolean { return false } + override fun onScroll(e1: MotionEvent, e2: MotionEvent, dX: Float, dY: Float): Boolean { return false } override fun onShowPress(event: MotionEvent) {} - override fun onSingleTapUp(event: MotionEvent): Boolean { return true } + override fun onSingleTapUp(event: MotionEvent): Boolean { return false } } diff --git a/app/src/main/java/com/finnmglas/launcher/SettingsActivity.kt b/app/src/main/java/com/finnmglas/launcher/SettingsActivity.kt index df8e967..54acf61 100644 --- a/app/src/main/java/com/finnmglas/launcher/SettingsActivity.kt +++ b/app/src/main/java/com/finnmglas/launcher/SettingsActivity.kt @@ -12,6 +12,7 @@ import androidx.appcompat.app.AppCompatActivity import androidx.viewpager.widget.ViewPager import com.finnmglas.launcher.ui.main.SectionsPagerAdapter import com.google.android.material.tabs.TabLayout +import kotlinx.android.synthetic.main.activity_settings.* class SettingsActivity : AppCompatActivity() { diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index c334520..7d4be6e 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -43,15 +43,14 @@ android:layout_height="wrap_content" android:onClick="settingsIconOnTouch" android:text="@string/fas_settings" - android:textColor="#ccc" + android:textColor="#999" android:textSize="36sp" android:visibility="invisible" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintHorizontal_bias="0.95" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.95" - custom:type="solid"/> + custom:type="solid" /> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 4dacd3f..de26486 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -14,10 +14,9 @@ android:background="@color/colorPrimaryDark" android:theme="@style/AppTheme.AppBarOverlay"> - + android:layout_height="match_parent"> + android:textSize="30sp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" /> - + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" + custom:type="solid" /> + +