com.google.android.apps.dashclock.render.SimpleRenderer

Here are the examples of the java api class com.google.android.apps.dashclock.render.SimpleRenderer taken from open source projects.

1. DaydreamService#renderDaydream()

Project: dashclock
File: DaydreamService.java
private void renderDaydream(final boolean restartAnimation) {
    if (!mAttached || mExtensionManager == null) {
        return;
    }
    if (restartAnimation) {
        // Only modify fullscreen state if this render will restart an animation (enter a new
        // cycle)
        setFullscreen(true);
    }
    final Resources res = getResources();
    mDaydreamContainer = (ViewGroup) findViewById(R.id.daydream_container);
    RootLayout rootContainer = (RootLayout) findViewById(R.id.daydream_root);
    if (mTravelDistance == 0) {
        mTravelDistance = rootContainer.getWidth() / 4;
    }
    rootContainer.setRootLayoutListener(new RootLayout.RootLayoutListener() {

        @Override
        public void onAwake() {
            mManuallyAwoken = true;
            setFullscreen(false);
            mHandler.removeCallbacks(mCycleRunnable);
            mHandler.postDelayed(mCycleRunnable, CYCLE_INTERVAL_MILLIS);
            mDaydreamContainer.animate().alpha(1f).rotation(0).scaleX(1f).scaleY(1f).translationX(0f).translationY(0f).setDuration(res.getInteger(android.R.integer.config_shortAnimTime));
            if (mSingleCycleAnimator != null) {
                mSingleCycleAnimator.cancel();
            }
        }

        @Override
        public boolean isAwake() {
            return mManuallyAwoken;
        }

        @Override
        public void onSizeChanged(int width, int height) {
            mTravelDistance = width / 4;
        }
    });
    DisplayMetrics displayMetrics = res.getDisplayMetrics();
    int screenWidthDp = (int) (displayMetrics.widthPixels * 1f / displayMetrics.density);
    int screenHeightDp = (int) (displayMetrics.heightPixels * 1f / displayMetrics.density);
    // Set up rendering
    SimpleRenderer renderer = new SimpleRenderer(this);
    DashClockRenderer.Options options = new DashClockRenderer.Options();
    options.target = DashClockRenderer.Options.TARGET_DAYDREAM;
    options.foregroundColor = Color.WHITE;
    options.minWidthDp = screenWidthDp;
    options.minHeightDp = screenHeightDp;
    options.newTaskOnClick = true;
    options.onClickListener = this;
    options.clickIntentTemplate = WidgetClickProxyActivity.getTemplate(this);
    renderer.setOptions(options);
    // Render the clock face
    SimpleViewBuilder vb = renderer.createSimpleViewBuilder();
    vb.useRoot(mDaydreamContainer);
    renderer.renderClockFace(vb, options.foregroundColor);
    vb.setLinearLayoutGravity(R.id.clock_target, Gravity.CENTER_HORIZONTAL);
    // Render extensions
    mExtensionsContainer = (ViewGroup) findViewById(R.id.extensions_container);
    mExtensionsContainer.removeAllViews();
    List<ExtensionWithData> visibleExtensions = mExtensionManager.getVisibleExtensionsWithData();
    for (ExtensionWithData ewd : visibleExtensions) {
        mExtensionsContainer.addView((View) renderer.renderExpandedExtension(mExtensionsContainer, null, false, ewd));
    }
    if (mDaydreamContainer.getHeight() == 0 || mNeedsRelayout) {
        ViewTreeObserver vto = mDaydreamContainer.getViewTreeObserver();
        if (vto.isAlive()) {
            vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

                @Override
                public void onGlobalLayout() {
                    ViewTreeObserver vto = mDaydreamContainer.getViewTreeObserver();
                    if (vto.isAlive()) {
                        vto.removeOnGlobalLayoutListener(this);
                    }
                    postLayoutRender(restartAnimation);
                }
            });
        }
        mDaydreamContainer.requestLayout();
        mNeedsRelayout = false;
    } else {
        postLayoutRender(restartAnimation);
    }
}