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

Commit 83ebf36a authored by Joanne Chung's avatar Joanne Chung Committed by Automerger Merge Worker
Browse files

Merge "Handle SyncResultReceiver.TimeoutException" into rvc-dev am: 9856804e...

Merge "Handle SyncResultReceiver.TimeoutException" into rvc-dev am: 9856804e am: 4a235e4b am: d853673b am: 1d930502

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

Change-Id: I5fc69b553035d1de9932776ee98f5ecc999723b0
parents 3f10ea63 1d930502
Loading
Loading
Loading
Loading
+8 −7
Original line number Original line Diff line number Diff line
@@ -95,7 +95,7 @@ public final class ContentSuggestionsManager {
        try {
        try {
            mService.provideContextBitmap(mUser, bitmap, imageContextRequestExtras);
            mService.provideContextBitmap(mUser, bitmap, imageContextRequestExtras);
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
        }
        }
    }
    }


@@ -117,7 +117,7 @@ public final class ContentSuggestionsManager {
        try {
        try {
            mService.provideContextImage(mUser, taskId, imageContextRequestExtras);
            mService.provideContextImage(mUser, taskId, imageContextRequestExtras);
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
        }
        }
    }
    }


@@ -146,7 +146,7 @@ public final class ContentSuggestionsManager {
            mService.suggestContentSelections(
            mService.suggestContentSelections(
                    mUser, request, new SelectionsCallbackWrapper(callback, callbackExecutor));
                    mUser, request, new SelectionsCallbackWrapper(callback, callbackExecutor));
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
        }
        }
    }
    }


@@ -173,7 +173,7 @@ public final class ContentSuggestionsManager {
            mService.classifyContentSelections(
            mService.classifyContentSelections(
                    mUser, request, new ClassificationsCallbackWrapper(callback, callbackExecutor));
                    mUser, request, new ClassificationsCallbackWrapper(callback, callbackExecutor));
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
        }
        }
    }
    }


@@ -193,7 +193,7 @@ public final class ContentSuggestionsManager {
        try {
        try {
            mService.notifyInteraction(mUser, requestId, interaction);
            mService.notifyInteraction(mUser, requestId, interaction);
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
        }
        }
    }
    }


@@ -213,9 +213,10 @@ public final class ContentSuggestionsManager {
            mService.isEnabled(mUser, receiver);
            mService.isEnabled(mUser, receiver);
            return receiver.getIntResult() != 0;
            return receiver.getIntResult() != 0;
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
        } catch (SyncResultReceiver.TimeoutException e) {
            throw new RuntimeException("Fail to get the enable status.");
        }
        }
        return false;
    }
    }


    /**
    /**
+35 −16
Original line number Original line Diff line number Diff line
@@ -751,6 +751,8 @@ public final class AutofillManager {
                        }
                        }
                    } catch (RemoteException e) {
                    } catch (RemoteException e) {
                        Log.e(TAG, "Could not figure out if there was an autofill session", e);
                        Log.e(TAG, "Could not figure out if there was an autofill session", e);
                    } catch (SyncResultReceiver.TimeoutException e) {
                        Log.e(TAG, "Fail to get session restore status: " + e);
                    }
                    }
                }
                }
            }
            }
@@ -864,7 +866,9 @@ public final class AutofillManager {
            mService.getFillEventHistory(receiver);
            mService.getFillEventHistory(receiver);
            return receiver.getParcelableResult();
            return receiver.getParcelableResult();
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
        } catch (SyncResultReceiver.TimeoutException e) {
            Log.e(TAG, "Fail to get fill event history: " + e);
            return null;
            return null;
        }
        }
    }
    }
@@ -1477,10 +1481,13 @@ public final class AutofillManager {


        final SyncResultReceiver receiver = new SyncResultReceiver(SYNC_CALLS_TIMEOUT_MS);
        final SyncResultReceiver receiver = new SyncResultReceiver(SYNC_CALLS_TIMEOUT_MS);
        try {
        try {
            mService.isServiceEnabled(mContext.getUserId(), mContext.getPackageName(), receiver);
            mService.isServiceEnabled(mContext.getUserId(), mContext.getPackageName(),
                    receiver);
            return receiver.getIntResult() == 1;
            return receiver.getIntResult() == 1;
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
        } catch (SyncResultReceiver.TimeoutException e) {
            throw new RuntimeException("Fail to get enabled autofill services status.");
        }
        }
    }
    }


@@ -1498,6 +1505,8 @@ public final class AutofillManager {
            return receiver.getParcelableResult();
            return receiver.getParcelableResult();
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
        } catch (SyncResultReceiver.TimeoutException e) {
            throw new RuntimeException("Fail to get autofill services component name.");
        }
        }
    }
    }


@@ -1522,8 +1531,9 @@ public final class AutofillManager {
            mService.getUserDataId(receiver);
            mService.getUserDataId(receiver);
            return receiver.getStringResult();
            return receiver.getStringResult();
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
            return null;
        } catch (SyncResultReceiver.TimeoutException e) {
            throw new RuntimeException("Fail to get user data id for field classification.");
        }
        }
    }
    }


@@ -1544,8 +1554,9 @@ public final class AutofillManager {
            mService.getUserData(receiver);
            mService.getUserData(receiver);
            return receiver.getParcelableResult();
            return receiver.getParcelableResult();
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
            return null;
        } catch (SyncResultReceiver.TimeoutException e) {
            throw new RuntimeException("Fail to get user data for field classification.");
        }
        }
    }
    }


@@ -1561,7 +1572,7 @@ public final class AutofillManager {
        try {
        try {
            mService.setUserData(userData);
            mService.setUserData(userData);
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
        }
        }
    }
    }


@@ -1583,8 +1594,9 @@ public final class AutofillManager {
            mService.isFieldClassificationEnabled(receiver);
            mService.isFieldClassificationEnabled(receiver);
            return receiver.getIntResult() == 1;
            return receiver.getIntResult() == 1;
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
            return false;
        } catch (SyncResultReceiver.TimeoutException e) {
            throw new RuntimeException("Fail to get field classification enabled status.");
        }
        }
    }
    }


@@ -1606,8 +1618,9 @@ public final class AutofillManager {
            mService.getDefaultFieldClassificationAlgorithm(receiver);
            mService.getDefaultFieldClassificationAlgorithm(receiver);
            return receiver.getStringResult();
            return receiver.getStringResult();
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
            return null;
        } catch (SyncResultReceiver.TimeoutException e) {
            throw new RuntimeException("Fail to get default field classification algorithm.");
        }
        }
    }
    }


@@ -1627,8 +1640,9 @@ public final class AutofillManager {
            final String[] algorithms = receiver.getStringArrayResult();
            final String[] algorithms = receiver.getStringArrayResult();
            return algorithms != null ? Arrays.asList(algorithms) : Collections.emptyList();
            return algorithms != null ? Arrays.asList(algorithms) : Collections.emptyList();
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
            return null;
        } catch (SyncResultReceiver.TimeoutException e) {
            throw new RuntimeException("Fail to get available field classification algorithms.");
        }
        }
    }
    }


@@ -1651,6 +1665,8 @@ public final class AutofillManager {
            return receiver.getIntResult() == 1;
            return receiver.getIntResult() == 1;
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
        } catch (SyncResultReceiver.TimeoutException e) {
            throw new RuntimeException("Fail to get autofill supported status.");
        }
        }
    }
    }


@@ -2040,13 +2056,16 @@ public final class AutofillManager {
        }
        }


        final SyncResultReceiver resultReceiver = new SyncResultReceiver(SYNC_CALLS_TIMEOUT_MS);
        final SyncResultReceiver resultReceiver = new SyncResultReceiver(SYNC_CALLS_TIMEOUT_MS);
        final int resultCode;
        int resultCode;
        try {
        try {
            mService.setAugmentedAutofillWhitelist(toList(packages), toList(activities),
            mService.setAugmentedAutofillWhitelist(toList(packages), toList(activities),
                    resultReceiver);
                    resultReceiver);
            resultCode = resultReceiver.getIntResult();
            resultCode = resultReceiver.getIntResult();
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
        } catch (SyncResultReceiver.TimeoutException e) {
            Log.e(TAG, "Fail to get the result of set AugmentedAutofill whitelist. " + e);
            return;
        }
        }
        switch (resultCode) {
        switch (resultCode) {
            case RESULT_OK:
            case RESULT_OK:
@@ -2283,7 +2302,7 @@ public final class AutofillManager {
                    // In theory, we could ignore this error since it's not a big deal, but
                    // In theory, we could ignore this error since it's not a big deal, but
                    // in reality, we rather crash the app anyways, as the failure could be
                    // in reality, we rather crash the app anyways, as the failure could be
                    // a consequence of something going wrong on the server side...
                    // a consequence of something going wrong on the server side...
                    e.rethrowFromSystemServer();
                    throw e.rethrowFromSystemServer();
                }
                }
            }
            }


@@ -2661,7 +2680,7 @@ public final class AutofillManager {
            try {
            try {
                mService.onPendingSaveUi(operation, token);
                mService.onPendingSaveUi(operation, token);
            } catch (RemoteException e) {
            } catch (RemoteException e) {
                e.rethrowFromSystemServer();
                Log.e(TAG, "Error in onPendingSaveUi: ", e);
            }
            }
        }
        }
    }
    }
+32 −15
Original line number Original line Diff line number Diff line
@@ -487,6 +487,8 @@ public final class ContentCaptureManager {
            return resultReceiver.getParcelableResult();
            return resultReceiver.getParcelableResult();
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
        } catch (SyncResultReceiver.TimeoutException e) {
            throw new RuntimeException("Fail to get service componentName.");
        }
        }
    }
    }


@@ -516,6 +518,9 @@ public final class ContentCaptureManager {
            return resultReceiver.getParcelableResult();
            return resultReceiver.getParcelableResult();
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
        } catch (SyncResultReceiver.TimeoutException e) {
            Log.e(TAG, "Fail to get service settings componentName: " + e);
            return null;
        }
        }
    }
    }


@@ -567,9 +572,13 @@ public final class ContentCaptureManager {
        final SyncResultReceiver resultReceiver = syncRun(
        final SyncResultReceiver resultReceiver = syncRun(
                (r) -> mService.getContentCaptureConditions(mContext.getPackageName(), r));
                (r) -> mService.getContentCaptureConditions(mContext.getPackageName(), r));


        try {
            final ArrayList<ContentCaptureCondition> result = resultReceiver
            final ArrayList<ContentCaptureCondition> result = resultReceiver
                    .getParcelableListResult();
                    .getParcelableListResult();
            return toSet(result);
            return toSet(result);
        } catch (SyncResultReceiver.TimeoutException e) {
            throw new RuntimeException("Fail to get content capture conditions.");
        }
    }
    }


    /**
    /**
@@ -639,6 +648,8 @@ public final class ContentCaptureManager {
    public boolean isContentCaptureFeatureEnabled() {
    public boolean isContentCaptureFeatureEnabled() {
        final SyncResultReceiver resultReceiver = syncRun(
        final SyncResultReceiver resultReceiver = syncRun(
                (r) -> mService.isContentCaptureFeatureEnabled(r));
                (r) -> mService.isContentCaptureFeatureEnabled(r));

        try {
            final int resultCode = resultReceiver.getIntResult();
            final int resultCode = resultReceiver.getIntResult();
            switch (resultCode) {
            switch (resultCode) {
                case RESULT_CODE_TRUE:
                case RESULT_CODE_TRUE:
@@ -649,6 +660,10 @@ public final class ContentCaptureManager {
                    Log.wtf(TAG, "received invalid result: " + resultCode);
                    Log.wtf(TAG, "received invalid result: " + resultCode);
                    return false;
                    return false;
            }
            }
        } catch (SyncResultReceiver.TimeoutException e) {
            Log.e(TAG, "Fail to get content capture feature enable status: " + e);
            return false;
        }
    }
    }


    /**
    /**
@@ -663,7 +678,7 @@ public final class ContentCaptureManager {
        try {
        try {
            mService.removeData(request);
            mService.removeData(request);
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
        }
        }
    }
    }


@@ -691,7 +706,7 @@ public final class ContentCaptureManager {
                    new DataShareAdapterDelegate(executor, dataShareWriteAdapter,
                    new DataShareAdapterDelegate(executor, dataShareWriteAdapter,
                            mDataShareAdapterResourceManager));
                            mDataShareAdapterResourceManager));
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
        }
        }
    }
    }


@@ -709,10 +724,12 @@ public final class ContentCaptureManager {
            if (resultCode == RESULT_CODE_SECURITY_EXCEPTION) {
            if (resultCode == RESULT_CODE_SECURITY_EXCEPTION) {
                throw new SecurityException(resultReceiver.getStringResult());
                throw new SecurityException(resultReceiver.getStringResult());
            }
            }
            return resultReceiver;
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
        } catch (SyncResultReceiver.TimeoutException e) {
            throw new RuntimeException("Fail to get syn run result from SyncResultReceiver.");
        }
        }
        return resultReceiver;
    }
    }


    /** @hide */
    /** @hide */
+1 −1
Original line number Original line Diff line number Diff line
@@ -182,7 +182,7 @@ public final class SyncResultReceiver extends IResultReceiver.Stub {
    }
    }


    /** @hide */
    /** @hide */
    public static final class TimeoutException extends RuntimeException {
    public static final class TimeoutException extends Exception {
        private TimeoutException(String msg) {
        private TimeoutException(String msg) {
            super(msg);
            super(msg);
        }
        }