Remove LauncherPreferences
This commit is contained in:
parent
6ba490287d
commit
470e378e17
@ -16,7 +16,6 @@ import de.mm20.launcher2.files.filesModule
|
|||||||
import de.mm20.launcher2.hiddenitems.hiddenItemsModule
|
import de.mm20.launcher2.hiddenitems.hiddenItemsModule
|
||||||
import de.mm20.launcher2.icons.iconsModule
|
import de.mm20.launcher2.icons.iconsModule
|
||||||
import de.mm20.launcher2.music.musicModule
|
import de.mm20.launcher2.music.musicModule
|
||||||
import de.mm20.launcher2.preferences.LauncherPreferences
|
|
||||||
import de.mm20.launcher2.search.searchModule
|
import de.mm20.launcher2.search.searchModule
|
||||||
import de.mm20.launcher2.unitconverter.unitConverterModule
|
import de.mm20.launcher2.unitconverter.unitConverterModule
|
||||||
import de.mm20.launcher2.websites.websitesModule
|
import de.mm20.launcher2.websites.websitesModule
|
||||||
@ -43,7 +42,6 @@ class LauncherApplication : Application(), CoroutineScope, ImageLoaderFactory {
|
|||||||
override fun onCreate() {
|
override fun onCreate() {
|
||||||
super.onCreate()
|
super.onCreate()
|
||||||
Debug()
|
Debug()
|
||||||
LauncherPreferences.initialize(this)
|
|
||||||
|
|
||||||
startKoin {
|
startKoin {
|
||||||
androidLogger(if (BuildConfig.DEBUG) Level.ERROR else Level.NONE)
|
androidLogger(if (BuildConfig.DEBUG) Level.ERROR else Level.NONE)
|
||||||
|
|||||||
@ -13,14 +13,11 @@ import androidx.preference.Preference
|
|||||||
import androidx.preference.PreferenceFragmentCompat
|
import androidx.preference.PreferenceFragmentCompat
|
||||||
import de.mm20.launcher2.R
|
import de.mm20.launcher2.R
|
||||||
import de.mm20.launcher2.ktx.dp
|
import de.mm20.launcher2.ktx.dp
|
||||||
import de.mm20.launcher2.preferences.LauncherPreferences
|
|
||||||
import de.mm20.launcher2.ui.legacy.view.LauncherCardView
|
import de.mm20.launcher2.ui.legacy.view.LauncherCardView
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
|
|
||||||
class PreferencesCardFragment : Fragment(R.layout.fragment_card_settings) {
|
class PreferencesCardFragment : Fragment(R.layout.fragment_card_settings) {
|
||||||
|
|
||||||
val preferences = LauncherPreferences.instance
|
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
val previewCard = view.findViewById<LauncherCardView>(R.id.previewCard)
|
val previewCard = view.findViewById<LauncherCardView>(R.id.previewCard)
|
||||||
|
|||||||
@ -11,16 +11,13 @@ import android.widget.Toast
|
|||||||
import android.widget.ToggleButton
|
import android.widget.ToggleButton
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import de.mm20.launcher2.R
|
import de.mm20.launcher2.R
|
||||||
import de.mm20.launcher2.preferences.LauncherPreferences
|
|
||||||
|
|
||||||
class PreferencesEasterEggFragment : Fragment() {
|
class PreferencesEasterEggFragment : Fragment() {
|
||||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||||
val view = inflater.inflate(R.layout.fragment_easteregg, null, false)
|
val view = inflater.inflate(R.layout.fragment_easteregg, null, false)
|
||||||
val root = view.findViewById<FrameLayout>(R.id.easterEggRoot)
|
val root = view.findViewById<FrameLayout>(R.id.easterEggRoot)
|
||||||
val toggle = view.findViewById<ToggleButton>(R.id.magicModeToggle)
|
val toggle = view.findViewById<ToggleButton>(R.id.magicModeToggle)
|
||||||
toggle.isChecked = LauncherPreferences.instance.easterEggEnabled
|
|
||||||
toggle.setOnCheckedChangeListener { _, isChecked ->
|
toggle.setOnCheckedChangeListener { _, isChecked ->
|
||||||
LauncherPreferences.instance.easterEggEnabled = isChecked
|
|
||||||
Toast.makeText(requireContext(), if (isChecked) R.string.easter_egg_activated else R.string.easter_egg_deactivated, Toast.LENGTH_SHORT).show()
|
Toast.makeText(requireContext(), if (isChecked) R.string.easter_egg_activated else R.string.easter_egg_deactivated, Toast.LENGTH_SHORT).show()
|
||||||
}
|
}
|
||||||
return view
|
return view
|
||||||
|
|||||||
@ -17,7 +17,6 @@ import de.mm20.launcher2.ktx.checkPermission
|
|||||||
import de.mm20.launcher2.msservices.MicrosoftGraphApiHelper
|
import de.mm20.launcher2.msservices.MicrosoftGraphApiHelper
|
||||||
import de.mm20.launcher2.nextcloud.NextcloudApiHelper
|
import de.mm20.launcher2.nextcloud.NextcloudApiHelper
|
||||||
import de.mm20.launcher2.owncloud.OwncloudClient
|
import de.mm20.launcher2.owncloud.OwncloudClient
|
||||||
import de.mm20.launcher2.preferences.LauncherPreferences
|
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import org.koin.android.ext.android.inject
|
import org.koin.android.ext.android.inject
|
||||||
|
|
||||||
|
|||||||
@ -12,7 +12,6 @@ import android.os.UserHandle
|
|||||||
import android.os.UserManager
|
import android.os.UserManager
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import de.mm20.launcher2.hiddenitems.HiddenItemsRepository
|
import de.mm20.launcher2.hiddenitems.HiddenItemsRepository
|
||||||
import de.mm20.launcher2.preferences.LauncherPreferences
|
|
||||||
import de.mm20.launcher2.search.data.AppInstallation
|
import de.mm20.launcher2.search.data.AppInstallation
|
||||||
import de.mm20.launcher2.search.data.Application
|
import de.mm20.launcher2.search.data.Application
|
||||||
import de.mm20.launcher2.search.data.LauncherApp
|
import de.mm20.launcher2.search.data.LauncherApp
|
||||||
|
|||||||
@ -16,7 +16,6 @@ import de.mm20.launcher2.applications.R
|
|||||||
import de.mm20.launcher2.icons.LauncherIcon
|
import de.mm20.launcher2.icons.LauncherIcon
|
||||||
import de.mm20.launcher2.ktx.getSerialNumber
|
import de.mm20.launcher2.ktx.getSerialNumber
|
||||||
import de.mm20.launcher2.ktx.isAtLeastApiLevel
|
import de.mm20.launcher2.ktx.isAtLeastApiLevel
|
||||||
import de.mm20.launcher2.preferences.LauncherPreferences
|
|
||||||
import de.mm20.launcher2.preferences.Settings
|
import de.mm20.launcher2.preferences.Settings
|
||||||
import de.mm20.launcher2.preferences.Settings.IconSettings.LegacyIconBackground
|
import de.mm20.launcher2.preferences.Settings.IconSettings.LegacyIconBackground
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
|||||||
@ -22,7 +22,6 @@ import de.mm20.launcher2.ktx.checkPermission
|
|||||||
import de.mm20.launcher2.ktx.dp
|
import de.mm20.launcher2.ktx.dp
|
||||||
import de.mm20.launcher2.permissions.PermissionGroup
|
import de.mm20.launcher2.permissions.PermissionGroup
|
||||||
import de.mm20.launcher2.permissions.PermissionsManager
|
import de.mm20.launcher2.permissions.PermissionsManager
|
||||||
import de.mm20.launcher2.preferences.LauncherPreferences
|
|
||||||
import org.koin.core.component.KoinComponent
|
import org.koin.core.component.KoinComponent
|
||||||
import org.koin.core.component.get
|
import org.koin.core.component.get
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
|
|||||||
@ -16,7 +16,6 @@ import de.mm20.launcher2.ktx.asBitmap
|
|||||||
import de.mm20.launcher2.ktx.sp
|
import de.mm20.launcher2.ktx.sp
|
||||||
import de.mm20.launcher2.permissions.PermissionGroup
|
import de.mm20.launcher2.permissions.PermissionGroup
|
||||||
import de.mm20.launcher2.permissions.PermissionsManager
|
import de.mm20.launcher2.permissions.PermissionsManager
|
||||||
import de.mm20.launcher2.preferences.LauncherPreferences
|
|
||||||
import de.mm20.launcher2.preferences.Settings
|
import de.mm20.launcher2.preferences.Settings
|
||||||
import de.mm20.launcher2.preferences.Settings.IconSettings.LegacyIconBackground
|
import de.mm20.launcher2.preferences.Settings.IconSettings.LegacyIconBackground
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
|||||||
@ -5,7 +5,6 @@ import de.mm20.launcher2.database.AppDatabase
|
|||||||
import de.mm20.launcher2.database.entities.FavoritesItemEntity
|
import de.mm20.launcher2.database.entities.FavoritesItemEntity
|
||||||
import de.mm20.launcher2.ktx.ceilToInt
|
import de.mm20.launcher2.ktx.ceilToInt
|
||||||
import de.mm20.launcher2.preferences.LauncherDataStore
|
import de.mm20.launcher2.preferences.LauncherDataStore
|
||||||
import de.mm20.launcher2.preferences.LauncherPreferences
|
|
||||||
import de.mm20.launcher2.search.SearchableDeserializer
|
import de.mm20.launcher2.search.SearchableDeserializer
|
||||||
import de.mm20.launcher2.search.data.CalendarEvent
|
import de.mm20.launcher2.search.data.CalendarEvent
|
||||||
import de.mm20.launcher2.search.data.Searchable
|
import de.mm20.launcher2.search.data.Searchable
|
||||||
|
|||||||
@ -8,7 +8,6 @@ import de.mm20.launcher2.gservices.DriveFileMeta
|
|||||||
import de.mm20.launcher2.gservices.GoogleApiHelper
|
import de.mm20.launcher2.gservices.GoogleApiHelper
|
||||||
import de.mm20.launcher2.helper.NetworkUtils
|
import de.mm20.launcher2.helper.NetworkUtils
|
||||||
import de.mm20.launcher2.icons.LauncherIcon
|
import de.mm20.launcher2.icons.LauncherIcon
|
||||||
import de.mm20.launcher2.preferences.LauncherPreferences
|
|
||||||
|
|
||||||
class GDriveFile(
|
class GDriveFile(
|
||||||
val fileId: String,
|
val fileId: String,
|
||||||
|
|||||||
@ -6,7 +6,6 @@ import android.net.Uri
|
|||||||
import de.mm20.launcher2.files.R
|
import de.mm20.launcher2.files.R
|
||||||
import de.mm20.launcher2.helper.NetworkUtils
|
import de.mm20.launcher2.helper.NetworkUtils
|
||||||
import de.mm20.launcher2.nextcloud.NextcloudApiHelper
|
import de.mm20.launcher2.nextcloud.NextcloudApiHelper
|
||||||
import de.mm20.launcher2.preferences.LauncherPreferences
|
|
||||||
|
|
||||||
class NextcloudFile(
|
class NextcloudFile(
|
||||||
fileId: Long,
|
fileId: Long,
|
||||||
|
|||||||
@ -7,7 +7,6 @@ import de.mm20.launcher2.msservices.DriveItem
|
|||||||
import de.mm20.launcher2.files.R
|
import de.mm20.launcher2.files.R
|
||||||
import de.mm20.launcher2.msservices.MicrosoftGraphApiHelper
|
import de.mm20.launcher2.msservices.MicrosoftGraphApiHelper
|
||||||
import de.mm20.launcher2.icons.LauncherIcon
|
import de.mm20.launcher2.icons.LauncherIcon
|
||||||
import de.mm20.launcher2.preferences.LauncherPreferences
|
|
||||||
|
|
||||||
class OneDriveFile(
|
class OneDriveFile(
|
||||||
val fileId: String,
|
val fileId: String,
|
||||||
|
|||||||
@ -6,7 +6,6 @@ import android.net.Uri
|
|||||||
import de.mm20.launcher2.files.R
|
import de.mm20.launcher2.files.R
|
||||||
import de.mm20.launcher2.helper.NetworkUtils
|
import de.mm20.launcher2.helper.NetworkUtils
|
||||||
import de.mm20.launcher2.owncloud.OwncloudClient
|
import de.mm20.launcher2.owncloud.OwncloudClient
|
||||||
import de.mm20.launcher2.preferences.LauncherPreferences
|
|
||||||
|
|
||||||
class OwncloudFile(
|
class OwncloudFile(
|
||||||
fileId: Long,
|
fileId: Long,
|
||||||
|
|||||||
@ -7,7 +7,6 @@ import android.graphics.drawable.ColorDrawable
|
|||||||
import de.mm20.launcher2.icons.CalendarDynamicLauncherIcon
|
import de.mm20.launcher2.icons.CalendarDynamicLauncherIcon
|
||||||
import de.mm20.launcher2.icons.LauncherIcon
|
import de.mm20.launcher2.icons.LauncherIcon
|
||||||
import de.mm20.launcher2.ktx.obtainTypedArrayOrNull
|
import de.mm20.launcher2.ktx.obtainTypedArrayOrNull
|
||||||
import de.mm20.launcher2.preferences.LauncherPreferences
|
|
||||||
import de.mm20.launcher2.search.data.Application
|
import de.mm20.launcher2.search.data.Application
|
||||||
import de.mm20.launcher2.search.data.Searchable
|
import de.mm20.launcher2.search.data.Searchable
|
||||||
|
|
||||||
|
|||||||
@ -16,7 +16,6 @@ import com.microsoft.identity.client.PublicClientApplication
|
|||||||
import com.microsoft.identity.client.exception.MsalClientException
|
import com.microsoft.identity.client.exception.MsalClientException
|
||||||
import com.microsoft.identity.client.exception.MsalException
|
import com.microsoft.identity.client.exception.MsalException
|
||||||
import de.mm20.launcher2.crashreporter.CrashReporter
|
import de.mm20.launcher2.crashreporter.CrashReporter
|
||||||
import de.mm20.launcher2.preferences.LauncherPreferences
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
import java.net.URLEncoder
|
import java.net.URLEncoder
|
||||||
|
|||||||
@ -1,69 +0,0 @@
|
|||||||
package de.mm20.launcher2.preferences
|
|
||||||
|
|
||||||
import android.app.Application
|
|
||||||
import android.content.SharedPreferences
|
|
||||||
import androidx.core.content.edit
|
|
||||||
import androidx.preference.PreferenceManager
|
|
||||||
|
|
||||||
|
|
||||||
class LauncherPreferences(val context: Application, version: Int = 3) {
|
|
||||||
internal val preferences by lazy {
|
|
||||||
PreferenceManager.getDefaultSharedPreferences(context)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
var version by IntPreference("preferences_version", default = 1)
|
|
||||||
|
|
||||||
init {
|
|
||||||
val oldVersion = this.version
|
|
||||||
if ( version >= 2 && oldVersion <= 1) {
|
|
||||||
val appStartAnim = preferences.getInt("app_start_anim", 0)
|
|
||||||
preferences.edit {
|
|
||||||
remove("app_start_anim")
|
|
||||||
putString("app_start_anim", appStartAnim.toString())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (version >= 3 && oldVersion <= 2) {
|
|
||||||
val translucentCards = preferences.getBoolean("translucent_cards", false)
|
|
||||||
val theme = preferences.getString("theme", "2")
|
|
||||||
|
|
||||||
preferences.edit {
|
|
||||||
remove("translucent_cards")
|
|
||||||
putInt("card_opacity", if (translucentCards) 0xCC else 0xFF)
|
|
||||||
if (theme == "4") {
|
|
||||||
putString("theme", "1")
|
|
||||||
putString("card_background", "2")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (version >= 4 && oldVersion <= 3) {
|
|
||||||
val appStartAnim = preferences.getString("app_start_anim", "5")
|
|
||||||
if (appStartAnim == "0" || appStartAnim == "1")
|
|
||||||
preferences.edit {
|
|
||||||
putString("app_start_anim", "2")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.version = version
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
var appStartAnim by EnumPreference("app_start_anim", default = AppStartAnimation.M)
|
|
||||||
|
|
||||||
var cardRadius by IntPreference("card_radius", default = 8)
|
|
||||||
|
|
||||||
var easterEggEnabled by BooleanPreference("easter_egg", default = false)
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
lateinit var instance: LauncherPreferences
|
|
||||||
fun initialize(app: Application) {
|
|
||||||
instance = LauncherPreferences(app)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
enum class AppStartAnimation(override val value: String): PreferenceEnum {
|
|
||||||
DEFAULT("5"),
|
|
||||||
M("2"),
|
|
||||||
FADE("3"),
|
|
||||||
SLIDE_BOTTOM("4")
|
|
||||||
}
|
|
||||||
@ -1,89 +0,0 @@
|
|||||||
package de.mm20.launcher2.preferences
|
|
||||||
|
|
||||||
import androidx.core.content.edit
|
|
||||||
import de.mm20.launcher2.crashreporter.CrashReporter
|
|
||||||
import org.json.JSONArray
|
|
||||||
import org.json.JSONException
|
|
||||||
import kotlin.properties.ReadWriteProperty
|
|
||||||
import kotlin.reflect.KProperty
|
|
||||||
|
|
||||||
class StringPreference(val key: String, val default: String) : ReadWriteProperty<LauncherPreferences, String> {
|
|
||||||
override fun getValue(thisRef: LauncherPreferences, property: KProperty<*>): String {
|
|
||||||
return thisRef.preferences.getString(key, default)!!
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun setValue(thisRef: LauncherPreferences, property: KProperty<*>, value: String) {
|
|
||||||
thisRef.preferences.edit {
|
|
||||||
putString(key, value)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class BooleanPreference(val key: String, val default: Boolean) : ReadWriteProperty<LauncherPreferences, Boolean> {
|
|
||||||
override fun getValue(thisRef: LauncherPreferences, property: KProperty<*>): Boolean {
|
|
||||||
return thisRef.preferences.getBoolean(key, default)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun setValue(thisRef: LauncherPreferences, property: KProperty<*>, value: Boolean) {
|
|
||||||
thisRef.preferences.edit {
|
|
||||||
putBoolean(key, value)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class IntPreference(val key: String, val default: Int) : ReadWriteProperty<LauncherPreferences, Int> {
|
|
||||||
override fun getValue(thisRef: LauncherPreferences, property: KProperty<*>): Int {
|
|
||||||
return thisRef.preferences.getInt(key, default)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun setValue(thisRef: LauncherPreferences, property: KProperty<*>, value: Int) {
|
|
||||||
thisRef.preferences.edit {
|
|
||||||
putInt(key, value)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class LongListPreference(val key: String, val default: List<Long>) : ReadWriteProperty<LauncherPreferences, List<Long>> {
|
|
||||||
override fun getValue(thisRef: LauncherPreferences, property: KProperty<*>): List<Long> {
|
|
||||||
val list = mutableListOf<Long>()
|
|
||||||
try {
|
|
||||||
val jsonArray = JSONArray(thisRef.preferences.getString(key, null) ?: return default)
|
|
||||||
for (i in 0 until jsonArray.length()) {
|
|
||||||
list.add(jsonArray.getLong(i))
|
|
||||||
}
|
|
||||||
} catch (e: JSONException) {
|
|
||||||
CrashReporter.logException(e)
|
|
||||||
return default
|
|
||||||
}
|
|
||||||
return list
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun setValue(thisRef: LauncherPreferences, property: KProperty<*>, value: List<Long>) {
|
|
||||||
val jsonArray = JSONArray()
|
|
||||||
for (i in value) {
|
|
||||||
jsonArray.put(i)
|
|
||||||
}
|
|
||||||
thisRef.preferences.edit {
|
|
||||||
putString(key, jsonArray.toString())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
interface PreferenceEnum {
|
|
||||||
val value: String
|
|
||||||
}
|
|
||||||
|
|
||||||
class EnumPreference<T>(val key: String, val default: T) : ReadWriteProperty<LauncherPreferences, T> where T : Enum<T>, T : PreferenceEnum {
|
|
||||||
override fun getValue(thisRef: LauncherPreferences, property: KProperty<*>): T {
|
|
||||||
val value = thisRef.preferences.getString(key, null) ?: return default
|
|
||||||
val enumConstants = default::class.java.enumConstants as Array<out T>
|
|
||||||
return enumConstants.firstOrNull { it.value == value } ?: default
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun setValue(thisRef: LauncherPreferences, property: KProperty<*>, value: T) {
|
|
||||||
thisRef.preferences.edit {
|
|
||||||
putString(key, value.value)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -10,7 +10,6 @@ import de.mm20.launcher2.calendar.CalendarRepository
|
|||||||
import de.mm20.launcher2.contacts.ContactRepository
|
import de.mm20.launcher2.contacts.ContactRepository
|
||||||
import de.mm20.launcher2.favorites.FavoritesRepository
|
import de.mm20.launcher2.favorites.FavoritesRepository
|
||||||
import de.mm20.launcher2.files.FileRepository
|
import de.mm20.launcher2.files.FileRepository
|
||||||
import de.mm20.launcher2.preferences.LauncherPreferences
|
|
||||||
import de.mm20.launcher2.search.WebsearchRepository
|
import de.mm20.launcher2.search.WebsearchRepository
|
||||||
import de.mm20.launcher2.search.data.*
|
import de.mm20.launcher2.search.data.*
|
||||||
import de.mm20.launcher2.unitconverter.UnitConverterRepository
|
import de.mm20.launcher2.unitconverter.UnitConverterRepository
|
||||||
|
|||||||
@ -5,7 +5,6 @@ import androidx.lifecycle.*
|
|||||||
import de.mm20.launcher2.permissions.PermissionGroup
|
import de.mm20.launcher2.permissions.PermissionGroup
|
||||||
import de.mm20.launcher2.permissions.PermissionsManager
|
import de.mm20.launcher2.permissions.PermissionsManager
|
||||||
import de.mm20.launcher2.preferences.LauncherDataStore
|
import de.mm20.launcher2.preferences.LauncherDataStore
|
||||||
import de.mm20.launcher2.preferences.LauncherPreferences
|
|
||||||
import de.mm20.launcher2.weather.DailyForecast
|
import de.mm20.launcher2.weather.DailyForecast
|
||||||
import de.mm20.launcher2.weather.Forecast
|
import de.mm20.launcher2.weather.Forecast
|
||||||
import de.mm20.launcher2.weather.WeatherRepository
|
import de.mm20.launcher2.weather.WeatherRepository
|
||||||
|
|||||||
@ -10,7 +10,6 @@ import de.mm20.launcher2.ktx.dp
|
|||||||
import de.mm20.launcher2.ktx.lifecycleOwner
|
import de.mm20.launcher2.ktx.lifecycleOwner
|
||||||
import de.mm20.launcher2.ktx.lifecycleScope
|
import de.mm20.launcher2.ktx.lifecycleScope
|
||||||
import de.mm20.launcher2.preferences.LauncherDataStore
|
import de.mm20.launcher2.preferences.LauncherDataStore
|
||||||
import de.mm20.launcher2.preferences.LauncherPreferences
|
|
||||||
import de.mm20.launcher2.ui.R
|
import de.mm20.launcher2.ui.R
|
||||||
import kotlinx.coroutines.Job
|
import kotlinx.coroutines.Job
|
||||||
import kotlinx.coroutines.flow.collectLatest
|
import kotlinx.coroutines.flow.collectLatest
|
||||||
|
|||||||
@ -13,7 +13,6 @@ import androidx.core.text.toHtml
|
|||||||
import de.mm20.launcher2.wikipedia.R
|
import de.mm20.launcher2.wikipedia.R
|
||||||
import de.mm20.launcher2.icons.LauncherIcon
|
import de.mm20.launcher2.icons.LauncherIcon
|
||||||
import de.mm20.launcher2.helper.NetworkUtils
|
import de.mm20.launcher2.helper.NetworkUtils
|
||||||
import de.mm20.launcher2.preferences.LauncherPreferences
|
|
||||||
import okhttp3.OkHttpClient
|
import okhttp3.OkHttpClient
|
||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
import org.json.JSONException
|
import org.json.JSONException
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user