Search in sources :

Example 56 with ViewModelProvider

use of androidx.lifecycle.ViewModelProvider in project firebase-android-sdk by firebase.

the class HomeFragment method onCreateView.

public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    homeViewModel = new ViewModelProvider(this, new ViewModelProvider.NewInstanceFactory()).get(HomeViewModel.class);
    View root = inflater.inflate(R.layout.fragment_home, container, false);
    TextView textView = root.findViewById(R.id.text_home);
    homeViewModel.getText().observe(getViewLifecycleOwner(), textView::setText);
    RecyclerView numbersList = root.findViewById(R.id.rv_numbers_home);
    numbersList.setLayoutManager(new LinearLayoutManager(requireContext()));
    numbersList.setHasFixedSize(true);
    numbersList.setAdapter(new SlowListAdapter(NUM_LIST_ITEMS));
    return root;
}
Also used : SlowListAdapter(com.google.firebase.testing.fireperf.SlowListAdapter) TextView(android.widget.TextView) RecyclerView(androidx.recyclerview.widget.RecyclerView) LinearLayoutManager(androidx.recyclerview.widget.LinearLayoutManager) TextView(android.widget.TextView) View(android.view.View) RecyclerView(androidx.recyclerview.widget.RecyclerView) ViewModelProvider(androidx.lifecycle.ViewModelProvider)

Example 57 with ViewModelProvider

use of androidx.lifecycle.ViewModelProvider in project firebase-android-sdk by firebase.

the class SlowFragment method onCreateView.

public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    slowViewModel = new ViewModelProvider(this, new ViewModelProvider.NewInstanceFactory()).get(SlowViewModel.class);
    View root = inflater.inflate(R.layout.fragment_slow, container, false);
    TextView textView = root.findViewById(R.id.text_slow);
    slowViewModel.getText().observe(getViewLifecycleOwner(), textView::setText);
    RecyclerView numbersList = root.findViewById(R.id.rv_numbers_slow);
    numbersList.setLayoutManager(new LinearLayoutManager(requireContext()));
    numbersList.setHasFixedSize(true);
    numbersList.setAdapter(new SlowListAdapter(NUM_LIST_ITEMS));
    return root;
}
Also used : SlowListAdapter(com.google.firebase.testing.fireperf.SlowListAdapter) TextView(android.widget.TextView) RecyclerView(androidx.recyclerview.widget.RecyclerView) LinearLayoutManager(androidx.recyclerview.widget.LinearLayoutManager) TextView(android.widget.TextView) View(android.view.View) RecyclerView(androidx.recyclerview.widget.RecyclerView) ViewModelProvider(androidx.lifecycle.ViewModelProvider)

Example 58 with ViewModelProvider

use of androidx.lifecycle.ViewModelProvider in project collect by getodk.

the class FormMapActivity method onCreate.

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    DaggerUtils.getComponent(this).inject(this);
    setContentView(R.layout.form_map_activity);
    Form form = loadForm();
    selectionMapViewModel = new ViewModelProvider(this).get(SelectionMapViewModel.class);
    selectionMapViewModel.setMapTitle(form.getDisplayName());
    FormNavigator formNavigator = new FormNavigator(currentProjectProvider, settingsProvider, instancesRepositoryProvider::get);
    getSupportFragmentManager().setFragmentResultListener(SelectionMapFragment.REQUEST_SELECT_ITEM, this, (requestKey, result) -> {
        if (result.containsKey(SelectionMapFragment.RESULT_SELECTED_ITEM)) {
            long instanceId = result.getLong(SelectionMapFragment.RESULT_SELECTED_ITEM);
            formNavigator.editInstance(this, instanceId);
        } else if (result.containsKey(SelectionMapFragment.RESULT_CREATE_NEW_ITEM)) {
            formNavigator.newInstance(this, form.getDbId());
        }
    });
}
Also used : SelectionMapViewModel(org.odk.collect.geo.SelectionMapViewModel) Form(org.odk.collect.forms.Form) FormNavigator(org.odk.collect.android.formmanagement.FormNavigator) ViewModelProvider(androidx.lifecycle.ViewModelProvider)

