diff --git a/app/src/main/java/eu/ottop/yamlauncher/MainActivity.kt b/app/src/main/java/eu/ottop/yamlauncher/MainActivity.kt index 2b70037..7175405 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/MainActivity.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/MainActivity.kt @@ -2,6 +2,7 @@ package eu.ottop.yamlauncher import android.Manifest import android.annotation.SuppressLint +import android.app.SearchManager import android.content.ActivityNotFoundException import android.content.ContentResolver import android.content.Context @@ -95,6 +96,7 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh private lateinit var appRecycler: RecyclerView private lateinit var contactRecycler: RecyclerView private lateinit var searchSwitcher: ImageView + private lateinit var internetSearch: ImageView private lateinit var searchView: TextInputEditText private var appAdapter: AppMenuAdapter? = null private var contactAdapter: ContactsAdapter? = null @@ -191,6 +193,7 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh menuView = binding.menuView searchSwitcher = binding.searchSwitcher + internetSearch = binding.internetSearch preferences = PreferenceManager.getDefaultSharedPreferences(this) } @@ -272,6 +275,7 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh appAdapter?.shortcutTextView = textView contactAdapter?.shortcutIndex = index contactAdapter?.shortcutTextView = textView + internetSearch.visibility = View.GONE toAppMenu() return true @@ -319,6 +323,7 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh private fun toAppMenu() { uiUtils.setContactsVisibility(searchSwitcher, binding.searchLayout, binding.searchReplacement) + try { // The menu opens from the top appRecycler.scrollToPosition(0) @@ -520,6 +525,7 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh appAdapter?.shortcutTextView = null contactAdapter?.shortcutTextView = null menuTitle.visibility = View.GONE + uiUtils.setWebSearchVisibility(internetSearch) toAppMenu() } @@ -537,6 +543,7 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh uiUtils.setMenuItemColors(searchView) uiUtils.setMenuItemColors(menuTitle, "A9") uiUtils.setImageColor(searchSwitcher) + uiUtils.setImageColor(internetSearch) } "textFont" -> { @@ -561,6 +568,7 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh "searchEnabled" -> { uiUtils.setSearchVisibility(searchView, binding.searchLayout, binding.searchReplacement) + uiUtils.setWebSearchVisibility(internetSearch) } "contactsEnabled" -> { @@ -571,6 +579,10 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh } } + "webSearchEnabled" -> { + uiUtils.setWebSearchVisibility(internetSearch) + } + "clockAlignment" -> { uiUtils.setClockAlignment(clock, dateText) } @@ -790,8 +802,24 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh if (sharedPreferenceManager.areContactsEnabled()) { setupContactRecycler() } - } + setupInternetSearch() + } + } + + private fun setupInternetSearch() { + uiUtils.setImageColor(internetSearch) + internetSearch.setOnClickListener { + val intent = Intent(Intent.ACTION_WEB_SEARCH).apply { + putExtra(SearchManager.QUERY, searchView.text.toString()) + } + + if (intent.resolveActivity(packageManager) != null) { + startActivity(intent) + } else { + Toast.makeText(this@MainActivity, "No browser app found.", Toast.LENGTH_SHORT).show() + } + } } private suspend fun setupAppRecycler(newApps: MutableList>) { diff --git a/app/src/main/java/eu/ottop/yamlauncher/settings/AppMenuSettingsFragment.kt b/app/src/main/java/eu/ottop/yamlauncher/settings/AppMenuSettingsFragment.kt index 596f25c..52d3bcd 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/settings/AppMenuSettingsFragment.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/settings/AppMenuSettingsFragment.kt @@ -11,10 +11,15 @@ import eu.ottop.yamlauncher.utils.PermissionUtils class AppMenuSettingsFragment : PreferenceFragmentCompat(), TitleProvider { private val permissionUtils = PermissionUtils() private var contactPref: SwitchPreference? = null + private var webSearchPref: SwitchPreference? = null + private var autoLaunchPref: SwitchPreference? = null override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.app_menu_preferences, rootKey) contactPref = findPreference("contactsEnabled") + webSearchPref = findPreference("webSearchEnabled") + autoLaunchPref = findPreference("autoLaunch") + contactPref?.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _, newValue -> if (newValue as Boolean && !permissionUtils.hasPermission(requireContext(), Manifest.permission.READ_CONTACTS)) { @@ -24,6 +29,19 @@ class AppMenuSettingsFragment : PreferenceFragmentCompat(), TitleProvider { return@OnPreferenceChangeListener true } } + + if (webSearchPref != null && autoLaunchPref != null) { + webSearchPref?.isEnabled = (autoLaunchPref?.isChecked == false) + autoLaunchPref?.isEnabled = (webSearchPref?.isChecked == false) + webSearchPref?.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _, newValue -> + autoLaunchPref?.isEnabled = !(newValue as Boolean) + return@OnPreferenceChangeListener true + } + autoLaunchPref?.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _, newValue -> + webSearchPref?.isEnabled = !(newValue as Boolean) + return@OnPreferenceChangeListener true + } + } } override fun getTitle(): String { diff --git a/app/src/main/java/eu/ottop/yamlauncher/settings/SharedPreferenceManager.kt b/app/src/main/java/eu/ottop/yamlauncher/settings/SharedPreferenceManager.kt index 2bfd9ad..c8fd1fa 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/settings/SharedPreferenceManager.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/settings/SharedPreferenceManager.kt @@ -240,6 +240,10 @@ class SharedPreferenceManager (private val context: Context) { editor.apply() } + fun isWebSearchEnabled(): Boolean { + return preferences.getBoolean("webSearchEnabled", false) && isSearchEnabled() + } + // Hidden Apps fun setAppHidden(packageName: String, profile: Int, hidden: Boolean) { val editor = preferences.edit() diff --git a/app/src/main/java/eu/ottop/yamlauncher/utils/UIUtils.kt b/app/src/main/java/eu/ottop/yamlauncher/utils/UIUtils.kt index 27bac48..d294800 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/utils/UIUtils.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/utils/UIUtils.kt @@ -95,6 +95,8 @@ class UIUtils(private val context: Context) { view.compoundDrawables[0]?.mutate()?.colorFilter = BlendModeColorFilter(color, BlendMode.SRC_ATOP) view.compoundDrawables[0]?.alpha = "A9".toInt(16) + view.compoundDrawables[2]?.mutate()?.colorFilter = BlendModeColorFilter(color, BlendMode.SRC_ATOP) + view.compoundDrawables[2]?.alpha = "A9".toInt(16) } fun setTextFont(view: View) { @@ -196,6 +198,14 @@ class UIUtils(private val context: Context) { } } + fun setWebSearchVisibility(webSearchButton: View) { + if (sharedPreferenceManager.isWebSearchEnabled()) { + webSearchButton.visibility = View.VISIBLE + } else { + webSearchButton.visibility = View.GONE + } + } + private fun setSearchLayoutVisibility(searchLayout: View, replacementView: View) { if (!sharedPreferenceManager.isSearchEnabled() && !sharedPreferenceManager.areContactsEnabled()) { searchLayout.visibility = View.GONE diff --git a/app/src/main/res/drawable/travel_explore_24.xml b/app/src/main/res/drawable/travel_explore_24.xml new file mode 100644 index 0000000..947899d --- /dev/null +++ b/app/src/main/res/drawable/travel_explore_24.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index c483218..f6c8ff7 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -25,13 +25,13 @@ android:id="@+id/menuTitle" android:layout_width="match_parent" android:layout_height="wrap_content" + android:background="@android:color/transparent" + android:clickable="false" + android:gravity="start" android:paddingLeft="40dp" android:paddingTop="20dp" android:paddingRight="40dp" android:paddingBottom="20dp" - android:background="@android:color/transparent" - android:clickable="false" - android:gravity="start" android:singleLine="true" android:textAppearance="@android:style/TextAppearance.DeviceDefault" android:textColor="#C1F3F3F3" @@ -99,12 +99,27 @@ android:textColorHighlight="#5F33B5E5" android:textSize="25sp" app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toStartOf="@+id/searchSwitcher" + app:layout_constraintEnd_toStartOf="@+id/internetSearch" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:layout_conversion_absoluteHeight="0dp" tools:layout_conversion_absoluteWidth="0dp" /> + + Abstand zwischen Apps Kontaktmenü Berechtigung verweigert + Web Search Button Suche Suche aktivieren diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 7ab7c3c..c17b559 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -99,9 +99,9 @@ Pikakuvakkeiden Määrä Pikakuvakkeiden Vaakasijainti Pikakuvakkeiden Pystysijainti - Pikakuvakkeiden koko - Pikakuvakkeiden väli - Lock Shortcuts + Pikakuvakkeiden Koko + Pikakuvakkeiden Väli + Lukitse Pikakuvakkeet Eleet Vasen Pyyhkäisy @@ -120,6 +120,7 @@ Sovelluksien Väli Yhteystiedot Tarvittavat Luvat Kielletty + Verkkohaku Nappi Hakupalkki Näytä Hakupalkki diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 89afd36..8350222 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -122,6 +122,7 @@ App Spacing Contacts Menu Permission Denied + Web Search Button Search Enable Search diff --git a/app/src/main/res/xml/app_menu_preferences.xml b/app/src/main/res/xml/app_menu_preferences.xml index aba3536..ded3cf4 100644 --- a/app/src/main/res/xml/app_menu_preferences.xml +++ b/app/src/main/res/xml/app_menu_preferences.xml @@ -38,6 +38,13 @@ android:defaultValue="false" android:title="@string/contacts_menu" app:key="contactsEnabled" /> +