Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
107 commits
Select commit Hold shift + click to select a range
af85011
[SETTING] 프로젝트 구조 설정
Sangyoon98 Sep 29, 2025
d6c087a
[REFAC] 프로젝트 구조 Pakage by Layer -> Pakage by Feature 변경 / 샘플 코드 추가
Sangyoon98 Sep 30, 2025
2ac4233
[FEAT] Part 샘플 코드 추가 및 연동 확인
Sangyoon98 Sep 30, 2025
baa6ea5
[FIX] NavHost 이동 오류 수정
Sangyoon98 Sep 30, 2025
829c7fc
Merge pull request #2 from 33-Auto/feat/#1
Sangyoon98 Sep 30, 2025
ac3deda
#5 [FEAT] Navigation Bar 추가 및 Route 정리
Sangyoon98 Oct 2, 2025
9525a15
#5 [FEAT] 앱 아이콘 추가, 스트링 리소스 설정
Sangyoon98 Oct 2, 2025
8dfb8a7
기능: 공통 워크플로우 템플릿 적용
CHOOSLA Oct 4, 2025
3a57b5c
Merge pull request #7 from 33-Auto/chore/apply-common-workflows
CHOOSLA Oct 4, 2025
7f2a566
Merge pull request #6 from 33-Auto/feat/#5
Sangyoon98 Oct 8, 2025
bb095b2
#8 [REFAC] 앱 아이콘 변경
Sangyoon98 Oct 10, 2025
cc49345
#8 [REFAC] 내비게이션 라우트 정리 및 FAB 추가
Sangyoon98 Oct 10, 2025
3ba895e
#8 [FEAT] 공통 컴포넌트 생성
Sangyoon98 Oct 10, 2025
bf4ea77
#8 [FIX] 이름 중복 제거
Sangyoon98 Oct 10, 2025
66027d4
Merge pull request #14 from 33-Auto/main
CHOOSLA Oct 12, 2025
93ca3cb
Merge pull request #11 from 33-Auto/refac/#8
Sangyoon98 Oct 13, 2025
1aee327
chore: Apply batch updates from central configuration
CHOOSLA Oct 14, 2025
ac9c71e
chore: Apply batch updates from central configuration
CHOOSLA Oct 15, 2025
989065d
[FEAT] 로그인 기능 구현
Sangyoon98 Oct 15, 2025
ddff298
[FIX] 코드 래빗 코드 리뷰 사항 반영
Sangyoon98 Oct 15, 2025
4d0f07b
[REFAC] SharedPreference -> DataStore 교체
Sangyoon98 Oct 15, 2025
2e2a64b
[FIX] OKHttp 세팅 수정
Sangyoon98 Oct 15, 2025
af51b99
[FIX] 폰트 Weight 수정
Sangyoon98 Oct 15, 2025
f791c1b
chore: Apply batch updates from central configuration
CHOOSLA Oct 16, 2025
519d290
Merge pull request #15 from 33-Auto/SPM-20
Sangyoon98 Oct 16, 2025
586171c
chore: Apply batch updates from central configuration
CHOOSLA Oct 16, 2025
0c069c1
chore: Apply batch updates from central configuration
CHOOSLA Oct 16, 2025
6dda384
chore: Apply batch updates from central configuration
CHOOSLA Oct 16, 2025
81dbb20
chore: Apply batch updates from central configuration
CHOOSLA Oct 16, 2025
d425836
chore: Apply batch updates from central configuration
CHOOSLA Oct 16, 2025
b2d9856
chore: Apply batch updates from central configuration
CHOOSLA Oct 16, 2025
cf46158
chore: Apply batch updates from central configuration
CHOOSLA Oct 16, 2025
868eb24
[FEAT] 부품 카테고리 조회, 부품 그룹 조회 연동
Sangyoon98 Oct 16, 2025
d53f910
[FEAT] 부품 목록 조회 화면 연동
Sangyoon98 Oct 16, 2025
08b589b
[FIX] 카테고리 그리드 수정
Sangyoon98 Oct 18, 2025
2efb8d0
[FIX] 코드 래빗 리뷰 사항 수정
Sangyoon98 Oct 18, 2025
2d76062
[FIX] 코드 래빗 리뷰 사항 수정
Sangyoon98 Oct 18, 2025
9e73aac
[FIX] 코드 래빗 리뷰 사항 수정
Sangyoon98 Oct 18, 2025
de0a64d
Merge pull request #16 from 33-Auto/SPM-99
Sangyoon98 Oct 18, 2025
8c64956
[FEAT] 부품 상세 Bottom Sheet 추가
Sangyoon98 Oct 19, 2025
dbb4018
[FEAT] 출고 목록 구현, 부품 목록에서 출고 목록 추가 기능 연동
Sangyoon98 Oct 19, 2025
72c28ce
[FEAT] 출고목록, 장바구니 구현 / 출고목록 추가, 장바구니 목록 추가 구현
Sangyoon98 Oct 19, 2025
324dfda
[FIX] runCatching Result 반환 수정 및 코드 래빗 리뷰 사항 수정
Sangyoon98 Oct 19, 2025
1d90c18
[FIX] 코드 래빗 리뷰 사항 수정
Sangyoon98 Oct 19, 2025
69c83b1
Merge pull request #17 from 33-Auto/SPM-130
Sangyoon98 Oct 19, 2025
d54ad66
[FEAT] 주문관리 화면, 주문관리 상세 화면 구현
Sangyoon98 Oct 20, 2025
2d38e1f
[FIX] Navigation 변경
Sangyoon98 Oct 20, 2025
f3c6399
[FEAT] 주문 로직 구현, 주문 취소, 입고 처리 연동
Sangyoon98 Oct 21, 2025
9430d1f
[REFAC] 미사용 Import 제거
Sangyoon98 Oct 21, 2025
1b4b94b
[FIX] 코드 래빗 리뷰 사항 수정
Sangyoon98 Oct 21, 2025
bed77cd
[FIX] 코드 래빗 리뷰 사항 수정
Sangyoon98 Oct 21, 2025
7b6058e
[FIX] 버튼 비활성화 로직 수정
Sangyoon98 Oct 21, 2025
3ece7b9
[FEAT] 리스트 스와이프 새로고침 기능 추가
Sangyoon98 Oct 22, 2025
81b543f
[FIX] 코드 래빗 리뷰 사항 수정
Sangyoon98 Oct 22, 2025
39c4736
[FIX] 코드 래빗 리뷰 사항 수정
Sangyoon98 Oct 22, 2025
bf47b1d
Merge pull request #18 from 33-Auto/SPM-175
Sangyoon98 Oct 22, 2025
de5068c
[FEAT] 검색 기능 구현
Sangyoon98 Oct 22, 2025
c6dce56
[FEAT] 검색 결과 페이징 처리
Sangyoon98 Oct 23, 2025
cb5d147
[FIX] 새로고침 로직 수정 / 불필요 import 제거 / Nav Animation 수정
Sangyoon98 Oct 23, 2025
104cbe2
[FEAT] 검색어 지우기 버튼 추가
Sangyoon98 Oct 23, 2025
8740130
[FIX] 코드 래빗 리뷰 사항 수정
Sangyoon98 Oct 23, 2025
5dbbd7e
[FIX] padding 수정
Sangyoon98 Oct 23, 2025
109c8ca
[FIX] coroutineJob 작업 취소 수정
Sangyoon98 Oct 23, 2025
a346a7a
[FIX] 코드 래빗 리뷰 사항 수정
Sangyoon98 Oct 23, 2025
27f70dc
Merge pull request #19 from 33-Auto/SPM-223
Sangyoon98 Oct 24, 2025
53efebb
[FEAT] 유저 로그인, 회원 가입, 토큰 갱신, 자동 로그인, 로그아웃, Authorization 전역 헤더 구현
Sangyoon98 Oct 24, 2025
95ff3c5
[FIX] 코드 래빗 리뷰 사항 수정
Sangyoon98 Oct 24, 2025
d9036e2
[FIX] 코드 래빗 리뷰 사항 수정
Sangyoon98 Oct 24, 2025
85b24b5
[FIX] 버전 수정
Sangyoon98 Oct 24, 2025
3f7780c
[FIX] 코드 래빗 리뷰 사항 수정
Sangyoon98 Oct 24, 2025
16fb117
Merge pull request #20 from 33-Auto/SPM-244
Sangyoon98 Oct 26, 2025
7620a62
[FIX] 폰트 사이즈 수정
Sangyoon98 Oct 28, 2025
aa8adaa
[CHORE] 1.0.2 버전 배포
Sangyoon98 Oct 28, 2025
73ff081
Merge pull request #21 from 33-Auto/SPM-270
Sangyoon98 Oct 28, 2025
c8ebdad
[STYLE] 내비게이션 바 색상 수정
Sangyoon98 Oct 28, 2025
fa60df2
[FEAT] 대시보드 화면 구현, 로그인 로직 일부 수정
Sangyoon98 Oct 28, 2025
416c131
[REFAC] Api 반환 값 통일, 로그인 로직 수정
Sangyoon98 Oct 29, 2025
6b5a7b4
[FIX] 코드 래빗 리뷰 사항 수정
Sangyoon98 Oct 29, 2025
aaece3f
[FIX] 코드 래빗 리뷰 사항 수정
Sangyoon98 Oct 29, 2025
a3a769e
[FIX] 코드 래빗 리뷰 사항 수정
Sangyoon98 Oct 29, 2025
35c93f4
Merge pull request #22 from 33-Auto/SPM-283
Sangyoon98 Oct 29, 2025
0d8e424
[FIX] 대시보드 하드코딩 제거
Sangyoon98 Oct 29, 2025
c109cdd
Merge pull request #23 from 33-Auto/SPM-283
Sangyoon98 Oct 29, 2025
9ac62e5
[REFAC] 주문 생성 API 수정
Sangyoon98 Oct 31, 2025
c2424a1
[REFAC] 주문 생성 API 수정
Sangyoon98 Oct 31, 2025
fdf67c8
[REFAC] 주문 로직 수정, 에러 처리 전역 스낵바 적용, 패키지 구조 리팩토링
Sangyoon98 Nov 2, 2025
954ff06
[FIX] 화면 UI 업데이트 오류 수정
Sangyoon98 Nov 2, 2025
39a4aec
[REFAC] 불필요 import 제거
Sangyoon98 Nov 2, 2025
c8df391
[FIX] 에러 처리 오류 수정 및 import 제거
Sangyoon98 Nov 2, 2025
fc2ff9b
Merge pull request #24 from 33-Auto/SPM-329
Sangyoon98 Nov 2, 2025
bf59b48
[FIX] 로그인, 회원가입 로직 수정 / 설정 화면 구성
Sangyoon98 Nov 4, 2025
25afeea
[FIX] 코드 래빗 리뷰 사항 수정
Sangyoon98 Nov 4, 2025
e9e4d95
[FIX] 코드 래빗 리뷰 사항 수정
Sangyoon98 Nov 4, 2025
b0d7ec2
[FIX] 코드 래빗 리뷰 사항 수정
Sangyoon98 Nov 4, 2025
542f921
[FIX] 코드 래빗 리뷰 사항 수정
Sangyoon98 Nov 4, 2025
c9b980b
[FIX] Role Enum 변경
Sangyoon98 Nov 4, 2025
0e90005
Merge pull request #25 from 33-Auto/SPM-354
Sangyoon98 Nov 4, 2025
5151246
[REFAC] 직급 Enum 변경
Sangyoon98 Nov 5, 2025
b7dd107
[FIX] 코드 래빗 리뷰 사항 수정
Sangyoon98 Nov 6, 2025
3b7cbbd
[FIX] 코드 래빗 리뷰 사항 수정
Sangyoon98 Nov 6, 2025
ca15451
Merge pull request #26 from 33-Auto/SPM-396
Sangyoon98 Nov 6, 2025
b2f9ea7
[FEAT] 부품 가격 추가
Sangyoon98 Nov 6, 2025
522d340
Merge pull request #27 from 33-Auto/SPM-408
Sangyoon98 Nov 6, 2025
4f32609
[FEAT] 대시보드 api 연동
Sangyoon98 Nov 6, 2025
8cfecd3
[FIX] 코드 래빗 라뷰 사항 수정
Sangyoon98 Nov 7, 2025
c050c31
[FIX] 코드 래빗 라뷰 사항 수정
Sangyoon98 Nov 7, 2025
b8d9911
Merge pull request #28 from 33-Auto/SPM-432
Sangyoon98 Nov 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .github/workflows/assign-issue-creator.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# 각 레포지토리의 .github/workflows/assign-issue-creator.yml

