Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6f99c0e7 authored by Yi Kong's avatar Yi Kong Committed by Automerger Merge Worker
Browse files

Merge "profcollectd: OTA Observer" am: 14a7d344 am: ebd04e98

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1466225

Change-Id: I2b7cda7d3d7fe133bb4af6585fb4afca3b0fbaa3
parents 5b03885d ebd04e98
Loading
Loading
Loading
Loading
+32 −0
Original line number Diff line number Diff line
@@ -29,6 +29,8 @@ import android.os.Looper;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.SystemProperties;
import android.os.UpdateEngine;
import android.os.UpdateEngineCallback;
import android.util.Log;

import com.android.server.IoThread;
@@ -198,6 +200,7 @@ public final class ProfcollectForwardingService extends SystemService {
    // Event observers
    private void registerObservers() {
        registerAppLaunchObserver();
        registerOTAObserver();
    }

    private final AppLaunchObserver mAppLaunchObserver = new AppLaunchObserver();
@@ -261,4 +264,33 @@ public final class ProfcollectForwardingService extends SystemService {
            // Ignored
        }
    }

    private void registerOTAObserver() {
        UpdateEngine updateEngine = new UpdateEngine();
        updateEngine.bind(new UpdateEngineCallback() {
            @Override
            public void onStatusUpdate(int status, float percent) {
                if (status == UpdateEngine.UpdateStatusConstants.UPDATED_NEED_REBOOT) {
                    packProfileReport();
                }
            }

            @Override
            public void onPayloadApplicationComplete(int errorCode) {
                // Ignored
            }
        });
    }

    private void packProfileReport() {
        if (mIProfcollect == null) {
            return;
        }

        try {
            mIProfcollect.CreateProfileReport();
        } catch (RemoteException e) {
            Log.e(LOG_TAG, e.getMessage());
        }
    }
}