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

Commit aa15e1cc authored by Sergey Nikolaienkov's avatar Sergey Nikolaienkov
Browse files

[8/8] Use PresenceController and AppController in CdmService

Use CompanionDevicePresenceMonitor and CompanionApplicationController in
CompanionDeviceManagerService.

Remove CompanionDevicePresenceController.

Bug: 211398735
Test: atest CtsCompanionDeviceManagerCoreTestCases
Test: atest CtsCompanionDeviceManagerUiAutomationTestCases
Test: atest CtsOsTestCases:CompanionDeviceManagerTest
Change-Id: I542c6d8157b51fc9c0a2e55055792b6951f292d9
parent 22fba15a
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -207,6 +207,18 @@ public final class AssociationInfo implements Parcelable {
        return macAddress.equals(mDeviceMacAddress);
    }

    /**
     * Utility method to be used by CdmService only.
     *
     * @return whether CdmService should bind the companion application that "owns" this association
     *         when the device is present.
     *
     * @hide
     */
    public boolean shouldBindWhenPresent() {
        return mNotifyOnDeviceNearby || mSelfManaged;
    }

    /** @hide */
    public @NonNull String toShortString() {
        final StringBuilder sb = new StringBuilder();
+9 −8
Original line number Diff line number Diff line
@@ -16,7 +16,9 @@

package com.android.server.companion;

import static com.android.server.companion.CompanionDeviceManagerService.LOG_TAG;
import static com.android.server.companion.CompanionDeviceManagerService.TAG;

import static java.util.concurrent.TimeUnit.DAYS;

import android.app.job.JobInfo;
import android.app.job.JobParameters;
@@ -37,17 +39,16 @@ import com.android.server.LocalServices;
 */
public class AssociationCleanUpService extends JobService {
    private static final int JOB_ID = AssociationCleanUpService.class.hashCode();
    private static final long ONE_DAY_INTERVAL = 3 * 24 * 60 * 60 * 1000; // 1 Day
    private CompanionDeviceManagerServiceInternal mCdmServiceInternal = LocalServices.getService(
            CompanionDeviceManagerServiceInternal.class);
    private static final long ONE_DAY_INTERVAL = DAYS.toMillis(1);

    @Override
    public boolean onStartJob(final JobParameters params) {
        Slog.i(LOG_TAG, "Execute the Association CleanUp job");
        Slog.i(TAG, "Execute the Association CleanUp job");
        // Special policy for APP_STREAMING role that need to revoke associations if the device
        // does not connect for 3 months.
        AsyncTask.execute(() -> {
            mCdmServiceInternal.associationCleanUp(AssociationRequest.DEVICE_PROFILE_APP_STREAMING);
            LocalServices.getService(CompanionDeviceManagerServiceInternal.class)
                    .associationCleanUp(AssociationRequest.DEVICE_PROFILE_APP_STREAMING);
            jobFinished(params, false);
        });
        return true;
@@ -55,7 +56,7 @@ public class AssociationCleanUpService extends JobService {

    @Override
    public boolean onStopJob(final JobParameters params) {
        Slog.i(LOG_TAG, "Association cleanup job stopped; id=" + params.getJobId()
        Slog.i(TAG, "Association cleanup job stopped; id=" + params.getJobId()
                + ", reason="
                + JobParameters.getInternalReasonCodeDescription(
                params.getInternalStopReasonCode()));
@@ -63,7 +64,7 @@ public class AssociationCleanUpService extends JobService {
    }

    static void schedule(Context context) {
        Slog.i(LOG_TAG, "Scheduling the Association Cleanup job");
        Slog.i(TAG, "Scheduling the Association Cleanup job");
        final JobScheduler jobScheduler = context.getSystemService(JobScheduler.class);
        final JobInfo job = new JobInfo.Builder(JOB_ID,
                new ComponentName(context, AssociationCleanUpService.class))
Loading