feat: Inbox WIP(#222)

This commit is contained in:
ibo 2024-03-06 16:06:56 +01:00 committed by GitHub
parent e50a65571f
commit 2855093f5f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 171 additions and 0 deletions

View file

@ -221,6 +221,10 @@
<data android:host="discord.dantotsu.com" /> <data android:host="discord.dantotsu.com" />
</intent-filter> </intent-filter>
</activity> </activity>
<activity
android:name=".inbox.InboxActivity"
android:label="Inbox Activity">
</activity>
<activity <activity
android:name=".connections.anilist.UrlMedia" android:name=".connections.anilist.UrlMedia"
android:configChanges="orientation|screenSize|layoutDirection" android:configChanges="orientation|screenSize|layoutDirection"

View file

@ -27,6 +27,7 @@ import ani.dantotsu.connections.anilist.AnilistHomeViewModel
import ani.dantotsu.connections.anilist.getUserId import ani.dantotsu.connections.anilist.getUserId
import ani.dantotsu.currContext import ani.dantotsu.currContext
import ani.dantotsu.databinding.FragmentHomeBinding import ani.dantotsu.databinding.FragmentHomeBinding
import ani.dantotsu.inbox.InboxActivity
import ani.dantotsu.loadImage import ani.dantotsu.loadImage
import ani.dantotsu.media.Media import ani.dantotsu.media.Media
import ani.dantotsu.media.MediaAdaptor import ani.dantotsu.media.MediaAdaptor
@ -77,6 +78,7 @@ class HomeFragment : Fragment() {
binding.homeUserChaptersRead.text = Anilist.chapterRead.toString() binding.homeUserChaptersRead.text = Anilist.chapterRead.toString()
binding.homeUserAvatar.loadImage(Anilist.avatar) binding.homeUserAvatar.loadImage(Anilist.avatar)
if (!(PrefManager.getVal(PrefName.BannerAnimations) as Boolean)) binding.homeUserBg.pause() if (!(PrefManager.getVal(PrefName.BannerAnimations) as Boolean)) binding.homeUserBg.pause()
binding.imageButton.startAnimation(setSlideIn())
binding.homeUserBg.loadImage(Anilist.bg) binding.homeUserBg.loadImage(Anilist.bg)
binding.homeUserDataProgressBar.visibility = View.GONE 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( val array = arrayOf(
"AnimeContinue", "AnimeContinue",
"AnimeFav", "AnimeFav",

View 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
}

View 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
}
}

View 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
}

View 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>

View 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>

View 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>

View 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>

View file

@ -135,6 +135,18 @@
</FrameLayout> </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 <com.google.android.material.card.MaterialCardView
android:id="@+id/homeUserAvatarContainer" android:id="@+id/homeUserAvatarContainer"
android:layout_width="52dp" android:layout_width="52dp"

View 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>