Search in sources :

Example 76 with ViewModelProvider

use of androidx.lifecycle.ViewModelProvider in project grocy-android by patzly.

the class OverviewStartFragment method onViewCreated.

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    activity = (MainActivity) requireActivity();
    viewModel = new ViewModelProvider(this).get(OverviewStartViewModel.class);
    viewModel.setOfflineLive(!activity.isOnline());
    binding.setViewModel(viewModel);
    binding.setFragment(this);
    binding.setActivity(activity);
    binding.setLifecycleOwner(getViewLifecycleOwner());
    clickUtil = new ClickUtil(1000);
    viewModel.getIsLoadingLive().observe(getViewLifecycleOwner(), state -> {
        if (!state) {
            viewModel.setCurrentQueueLoading(null);
        }
    });
    viewModel.getEventHandler().observeEvent(getViewLifecycleOwner(), event -> {
        if (event.getType() == Event.SNACKBAR_MESSAGE) {
            activity.showSnackbar(((SnackbarMessage) event).getSnackbar(activity, activity.binding.frameMainContainer));
        }
    });
    infoFullscreenHelper = new InfoFullscreenHelper(binding.frameContainer);
    viewModel.getInfoFullscreenLive().observe(getViewLifecycleOwner(), infoFullscreen -> infoFullscreenHelper.setInfo(infoFullscreen));
    viewModel.getOfflineLive().observe(getViewLifecycleOwner(), this::appBarOfflineInfo);
    binding.toolbar.setOnMenuItemClickListener(item -> {
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            navigateDeepLink(getString(R.string.deep_link_settingsFragment));
        } else if (id == R.id.action_about) {
            navigateDeepLink(getString(R.string.deep_link_aboutFragment));
        } else if (id == R.id.action_feedback) {
            activity.showBottomSheet(new FeedbackBottomSheet());
        } else if (id == R.id.action_changelog) {
            activity.showBottomSheet(new ChangelogBottomSheet());
        }
        return false;
    });
    // for offline info in app bar
    binding.swipe.getLayoutTransition().enableTransitionType(LayoutTransition.CHANGING);
    if (savedInstanceState == null) {
        viewModel.loadFromDatabase(true);
    }
    // UPDATE UI
    updateUI((getArguments() == null || getArguments().getBoolean(Constants.ARGUMENT.ANIMATED, true)) && savedInstanceState == null);
}
Also used : ChangelogBottomSheet(xyz.zedler.patrick.grocy.fragment.bottomSheetDialog.ChangelogBottomSheet) OverviewStartViewModel(xyz.zedler.patrick.grocy.viewmodel.OverviewStartViewModel) ClickUtil(xyz.zedler.patrick.grocy.util.ClickUtil) FeedbackBottomSheet(xyz.zedler.patrick.grocy.fragment.bottomSheetDialog.FeedbackBottomSheet) InfoFullscreenHelper(xyz.zedler.patrick.grocy.helper.InfoFullscreenHelper) ViewModelProvider(androidx.lifecycle.ViewModelProvider)

Example 77 with ViewModelProvider

use of androidx.lifecycle.ViewModelProvider in project grocy-android by patzly.

the class SettingsCatAppearanceFragment method onViewCreated.

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    activity = (MainActivity) requireActivity();
    viewModel = new ViewModelProvider(this).get(SettingsViewModel.class);
    binding.setActivity(activity);
    binding.setFragment(this);
    binding.setViewModel(viewModel);
    binding.setClickUtil(new ClickUtil());
    binding.setLifecycleOwner(getViewLifecycleOwner());
    int theme = viewModel.getTheme();
    boolean currentlyDark = isSystemThemeDark();
    Drawable imageLightToDark = ContextCompat.getDrawable(requireContext(), R.drawable.ic_round_light_to_dark_anim);
    Drawable imageDarkToLight = ContextCompat.getDrawable(requireContext(), R.drawable.ic_round_dark_to_light_anim);
    if (theme == SettingsViewModel.THEME_SYSTEM) {
        binding.imageTheme.setImageDrawable(currentlyDark ? imageDarkToLight : imageLightToDark);
    } else if (theme == SettingsViewModel.THEME_LIGHT) {
        binding.imageTheme.setImageDrawable(imageLightToDark);
    } else {
        // dark
        binding.imageTheme.setImageDrawable(imageDarkToLight);
    }
    if (activity.binding.bottomAppBar.getVisibility() == View.VISIBLE) {
        activity.getScrollBehavior().setUpScroll(binding.scroll);
        activity.getScrollBehavior().setHideOnScroll(true);
        activity.updateBottomAppBar(Constants.FAB.POSITION.GONE, R.menu.menu_empty, false, () -> {
        });
        activity.binding.fabMain.hide();
    }
    setForPreviousDestination(Constants.ARGUMENT.ANIMATED, false);
}
Also used : ClickUtil(xyz.zedler.patrick.grocy.util.ClickUtil) Drawable(android.graphics.drawable.Drawable) SettingsViewModel(xyz.zedler.patrick.grocy.viewmodel.SettingsViewModel) ViewModelProvider(androidx.lifecycle.ViewModelProvider)

