/*
* Copyright © 2011-2012 Neurowork S.L.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.emobc.android.activities;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import com.emobc.android.ApplicationData;
import com.emobc.android.NextLevel;
import com.emobc.android.activities.generators.AbstractActivtyGenerator;
import com.emobc.android.activities.generators.QrActivityGenerator;
import com.emobc.android.levels.impl.DefaultAppLevelData;
import com.emobc.android.levels.impl.QrLevelDataItem;
import com.emobc.android.menu.CreateMenus;
import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;
/**
* Defines an activity of type QR_ACTIVITY, and
* initialize all screen menu and the screen rotations. In its
* method onCreate(), call its QrActivityGenerator generator.
*
* @author Jonatan Alcocer Luna
* @author Jorge E. Villaverde
*/
public class QrActivity extends CreateMenus {
/**
*
*/
private static final long serialVersionUID = 4170400427053544052L;
private QrLevelDataItem dataItem;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
boolean isEntryPoint = false;
rotateScreen(this);
ApplicationData applicationData = getApplicationData();
if(applicationData != null){
Intent intent = getIntent();
isEntryPoint=(Boolean)intent.getSerializableExtra(ApplicationData.IS_ENTRY_POINT_TAG);
NextLevel nextLevel = (NextLevel)intent.getSerializableExtra(ApplicationData.NEXT_LEVEL_TAG);
setCurrentNextLevel(nextLevel);
QrActivityGenerator generator = (QrActivityGenerator)applicationData.getFromNextLevel(this, nextLevel);
DefaultAppLevelData appLevelData = (DefaultAppLevelData) generator.getAppLevel().getData(this);
dataItem = (QrLevelDataItem)appLevelData.findByNextLevel(nextLevel);
generator.initializeActivity(this);
setEntryPoint(isEntryPoint);
createMenus();
}else{
Intent i = new Intent (this, SplashActivity.class);
startActivity(i);
finish();
}
//createToolBar(isEntryPoint);
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(dataItem == null)
return;
if(resultCode == Activity.RESULT_OK){
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if (scanResult != null) {
String qrCode = scanResult.getContents();
NextLevel nl = dataItem.getNextLevel(qrCode);
if(nl != null){
AbstractActivtyGenerator.showNextLevel(this, nl);
}
}
}
}
}