Wiki

Clone wiki

Universi / Fragment

Overview

UniversiFragment is extension of ActionBarFragment from the Fragments library. This fragment implementation uses UniversiFragmentDelegate to provide some basic functionality available for Universi context.

Usage

Base Fragment

public abstract class BaseFragment extends UniversiFragment {

    // Below are listed some of methods that are available in context of this fragment.

    // DIALOGS

    // boolean setDialogController(DialogController)
    // void setDialogFactory(DialogFactory)
    // void setDialogXmlFactory(@XmlRes int)
    // boolean showDialogWithId(int, DialogOptions)
    // boolean dismissDialogWithId(int)
    // boolean showXmlDialog(@XmlRes int, DialogOptions)
    // boolean dismissXmlDialog(@XmlRes)

    // PERMISSIONS

    // int checkSelfPermission(String)
    // boolean shouldShowRequestPermissionRationale(String)
    // void supportRequestPermissions(String[], int)

    // NETWORK CONNECTION

    // boolean isActiveNetworkConnected()

    // BASE IMPLEMENTATION

    @Override
    protected void onBindViews(@NonNull View rootView, @Nullable Bundle savedInstanceState) {
        super.onBindViews(rootView, savedInstanceState);
        final Unbinder unbinder = Butterknife.bind(rootView);
        // ... unbind in onDestroyView(...)
    }
}

Sample Fragment

@ContentView(R.layout.fragment_sample)
public final class SampleFragment extends BaseFragment {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Attach dialog factory providing DialogFragment instances for fragment's default DialogController.
        setDialogFactory(new SampleDialogs());
        // ... or
        setDialogXmlFactory(R.xml.sample_dialogs);
    }

    @OnClick(R.id.button)
    public void onButtonClick(@NonNull View button) {
        // .... show sample dialog by its corresponding id specified in R.xml.sample_dialogs Xml file
        // In case of SampleDialogs we would use some constant ID specified in such factory.
        showDialogWithId(R.id.sample_dialog);
        // ... dismiss the dialog later
        dismissDialogWithId(R.id.sample_dialog);
    }

    // ... this fragment simply have access to all useful methods provided by UniversiFragment ...
}

Module

Mentioned element is available in the Fragment library module.

Updated