name: Assign issue creator

on:
issues:
types: [opened]

jobs:
call-reusable-workflow:
# @main 은 .github 레포지토리의 main 브랜치를 사용한다는 의미입니다. 버전을 위해 @v1과 같이 태그를 사용하는 것을 권장합니다.
uses: 33-Auto/.github/.github/workflows/reusable-assign-issue-creator.yml@main
# 이 워크플로우는 secrets를 전달할 필요가 없지만, 필요 시 아래와 같이 전달합니다.
# secrets: inherit
Comment on lines +12 to +14

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {}

Copilot Autofix

AI 3 months ago

To fix the problem, add an explicit permissions key to the job or workflow. Since this workflow delegates all responsibility to a reusable workflow, and there are no steps defined here that would require write access, it is safest to set the permissions to read-all for this job. This can be achieved by adding either permissions: read-all at the job level (call-reusable-workflow:) or at the root of the workflow. Since there is only one job, setting it at the job level is clear and follows best practice.

Add the following block:

permissions: read-all

under the call-reusable-workflow: job (that is, on line 12 or 13, properly indented).

No imports, method definitions, or other structural changes are required—just a single YAML key.

Suggested changeset 1
.github/workflows/assign-issue-creator.yml

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/.github/workflows/assign-issue-creator.yml b/.github/workflows/assign-issue-creator.yml
--- a/.github/workflows/assign-issue-creator.yml
+++ b/.github/workflows/assign-issue-creator.yml
@@ -8,6 +8,7 @@
 
 jobs:
   call-reusable-workflow:
