Search in sources :

Example 41 with CallSuper

use of android.annotation.CallSuper in project platform_frameworks_base by android.

the class Activity method onCreate.

/**
     * Called when the activity is starting.  This is where most initialization
     * should go: calling {@link #setContentView(int)} to inflate the
     * activity's UI, using {@link #findViewById} to programmatically interact
     * with widgets in the UI, calling
     * {@link #managedQuery(android.net.Uri , String[], String, String[], String)} to retrieve
     * cursors for data being displayed, etc.
     *
     * <p>You can call {@link #finish} from within this function, in
     * which case onDestroy() will be immediately called without any of the rest
     * of the activity lifecycle ({@link #onStart}, {@link #onResume},
     * {@link #onPause}, etc) executing.
     *
     * <p><em>Derived classes must call through to the super class's
     * implementation of this method.  If they do not, an exception will be
     * thrown.</em></p>
     *
     * @param savedInstanceState If the activity is being re-initialized after
     *     previously being shut down then this Bundle contains the data it most
     *     recently supplied in {@link #onSaveInstanceState}.  <b><i>Note: Otherwise it is null.</i></b>
     *
     * @see #onStart
     * @see #onSaveInstanceState
     * @see #onRestoreInstanceState
     * @see #onPostCreate
     */
@MainThread
@CallSuper
protected void onCreate(@Nullable Bundle savedInstanceState) {
    if (DEBUG_LIFECYCLE)
        Slog.v(TAG, "onCreate " + this + ": " + savedInstanceState);
    if (mLastNonConfigurationInstances != null) {
        mFragments.restoreLoaderNonConfig(mLastNonConfigurationInstances.loaders);
    }
    if (mActivityInfo.parentActivityName != null) {
        if (mActionBar == null) {
            mEnableDefaultActionBarUp = true;
        } else {
            mActionBar.setDefaultDisplayHomeAsUpEnabled(true);
        }
    }
    if (savedInstanceState != null) {
        Parcelable p = savedInstanceState.getParcelable(FRAGMENTS_TAG);
        mFragments.restoreAllState(p, mLastNonConfigurationInstances != null ? mLastNonConfigurationInstances.fragments : null);
    }
    mFragments.dispatchCreate();
    getApplication().dispatchActivityCreated(this, savedInstanceState);
    if (mVoiceInteractor != null) {
        mVoiceInteractor.attachActivity(this);
    }
    mCalled = true;
}
Also used : Parcelable(android.os.Parcelable) MainThread(android.annotation.MainThread) CallSuper(android.annotation.CallSuper)

Example 42 with CallSuper

use of android.annotation.CallSuper in project platform_frameworks_base by android.

the class View method draw.

/**
     * Manually render this view (and all of its children) to the given Canvas.
     * The view must have already done a full layout before this function is
     * called.  When implementing a view, implement
     * {@link #onDraw(android.graphics.Canvas)} instead of overriding this method.
     * If you do need to override this method, call the superclass version.
     *
     * @param canvas The Canvas to which the View is rendered.
     */
