Adjust and Make older APIs recognize the tooltip onClick too

Settings Tooltip is now centered, Just as the heading in 
`SettingsActivity`
This commit is contained in:
Finn M Glas 2020-05-21 19:05:55 +02:00
parent e3816ab399
commit 552bc1002e
No known key found for this signature in database
GPG key ID: 25037A2E81AB459C
4 changed files with 39 additions and 22 deletions

View file

@ -62,6 +62,13 @@ class MainActivity : AppCompatActivity(),
// Start by showing the settings icon // Start by showing the settings icon
showSettingsIcon() showSettingsIcon()
// As older APIs somehow do not recognize the xml defined onClick
findViewById<View>(R.id.settingstooltip).setOnClickListener() {
openSettings()
true
}
} }
override fun onStart(){ override fun onStart(){
@ -75,6 +82,8 @@ class MainActivity : AppCompatActivity(),
mDetector = GestureDetectorCompat(this, this) mDetector = GestureDetectorCompat(this, this)
mDetector.setOnDoubleTapListener(this) mDetector.setOnDoubleTapListener(this)
windowManager.defaultDisplay.getMetrics(displayMetrics)
} }
override fun onResume() { override fun onResume() {
@ -116,7 +125,6 @@ class MainActivity : AppCompatActivity(),
override fun onFling(e1: MotionEvent, e2: MotionEvent, dX: Float, dY: Float): Boolean { override fun onFling(e1: MotionEvent, e2: MotionEvent, dX: Float, dY: Float): Boolean {
windowManager.defaultDisplay.getMetrics(displayMetrics)
val width = displayMetrics.widthPixels val width = displayMetrics.widthPixels
val height = displayMetrics.heightPixels val height = displayMetrics.heightPixels
@ -139,10 +147,12 @@ class MainActivity : AppCompatActivity(),
// Tooltip // Tooltip
override fun onSingleTapConfirmed(event: MotionEvent): Boolean { override fun onSingleTapConfirmed(event: MotionEvent): Boolean {
when(settingsIconShown) { when(settingsIconShown) {
true -> hideSettingsIcon() true -> {
hideSettingsIcon()
}
false -> showSettingsIcon() false -> showSettingsIcon()
} }
return true return false
} }
private fun showSettingsIcon(){ private fun showSettingsIcon(){
@ -165,15 +175,15 @@ class MainActivity : AppCompatActivity(),
fun settingsIconOnTouch(view: View){ openSettings() } fun settingsIconOnTouch(view: View){ openSettings() }
override fun onTouchEvent(event: MotionEvent): Boolean { 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 /* TODO: Remove those. For now they are necessary
* because this inherits from GestureDetector.OnGestureListener */ * because this inherits from GestureDetector.OnGestureListener */
override fun onDoubleTap(event: MotionEvent): Boolean { return true } override fun onDoubleTap(event: MotionEvent): Boolean { return false }
override fun onDoubleTapEvent(event: MotionEvent): Boolean { return true } override fun onDoubleTapEvent(event: MotionEvent): Boolean { return false }
override fun onDown(event: MotionEvent): Boolean { return true } override fun onDown(event: MotionEvent): Boolean { return false }
override fun onScroll(e1: MotionEvent, e2: MotionEvent, dX: Float, dY: Float): Boolean { return true } override fun onScroll(e1: MotionEvent, e2: MotionEvent, dX: Float, dY: Float): Boolean { return false }
override fun onShowPress(event: MotionEvent) {} override fun onShowPress(event: MotionEvent) {}
override fun onSingleTapUp(event: MotionEvent): Boolean { return true } override fun onSingleTapUp(event: MotionEvent): Boolean { return false }
} }

View file

@ -12,6 +12,7 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.viewpager.widget.ViewPager import androidx.viewpager.widget.ViewPager
import com.finnmglas.launcher.ui.main.SectionsPagerAdapter import com.finnmglas.launcher.ui.main.SectionsPagerAdapter
import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayout
import kotlinx.android.synthetic.main.activity_settings.*
class SettingsActivity : AppCompatActivity() { class SettingsActivity : AppCompatActivity() {

View file

@ -43,12 +43,11 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:onClick="settingsIconOnTouch" android:onClick="settingsIconOnTouch"
android:text="@string/fas_settings" android:text="@string/fas_settings"
android:textColor="#ccc" android:textColor="#999"
android:textSize="36sp" android:textSize="36sp"
android:visibility="invisible" android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.95"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.95" app:layout_constraintVertical_bias="0.95"

View file

@ -14,10 +14,9 @@
android:background="@color/colorPrimaryDark" android:background="@color/colorPrimaryDark"
android:theme="@style/AppTheme.AppBarOverlay"> android:theme="@style/AppTheme.AppBarOverlay">
<LinearLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent">
android:orientation="horizontal">
<TextView <TextView
android:id="@+id/title" android:id="@+id/title"
@ -28,13 +27,17 @@
android:padding="@dimen/appbar_padding" android:padding="@dimen/appbar_padding"
android:text="@string/settings_title" android:text="@string/settings_title"
android:textAppearance="@style/TextAppearance.Widget.AppCompat.Toolbar.Title" android:textAppearance="@style/TextAppearance.Widget.AppCompat.Toolbar.Title"
android:textSize="30sp" /> android:textSize="30sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<com.finnmglas.launcher.FontAwesome <com.finnmglas.launcher.FontAwesome
android:layout_width="match_parent" android:id="@+id/close_settings"
android:id="@+id/fa" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:gravity="center|right" android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:gravity="center"
android:includeFontPadding="true" android:includeFontPadding="true"
android:onClick="backHome" android:onClick="backHome"
android:paddingLeft="16sp" android:paddingLeft="16sp"
@ -42,14 +45,18 @@
android:text="@string/fa_close_window" android:text="@string/fa_close_window"
android:textColor="#ffffff" android:textColor="#ffffff"
android:textSize="22sp" android:textSize="22sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
custom:type="solid" /> custom:type="solid" />
</LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.tabs.TabLayout <com.google.android.material.tabs.TabLayout
android:id="@+id/tabs" android:id="@+id/tabs"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="?attr/colorPrimaryDark" /> android:background="?attr/colorPrimaryDark" />
</com.google.android.material.appbar.AppBarLayout> </com.google.android.material.appbar.AppBarLayout>
<androidx.viewpager.widget.ViewPager <androidx.viewpager.widget.ViewPager