+    permissions: read-all
     # @main 은 .github 레포지토리의 main 브랜치를 사용한다는 의미입니다. 버전을 위해 @v1과 같이 태그를 사용하는 것을 권장합니다.
     uses: 33-Auto/.github/.github/workflows/reusable-assign-issue-creator.yml@main
     # 이 워크플로우는 secrets를 전달할 필요가 없지만, 필요 시 아래와 같이 전달합니다.
EOF
@@ -8,6 +8,7 @@

jobs:
call-reusable-workflow:
permissions: read-all
# @main 은 .github 레포지토리의 main 브랜치를 사용한다는 의미입니다. 버전을 위해 @v1과 같이 태그를 사용하는 것을 권장합니다.
uses: 33-Auto/.github/.github/workflows/reusable-assign-issue-creator.yml@main
# 이 워크플로우는 secrets를 전달할 필요가 없지만, 필요 시 아래와 같이 전달합니다.
Copilot is powered by AI and may make mistakes. Always verify output.
19 changes: 19 additions & 0 deletions .github/workflows/close-issues-on-dev-merge.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# 각 레포지토리의 .github/workflows/close-issues-on-dev-merge.yml

name: Auto Close Issues on dev merge

on:
pull_request:
types: [closed]

jobs:
call-reusable-workflow:
if: >
github.event.pull_request.merged == true &&
github.event.pull_request.base.ref == 'dev'
uses: 33-Auto/.github/.github/workflows/reusable-close-linked-issues.yml@main
# with를 통해 재사용 워크플로우의 inputs에 값을 전달합니다.
with:
pr-body: ${{ github.event.pull_request.body }}
issue-number: ${{ github.event.pull_request.number }}
secrets: inherit # 재사용 워크플로우가 GITHUB_TOKEN을 사용할 수 있도록 전달
Comment on lines +11 to +19

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {}

Copilot Autofix

AI 3 months ago

To fix the problem, add an explicit permissions block at the root of the workflow (i.e., at the same level as name and on), so that it applies to the entire workflow and to all jobs unless overridden. The block should grant only the minimum required permissions. Since the job is closing issues (which requires the issues: write permission) and is triggered on pull request events (for which contents metadata read access may be needed), set:

permissions:
  contents: read
  issues: write

For maximum safety, don't add additional permissions without clear evidence they are needed.

Place this block after the name line (line 3) and before the on line (line 5).


Suggested changeset 1
.github/workflows/close-issues-on-dev-merge.yml

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/.github/workflows/close-issues-on-dev-merge.yml b/.github/workflows/close-issues-on-dev-merge.yml
--- a/.github/workflows/close-issues-on-dev-merge.yml
+++ b/.github/workflows/close-issues-on-dev-merge.yml
@@ -1,6 +1,9 @@
 # 각 레포지토리의 .github/workflows/close-issues-on-dev-merge.yml
 
 name: Auto Close Issues on dev merge
+permissions:
+  contents: read
+  issues: write
 
 on:
   pull_request:
EOF
@@ -1,6 +1,9 @@
# 각 레포지토리의 .github/workflows/close-issues-on-dev-merge.yml

name: Auto Close Issues on dev merge
permissions:
contents: read
issues: write

