Remove legacy SettingsActivity

This commit is contained in:
MM20 2022-01-30 13:42:37 +01:00
parent 470e378e17
commit 0587b3e08d
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389
10 changed files with 2 additions and 729 deletions

View File

@ -41,26 +41,6 @@
android:usesCleartextTraffic="true"
tools:ignore="GoogleAppIndexingWarning">
<activity
android:name=".activity.SettingsActivity"
android:label="@string/title_activity_settings"
android:launchMode="singleTask"
android:exported="true"
android:parentActivityName=".ui.launcher.LauncherActivity"
android:screenOrientation="portrait"
android:taskAffinity="de.mm20.launcher2.settings"
android:theme="@style/SettingsTheme">
<intent-filter>
<action android:name="android.intent.action.APPLICATION_PREFERENCES" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="de.mm20.launcher2.ui.launcher.LauncherActivity" />
</activity>
<activity
android:name=".activity.AddItemActivity"
android:exported="true"

View File

@ -1,69 +0,0 @@
package de.mm20.launcher2.activity
import android.content.Intent
import android.os.Bundle
import android.view.MenuItem
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
import de.mm20.launcher2.fragment.PreferencesMainFragment
import de.mm20.launcher2.fragment.PreferencesServicesFragment
import de.mm20.launcher2.ui.launcher.LauncherActivity
class SettingsActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (savedInstanceState == null) {
val fragment = getStartFragment()
setupActionBar()
supportFragmentManager
.beginTransaction()
.add(android.R.id.content, fragment)
.commit()
}
}
private fun getStartFragment(): Fragment {
return when (intent.extras?.getString(FRAGMENT, "")) {
FRAGMENT_SERVICES -> PreferencesServicesFragment()
else -> PreferencesMainFragment()
}
}
private fun setupActionBar() {
actionBar?.setDisplayHomeAsUpEnabled(true)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
val id = item.itemId
if (id == android.R.id.home) {
if (supportFragmentManager.backStackEntryCount == 0) {
finish()
startActivity(Intent(this, LauncherActivity::class.java))
} else {
supportFragmentManager.popBackStack()
}
return true
}
return super.onOptionsItemSelected(item)
}
override fun onBackPressed() {
if (supportFragmentManager.backStackEntryCount > 0) {
supportFragmentManager.popBackStack()
} else {
finish()
startActivity(Intent(this, LauncherActivity::class.java))
}
}
companion object {
const val RESULT_NEED_RESTART = 0x09
const val FRAGMENT_WEATHER: String = "weather"
const val FRAGMENT_CALENDAR: String = "calendar"
const val FRAGMENT_SERVICES: String = "services"
const val FRAGMENT: String = "fragment"
}
}

View File

