// Testing Case #5
  public void testVideoPageCyclicScrolling() {
    enterVideoPageWaitForIdle();

    long startTime = SystemClock.elapsedRealtime();
    VideoPage p = mActivity.getVideoPage();
    final int pageCount = p.getTotalVideoPage();
    final int beginIndex = p.getIndex();

    for (int i = 0; i < pageCount; ++i) {
      CommonTestUtil.sendDragSync(mInstrumentation, mActivity, CommonTestUtil.DragDirection.UP);
    }
    CommonTestUtil.wait(mInstrumentation, CommonTestUtil.WAIT_FOR_INNER_PAGE_SWITCH_TIME_IN_SECS);

    assertTrue(mMedia3DView.getCurrentPage() == p);
    final int afterUpScrollingIndex = p.getIndex();
    assertEquals(beginIndex, afterUpScrollingIndex);

    for (int i = 0; i < pageCount; ++i) {
      CommonTestUtil.sendDragSync(mInstrumentation, mActivity, CommonTestUtil.DragDirection.DOWN);
    }
    CommonTestUtil.wait(mInstrumentation, CommonTestUtil.WAIT_FOR_INNER_PAGE_SWITCH_TIME_IN_SECS);

    assertTrue(mMedia3DView.getCurrentPage() == p);
    final int afterDownScrollingIndex = p.getIndex();
    assertEquals(beginIndex, afterDownScrollingIndex);
  }
Example #2
0
 private void loadPageAsync(Bundle savedInstanceState, Page... pages) {
   final int count = pages.length;
   for (int i = 0; i < count; i++) {
     pages[i].onAttach(this);
     pages[i].onCreate(savedInstanceState);
     mMedia3DView.addPage(pages[i]);
   }
   mMedia3DView.loadPageAsync(pages);
 }
  // Testing Case #2
  public void testLeaveVideoPageBySlide() {
    enterVideoPageWaitForIdle();

    CommonTestUtil.sendDragSync(mInstrumentation, mActivity, CommonTestUtil.DragDirection.RIGHT);
    assertTrue(mMedia3DView.getCurrentPage() != mActivity.getVideoPage());

    CommonTestUtil.sendDragSync(mInstrumentation, mActivity, CommonTestUtil.DragDirection.LEFT);
    assertTrue(mMedia3DView.getCurrentPage() == mActivity.getVideoPage());
  }
Example #4
0
  private void loadPage(Page page, Bundle savedInstanceState) {
    if (Media3D.DEBUG) {
      Log.v(TAG, "Load page " + page);
    }

    page.onAttach(this);
    page.onCreate(savedInstanceState);
    mMedia3DView.addPage(page);
    mMedia3DView.loadPage(page);
  }
Example #5
0
  @Override
  public void onConfigurationChanged(Configuration config) {
    super.onConfigurationChanged(config);
    if (Media3D.DEBUG) {
      Log.v(TAG, "onConfigurationChanged");
    }

    // handle configuration change to avoid drawing on lock screen
    // and the surface memory which makes gpu oom.
    if (mMedia3DView == null) {
      return;
    }
    mMedia3DView.onConfigurationChanged(config);
    mMedia3DView.setVisibility(View.VISIBLE);
  }
  // Testing Case #6
  public void testFolderOnMenuBar() {
    enterVideoPageWaitForIdle();

    // trigger menu bar
    CommonTestUtil.sendSingleTapConfirmedEventOnUiThread(
        mActivity, mMedia3DView, CommonTestUtil.NON_ACTOR_POINT);
    CommonTestUtil.waitMenuBarForActionSync(
        mInstrumentation, mMedia3DView, CommonTestUtil.DEFAULT_MENU_BAR_TIMEOUT_IN_MS);

    // click folder icon on menu bar
    CommonTestUtil.sendTouchEventsOnUiThread(
        mActivity, mMedia3DView, CommonTestUtil.FOLDER_ICON_IN_TOP_MENU);
    CommonTestUtil.waitPageForIdleSync(
        mInstrumentation,
        mMedia3DView,
        mActivity.getVideoPage(),
        CommonTestUtil.DEFAULT_PAGE_SWITCH_TIMEOUT_IN_MS);

    final int REQUEST_PICK_FOLDER = 0; // refer to VideoPage
    int requestCode =
        mActivity.getVideoPage().hashCode() + REQUEST_PICK_FOLDER; // refer to VideoPage
    CommonTestUtil.finishLaunchedActivity(mActivity, requestCode);
    CommonTestUtil.wait(mInstrumentation, CommonTestUtil.WAIT_FOR_PAGE_SWITCH_TIME_IN_SECS);

    assertTrue(mMedia3DView.getCurrentPage() == mActivity.getVideoPage());
  }
