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" />
|
<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"
|
||||||
|
|
|
@ -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",
|
||||||
|
|
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>
|
</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"
|
||||||
|
|
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