Skip to content

Commit

Permalink
Merge pull request #18 from TeamPINGLE/feat-bottom-navigation
Browse files Browse the repository at this point in the history
[feat] Bottom Navigation + Status Bar
  • Loading branch information
jihyunniiii committed Jan 3, 2024
2 parents abe3c2c + 11a9493 commit cd58454
Show file tree
Hide file tree
Showing 32 changed files with 413 additions and 23 deletions.
50 changes: 30 additions & 20 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,39 @@
android:usesCleartextTraffic="true"
tools:targetApi="31">

<activity
android:name=".presentation.ui.dummy.DummyActivity"
android:exported="true"
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity
android:name=".presentation.ui.dummy.DummyCustomDEditTextActivity"
android:exported="false"
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity"/>

<activity
android:name=".presentation.ui.main.MainActivity"
android:exported="false"
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity" />

<activity
android:name=".presentation.ui.main.plan.PlanActivity"
android:exported="false"
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity" />

<meta-data
android:name="io.sentry.dsn"
android:value="${IO_SENTRY_DSN}" />

<meta-data
android:name="io.sentry.traces.user-interaction.enable"
android:value="true" />
Expand All @@ -30,30 +59,11 @@
<meta-data
android:name="io.sentry.attach-view-hierarchy"
android:value="true" />

<meta-data
android:name="io.sentry.traces.sample-rate"
android:value="1.0" />
<meta-data
android:name="io.sentry.traces.profiling.sample-rate"
android:value="1.0" />

<activity
android:name=".presentation.ui.dummy.DummyActivity"
android:exported="true"
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity
android:name=".presentation.ui.dummy.DummyCustomDEditTextActivity"
android:exported="false"
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity"/>
</application>
</manifest>
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
package org.sopt.pingle.presentation.ui.main

import android.content.Intent
import android.os.Bundle
import androidx.fragment.app.Fragment
import androidx.fragment.app.commit
import androidx.fragment.app.replace
import org.sopt.pingle.R
import org.sopt.pingle.databinding.ActivityMainBinding
import org.sopt.pingle.presentation.ui.main.commend.CommendFragment
import org.sopt.pingle.presentation.ui.main.home.map.MapFragment
import org.sopt.pingle.presentation.ui.main.mypingle.MyPingleFragment
import org.sopt.pingle.presentation.ui.main.plan.PlanActivity
import org.sopt.pingle.presentation.ui.main.setting.SettingFragment
import org.sopt.pingle.util.base.BindingActivity

class MainActivity : BindingActivity<ActivityMainBinding>(R.layout.activity_main) {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

initLayout()
initBnvMainAllNaviItemSelectedListener()
}

override fun onResume() {
super.onResume()

updateBnvMainAllNaviSelectedItemByFragment()
}

private fun initLayout() {
supportFragmentManager.findFragmentById(R.id.fcv_main_all_navi)
?: navigateToFragment<MapFragment>()
}

private fun initBnvMainAllNaviItemSelectedListener() {
binding.bnvMainAllNavi.setOnItemSelectedListener { menuItem ->
when (menuItem.itemId) {
R.id.menu_all_navi_home -> navigateToFragment<MapFragment>()
R.id.menu_all_navi_commend -> navigateToFragment<CommendFragment>()
R.id.menu_all_navi_add -> navigateToPlan()
R.id.menu_all_navi_mypingle -> navigateToFragment<MyPingleFragment>()
R.id.menu_all_navi_setting -> navigateToFragment<SettingFragment>()
}
true
}
}

private fun updateBnvMainAllNaviSelectedItemByFragment() {
binding.bnvMainAllNavi.selectedItemId =
when (supportFragmentManager.findFragmentById(R.id.fcv_main_all_navi)) {
is CommendFragment -> R.id.menu_all_navi_commend
is MyPingleFragment -> R.id.menu_all_navi_mypingle
is SettingFragment -> R.id.menu_all_navi_setting
else -> R.id.menu_all_navi_home
}
}

private fun navigateToPlan() {
Intent(this@MainActivity, PlanActivity::class.java).apply {
startActivity(this)
}
}