@ -1,107 +0,0 @@
package de.mm20.launcher2.fragment
import android.content.Intent
import android.graphics.drawable.ColorDrawable
import android.os.Build
import android.os.Bundle
import android.view.View
import android.widget.LinearLayout
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.lifecycleScope
import androidx.preference.ListPreference
import androidx.preference.Preference
import androidx.preference.PreferenceCategory
import androidx.preference.PreferenceFragmentCompat
import com.afollestad.materialdialogs.MaterialDialog
import com.afollestad.materialdialogs.customview.customView
import de.mm20.launcher2.R
import de.mm20.launcher2.icons.IconPackManager
import de.mm20.launcher2.icons.IconRepository
import de.mm20.launcher2.icons.LauncherIcon
import kotlinx.coroutines.launch
import org.koin.android.ext.android.inject
class PreferencesAppearanceFragment : PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
addPreferencesFromResource(R.xml.preferences_appearance)
findPreference<Preference>("card_background")?.setOnPreferenceChangeListener { _, newValue ->
requireActivity().recreate()
true
}
findPreference<Preference>("wallpaper")?.setOnPreferenceClickListener {
requireContext().startActivity(Intent.createChooser(Intent(Intent.ACTION_SET_WALLPAPER), null))
true
}
findPreference<Preference>("cards")?.setOnPreferenceClickListener {
requireFragmentManager().beginTransaction()
.setCustomAnimations(R.anim.preference_fragment_child_enter, R.anim.preference_fragment_parent_exit,
R.anim.preference_fragment_parent_enter, R.anim.preference_fragment_child_exit)
.replace(android.R.id.content, PreferencesCardFragment())
.addToBackStack(null)
.commit()
true
}
val iconPackManager: IconPackManager by inject()
val iconRepository: IconRepository by inject()
lifecycleScope.launch {
val packs = iconPackManager.getInstalledIconPacks()
findPreference<ListPreference>("icon_pack")?.apply {
entries = packs.map { it.name }.toMutableList().apply { add(0, "System") }.toTypedArray()
entryValues = (-1 until packs.size).map { it.toString() }.toTypedArray()
if (packs.isEmpty()) {
isEnabled = false
setSummary(R.string.preference_icon_pack_summary_empty)
} else {
isEnabled = true
summary = "%s"
}
setOnPreferenceChangeListener { _, newValue ->
val index = (newValue as String).toInt()
true
}
}
}
findPreference<Preference>("legacy_icon_bg")?.setOnPreferenceChangeListener { _, _ ->
true
}
findPreference<Preference>("themed_icons")?.setOnPreferenceChangeListener { _, _ ->
true
}
val shapePreference = findPreference<Preference>("icon_shape")!!
shapePreference.setOnPreferenceClickListener {
val launcherIcon = LauncherIcon(
foreground = requireContext().getDrawable(R.mipmap.ic_launcher_foreground)!!,
background = ColorDrawable(requireContext().getColor(R.color.ic_launcher_background))
)
val iconShapeList = LinearLayout(requireContext())
iconShapeList.orientation = LinearLayout.VERTICAL
val layoutParams = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT)
val dialog = MaterialDialog(requireContext())
dialog.customView(view = iconShapeList, scrollable = true)
.title(R.string.preference_icon_shape)
.negativeButton(android.R.string.cancel) {
dialog.cancel()
}
.show()
true
}
}
override fun onResume() {
super.onResume()
(activity as AppCompatActivity).supportActionBar
?.setTitle(R.string.preference_screen_appearance)
}
}

View File

@ -1,93 +0,0 @@
package de.mm20.launcher2.fragment
import android.animation.Animator
import android.animation.ObjectAnimator
import android.app.WallpaperManager
import android.graphics.*
import android.os.Bundle
import android.view.View
import androidx.core.content.res.ResourcesCompat
import androidx.core.view.doOnNextLayout
import androidx.fragment.app.Fragment
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import de.mm20.launcher2.R
import de.mm20.launcher2.ktx.dp
import de.mm20.launcher2.ui.legacy.view.LauncherCardView
import kotlin.math.roundToInt
class PreferencesCardFragment : Fragment(R.layout.fragment_card_settings) {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val previewCard = view.findViewById<LauncherCardView>(R.id.previewCard)
val prefFragment = PreferenesCardInnerFragment()
prefFragment.onPreferencesReady = {
findPreference<Preference>("card_radius")?.let {
it.setOnPreferenceChangeListener { pref, newValue ->
val value = newValue as Int
previewCard.radius = value * dp
pref.summary = value.toString()
true
}
}
findPreference<Preference>("card_opacity")?.let {
it.setOnPreferenceChangeListener { pref, newValue ->
val value = newValue as Int
previewCard.backgroundOpacity = value
previewCard.cardElevation = if (value == 0xFF) resources.getDimension(R.dimen.card_elevation) else 0f
pref.summary = value.toString()
true
}
}
findPreference<Preference>("card_stroke_width")?.let {
it.setOnPreferenceChangeListener { pref, newValue ->
val value = newValue as Int
previewCard.strokeWidth = (value * dp).roundToInt()
pref.summary = value.toString()
true
}
}
}
childFragmentManager.beginTransaction()
.replace(R.id.preferencesView, prefFragment)
.commit()
}
private var animator: Animator? = null
override fun onStart() {
super.onStart()
val content = activity?.findViewById<View>(android.R.id.content) ?: return
animator = ObjectAnimator.ofArgb(content, "backgroundColor", ResourcesCompat.getColor(resources, R.color.settings_window_background, null), Color.TRANSPARENT)
.apply {
duration = 200
startDelay = resources.getInteger(android.R.integer.config_shortAnimTime).toLong()
start()
}
content.doOnNextLayout {
WallpaperManager.getInstance(requireContext()).setWallpaperOffsets(it.windowToken, 0.5f, 0.5f)
}
}
override fun onStop() {
super.onStop()
if (animator?.isRunning == true) animator?.end()
activity?.findViewById<View>(android.R.id.content)?.setBackgroundColor(ResourcesCompat.getColor(resources, R.color.settings_window_background, null))
}
}
class PreferenesCardInnerFragment : PreferenceFragmentCompat() {
var onPreferencesReady: (PreferenesCardInnerFragment.() -> Unit)? = null
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
addPreferencesFromResource(R.xml.preferences_cards)
onPreferencesReady?.invoke(this)
}
}

