/* * Copyright (c) 2012. HappyDroids LLC, All rights reserved. */ package com.happydroids.droidtowers.scenes; import com.badlogic.gdx.Gdx; import com.happydroids.droidtowers.gamestate.server.TowerGameService; import com.happydroids.droidtowers.scenes.components.SceneManager; import org.apach3.http.NameValuePair; import org.apach3.http.client.utils.URLEncodedUtils; import java.net.URI; import java.util.List; public class LaunchUriScene extends SplashScene { private static final String TAG = LaunchUriScene.class.getSimpleName(); @Override public void create(Object... args) { super.create(args); if (args == null) { throw new RuntimeException("args cannot be null!"); } URI launchUri = (URI) args[0]; List<NameValuePair> queryParams = URLEncodedUtils.parse(launchUri, "utf8"); String launchUriHost = launchUri.getHost(); Gdx.app.debug(TAG, "Launch task: " + launchUriHost); final NameValuePair sessionToken = getParam(queryParams, "session"); if (sessionToken != null && !TowerGameService.instance().isAuthenticated()) { Gdx.app.debug(TAG, "Launch session: " + sessionToken.getValue()); TowerGameService.instance().setSessionToken(sessionToken.getValue()); } if (launchUriHost.equals("launchgame")) { final NameValuePair gameId = getParam(queryParams, "id"); if (gameId != null) { new LaunchGameUriAction().checkAuthAndLoadGame(gameId); } } else if (launchUriHost.equals("register")) { final NameValuePair serial = getParam(queryParams, "serial"); if (serial != null) { SceneManager.popScene(); SceneManager.pushScene(VerifyPurchaseScene.class, serial.getValue()); } } else { SceneManager.changeScene(MainMenuScene.class); } } private NameValuePair getParam(List<NameValuePair> queryParams, String keyName) { for (NameValuePair queryParam : queryParams) { if (queryParam.getName().equalsIgnoreCase(keyName)) { return queryParam; } } return null; } }