@CallSuper
public void draw(Canvas canvas) {
    final int privateFlags = mPrivateFlags;
    final boolean dirtyOpaque = (privateFlags & PFLAG_DIRTY_MASK) == PFLAG_DIRTY_OPAQUE && (mAttachInfo == null || !mAttachInfo.mIgnoreDirtyState);
    mPrivateFlags = (privateFlags & ~PFLAG_DIRTY_MASK) | PFLAG_DRAWN;
    /*
         * Draw traversal performs several drawing steps which must be executed
         * in the appropriate order:
         *
         *      1. Draw the background
         *      2. If necessary, save the canvas' layers to prepare for fading
         *      3. Draw view's content
         *      4. Draw children
         *      5. If necessary, draw the fading edges and restore layers
         *      6. Draw decorations (scrollbars for instance)
         */
    // Step 1, draw the background, if needed
    int saveCount;
    if (!dirtyOpaque) {
        drawBackground(canvas);
    }
    // skip step 2 & 5 if possible (common case)
    final int viewFlags = mViewFlags;
    boolean horizontalEdges = (viewFlags & FADING_EDGE_HORIZONTAL) != 0;
    boolean verticalEdges = (viewFlags & FADING_EDGE_VERTICAL) != 0;
    if (!verticalEdges && !horizontalEdges) {
        // Step 3, draw the content
        if (!dirtyOpaque)
            onDraw(canvas);
        // Step 4, draw the children
        dispatchDraw(canvas);
        // Overlay is part of the content and draws beneath Foreground
        if (mOverlay != null && !mOverlay.isEmpty()) {
            mOverlay.getOverlayView().dispatchDraw(canvas);
        }
        // Step 6, draw decorations (foreground, scrollbars)
        onDrawForeground(canvas);
        // we're done...
        return;
    }
    /*
         * Here we do the full fledged routine...
         * (this is an uncommon case where speed matters less,
         * this is why we repeat some of the tests that have been
         * done above)
         */
    boolean drawTop = false;
    boolean drawBottom = false;
    boolean drawLeft = false;
    boolean drawRight = false;
    float topFadeStrength = 0.0f;
    float bottomFadeStrength = 0.0f;
    float leftFadeStrength = 0.0f;
    float rightFadeStrength = 0.0f;
    // Step 2, save the canvas' layers
    int paddingLeft = mPaddingLeft;
    final boolean offsetRequired = isPaddingOffsetRequired();
    if (offsetRequired) {
        paddingLeft += getLeftPaddingOffset();
    }
    int left = mScrollX + paddingLeft;
    int right = left + mRight - mLeft - mPaddingRight - paddingLeft;
    int top = mScrollY + getFadeTop(offsetRequired);
    int bottom = top + getFadeHeight(offsetRequired);
    if (offsetRequired) {
        right += getRightPaddingOffset();
        bottom += getBottomPaddingOffset();
    }
    final ScrollabilityCache scrollabilityCache = mScrollCache;
    final float fadeHeight = scrollabilityCache.fadingEdgeLength;
    int length = (int) fadeHeight;
    // overlapping fades produce odd-looking artifacts
    if (verticalEdges && (top + length > bottom - length)) {
        length = (bottom - top) / 2;
    }
    // also clip horizontal fades if necessary
    if (horizontalEdges && (left + length > right - length)) {
        length = (right - left) / 2;
    }
    if (verticalEdges) {
        topFadeStrength = Math.max(0.0f, Math.min(1.0f, getTopFadingEdgeStrength()));
        drawTop = topFadeStrength * fadeHeight > 1.0f;
        bottomFadeStrength = Math.max(0.0f, Math.min(1.0f, getBottomFadingEdgeStrength()));
        drawBottom = bottomFadeStrength * fadeHeight > 1.0f;
    }
    if (horizontalEdges) {
        leftFadeStrength = Math.max(0.0f, Math.min(1.0f, getLeftFadingEdgeStrength()));
        drawLeft = leftFadeStrength * fadeHeight > 1.0f;
        rightFadeStrength = Math.max(0.0f, Math.min(1.0f, getRightFadingEdgeStrength()));
        drawRight = rightFadeStrength * fadeHeight > 1.0f;
    }
    saveCount = canvas.getSaveCount();
    int solidColor = getSolidColor();
    if (solidColor == 0) {
        final int flags = Canvas.HAS_ALPHA_LAYER_SAVE_FLAG;
        if (drawTop) {
            canvas.saveLayer(left, top, right, top + length, null, flags);
        }
        if (drawBottom) {
            canvas.saveLayer(left, bottom - length, right, bottom, null, flags);
        }
        if (drawLeft) {
            canvas.saveLayer(left, top, left + length, bottom, null, flags);
        }
        if (drawRight) {
            canvas.saveLayer(right - length, top, right, bottom, null, flags);
        }
    } else {
        scrollabilityCache.setFadeColor(solidColor);
    }
    // Step 3, draw the content
    if (!dirtyOpaque)
        onDraw(canvas);
    // Step 4, draw the children
    dispatchDraw(canvas);
    // Step 5, draw the fade effect and restore layers
    final Paint p = scrollabilityCache.paint;
    final Matrix matrix = scrollabilityCache.matrix;
    final Shader fade = scrollabilityCache.shader;
    if (drawTop) {
        matrix.setScale(1, fadeHeight * topFadeStrength);
        matrix.postTranslate(left, top);
        fade.setLocalMatrix(matrix);
        p.setShader(fade);
        canvas.drawRect(left, top, right, top + length, p);
    }
    if (drawBottom) {
        matrix.setScale(1, fadeHeight * bottomFadeStrength);
        matrix.postRotate(180);
        matrix.postTranslate(left, bottom);
        fade.setLocalMatrix(matrix);
        p.setShader(fade);
        canvas.drawRect(left, bottom - length, right, bottom, p);
    }
    if (drawLeft) {
        matrix.setScale(1, fadeHeight * leftFadeStrength);
        matrix.postRotate(-90);
        matrix.postTranslate(left, top);
        fade.setLocalMatrix(matrix);
        p.setShader(fade);
        canvas.drawRect(left, top, left + length, bottom, p);
    }
    if (drawRight) {
        matrix.setScale(1, fadeHeight * rightFadeStrength);
        matrix.postRotate(90);
        matrix.postTranslate(right, top);
        fade.setLocalMatrix(matrix);
        p.setShader(fade);
        canvas.drawRect(right - length, top, right, bottom, p);
    }
    canvas.restoreToCount(saveCount);
    // Overlay is part of the content and draws beneath Foreground
    if (mOverlay != null && !mOverlay.isEmpty()) {
        mOverlay.getOverlayView().dispatchDraw(canvas);
    }
    // Step 6, draw decorations (foreground, scrollbars)
    onDrawForeground(canvas);
}
Also used : Matrix(android.graphics.Matrix) Paint(android.graphics.Paint) Shader(android.graphics.Shader) Paint(android.graphics.Paint) Point(android.graphics.Point) CallSuper(android.annotation.CallSuper)

