Merge "Use volatile keyword instead of lock" into tm-dev
This commit is contained in:
@@ -50,7 +50,7 @@ public class AccessibilityTraceManager implements AccessibilityTrace {
|
|||||||
private final AccessibilityManagerService mService;
|
private final AccessibilityManagerService mService;
|
||||||
private final Object mA11yMSLock;
|
private final Object mA11yMSLock;
|
||||||
|
|
||||||
private long mEnabledLoggingFlags;
|
private volatile long mEnabledLoggingFlags;
|
||||||
|
|
||||||
private static AccessibilityTraceManager sInstance = null;
|
private static AccessibilityTraceManager sInstance = null;
|
||||||
|
|
||||||
@@ -77,34 +77,28 @@ public class AccessibilityTraceManager implements AccessibilityTrace {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isA11yTracingEnabled() {
|
public boolean isA11yTracingEnabled() {
|
||||||
synchronized (mA11yMSLock) {
|
return mEnabledLoggingFlags != FLAGS_LOGGING_NONE;
|
||||||
return mEnabledLoggingFlags != FLAGS_LOGGING_NONE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isA11yTracingEnabledForTypes(long typeIdFlags) {
|
public boolean isA11yTracingEnabledForTypes(long typeIdFlags) {
|
||||||
synchronized (mA11yMSLock) {
|
return ((typeIdFlags & mEnabledLoggingFlags) != FLAGS_LOGGING_NONE);
|
||||||
return ((typeIdFlags & mEnabledLoggingFlags) != FLAGS_LOGGING_NONE);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getTraceStateForAccessibilityManagerClientState() {
|
public int getTraceStateForAccessibilityManagerClientState() {
|
||||||
int state = 0x0;
|
int state = 0x0;
|
||||||
synchronized (mA11yMSLock) {
|
if (isA11yTracingEnabledForTypes(FLAGS_ACCESSIBILITY_INTERACTION_CONNECTION)) {
|
||||||
if (isA11yTracingEnabledForTypes(FLAGS_ACCESSIBILITY_INTERACTION_CONNECTION)) {
|
state |= STATE_FLAG_TRACE_A11Y_INTERACTION_CONNECTION_ENABLED;
|
||||||
state |= STATE_FLAG_TRACE_A11Y_INTERACTION_CONNECTION_ENABLED;
|
}
|
||||||
}
|
if (isA11yTracingEnabledForTypes(FLAGS_ACCESSIBILITY_INTERACTION_CONNECTION_CALLBACK)) {
|
||||||
if (isA11yTracingEnabledForTypes(FLAGS_ACCESSIBILITY_INTERACTION_CONNECTION_CALLBACK)) {
|
state |= STATE_FLAG_TRACE_A11Y_INTERACTION_CONNECTION_CB_ENABLED;
|
||||||
state |= STATE_FLAG_TRACE_A11Y_INTERACTION_CONNECTION_CB_ENABLED;
|
}
|
||||||
}
|
if (isA11yTracingEnabledForTypes(FLAGS_ACCESSIBILITY_INTERACTION_CLIENT)) {
|
||||||
if (isA11yTracingEnabledForTypes(FLAGS_ACCESSIBILITY_INTERACTION_CLIENT)) {
|
state |= STATE_FLAG_TRACE_A11Y_INTERACTION_CLIENT_ENABLED;
|
||||||
state |= STATE_FLAG_TRACE_A11Y_INTERACTION_CLIENT_ENABLED;
|
}
|
||||||
}
|
if (isA11yTracingEnabledForTypes(FLAGS_ACCESSIBILITY_SERVICE)) {
|
||||||
if (isA11yTracingEnabledForTypes(FLAGS_ACCESSIBILITY_SERVICE)) {
|
state |= STATE_FLAG_TRACE_A11Y_SERVICE_ENABLED;
|
||||||
state |= STATE_FLAG_TRACE_A11Y_SERVICE_ENABLED;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
@@ -116,11 +110,11 @@ public class AccessibilityTraceManager implements AccessibilityTrace {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
synchronized (mA11yMSLock) {
|
long oldEnabled = mEnabledLoggingFlags;
|
||||||
long oldEnabled = mEnabledLoggingFlags;
|
mEnabledLoggingFlags = loggingTypes;
|
||||||
mEnabledLoggingFlags = loggingTypes;
|
|
||||||
|
|
||||||
if (needToNotifyClients(oldEnabled)) {
|
if (needToNotifyClients(oldEnabled)) {
|
||||||
|
synchronized (mA11yMSLock) {
|
||||||
mService.scheduleUpdateClientsIfNeededLocked(mService.getCurrentUserState());
|
mService.scheduleUpdateClientsIfNeededLocked(mService.getCurrentUserState());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -130,14 +124,14 @@ public class AccessibilityTraceManager implements AccessibilityTrace {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void stopTrace() {
|
public void stopTrace() {
|
||||||
boolean stop = false;
|
boolean stop;
|
||||||
synchronized (mA11yMSLock) {
|
stop = isA11yTracingEnabled();
|
||||||
stop = isA11yTracingEnabled();
|
|
||||||
|
|
||||||
long oldEnabled = mEnabledLoggingFlags;
|
long oldEnabled = mEnabledLoggingFlags;
|
||||||
mEnabledLoggingFlags = FLAGS_LOGGING_NONE;
|
mEnabledLoggingFlags = FLAGS_LOGGING_NONE;
|
||||||
|
|
||||||
if (needToNotifyClients(oldEnabled)) {
|
if (needToNotifyClients(oldEnabled)) {
|
||||||
|
synchronized (mA11yMSLock) {
|
||||||
mService.scheduleUpdateClientsIfNeededLocked(mService.getCurrentUserState());
|
mService.scheduleUpdateClientsIfNeededLocked(mService.getCurrentUserState());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user