Example usage for android.view.accessibility AccessibilityEvent obtain

List of usage examples for android.view.accessibility AccessibilityEvent obtain

Introduction

In this page you can find the example usage for android.view.accessibility AccessibilityEvent obtain.

Prototype

public static AccessibilityEvent obtain() 

Source Link

Document

Returns a cached instance if such is available or a new one is instantiated.

Usage

From source file:com.actionbarsherlock.internal.widget.IcsAdapterView.java

@Override
public boolean onRequestSendAccessibilityEvent(View child, AccessibilityEvent event) {
    if (super.onRequestSendAccessibilityEvent(child, event)) {
        // Add a record for ourselves as well.
        AccessibilityEvent record = AccessibilityEvent.obtain();
        onInitializeAccessibilityEvent(record);
        // Populate with the text of the requesting child.
        child.dispatchPopulateAccessibilityEvent(record);
        event.appendRecord(record);/*  w  w  w.j  av  a 2 s  . c  o  m*/
        return true;
    }
    return false;
}

From source file:com.android.tv.MainActivity.java

/**
 * Says {@code text} when accessibility is turned on.
 *//*from  www. java2  s  . c o m*/
public void sendAccessibilityText(String text) {
    if (mAccessibilityManager.isEnabled()) {
        AccessibilityEvent event = AccessibilityEvent.obtain();
        event.setClassName(getClass().getName());
        event.setPackageName(getPackageName());
        event.setEventType(AccessibilityEvent.TYPE_ANNOUNCEMENT);
        event.getText().add(text);
        mAccessibilityManager.sendAccessibilityEvent(event);
    }
}

From source file:com.android.tv.MainActivity.java