View File

@ -1,26 +0,0 @@
package de.mm20.launcher2.fragment
import android.animation.ObjectAnimator
import android.animation.ValueAnimator
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
import android.widget.Toast
import android.widget.ToggleButton
import androidx.fragment.app.Fragment
import de.mm20.launcher2.R
class PreferencesEasterEggFragment : Fragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val view = inflater.inflate(R.layout.fragment_easteregg, null, false)
val root = view.findViewById<FrameLayout>(R.id.easterEggRoot)
val toggle = view.findViewById<ToggleButton>(R.id.magicModeToggle)
toggle.setOnCheckedChangeListener { _, isChecked ->
Toast.makeText(requireContext(), if (isChecked) R.string.easter_egg_activated else R.string.easter_egg_deactivated, Toast.LENGTH_SHORT).show()
}
return view
}
}

View File

@ -1,44 +0,0 @@
package de.mm20.launcher2.fragment
import android.content.Context
import android.graphics.Color
import android.os.Bundle
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import de.mm20.launcher2.R
class PreferencesMainFragment : PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
addPreferencesFromResource(R.xml.preferences_main)
findPreference<Preference>("screen_appearance")?.setOnPreferenceClickListener {
setSettingsScreen(PreferencesAppearanceFragment())
true
}
findPreference<Preference>("screen_services")?.setOnPreferenceClickListener {
setSettingsScreen(PreferencesServicesFragment())
true
}
findPreference<Preference>("screen_search")?.setOnPreferenceClickListener {
setSettingsScreen(PreferencesSearchFragment())
true
}
}
private fun setSettingsScreen(fragment: Fragment) {
parentFragmentManager.beginTransaction()
.setCustomAnimations(R.anim.preference_fragment_child_enter, R.anim.preference_fragment_parent_exit,
R.anim.preference_fragment_parent_enter, R.anim.preference_fragment_child_exit)
.replace(android.R.id.content, fragment)
.addToBackStack(null)
.commit()
}
override fun onResume() {
super.onResume()
(activity as AppCompatActivity).supportActionBar?.setTitle(R.string.title_activity_settings)
}
}

View File

