diff options
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/app/AppCompatCallbacks.java | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/core/java/android/app/AppCompatCallbacks.java b/core/java/android/app/AppCompatCallbacks.java index 17697dba9ccd..08c97eb284e3 100644 --- a/core/java/android/app/AppCompatCallbacks.java +++ b/core/java/android/app/AppCompatCallbacks.java @@ -19,6 +19,9 @@ package android.app; import android.compat.Compatibility; import android.os.Process; import android.util.Log; +import android.util.StatsLog; + +import com.android.internal.compat.ChangeReporter; import java.util.Arrays; @@ -28,10 +31,10 @@ import java.util.Arrays; * @hide */ public final class AppCompatCallbacks extends Compatibility.Callbacks { - private static final String TAG = "Compatibility"; private final long[] mDisabledChanges; + private final ChangeReporter mChangeReporter; /** * Install this class into the current process. @@ -45,20 +48,29 @@ public final class AppCompatCallbacks extends Compatibility.Callbacks { private AppCompatCallbacks(long[] disabledChanges) { mDisabledChanges = Arrays.copyOf(disabledChanges, disabledChanges.length); Arrays.sort(mDisabledChanges); + mChangeReporter = new ChangeReporter(); } protected void reportChange(long changeId) { - Log.d(TAG, "Compat change reported: " + changeId + "; UID " + Process.myUid()); - // TODO log via StatsLog + reportChange(changeId, StatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__STATE__LOGGED); } protected boolean isChangeEnabled(long changeId) { if (Arrays.binarySearch(mDisabledChanges, changeId) < 0) { // Not present in the disabled array - reportChange(changeId); + reportChange(changeId, StatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__STATE__ENABLED); return true; } + reportChange(changeId, StatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__STATE__DISABLED); return false; } + private void reportChange(long changeId, int state) { + int uid = Process.myUid(); + //TODO(b/138374585): Implement rate limiting for the logs. + Log.d(TAG, ChangeReporter.createLogString(uid, changeId, state)); + mChangeReporter.reportChange(uid, changeId, + state, /* source */StatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__SOURCE__APP_PROCESS); + } + } |