private inline fun <reified T : Fragment> navigateToFragment() {
supportFragmentManager.commit {
replace<T>(R.id.fcv_main_all_navi, T::class.java.canonicalName)
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package org.sopt.pingle.presentation.ui.main.commend

import android.os.Bundle
import android.view.View
import org.sopt.pingle.R
import org.sopt.pingle.databinding.FragmentCommendBinding
import org.sopt.pingle.util.base.BindingFragment

class CommendFragment : BindingFragment<FragmentCommendBinding>(R.layout.fragment_commend) {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package org.sopt.pingle.presentation.ui.main.home.map

import android.os.Bundle
import android.view.View
import org.sopt.pingle.R
import org.sopt.pingle.databinding.FragmentMapBinding
import org.sopt.pingle.util.base.BindingFragment

class MapFragment : BindingFragment<FragmentMapBinding>(R.layout.fragment_map) {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package org.sopt.pingle.presentation.ui.main.mypingle

import android.os.Bundle
import android.view.View
import org.sopt.pingle.R
import org.sopt.pingle.databinding.FragmentMyPingleBinding
import org.sopt.pingle.util.base.BindingFragment

class MyPingleFragment : BindingFragment<FragmentMyPingleBinding>(R.layout.fragment_my_pingle) {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package org.sopt.pingle.presentation.ui.main.plan

import android.os.Bundle
import org.sopt.pingle.R
import org.sopt.pingle.databinding.ActivityPlanBinding
import org.sopt.pingle.util.base.BindingActivity

class PlanActivity : BindingActivity<ActivityPlanBinding>(R.layout.activity_plan) {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_plan)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package org.sopt.pingle.presentation.ui.main.setting

import android.os.Bundle
import android.view.View
import org.sopt.pingle.R
import org.sopt.pingle.databinding.FragmentSettingBinding
import org.sopt.pingle.util.base.BindingFragment

class SettingFragment : BindingFragment<FragmentSettingBinding>(R.layout.fragment_setting) {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
}
}
5 changes: 5 additions & 0 deletions app/src/main/res/drawable/selector_all_navi_add.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_all_navi_add_active_24" android:state_checked="true" />
<item android:drawable="@drawable/ic_all_navi_add_inactivated_24" android:state_checked="false" />
</selector>
5 changes: 5 additions & 0 deletions app/src/main/res/drawable/selector_all_navi_color.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/white" android:state_checked="true" />
<item android:color="@color/g_07" android:state_checked="false" />
</selector>
5 changes: 5 additions & 0 deletions app/src/main/res/drawable/selector_all_navi_commend.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_all_navi_commend_active_24" android:state_checked="true" />
<item android:drawable="@drawable/ic_all_navi_commend_inactivated_24" android:state_checked="false" />
</selector>
5 changes: 5 additions & 0 deletions app/src/main/res/drawable/selector_all_navi_home.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_all_navi_home_active_24" android:state_checked="true" />
<item android:drawable="@drawable/ic_all_navi_home_inactivated_24" android:state_checked="false" />
</selector>
5 changes: 5 additions & 0 deletions app/src/main/res/drawable/selector_all_navi_mypingle.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_all_navi_mypingle_active_24" android:state_checked="true" />
<item android:drawable="@drawable/ic_all_navi_mypingle_inactivated_24" android:state_checked="false" />
</selector>
5 changes: 5 additions & 0 deletions app/src/main/res/drawable/selector_all_navi_setting.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_all_navi_setting_active_24" android:state_checked="true" />
<item android:drawable="@drawable/ic_all_navi_setting_inactivated_24" android:state_checked="false" />
</selector>
45 changes: 45 additions & 0 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<?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"
xmlns:tools="http://schemas.android.com/tools">

<data>

</data>

<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".presentation.ui.main.MainActivity">

<androidx.fragment.app.FragmentContainerView
android:id="@+id/fcv_main_all_navi"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@id/bnv_main_all_navi"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bnv_main_all_navi"
android:layout_width="0dp"
android:layout_height="@dimen/bottom_navi_height"
android:background="@color/black"
app:itemActiveIndicatorStyle="@android:color/transparent"
app:itemBackground="@android:color/transparent"
app:itemIconTint="@drawable/selector_all_navi_color"
app:itemPaddingBottom="8dp"
app:itemPaddingTop="7dp"
app:itemRippleColor="@android:color/transparent"
app:itemTextAppearanceActive="@style/TextAppearance.Pingle.Cap.Semi.12"
app:itemTextAppearanceInactive="@style/TextAppearance.Pingle.Cap.Semi.12"
app:itemTextColor="@drawable/selector_all_navi_color"
app:labelVisibilityMode="labeled"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:menu="@menu/all_navi_menu" />

</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
27 changes: 27 additions & 0 deletions app/src/main/res/layout/activity_plan.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?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"
xmlns:tools="http://schemas.android.com/tools">

<data>

</data>

<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".presentation.ui.main.plan.PlanActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="핑글 개최 프로세스"
android:textAppearance="@style/TextAppearance.Pingle.Title.Semi.32"
android:textColor="@color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
27 changes: 27 additions & 0 deletions app/src/main/res/layout/fragment_commend.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?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"
xmlns:tools="http://schemas.android.com/tools">

<data>

</data>

<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".presentation.ui.main.commend.CommendFragment">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="추천/플레이스 히스토리"
android:textAppearance="@style/TextAppearance.Pingle.Title.Semi.32"
android:textColor="@color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
27 changes: 27 additions & 0 deletions app/src/main/res/layout/fragment_map.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?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"
xmlns:tools="http://schemas.android.com/tools">

<data>

</data>

<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".presentation.ui.main.home.map.MapFragment">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="메인 지도"
android:textAppearance="@style/TextAppearance.Pingle.Title.Semi.32"
android:textColor="@color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
Loading

0 comments on commit cd58454

Please sign in to comment.