on:
pull_request:
Copilot is powered by AI and may make mistakes. Always verify output.
24 changes: 13 additions & 11 deletions .github/workflows/pr-reminder.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
name: PR Reminder
name: PR Reminder

on:
schedule:
- cron: "0 0,5,8 * * *" # 아침 9시, 오후 2시, 오후 5시에 실행 (UTC 기준으로 설정해서 한국 시간에 맞춤)
workflow_dispatch:
on:
schedule:
- cron: "47 23,4,7,8,10 * * *" # 아침 8시 47분, 오후 2시 47분, 오후 4시 47분, 오후 5시 47분, 오후 7시 47분 에 실행 (UTC 기준으로 설정해서 한국 시간에 맞춤)
workflow_dispatch:

jobs:
call-reusable-reminder:
uses: 33-Auto/.github/.github/workflows/reusable-pr-reminder.yml@main
secrets:
# 해당 시크릿은 조직의 시크릿에 저장되어 있음
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
jobs:
call-reusable-reminder:
uses: 33-Auto/.github/.github/workflows/reusable-pr-reminder.yml@main
secrets:
# 해당 시크릿은 조직의 시크릿에 저장되어 있음
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
with:
SLACK_USER_MAP: ${{ vars.SLACK_USER_MAP }}
Comment on lines +10 to +15

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {}

Copilot Autofix

AI 3 months ago

To fix the problem, we should add a permissions block at the workflow level or at the job level for call-reusable-reminder in .github/workflows/pr-reminder.yml. As the workflow is primarily running a reusable workflow via uses:, it's safest to set explicit minimal permissions at workflow level so all jobs inherit it. The block should specify the least privilege required; typically, for read-only workflows, this is contents: read. If the reusable workflow requires write access to, for example, pull-requests, then that should be included, but absent further information, a minimal starting block is preferred. The change consists of inserting the permissions: block just after the workflow name.