Example 43 with CallSuper

use of android.annotation.CallSuper in project platform_frameworks_base by android.

the class View method onVisibilityAggregated.

/**
     * Called when the user-visibility of this View is potentially affected by a change
     * to this view itself, an ancestor view or the window this view is attached to.
     *
     * @param isVisible true if this view and all of its ancestors are {@link #VISIBLE}
     *                  and this view's window is also visible
     */
@CallSuper
public void onVisibilityAggregated(boolean isVisible) {
    if (isVisible && mAttachInfo != null) {
        initialAwakenScrollBars();
    }
    final Drawable dr = mBackground;
    if (dr != null && isVisible != dr.isVisible()) {
        dr.setVisible(isVisible, false);
    }
    final Drawable fg = mForegroundInfo != null ? mForegroundInfo.mDrawable : null;
    if (fg != null && isVisible != fg.isVisible()) {
        fg.setVisible(isVisible, false);
    }
}
Also used : ColorDrawable(android.graphics.drawable.ColorDrawable) Drawable(android.graphics.drawable.Drawable) ScrollBarDrawable(android.widget.ScrollBarDrawable) CallSuper(android.annotation.CallSuper)

Example 44 with CallSuper

use of android.annotation.CallSuper in project platform_frameworks_base by android.

the class View method onAttachedToWindow.

/**
     * This is called when the view is attached to a window.  At this point it
     * has a Surface and will start drawing.  Note that this function is
     * guaranteed to be called before {@link #onDraw(android.graphics.Canvas)},
     * however it may be called any time before the first onDraw -- including
     * before or after {@link #onMeasure(int, int)}.
     *
     * @see #onDetachedFromWindow()
     */