@ -1,174 +0,0 @@
package de.mm20.launcher2.fragment
import android.Manifest
import android.os.Bundle
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import androidx.fragment.app.Fragment
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import de.mm20.launcher2.R
import de.mm20.launcher2.gservices.GoogleApiHelper
import de.mm20.launcher2.ktx.checkPermission
import de.mm20.launcher2.msservices.MicrosoftGraphApiHelper
import de.mm20.launcher2.nextcloud.NextcloudApiHelper
import de.mm20.launcher2.owncloud.OwncloudClient
import kotlinx.coroutines.launch
import org.koin.android.ext.android.inject
class PreferencesSearchFragment : PreferenceFragmentCompat() {
private val googleApiHelper: GoogleApiHelper by inject()
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
lifecycleScope.launch {
viewLifecycleOwner.lifecycle.repeatOnLifecycle(Lifecycle.State.RESUMED) {
updateGoogleDrive()
updateOneDrive()
}
}
}
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
addPreferencesFromResource(R.xml.preferences_search)
findPreference<Preference>("search_activities")?.summary =
getString(
R.string.preference_search_activities_summary,
requireActivity().componentName.flattenToShortString()
)
findPreference<Preference>("search_files")?.setOnPreferenceChangeListener { _, newValue ->
if (newValue == true &&
requireContext().checkPermission(Manifest.permission.READ_EXTERNAL_STORAGE)
) {
ActivityCompat.requestPermissions(
requireActivity(),
arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE),
0
)
}
true
}
}
private suspend fun updateGoogleDrive() {
val googleApiHelper = GoogleApiHelper.getInstance(context ?: return)
val account = googleApiHelper.getAccount()
val pref = findPreference<Preference>("search_gdrive")!!
if (account == null) {
pref.apply {
setSummary(R.string.preference_summary_not_logged_in)
}
} else {
pref.apply {
summary = context.getString(R.string.preference_search_gdrive_summary, account.name)
}
}
val isSignedIn = account != null
pref.setOnPreferenceChangeListener { _, value ->
val newVal = value as Boolean
if (newVal && !isSignedIn) {
googleLogin()
}
true
}
}
private suspend fun updateOneDrive() {
val oneDrivePref = findPreference<Preference>("search_onedrive")!!
val user = MicrosoftGraphApiHelper.getInstance(requireContext()).getUser()
if (user == null) {
oneDrivePref.setSummary(R.string.preference_summary_not_logged_in)
oneDrivePref.setOnPreferenceChangeListener { _, value ->
if (value as Boolean) {
lifecycleScope.launch launch2@{
MicrosoftGraphApiHelper.getInstance(requireContext())
.login(requireActivity())
updateOneDrive()
}
}
true
}
} else {
oneDrivePref.summary =
context?.getString(R.string.preference_search_onedrive_summary, user.name)
}
}
private fun updateNextcloud() {
val nextcloudPref = findPreference<Preference>("search_nextcloud")!!
val client = NextcloudApiHelper(context ?: return)
lifecycleScope.launch {
val user = client.getLoggedInUser()
if (user == null) {
nextcloudPref.setSummary(R.string.preference_summary_not_logged_in)
nextcloudPref.setOnPreferenceChangeListener { _, value ->
if (value as Boolean) {
lifecycleScope.launch launch2@{
updateNextcloud()
}
}
true
}
} else {
nextcloudPref.summary = context?.getString(
R.string.preference_search_cloud_summary,
user.displayName
)
}
}
}
private fun updateOwncloud() {
val owncloudPref = findPreference<Preference>("search_owncloud")!!
lifecycleScope.launch {
val client = OwncloudClient(context ?: return@launch)
val user = client.getLoggedInUser()
if (user == null) {
owncloudPref.setSummary(R.string.preference_summary_not_logged_in)
owncloudPref.setOnPreferenceChangeListener { _, value ->
if (value as Boolean) {
lifecycleScope.launch launch2@{
client.login(requireActivity(), 0)
updateOwncloud()
}
}
true
}
} else {
owncloudPref.summary = context?.getString(
R.string.preference_search_cloud_summary,
user.displayName,
)
}
}
}
private fun googleLogin() {
lifecycleScope.launch {
GoogleApiHelper.getInstance(requireContext()).login(requireActivity())
}
}
private fun setSettingsScreen(fragment: Fragment) {
parentFragmentManager.beginTransaction()
.setCustomAnimations(
R.anim.preference_fragment_child_enter, R.anim.preference_fragment_parent_exit,
R.anim.preference_fragment_parent_enter, R.anim.preference_fragment_child_exit
)
.replace(android.R.id.content, fragment)
.addToBackStack(null)
.commit()
}
override fun onResume() {
super.onResume()
(activity as AppCompatActivity).supportActionBar?.setTitle(R.string.preference_screen_search)
updateNextcloud()
updateOwncloud()
}
}

