Search in sources :

Example 56 with CallSuper

use of android.annotation.CallSuper in project android_frameworks_base by AOSPA.

the class AndroidKeyStoreSignatureSpiBase method resetAll.

/**
     * Resets this cipher to its pristine pre-init state. This must be equivalent to obtaining a new
     * cipher instance.
     *
     * <p>Subclasses storing additional state should override this method, reset the additional
     * state, and then chain to superclass.
     */
@CallSuper
protected void resetAll() {
    IBinder operationToken = mOperationToken;
    if (operationToken != null) {
        mOperationToken = null;
        mKeyStore.abort(operationToken);
    }
    mSigning = false;
    mKey = null;
    appRandom = null;
    mOperationToken = null;
    mOperationHandle = 0;
    mMessageStreamer = null;
    mCachedException = null;
}
Also used : IBinder(android.os.IBinder) CallSuper(android.annotation.CallSuper)

Example 57 with CallSuper

use of android.annotation.CallSuper in project android_frameworks_base by AOSPA.

the class DialogPreference method onBindDialogView.

/**
     * Binds views in the content View of the dialog to data.
     * <p>
     * Make sure to call through to the superclass implementation.
     * 
     * @param view The content View of the dialog, if it is custom.
     */
@CallSuper
protected void onBindDialogView(View view) {
    View dialogMessageView = view.findViewById(com.android.internal.R.id.message);
    if (dialogMessageView != null) {
        final CharSequence message = getDialogMessage();
        int newVisibility = View.GONE;
        if (!TextUtils.isEmpty(message)) {
            if (dialogMessageView instanceof TextView) {
                ((TextView) dialogMessageView).setText(message);
            }
            newVisibility = View.VISIBLE;
        }
        if (dialogMessageView.getVisibility() != newVisibility) {
            dialogMessageView.setVisibility(newVisibility);
        }
    }
}
Also used : TextView(android.widget.TextView) TextView(android.widget.TextView) View(android.view.View) CallSuper(android.annotation.CallSuper)

Example 58 with CallSuper

use of android.annotation.CallSuper in project android_frameworks_base by AOSPA.

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)

Example 59 with CallSuper

use of android.annotation.CallSuper in project android_frameworks_base by AOSPA.

the class View method onFocusChanged.

/**
     * Called by the view system when the focus state of this view changes.
     * When the focus change event is caused by directional navigation, direction
     * and previouslyFocusedRect provide insight into where the focus is coming from.
     * When overriding, be sure to call up through to the super class so that
     * the standard focus handling will occur.
     *
     * @param gainFocus True if the View has focus; false otherwise.
     * @param direction The direction focus has moved when requestFocus()
     *                  is called to give this view focus. Values are
     *                  {@link #FOCUS_UP}, {@link #FOCUS_DOWN}, {@link #FOCUS_LEFT},
     *                  {@link #FOCUS_RIGHT}, {@link #FOCUS_FORWARD}, or {@link #FOCUS_BACKWARD}.
     *                  It may not always apply, in which case use the default.
     * @param previouslyFocusedRect The rectangle, in this view's coordinate
     *        system, of the previously focused view.  If applicable, this will be
     *        passed in as finer grained information about where the focus is coming
     *        from (in addition to direction).  Will be <code>null</code> otherwise.
     */
@CallSuper
protected void onFocusChanged(boolean gainFocus, @FocusDirection int direction, @Nullable Rect previouslyFocusedRect) {
    if (gainFocus) {
        sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
    } else {
        notifyViewAccessibilityStateChangedIfNeeded(AccessibilityEvent.CONTENT_CHANGE_TYPE_UNDEFINED);
    }
    InputMethodManager imm = InputMethodManager.peekInstance();
    if (!gainFocus) {
        if (isPressed()) {
            setPressed(false);
        }
        if (imm != null && mAttachInfo != null && mAttachInfo.mHasWindowFocus) {
            imm.focusOut(this);
        }
        onFocusLost();
    } else if (imm != null && mAttachInfo != null && mAttachInfo.mHasWindowFocus) {
        imm.focusIn(this);
    }
    invalidate(true);
    ListenerInfo li = mListenerInfo;
    if (li != null && li.mOnFocusChangeListener != null) {
        li.mOnFocusChangeListener.onFocusChange(this, gainFocus);
    }
    if (mAttachInfo != null) {
        mAttachInfo.mKeyDispatchState.reset(this);
    }
}
Also used : InputMethodManager(android.view.inputmethod.InputMethodManager) CallSuper(android.annotation.CallSuper)

Example 60 with CallSuper

use of android.annotation.CallSuper in project android_frameworks_base by AOSPA.

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)

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