--- a/app/src/main/java/com/geekorum/ttrss/settings/SettingsInitializer.kt Sat Jun 13 20:19:49 2020 -0400
+++ b/app/src/main/java/com/geekorum/ttrss/settings/SettingsInitializer.kt Sat Jun 13 20:43:37 2020 -0400
@@ -28,6 +28,8 @@
import com.geekorum.ttrss.debugtools.withStrictMode
import dagger.Binds
import dagger.Module
+import dagger.hilt.InstallIn
+import dagger.hilt.android.components.ApplicationComponent
import dagger.multibindings.IntoSet
import javax.inject.Inject
@@ -41,6 +43,7 @@
}
@Module
+@InstallIn(ApplicationComponent::class)
abstract class SettingsInitializerModule {
@Binds
@IntoSet
--- a/app/src/main/java/com/geekorum/ttrss/settings/di.kt Sat Jun 13 20:19:49 2020 -0400
+++ b/app/src/main/java/com/geekorum/ttrss/settings/di.kt Sat Jun 13 20:43:37 2020 -0400
@@ -25,34 +25,30 @@
import androidx.fragment.app.Fragment
import androidx.preference.PreferenceManager
import com.geekorum.geekdroid.dagger.FragmentKey
-import com.geekorum.ttrss.settings.manage_features.InstallFeatureActivity
-import com.geekorum.ttrss.settings.manage_features.ManageFeaturesModule
import dagger.Binds
import dagger.Module
import dagger.Provides
-import dagger.android.ContributesAndroidInjector
+import dagger.hilt.InstallIn
+import dagger.hilt.android.components.ActivityComponent
+import dagger.hilt.android.components.ApplicationComponent
import dagger.multibindings.IntoMap
-@Module(includes = [SettingsInitializerModule::class, ManageFeaturesModule::class])
+@Module
+@InstallIn(ActivityComponent::class)
abstract class SettingsModule {
- @ContributesAndroidInjector
- abstract fun contributesSettingsActivityInjector(): SettingsActivity
-
- @ContributesAndroidInjector
- abstract fun contributesInstallFeatureActivityInjector(): InstallFeatureActivity
-
@Binds
@IntoMap
@FragmentKey(SettingsActivity.SettingsFragment::class)
abstract fun bindSettingsFragment(settingsFragment: SettingsActivity.SettingsFragment): Fragment
- @Module
- companion object {
+}
- @Provides
- fun providesApplicationPreferences(application: Application): SharedPreferences =
- PreferenceManager.getDefaultSharedPreferences(application)
- }
+@Module
+@InstallIn(ApplicationComponent::class)
+object ApplicationPreferencesModule {
+ @Provides
+ fun providesApplicationPreferences(application: Application): SharedPreferences =
+ PreferenceManager.getDefaultSharedPreferences(application)
}
--- a/app/src/main/java/com/geekorum/ttrss/settings/manage_features/InstallFeatureActivity.kt Sat Jun 13 20:19:49 2020 -0400
+++ b/app/src/main/java/com/geekorum/ttrss/settings/manage_features/InstallFeatureActivity.kt Sat Jun 13 20:43:37 2020 -0400
@@ -34,12 +34,14 @@
import com.geekorum.ttrss.on_demand_modules.InstallSession.State.Status.FAILED
import com.geekorum.ttrss.on_demand_modules.InstallSession.State.Status.INSTALLED
import com.geekorum.ttrss.on_demand_modules.InstallSession.State.Status.REQUIRES_USER_CONFIRMATION
+import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
/**
* Quick and dirty InstallFeatureActivity
*/
+@AndroidEntryPoint
class InstallFeatureActivity : BaseActivity() {
companion object {
--- a/app/src/main/java/com/geekorum/ttrss/settings/manage_features/ManageFeaturesFragment.kt Sat Jun 13 20:19:49 2020 -0400
+++ b/app/src/main/java/com/geekorum/ttrss/settings/manage_features/ManageFeaturesFragment.kt Sat Jun 13 20:43:37 2020 -0400
@@ -25,6 +25,7 @@
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import androidx.lifecycle.observe
import androidx.recyclerview.widget.DividerItemDecoration
@@ -34,11 +35,11 @@
import com.geekorum.ttrss.core.BaseFragment
import com.geekorum.ttrss.databinding.FragmentManageFeaturesBinding
import com.geekorum.ttrss.databinding.ItemFeatureBinding
+import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
-class ManageFeaturesFragment @Inject constructor(
- savedStateVmFactoryCreator: DaggerDelegateSavedStateVMFactory.Creator
-) : BaseFragment(savedStateVmFactoryCreator) {
+@AndroidEntryPoint
+class ManageFeaturesFragment : Fragment() {
lateinit var binding: FragmentManageFeaturesBinding
private val viewModel: ManageFeaturesViewModel by viewModels()
--- a/app/src/main/java/com/geekorum/ttrss/settings/manage_features/ManageFeaturesViewModel.kt Sat Jun 13 20:19:49 2020 -0400
+++ b/app/src/main/java/com/geekorum/ttrss/settings/manage_features/ManageFeaturesViewModel.kt Sat Jun 13 20:43:37 2020 -0400
@@ -20,6 +20,7 @@
*/
package com.geekorum.ttrss.settings.manage_features
+import androidx.hilt.lifecycle.ViewModelInject
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
@@ -27,9 +28,8 @@
import com.geekorum.ttrss.Features
import com.geekorum.ttrss.on_demand_modules.ImmutableModuleManager
import com.geekorum.ttrss.on_demand_modules.OnDemandModuleManager
-import javax.inject.Inject
-class ManageFeaturesViewModel @Inject constructor(
+class ManageFeaturesViewModel @ViewModelInject constructor(
private val moduleManager: OnDemandModuleManager
) : ViewModel() {
private val moduleStatus = MutableLiveData<List<FeatureStatus>>().apply {
--- a/app/src/main/java/com/geekorum/ttrss/settings/manage_features/di.kt Sat Jun 13 20:19:49 2020 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/**
- * Geekttrss is a RSS feed reader application on the Android Platform.
- *
- * Copyright (C) 2017-2020 by Frederic-Charles Barthelery.
- *
- * This file is part of Geekttrss.
- *
- * Geekttrss is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Geekttrss is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Geekttrss. If not, see <http://www.gnu.org/licenses/>.
- */
-package com.geekorum.ttrss.settings.manage_features
-
-import androidx.fragment.app.Fragment
-import androidx.lifecycle.ViewModel
-import com.geekorum.geekdroid.dagger.FragmentKey
-import com.geekorum.geekdroid.dagger.ViewModelKey
-import com.geekorum.ttrss.on_demand_modules.InstallModuleViewModel
-import dagger.Binds
-import dagger.Module
-import dagger.multibindings.IntoMap
-
-@Module
-abstract class ManageFeaturesModule {
-
- @Binds
- @IntoMap
- @FragmentKey(ManageFeaturesFragment::class)
- abstract fun getManageFeaturesFragment(manageFeaturesFragment: ManageFeaturesFragment): Fragment
-
- @Binds
- @IntoMap
- @ViewModelKey(ManageFeaturesViewModel::class)
- abstract fun getManageFeaturesViewModel(manageFeaturesViewModel: ManageFeaturesViewModel): ViewModel
-
- @Binds
- @IntoMap
- @ViewModelKey(InstallModuleViewModel::class)
- abstract fun getInstallModuleViewModel(vm: InstallModuleViewModel): ViewModel
-}