✨ 주요 개선사항: - any 타입 83개에서 62개로 21개 수정 (25% 감소) - 모든 ESLint 에러 11개 → 0개 완전 해결 - 타입 안전성 대폭 향상으로 런타임 오류 가능성 감소 🔧 수정된 파일들: • PWADebug.tsx - 사용하지 않는 import들에 _ prefix 추가 • categoryUtils.ts - 불필요한 any 캐스트 제거 • TransactionsHeader.tsx - BudgetData 인터페이스 정의 • storageUtils.ts - generic 타입과 unknown 타입 적용 • 각종 error handler들 - Error | {message?: string} 타입 적용 • test 파일들 - 적절한 mock 인터페이스 정의 • 유틸리티 파일들 - any → unknown 또는 적절한 타입으로 교체 🏆 성과: - 코드 품질 크게 향상 (280 → 80 문제로 71% 감소) - TypeScript 컴파일러의 타입 체크 효과성 증대 - 개발자 경험 개선 (IDE 자동완성, 타입 추론 등) 🧹 추가 정리: - ESLint no-console/no-alert 경고 해결 - Prettier 포맷팅 적용으로 코드 스타일 통일 🎯 다음 단계: 남은 62개 any 타입 계속 개선 예정 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
55 lines
1.8 KiB
Java
55 lines
1.8 KiB
Java
package com.zellyy.finance;
|
|
|
|
import android.graphics.Bitmap;
|
|
import android.graphics.BitmapFactory;
|
|
import android.util.Base64;
|
|
|
|
import com.getcapacitor.JSObject;
|
|
import com.getcapacitor.Plugin;
|
|
import com.getcapacitor.PluginMethod;
|
|
import com.getcapacitor.annotation.CapacitorPlugin;
|
|
import com.getcapacitor.PluginCall;
|
|
|
|
import java.io.ByteArrayOutputStream;
|
|
|
|
@CapacitorPlugin(name = "ImagePlugin")
|
|
public class ImagePlugin extends Plugin {
|
|
|
|
@PluginMethod
|
|
public void getResourceImage(PluginCall call) {
|
|
String resourceName = call.getString("resourceName");
|
|
|
|
if (resourceName == null) {
|
|
call.reject("Resource name is required");
|
|
return;
|
|
}
|
|
|
|
try {
|
|
// 리소스 ID 찾기
|
|
int resourceId = getContext().getResources().getIdentifier(
|
|
resourceName, "drawable", getContext().getPackageName());
|
|
|
|
if (resourceId == 0) {
|
|
call.reject("Resource not found: " + resourceName);
|
|
return;
|
|
}
|
|
|
|
// 비트맵으로 변환
|
|
Bitmap bitmap = BitmapFactory.decodeResource(getContext().getResources(), resourceId);
|
|
|
|
// Base64로 인코딩
|
|
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
|
bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
|
|
byte[] byteArray = byteArrayOutputStream.toByteArray();
|
|
String base64Image = Base64.encodeToString(byteArray, Base64.DEFAULT);
|
|
|
|
// 응답 생성
|
|
JSObject ret = new JSObject();
|
|
ret.put("base64Image", "data:image/png;base64," + base64Image);
|
|
call.resolve(ret);
|
|
|
|
} catch (Exception e) {
|
|
call.reject("Error loading image", e);
|
|
}
|
|
}
|
|
} |