android.view.accessibility.AccessibilityManager#isTouchExplorationEnabled ( )源码实例Demo

下面列出了android.view.accessibility.AccessibilityManager#isTouchExplorationEnabled ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: MHViewer   文件: LockPatternView.java
@Override
public boolean onHoverEvent(@NonNull MotionEvent event) {
    AccessibilityManager accessibilityManager =
            (AccessibilityManager) getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
    if (accessibilityManager.isTouchExplorationEnabled()) {
        final int action = event.getAction();
        switch (action) {
            case MotionEvent.ACTION_HOVER_ENTER:
                event.setAction(MotionEvent.ACTION_DOWN);
                break;
            case MotionEvent.ACTION_HOVER_MOVE:
                event.setAction(MotionEvent.ACTION_MOVE);
                break;
            case MotionEvent.ACTION_HOVER_EXIT:
                event.setAction(MotionEvent.ACTION_UP);
                break;
        }
        onTouchEvent(event);
        event.setAction(action);
    }
    return super.onHoverEvent(event);
}
 
源代码2 项目: dynamic-support   文件: DynamicTooltip.java
@Override
public boolean onHover(View v, MotionEvent event) {
    if (mPopup != null && mFromTouch) {
        return false;
    }

    AccessibilityManager manager = (AccessibilityManager)
            mAnchor.getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
    if (manager != null && manager.isEnabled() && manager.isTouchExplorationEnabled()) {
        return false;
    }

    switch (event.getAction()) {
        case MotionEvent.ACTION_HOVER_MOVE:
            if (mAnchor.isEnabled() && mPopup == null && updateAnchorPos(event)) {
                setPendingHandler(this);
            }
            break;
        case MotionEvent.ACTION_HOVER_EXIT:
            clearAnchorPos();
            hide();
            break;
    }

    return false;
}
 
源代码3 项目: focus-android   文件: FloatingEraseButton.java
public void updateSessionsCount(int tabCount) {
    final CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) getLayoutParams();
    final FloatingActionButtonBehavior behavior = (FloatingActionButtonBehavior) params.getBehavior();
    AccessibilityManager accessibilityManager = (AccessibilityManager) getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);

    keepHidden = tabCount != 1;

    if (behavior != null) {
        if (accessibilityManager != null && accessibilityManager.isTouchExplorationEnabled()) {
            // Always display erase button if Talk Back is enabled
            behavior.setEnabled(false);
        } else {
            behavior.setEnabled(!keepHidden);
        }
    }

    if (keepHidden) {
        setVisibility(View.GONE);
    }
}
 
源代码4 项目: Telegram   文件: NumberPicker.java
private void onScrollStateChange(int scrollState) {
    if (mScrollState == scrollState) {
        return;
    }
    mScrollState = scrollState;
    if (mOnScrollListener != null) {
        mOnScrollListener.onScrollStateChange(this, scrollState);
    }
    if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
        AccessibilityManager am = (AccessibilityManager) getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
        if (am.isTouchExplorationEnabled()) {
            String text = (mDisplayedValues == null) ? formatNumber(mValue) : mDisplayedValues[mValue - mMinValue];
            AccessibilityEvent event = AccessibilityEvent.obtain();
            event.setEventType(AccessibilityEvent.TYPE_ANNOUNCEMENT);
            event.getText().add(text);
            am.sendAccessibilityEvent(event);
        }
    }
}
 
源代码5 项目: GestureLock   文件: LockPatternView.java
@Override
public boolean onHoverEvent(MotionEvent event) {
    AccessibilityManager accessibilityManager =
                (AccessibilityManager) getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
    if (accessibilityManager.isTouchExplorationEnabled()) {
        final int action = event.getAction();
        switch (action) {
            case MotionEvent.ACTION_HOVER_ENTER:
                event.setAction(MotionEvent.ACTION_DOWN);
                break;
            case MotionEvent.ACTION_HOVER_MOVE:
                event.setAction(MotionEvent.ACTION_MOVE);
                break;
            case MotionEvent.ACTION_HOVER_EXIT:
                event.setAction(MotionEvent.ACTION_UP);
                break;
        }
        onTouchEvent(event);
        event.setAction(action);
    }
    return super.onHoverEvent(event);
}
 
源代码6 项目: Telegram-FOSS   文件: NumberPicker.java
private void onScrollStateChange(int scrollState) {
    if (mScrollState == scrollState) {
        return;
    }
    mScrollState = scrollState;
    if (mOnScrollListener != null) {
        mOnScrollListener.onScrollStateChange(this, scrollState);
    }
    if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
        AccessibilityManager am = (AccessibilityManager) getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
        if (am.isTouchExplorationEnabled()) {
            String text = (mDisplayedValues == null) ? formatNumber(mValue) : mDisplayedValues[mValue - mMinValue];
            AccessibilityEvent event = AccessibilityEvent.obtain();
            event.setEventType(AccessibilityEvent.TYPE_ANNOUNCEMENT);
            event.getText().add(text);
            am.sendAccessibilityEvent(event);
        }
    }
}
 
public AccessibilityInfoModule(ReactApplicationContext context) {
    super(context);
    Context appContext = context.getApplicationContext();
    mAccessibilityManager = (AccessibilityManager) appContext.getSystemService(Context.ACCESSIBILITY_SERVICE);
    mEnabled = mAccessibilityManager.isTouchExplorationEnabled();
    if (Build.VERSION.SDK_INT >= 19) {
        mTouchExplorationStateChangeListener = new ReactTouchExplorationStateChangeListener();
    }
}
 
源代码8 项目: litho   文件: AccessibilityUtils.java
public static boolean isRunningApplicableAccessibilityService(AccessibilityManager manager) {
  if (manager == null || !manager.isEnabled()) {
    return false;
  }

  return manager.isTouchExplorationEnabled()
      || enabledServiceCanFocusAndRetrieveWindowContent(manager);
}
 
源代码9 项目: delion   文件: DeviceClassManager.java
public static boolean isAccessibilityModeEnabled(Context context) {
    TraceEvent.begin("DeviceClassManager::isAccessibilityModeEnabled");
    AccessibilityManager manager = (AccessibilityManager)
            context.getSystemService(Context.ACCESSIBILITY_SERVICE);
    boolean enabled = manager != null && manager.isEnabled()
            && manager.isTouchExplorationEnabled();
    TraceEvent.end("DeviceClassManager::isAccessibilityModeEnabled");
    return enabled;
}
 
源代码10 项目: delion   文件: AccessibilityUtil.java
/**
 * Checks to see that this device has accessibility and touch exploration enabled.
 * @param context A {@link Context} instance.
 * @return        Whether or not accessibility and touch exploration are enabled.
 */
@CalledByNative
public static boolean isAccessibilityEnabled(Context context) {
    AccessibilityManager manager = (AccessibilityManager)
            context.getSystemService(Context.ACCESSIBILITY_SERVICE);
    return manager != null && manager.isEnabled() && manager.isTouchExplorationEnabled();
}
 
源代码11 项目: LB-Launcher   文件: LauncherClings.java
/** Returns whether the clings are enabled or should be shown */
private boolean areClingsEnabled() {
    if (DISABLE_CLINGS) {
        return false;
    }

    // disable clings when running in a test harness
    if(ActivityManager.isRunningInTestHarness()) return false;

    // Disable clings for accessibility when explore by touch is enabled
    final AccessibilityManager a11yManager = (AccessibilityManager) mLauncher.getSystemService(
            Launcher.ACCESSIBILITY_SERVICE);
    if (a11yManager.isTouchExplorationEnabled()) {
        return false;
    }

    // Restricted secondary users (child mode) will potentially have very few apps
    // seeded when they start up for the first time. Clings won't work well with that
    boolean supportsLimitedUsers =
            android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR2;
    Account[] accounts = AccountManager.get(mLauncher).getAccounts();
    if (supportsLimitedUsers && accounts.length == 0) {
        UserManager um = (UserManager) mLauncher.getSystemService(Context.USER_SERVICE);
        Bundle restrictions = um.getUserRestrictions();
        if (restrictions.getBoolean(UserManager.DISALLOW_MODIFY_ACCOUNTS, false)) {
            return false;
        }
    }
    if (Settings.Secure.getInt(mLauncher.getContentResolver(), SKIP_FIRST_USE_HINTS, 0)
            == 1) {
        return false;
    }
    return true;
}
 
源代码12 项目: Telegram   文件: CallSwipeView.java
@Override
public boolean onTouchEvent(MotionEvent ev) {
	AccessibilityManager am = (AccessibilityManager) getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
	if (!isEnabled() || am.isTouchExplorationEnabled()) {
		return super.onTouchEvent(ev);
	}
	if (ev.getAction() == MotionEvent.ACTION_DOWN) {
		if ((!dragFromRight && ev.getX() < getDraggedViewWidth()) || (dragFromRight && ev.getX() > getWidth() - getDraggedViewWidth())) {
			dragging = true;
			dragStartX = ev.getX();
			getParent().requestDisallowInterceptTouchEvent(true);
			listener.onDragStart();
			stopAnimatingArrows();
		}
	} else if (ev.getAction() == MotionEvent.ACTION_MOVE) {
		viewToDrag.setTranslationX(Math.max(dragFromRight ? -(getWidth() - getDraggedViewWidth()) : 0, Math.min(ev.getX() - dragStartX, dragFromRight ? 0 : (getWidth() - getDraggedViewWidth()))));
		invalidate();
	} else if (ev.getAction() == MotionEvent.ACTION_UP || ev.getAction() == MotionEvent.ACTION_CANCEL) {
		if (Math.abs(viewToDrag.getTranslationX()) >= getWidth() - getDraggedViewWidth() && ev.getAction() == MotionEvent.ACTION_UP) {
			listener.onDragComplete();
		} else {
			listener.onDragCancel();
			viewToDrag.animate().translationX(0).setDuration(200).start();
			invalidate();
			startAnimatingArrows();
			dragging = false;
		}
	}
	return dragging;
}
 
源代码13 项目: Trebuchet   文件: Workspace.java
@Override
protected OnClickListener getPageIndicatorClickListener() {
    AccessibilityManager am = (AccessibilityManager)
            getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
    if (!am.isTouchExplorationEnabled()) {
        return null;
    }
    OnClickListener listener = new OnClickListener() {
        @Override
        public void onClick(View arg0) {
            mLauncher.showOverviewMode(true);
        }
    };
    return listener;
}
 
源代码14 项目: Telegram-FOSS   文件: CallSwipeView.java
@Override
public boolean onTouchEvent(MotionEvent ev) {
	AccessibilityManager am = (AccessibilityManager) getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
	if (!isEnabled() || am.isTouchExplorationEnabled()) {
		return super.onTouchEvent(ev);
	}
	if (ev.getAction() == MotionEvent.ACTION_DOWN) {
		if ((!dragFromRight && ev.getX() < getDraggedViewWidth()) || (dragFromRight && ev.getX() > getWidth() - getDraggedViewWidth())) {
			dragging = true;
			dragStartX = ev.getX();
			getParent().requestDisallowInterceptTouchEvent(true);
			listener.onDragStart();
			stopAnimatingArrows();
		}
	} else if (ev.getAction() == MotionEvent.ACTION_MOVE) {
		viewToDrag.setTranslationX(Math.max(dragFromRight ? -(getWidth() - getDraggedViewWidth()) : 0, Math.min(ev.getX() - dragStartX, dragFromRight ? 0 : (getWidth() - getDraggedViewWidth()))));
		invalidate();
	} else if (ev.getAction() == MotionEvent.ACTION_UP || ev.getAction() == MotionEvent.ACTION_CANCEL) {
		if (Math.abs(viewToDrag.getTranslationX()) >= getWidth() - getDraggedViewWidth() && ev.getAction() == MotionEvent.ACTION_UP) {
			listener.onDragComplete();
		} else {
			listener.onDragCancel();
			viewToDrag.animate().translationX(0).setDuration(200).start();
			invalidate();
			startAnimatingArrows();
			dragging = false;
		}
	}
	return dragging;
}
 
源代码15 项目: TurboLauncher   文件: Workspace.java
@Override
protected OnClickListener getPageIndicatorClickListener() {
    AccessibilityManager am = (AccessibilityManager)
            getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
    if (!am.isTouchExplorationEnabled()) {
        return null;
    }
    OnClickListener listener = new OnClickListener() {
        @Override
        public void onClick(View arg0) {
            enterOverviewMode();
        }
    };
    return listener;
}
 
源代码16 项目: Conquer   文件: Utils.java
public static boolean isTouchExplorationEnabled(AccessibilityManager accessibilityManager) {
    if (Build.VERSION.SDK_INT >= 14) {
        return accessibilityManager.isTouchExplorationEnabled();
    } else {
        return false;
    }
}
 
源代码17 项目: 365browser   文件: AccessibilityUtil.java
/**
 * Checks to see that this device has accessibility and touch exploration enabled.
 * @return        Whether or not accessibility and touch exploration are enabled.
 */
public static boolean isAccessibilityEnabled() {
    TraceEvent.begin("AccessibilityManager::isAccessibilityEnabled");
    AccessibilityManager manager =
            (AccessibilityManager) ContextUtils.getApplicationContext().getSystemService(
                    Context.ACCESSIBILITY_SERVICE);
    boolean retVal =
            manager != null && manager.isEnabled() && manager.isTouchExplorationEnabled();
    TraceEvent.end("AccessibilityManager::isAccessibilityEnabled");
    return retVal;
}
 
源代码18 项目: LaunchEnr   文件: DragLayer.java
@Override
public boolean onInterceptHoverEvent(MotionEvent ev) {
    if (mLauncher == null || mLauncher.getWorkspace() == null) {
        return false;
    }
    Folder currentFolder = Folder.getOpen(mLauncher);
    if (currentFolder == null) {
        return false;
    } else {
            AccessibilityManager accessibilityManager = (AccessibilityManager)
                    getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
        if (accessibilityManager.isTouchExplorationEnabled()) {
            final int action = ev.getAction();
            boolean isOverFolderOrSearchBar;
            switch (action) {
                case MotionEvent.ACTION_HOVER_ENTER:
                    isOverFolderOrSearchBar = isEventOverFolder(currentFolder, ev) ||
                        (isInAccessibleDrag() && isEventOverDropTargetBar(ev));
                    if (!isOverFolderOrSearchBar) {
                        sendTapOutsideFolderAccessibilityEvent(currentFolder.isEditingName());
                        mHoverPointClosesFolder = true;
                        return true;
                    }
                    mHoverPointClosesFolder = false;
                    break;
                case MotionEvent.ACTION_HOVER_MOVE:
                    isOverFolderOrSearchBar = isEventOverFolder(currentFolder, ev) ||
                        (isInAccessibleDrag() && isEventOverDropTargetBar(ev));
                    if (!isOverFolderOrSearchBar && !mHoverPointClosesFolder) {
                        sendTapOutsideFolderAccessibilityEvent(currentFolder.isEditingName());
                        mHoverPointClosesFolder = true;
                        return true;
                    } else if (!isOverFolderOrSearchBar) {
                        return true;
                    }
                    mHoverPointClosesFolder = false;
            }
        }
    }
    return false;
}
 
源代码19 项目: guideshow   文件: AccessibilityManagerCompatIcs.java
public static boolean isTouchExplorationEnabled(AccessibilityManager manager) {
    return manager.isTouchExplorationEnabled();
}
 
源代码20 项目: talkback   文件: AccessibilityTutorialActivity.java
@Override
public void onStart() {
  super.onStart();
  activeTutorial = this;

  /*
   * Handle the cases where the tutorial was started with TalkBack in an
   * invalid state (inactive, suspended, or without Explore by Touch
   * enabled).
   */
  final int serviceState = TalkBackService.getServiceState();
  final AccessibilityManager accessibilityManager =
      (AccessibilityManager) getSystemService(ACCESSIBILITY_SERVICE);
  /*
   * Check for suspended state first because touch exploration reports it
   * is disabled when TalkBack is suspended.
   */
  if (serviceState == ServiceStateListener.SERVICE_STATE_SUSPENDED) {
    showAlertDialogAndFinish(
        R.string.tutorial_service_suspended_title, R.string.tutorial_service_suspended_message);
    return;
  } else if ((serviceState == ServiceStateListener.SERVICE_STATE_INACTIVE)) {
    showAlertDialogAndFinish(
        R.string.tutorial_service_inactive_title, R.string.tutorial_service_inactive_message);
    return;
  } else if (!accessibilityManager.isTouchExplorationEnabled()) {
    showAlertDialogAndFinish(
        R.string.tutorial_no_touch_explore_title, R.string.tutorial_no_touch_explore_message);
    return;
  }

  TalkBackService service = TalkBackService.getInstance();
  if (service != null) {
    service.setMenuManagerToList();
  }

  SharedPreferences preferences =
      SharedPreferencesUtils.getSharedPreferences(getApplicationContext());

  if (preferences.getBoolean(TalkBackService.PREF_FIRST_TIME_USER, true)) {
    final SharedPreferences.Editor editor = preferences.edit();
    editor.putBoolean(TalkBackService.PREF_FIRST_TIME_USER, false);
    editor.apply();
    onFirstTimeLaunch();
  }
}