Example 78 with ViewModelProvider

use of androidx.lifecycle.ViewModelProvider in project grocy-android by patzly.

the class SettingsCatDebuggingFragment method onViewCreated.

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    activity = (MainActivity) requireActivity();
    SettingsViewModel viewModel = new ViewModelProvider(this).get(SettingsViewModel.class);
    binding.setActivity(activity);
    binding.setFragment(this);
    binding.setViewModel(viewModel);
    binding.setSharedPrefs(PreferenceManager.getDefaultSharedPreferences(activity));
    binding.setClickUtil(new ClickUtil());
    binding.setLifecycleOwner(getViewLifecycleOwner());
    viewModel.getEventHandler().observe(getViewLifecycleOwner(), event -> {
        if (event.getType() == Event.SNACKBAR_MESSAGE) {
            activity.showSnackbar(((SnackbarMessage) event).getSnackbar(activity, activity.binding.frameMainContainer));
        } else if (event.getType() == Event.BOTTOM_SHEET) {
            BottomSheetEvent bottomSheetEvent = (BottomSheetEvent) event;
            activity.showBottomSheet(bottomSheetEvent.getBottomSheet(), event.getBundle());
        }
    });
    if (activity.binding.bottomAppBar.getVisibility() == View.VISIBLE) {
        activity.getScrollBehavior().setUpScroll(binding.scroll);
        activity.getScrollBehavior().setHideOnScroll(true);
        activity.updateBottomAppBar(Constants.FAB.POSITION.GONE, R.menu.menu_empty, false, () -> {
        });
        activity.binding.fabMain.hide();
    }
    setForPreviousDestination(Constants.ARGUMENT.ANIMATED, false);
}
Also used : BottomSheetEvent(xyz.zedler.patrick.grocy.model.BottomSheetEvent) ClickUtil(xyz.zedler.patrick.grocy.util.ClickUtil) SettingsViewModel(xyz.zedler.patrick.grocy.viewmodel.SettingsViewModel) ViewModelProvider(androidx.lifecycle.ViewModelProvider)

Example 79 with ViewModelProvider

use of androidx.lifecycle.ViewModelProvider in project grocy-android by patzly.

the class SettingsCatScannerFragment method onViewCreated.

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    activity = (MainActivity) requireActivity();
    SettingsViewModel viewModel = new ViewModelProvider(this).get(SettingsViewModel.class);
    binding.setActivity(activity);
    binding.setFragment(this);
    binding.setViewModel(viewModel);
    binding.setSharedPrefs(PreferenceManager.getDefaultSharedPreferences(activity));
    binding.setClickUtil(new ClickUtil());
    binding.setLifecycleOwner(getViewLifecycleOwner());
    viewModel.getEventHandler().observe(getViewLifecycleOwner(), event -> {
        if (event.getType() == Event.SNACKBAR_MESSAGE) {
            activity.showSnackbar(((SnackbarMessage) event).getSnackbar(activity, activity.binding.frameMainContainer));
        } else if (event.getType() == Event.BOTTOM_SHEET) {
            BottomSheetEvent bottomSheetEvent = (BottomSheetEvent) event;
            activity.showBottomSheet(bottomSheetEvent.getBottomSheet(), event.getBundle());
        }
    });
    updateBarcodeFormats();
    if (activity.binding.bottomAppBar.getVisibility() == View.VISIBLE) {
        activity.getScrollBehavior().setUpScroll(binding.scroll);
        activity.getScrollBehavior().setHideOnScroll(true);
        activity.updateBottomAppBar(Constants.FAB.POSITION.GONE, R.menu.menu_empty, false, () -> {
        });
        activity.binding.fabMain.hide();
    }
    setForPreviousDestination(Constants.ARGUMENT.ANIMATED, false);
}
Also used : BottomSheetEvent(xyz.zedler.patrick.grocy.model.BottomSheetEvent) ClickUtil(xyz.zedler.patrick.grocy.util.ClickUtil) SettingsViewModel(xyz.zedler.patrick.grocy.viewmodel.SettingsViewModel) ViewModelProvider(androidx.lifecycle.ViewModelProvider)

Example 80 with ViewModelProvider

use of androidx.lifecycle.ViewModelProvider in project grocy-android by patzly.

the class SettingsCatShoppingModeFragment method onViewCreated.

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    activity = (MainActivity) requireActivity();
    viewModel = new ViewModelProvider(this).get(SettingsViewModel.class);
    binding.setActivity(activity);
    binding.setFragment(this);
    binding.setViewModel(viewModel);
    binding.setSharedPrefs(PreferenceManager.getDefaultSharedPreferences(activity));
    binding.setClickUtil(new ClickUtil());
    binding.setLifecycleOwner(getViewLifecycleOwner());
    viewModel.getEventHandler().observe(getViewLifecycleOwner(), event -> {
        if (event.getType() == Event.SNACKBAR_MESSAGE) {
            activity.showSnackbar(((SnackbarMessage) event).getSnackbar(activity, activity.binding.frameMainContainer));
        } else if (event.getType() == Event.BOTTOM_SHEET) {
            BottomSheetEvent bottomSheetEvent = (BottomSheetEvent) event;
            activity.showBottomSheet(bottomSheetEvent.getBottomSheet(), event.getBundle());
        }
    });
    if (activity.binding.bottomAppBar.getVisibility() == View.VISIBLE) {
        activity.getScrollBehavior().setUpScroll(binding.scroll);
        activity.getScrollBehavior().setHideOnScroll(true);
        activity.updateBottomAppBar(Constants.FAB.POSITION.GONE, R.menu.menu_empty, false, () -> {
        });
        activity.binding.fabMain.hide();
    }
    setForPreviousDestination(Constants.ARGUMENT.ANIMATED, false);
}
Also used : BottomSheetEvent(xyz.zedler.patrick.grocy.model.BottomSheetEvent) ClickUtil(xyz.zedler.patrick.grocy.util.ClickUtil) SettingsViewModel(xyz.zedler.patrick.grocy.viewmodel.SettingsViewModel) ViewModelProvider(androidx.lifecycle.ViewModelProvider)

Aggregations

ViewModelProvider (androidx.lifecycle.ViewModelProvider)159 View (android.view.View)38 TextView (android.widget.TextView)28 BottomSheetEvent (xyz.zedler.patrick.grocy.model.BottomSheetEvent)25 Intent (android.content.Intent)24 LinearLayoutManager (androidx.recyclerview.widget.LinearLayoutManager)24 InfoFullscreenHelper (xyz.zedler.patrick.grocy.helper.InfoFullscreenHelper)23 Nullable (androidx.annotation.Nullable)21 Snackbar (com.google.android.material.snackbar.Snackbar)20 ClickUtil (xyz.zedler.patrick.grocy.util.ClickUtil)20 Bundle (android.os.Bundle)18 RecyclerView (androidx.recyclerview.widget.RecyclerView)18 Toolbar (androidx.appcompat.widget.Toolbar)16 SnackbarMessage (xyz.zedler.patrick.grocy.model.SnackbarMessage)16 Uri (android.net.Uri)10 ViewGroup (android.view.ViewGroup)10 NonNull (androidx.annotation.NonNull)10 Handler (android.os.Handler)9 FirebaseUiException (com.firebase.ui.auth.FirebaseUiException)8 IdpResponse (com.firebase.ui.auth.IdpResponse)8