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

Commit f152f0b7 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Added a hidden modelState to indicate model was deleted from device but...

Merge "Added a hidden modelState to indicate model was deleted from device but available still." into sc-dev am: e4724a8e

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

Change-Id: I50b0b1f794c830e3ab465ec78d727102137d3de8
parents be9e2a41 e4724a8e
Loading
Loading
Loading
Loading
+24 −0
Original line number Original line Diff line number Diff line
@@ -361,6 +361,11 @@ public abstract class TranslationService extends Service {
                new Consumer<Set<TranslationCapability>>() {
                new Consumer<Set<TranslationCapability>>() {
                    @Override
                    @Override
                    public void accept(Set<TranslationCapability> values) {
                    public void accept(Set<TranslationCapability> values) {
                        if (!isValidCapabilities(sourceFormat, targetFormat, values)) {
                            throw new IllegalStateException("Invalid capabilities and "
                                    + "format compatibility");
                        }

                        final ArraySet<TranslationCapability> capabilities = new ArraySet<>(values);
                        final ArraySet<TranslationCapability> capabilities = new ArraySet<>(values);
                        final Bundle bundle = new Bundle();
                        final Bundle bundle = new Bundle();
                        bundle.putParcelableArray(TranslationManager.EXTRA_CAPABILITIES,
                        bundle.putParcelableArray(TranslationManager.EXTRA_CAPABILITIES,
@@ -369,4 +374,23 @@ public abstract class TranslationService extends Service {
                    }
                    }
                });
                });
    }
    }

    /**
     * Helper method to validate capabilities and format compatibility.
     */
    private boolean isValidCapabilities(@TranslationSpec.DataFormat int sourceFormat,
            @TranslationSpec.DataFormat int targetFormat, Set<TranslationCapability> capabilities) {
        if (sourceFormat != TranslationSpec.DATA_FORMAT_TEXT
                && targetFormat != TranslationSpec.DATA_FORMAT_TEXT) {
            return true;
        }

        for (TranslationCapability capability : capabilities) {
            if (capability.getState() == TranslationCapability.STATE_REMOVED_AND_AVAILABLE) {
                return false;
            }
        }

        return true;
    }
}
}
+17 −5
Original line number Original line Diff line number Diff line
@@ -61,6 +61,13 @@ public final class TranslationCapability implements Parcelable {
     * was dropped.</p>
     * was dropped.</p>
     */
     */
    public static final @ModelState int STATE_NOT_AVAILABLE = 4;
    public static final @ModelState int STATE_NOT_AVAILABLE = 4;
    /**
     * The translation between the source and target specs were removed from the system, but is
     * still available to be downloaded again.
     *
     * @hide
     */
    public static final @ModelState int STATE_REMOVED_AND_AVAILABLE = 1000;


    /**
    /**
     * The state of translation readiness between {@code mSourceSpec} and {@code mTargetSpec}.
     * The state of translation readiness between {@code mSourceSpec} and {@code mTargetSpec}.
@@ -134,7 +141,8 @@ public final class TranslationCapability implements Parcelable {
        STATE_AVAILABLE_TO_DOWNLOAD,
        STATE_AVAILABLE_TO_DOWNLOAD,
        STATE_DOWNLOADING,
        STATE_DOWNLOADING,
        STATE_ON_DEVICE,
        STATE_ON_DEVICE,
        STATE_NOT_AVAILABLE
        STATE_NOT_AVAILABLE,
        STATE_REMOVED_AND_AVAILABLE
    })
    })
    @Retention(RetentionPolicy.SOURCE)
    @Retention(RetentionPolicy.SOURCE)
    @DataClass.Generated.Member
    @DataClass.Generated.Member
@@ -152,6 +160,8 @@ public final class TranslationCapability implements Parcelable {
                    return "STATE_ON_DEVICE";
                    return "STATE_ON_DEVICE";
            case STATE_NOT_AVAILABLE:
            case STATE_NOT_AVAILABLE:
                    return "STATE_NOT_AVAILABLE";
                    return "STATE_NOT_AVAILABLE";
            case STATE_REMOVED_AND_AVAILABLE:
                    return "STATE_REMOVED_AND_AVAILABLE";
            default: return Integer.toHexString(value);
            default: return Integer.toHexString(value);
        }
        }
    }
    }
@@ -255,13 +265,15 @@ public final class TranslationCapability implements Parcelable {
        if (!(mState == STATE_AVAILABLE_TO_DOWNLOAD)
        if (!(mState == STATE_AVAILABLE_TO_DOWNLOAD)
                && !(mState == STATE_DOWNLOADING)
                && !(mState == STATE_DOWNLOADING)
                && !(mState == STATE_ON_DEVICE)
                && !(mState == STATE_ON_DEVICE)
                && !(mState == STATE_NOT_AVAILABLE)) {
                && !(mState == STATE_NOT_AVAILABLE)
                && !(mState == STATE_REMOVED_AND_AVAILABLE)) {
            throw new java.lang.IllegalArgumentException(
            throw new java.lang.IllegalArgumentException(
                    "state was " + mState + " but must be one of: "
                    "state was " + mState + " but must be one of: "
                            + "STATE_AVAILABLE_TO_DOWNLOAD(" + STATE_AVAILABLE_TO_DOWNLOAD + "), "
                            + "STATE_AVAILABLE_TO_DOWNLOAD(" + STATE_AVAILABLE_TO_DOWNLOAD + "), "
                            + "STATE_DOWNLOADING(" + STATE_DOWNLOADING + "), "
                            + "STATE_DOWNLOADING(" + STATE_DOWNLOADING + "), "
                            + "STATE_ON_DEVICE(" + STATE_ON_DEVICE + "), "
                            + "STATE_ON_DEVICE(" + STATE_ON_DEVICE + "), "
                            + "STATE_NOT_AVAILABLE(" + STATE_NOT_AVAILABLE + ")");
                            + "STATE_NOT_AVAILABLE(" + STATE_NOT_AVAILABLE + "), "
                            + "STATE_REMOVED_AND_AVAILABLE(" + STATE_REMOVED_AND_AVAILABLE + ")");
        }
        }


        this.mSourceSpec = sourceSpec;
        this.mSourceSpec = sourceSpec;
@@ -293,10 +305,10 @@ public final class TranslationCapability implements Parcelable {
    };
    };


    @DataClass.Generated(
    @DataClass.Generated(
            time = 1621545303074L,
            time = 1624307114468L,
            codegenVersion = "1.0.23",
            codegenVersion = "1.0.23",
            sourceFile = "frameworks/base/core/java/android/view/translation/TranslationCapability.java",
            sourceFile = "frameworks/base/core/java/android/view/translation/TranslationCapability.java",
            inputSignatures = "public static final @android.view.translation.TranslationCapability.ModelState int STATE_AVAILABLE_TO_DOWNLOAD\npublic static final @android.view.translation.TranslationCapability.ModelState int STATE_DOWNLOADING\npublic static final @android.view.translation.TranslationCapability.ModelState int STATE_ON_DEVICE\npublic static final @android.view.translation.TranslationCapability.ModelState int STATE_NOT_AVAILABLE\nprivate final @android.view.translation.TranslationCapability.ModelState int mState\nprivate final @android.annotation.NonNull android.view.translation.TranslationSpec mSourceSpec\nprivate final @android.annotation.NonNull android.view.translation.TranslationSpec mTargetSpec\nprivate final  boolean mUiTranslationEnabled\nprivate final @android.view.translation.TranslationContext.TranslationFlag int mSupportedTranslationFlags\nclass TranslationCapability extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genHiddenConstDefs=true, genToString=true, genConstructor=false)")
            inputSignatures = "public static final @android.view.translation.TranslationCapability.ModelState int STATE_AVAILABLE_TO_DOWNLOAD\npublic static final @android.view.translation.TranslationCapability.ModelState int STATE_DOWNLOADING\npublic static final @android.view.translation.TranslationCapability.ModelState int STATE_ON_DEVICE\npublic static final @android.view.translation.TranslationCapability.ModelState int STATE_NOT_AVAILABLE\npublic static final @android.view.translation.TranslationCapability.ModelState int STATE_REMOVED_AND_AVAILABLE\nprivate final @android.view.translation.TranslationCapability.ModelState int mState\nprivate final @android.annotation.NonNull android.view.translation.TranslationSpec mSourceSpec\nprivate final @android.annotation.NonNull android.view.translation.TranslationSpec mTargetSpec\nprivate final  boolean mUiTranslationEnabled\nprivate final @android.view.translation.TranslationContext.TranslationFlag int mSupportedTranslationFlags\nclass TranslationCapability extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genHiddenConstDefs=true, genToString=true, genConstructor=false)")
    @Deprecated
    @Deprecated
    private void __metadata() {}
    private void __metadata() {}