Example 59 with ViewModelProvider

use of androidx.lifecycle.ViewModelProvider in project collect by getodk.

the class MainMenuActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    new ThemeUtils(this).setDarkModeForCurrentProject();
    super.onCreate(savedInstanceState);
    DaggerUtils.getComponent(this).inject(this);
    setContentView(R.layout.main_menu);
    settingsProvider.getMetaSettings().save(MetaKeys.FIRST_LAUNCH, false);
    mainMenuViewModel = new ViewModelProvider(this, viewModelFactory).get(MainMenuViewModel.class);
    currentProjectViewModel = new ViewModelProvider(this, currentProjectViewModelFactory).get(CurrentProjectViewModel.class);
    currentProjectViewModel.getCurrentProject().observe(this, project -> {
        invalidateOptionsMenu();
        setTitle(project.getName());
    });
    initToolbar();
    // enter data button. expects a result.
    Button enterDataButton = findViewById(R.id.enter_data);
    enterDataButton.setText(getString(R.string.enter_data_button));
    enterDataButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent i = new Intent(getApplicationContext(), FillBlankFormActivity.class);
            startActivity(i);
        }
    });
    // review data button. expects a result.
    reviewDataButton = findViewById(R.id.review_data);
    reviewDataButton.setText(getString(R.string.review_data_button));
    reviewDataButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent i = new Intent(getApplicationContext(), InstanceChooserList.class);
            i.putExtra(ApplicationConstants.BundleKeys.FORM_MODE, ApplicationConstants.FormModes.EDIT_SAVED);
            startActivity(i);
        }
    });
    // send data button. expects a result.
    sendDataButton = findViewById(R.id.send_data);
    sendDataButton.setText(getString(R.string.send_data_button));
    sendDataButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent i = new Intent(getApplicationContext(), InstanceUploaderListActivity.class);
            startActivity(i);
        }
    });
    // View sent forms
    viewSentFormsButton = findViewById(R.id.view_sent_forms);
    viewSentFormsButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent i = new Intent(getApplicationContext(), InstanceChooserList.class);
            i.putExtra(ApplicationConstants.BundleKeys.FORM_MODE, ApplicationConstants.FormModes.VIEW_SENT);
            startActivity(i);
        }
    });
    // manage forms button. no result expected.
    getFormsButton = findViewById(R.id.get_forms);
    getFormsButton.setText(getString(R.string.get_forms));
    getFormsButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            String protocol = settingsProvider.getUnprotectedSettings().getString(ProjectKeys.KEY_PROTOCOL);
            Intent i;
            if (protocol.equalsIgnoreCase(ProjectKeys.PROTOCOL_GOOGLE_SHEETS)) {
                if (new PlayServicesChecker().isGooglePlayServicesAvailable(MainMenuActivity.this)) {
                    i = new Intent(getApplicationContext(), GoogleDriveActivity.class);
                } else {
                    new PlayServicesChecker().showGooglePlayServicesAvailabilityErrorDialog(MainMenuActivity.this);
                    return;
                }
            } else {
                i = new Intent(getApplicationContext(), FormDownloadListActivity.class);
            }
            startActivity(i);
        }
    });
    // manage forms button. no result expected.
    manageFilesButton = findViewById(R.id.manage_forms);
    manageFilesButton.setText(getString(R.string.manage_files));
    manageFilesButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent i = new Intent(getApplicationContext(), DeleteSavedFormActivity.class);
            startActivity(i);
        }
    });
    TextView appName = findViewById(R.id.app_name);
    appName.setText(String.format("%s %s", getString(R.string.collect_app_name), mainMenuViewModel.getVersion()));
    TextView versionSHAView = findViewById(R.id.version_sha);
    String versionSHA = mainMenuViewModel.getVersionCommitDescription();
    if (versionSHA != null) {
        versionSHAView.setText(versionSHA);
    } else {
        versionSHAView.setVisibility(View.GONE);
    }
    mainMenuViewModel.getSendableInstancesCount().observe(this, finalized -> {
        if (finalized > 0) {
            sendDataButton.setText(getString(R.string.send_data_button, String.valueOf(finalized)));
        } else {
            sendDataButton.setText(getString(R.string.send_data));
        }
    });
    mainMenuViewModel.getEditableInstancesCount().observe(this, unsent -> {
        if (unsent > 0) {
            reviewDataButton.setText(getString(R.string.review_data_button, String.valueOf(unsent)));
        } else {
            reviewDataButton.setText(getString(R.string.review_data));
        }
    });
    mainMenuViewModel.getSentInstancesCount().observe(this, sent -> {
        if (sent > 0) {
            viewSentFormsButton.setText(getString(R.string.view_sent_forms_button, String.valueOf(sent)));
        } else {
            viewSentFormsButton.setText(getString(R.string.view_sent_forms));
        }
    });
}
Also used : MainMenuViewModel(org.odk.collect.android.activities.viewmodels.MainMenuViewModel) ThemeUtils(org.odk.collect.android.utilities.ThemeUtils) PlayServicesChecker(org.odk.collect.android.utilities.PlayServicesChecker) Intent(android.content.Intent) View(android.view.View) ProjectIconView(org.odk.collect.android.projects.ProjectIconView) TextView(android.widget.TextView) Button(android.widget.Button) CurrentProjectViewModel(org.odk.collect.android.activities.viewmodels.CurrentProjectViewModel) OnClickListener(android.view.View.OnClickListener) TextView(android.widget.TextView) ViewModelProvider(androidx.lifecycle.ViewModelProvider)

