content: package com.gamatechno.vrlib.model;
  
  import android.content.Context;
  import android.net.Uri;
  import android.util.SparseArray;
  
  import com.gamatechno.vrlib.MDVRLibrary;
  import com.gamatechno.vrlib.common.MDUtil;
  
  /**
   * Created by hzqiujiadi on 16/8/10.
   * hzqiujiadi ashqalcn@gmail.com
   */
  public class MDHotspotBuilder {
  
      public MDPluginBuilder builderDelegate;
  
      public SparseArray<Uri> uriList = new SparseArray<>(6);
  
      public int[] statusList;
  
      public int[] checkedStatusList;
  
      public MDVRLibrary.IImageLoadProvider imageLoadProvider;
  
      public static MDHotspotBuilder create(MDVRLibrary.IImageLoadProvider imageLoadProvider){
          return new MDHotspotBuilder(imageLoadProvider);
      }
  
      public MDHotspotBuilder(MDVRLibrary.IImageLoadProvider imageLoadProvider) {
          this.imageLoadProvider = imageLoadProvider;
          this.builderDelegate = new MDPluginBuilder();
      }
  
      private MDHotspotBuilder status(int normal, int focused, int pressed){
          statusList = new int[]{normal, focused, pressed};
          return this;
      }
  
      public MDHotspotBuilder status(int normal, int focused){
          return status(normal, focused, focused);
      }
  
      public MDHotspotBuilder status(int normal){
          return status(normal,normal);
      }
  
      private MDHotspotBuilder checkedStatus(int normal, int focused, int pressed){
          checkedStatusList = new int[]{normal, focused, pressed};
          return this;
      }
  
      public MDHotspotBuilder checkedStatus(int normal, int focused){
          return checkedStatus(normal, focused, focused);
      }
  
      public MDHotspotBuilder checkedStatus(int normal){
          return checkedStatus(normal, normal);
      }
  
      public MDHotspotBuilder provider(Uri uri){
          provider(0, uri);
          return this;
      }
  
      public MDHotspotBuilder provider(String url){
          provider(0, url);
          return this;
      }
  
      public MDHotspotBuilder provider(Context context, int drawableRes){
          provider(0, context, drawableRes);
          return this;
      }
  
      public MDHotspotBuilder provider(int key, String url){
          provider(key, Uri.parse(url));
          return this;
      }
  
      public MDHotspotBuilder provider(int key, Context context, int drawableRes){
          provider(key, MDUtil.getDrawableUri(context, drawableRes));
          return this;
      }
  
      public MDHotspotBuilder provider(int key, Uri uri){
          uriList.append(key, uri);
          return this;
      }
  
      // delegate
  
      public MDHotspotBuilder title(String title) {
          builderDelegate.title(title);
          return this;
      }
  
      public MDHotspotBuilder size(float width, float height) {
          builderDelegate.size(width, height);
          return this;
      }
  
      public MDHotspotBuilder position(MDPosition position) {
          builderDelegate.position(position);
          return this;
      }
  
      public MDHotspotBuilder listenClick(MDVRLibrary.ITouchPickListener listener) {
          builderDelegate.listenClick(listener);
          return this;
      }
  
      public MDHotspotBuilder tag(String tag) {
          builderDelegate.tag(tag);
          return this;
      }
  }
  