Search in sources :

Example 6 with Router

use of com.bluelinelabs.conductor.Router in project Conductor by bluelinelabs.

the class StateSaveTests method createActivityController.

public void createActivityController(Bundle savedInstanceState) {
    ActivityController<Activity> activityController = Robolectric.buildActivity(Activity.class).create().start().resume();
    Router router = Conductor.attachRouter(activityController.get(), new FrameLayout(activityController.get()), savedInstanceState);
    TestController controller = new TestController();
    router.setRoot(RouterTransaction.with(controller));
    pager = new FakePager(new FrameLayout(activityController.get()));
    pager.setOffscreenPageLimit(1);
    pagerAdapter = new RouterPagerAdapter(controller) {

        @Override
        public void configureRouter(@NonNull Router router, int position) {
            if (!router.hasRootController()) {
                router.setRoot(RouterTransaction.with(new TestController()));
            }
        }

        @Override
        public int getCount() {
            return 20;
        }
    };
    pager.setAdapter(pagerAdapter);
}
Also used : FrameLayout(android.widget.FrameLayout) TestController(com.bluelinelabs.conductor.support.util.TestController) Activity(android.app.Activity) Router(com.bluelinelabs.conductor.Router) FakePager(com.bluelinelabs.conductor.support.util.FakePager)

Example 7 with Router

use of com.bluelinelabs.conductor.Router in project Conductor by bluelinelabs.

the class ControllerPagerAdapter method instantiateItem.

@Override
public Object instantiateItem(ViewGroup container, int position) {
    final String name = makeControllerName(container.getId(), getItemId(position));
    Router router = host.getChildRouter(container, name);
    if (savesState && !router.hasRootController()) {
        Bundle routerSavedState = savedPages.get(position);
        if (routerSavedState != null) {
            router.restoreInstanceState(routerSavedState);
        }
    }
    final Controller controller;
    if (!router.hasRootController()) {
        controller = getItem(position);
        router.setRoot(RouterTransaction.with(controller).tag(name));
    } else {
        router.rebindIfNeeded();
        controller = router.getControllerWithTag(name);
    }
    if (controller != null) {
        visiblePageIds.put(position, controller.getInstanceId());
    }
    return router.getControllerWithTag(name);
}
Also used : Bundle(android.os.Bundle) Router(com.bluelinelabs.conductor.Router) Controller(com.bluelinelabs.conductor.Controller)

Example 8 with Router

use of com.bluelinelabs.conductor.Router in project Conductor by bluelinelabs.

the class RouterPagerAdapter method instantiateItem.

@Override
public Object instantiateItem(ViewGroup container, int position) {
    final String name = makeRouterName(container.getId(), getItemId(position));
    Router router = host.getChildRouter(container, name);
    if (!router.hasRootController()) {
        Bundle routerSavedState = savedPages.get(position);
        if (routerSavedState != null) {
            router.restoreInstanceState(routerSavedState);
            savedPages.remove(position);
        }
    }
    router.rebindIfNeeded();
    configureRouter(router, position);
    visibleRouters.put(position, router);
    return router;
}
Also used : Bundle(android.os.Bundle) Router(com.bluelinelabs.conductor.Router)

Example 9 with Router

use of com.bluelinelabs.conductor.Router in project Conductor by bluelinelabs.

the class LifecycleHandler method onActivitySaveInstanceState.

@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
    if (this.activity == activity) {
        for (Router router : routerMap.values()) {
            Bundle bundle = new Bundle();
            router.saveInstanceState(bundle);
            outState.putBundle(KEY_ROUTER_STATE_PREFIX + router.getContainerId(), bundle);
        }
    }
}
Also used : Bundle(android.os.Bundle) ActivityHostedRouter(com.bluelinelabs.conductor.ActivityHostedRouter) Router(com.bluelinelabs.conductor.Router)

Example 10 with Router

use of com.bluelinelabs.conductor.Router in project Conductor by bluelinelabs.

the class LifecycleHandler method onRequestPermissionsResult.

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    String instanceId = permissionRequestMap.get(requestCode);
    if (instanceId != null) {
        for (Router router : routerMap.values()) {
            router.onRequestPermissionsResult(instanceId, requestCode, permissions, grantResults);
        }
    }
}
Also used : ActivityHostedRouter(com.bluelinelabs.conductor.ActivityHostedRouter) Router(com.bluelinelabs.conductor.Router)

Aggregations

Router (com.bluelinelabs.conductor.Router)10 Bundle (android.os.Bundle)5 ActivityHostedRouter (com.bluelinelabs.conductor.ActivityHostedRouter)3 Controller (com.bluelinelabs.conductor.Controller)3 Activity (android.app.Activity)1 IdRes (android.support.annotation.IdRes)1 ViewGroup (android.view.ViewGroup)1 FrameLayout (android.widget.FrameLayout)1 ControllerChangeHandler (com.bluelinelabs.conductor.ControllerChangeHandler)1 ControllerChangeType (com.bluelinelabs.conductor.ControllerChangeType)1 RouterTransaction (com.bluelinelabs.conductor.RouterTransaction)1 FadeChangeHandler (com.bluelinelabs.conductor.changehandler.FadeChangeHandler)1 BaseController (com.bluelinelabs.conductor.demo.controllers.base.BaseController)1 FakePager (com.bluelinelabs.conductor.support.util.FakePager)1 TestController (com.bluelinelabs.conductor.support.util.TestController)1