11package com .d4rk .androidtutorials .java .ui .screens .main ;
22
3- import android .app .Application ;
43import android .content .Intent ;
5- import android .content .pm .PackageManager ;
64
75import androidx .lifecycle .ViewModel ;
86import androidx .lifecycle .LiveData ;
3129@ HiltViewModel
3230public class MainViewModel extends ViewModel {
3331
34- private final Application application ;
3532 private final ApplyThemeSettingsUseCase applyThemeSettingsUseCase ;
3633 private final GetBottomNavLabelVisibilityUseCase getBottomNavLabelVisibilityUseCase ;
3734 private final GetDefaultTabPreferenceUseCase getDefaultTabPreferenceUseCase ;
@@ -46,8 +43,7 @@ public class MainViewModel extends ViewModel {
4643 private final MutableLiveData <Boolean > themeChanged = new MutableLiveData <>();
4744
4845 @ Inject
49- public MainViewModel (Application application ,
50- ApplyThemeSettingsUseCase applyThemeSettingsUseCase ,
46+ public MainViewModel (ApplyThemeSettingsUseCase applyThemeSettingsUseCase ,
5147 GetBottomNavLabelVisibilityUseCase getBottomNavLabelVisibilityUseCase ,
5248 GetDefaultTabPreferenceUseCase getDefaultTabPreferenceUseCase ,
5349 ApplyLanguageSettingsUseCase applyLanguageSettingsUseCase ,
@@ -56,7 +52,6 @@ public MainViewModel(Application application,
5652 IsAppInstalledUseCase isAppInstalledUseCase ,
5753 BuildShortcutIntentUseCase buildShortcutIntentUseCase ,
5854 GetAppUpdateManagerUseCase getAppUpdateManagerUseCase ) {
59- this .application = application ;
6055 this .applyThemeSettingsUseCase = applyThemeSettingsUseCase ;
6156 this .getBottomNavLabelVisibilityUseCase = getBottomNavLabelVisibilityUseCase ;
6257 this .getDefaultTabPreferenceUseCase = getDefaultTabPreferenceUseCase ;
@@ -84,26 +79,17 @@ private static int getVisibilityMode(String labelVisibilityStr, String[] bottomN
8479 * Loads and applies settings such as theme, bottom nav visibility, default tab, etc.
8580 * This can be called from onCreate() or similar lifecycle methods in MainActivity.
8681 */
87- public void applySettings () {
88- boolean changedTheme = applyThemeSettingsUseCase . invoke (
89- application . getResources (). getStringArray ( R . array . preference_theme_values )
90- );
82+ public void applySettings (String [] themeValues ,
83+ String [] bottomNavBarLabelsValues ,
84+ String [] defaultTabValues ) {
85+ boolean changedTheme = applyThemeSettingsUseCase . invoke ( themeValues );
9186 themeChanged .setValue (changedTheme );
9287
93- String labelKey = application .getString (R .string .key_bottom_navigation_bar_labels );
94- String labelDefaultValue = application .getString (R .string .default_value_bottom_navigation_bar_labels );
95- String [] bottomNavBarLabelsValues =
96- application .getResources ().getStringArray (R .array .preference_bottom_navigation_bar_labels_values );
97-
98- String labelVisibilityStr = getBottomNavLabelVisibilityUseCase .invoke (labelKey , labelDefaultValue );
88+ String labelVisibilityStr = getBottomNavLabelVisibilityUseCase .invoke ();
9989 int visibilityMode = getVisibilityMode (labelVisibilityStr , bottomNavBarLabelsValues );
10090 bottomNavLabelVisibility .setValue (visibilityMode );
10191
102- String defaultTabKey = application .getString (R .string .key_default_tab );
103- String defaultTabValue = application .getString (R .string .default_value_tab );
104- String [] defaultTabValues = application .getResources ().getStringArray (R .array .preference_default_tab_values );
105-
106- String startFragmentIdValue = getDefaultTabPreferenceUseCase .invoke (defaultTabKey , defaultTabValue );
92+ String startFragmentIdValue = getDefaultTabPreferenceUseCase .invoke ();
10793 int startFragmentId ;
10894 if (startFragmentIdValue .equals (defaultTabValues [0 ])) {
10995 startFragmentId = R .id .navigation_home ;
@@ -136,8 +122,7 @@ public void markStartupScreenShown() {
136122 * Check if the “Android Tutorials” app is installed or not.
137123 */
138124 public boolean isAndroidTutorialsInstalled () {
139- PackageManager pm = application .getPackageManager ();
140- return isAppInstalledUseCase .invoke (pm , "com.d4rk.androidtutorials.java" );
125+ return isAppInstalledUseCase .invoke ("com.d4rk.androidtutorials.java" );
141126 }
142127
143128 /**
0 commit comments