Suggested changeset 1
.github/workflows/pr-reminder.yml

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/.github/workflows/pr-reminder.yml b/.github/workflows/pr-reminder.yml
--- a/.github/workflows/pr-reminder.yml
+++ b/.github/workflows/pr-reminder.yml
@@ -1,4 +1,6 @@
   name: PR Reminder
+  permissions:
+    contents: read
 
   on:
     schedule:
EOF
@@ -1,4 +1,6 @@
name: PR Reminder
permissions:
contents: read

on:
schedule:
Copilot is powered by AI and may make mistakes. Always verify output.
17 changes: 17 additions & 0 deletions .github/workflows/request-pr-review.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# 각 레포지토리의 .github/workflows/request-pr-review.yml

name: PR Assignee & Team Review Request

on:
pull_request:
types: [opened, reopened, ready_for_review]

jobs:
call-reusable-workflow:
uses: 33-Auto/.github/.github/workflows/reusable-pr-assign-and-review.yml@main
with:
team-slug-for-review: "review_avengers" # 여기에 리뷰를 요청할 팀의 slug를 입력합니다.
pr-author: ${{ github.event.pull_request.user.login }}
pr-number: ${{ github.event.pull_request.number }}
secrets:
ORGANIZATION_TOKEN: ${{ secrets.ORGANIZATION_TOKEN }} # 재사용 워크플로우가 ORGANIZATION_TOKEN을 사용할 수 있도록 전달
Comment on lines +11 to +17

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {}

Copilot Autofix

AI 3 months ago

To fix this problem, you should add a permissions block specifying the least privilege required for this workflow. Since the workflow is calling a reusable workflow handling PR assignments and review requests, the required minimal permissions are typically contents: read (to allow basic access and context), and pull-requests: write (to interact with PRs). Insert the following block above jobs: (line 9), or at the top level of the workflow, unless specific jobs require customized permissions. No other code needs changing, only the addition of the permissions block.

Suggested changeset 1
.github/workflows/request-pr-review.yml

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/.github/workflows/request-pr-review.yml b/.github/workflows/request-pr-review.yml
--- a/.github/workflows/request-pr-review.yml
+++ b/.github/workflows/request-pr-review.yml
@@ -2,6 +2,10 @@
 
 name: PR Assignee & Team Review Request
 
+permissions:
+  contents: read
+  pull-requests: write
+
 on:
   pull_request:
     types: [opened, reopened, ready_for_review]
EOF
@@ -2,6 +2,10 @@

name: PR Assignee & Team Review Request

permissions:
contents: read
pull-requests: write

on:
pull_request:
types: [opened, reopened, ready_for_review]
Copilot is powered by AI and may make mistakes. Always verify output.
49 changes: 43 additions & 6 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
import java.io.FileInputStream
import java.util.Properties
import org.jetbrains.kotlin.gradle.dsl.JvmTarget

plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
id("com.google.devtools.ksp")
id("com.google.dagger.hilt.android")
}

