-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[UI/#35] splash screen 구현 #38
Changes from all commits
81192ab
3afef29
7af74b5
ad47a4e
7eec71f
d83589e
9109ae7
63a0734
a32c2f0
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,5 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"> | ||
|
||
</manifest> | ||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> | ||
</manifest> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package com.going.presentation.splash | ||
|
||
import android.content.Context | ||
import android.net.ConnectivityManager | ||
import android.net.NetworkCapabilities | ||
|
||
object NetworkManager { | ||
fun checkNetworkState(context: Context): Boolean { | ||
val connectivityManager: ConnectivityManager = | ||
context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager | ||
|
||
val network = connectivityManager.activeNetwork ?: return false | ||
val actNetwork = connectivityManager.getNetworkCapabilities(network) ?: return false | ||
return when { | ||
actNetwork.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> true | ||
actNetwork.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> true | ||
else -> false | ||
} | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
package com.going.presentation.splash | ||
|
||
import android.app.AlertDialog | ||
import android.content.Intent | ||
import android.os.Bundle | ||
import android.os.Handler | ||
import android.os.Looper | ||
import com.going.presentation.R | ||
import com.going.presentation.auth.SignInActivity | ||
import com.going.presentation.databinding.ActivitySplashBinding | ||
import com.going.ui.base.BaseActivity | ||
|
||
class SplashActivity : BaseActivity<ActivitySplashBinding>(R.layout.activity_splash) { | ||
override fun onCreate(savedInstanceState: Bundle?) { | ||
super.onCreate(savedInstanceState) | ||
|
||
checkConnectedNetwork() | ||
} | ||
|
||
private fun checkConnectedNetwork() { | ||
if (NetworkManager.checkNetworkState(this)) { | ||
initSplash() | ||
} else { | ||
showNetworkErrorAlertDialog() | ||
} | ||
} | ||
|
||
private fun initSplash() { | ||
Handler(Looper.getMainLooper()).postDelayed({ | ||
navigateToSignInScreen() | ||
if (false) { // 자동 로그인 판정으로 변경 예정 | ||
navigateToMainScreen() | ||
} else { | ||
navigateToSignInScreen() | ||
} | ||
}, 3000) | ||
} | ||
|
||
private fun showNetworkErrorAlertDialog() = | ||
AlertDialog.Builder(this) | ||
.setTitle(R.string.notice) | ||
.setMessage(R.string.internet_connect_error) | ||
.setCancelable(false) | ||
.setPositiveButton( | ||
R.string.okay, | ||
) { _, _ -> | ||
finishAffinity() | ||
Comment on lines
+44
to
+47
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 불필요한 아이들은 이렇게 처리할 수도 있군요! |
||
} | ||
.create() | ||
.show() | ||
|
||
private fun navigateToMainScreen() { | ||
// Main이 나오면 구현 예정 | ||
finish() | ||
} | ||
|
||
private fun navigateToSignInScreen() { | ||
Intent(this, SignInActivity::class.java).apply { | ||
startActivity(this) | ||
} | ||
finish() | ||
Comment on lines
+57
to
+61
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 스코프 함수 좋습니다! |
||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
<vector xmlns:android="http://schemas.android.com/apk/res/android" | ||
android:width="194dp" | ||
android:height="66dp" | ||
android:viewportWidth="194" | ||
android:viewportHeight="66"> | ||
<path | ||
android:pathData="M159.66,17.95V12.4H152.52L152.52,33.65C152.52,33.66 152.52,33.66 152.52,33.66C152.52,33.67 152.52,33.67 152.52,33.68L152.52,66H159.66L159.66,49.38C163.3,52.56 168.06,54.48 173.26,54.48C184.71,54.48 194,45.16 194,33.66C194,22.17 184.71,12.85 173.26,12.85C168.06,12.85 163.3,14.77 159.66,17.95ZM186.81,33.66C186.81,41.18 180.75,47.27 173.26,47.27C165.78,47.27 159.71,41.18 159.71,33.66C159.71,26.15 165.78,20.06 173.26,20.06C180.75,20.06 186.81,26.15 186.81,33.66Z" | ||
android:fillColor="#ffffff" | ||
android:fillType="evenOdd"/> | ||
<path | ||
android:pathData="M34.34,48.55V53.6H41.48V33.01C41.48,33.01 41.48,33 41.48,33C41.48,33 41.48,32.99 41.48,32.99V0.44L34.34,0.44V17.45C30.7,14.31 25.94,12.4 20.74,12.4C9.28,12.4 0,21.62 0,33C0,44.38 9.28,53.6 20.74,53.6C25.94,53.6 30.7,51.69 34.34,48.55ZM7.19,33C7.19,25.57 13.25,19.54 20.74,19.54C28.22,19.54 34.29,25.57 34.29,33C34.29,40.43 28.22,46.46 20.74,46.46C13.25,46.46 7.19,40.43 7.19,33Z" | ||
android:fillColor="#ffffff" | ||
android:fillType="evenOdd"/> | ||
<path | ||
android:pathData="M145.1,13.27V53.15H138.09V13.27H145.1ZM141.56,9.39C138.98,9.39 136.91,7.31 136.91,4.7C136.91,2.01 138.98,0 141.56,0C144.14,0 146.28,2.01 146.28,4.7C146.28,7.31 144.14,9.39 141.56,9.39Z" | ||
android:fillColor="#ffffff"/> | ||
<path | ||
android:pathData="M131.56,12.85V20.14H129.61C124.72,20.73 122.59,24.45 122.64,27.89V53.15H115.51V27.89C115.51,27.89 115.5,23.68 116.48,21.24C117.45,18.84 119.15,16.92 119.15,16.92C121.83,14.05 126.69,12.77 131.56,12.85Z" | ||
android:fillColor="#ffffff"/> | ||
<path | ||
android:pathData="M78.53,49.47C75.12,52.06 70.85,53.6 66.23,53.6C55.02,53.6 45.93,44.57 45.93,33.44C45.93,22.31 55.02,13.29 66.23,13.29C70.85,13.29 75.12,14.83 78.53,17.42C81.98,14.83 86.3,13.29 90.98,13.29C102.31,13.29 111.49,22.31 111.49,33.44C111.49,44.57 102.31,53.6 90.98,53.6C86.3,53.6 81.98,52.06 78.53,49.47ZM61.72,24.48C62.43,24.8 62.64,25.85 62.19,26.82C61.74,27.79 60.8,28.32 60.09,27.99C59.38,27.67 59.17,26.62 59.62,25.65C60.07,24.68 61.01,24.15 61.72,24.48ZM56.31,26.47C56.76,25.5 56.55,24.45 55.84,24.13C55.13,23.8 54.19,24.33 53.74,25.3C53.29,26.27 53.5,27.32 54.21,27.64C54.92,27.97 55.86,27.44 56.31,26.47ZM55.89,32.15C55.88,31.99 56,31.85 56.16,31.84L63.99,31.22C64.15,31.21 64.29,31.32 64.3,31.48L64.31,31.56C64.49,33.86 62.76,35.88 60.44,36.07C58.12,36.25 56.09,34.53 55.9,32.22L55.89,32.15Z" | ||
android:fillColor="#ffffff" | ||
android:fillType="evenOdd"/> | ||
</vector> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<layout xmlns:android="http://schemas.android.com/apk/res/android" | ||
xmlns:app="http://schemas.android.com/apk/res-auto"> | ||
|
||
<data> | ||
|
||
</data> | ||
|
||
<androidx.constraintlayout.widget.ConstraintLayout | ||
android:layout_width="match_parent" | ||
android:layout_height="match_parent" | ||
android:background="@color/red_500"> | ||
|
||
<ImageView | ||
android:src="@drawable/text_logo_doorip" | ||
android:layout_width="wrap_content" | ||
android:layout_height="wrap_content" | ||
app:layout_constraintStart_toStartOf="parent" | ||
app:layout_constraintEnd_toEndOf="parent" | ||
app:layout_constraintTop_toTopOf="parent" | ||
app:layout_constraintBottom_toBottomOf="parent" /> | ||
|
||
</androidx.constraintlayout.widget.ConstraintLayout> | ||
</layout> |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -58,4 +58,8 @@ | |
<item name="android:textAppearance">@style/TextAppearance.Doorip.Body3.Medi</item> | ||
</style> | ||
|
||
|
||
<style name="splash_delete" parent="Base.Theme.Doorip"> | ||
<item name="android:windowIsTranslucent">true</item> | ||
</style> | ||
Comment on lines
+62
to
+64
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 요 친구는 아이템 하나인 것 같은데, 무슨 기능을 위해 사용되나요? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 기존에 존재하는 splashScreen을 제거하는 기능을 합니다!! |
||
</resources> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
음~ 최고