View File

@ -1,176 +0,0 @@
package de.mm20.launcher2.fragment
import android.os.Bundle
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import de.mm20.launcher2.R
import de.mm20.launcher2.gservices.GoogleApiHelper
import de.mm20.launcher2.msservices.MicrosoftGraphApiHelper
import de.mm20.launcher2.nextcloud.NextcloudApiHelper
import de.mm20.launcher2.owncloud.OwncloudClient
import kotlinx.coroutines.launch
class PreferencesServicesFragment : PreferenceFragmentCompat() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
lifecycleScope.launch {
viewLifecycleOwner.lifecycle.repeatOnLifecycle(Lifecycle.State.RESUMED) {
updateGooglePreferences()
updateMicrosoftPreferences()
updateNextcloudPreferences()
}
}
}
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
addPreferencesFromResource(R.xml.preferences_services)
}
private suspend fun updateGooglePreferences() {
val pref = findPreference<Preference>("google_signin")!!
val googleApiHelper = GoogleApiHelper.getInstance(requireContext())
if (!googleApiHelper.isAvailable()) {
pref.isEnabled = false
pref.summary = context?.getString(R.string.feature_not_available, context?.getString(R.string.app_name))
return
}
val account = googleApiHelper.getAccount()
if (account == null) {
pref.apply {
setTitle(R.string.preference_google_signin)
setSummary(R.string.preference_google_signin_summary)
setOnPreferenceClickListener {
lifecycleScope.launch {
googleApiHelper.login(requireActivity())
}
true
}
}
} else {
pref.apply {
title = context.getString(R.string.preference_signin_logout)
summary = context.getString(R.string.preference_signin_user, account.name)
setOnPreferenceClickListener {
googleApiHelper.logout()
lifecycleScope.launch {
updateGooglePreferences()
}
true
}
}
}
}
private suspend fun updateMicrosoftPreferences() {
val pref = findPreference<Preference>("ms_signin")!!
val msApiHelper = MicrosoftGraphApiHelper.getInstance(requireContext())
if (!msApiHelper.isAvailable()) {
pref.isEnabled = false
pref.summary = context?.getString(R.string.feature_not_available, context?.getString(R.string.app_name))
return
}
val user = MicrosoftGraphApiHelper.getInstance(requireContext()).getUser()
if (user == null) {
pref.setTitle(R.string.preference_ms_signin)
pref.setSummary(R.string.preference_ms_signin_summary)
pref.setOnPreferenceClickListener {
lifecycleScope.launch {
msApiHelper.login(requireActivity())
updateMicrosoftPreferences()
}
true
}
} else {
pref.setTitle(R.string.preference_signin_logout)
pref.summary = context?.getString(R.string.preference_signin_user, user.name)
pref.setOnPreferenceClickListener {
lifecycleScope.launch {
msApiHelper.logout()
updateMicrosoftPreferences()
}
true
}
}
}
private suspend fun updateNextcloudPreferences() {
val nextcloud = NextcloudApiHelper(requireContext())
val user = nextcloud.getLoggedInUser()
if (user == null) {
findPreference<Preference>("nextcloud_signin")?.let {
it.setOnPreferenceClickListener {
nextcloud.login(requireActivity())
true
}
it.setTitle(R.string.preference_nextcloud_signin)
it.setSummary(R.string.preference_nextcloud_signin_summary)
}
} else {
findPreference<Preference>("nextcloud_signin")?.let {
it.setOnPreferenceClickListener {
lifecycleScope.launch {
nextcloud.logout()
updateNextcloudPreferences()
}
true
}
it.setTitle(R.string.preference_signin_logout)
it.summary = context?.getString(
R.string.preference_signin_user_nextcloud,
user.displayName
)
}
}
}
private fun updateOwncloudPreferences() {
val client = OwncloudClient(context ?: return)
lifecycleScope.launch {
val user = client.getLoggedInUser()
if (user == null) {
findPreference<Preference>("owncloud_signin")?.let {
it.setOnPreferenceClickListener {
OwncloudClient(requireContext()).login(
requireActivity(),
REQUEST_OWNCLOUD_LOGIN
)
true
}
it.setTitle(R.string.preference_owncloud_signin)
it.setSummary(R.string.preference_owncloud_signin_summary)
}
} else {
findPreference<Preference>("owncloud_signin")?.let {
it.setOnPreferenceClickListener {
OwncloudClient(requireContext()).logout()
updateOwncloudPreferences()
true
}
it.setTitle(R.string.preference_signin_logout)
it.summary = context?.getString(
R.string.preference_signin_user_nextcloud,
user.displayName,
)
}
}
}
}
override fun onResume() {
super.onResume()
(activity as AppCompatActivity).supportActionBar?.setTitle(R.string.preference_screen_services)
updateOwncloudPreferences()
}
companion object {
const val REQUEST_OWNCLOUD_LOGIN = 581
}
}

