Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 3 additions & 0 deletions Near/app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,9 @@ dependencies {

// Kakao Module
implementation(libs.v2.all)

// Splash Screen API
implementation(libs.androidx.core.splashscreen)
}

fun getProperty(propertyKey: String): String = gradleLocalProperties(rootDir, providers).getProperty(propertyKey)
15 changes: 9 additions & 6 deletions Near/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:icon="@mipmap/ic_launcher_round"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
Expand All @@ -20,25 +20,28 @@
<meta-data
android:name="com.kakao.sdk.AppKey"
android:value="${kakaoAppKey}" />

<!-- 카카오톡 로그인 콜백을 위한 Activity -->
<activity
android:name="com.kakao.sdk.auth.AuthCodeHandlerActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:host="oauth"
android:scheme="kakao${kakaoAppKey}" />

<data
android:host="oauth"
android:scheme="kakao${kakaoAppKey}" />
</intent-filter>
</activity>

<activity
android:name=".presentation.feature.main.MainActivity"
android:exported="true"
android:label="@string/app_name"
android:theme="@style/Theme.Near">
android:theme="@style/Theme.Near.Splash">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ private fun LoginIntroductionSection(modifier: Modifier = Modifier) {
Image(
modifier = modifier.wrapContentSize(Alignment.Center),
alignment = Alignment.Center,
painter = painterResource(R.drawable.ic_near_logo_title),
painter = painterResource(R.drawable.ic_near_logo_title_primary),
contentDescription = stringResource(R.string.near_logo_title),
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,47 @@ import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.activity.viewModels
import androidx.compose.runtime.getValue
import androidx.core.splashscreen.SplashScreen
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.lifecycle.lifecycleScope
import com.alarmy.near.presentation.ui.theme.NearTheme
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.launch

@AndroidEntryPoint
class MainActivity : ComponentActivity() {
private val mainViewModel: MainViewModel by viewModels()

override fun onCreate(savedInstanceState: Bundle?) {
val splashScreen = installSplashScreen()

super.onCreate(savedInstanceState)
enableEdgeToEdge()
setupSplashScreen(splashScreen)

setContent {
NearTheme {
NearApp()
val uiState by mainViewModel.uiState.collectAsStateWithLifecycle()
if (!uiState.isLoading) {
NearApp(
isLoggedIn = uiState.isLoggedIn
)
}
}
}
}

/**
* 스플래시 스크린을 설정하고 MainViewModel의 상태를 관찰합니다.
* API 스플래시가 표시되는 동안 백그라운드에서 검증을 수행합니다.
*/
private fun setupSplashScreen(splashScreen: SplashScreen) {
lifecycleScope.launch {
mainViewModel.uiState.collect { uiState ->
splashScreen.setKeepOnScreenCondition { uiState.isLoading }
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package com.alarmy.near.presentation.feature.main

import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.alarmy.near.data.repository.AuthRepository
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.launch
import javax.inject.Inject

@HiltViewModel
class MainViewModel @Inject constructor(
private val authRepository: AuthRepository,
) : ViewModel() {

// UI 상태 관리
private val _uiState = MutableStateFlow(MainUiState())
val uiState: StateFlow<MainUiState> = _uiState.asStateFlow()

init {
checkLoginStatus()
}

/**
* 로그인 상태를 확인하고 스플래시 스크린을 제어합니다.
* API 스플래시가 표시되는 동안 백그라운드에서 검증을 수행합니다.
*/
private fun checkLoginStatus() {
viewModelScope.launch {

// 로그인 상태 검증
val isLoggedIn = runCatching {
authRepository.isLoggedIn()
}.getOrElse { false }

// UI 상태 업데이트
_uiState.value = _uiState.value.copy(
isLoading = false,
isLoggedIn = isLoggedIn
)
}
}
}

/**
* MainActivity의 UI 상태를 관리하는 데이터 클래스
*/
data class MainUiState(
val isLoading: Boolean = true,
val isLoggedIn: Boolean = false,
)
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import androidx.compose.foundation.layout.consumeWindowInsets
import androidx.compose.foundation.layout.exclude
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.ime
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.safeDrawing
import androidx.compose.foundation.layout.windowInsetsPadding
import androidx.compose.material3.Scaffold
Expand All @@ -26,6 +25,7 @@ import kotlinx.coroutines.launch
internal fun NearApp(
modifier: Modifier = Modifier,
navController: NavHostController = rememberNavController(),
isLoggedIn: Boolean = false,
) {
val snackBarState = remember { SnackbarHostState() }
val scope = rememberCoroutineScope()
Expand All @@ -48,6 +48,7 @@ internal fun NearApp(
NearNavHost(
modifier = Modifier.consumeWindowInsets(innerPadding), // 하위 뷰에 Padding을 소비한 것으로 알립니다.
navController = navController,
isLoggedIn = isLoggedIn,
onShowSnackbar = {
scope.launch {
snackBarState.showSnackbar(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,33 +7,37 @@ import androidx.compose.ui.platform.LocalContext
import androidx.core.net.toUri
import androidx.navigation.NavHostController
import androidx.navigation.compose.NavHost
import androidx.navigation.navOptions
import com.alarmy.near.presentation.feature.friendprofile.navigation.friendProfileNavGraph
import com.alarmy.near.presentation.feature.friendprofile.navigation.navigateToFriendProfile
import com.alarmy.near.presentation.feature.friendprofileedittor.navigation.FRIEND_PROFILE_EDIT_COMPLETE_KEY
import com.alarmy.near.presentation.feature.friendprofileedittor.navigation.friendProfileEditorNavGraph
import com.alarmy.near.presentation.feature.friendprofileedittor.navigation.navigateToFriendProfileEditor
import com.alarmy.near.presentation.feature.home.navigation.RouteHome
import com.alarmy.near.presentation.feature.home.navigation.homeNavGraph
import java.net.URLEncoder
import java.nio.charset.StandardCharsets
import com.alarmy.near.presentation.feature.home.navigation.navigateToHome
import com.alarmy.near.presentation.feature.login.navigation.RouteLogin
import com.alarmy.near.presentation.feature.login.navigation.loginNavGraph
import java.net.URLEncoder
import java.nio.charset.StandardCharsets

@Composable
internal fun NearNavHost(
modifier: Modifier = Modifier,
navController: NavHostController,
isLoggedIn: Boolean = false,
onShowSnackbar: (Throwable?) -> Unit = { _ -> },
) {
val context = LocalContext.current

/*
* 화면 이동 및 구성을 위한 컴포저블 함수입니다.
* 로그인 상태에 따라 즉시 적절한 화면으로 시작합니다.
* */
NavHost(
modifier = modifier,
navController = navController,
startDestination = RouteHome,
startDestination = if (isLoggedIn) RouteHome else RouteLogin,
) {
friendProfileNavGraph(onShowErrorSnackBar = onShowSnackbar, onClickBackButton = {
navController.popBackStack()
Expand Down Expand Up @@ -72,12 +76,14 @@ internal fun NearNavHost(
)
navController.popBackStack()
})


// 로그인 화면 NavGraph
loginNavGraph(
onShowErrorSnackBar = onShowSnackbar,
onNavigateToHome = {
navController.navigateToHome(
navOptions = androidx.navigation.navOptions {
navOptions = navOptions {
popUpTo(RouteLogin) { inclusive = true }
}
)
Expand All @@ -94,5 +100,21 @@ internal fun NearNavHost(
onAlarmClick = {},
onAddContactClick = {},
)

// 친구 프로필 화면 NavGraph
friendProfileNavGraph(
onShowErrorSnackBar = onShowSnackbar,
onClickBackButton = {
navController.popBackStack()
}
)

// 친구 프로필 편집 화면 NavGraph
friendProfileEditorNavGraph(
onShowErrorSnackBar = onShowSnackbar,
onClickBackButton = {
navController.popBackStack()
}
)
}
}
Binary file added Near/app/src/main/res/drawable-hdpi/img_bg.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Near/app/src/main/res/drawable-xhdpi/img_bg.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Near/app/src/main/res/drawable-xxhdpi/img_bg.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Near/app/src/main/res/drawable-xxxhdpi/img_bg.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
59 changes: 31 additions & 28 deletions Near/app/src/main/res/drawable/ic_launcher_foreground.xml
Original file line number Diff line number Diff line change
@@ -1,30 +1,33 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
<aapt:attr name="android:fillColor">
<gradient
android:endX="85.84757"
android:endY="92.4963"
android:startX="42.9492"
android:startY="49.59793"
android:type="linear">
<item
android:color="#44000000"
android:offset="0.0" />
<item
android:color="#00000000"
android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<path
android:fillColor="#FFFFFF"
android:fillType="nonZero"
android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
</vector>
android:width="100dp"
android:height="101dp"
android:viewportWidth="100"
android:viewportHeight="101">
<path
android:pathData="M49.68,12C66.06,12 79.88,22.94 84.24,37.9C88.31,36.32 93.04,37.89 95.29,41.79C97.78,46.1 96.3,51.6 92,54.09L86.8,57.09C85.98,57.56 85.12,57.89 84.25,58.08C79.88,73.06 66.06,84 49.68,84C33.25,84 19.4,73 15.08,57.96C14.36,57.77 13.66,57.48 12.99,57.09L7.8,54.09C3.49,51.6 2.02,46.1 4.5,41.79C6.68,38.02 11.18,36.42 15.16,37.76C19.57,22.87 33.35,12 49.68,12Z">
<aapt:attr name="android:fillColor">
<gradient
android:centerX="59.58"
android:centerY="55.13"
android:gradientRadius="54.35"
android:type="radial">
<item android:offset="0.17" android:color="#FF8ACCFF"/>
<item android:offset="1" android:color="#FFD9EEFF"/>
</gradient>
</aapt:attr>
</path>
<path
android:pathData="M43.25,40.25m-2.25,0a2.25,2.25 0,1 1,4.5 0a2.25,2.25 0,1 1,-4.5 0"
android:fillColor="#1A1A1A"/>
<path
android:pathData="M52.47,44.38C52.76,44.38 53.01,44.61 52.95,44.9C52.91,45.06 52.86,45.23 52.8,45.38C52.67,45.7 52.47,45.99 52.23,46.23C51.99,46.48 51.7,46.67 51.38,46.8C51.06,46.93 50.72,47 50.38,47C50.03,47 49.69,46.93 49.37,46.8C49.05,46.67 48.76,46.48 48.52,46.23C48.28,45.99 48.08,45.7 47.95,45.38C47.89,45.23 47.84,45.06 47.8,44.9C47.74,44.61 47.99,44.38 48.28,44.38L50.38,44.38H52.47Z"
android:fillColor="#1A1A1A"/>
<path
android:pathData="M56.75,40.25m-2.25,0a2.25,2.25 0,1 1,4.5 0a2.25,2.25 0,1 1,-4.5 0"
android:fillColor="#1A1A1A"/>
<path
android:pathData="M33,92a16,3 0,1 0,32 0a16,3 0,1 0,-32 0z"
android:fillColor="#8ACCFF"
android:fillAlpha="0.17"/>
</vector>
18 changes: 18 additions & 0 deletions Near/app/src/main/res/drawable/ic_near_logo_title_white.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="100dp"
android:height="27dp"
android:viewportWidth="100"
android:viewportHeight="27">
<path
android:pathData="M85.89,26V1H89.64V7.15C89.77,6.72 90.02,6.15 90.39,5.45C90.79,4.72 91.36,3.98 92.09,3.25C92.82,2.52 93.74,1.9 94.84,1.4C95.97,0.87 97.31,0.6 98.84,0.6H99.09V4.35H98.64C96.77,4.35 95.16,4.87 93.79,5.9C92.46,6.9 91.42,8.22 90.69,9.85C89.99,11.45 89.64,13.17 89.64,15V26H85.89Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M66.83,26.4C64.39,26.4 62.26,25.83 60.43,24.7C58.63,23.53 57.23,21.97 56.23,20C55.23,18.03 54.73,15.87 54.73,13.5C54.73,11.1 55.23,8.93 56.23,7C57.23,5.03 58.63,3.48 60.43,2.35C62.26,1.18 64.39,0.6 66.83,0.6C68.89,0.6 70.66,1 72.13,1.8C73.63,2.6 74.84,3.68 75.78,5.05V1H79.53V26H75.78V22C74.84,23.33 73.63,24.4 72.13,25.2C70.66,26 68.89,26.4 66.83,26.4ZM67.33,23C69.19,23 70.76,22.57 72.03,21.7C73.33,20.83 74.31,19.68 74.98,18.25C75.64,16.78 75.98,15.2 75.98,13.5C75.98,11.77 75.64,10.18 74.98,8.75C74.31,7.32 73.33,6.17 72.03,5.3C70.76,4.43 69.19,4 67.33,4C65.49,4 63.91,4.43 62.58,5.3C61.24,6.17 60.23,7.32 59.53,8.75C58.83,10.18 58.48,11.77 58.48,13.5C58.48,15.2 58.83,16.78 59.53,18.25C60.23,19.68 61.24,20.83 62.58,21.7C63.91,22.57 65.49,23 67.33,23Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M39.67,26.4C37.14,26.4 34.92,25.83 33.02,24.7C31.12,23.53 29.64,21.97 28.57,20C27.54,18.03 27.02,15.87 27.02,13.5C27.02,11.1 27.52,8.93 28.52,7C29.52,5.03 30.96,3.48 32.82,2.35C34.69,1.18 36.89,0.6 39.42,0.6C41.99,0.6 44.19,1.18 46.02,2.35C47.89,3.48 49.32,5.03 50.32,7C51.32,8.93 51.82,11.1 51.82,13.5V15H30.87C31.07,16.47 31.54,17.82 32.27,19.05C33.04,20.25 34.06,21.22 35.32,21.95C36.59,22.65 38.06,23 39.72,23C41.49,23 42.97,22.62 44.17,21.85C45.37,21.05 46.31,20.03 46.97,18.8H51.07C50.21,21.03 48.82,22.87 46.92,24.3C45.06,25.7 42.64,26.4 39.67,26.4ZM30.92,11.5H47.92C47.59,9.37 46.69,7.58 45.22,6.15C43.76,4.72 41.82,4 39.42,4C37.02,4 35.09,4.72 33.62,6.15C32.19,7.58 31.29,9.37 30.92,11.5Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M0.38,26V1H4.13V4.9C5.03,3.7 6.13,2.68 7.43,1.85C8.73,1.02 10.39,0.6 12.43,0.6C14.16,0.6 15.77,1.02 17.27,1.85C18.81,2.65 20.04,3.87 20.98,5.5C21.94,7.1 22.42,9.08 22.42,11.45V26H18.67V11.55C18.67,9.28 18.02,7.47 16.73,6.1C15.43,4.7 13.74,4 11.68,4C10.27,4 9.01,4.32 7.88,4.95C6.74,5.58 5.82,6.48 5.13,7.65C4.46,8.78 4.13,10.1 4.13,11.6V26H0.38Z"
android:fillColor="#ffffff"/>
</vector>
21 changes: 21 additions & 0 deletions Near/app/src/main/res/drawable/img_splash_logo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="192dp"
android:height="192dp"
android:viewportWidth="192"
android:viewportHeight="192">
<path
android:pathData="M0,0h192v192h-192z"
android:fillColor="#ffffff"/>
<path
android:pathData="M132.52,108.4V83.4H136.27V89.55C136.4,89.12 136.65,88.55 137.02,87.85C137.42,87.12 137.98,86.38 138.72,85.65C139.45,84.92 140.37,84.3 141.47,83.8C142.6,83.27 143.93,83 145.47,83H145.72V86.75H145.27C143.4,86.75 141.78,87.27 140.42,88.3C139.08,89.3 138.05,90.62 137.32,92.25C136.62,93.85 136.27,95.57 136.27,97.4V108.4H132.52Z"
android:fillColor="#5AA2E9"/>
<path
android:pathData="M113.45,108.8C111.02,108.8 108.89,108.23 107.05,107.1C105.25,105.93 103.85,104.37 102.85,102.4C101.85,100.43 101.35,98.27 101.35,95.9C101.35,93.5 101.85,91.33 102.85,89.4C103.85,87.43 105.25,85.88 107.05,84.75C108.89,83.58 111.02,83 113.45,83C115.52,83 117.29,83.4 118.75,84.2C120.25,85 121.47,86.08 122.4,87.45V83.4H126.15V108.4H122.4V104.4C121.47,105.73 120.25,106.8 118.75,107.6C117.29,108.4 115.52,108.8 113.45,108.8ZM113.95,105.4C115.82,105.4 117.39,104.97 118.65,104.1C119.95,103.23 120.93,102.08 121.6,100.65C122.27,99.18 122.6,97.6 122.6,95.9C122.6,94.17 122.27,92.58 121.6,91.15C120.93,89.72 119.95,88.57 118.65,87.7C117.39,86.83 115.82,86.4 113.95,86.4C112.12,86.4 110.54,86.83 109.2,87.7C107.87,88.57 106.85,89.72 106.15,91.15C105.45,92.58 105.1,94.17 105.1,95.9C105.1,97.6 105.45,99.18 106.15,100.65C106.85,102.08 107.87,103.23 109.2,104.1C110.54,104.97 112.12,105.4 113.95,105.4Z"
android:fillColor="#5AA2E9"/>
<path
android:pathData="M86.29,108.8C83.76,108.8 81.54,108.23 79.64,107.1C77.74,105.93 76.26,104.37 75.19,102.4C74.16,100.43 73.64,98.27 73.64,95.9C73.64,93.5 74.14,91.33 75.14,89.4C76.14,87.43 77.58,85.88 79.44,84.75C81.31,83.58 83.51,83 86.04,83C88.61,83 90.81,83.58 92.64,84.75C94.51,85.88 95.94,87.43 96.94,89.4C97.94,91.33 98.44,93.5 98.44,95.9V97.4H77.49C77.69,98.87 78.16,100.22 78.89,101.45C79.66,102.65 80.68,103.62 81.94,104.35C83.21,105.05 84.68,105.4 86.34,105.4C88.11,105.4 89.59,105.02 90.79,104.25C91.99,103.45 92.93,102.43 93.59,101.2H97.69C96.83,103.43 95.44,105.27 93.54,106.7C91.68,108.1 89.26,108.8 86.29,108.8ZM77.54,93.9H94.54C94.21,91.77 93.31,89.98 91.84,88.55C90.38,87.12 88.44,86.4 86.04,86.4C83.64,86.4 81.71,87.12 80.24,88.55C78.81,89.98 77.91,91.77 77.54,93.9Z"
android:fillColor="#5AA2E9"/>
<path
android:pathData="M47,108.4V83.4H50.75V87.3C51.65,86.1 52.75,85.08 54.05,84.25C55.35,83.42 57.02,83 59.05,83C60.78,83 62.4,83.42 63.9,84.25C65.43,85.05 66.67,86.27 67.6,87.9C68.57,89.5 69.05,91.48 69.05,93.85V108.4H65.3V93.95C65.3,91.68 64.65,89.87 63.35,88.5C62.05,87.1 60.37,86.4 58.3,86.4C56.9,86.4 55.63,86.72 54.5,87.35C53.37,87.98 52.45,88.88 51.75,90.05C51.08,91.18 50.75,92.5 50.75,94V108.4H47Z"
android:fillColor="#5AA2E9"/>
</vector>
6 changes: 0 additions & 6 deletions Near/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml

This file was deleted.

6 changes: 2 additions & 4 deletions Near/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
<monochrome android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>
<foreground android:drawable="@mipmap/ic_launcher"/>
</adaptive-icon>
Binary file added Near/app/src/main/res/mipmap-hdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed Near/app/src/main/res/mipmap-hdpi/ic_launcher.webp
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file added Near/app/src/main/res/mipmap-mdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed Near/app/src/main/res/mipmap-mdpi/ic_launcher.webp
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed Near/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed Near/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading