本文整理汇总了Java中android.view.accessibility.AccessibilityWindowInfo.TYPE_SYSTEM属性的典型用法代码示例。如果您正苦于以下问题:Java AccessibilityWindowInfo.TYPE_SYSTEM属性的具体用法?Java AccessibilityWindowInfo.TYPE_SYSTEM怎么用?Java AccessibilityWindowInfo.TYPE_SYSTEM使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类android.view.accessibility.AccessibilityWindowInfo
的用法示例。
在下文中一共展示了AccessibilityWindowInfo.TYPE_SYSTEM属性的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: isSystemWindow
private boolean isSystemWindow(int windowId) {
if (mSystemWindowIdsSet.contains(windowId)) {
return true;
}
if (!mIsSplitScreenModeAvailable) {
return false;
}
for (AccessibilityWindowInfo window : mService.getWindows()) {
if (window.getId() == windowId &&
window.getType() == AccessibilityWindowInfo.TYPE_SYSTEM) {
return true;
}
}
return false;
}
示例2: isStatusBar
public boolean isStatusBar(int windowId) {
if (mWindows == null || mWindows.size() == 0) {
return false;
}
return mWindows.get(0).getId() == windowId &&
mWindows.get(0).getType() == AccessibilityWindowInfo.TYPE_SYSTEM;
}
示例3: isNavigationBar
public boolean isNavigationBar(int windowId) {
if (mWindows == null || mWindows.size() < 2) {
return false;
}
int lastIndex = mWindows.size() - 1;
return mWindows.get(lastIndex).getId() == windowId &&
mWindows.get(lastIndex).getType() == AccessibilityWindowInfo.TYPE_SYSTEM;
}
示例4: removeSystemButtonsWindowFromWindowList
private void removeSystemButtonsWindowFromWindowList(List<SwitchAccessWindowInfo> windowList) {
final WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
final Display display = wm.getDefaultDisplay();
final Point screenSize = new Point();
display.getSize(screenSize);
final Iterator<SwitchAccessWindowInfo> windowIterator = windowList.iterator();
while (windowIterator.hasNext()) {
SwitchAccessWindowInfo window = windowIterator.next();
/* Keep all non-system buttons */
if (window.getType() != AccessibilityWindowInfo.TYPE_SYSTEM) {
continue;
}
final Rect windowBounds = new Rect();
window.getBoundsInScreen(windowBounds);
/* Keep system dialogs (app has crashed), which don't border any edge */
if ((windowBounds.top > 0) && (windowBounds.bottom < screenSize.y)
&& (windowBounds.left > 0) && (windowBounds.right < screenSize.x)) {
continue;
}
/* Keep notifications, which start at the top and cover more than half the width */
if ((windowBounds.top <= 0) && (windowBounds.width() > screenSize.x / 2)) {
continue;
}
/* Keep large system overlays like the context menu */
final int windowArea = windowBounds.width() * windowBounds.height();
final int screenArea = screenSize.x * screenSize.y;
if (windowArea > (screenArea / 2)) {
continue;
}
windowIterator.remove();
}
}
示例5: matchWindowType
private boolean matchWindowType(AccessibilityWindowInfo window, int windowTypeFilter) {
int windowType = window.getType();
if ((windowTypeFilter & WINDOW_TYPE_SYSTEM) != 0 &&
windowType == AccessibilityWindowInfo.TYPE_SYSTEM) {
return true;
} else if ((windowTypeFilter & WINDOW_TYPE_APPLICATION) != 0 &&
windowType == AccessibilityWindowInfo.TYPE_APPLICATION) {
return true;
} else if ((windowTypeFilter & WINDOW_TYPE_SPLIT_SCREEN_DIVIDER) != 0 &&
windowType == AccessibilityWindowInfo.TYPE_SPLIT_SCREEN_DIVIDER) {
return true;
} else {
return false;
}
}
示例6: onAccessibilityEvent
/**
* Resets cached scrollable state when touch exploration after window state
* changes.
*/
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
switch (event.getEventType()) {
case AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED:
// Reset cached scrollable state.
mLastNodeWasScrollable = false;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// Store window title in the map.
List<CharSequence> titles = event.getText();
if (titles.size() > 0) {
AccessibilityNodeInfo node = event.getSource();
if (node != null) {
int windowType = getWindowType(node);
if (windowType == AccessibilityWindowInfo.TYPE_APPLICATION ||
windowType == AccessibilityWindowInfo.TYPE_SYSTEM) {
mWindowTitlesMap.put(node.getWindowId(), titles.get(0));
}
node.recycle();
}
}
}
break;
case AccessibilityEvent.TYPE_WINDOWS_CHANGED:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// Copy key set not to modify original map.
HashSet<Integer> windowIdsToBeRemoved = new HashSet<Integer>();
windowIdsToBeRemoved.addAll(mWindowTitlesMap.keySet());
// Enumerate window ids to be removed.
List<AccessibilityWindowInfo> windows = mService.getWindows();
for (AccessibilityWindowInfo window : windows) {
windowIdsToBeRemoved.remove(window.getId());
}
// Delete titles of non-existing window ids.
for (Integer windowId : windowIdsToBeRemoved) {
mWindowTitlesMap.remove(windowId);
}
}
break;
}
}