package com.asha.vrlib.model; import android.content.Context; import android.net.Uri; import android.util.SparseArray; import com.asha.vrlib.MDVRLibrary; import com.asha.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; } }