diff --git a/services/backup/java/com/android/server/backup/TransportManager.java b/services/backup/java/com/android/server/backup/TransportManager.java index 09456b68e1c0f..30fd25a924845 100644 --- a/services/backup/java/com/android/server/backup/TransportManager.java +++ b/services/backup/java/com/android/server/backup/TransportManager.java @@ -29,14 +29,12 @@ import android.content.pm.ResolveInfo; import android.os.RemoteException; import android.os.UserHandle; import android.util.ArrayMap; -import android.util.EventLog; import android.util.Slog; import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.backup.IBackupTransport; import com.android.internal.util.Preconditions; -import com.android.server.EventLogTags; import com.android.server.backup.transport.OnTransportRegisteredListener; import com.android.server.backup.transport.TransportClient; import com.android.server.backup.transport.TransportClientManager; @@ -574,8 +572,6 @@ public class TransportManager { return BackupManager.ERROR_TRANSPORT_UNAVAILABLE; } - EventLog.writeEvent(EventLogTags.BACKUP_TRANSPORT_LIFECYCLE, transportString, 1); - int result; try { String transportName = transport.name(); @@ -587,7 +583,6 @@ public class TransportManager { result = BackupManager.SUCCESS; } catch (RemoteException e) { Slog.e(TAG, "Transport " + transportString + " died while registering"); - EventLog.writeEvent(EventLogTags.BACKUP_TRANSPORT_LIFECYCLE, transportString, 0); result = BackupManager.ERROR_TRANSPORT_UNAVAILABLE; } diff --git a/services/backup/java/com/android/server/backup/transport/TransportClient.java b/services/backup/java/com/android/server/backup/transport/TransportClient.java index bd4a0bb570728..399f338d26b23 100644 --- a/services/backup/java/com/android/server/backup/transport/TransportClient.java +++ b/services/backup/java/com/android/server/backup/transport/TransportClient.java @@ -29,12 +29,14 @@ import android.os.IBinder; import android.os.Looper; import android.os.UserHandle; import android.util.ArrayMap; +import android.util.EventLog; import android.util.Log; import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.backup.IBackupTransport; import com.android.internal.util.Preconditions; +import com.android.server.EventLogTags; import com.android.server.backup.TransportManager; import java.lang.annotation.Retention; @@ -419,10 +421,45 @@ public class TransportClient { @GuardedBy("mStateLock") private void setStateLocked(@State int state, @Nullable IBackupTransport transport) { log(Log.VERBOSE, "State: " + stateToString(mState) + " => " + stateToString(state)); + onStateTransition(mState, state); mState = state; mTransport = transport; } + private void onStateTransition(int oldState, int newState) { + String transport = mTransportComponent.flattenToShortString(); + int bound = transitionThroughState(oldState, newState, State.BOUND_AND_CONNECTING); + int connected = transitionThroughState(oldState, newState, State.CONNECTED); + if (bound != Transition.NO_TRANSITION) { + int value = (bound == Transition.UP) ? 1 : 0; // 1 is bound, 0 is not bound + EventLog.writeEvent(EventLogTags.BACKUP_TRANSPORT_LIFECYCLE, transport, value); + } + if (connected != Transition.NO_TRANSITION) { + int value = (connected == Transition.UP) ? 1 : 0; // 1 is connected, 0 is not connected + EventLog.writeEvent(EventLogTags.BACKUP_TRANSPORT_CONNECTION, transport, value); + } + } + + /** + * Returns: + * + *