- FTPConfig 클래스 생성: SharedPreferences 기반 설정 관리
* 포트 번호 저장/로드
* 루트 디렉토리 URI 및 경로 저장/로드
- MainActivity UI 업데이트
* ScrollView로 전체 레이아웃 감싸기
* 설정 섹션 추가 (포트 입력, 디렉토리 선택)
* Storage Access Framework로 디렉토리 선택 기능
* 설정 유효성 검사 (포트 범위: 1024-65535)
- MainActivity 로직 업데이트
* ActivityResultLauncher로 디렉토리 선택
* takePersistableUriPermission으로 지속적 권한 획득
* 설정 로드 및 저장 기능
* 서버 시작 전 루트 디렉토리 필수 체크
- FTPService 수정
* Intent로 포트 및 루트 디렉토리 전달받음
* FTPServer에 설정값 전달
- FTPServer 생성자 확장
* 포트 및 루트 디렉토리 파라미터 추가
* FTPSession에 설정값 전달
- FTPSession 생성자 확장
* 루트 디렉토리 파라미터 추가
* FTPFileSystem에 전달
- FTPFileSystem 생성자 확장
* 사용자 지정 루트 디렉토리 지원
* null일 경우 기본 디렉토리 사용
* 경로 유효성 검증
이제 사용자가 원하는 디렉토리를 FTP 루트로 설정 가능
Android 11+ Scoped Storage 문제 해결
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- AndroidManifest.xml에 필요한 권한 추가 (INTERNET, STORAGE 등)
- FTPResponse 클래스 생성: FTP 응답 코드 상수 정의
- FTPSession 클래스 생성: 개별 클라이언트 세션 처리
* 명령어 읽기/응답 보내기 기본 루프
* USER, PASS, QUIT, SYST, PWD, NOOP 명령어 처리
- FTPServer 클래스 생성: 메인 서버 로직
* ServerSocket으로 포트 2121에서 수신 대기
* ExecutorService로 다중 클라이언트 연결 관리
- FTPService 클래스 생성: 백그라운드 포그라운드 서비스
* 서버 시작/중지 Intent 처리
* 알림 채널 및 포그라운드 서비스 구현
- MainActivity UI 업데이트: 서버 제어 기능
* 시작/중지 버튼 추가
* 서버 상태 표시
* 런타임 권한 요청 처리
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>