Example 60 with ViewModelProvider

use of androidx.lifecycle.ViewModelProvider in project collect by getodk.

the class DrawActivity method onCreate.

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.draw_layout);
    DaggerUtils.getComponent(this).inject(this);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    PenColorPickerViewModel viewModel = new ViewModelProvider(this, factory).get(PenColorPickerViewModel.class);
    viewModel.getPenColor().observe(this, penColor -> drawView.setColor(penColor));
    fabActions = findViewById(R.id.fab_actions);
    final FloatingActionButton fabSetColor = findViewById(R.id.fab_set_color);
    final CardView cardViewSetColor = findViewById(R.id.cv_set_color);
    final FloatingActionButton fabSaveAndClose = findViewById(R.id.fab_save_and_close);
    final CardView cardViewSaveAndClose = findViewById(R.id.cv_save_and_close);
    final FloatingActionButton fabClear = findViewById(R.id.fab_clear);
    final CardView cardViewClear = findViewById(R.id.cv_clear);
    fabActions.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            int status = Integer.parseInt(view.getTag().toString());
            if (status == 0) {
                status = 1;
                fabActions.animate().rotation(45).setInterpolator(new AccelerateDecelerateInterpolator()).setDuration(100).start();
                AnimationUtils.scaleInAnimation(fabSetColor, 50, 150, new OvershootInterpolator(), true);
                AnimationUtils.scaleInAnimation(cardViewSetColor, 50, 150, new OvershootInterpolator(), true);
                AnimationUtils.scaleInAnimation(fabSaveAndClose, 100, 150, new OvershootInterpolator(), true);
                AnimationUtils.scaleInAnimation(cardViewSaveAndClose, 100, 150, new OvershootInterpolator(), true);
                AnimationUtils.scaleInAnimation(fabClear, 150, 150, new OvershootInterpolator(), true);
                AnimationUtils.scaleInAnimation(cardViewClear, 150, 150, new OvershootInterpolator(), true);
                fabSetColor.show();
                cardViewSetColor.setVisibility(View.VISIBLE);
                fabSaveAndClose.show();
                cardViewSaveAndClose.setVisibility(View.VISIBLE);
                fabClear.show();
                cardViewClear.setVisibility(View.VISIBLE);
            } else {
                status = 0;
                fabActions.animate().rotation(0).setInterpolator(new AccelerateDecelerateInterpolator()).setDuration(100).start();
                fabSetColor.hide();
                cardViewSetColor.setVisibility(View.INVISIBLE);
                fabSaveAndClose.hide();
                cardViewSaveAndClose.setVisibility(View.INVISIBLE);
                fabClear.hide();
                cardViewClear.setVisibility(View.INVISIBLE);
            }
            view.setTag(status);
        }
    });
    cardViewClear.setOnClickListener(this::clear);
    fabClear.setOnClickListener(this::clear);
    cardViewSaveAndClose.setOnClickListener(this::close);
    fabSaveAndClose.setOnClickListener(this::close);
    cardViewSetColor.setOnClickListener(this::setColor);
    fabSetColor.setOnClickListener(this::setColor);
    Bundle extras = getIntent().getExtras();
    StoragePathProvider storagePathProvider = new StoragePathProvider();
    if (extras == null) {
        loadOption = OPTION_DRAW;
        refImage = null;
        savepointImage = new File(storagePathProvider.getTmpImageFilePath());
        savepointImage.delete();
        output = new File(storagePathProvider.getTmpImageFilePath());
    } else {
        if (extras.getInt(SCREEN_ORIENTATION) == 1) {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        }
        loadOption = extras.getString(OPTION);
        if (loadOption == null) {
            loadOption = OPTION_DRAW;
        }
        // refImage can also be present if resuming a drawing
        Uri uri = (Uri) extras.get(REF_IMAGE);
        if (uri != null) {
            refImage = new File(uri.getPath());
        }
        String savepoint = extras.getString(SAVEPOINT_IMAGE);
        if (savepoint != null) {
            savepointImage = new File(savepoint);
            if (!savepointImage.exists() && refImage != null && refImage.exists()) {
                ImageFileUtils.copyImageAndApplyExifRotation(refImage, savepointImage);
            }
        } else {
            savepointImage = new File(storagePathProvider.getTmpImageFilePath());
            savepointImage.delete();
            if (refImage != null && refImage.exists()) {
                ImageFileUtils.copyImageAndApplyExifRotation(refImage, savepointImage);
            }
        }
        uri = (Uri) extras.get(EXTRA_OUTPUT);
        if (uri != null) {
            output = new File(uri.getPath());
        } else {
            output = new File(storagePathProvider.getTmpImageFilePath());
        }
    }
    if (OPTION_SIGNATURE.equals(loadOption)) {
        alertTitleString = getString(R.string.quit_application, getString(R.string.sign_button));
    } else if (OPTION_ANNOTATE.equals(loadOption)) {
        alertTitleString = getString(R.string.quit_application, getString(R.string.markup_image));
    } else {
        alertTitleString = getString(R.string.quit_application, getString(R.string.draw_image));
    }
    drawView = findViewById(R.id.drawView);
    drawView.setupView(OPTION_SIGNATURE.equals(loadOption));
}
Also used : OvershootInterpolator(android.view.animation.OvershootInterpolator) Bundle(android.os.Bundle) CardView(androidx.cardview.widget.CardView) View(android.view.View) AdapterView(android.widget.AdapterView) CardView(androidx.cardview.widget.CardView) ListView(android.widget.ListView) Uri(android.net.Uri) StoragePathProvider(org.odk.collect.android.storage.StoragePathProvider) FloatingActionButton(com.google.android.material.floatingactionbutton.FloatingActionButton) AccelerateDecelerateInterpolator(android.view.animation.AccelerateDecelerateInterpolator) File(java.io.File) 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