private void tune() {
    if (DEBUG)//  w  ww.  j ava  2 s . co  m
        Log.d(TAG, "tune()");
    mTuneDurationTimer.start();

    lazyInitializeIfNeeded(LAZY_INITIALIZATION_DELAY);

    // Prerequisites to be able to tune.
    if (mInputIdUnderSetup != null) {
        mTunePending = true;
        return;
    }
    mTunePending = false;
    final Channel channel = mChannelTuner.getCurrentChannel();
    if (!mChannelTuner.isCurrentChannelPassthrough()) {
        if (mTvInputManagerHelper.getTunerTvInputSize() == 0) {
            Toast.makeText(this, R.string.msg_no_input, Toast.LENGTH_SHORT).show();
            // TODO: Direct the user to a Play Store landing page for TvInputService apps.
            finish();
            return;
        }
        SetupUtils setupUtils = SetupUtils.getInstance(this);
        if (setupUtils.isFirstTune()) {
            if (!mChannelTuner.areAllChannelsLoaded()) {
                // tune() will be called, once all channels are loaded.
                stopTv("tune()", false);
                return;
            }
            if (mChannelDataManager.getChannelCount() > 0) {
                mOverlayManager.showIntroDialog();
            } else if (!Features.ONBOARDING_EXPERIENCE.isEnabled(this)) {
                mOverlayManager.showSetupFragment();
                return;
            }
        }
        if (!TvCommonUtils.isRunningInTest() && mShowNewSourcesFragment
                && setupUtils.hasUnrecognizedInput(mTvInputManagerHelper)) {
            // Show new channel sources fragment.
            runAfterAttachedToWindow(new Runnable() {
                @Override
                public void run() {
                    mOverlayManager.runAfterOverlaysAreClosed(new Runnable() {
                        @Override
                        public void run() {
                            mOverlayManager.showNewSourcesFragment();
                        }
                    });
                }
            });
        }
        mShowNewSourcesFragment = false;
        if (mChannelTuner.getBrowsableChannelCount() == 0 && mChannelDataManager.getChannelCount() > 0
                && !mOverlayManager.getSideFragmentManager().isActive()) {
            if (!mChannelTuner.areAllChannelsLoaded()) {
                return;
            }
            if (mTvInputManagerHelper.getTunerTvInputSize() == 1) {
                mOverlayManager.getSideFragmentManager().show(new CustomizeChannelListFragment());
            } else {
                showSettingsFragment();
            }
            return;
        }
        // TODO: need to refactor the following code to put in startTv.
        if (channel == null) {
            // There is no channel to tune to.
            stopTv("tune()", false);
            if (!mChannelDataManager.isDbLoadFinished()) {
                // Wait until channel data is loaded in order to know the number of channels.
                // tune() will be retried, once the channel data is loaded.
                return;
            }
            if (mOverlayManager.getSideFragmentManager().isActive()) {
                return;
            }
            mOverlayManager.showSetupFragment();
            return;
        }
        setupUtils.onTuned();
        if (mTuneParams != null) {
            Long initChannelId = mTuneParams.getLong(KEY_INIT_CHANNEL_ID);
            if (initChannelId == channel.getId()) {
                mTuneParams.remove(KEY_INIT_CHANNEL_ID);
            } else {
                mTuneParams = null;
            }
        }
    }

    mIsCurrentChannelUnblockedByUser = false;
    if (!isUnderShrunkenTvView()) {
        mLastAllowedRatingForCurrentChannel = null;
    }
    mHandler.removeMessages(MSG_UPDATE_CHANNEL_BANNER_BY_INFO_UPDATE);
    if (mAccessibilityManager.isEnabled()) {
        // For every tune, we need to inform the tuned channel or input to a user,
        // if Talkback is turned on.
        AccessibilityEvent event = AccessibilityEvent.obtain();
        event.setClassName(getClass().getName());
        event.setPackageName(getPackageName());
        event.setEventType(AccessibilityEvent.TYPE_ANNOUNCEMENT);
        if (TvContract.isChannelUriForPassthroughInput(channel.getUri())) {
            TvInputInfo input = mTvInputManagerHelper.getTvInputInfo(channel.getInputId());
            event.getText().add(Utils.loadLabel(this, input));
        } else if (TextUtils.isEmpty(channel.getDisplayName())) {
            event.getText().add(channel.getDisplayNumber());
        } else {
            event.getText().add(channel.getDisplayNumber() + " " + channel.getDisplayName());
        }
        mAccessibilityManager.sendAccessibilityEvent(event);
    }

    boolean success = mTvView.tuneTo(channel, mTuneParams, mOnTuneListener);
    mOnTuneListener.onTune(channel, isUnderShrunkenTvView());

    mTuneParams = null;
    if (!success) {
        Toast.makeText(this, R.string.msg_tune_failed, Toast.LENGTH_SHORT).show();
        return;
    }

    // Explicitly make the TV view main to make the selected input an HDMI-CEC active source.
    mTvView.setMain();
    scheduleRestoreMainTvView();
    if (!isUnderShrunkenTvView()) {
        if (!channel.isPassthrough()) {
            addToRecentChannels(channel.getId());
        }
        Utils.setLastWatchedChannel(this, channel);
        TvApplication.getSingletons(this).getMainActivityWrapper().notifyCurrentChannelChange(this, channel);
    }
    checkChannelLockNeeded(mTvView);
    updateChannelBannerAndShowIfNeeded(UPDATE_CHANNEL_BANNER_REASON_TUNE);
    if (mActivityResumed) {
        // requestVisibleBehind should be called after onResume() is called. But, when
        // launcher is over the TV app and the screen is turned off and on, tune() can
        // be called during the pause state by mBroadcastReceiver (Intent.ACTION_SCREEN_ON).
        requestVisibleBehind(true);
    }
    updateMediaSession();
}

From source file:org.nekC.android.support.widget.RecyclerView.java

private void dispatchContentChangedIfNecessary() {
    final int flags = mEatenAccessibilityChangeFlags;
    mEatenAccessibilityChangeFlags = 0;/*from   www  .  j  av a2  s  .c o m*/
    if (flags != 0 && mAccessibilityManager != null && mAccessibilityManager.isEnabled()) {
        final AccessibilityEvent event = AccessibilityEvent.obtain();
        event.setEventType(AccessibilityEventCompat.TYPE_WINDOW_CONTENT_CHANGED);
        AccessibilityEventCompat.setContentChangeTypes(event, flags);
        sendAccessibilityEventUnchecked(event);
    }
}

From source file:android.support.v71.widget.RecyclerView.java

private void dispatchContentChangedIfNecessary() {
    final int flags = mEatenAccessibilityChangeFlags;
    mEatenAccessibilityChangeFlags = 0;/*  w  w  w  .ja v  a  2s  .  co m*/
    if (flags != 0 && isAccessibilityEnabled()) {
        final AccessibilityEvent event = AccessibilityEvent.obtain();
        event.setEventType(AccessibilityEventCompat.TYPE_WINDOW_CONTENT_CHANGED);
        AccessibilityEventCompat.setContentChangeTypes(event, flags);
        sendAccessibilityEventUnchecked(event);
    }
}