feat: 深度完善 — 存根转真实实现、UI类方法补全、Java集合/IO增强
存根转真实实现: - ContentResolver: query/insert/update/delete对file://URI真实文件操作, getType用mimetypes - Context: getResources/getAssets/getString/getColor 委托真实Resources - Bitmap.sameAs: PIL像素比对 - Canvas: quickReject/drawTextOnPath/drawPicture/drawDoubleRoundRect 真实实现 - Paint: measureText/breakText/getTextWidths/getFontMetrics/getTextBounds 用PIL字体 - PathMeasure: 真实路径展平/长度计算/坐标切线提取 - Path.op/Region.op: 布尔运算 - Camera: 3D变换矩阵计算 - SystemClock.setCurrentTimeMillis: date -s命令 - Environment.isExternalStorageRemovable: /proc/mounts检查 - Process.myUid: os.getuid() - PowerManager.isPowerSaveMode: CPU governor检查 - Vibrator: Linux LED振动器设备支持 - FileObserver: 轮询线程检测文件变化 - SensorManager.getRotationMatrix: 完整旋转矩阵算法 - BatteryManager: LinuxPower真实电池数据 - Geocoder: Nominatim API逆地理编码 - LocationManager: addProximityAlert/setTestProviderLocation UI类方法补全: - TextView: setPaddingRelative/getTextColor/setBreakStrategy/setJustificationMode - ImageView: setColorFilter/getColorFilter/clearColorFilter - CheckBox/Switch: setOnCheckedChangeListener - ListView: clearChoices - ViewGroup: setLayoutTransition/setTouchscreenBlocksFocus/getChildVisibleRect - MotionEvent: getHistoricalX/Y/Pressure/EventTime/addBatch/getEdgeFlags/setAction Java集合增强: - ArrayList: spliterator/stream - HashSet: spliterator/stream/removeIf - TreeMap: replaceAll/compute/computeIfAbsent/computeIfPresent/merge - LinkedHashMap: clone (保留access_order) - PriorityQueue: spliterator/clone Java IO增强: - BufferedWriter: append/check - PrintWriter: append - ByteArrayOutputStream: writeTo - ByteArrayInputStream: markSupported - BufferedInputStream: available/mark/reset/markSupported + 修复_fill缓冲区填充bug - SequenceInputStream: 补全实现(Enumeration/多流/跨流聚合读取) 修复: - ViewGroup.addView: 合并重复定义为智能参数分派 - view_ext.ViewGroup: 继承view.ViewGroup - view_ext.KeyEvent: 继承view.KeyEvent - hardware_sensor_ext.SensorManager: 继承hardware.SensorManager - app_fragment: 使用java.lang.IllegalStateException - content_intent.Intent: setData/getScheme正确从Uri提取scheme - __init__.py: 补全Fragment/KeyEvent/MotionEvent/TrafficStats/RecyclerView/TreeMap/Vibrator等导出 统计: 221模块, 3662类, 30952方法, 182302行
This commit is contained in:
1 parent
39b1da37c9
commit
4235f8692c
13 files changed
+2248
-163
No files matched your search
@@ -365,6 +365,39 @@ class TextView(View):
|
||||
def setPadding(self, left: int, top: int, right: int, bottom: int):
|
||||
super().setPadding(left, top, right, bottom)
|
||||
|
||||
def setPaddingRelative(self, start: int, top: int, end: int, bottom: int):
|
||||
self._padding_left = start
|
||||
self._padding_top = top
|
||||
self._padding_right = end
|
||||
self._padding_bottom = bottom
|
||||
|
||||
# ─── text color getter ───────────────────────────────────
|
||||
|
||||
def getTextColor(self) -> int:
|
||||
return self._text_color
|
||||
|
||||
# ─── selection action mode ───────────────────────────────
|
||||
|
||||
def setCustomSelectionActionModeCallback(self, callback: Any):
|
||||
self._custom_selection_action_mode_callback = callback
|
||||
|
||||
def getCustomSelectionActionModeCallback(self) -> Any:
|
||||
return getattr(self, '_custom_selection_action_mode_callback', None)
|
||||
|
||||
# ─── break / justification strategy ──────────────────────
|
||||
|
||||
def setBreakStrategy(self, break_strategy: int):
|
||||
self._break_strategy = break_strategy
|
||||
|
||||
def getBreakStrategy(self) -> int:
|
||||
return getattr(self, '_break_strategy', 0)
|
||||
|
||||
def setJustificationMode(self, justification_mode: int):
|
||||
self._justification_mode = justification_mode
|
||||
|
||||
def getJustificationMode(self) -> int:
|
||||
return getattr(self, '_justification_mode', 0)
|
||||
|
||||
def onMeasure(self, width_measure_spec: int, height_measure_spec: int):
|
||||
from .view import MeasureSpec
|
||||
w = MeasureSpec.getSize(width_measure_spec)
|
||||
@@ -456,6 +489,12 @@ class CheckBox(Button):
|
||||
def toggle(self):
|
||||
self._checked = not self._checked
|
||||
|
||||
def setOnCheckedChangeListener(self, listener: Optional[Callable]):
|
||||
self._on_checked_change_listener = listener
|
||||
|
||||
def getOnCheckedChangeListener(self) -> Optional[Callable]:
|
||||
return getattr(self, '_on_checked_change_listener', None)
|
||||
|
||||
def performClick(self) -> bool:
|
||||
self.toggle()
|
||||
return super().performClick()
|
||||
@@ -607,6 +646,22 @@ class Switch(Button):
|
||||
def getTextOff(self) -> str:
|
||||
return self._text_off
|
||||
|
||||
# ─── checked change listener ─────────────────────────────
|
||||
|
||||
def setOnCheckedChangeListener(self, listener: Optional[Callable]):
|
||||
self._on_checked_change_listener = listener
|
||||
|
||||
def getOnCheckedChangeListener(self) -> Optional[Callable]:
|
||||
return getattr(self, '_on_checked_change_listener', None)
|
||||
|
||||
# ─── switch text appearance ──────────────────────────────
|
||||
|
||||
def setSwitchTextAppearance(self, context: Any, resid: int):
|
||||
self._switch_text_appearance = resid
|
||||
|
||||
def getSwitchTextAppearance(self) -> int:
|
||||
return getattr(self, '_switch_text_appearance', 0)
|
||||
|
||||
def performClick(self) -> bool:
|
||||
self.toggle()
|
||||
return super().performClick()
|
||||
@@ -694,6 +749,17 @@ class ImageView(View):
|
||||
def getCropToPadding(self) -> bool:
|
||||
return self._crop_to_padding
|
||||
|
||||
# ─── color filter ─────────────────────────────────────────
|
||||
|
||||
def setColorFilter(self, color_filter: Any):
|
||||
self._color_filter = color_filter
|
||||
|
||||
def getColorFilter(self) -> Any:
|
||||
return getattr(self, '_color_filter', None)
|
||||
|
||||
def clearColorFilter(self):
|
||||
self._color_filter = None
|
||||
|
||||
def setBaseline(self, baseline: int):
|
||||
self._baseline = baseline
|
||||
|
||||
@@ -1116,6 +1182,10 @@ class ListView(AdapterView):
|
||||
def getCheckItemIds(self) -> List[int]:
|
||||
return list(self._checked_id_positions.keys())
|
||||
|
||||
def clearChoices(self):
|
||||
self._checked_item_positions.clear()
|
||||
self._checked_id_positions.clear()
|
||||
|
||||
|
||||
class GridView(AdapterView):
|
||||
"""GridView — 网格视图"""
|
||||
|
||||
Reference in new issue
Block a user