fragmentation은 광범위한 practice를 요구함
function deviceFragmentationHandler() {
//set to use deviceProfileManager
var effect = window.getEffect(),
device = window.getDeviceInfo();
//fragmentation handling is done in three phases
//For the first, OS version based tunable paramenter setting
//For the secnod, device model based setting as an exception from the OS version
//For the third, browser type based setting as an exception from the OS version
//Start from OS version based
if( (/Android/i).test(device.os) ){
scrollerConfig.scrollBar = false;
appConfig.resizeDelay = 300;
}
if( (/Android 2/i).test(device.os) ){
scrollerConfig.smartScrolling = true;
scrollerConfig.momentumDistCap = window.innerHeight*2;
scrollerConfig.updateOnScrollEnd = true;
scrollerConfig.offsetYMargin = window.innerHeight*2;
scrollerConfig.minYDelta = window.innerHeight*1;
scrollerConfig.useTransition = false;
scrollerConfig.useRequestAniFrame = false;
appConfig.mainListHighlight = false;
//안드로이드 2버전에서는 transition 없이 페이지 이동
appConfig.transition = "none";//slide disable
}
if( (/Android 4.0/i).test(device.os) ){
scrollerConfig.smartScrolling = true;
momentumDistCap = window.innerHeight*3;//iScroll momentun flick distance's maximum value
updateOnScrollEnd = false; //not update during scrolling, but do right after scrolling
offsetYMargin = window.innerHeight*4;
minYDelta = window.innerHeight*4;
scrollerConfig.useTransition = false;
scrollerConfig.useRequestAniFrame = false;
}
if( (/Android 4.1/i).test(device.os) ){
scrollerConfig.smartScrolling = true;
scrollerConfig.momentumDistCap = window.innerHeight*3;
scrollerConfig.offsetYMargin = window.innerHeight*10;
scrollerConfig.minYDelta = window.innerHeight*10;
scrollerConfig.useTransition = false;
scrollerConfig.useRequestAniFrame = true;
}
if( (/iPhone/i).test(device.os) ){
scrollerConfig.scrollBar = true;
appConfig.resizeDelay = 50;
scrollerConfig.useTransition = true;
}
//device model based
if ( (/SHW-M110/i).test(device.modelName) ) {
//Galaxy S, Android 2.3 default setting is partially overriden for this device
scrollerConfig.momentumDistCap = window.innerHeight*3;
scrollerConfig.offsetYMargin = window.innerHeight*2;
scrollerConfig.minYDelta = window.innerHeight*2;
scrollerConfig.useTransition = true;
}
if ( (/SHV-E210/i).test(device.modelName) ) {
//SHV-E210: 갤럭시 S3
if( (/Android 4.0/i).test(device.os) ){
scrollerConfig.useRequestAniFrame = false;
scrollerConfig.useTransition = true;
}
}
if ( (/SHW-M250/i).test(device.modelName) ) {
//SHW-M250: 갤럭시 S2
if( (/Android 4.1/i).test(device.os) ){
scrollerConfig.useTransition = true;
scrollerConfig.smartScrolling = false;
}
}
if ( (/LG-F240/i).test(device.modelName) ) {
//Optimus G Pro
scrollerConfig.useTransition = true;
// scrollerConfig.useRequestAniFrame = true;
}
if ( (/SHV-E250/i).test(device.modelName) ) {
//Galaxy Note II
// scrollerConfig.useRequestAniFrame = false;
}
if ( (/SHV-E270/i).test(device.modelName) ) {
//Galaxy Grand
scrollerConfig.useTransition = true;
scrollerConfig.smartScrolling = true;
}
if(device.browser === "ChromeMobile"){
scrollerConfig.smartScrolling = false;
scrollerConfig.useTransition = false;
//Galaxy S4
if ( (/SHV-E300/i).test(device.modelName) ) {
scrollerConfig.smartScrolling = false;
scrollerConfig.useTransition = true;
}
}
if((device.browser !== "ChromeMobile") !(/iPhone/i).test(device.os)){
$.mobile.defaultTransitionHandler = createHandlerA(false);
$.mobile.transitionHandlers = {
"default": $.mobile.defaultTransitionHandler
};
}
appConfig.fixedElement = effect.fixedElement;
//browser type based
if(!appConfig.useFixedMenu){
appConfig.transition = "none";
}
}