All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jp.co.bizreach.play2nashorn.helpers.scala Maven / Gradle / Ivy

The newest version!
package jp.co.bizreach.play2nashorn

import play.api.mvc.Request

trait TemplateResolver {


    def resolve(request:Request[_], originalPath:String): String

}

/**
 *
 */
class DeviceAwareTemplateResolver extends TemplateResolver {

  val regex = """(.*)(-x)(\.html|\.htm)"""

  /**
   * If the template name part (excluding file extension) ends with 'x',*
   * return -x in mobile, no post-fix in desktop
   */
  override def resolve(request: Request[_], originalPath: String): String =
    originalPath.replaceFirst(regex, if (isMobile(request)) "$1-m$3" else "$1$3")


  /**
   * See the url below
   * https://developer.mozilla.org/ja/docs/Browser_detection_using_the_user_agent
   */
  private def isMobile(request:Request[_]): Boolean =
    request
      .headers
      .getAll("User-Agent")
      .exists(ua => ua.contains("Mobi") && !ua.contains("iPad"))
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy