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

Commit 0dcf5148 authored by Daniel Zheng's avatar Daniel Zheng
Browse files

TIMservice: getHingeInfo

Get HingeInfo based on the number of hinges available.

Flag: com.android.tradeinmode.flags.trade_in_mode_2025q4
Test: th
Change-Id: I068c0ffe0f25b11cb9806362fe97ddc5c1f37776
parent fb839f37
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -97,4 +97,14 @@ interface ITradeInMode {
     *
     */
    int getHingeCount();
    /**
     * Get foldCount of specific hinge on device
     *
     */
    int getFoldCount(in int hingeId);
    /**
     * Get lifeSpan of specific hinge on device
     *
     */
    int getHingeLifeSpan(in int hingeId);
}
+22 −0
Original line number Diff line number Diff line
@@ -255,6 +255,28 @@ public final class TradeInModeService extends SystemService {
            return (info == null) ? 0 : info.length;
        }

        @Override
        @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE)
        public int getFoldCount(int hingeId) throws RemoteException {
            int hingeCount = getHingeCount();
            if (hingeId >= hingeCount) {
                Slog.e(TAG, "Hinge " + hingeId + " is greater than hinge count: " + hingeCount);
                return -1;
            }
            return getHealthService().getHingeInfo()[hingeId].numTimesFolded;
        }

        @Override
        @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE)
        public int getHingeLifeSpan(int hingeId) throws RemoteException {
            int hingeCount = getHingeCount();
            if (hingeId >= hingeCount) {
                Slog.e(TAG, "Hinge " + hingeId + " is greater than hinge count: " + hingeCount);
                return -1;
            }
            return getHealthService().getHingeInfo()[hingeId].expectedHingeLifespan;
        }

        private void enforceTestingPermissions() {
            mContext.enforceCallingOrSelfPermission("android.permission.ENTER_TRADE_IN_MODE",
                    "Caller must have ENTER_TRADE_IN_MODE permission");