package net.bible.android.control.page;
import net.bible.android.control.ApplicationScope;
import net.bible.android.control.page.window.Window;
import java.util.HashMap;
import java.util.Map;
import javax.inject.Inject;
/**
* Retain the link between a window and its associated PageTiltScrollControl.
*
* @author Martin Denham [mjdenham at gmail dot com]
* @see gnu.lgpl.License for license details.<br>
* The copyright to this program is held by it's author.
*/
@ApplicationScope
public class PageTiltScrollControlFactory {
private final Map<Window, PageTiltScrollControl> screenPageTiltScrollControlMap = new HashMap<>();
@Inject
public PageTiltScrollControlFactory() {
}
public PageTiltScrollControl getPageTiltScrollControl(Window window) {
PageTiltScrollControl pageTiltScrollControl = screenPageTiltScrollControlMap.get(window);
if (pageTiltScrollControl==null) {
synchronized(screenPageTiltScrollControlMap) {
pageTiltScrollControl = screenPageTiltScrollControlMap.get(window);
if (pageTiltScrollControl==null) {
pageTiltScrollControl = new PageTiltScrollControl();
screenPageTiltScrollControlMap.put(window, pageTiltScrollControl);
}
}
}
return pageTiltScrollControl;
}
}