View File

@ -6,11 +6,11 @@
android:name=".LoginActivity"
android:label="@string/preference_category_services_nextcloud"
android:taskAffinity="de.mm20.launcher2.nextcloud"
android:parentActivityName=".activity.SettingsActivity"
android:parentActivityName="de.mm20.launcher2.ui.settings.SettingsActivity"
android:theme="@style/OwncloudLoginTheme" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="de.mm20.launcher2.activity.SettingsActivity" />
android:value="de.mm20.launcher2.ui.settings.SettingsActivity" />
</activity>
</application>

View File

@ -1,8 +1,6 @@
package de.mm20.launcher2.ui.launcher.search
import android.content.ComponentName
import android.content.Intent
import android.util.Log
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.animateColor
import androidx.compose.animation.core.animateDp
@ -20,7 +18,6 @@ import androidx.compose.foundation.lazy.LazyRow
import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.text.BasicTextField
import androidx.compose.foundation.text.KeyboardActions
import androidx.compose.material.DropdownMenu
import androidx.compose.material.DropdownMenuItem
import androidx.compose.material.icons.Icons
@ -31,9 +28,7 @@ import androidx.compose.runtime.livedata.observeAsState
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.alpha
import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.focus.onFocusChanged
import androidx.compose.ui.focus.onFocusEvent
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalFocusManager
@ -43,7 +38,6 @@ import androidx.lifecycle.viewmodel.compose.viewModel
import coil.compose.rememberImagePainter
import de.mm20.launcher2.ktx.tryStartActivity
import de.mm20.launcher2.preferences.LauncherDataStore
import de.mm20.launcher2.preferences.Settings
import de.mm20.launcher2.preferences.Settings.SearchBarSettings
import de.mm20.launcher2.search.data.Websearch
import de.mm20.launcher2.ui.R
@ -113,18 +107,6 @@ fun SearchBar(
}) {
Text(stringResource(R.string.settings))
}
DropdownMenuItem(onClick = {
context.startActivity(Intent().also {
it.component = ComponentName(
context.packageName,
"de.mm20.launcher2.activity.SettingsActivity"
)
it.flags = Intent.FLAG_ACTIVITY_NEW_TASK
})
onDismissRequest()
}) {
Text("Legacy Settings")
}
}
},
onFocus = onFocus,