diff --git a/app/src/main/java/org/secuso/privacyfriendlynotes/ui/main/MainActivity.kt b/app/src/main/java/org/secuso/privacyfriendlynotes/ui/main/MainActivity.kt index 7dae003d..4956603c 100644 --- a/app/src/main/java/org/secuso/privacyfriendlynotes/ui/main/MainActivity.kt +++ b/app/src/main/java/org/secuso/privacyfriendlynotes/ui/main/MainActivity.kt @@ -13,15 +13,21 @@ */ package org.secuso.privacyfriendlynotes.ui.main +import android.content.Context import android.content.Intent +import android.graphics.Rect import android.os.Bundle import android.preference.PreferenceManager import android.util.Log +import android.util.TypedValue import android.view.ContextThemeWrapper import android.view.Menu import android.view.MenuInflater import android.view.MenuItem +import android.view.MotionEvent import android.view.View +import android.view.inputmethod.InputMethodManager +import android.widget.EditText import android.widget.Toast import androidx.activity.result.ActivityResult import androidx.activity.result.contract.ActivityResultContracts @@ -63,6 +69,7 @@ import org.secuso.privacyfriendlynotes.ui.notes.SketchActivity import org.secuso.privacyfriendlynotes.ui.notes.TextNoteActivity import java.util.Collections + /** * The MainActivity includes the functionality of the primary screen. * It provides the possibility to access existing notes and add new ones. @@ -185,7 +192,14 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte return true } }) - + searchView.setOnClickListener { searchView.onActionViewExpanded() } + searchView.setOnQueryTextFocusChangeListener { _, focus -> + TypedValue().apply { + Log.d("Focus", focus.toString()) + this@MainActivity.theme.resolveAttribute(if (focus) R.attr.colorSurfaceVariant else R.attr.colorBackground, this, true) + searchView.setBackgroundColor(this.data) + } + } /* * Handels when a note is clicked. @@ -214,6 +228,24 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte AppCompatDelegate.setDefaultNightMode(theme!!.toInt()) } + // taken from https://dev.to/ahmmedrejowan/hide-the-soft-keyboard-and-remove-focus-from-edittext-in-android-ehp on 14/03/2024 + override fun dispatchTouchEvent(event: MotionEvent): Boolean { + if (event.action == MotionEvent.ACTION_DOWN) { + val v = currentFocus + if (v is EditText) { + Rect().apply { + v.getGlobalVisibleRect(this) + if (!this.contains(event.rawX.toInt(), event.rawY.toInt())) { + v.clearFocus() + val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager + imm.hideSoftInputFromWindow(v.getWindowToken(), 0) + } + } + } + } + return super.dispatchTouchEvent(event) + } + override fun onResume() { super.onResume() buildDrawerMenu() diff --git a/app/src/main/java/org/secuso/privacyfriendlynotes/ui/main/MainActivityViewModel.kt b/app/src/main/java/org/secuso/privacyfriendlynotes/ui/main/MainActivityViewModel.kt index 3274df95..4d7eba83 100644 --- a/app/src/main/java/org/secuso/privacyfriendlynotes/ui/main/MainActivityViewModel.kt +++ b/app/src/main/java/org/secuso/privacyfriendlynotes/ui/main/MainActivityViewModel.kt @@ -142,7 +142,7 @@ class MainActivityViewModel(application: Application) : AndroidViewModel(applica } fun categoryColor(category: Int, consumer: Consumer) { - viewModelScope.launch(Dispatchers.Default) { + viewModelScope.launch(Dispatchers.Main) { consumer.accept(repository.categoryDao().getCategoryColor(category)) } } diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml index ed88c46a..0d2b273d 100644 --- a/app/src/main/res/layout/content_main.xml +++ b/app/src/main/res/layout/content_main.xml @@ -19,6 +19,8 @@ android:layout_height="wrap_content" android:actionViewClass="androidx.appcompat.widget.SearchView" android:theme="@style/AppTheme.SearchView" + app:iconifiedByDefault="false" + app:queryBackground="@color/transparent" android:imeOptions="flagNoExtractUi" />