@CallSuper
protected void onAttachedToWindow() {
    if ((mPrivateFlags & PFLAG_REQUEST_TRANSPARENT_REGIONS) != 0) {
        mParent.requestTransparentRegion(this);
    }
    mPrivateFlags3 &= ~PFLAG3_IS_LAID_OUT;
    jumpDrawablesToCurrentState();
    resetSubtreeAccessibilityStateChanged();
    // rebuild, since Outline not maintained while View is detached
    rebuildOutline();
    if (isFocused()) {
        InputMethodManager imm = InputMethodManager.peekInstance();
        if (imm != null) {
            imm.focusIn(this);
        }
    }
}
Also used : InputMethodManager(android.view.inputmethod.InputMethodManager) CallSuper(android.annotation.CallSuper)

Example 45 with CallSuper

use of android.annotation.CallSuper in project platform_frameworks_base by android.

the class View method encodeProperties.

/** {@hide} */
@CallSuper
protected void encodeProperties(@NonNull ViewHierarchyEncoder stream) {
    Object resolveId = ViewDebug.resolveId(getContext(), mID);
    if (resolveId instanceof String) {
        stream.addProperty("id", (String) resolveId);
    } else {
        stream.addProperty("id", mID);
    }
    stream.addProperty("misc:transformation.alpha", mTransformationInfo != null ? mTransformationInfo.mAlpha : 0);
    stream.addProperty("misc:transitionName", getTransitionName());
    // layout
    stream.addProperty("layout:left", mLeft);
    stream.addProperty("layout:right", mRight);
    stream.addProperty("layout:top", mTop);
    stream.addProperty("layout:bottom", mBottom);
    stream.addProperty("layout:width", getWidth());
    stream.addProperty("layout:height", getHeight());
    stream.addProperty("layout:layoutDirection", getLayoutDirection());
    stream.addProperty("layout:layoutRtl", isLayoutRtl());
    stream.addProperty("layout:hasTransientState", hasTransientState());
    stream.addProperty("layout:baseline", getBaseline());
    // layout params
    ViewGroup.LayoutParams layoutParams = getLayoutParams();
    if (layoutParams != null) {
        stream.addPropertyKey("layoutParams");
        layoutParams.encode(stream);
    }
    // scrolling
    stream.addProperty("scrolling:scrollX", mScrollX);
    stream.addProperty("scrolling:scrollY", mScrollY);
    // padding
    stream.addProperty("padding:paddingLeft", mPaddingLeft);
    stream.addProperty("padding:paddingRight", mPaddingRight);
    stream.addProperty("padding:paddingTop", mPaddingTop);
    stream.addProperty("padding:paddingBottom", mPaddingBottom);
    stream.addProperty("padding:userPaddingRight", mUserPaddingRight);
    stream.addProperty("padding:userPaddingLeft", mUserPaddingLeft);
    stream.addProperty("padding:userPaddingBottom", mUserPaddingBottom);
    stream.addProperty("padding:userPaddingStart", mUserPaddingStart);
    stream.addProperty("padding:userPaddingEnd", mUserPaddingEnd);
    // measurement
    stream.addProperty("measurement:minHeight", mMinHeight);
    stream.addProperty("measurement:minWidth", mMinWidth);
    stream.addProperty("measurement:measuredWidth", mMeasuredWidth);
    stream.addProperty("measurement:measuredHeight", mMeasuredHeight);
    // drawing
    stream.addProperty("drawing:elevation", getElevation());
    stream.addProperty("drawing:translationX", getTranslationX());
    stream.addProperty("drawing:translationY", getTranslationY());
    stream.addProperty("drawing:translationZ", getTranslationZ());
    stream.addProperty("drawing:rotation", getRotation());
    stream.addProperty("drawing:rotationX", getRotationX());
    stream.addProperty("drawing:rotationY", getRotationY());
    stream.addProperty("drawing:scaleX", getScaleX());
    stream.addProperty("drawing:scaleY", getScaleY());
    stream.addProperty("drawing:pivotX", getPivotX());
    stream.addProperty("drawing:pivotY", getPivotY());
    stream.addProperty("drawing:opaque", isOpaque());
    stream.addProperty("drawing:alpha", getAlpha());
    stream.addProperty("drawing:transitionAlpha", getTransitionAlpha());
    stream.addProperty("drawing:shadow", hasShadow());
    stream.addProperty("drawing:solidColor", getSolidColor());
    stream.addProperty("drawing:layerType", mLayerType);
    stream.addProperty("drawing:willNotDraw", willNotDraw());
    stream.addProperty("drawing:hardwareAccelerated", isHardwareAccelerated());
    stream.addProperty("drawing:willNotCacheDrawing", willNotCacheDrawing());
    stream.addProperty("drawing:drawingCacheEnabled", isDrawingCacheEnabled());
    stream.addProperty("drawing:overlappingRendering", hasOverlappingRendering());
    // focus
    stream.addProperty("focus:hasFocus", hasFocus());
    stream.addProperty("focus:isFocused", isFocused());
    stream.addProperty("focus:isFocusable", isFocusable());
    stream.addProperty("focus:isFocusableInTouchMode", isFocusableInTouchMode());
    stream.addProperty("misc:clickable", isClickable());
    stream.addProperty("misc:pressed", isPressed());
    stream.addProperty("misc:selected", isSelected());
    stream.addProperty("misc:touchMode", isInTouchMode());
    stream.addProperty("misc:hovered", isHovered());
    stream.addProperty("misc:activated", isActivated());
    stream.addProperty("misc:visibility", getVisibility());
    stream.addProperty("misc:fitsSystemWindows", getFitsSystemWindows());
    stream.addProperty("misc:filterTouchesWhenObscured", getFilterTouchesWhenObscured());
    stream.addProperty("misc:enabled", isEnabled());
    stream.addProperty("misc:soundEffectsEnabled", isSoundEffectsEnabled());
    stream.addProperty("misc:hapticFeedbackEnabled", isHapticFeedbackEnabled());
    // theme attributes
    Resources.Theme theme = getContext().getTheme();
    if (theme != null) {
        stream.addPropertyKey("theme");
        theme.encode(stream);
    }
    // view attribute information
    int n = mAttributes != null ? mAttributes.length : 0;
    stream.addProperty("meta:__attrCount__", n / 2);
    for (int i = 0; i < n; i += 2) {
        stream.addProperty("meta:__attr__" + mAttributes[i], mAttributes[i + 1]);
    }
    stream.addProperty("misc:scrollBarStyle", getScrollBarStyle());
    // text
    stream.addProperty("text:textDirection", getTextDirection());
    stream.addProperty("text:textAlignment", getTextAlignment());
    // accessibility
    CharSequence contentDescription = getContentDescription();
    stream.addProperty("accessibility:contentDescription", contentDescription == null ? "" : contentDescription.toString());
    stream.addProperty("accessibility:labelFor", getLabelFor());
    stream.addProperty("accessibility:importantForAccessibility", getImportantForAccessibility());
}
Also used : Resources(android.content.res.Resources) Paint(android.graphics.Paint) Point(android.graphics.Point) CallSuper(android.annotation.CallSuper)

Aggregations

CallSuper (android.annotation.CallSuper)89 IBinder (android.os.IBinder)20 View (android.view.View)15 TextView (android.widget.TextView)15 Point (android.graphics.Point)13 Drawable (android.graphics.drawable.Drawable)13 Context (android.content.Context)10 ImageView (android.widget.ImageView)10 ListView (android.widget.ListView)10 Paint (android.graphics.Paint)8 ColorDrawable (android.graphics.drawable.ColorDrawable)8 InputMethodManager (android.view.inputmethod.InputMethodManager)8 ScrollBarDrawable (android.widget.ScrollBarDrawable)8 MainThread (android.annotation.MainThread)5 TypedArray (android.content.res.TypedArray)5 Uri (android.net.Uri)5 Parcelable (android.os.Parcelable)5 DocumentsContract.buildDocumentUri (android.provider.DocumentsContract.buildDocumentUri)5 DocumentsContract.buildTreeDocumentUri (android.provider.DocumentsContract.buildTreeDocumentUri)5 DocumentsContract.isTreeUri (android.provider.DocumentsContract.isTreeUri)5