@Override public boolean onKeyUp(int keyCode, KeyEvent event) { if (Media3D.DEBUG) { Log.v(TAG, "onKeyUp - " + keyCode); } if ((keyCode == KeyEvent.KEYCODE_BACK)) { Page backPage = mMedia3DView.getBackPage(); if (backPage == null) { if (mPortalPage.isShowLoading()) { mPortalPage.cancelLoading(); Log.v(TAG, "cancel loading"); } else { onBackPressed(); Log.v(TAG, "back key"); } } else { mMedia3DView.enterPage(backPage); } return true; } else if (keyCode == KeyEvent.KEYCODE_MENU) { return mMedia3DView.onBarShowHide(); } return super.onKeyUp(keyCode, event); }
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (Media3D.DEBUG) { Log.v(TAG, "onCreate()"); } setContentView(R.layout.media3d); AnimationLoader.setCacheDir(getCacheDir()); SimpleVideoView backgroundVideo = (SimpleVideoView) findViewById(R.id.bg_video); mGestureDetector = new GestureDetector(this, new MyGestureListener()); mStage = new Stage(); mStage.setBackgroundColor(new com.mediatek.ngin3d.Color(0x00, 0x00, 0x00, 0x00)); mStage.addTextureAtlas(getResources(), R.raw.media3d_atlas, R.raw.media3d); mStage.setMaxFPS(60); // Media3D was designed with a system that used left-handed coordinates. // The graphics engine now uses a conventional right-handed system so we // use a 'special' projection to compensate for this. mStage.setProjection(Stage.UI_PERSPECTIVE_LHC, 2.0f, 3000.0f, -1111.0f); mMedia3DView = new Media3DView(this, mStage, backgroundVideo); mPortalPage = new PortalPage(mStage); loadPage(mPortalPage, savedInstanceState); mPortalPage.setPageQueryCallback(this); mWeatherPage = new WeatherPage(mStage); mPhotoPage = new PhotoPage(mStage); mVideoPage = new VideoPage(mStage); Setting setting = Setting.realize(this, R.xml.configuration); WeatherPage.loadConfiguration(setting); PhotoPage.loadConfiguration(setting); VideoPage.loadConfiguration(setting); loadPageAsync(savedInstanceState, mWeatherPage, mPhotoPage, mVideoPage); backgroundVideo.setZOrderMediaOverlay(false); mMedia3DView.setZOrderMediaOverlay(true); FrameLayout frame = (FrameLayout) findViewById(R.id.stage_root); frame.addView(mMedia3DView); mOrientationListener = new OrientationListener(this, SensorManager.SENSOR_DELAY_NORMAL); if (mOrientationListener.canDetectOrientation()) { mOrientationListener.enable(); } Intent intent = getIntent(); if (intent.getAction() != null) { if (intent.getAction().equalsIgnoreCase("android.intent.action.ROTATED_MAIN")) { mIsAutoRotateLaunched = true; } } if (mCurrentPage == null) { mCurrentPage = mPortalPage; } mMedia3DView.enterPage(mCurrentPage); }