-
Notifications
You must be signed in to change notification settings - Fork 3
Setup for Version 1.x.x
Initialise Virtusize object in your Application class's onCreate method using your API key and environment. The environment is the region you are running the integration from, either VirtusizeEnvironment.STAGING, VirtusizeEnvironment.GLOBAL, VirtusizeEnvironment.JAPAN or VirtusizeEnvironment.KOREA
- Kotlin
lateinit var Virtusize: Virtusize override fun onCreate() { super.onCreate() Virtusize = VirtusizeBuilder().init(this) .setApiKey(api_key) .setEnv(VirtusizeEnvironment.STAGING) .build() }
- Java
Virtusize Virtusize; @Override public void onCreate() { super.onCreate(); Virtusize = new VirtusizeBuilder() .init(this) .setApiKey(api_key) .setEnv(VirtusizeEnvironment.STAGING) .build();
Add Virtusize button in your activity's XML layout file. Style of the button can be one of the two default available styles DefaultStyleBlueJapanese, DefaultStyleBlackEnglish or use any other button styles and/or define attributes like text, height, width, etc on the FitIllustratorButton
<com.virtusize.libsource.ui.FitIllustratorButton
android:id="@+id/exampleFitButton"
style="@style/DefaultStyleBlueJapanese" />or
<com.virtusize.libsource.ui.FitIllustratorButton
android:id="@+id/exampleFitButton"
style="@style/Widget.AppCompat.Button.Colored"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/fit_button_text" />Inside your activity, setup the Fit Illustrator button using product details by passing a imageUrl of the product in order to populate the comparison view and passing in an externalId that will be used to reference that product in our API
- Kotlin
(application as App) .Virtusize .setupFitButton( fitIllustratorButton = exampleFitButton, virtusizeProduct = VirtusizeProduct(externalId = "694", imageUrl = "http://simage-kr.uniqlo.com/goods/31/12/11/71/414571_COL_COL02_570.jpg"))
- Java
FitIllustratorButton fitIllustratorButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); fitIllustratorButton = findViewById(R.id.exampleFitButton); App app = (App) getApplication(); app.Virtusize.setupFitButton(fitIllustratorButton, new VirtusizeProduct("694", "https://www.publicdomainpictures.net/pictures/120000/velka/dress-1950-vintage-style.jpg")); }
-
Kotlin
exampleFitButton.dismissFitIllustratorView()
-
Java
fitIllustratorButton.dismissFitIllustratorView();
Please do not forget to unregister message handler in activity or fragment's lifecycle method before it dies or is removed. See next section on how to.
-
Kotlin
private val activityMessageHandler = object : VirtusizeMessageHandler { override fun virtusizeControllerShouldClose(fitIllustratorButton: FitIllustratorButton) { Log.i(TAG, "Close fit illustrator") } override fun onEvent(fitIllustratorButton: FitIllustratorButton?, event: VirtusizeEvents) { Log.i(TAG, event.getEventName()) } override fun onError(fitIllustratorButton: FitIllustratorButton?, error: VirtusizeError) { Log.e(TAG, error.message) } } override fun onCreate(savedInstanceState: Bundle?) { //... // Register message handler to listen to events from Virtusize (application as App) .Virtusize.registerMessageHandler(activityMessageHandler) //... }
-
Java
@Override protected void onCreate(Bundle savedInstanceState) { //... App app = (App) getApplication(); app.Virtusize.registerMessageHandler(new VirtusizeMessageHandler() { @Override public void virtusizeControllerShouldClose(@NonNull FitIllustratorButton fitIllustratorButton) { Log.i(TAG, "Close fit illustrator"); } @Override public void onEvent(FitIllustratorButton fitIllustratorButton, @NonNull VirtusizeEvents event) { Log.i(TAG, VirtusizeEventKt.getEventName(event)); } @Override public void onError(FitIllustratorButton fitIllustratorButton, @NonNull VirtusizeError error) { Log.e(TAG, error.getMessage()); } }); }
A message handler is tied to an activity or fragment's lifecycle but Virtusize library object is tied to application's lifecycle. So if you forget to unregister message handler then it will keep listening to events even after activity is dead or fragment has been removed. In case of activity depending on where in the lifecycle did you register message handler you may need to unregister it in your onPause or onStop method before super method is called. Follow same guidelines in case of fragment as well.
-
Kotlin
private val activityMessageHandler: VirtusizeMessageHandler override fun onPause() { // Always un register message handler in onPause() or depending on implementation onStop(). (application as App) .Virtusize.unregisterMessageHandler(activityMessageHandler) super.onPause() }
-
Java
@Override protected void onPause() { app.Virtusize.unregisterMessageHandler(virtusizeMessageHandler); super.onPause(); }