Wiki
Clone wikiUniversi / Activity
Overview
UniversiActivity is extension of framework's Activity
and UniversiCompatActivity is extension of AppCompatActivity
from the Android Jetpack. Both these activity implementations use UniversiActivityDelegate to provide some basic functionality available for Universi context.
Usage
Base Activity
public abstract class BaseActivity extends UniversiActivity { // Below are listed some of methods that are available in context of this activity. // FRAGMENTS // void setFragmentController(FragmentController); // void setFragmentFactory(FragmentFactory); // 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 onCreate(Bundle savedInstanceState) { // Specify default container id for default FragmentController. // The view container will be used to host root views of fragments shown via this controller. getFragmentController().setViewContainerId(R.id.container); super.onCreate(savedInstanceState); } @Override protected void onBindViews() { super.onBindViews(); Butterknife.bind(this) } }
Sample Activity
@ContentView(R.layout.activity_sample) public final class SampleActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Set navigational transition used to finish this activity whenever its // finishWithNavigationalTransition() is called. setNavigationalTransition(SampleNavigationalTransition.get()); // Attach fragment factory providing Fragment instances for activity's default FragmentController. setFragmentFactory(new SampleFragments()); // ... show initial fragment if (savedInstanceState == null) { getFragmentController().newRequest(SampleFragments.SAMPLE).immediate(true).execute(); } // Attach dialog factory providing DialogFragment instances for activity'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 activity simply have access to all useful methods provided by UniversiActivity ... }
Module
Mentioned elements are available in the Activity library module.
Updated