Example #7
0
  private void unloadPage(Page page) {
    if (Media3D.DEBUG) {
      Log.v(TAG, "Unload page " + page);
    }

    mMedia3DView.removePage(page);
    page.onDestroy();
    page.onDetach();
  }
Example #8
0
 @Override
 protected void onResume() {
   super.onResume();
   if (Media3D.DEBUG) {
     Log.d(TAG, "onResume");
   }
   startMonitorExternalStorage();
   mMedia3DView.onResume();
 }
Example #9
0
 @Override
 protected void onPause() {
   if (Media3D.DEBUG) {
     Log.d(TAG, "onPause");
   }
   mMedia3DView.onPause();
   stopMonitorExternalStorage();
   super.onPause();
 }
  // Testing Case #1
  public void testLeaveVideoPageByBack() {
    enterVideoPageWaitForIdle();

    sendKeys(KeyEvent.KEYCODE_BACK);
    CommonTestUtil.waitPageForIdleSync(
        mInstrumentation,
        mMedia3DView,
        mActivity.getPortalPage(),
        CommonTestUtil.DEFAULT_PAGE_SWITCH_TIMEOUT_IN_MS);
    assertTrue(mMedia3DView.getCurrentPage() == mActivity.getPortalPage());
  }
Example #11
0
  @Override
  public boolean onTouchEvent(MotionEvent m) {
    if (Media3D.DEBUG) {
      Log.v(
          TAG,
          "onTouchEvent, action = " + m.getAction() + ", (" + m.getX() + ", " + m.getY() + ")");
    }

    mMedia3DView.onTouchEvent(m);
    return false;
  }
  // Testing Case #4
  public void testPauseResume() {
    enterVideoPageWaitForIdle();

    mInstrumentation.callActivityOnPause(mActivity);
    CommonTestUtil.wait(mInstrumentation, CommonTestUtil.WAIT_FOR_PAGE_SWITCH_TIME_IN_SECS);

    mInstrumentation.callActivityOnResume(mActivity);
    CommonTestUtil.waitPageForIdleSync(
        mInstrumentation,
        mMedia3DView,
        mActivity.getVideoPage(),
        CommonTestUtil.DEFAULT_PAGE_SWITCH_TIMEOUT_IN_MS);
    assertTrue(mMedia3DView.getCurrentPage() == mActivity.getVideoPage());
  }
Example #13
0
 @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);
 }
  // Testing Case #7
  public void testBackOnMenuBar() {
    enterVideoPageWaitForIdle();
    // trigger menu bar
    CommonTestUtil.sendSingleTapConfirmedEventOnUiThread(
        mActivity, mMedia3DView, CommonTestUtil.NON_ACTOR_POINT);
    CommonTestUtil.waitMenuBarForActionSync(
        mInstrumentation, mMedia3DView, CommonTestUtil.DEFAULT_MENU_BAR_TIMEOUT_IN_MS);

    // click back icon on menu bar
    CommonTestUtil.sendTouchEventsOnUiThread(
        mActivity, mMedia3DView, CommonTestUtil.BACK_ICON_IN_TOP_MENU);
    CommonTestUtil.waitPageForIdleSync(
        mInstrumentation,
        mMedia3DView,
        mActivity.getPortalPage(),
        CommonTestUtil.DEFAULT_PAGE_SWITCH_TIMEOUT_IN_MS);
    assertTrue(mMedia3DView.getCurrentPage() == mActivity.getPortalPage());
  }
  public void enterVideoPageWaitForIdle() {
    validateNoNullMember();
    CommonTestUtil.waitPageForIdleSync(
        mInstrumentation,
        mMedia3DView,
        mActivity.getPortalPage(),
        CommonTestUtil.DEFAULT_PAGE_SWITCH_TIMEOUT_IN_MS);
    CommonTestUtil.waitLoadForIdleSync(
        mInstrumentation,
        mActivity.getVideoPage(),
        CommonTestUtil.DEFAULT_PAGE_SWITCH_TIMEOUT_IN_MS);

    CommonTestUtil.sendSingleTapConfirmedEventOnUiThread(
        mActivity, mMedia3DView, CommonTestUtil.VIDEO_ICON_IN_PORTALPAGE);
    CommonTestUtil.waitPageForIdleSync(
        mInstrumentation,
        mMedia3DView,
        mActivity.getVideoPage(),
        CommonTestUtil.DEFAULT_PAGE_SWITCH_TIMEOUT_IN_MS);

    assertTrue(mMedia3DView.getCurrentPage() == mActivity.getVideoPage());
  }
Example #16
0
  @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);
  }
Example #17
0
 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   mMedia3DView.onActivityResult(requestCode, resultCode, data);
   super.onActivityResult(requestCode, resultCode, data);
 }