// Keystore.properties
Expand All @@ -27,10 +30,10 @@ android {

defaultConfig {
applicationId = "com.sampoom.android"
minSdk = 24
minSdk = 26
targetSdk = 36
versionCode = 1
versionName = "1.0"
versionCode = 2
versionName = "1.0.1"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
Expand All @@ -48,17 +51,51 @@ android {
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = "11"
isCoreLibraryDesugaringEnabled = true
}
buildFeatures {
compose = true
buildConfig = true
}
}

// Kotlin compiler options migrated to Compiler Options DSL
kotlin {
compilerOptions {
jvmTarget.set(JvmTarget.JVM_11)
}
}

dependencies {
// hilt
implementation(libs.hilt.android)
ksp(libs.hilt.android.compiler)
implementation(libs.androidx.hilt.lifecycle.viewmodel.compose)
implementation(libs.androidx.hilt.navigation.compose)

// Navigation
implementation(libs.androidx.navigation.compose)

// Retrofit
implementation(libs.retrofit)
implementation(libs.converter.gson)

// OKHttp
implementation(libs.logging.interceptor)

// DataStore
implementation(libs.androidx.datastore.preferences)

// Paging
implementation(libs.androidx.paging.runtime)
implementation(libs.androidx.paging.compose)

coreLibraryDesugaring(libs.desugar.jdk.libs)

implementation(libs.androidx.core.splashscreen)
implementation(libs.androidx.material)
implementation(libs.androidx.material.icons.core)
implementation(libs.androidx.material.icons.extended)
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.activity.compose)
Expand Down
10 changes: 9 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,27 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">

<uses-permission android:name="android.permission.INTERNET"/>

<application
android:name=".app.Application"
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:usesCleartextTraffic="true"
android:theme="@style/Theme.SampoomManagement">

<meta-data
android:name="com.android.application.theme_icon"
android:value="true" />

<activity
android:name=".MainActivity"
android:exported="true"
android:label="@string/app_name"
android:theme="@style/Theme.SampoomManagement">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
Expand Down
Binary file added app/src/main/ic_launcher-playstore.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
53 changes: 22 additions & 31 deletions app/src/main/java/com/sampoom/android/MainActivity.kt
Original file line number Diff line number Diff line change
@@ -1,47 +1,38 @@
package com.sampoom.android

import android.os.Build
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.SystemBarStyle
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import com.sampoom.android.ui.theme.SampoomManagementTheme
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.toArgb
import com.sampoom.android.app.navigation.AppNavHost
import com.sampoom.android.core.ui.theme.SampoomManagementTheme
import dagger.hilt.android.AndroidEntryPoint

@AndroidEntryPoint
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
enableEdgeToEdge(
statusBarStyle = SystemBarStyle.auto(
lightScrim = Color.Transparent.toArgb(),
darkScrim = Color.Transparent.toArgb()
),
navigationBarStyle = SystemBarStyle.auto(
lightScrim = Color.Transparent.toArgb(),
darkScrim = Color.Transparent.toArgb()
)
)
if (Build.VERSION.SDK_INT >= 29) {
window.isNavigationBarContrastEnforced = false
}
setContent {
SampoomManagementTheme {
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
Greeting(
name = "Android",
modifier = Modifier.padding(innerPadding)
)
}
AppNavHost()
}
}
}
}

@Composable
fun Greeting(name: String, modifier: Modifier = Modifier) {
Text(
text = "Hello $name!",
modifier = modifier
)
}

@Preview(showBackground = true)
@Composable
fun GreetingPreview() {
SampoomManagementTheme {
Greeting("Android")
}
}
27 changes: 27 additions & 0 deletions app/src/main/java/com/sampoom/android/MainActivityViewModel.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.sampoom.android

import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.sampoom.android.core.util.GlobalMessageHandler
import com.sampoom.android.feature.auth.domain.model.User
import com.sampoom.android.feature.auth.domain.usecase.GetStoredUserUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.launch
import javax.inject.Inject

@HiltViewModel
class MainActivityViewModel @Inject constructor(
val messageHandler: GlobalMessageHandler,
private val getStoredUserUseCase: GetStoredUserUseCase
) : ViewModel() {
private val _user = MutableStateFlow<User?>(null)
val user: StateFlow<User?> = _user

init {
viewModelScope.launch {
_user.value = getStoredUserUseCase()
}
}
}
7 changes: 7 additions & 0 deletions app/src/main/java/com/sampoom/android/app/Application.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.sampoom.android.app

import android.app.Application
import dagger.hilt.android.HiltAndroidApp

@HiltAndroidApp
class Application : Application()
Loading