| 
 | 1 | +/*  | 
 | 2 | + * Copyright 2025 The Chromium Authors. All rights reserved.  | 
 | 3 | + * Use of this source code is governed by a BSD-style license that can be  | 
 | 4 | + * found in the LICENSE file.  | 
 | 5 | + */  | 
 | 6 | +package io.flutter.utils;  | 
 | 7 | + | 
 | 8 | +import com.teamdev.jxbrowser.zoom.ZoomLevel;  | 
 | 9 | +import org.jetbrains.annotations.NotNull;  | 
 | 10 | + | 
 | 11 | +import java.util.Map;  | 
 | 12 | + | 
 | 13 | +import static java.util.Map.entry;  | 
 | 14 | + | 
 | 15 | +public class ZoomLevelSelector {  | 
 | 16 | +  @NotNull final Map<Integer, ZoomLevel> zoomLevels = Map.ofEntries(  | 
 | 17 | +    entry(25, ZoomLevel.P_25),  | 
 | 18 | +    entry(33, ZoomLevel.P_33),  | 
 | 19 | +    entry(50, ZoomLevel.P_50),  | 
 | 20 | +    entry(67, ZoomLevel.P_67),  | 
 | 21 | +    entry(75, ZoomLevel.P_75),  | 
 | 22 | +    entry(80, ZoomLevel.P_80),  | 
 | 23 | +    entry(90, ZoomLevel.P_90),  | 
 | 24 | +    entry(100, ZoomLevel.P_100),  | 
 | 25 | +    entry(110, ZoomLevel.P_110),  | 
 | 26 | +    entry(125, ZoomLevel.P_125),  | 
 | 27 | +    entry(150, ZoomLevel.P_150),  | 
 | 28 | +    entry(175, ZoomLevel.P_175),  | 
 | 29 | +    entry(200, ZoomLevel.P_200),  | 
 | 30 | +    entry(250, ZoomLevel.P_250),  | 
 | 31 | +    entry(300, ZoomLevel.P_300),  | 
 | 32 | +    entry(400, ZoomLevel.P_400),  | 
 | 33 | +    entry(500, ZoomLevel.P_500)  | 
 | 34 | +  );  | 
 | 35 | + | 
 | 36 | +  public @NotNull ZoomLevel getClosestZoomLevel(int zoomPercent) {  | 
 | 37 | +    ZoomLevel closest = ZoomLevel.P_100;  | 
 | 38 | +    int minDifference = Integer.MAX_VALUE;  | 
 | 39 | + | 
 | 40 | +    for (Map.Entry<Integer, ZoomLevel> entry : zoomLevels.entrySet()) {  | 
 | 41 | +      int currentDifference = Math.abs(zoomPercent - entry.getKey());  | 
 | 42 | +      if (currentDifference < minDifference) {  | 
 | 43 | +        minDifference = currentDifference;  | 
 | 44 | +        closest = entry.getValue();  | 
 | 45 | +      }  | 
 | 46 | +    }  | 
 | 47 | + | 
 | 48 | +    return closest;  | 
 | 49 | +  }}  | 
0 commit comments