diff --git a/app/src/main/java/com/example/movieflix/core/adapters/FavAdapters.kt b/app/src/main/java/com/example/movieflix/core/adapters/FavAdapters.kt new file mode 100644 index 0000000..dfc1bc9 --- /dev/null +++ b/app/src/main/java/com/example/movieflix/core/adapters/FavAdapters.kt @@ -0,0 +1,69 @@ +package com.example.movieflix.core.adapters + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.Toast +import androidx.recyclerview.widget.DiffUtil +import androidx.recyclerview.widget.ListAdapter +import androidx.recyclerview.widget.RecyclerView +import com.example.movieflix.R +import com.example.movieflix.core.utils.Constants +import com.example.movieflix.core.utils.isNetworkAvailable +import com.example.movieflix.core.utils.loadImage +import com.example.movieflix.data.local.entity.FavouritesEntity +import com.example.movieflix.data.local.entity.WatchListEntity +import com.example.movieflix.databinding.ItemListBinding +import com.example.movieflix.domain.model.MovieResult + +class FavAdapters(private var onPosterClick: ((movieResult: MovieResult) -> Unit)): + ListAdapter(DiffUtilCallback()) { + inner class ViewHolder(itemView: View): RecyclerView.ViewHolder(itemView) { + var binding: ItemListBinding + init { + binding = ItemListBinding.bind(itemView) + } + fun bind(favouritesEntity: FavouritesEntity)=binding.apply{ + + val item = favouritesEntity.movieResult + itemListPoster.loadImage(Constants.TMDB_POSTER_IMAGE_BASE_URL_W342.plus(item.posterPath)) + itemListRatingTxt.text = String.format("%.1f", item.voteAverage) + + root.setOnClickListener(){ + if (isNetworkAvailable(root.context)){ + onPosterClick(item) + }else{ + Toast.makeText(root.context, "Internet req", Toast.LENGTH_SHORT).show() + } + } + } + } + + + class DiffUtilCallback : DiffUtil.ItemCallback() { + override fun areItemsTheSame( + oldItem: FavouritesEntity, + newItem: FavouritesEntity + ): Boolean { + return oldItem == newItem + } + + override fun areContentsTheSame( + oldItem: FavouritesEntity, + newItem: FavouritesEntity + ): Boolean { + return oldItem == newItem + } + + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + val view = LayoutInflater.from(parent.context).inflate(R.layout.item_list,parent,false) + return ViewHolder(view) + } + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + holder.bind(getItem(position)) + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/example/movieflix/core/di/DatabaseModule.kt b/app/src/main/java/com/example/movieflix/core/di/DatabaseModule.kt index 6677df8..222a87c 100644 --- a/app/src/main/java/com/example/movieflix/core/di/DatabaseModule.kt +++ b/app/src/main/java/com/example/movieflix/core/di/DatabaseModule.kt @@ -5,13 +5,16 @@ import android.content.Context import androidx.room.Room import com.example.movieflix.core.utils.Constants import com.example.movieflix.core.utils.GsonParser +import com.example.movieflix.core.utils.MIGRATION_2_3 import com.example.movieflix.data.local.LocalDataSource import com.example.movieflix.data.local.MovieDao import com.example.movieflix.data.local.MovieDataTypeConverter import com.example.movieflix.data.local.MovieDatabase import com.example.movieflix.data.remote.RemoteDataSource +import com.example.movieflix.data.repository.FavMovieRepositoryImpl import com.example.movieflix.data.repository.MovieInfoRepositoryImpl import com.example.movieflix.data.repository.WatchListRepositoryImpl +import com.example.movieflix.domain.repository.FavMovieRepository import com.example.movieflix.domain.repository.MovieInfoRepository import com.example.movieflix.domain.repository.WatchListRepository import com.google.gson.Gson @@ -30,7 +33,8 @@ object DatabaseModule { @Singleton fun providesMovieDataBase(@ApplicationContext context: Context): MovieDatabase { return Room.databaseBuilder(context,MovieDatabase::class.java,Constants.DATABASE_NAME) - .fallbackToDestructiveMigration() +// .fallbackToDestructiveMigration() + .addMigrations(MIGRATION_2_3) .addTypeConverter(MovieDataTypeConverter(GsonParser(Gson()))) .build() } @@ -57,4 +61,10 @@ object DatabaseModule { return WatchListRepositoryImpl(localDataSource) } + @Provides + @Singleton + fun getFavMovie(localDataSource: LocalDataSource):FavMovieRepository{ + return FavMovieRepositoryImpl(localDataSource) + } + } \ No newline at end of file diff --git a/app/src/main/java/com/example/movieflix/core/utils/Constants.kt b/app/src/main/java/com/example/movieflix/core/utils/Constants.kt index 8abefa9..4b8ab19 100644 --- a/app/src/main/java/com/example/movieflix/core/utils/Constants.kt +++ b/app/src/main/java/com/example/movieflix/core/utils/Constants.kt @@ -29,5 +29,6 @@ object Constants { const val DATABASE_NAME = "movie_data_database" const val TABLE_NAME = "movie_data_table" const val WATCHLIST_TABLE_NAME = "watch_list_news_table" + const val FAVOURITES_TABLE_NAME="favorites_table" } \ No newline at end of file diff --git a/app/src/main/java/com/example/movieflix/core/utils/ViewUtils.kt b/app/src/main/java/com/example/movieflix/core/utils/ViewUtils.kt index c99ba81..0a0fbde 100644 --- a/app/src/main/java/com/example/movieflix/core/utils/ViewUtils.kt +++ b/app/src/main/java/com/example/movieflix/core/utils/ViewUtils.kt @@ -5,8 +5,9 @@ import android.content.Intent import android.net.ConnectivityManager import android.provider.Settings import android.view.View -import android.widget.TextView import android.widget.Toast +import androidx.room.migration.Migration +import androidx.sqlite.db.SupportSQLiteDatabase import com.example.movieflix.domain.model.Genre import java.text.SimpleDateFormat import java.util.Date @@ -114,4 +115,10 @@ fun shareMovie(context:Context,title:String,trailer:String){ fun getRandomChar():String{ val alphabet = ('a'..'z') return alphabet.random().toString() +} + + val MIGRATION_2_3 = object : Migration(2, 3) { + override fun migrate(db: SupportSQLiteDatabase) { + db.execSQL("CREATE TABLE IF NOT EXISTS `${Constants.FAVOURITES_TABLE_NAME}` (`id` INTEGER NOT NULL, `movieResult` TEXT NOT NULL, PRIMARY KEY(`id`))") + } } \ No newline at end of file diff --git a/app/src/main/java/com/example/movieflix/data/local/LocalDataSource.kt b/app/src/main/java/com/example/movieflix/data/local/LocalDataSource.kt index 658ee40..6047f86 100644 --- a/app/src/main/java/com/example/movieflix/data/local/LocalDataSource.kt +++ b/app/src/main/java/com/example/movieflix/data/local/LocalDataSource.kt @@ -1,6 +1,7 @@ package com.example.movieflix.data.local import androidx.lifecycle.LiveData +import com.example.movieflix.data.local.entity.FavouritesEntity import com.example.movieflix.data.local.entity.HomeFeedEntity import com.example.movieflix.data.local.entity.WatchListEntity import com.example.movieflix.domain.model.MovieResult @@ -29,4 +30,16 @@ suspend fun insertHomeFeedData(homeFeedEntity: HomeFeedEntity){ return movieDao.getAllWatchListData() } + suspend fun insertFavMovie(favouritesEntity: FavouritesEntity){ + movieDao.insertFavMovie(favouritesEntity) + } + + suspend fun deleteFavMovie(favouritesEntity: FavouritesEntity){ + movieDao.deleteFavMovie(favouritesEntity) + } + + fun getAllFavMovie():LiveData>{ + return movieDao.getAllFavMovies() + } + } \ No newline at end of file diff --git a/app/src/main/java/com/example/movieflix/data/local/MovieDao.kt b/app/src/main/java/com/example/movieflix/data/local/MovieDao.kt index 8539b7e..93b3f1f 100644 --- a/app/src/main/java/com/example/movieflix/data/local/MovieDao.kt +++ b/app/src/main/java/com/example/movieflix/data/local/MovieDao.kt @@ -6,6 +6,7 @@ import androidx.room.Delete import androidx.room.Insert import androidx.room.OnConflictStrategy import androidx.room.Query +import com.example.movieflix.data.local.entity.FavouritesEntity import com.example.movieflix.data.local.entity.HomeFeedEntity import com.example.movieflix.data.local.entity.WatchListEntity import com.example.movieflix.domain.model.MovieResult @@ -25,4 +26,14 @@ interface MovieDao { @Query(" SELECT * FROM watch_list_news_table ORDER BY id DESC ") fun getAllWatchListData():LiveData> + @Insert(onConflict = OnConflictStrategy.REPLACE) + suspend fun insertFavMovie(favouritesEntity: FavouritesEntity) + + @Delete + suspend fun deleteFavMovie(favouritesEntity: FavouritesEntity) + + @Query( " SELECT * FROM favorites_table ORDER BY id DESC ") + fun getAllFavMovies():LiveData> + + } \ No newline at end of file diff --git a/app/src/main/java/com/example/movieflix/data/local/MovieDatabase.kt b/app/src/main/java/com/example/movieflix/data/local/MovieDatabase.kt index b4a6537..b23a58d 100644 --- a/app/src/main/java/com/example/movieflix/data/local/MovieDatabase.kt +++ b/app/src/main/java/com/example/movieflix/data/local/MovieDatabase.kt @@ -3,10 +3,11 @@ package com.example.movieflix.data.local import androidx.room.Database import androidx.room.RoomDatabase import androidx.room.TypeConverters +import com.example.movieflix.data.local.entity.FavouritesEntity import com.example.movieflix.data.local.entity.HomeFeedEntity import com.example.movieflix.data.local.entity.WatchListEntity -@Database(entities = [HomeFeedEntity::class,WatchListEntity::class], version = 2) +@Database(entities = [HomeFeedEntity::class,WatchListEntity::class,FavouritesEntity::class], version = 3) @TypeConverters(MovieDataTypeConverter::class) abstract class MovieDatabase:RoomDatabase(){ abstract val dao:MovieDao diff --git a/app/src/main/java/com/example/movieflix/data/local/entity/FavouritesEntity.kt b/app/src/main/java/com/example/movieflix/data/local/entity/FavouritesEntity.kt new file mode 100644 index 0000000..adbcb0d --- /dev/null +++ b/app/src/main/java/com/example/movieflix/data/local/entity/FavouritesEntity.kt @@ -0,0 +1,12 @@ +package com.example.movieflix.data.local.entity + +import androidx.room.Entity +import androidx.room.PrimaryKey +import com.example.movieflix.core.utils.Constants +import com.example.movieflix.domain.model.MovieResult + +@Entity(Constants.FAVOURITES_TABLE_NAME) +data class FavouritesEntity( + @PrimaryKey val id:Int, + val movieResult: MovieResult +) \ No newline at end of file diff --git a/app/src/main/java/com/example/movieflix/data/repository/FavMovieRepositoryImpl.kt b/app/src/main/java/com/example/movieflix/data/repository/FavMovieRepositoryImpl.kt new file mode 100644 index 0000000..ae1d741 --- /dev/null +++ b/app/src/main/java/com/example/movieflix/data/repository/FavMovieRepositoryImpl.kt @@ -0,0 +1,20 @@ +package com.example.movieflix.data.repository + +import androidx.lifecycle.LiveData +import com.example.movieflix.data.local.LocalDataSource +import com.example.movieflix.data.local.entity.FavouritesEntity +import com.example.movieflix.domain.repository.FavMovieRepository + +class FavMovieRepositoryImpl(private val localDataSource: LocalDataSource):FavMovieRepository { + override suspend fun insertFavMovie(favouritesEntity: FavouritesEntity) { + localDataSource.insertFavMovie(favouritesEntity) + } + + override suspend fun deleteFavMovie(favouritesEntity: FavouritesEntity) { + localDataSource.deleteFavMovie(favouritesEntity) + } + + override fun getAllFavMovie(): LiveData> { + return localDataSource.getAllFavMovie() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/movieflix/domain/repository/FavMovieRepository.kt b/app/src/main/java/com/example/movieflix/domain/repository/FavMovieRepository.kt new file mode 100644 index 0000000..6db2b67 --- /dev/null +++ b/app/src/main/java/com/example/movieflix/domain/repository/FavMovieRepository.kt @@ -0,0 +1,12 @@ +package com.example.movieflix.domain.repository + +import androidx.lifecycle.LiveData +import com.example.movieflix.data.local.entity.FavouritesEntity + +interface FavMovieRepository { + suspend fun insertFavMovie(favouritesEntity: FavouritesEntity) + + suspend fun deleteFavMovie(favouritesEntity: FavouritesEntity) + + fun getAllFavMovie(): LiveData> +} \ No newline at end of file diff --git a/app/src/main/java/com/example/movieflix/domain/usecases/FavMovie.kt b/app/src/main/java/com/example/movieflix/domain/usecases/FavMovie.kt new file mode 100644 index 0000000..53fd067 --- /dev/null +++ b/app/src/main/java/com/example/movieflix/domain/usecases/FavMovie.kt @@ -0,0 +1,23 @@ +package com.example.movieflix.domain.usecases + +import androidx.lifecycle.LiveData +import com.example.movieflix.data.local.entity.FavouritesEntity +import com.example.movieflix.domain.repository.FavMovieRepository +import com.example.movieflix.domain.repository.WatchListRepository +import javax.inject.Inject + +class FavMovie @Inject constructor(private val favMovieRepository: FavMovieRepository) { + + suspend fun insertFavMovie(favouritesEntity: FavouritesEntity){ + favMovieRepository.insertFavMovie(favouritesEntity) + } + + suspend fun deleteFavMovie(favouritesEntity: FavouritesEntity){ + favMovieRepository.deleteFavMovie(favouritesEntity) + } + + fun getAllFavMovie(): LiveData>{ + return favMovieRepository.getAllFavMovie() + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/example/movieflix/presentation/details/MovieDetailsFragment.kt b/app/src/main/java/com/example/movieflix/presentation/details/MovieDetailsFragment.kt index 8875450..7b8ca5e 100644 --- a/app/src/main/java/com/example/movieflix/presentation/details/MovieDetailsFragment.kt +++ b/app/src/main/java/com/example/movieflix/presentation/details/MovieDetailsFragment.kt @@ -28,6 +28,7 @@ import com.example.movieflix.core.utils.showToast import com.example.movieflix.databinding.FragmentMovieDetailsBinding import com.example.movieflix.domain.model.MovieResult import com.example.movieflix.domain.model.MovieVideoResult +import com.example.movieflix.presentation.viewmodels.FavMovieViewModel import com.example.movieflix.presentation.viewmodels.HomeInfoViewModel import com.example.movieflix.presentation.viewmodels.WatchListViewModel import com.google.android.material.bottomsheet.BottomSheetDialogFragment @@ -54,8 +55,11 @@ class MovieDetailsFragment : BottomSheetDialogFragment(){ CustomTabsIntent.Builder().setShowTitle(true).build() } private val watchListViewModel:WatchListViewModel by viewModels() + private val favMovieViewModel: FavMovieViewModel by viewModels() private var isInWatchList:Boolean = false + private var isFav:Boolean=false + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { setStyle(STYLE_NO_FRAME, R.style.SheetDialog) @@ -101,6 +105,24 @@ class MovieDetailsFragment : BottomSheetDialogFragment(){ isInWatchList=!isInWatchList } + fragmentMovieDetailsFavBtn.setOnClickListener(){ + + if (!isFav){ + favMovieViewModel.insertFavMovieData(movieResult) + favIcon.setImageDrawable(ContextCompat.getDrawable(requireContext(),R.drawable.fav_red)) + showToast(requireContext(),"Movie added to Favourites") + }else{ + + favMovieViewModel.deleteWatchListData(movieResult) + favIcon.setImageDrawable(ContextCompat.getDrawable(requireContext(),R.drawable.fav_outline)) + showToast(requireContext(),"Movie removed from Favourites") + } + + isFav=!isFav + + } + + fragmentMovieDetailsShareBtn.setOnClickListener(){ shareMovie(requireContext(),movieResult.title.toString(),youtubeUrl) } @@ -201,6 +223,22 @@ class MovieDetailsFragment : BottomSheetDialogFragment(){ } } + + favMovieViewModel.getAllMovieData().observe(viewLifecycleOwner){ + + if(it.isNotEmpty()){ + var isFav:Boolean + for (res in it){ + isFav = (res.id==mediaId) + + if(isFav){ + changeFavIcon() + break + } + } + } + + } } private fun changeAddToWatchListIcon() { @@ -210,6 +248,13 @@ class MovieDetailsFragment : BottomSheetDialogFragment(){ } } + private fun changeFavIcon(){ + binding.apply { + isFav=true + favIcon.setImageDrawable(ContextCompat.getDrawable(requireContext(),R.drawable.fav)) + } + } + private fun initializePlayer(key: String?) { binding.posterImage.gone() binding.ytIcon.gone() diff --git a/app/src/main/java/com/example/movieflix/presentation/favorites/FavFragment.kt b/app/src/main/java/com/example/movieflix/presentation/favorites/FavFragment.kt new file mode 100644 index 0000000..e5890dd --- /dev/null +++ b/app/src/main/java/com/example/movieflix/presentation/favorites/FavFragment.kt @@ -0,0 +1,77 @@ +package com.example.movieflix.presentation.favorites + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.databinding.DataBindingUtil +import androidx.fragment.app.Fragment +import androidx.fragment.app.viewModels +import androidx.navigation.fragment.findNavController +import com.example.movieflix.R +import com.example.movieflix.core.adapters.FavAdapters +import com.example.movieflix.core.adapters.WatchListAdapter +import com.example.movieflix.core.utils.Constants +import com.example.movieflix.core.utils.gone +import com.example.movieflix.core.utils.visible +import com.example.movieflix.databinding.FragmentFavBinding +import com.example.movieflix.databinding.FragmentWatchListBinding +import com.example.movieflix.presentation.viewmodels.FavMovieViewModel +import com.example.movieflix.presentation.viewmodels.WatchListViewModel +import com.google.gson.Gson +import dagger.hilt.android.AndroidEntryPoint + + +@AndroidEntryPoint +class FavFragment : Fragment() { + private val favMovieViewModel:FavMovieViewModel by viewModels() + + private var _binding: FragmentFavBinding? = null + private val binding get() = _binding!! + private lateinit var adapter: FavAdapters + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + // Inflate the layout for this fragment + _binding = DataBindingUtil.inflate(inflater,R.layout.fragment_fav,container,false) + return binding.root + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + inIt() + observer() + } + + + private fun inIt() { + favMovieViewModel.getAllMovieData() + adapter=FavAdapters (onPosterClick = { + val bundle = Bundle() + bundle.putString(Constants.MEDIA_SEND_REQUEST_KEY, Gson().toJson(it)) + findNavController().navigate(R.id.action_favFragment_to_movieDetailsFragment,bundle) + }) + + binding.fragmentFavRv.adapter=adapter + } + + private fun observer() { + favMovieViewModel.getAllMovieData().observe(viewLifecycleOwner){ + + if (it.isNotEmpty()){ + adapter.submitList(it) + binding.fragmentFavNoMovie.gone() + }else{ + binding.fragmentFavRv.gone() + binding.fragmentFavNoMovie.visible() + } + } + } + override fun onDestroy() { + super.onDestroy() + _binding=null + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/example/movieflix/presentation/home/HomeFragment.kt b/app/src/main/java/com/example/movieflix/presentation/home/HomeFragment.kt index 0acb30a..75084ea 100644 --- a/app/src/main/java/com/example/movieflix/presentation/home/HomeFragment.kt +++ b/app/src/main/java/com/example/movieflix/presentation/home/HomeFragment.kt @@ -74,6 +74,10 @@ binding.apply { findNavController().navigate(R.id.action_homeFragment_to_watchListFragment) } + fragmentHomeFavorite.setOnClickListener(){ + findNavController().navigate(R.id.action_homeFragment_to_favFragment) + } + fragmentHomeWatchNowBtn.setOnClickListener(){ val layoutManger=binding.fragmentHomeBannerImgRv.layoutManager as LinearLayoutManager val firstVisibleItem = layoutManger.findFirstVisibleItemPosition() diff --git a/app/src/main/java/com/example/movieflix/presentation/viewmodels/FavMovieViewModel.kt b/app/src/main/java/com/example/movieflix/presentation/viewmodels/FavMovieViewModel.kt new file mode 100644 index 0000000..985da53 --- /dev/null +++ b/app/src/main/java/com/example/movieflix/presentation/viewmodels/FavMovieViewModel.kt @@ -0,0 +1,37 @@ +package com.example.movieflix.presentation.viewmodels + +import androidx.lifecycle.LiveData +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import com.example.movieflix.data.local.entity.FavouritesEntity +import com.example.movieflix.data.local.entity.WatchListEntity +import com.example.movieflix.domain.model.MovieResult +import com.example.movieflix.domain.usecases.FavMovie +import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.launch +import javax.inject.Inject + + +@HiltViewModel +class FavMovieViewModel @Inject constructor(private val favMovie: FavMovie):ViewModel() { + + fun insertFavMovieData(movieResult: MovieResult){ + val favMovieEntity = FavouritesEntity(movieResult.id!!,movieResult) + viewModelScope.launch { + favMovie.insertFavMovie(favMovieEntity) + } + } + + fun getAllMovieData(): LiveData> { + return favMovie.getAllFavMovie() + } + + fun deleteWatchListData(movieResult: MovieResult){ + val favMovieEntity = FavouritesEntity(movieResult.id!!,movieResult) + viewModelScope.launch { + favMovie.deleteFavMovie(favMovieEntity) + } + } + + +} \ No newline at end of file diff --git a/app/src/main/java/com/example/movieflix/presentation/watchlist/WatchListFragment.kt b/app/src/main/java/com/example/movieflix/presentation/watchlist/WatchListFragment.kt index d7e246a..28e0f1c 100644 --- a/app/src/main/java/com/example/movieflix/presentation/watchlist/WatchListFragment.kt +++ b/app/src/main/java/com/example/movieflix/presentation/watchlist/WatchListFragment.kt @@ -14,6 +14,7 @@ import com.example.movieflix.core.utils.Constants import com.example.movieflix.core.utils.gone import com.example.movieflix.core.utils.visible import com.example.movieflix.databinding.FragmentWatchListBinding +import com.example.movieflix.presentation.viewmodels.FavMovieViewModel import com.example.movieflix.presentation.viewmodels.WatchListViewModel import com.google.gson.Gson import dagger.hilt.android.AndroidEntryPoint diff --git a/app/src/main/res/drawable/fav_red.png b/app/src/main/res/drawable/fav_red.png new file mode 100644 index 0000000..230824e Binary files /dev/null and b/app/src/main/res/drawable/fav_red.png differ diff --git a/app/src/main/res/layout/fragment_fav.xml b/app/src/main/res/layout/fragment_fav.xml new file mode 100644 index 0000000..787cc3b --- /dev/null +++ b/app/src/main/res/layout/fragment_fav.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_movie_details.xml b/app/src/main/res/layout/fragment_movie_details.xml index 69bce18..1ffa678 100644 --- a/app/src/main/res/layout/fragment_movie_details.xml +++ b/app/src/main/res/layout/fragment_movie_details.xml @@ -253,7 +253,7 @@ diff --git a/app/src/main/res/layout/fragment_watch_list.xml b/app/src/main/res/layout/fragment_watch_list.xml index aa5d0ea..9cfde7b 100644 --- a/app/src/main/res/layout/fragment_watch_list.xml +++ b/app/src/main/res/layout/fragment_watch_list.xml @@ -62,7 +62,7 @@ android:paddingBottom="@dimen/_18sdp" android:text="Watch-List" android:textColor="@color/white" - android:textSize="@dimen/_15ssp" /> + android:textSize="@dimen/_20ssp" /> + + + + \ No newline at end of file