feat: Inbox WIP(#222)
This commit is contained in:
parent
e50a65571f
commit
2855093f5f
11 changed files with 171 additions and 0 deletions
|
@ -221,6 +221,10 @@
|
|||
<data android:host="discord.dantotsu.com" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".inbox.InboxActivity"
|
||||
android:label="Inbox Activity">
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".connections.anilist.UrlMedia"
|
||||
android:configChanges="orientation|screenSize|layoutDirection"
|
||||
|
|
|
@ -27,6 +27,7 @@ import ani.dantotsu.connections.anilist.AnilistHomeViewModel
|
|||
import ani.dantotsu.connections.anilist.getUserId
|
||||
import ani.dantotsu.currContext
|
||||
import ani.dantotsu.databinding.FragmentHomeBinding
|
||||
import ani.dantotsu.inbox.InboxActivity
|
||||
import ani.dantotsu.loadImage
|
||||
import ani.dantotsu.media.Media
|
||||
import ani.dantotsu.media.MediaAdaptor
|
||||
|
@ -77,6 +78,7 @@ class HomeFragment : Fragment() {
|
|||
binding.homeUserChaptersRead.text = Anilist.chapterRead.toString()
|
||||
binding.homeUserAvatar.loadImage(Anilist.avatar)
|
||||
if (!(PrefManager.getVal(PrefName.BannerAnimations) as Boolean)) binding.homeUserBg.pause()
|
||||
binding.imageButton.startAnimation(setSlideIn())
|
||||
binding.homeUserBg.loadImage(Anilist.bg)
|
||||
binding.homeUserDataProgressBar.visibility = View.GONE
|
||||
|
||||
|
@ -305,6 +307,13 @@ class HomeFragment : Fragment() {
|
|||
}
|
||||
}
|
||||
|
||||
binding.imageButton.setOnClickListener {
|
||||
val intent = Intent(requireActivity(), InboxActivity::class.java)
|
||||
intent.flags = Intent.FLAG_ACTIVITY_SINGLE_TOP
|
||||
startActivity(intent)
|
||||
}
|
||||
|
||||
|
||||
val array = arrayOf(
|
||||
"AnimeContinue",
|
||||
"AnimeFav",
|
||||
|
|
8
app/src/main/java/ani/dantotsu/inbox/FeedFragment.kt
Normal file
8
app/src/main/java/ani/dantotsu/inbox/FeedFragment.kt
Normal file
|
@ -0,0 +1,8 @@
|
|||
package ani.dantotsu.inbox
|
||||
|
||||
import androidx.fragment.app.Fragment
|
||||
import ani.dantotsu.R
|
||||
|
||||
class FeedFragment : Fragment(R.layout.fragment_feed) {
|
||||
// testing rn
|
||||
}
|
60
app/src/main/java/ani/dantotsu/inbox/InboxActivity.kt
Normal file
60
app/src/main/java/ani/dantotsu/inbox/InboxActivity.kt
Normal file
|
@ -0,0 +1,60 @@
|
|||
package ani.dantotsu.inbox
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.ImageButton
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.view.updateLayoutParams
|
||||
import ani.dantotsu.databinding.ActivityInboxBinding
|
||||
import ani.dantotsu.R
|
||||
import ani.dantotsu.navBarHeight
|
||||
import nl.joery.animatedbottombar.AnimatedBottomBar
|
||||
|
||||
class InboxActivity : AppCompatActivity() {
|
||||
private lateinit var binding: ActivityInboxBinding
|
||||
private lateinit var navBar: AnimatedBottomBar
|
||||
private var selected: Int = 0
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
binding = ActivityInboxBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
|
||||
// Find the ImageButton from activity_inbox.xml
|
||||
val imageButton = findViewById<ImageButton>(R.id.imageButton)
|
||||
|
||||
navBar = binding.inboxNavBar
|
||||
navBar.updateLayoutParams<ViewGroup.MarginLayoutParams> { bottomMargin = navBarHeight }
|
||||
|
||||
val activityTab = navBar.createTab(R.drawable.inbox_filled, "Activity")
|
||||
val notificationTab =
|
||||
navBar.createTab(R.drawable.ic_round_notifications_active_24, "Notification")
|
||||
navBar.addTab(activityTab)
|
||||
navBar.addTab(notificationTab)
|
||||
|
||||
navBar.visibility = View.GONE
|
||||
|
||||
navBar.setOnTabSelectListener(object : AnimatedBottomBar.OnTabSelectListener {
|
||||
override fun onTabSelected(
|
||||
lastIndex: Int,
|
||||
lastTab: AnimatedBottomBar.Tab?,
|
||||
newIndex: Int,
|
||||
newTab: AnimatedBottomBar.Tab
|
||||
) {
|
||||
selected = newIndex
|
||||
|
||||
val fragmentTransaction = supportFragmentManager.beginTransaction()
|
||||
when (newIndex) {
|
||||
0 -> fragmentTransaction.replace(R.id.container, FeedFragment())
|
||||
1 -> fragmentTransaction.replace(R.id.container, NotifsFragment())
|
||||
}
|
||||
fragmentTransaction.commit()
|
||||
}
|
||||
})
|
||||
|
||||
navBar.selectTabAt(selected)
|
||||
navBar.visibility = View.VISIBLE
|
||||
}
|
||||
}
|
8
app/src/main/java/ani/dantotsu/inbox/NotifsFragment.kt
Normal file
8
app/src/main/java/ani/dantotsu/inbox/NotifsFragment.kt
Normal file
|
@ -0,0 +1,8 @@
|
|||
package ani.dantotsu.inbox
|
||||
|
||||
import androidx.fragment.app.Fragment
|
||||
import ani.dantotsu.R
|
||||
|
||||
class NotifsFragment : Fragment(R.layout.fragment_notifs) {
|
||||
// testing rn
|
||||
}
|
5
app/src/main/res/drawable/inbox_empty.xml
Normal file
5
app/src/main/res/drawable/inbox_empty.xml
Normal file
|
@ -0,0 +1,5 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
|
||||
|
||||
<path android:fillColor="@android:color/white" android:pathData="M19,3L4.99,3c-1.11,0 -1.98,0.89 -1.98,2L3,19c0,1.1 0.88,2 1.99,2L19,21c1.1,0 2,-0.9 2,-2L21,5c0,-1.11 -0.9,-2 -2,-2zM19,15h-4c0,1.66 -1.35,3 -3,3s-3,-1.34 -3,-3L4.99,15L4.99,5L19,5v10z"/>
|
||||
|
||||
</vector>
|
5
app/src/main/res/drawable/inbox_filled.xml
Normal file
5
app/src/main/res/drawable/inbox_filled.xml
Normal file
|
@ -0,0 +1,5 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
|
||||
|
||||
<path android:fillColor="@android:color/white" android:pathData="M19,3L4.99,3c-1.11,0 -1.98,0.9 -1.98,2L3,19c0,1.1 0.88,2 1.99,2L19,21c1.1,0 2,-0.9 2,-2L21,5c0,-1.1 -0.9,-2 -2,-2zM19,15h-4c0,1.66 -1.35,3 -3,3s-3,-1.34 -3,-3L4.99,15L4.99,5L19,5v10zM16,10h-2L14,7h-4v3L8,10l4,4 4,-4z"/>
|
||||
|
||||
</vector>
|
48
app/src/main/res/layout/activity_inbox.xml
Normal file
48
app/src/main/res/layout/activity_inbox.xml
Normal file
|
@ -0,0 +1,48 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout 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"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_above="@id/inboxNavBar" />
|
||||
|
||||
<nl.joery.animatedbottombar.AnimatedBottomBar
|
||||
android:id="@+id/inboxNavBar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="72dp"
|
||||
android:layout_gravity="center_horizontal|bottom"
|
||||
android:background="?attr/colorSurface"
|
||||
android:padding="0dp"
|
||||
app:abb_animationInterpolator="@anim/over_shoot"
|
||||
app:abb_indicatorAppearance="round"
|
||||
app:abb_indicatorLocation="top"
|
||||
app:abb_selectedTabType="text"
|
||||
app:abb_textAppearance="@style/NavBarText"
|
||||
app:itemActiveIndicatorStyle="@style/BottomNavBar"
|
||||
app:itemIconTint="@color/tab_layout_icon"
|
||||
app:itemRippleColor="#00000000"
|
||||
app:itemTextAppearanceActive="@style/NavBarText"
|
||||
app:itemTextAppearanceInactive="@style/NavBarText"
|
||||
app:itemTextColor="@color/tab_layout_icon" />
|
||||
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
android:id="@+id/feedFragment"
|
||||
android:name="ani.dantotsu.inbox.FeedFragment"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:visibility="gone" />
|
||||
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
android:id="@+id/notifsFragment"
|
||||
android:name="ani.dantotsu.inbox.NotifsFragment"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:visibility="gone" />
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
6
app/src/main/res/layout/fragment_feed.xml
Normal file
6
app/src/main/res/layout/fragment_feed.xml
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -135,6 +135,18 @@
|
|||
|
||||
</FrameLayout>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/imageButton"
|
||||
android:layout_width="47dp"
|
||||
android:layout_height="47dp"
|
||||
android:layout_gravity="end|center_vertical"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:background="@null"
|
||||
android:padding="7dp"
|
||||
android:scaleType="fitCenter"
|
||||
app:srcCompat="@drawable/inbox_empty"
|
||||
app:tint="@color/bg_white" />
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
android:id="@+id/homeUserAvatarContainer"
|
||||
android:layout_width="52dp"
|
||||
|
|
6
app/src/main/res/layout/fragment_notifs.xml
Normal file
6
app/src/main/res/layout/fragment_notifs.xml
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
Loading…
Add table
Add a link
Reference in a new issue