diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8b4a8f8..21cb76f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -15,6 +15,11 @@ android:supportsRtl="true" android:theme="@style/Theme.Woka" tools:targetApi="31"> + ) : + ListAdapter(config) { + + inner class BlogViewHolder(binding: BlogViewHolderBinding): ViewHolder(binding.root) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BlogViewHolder { + + } + + override fun onBindViewHolder(holder: BlogViewHolder, position: Int) { + } +} \ No newline at end of file diff --git a/app/src/main/java/com/woka/home/MoreHomeActivity.kt b/app/src/main/java/com/woka/home/MoreHomeActivity.kt new file mode 100644 index 0000000..f80242b --- /dev/null +++ b/app/src/main/java/com/woka/home/MoreHomeActivity.kt @@ -0,0 +1,45 @@ +package com.woka.home + +import android.graphics.Color +import android.os.Bundle +import android.view.WindowManager +import androidx.activity.enableEdgeToEdge +import androidx.appcompat.app.AppCompatActivity +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat +import androidx.lifecycle.ViewModelProvider +import com.woka.R +import com.woka.modules.BlogsViewModel +import com.woka.utils.WokaBaseActivity +import com.woka.utils.lightStatusBar + +class MoreHomeActivity : WokaBaseActivity() { + + private lateinit var blogsViewModel: BlogsViewModel + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + enableEdgeToEdge() + setContentView(R.layout.activity_more_home) + ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets -> + val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) + insets + } + + window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) + window.statusBarColor = Color.TRANSPARENT + window.navigationBarColor = getColor(R.color.more_bg) + window.lightStatusBar() + + blogsViewModel = ViewModelProvider(this)[BlogsViewModel::class.java] + + setObservers() + } + + private fun setObservers() { + blogsViewModel.blogsLiveData.observe(this){ + + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/woka/home/fragments/Home1Fragment.kt b/app/src/main/java/com/woka/home/fragments/Home1Fragment.kt index 7e5657f..8569608 100644 --- a/app/src/main/java/com/woka/home/fragments/Home1Fragment.kt +++ b/app/src/main/java/com/woka/home/fragments/Home1Fragment.kt @@ -22,6 +22,7 @@ import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.databinding.FragmentHome1Binding import com.woka.home.HomeViewModel +import com.woka.home.MoreHomeActivity import com.woka.home.TimePeriod import com.woka.mvvm.userDataModels.UserDataResponse import com.woka.networking.ApiResult @@ -58,22 +59,14 @@ class Home1Fragment : Fragment() { player = ExoPlayer.Builder(it).build() } + initViews() + initPlayerView() handleScaleAnimations() updateBackground() - minuteReceiver = object : BroadcastReceiver() { - override fun onReceive(context: Context?, intent: Intent?) { - // this function is called every minute - if (intent?.action == ACTION_TIME_TICK) { - updateBackground() - } - } - } - activity?.registerReceiver(minuteReceiver, IntentFilter(ACTION_TIME_TICK)) - setObservers() clickEvents() @@ -81,12 +74,22 @@ class Home1Fragment : Fragment() { return binding.root } + private fun initViews() { + if (viewModel.isHomeBackgroundBlurred){ + binding.playerView.hide() + }else{ + binding.playerView.show() + } + } + override fun onResume() { super.onResume() handleAnimations() if (!player.isPlaying){ player.play() } + + binding.playerView.show() } override fun onPause() { @@ -98,6 +101,10 @@ class Home1Fragment : Fragment() { if (star2Animator?.isRunning == true) star2Animator?.pause() if (player.isPlaying) player.pause() + + if (viewModel.isHomeBackgroundBlurred){ + binding.playerView.hide() + } } override fun onDestroy() { @@ -140,6 +147,16 @@ class Home1Fragment : Fragment() { moreTxt.text = getString(R.string.more) } } + + minuteReceiver = object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + // this function is called every minute + if (intent?.action == ACTION_TIME_TICK) { + updateBackground() + } + } + } + activity?.registerReceiver(minuteReceiver, IntentFilter(ACTION_TIME_TICK)) } private fun clickEvents() { @@ -149,6 +166,11 @@ class Home1Fragment : Fragment() { startActivity(Intent(it, LiveStreamPlayerActivity::class.java)) } } + + more.setOnClickListener { + activity?.let { + startActivity(Intent(it, MoreHomeActivity::class.java)) + } } } } diff --git a/app/src/main/java/com/woka/home/fragments/Home2Fragment.kt b/app/src/main/java/com/woka/home/fragments/Home2Fragment.kt index e8bad0f..1548e26 100644 --- a/app/src/main/java/com/woka/home/fragments/Home2Fragment.kt +++ b/app/src/main/java/com/woka/home/fragments/Home2Fragment.kt @@ -1,10 +1,14 @@ package com.woka.home.fragments import android.content.Intent +import android.graphics.Bitmap +import android.graphics.Canvas +import android.media.MediaMetadataRetriever import android.net.Uri import android.os.Bundle import androidx.fragment.app.Fragment import android.view.LayoutInflater +import android.view.TextureView import android.view.View import android.view.ViewGroup import androidx.lifecycle.ViewModelProvider @@ -18,7 +22,8 @@ import com.woka.mvvm.userDataModels.UserDataResponse import com.woka.networking.ApiResult import com.woka.players.LiveStreamPlayerActivity import com.woka.utils.UserType -import com.woka.utils.toast +import com.woka.utils.hide +import com.woka.utils.show class Home2Fragment : Fragment() { @@ -39,6 +44,8 @@ class Home2Fragment : Fragment() { player = ExoPlayer.Builder(it).build() } + iniViews() + initPlayerView() setObservers() @@ -48,16 +55,32 @@ class Home2Fragment : Fragment() { return binding.root } + private fun iniViews() { + if (viewModel.isHomeBackgroundBlurred){ + binding.playerView.hide() + }else{ + binding.playerView.show() + } + } + override fun onResume() { super.onResume() if (!player.isPlaying){ player.play() } + + binding.playerView.show() } override fun onPause() { super.onPause() - if (player.isPlaying) player.pause() + if (player.isPlaying) { + player.pause() + } + + if (viewModel.isHomeBackgroundBlurred){ + binding.playerView.hide() + } } override fun onDestroy() { diff --git a/app/src/main/java/com/woka/modules/BlogsRepository.kt b/app/src/main/java/com/woka/modules/BlogsRepository.kt new file mode 100644 index 0000000..2249cc2 --- /dev/null +++ b/app/src/main/java/com/woka/modules/BlogsRepository.kt @@ -0,0 +1,17 @@ +package com.woka.modules + +import com.woka.modules.blogs.BlogsResponse +import com.woka.networking.ApiResult +import com.woka.networking.RetrofitHelper +import com.woka.networking.RetrofitHelper.handleApiCall + +class BlogsRepository { + private val apiService = RetrofitHelper.getRetrofit().create(ModuleApiService::class.java) + + suspend fun getBlogs(): ApiResult{ + return handleApiCall{ + apiService.getBlogs() + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/woka/modules/BlogsViewModel.kt b/app/src/main/java/com/woka/modules/BlogsViewModel.kt new file mode 100644 index 0000000..7794ebd --- /dev/null +++ b/app/src/main/java/com/woka/modules/BlogsViewModel.kt @@ -0,0 +1,30 @@ +package com.woka.modules + +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import com.woka.modules.blogs.BlogsResponse +import com.woka.networking.ApiResult +import kotlinx.coroutines.launch + +class BlogsViewModel: ViewModel() { + + private val blogsRepository = BlogsRepository() + + private val _blogsLiveData = MutableLiveData>() + val blogsLiveData: LiveData?> + get() = _blogsLiveData + + init { + loadBlogs() + } + + private fun loadBlogs(){ + viewModelScope.launch { + _blogsLiveData.postValue(ApiResult.Loading()) + _blogsLiveData.postValue(blogsRepository.getBlogs()) + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/woka/modules/ModuleApiService.kt b/app/src/main/java/com/woka/modules/ModuleApiService.kt new file mode 100644 index 0000000..08e4833 --- /dev/null +++ b/app/src/main/java/com/woka/modules/ModuleApiService.kt @@ -0,0 +1,12 @@ +package com.woka.modules + +import com.woka.modules.blogs.BlogsResponse +import com.woka.networking.ApiResponse +import retrofit2.Response +import retrofit2.http.GET + +interface ModuleApiService { + + @GET("blogs") + suspend fun getBlogs(): Response> +} \ No newline at end of file diff --git a/app/src/main/java/com/woka/modules/blogs/Blog.kt b/app/src/main/java/com/woka/modules/blogs/Blog.kt new file mode 100644 index 0000000..847c83b --- /dev/null +++ b/app/src/main/java/com/woka/modules/blogs/Blog.kt @@ -0,0 +1,12 @@ +package com.woka.modules.blogs + +data class Blog( + val article_url: Any?, + val category_master_id: String?, + val content_more_details: List?, + val description: String?, + val id: Int?, + val language_master_id: Int?, + val thumbnail_path: String?, + val title: String? +) \ No newline at end of file diff --git a/app/src/main/java/com/woka/modules/blogs/BlogsResponse.kt b/app/src/main/java/com/woka/modules/blogs/BlogsResponse.kt new file mode 100644 index 0000000..050edfc --- /dev/null +++ b/app/src/main/java/com/woka/modules/blogs/BlogsResponse.kt @@ -0,0 +1,6 @@ +package com.woka.modules.blogs + +data class BlogsResponse( + val blogs: List?, + val total_records: Int? +) \ No newline at end of file diff --git a/app/src/main/java/com/woka/modules/blogs/ContentMoreDetail.kt b/app/src/main/java/com/woka/modules/blogs/ContentMoreDetail.kt new file mode 100644 index 0000000..7ff41d1 --- /dev/null +++ b/app/src/main/java/com/woka/modules/blogs/ContentMoreDetail.kt @@ -0,0 +1,11 @@ +package com.woka.modules.blogs + +data class ContentMoreDetail( + val article: String?, + val content_id: Int?, + val description: String?, + val id: Int?, + val language_master_id: Int?, + val post_type: Int?, + val title: String? +) \ No newline at end of file diff --git a/app/src/main/java/com/woka/players/LiveStreamPlayerActivity.kt b/app/src/main/java/com/woka/players/LiveStreamPlayerActivity.kt index 6abfdcf..43df8e3 100644 --- a/app/src/main/java/com/woka/players/LiveStreamPlayerActivity.kt +++ b/app/src/main/java/com/woka/players/LiveStreamPlayerActivity.kt @@ -90,7 +90,11 @@ class LiveStreamPlayerActivity : AppCompatActivity(), FullscreenHandler { override fun onFullscreenExitRequested() { player.stop() - onBackPressedDispatcher.onBackPressed() + val windowInsetsController = + WindowCompat.getInsetsController(window, window.decorView) + windowInsetsController.show(WindowInsetsCompat.Type.systemBars()) + + finish() } override fun onAllowRotationChanged(allowRotation: Boolean) {} diff --git a/app/src/main/res/drawable-hdpi/img_masila_tn_small.png b/app/src/main/res/drawable-hdpi/img_masila_tn_small.png new file mode 100644 index 0000000..746c44d Binary files /dev/null and b/app/src/main/res/drawable-hdpi/img_masila_tn_small.png differ diff --git a/app/src/main/res/drawable-hdpi/img_more_bg.png b/app/src/main/res/drawable-hdpi/img_more_bg.png new file mode 100644 index 0000000..b63f445 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/img_more_bg.png differ diff --git a/app/src/main/res/drawable-ldpi/img_masila_tn_small.png b/app/src/main/res/drawable-ldpi/img_masila_tn_small.png new file mode 100644 index 0000000..b1f92e5 Binary files /dev/null and b/app/src/main/res/drawable-ldpi/img_masila_tn_small.png differ diff --git a/app/src/main/res/drawable-ldpi/img_more_bg.png b/app/src/main/res/drawable-ldpi/img_more_bg.png new file mode 100644 index 0000000..abc862f Binary files /dev/null and b/app/src/main/res/drawable-ldpi/img_more_bg.png differ diff --git a/app/src/main/res/drawable-mdpi/img_masila_tn_small.png b/app/src/main/res/drawable-mdpi/img_masila_tn_small.png new file mode 100644 index 0000000..c8141d9 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/img_masila_tn_small.png differ diff --git a/app/src/main/res/drawable-mdpi/img_more_bg.png b/app/src/main/res/drawable-mdpi/img_more_bg.png new file mode 100644 index 0000000..3221b7f Binary files /dev/null and b/app/src/main/res/drawable-mdpi/img_more_bg.png differ diff --git a/app/src/main/res/drawable-xhdpi/img_masila_tn_small.png b/app/src/main/res/drawable-xhdpi/img_masila_tn_small.png new file mode 100644 index 0000000..d2512e9 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/img_masila_tn_small.png differ diff --git a/app/src/main/res/drawable-xhdpi/img_more_bg.png b/app/src/main/res/drawable-xhdpi/img_more_bg.png new file mode 100644 index 0000000..52fdfe5 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/img_more_bg.png differ diff --git a/app/src/main/res/drawable-xxhdpi/img_masila_tn_small.png b/app/src/main/res/drawable-xxhdpi/img_masila_tn_small.png new file mode 100644 index 0000000..905e8d0 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/img_masila_tn_small.png differ diff --git a/app/src/main/res/drawable-xxhdpi/img_more_bg.png b/app/src/main/res/drawable-xxhdpi/img_more_bg.png new file mode 100644 index 0000000..bf050ad Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/img_more_bg.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/img_masila_tn_small.png b/app/src/main/res/drawable-xxxhdpi/img_masila_tn_small.png new file mode 100644 index 0000000..5c83b43 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/img_masila_tn_small.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/img_more_bg.png b/app/src/main/res/drawable-xxxhdpi/img_more_bg.png new file mode 100644 index 0000000..7bfc852 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/img_more_bg.png differ diff --git a/app/src/main/res/drawable/ic_more_up.xml b/app/src/main/res/drawable/ic_more_up.xml new file mode 100644 index 0000000..96b1eaf --- /dev/null +++ b/app/src/main/res/drawable/ic_more_up.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/round_bg_5.xml b/app/src/main/res/drawable/round_bg_5.xml new file mode 100644 index 0000000..b2624f4 --- /dev/null +++ b/app/src/main/res/drawable/round_bg_5.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_more_home.xml b/app/src/main/res/layout/activity_more_home.xml new file mode 100644 index 0000000..82f9f95 --- /dev/null +++ b/app/src/main/res/layout/activity_more_home.xml @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/blog_view_holder.xml b/app/src/main/res/layout/blog_view_holder.xml new file mode 100644 index 0000000..624fb91 --- /dev/null +++ b/app/src/main/res/layout/blog_view_holder.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home2.xml b/app/src/main/res/layout/fragment_home2.xml index d93efa1..da34b78 100644 --- a/app/src/main/res/layout/fragment_home2.xml +++ b/app/src/main/res/layout/fragment_home2.xml @@ -124,11 +124,20 @@ app:layout_constraintBottom_toTopOf="@id/g1" app:layout_constraintTop_toBottomOf="@id/profile_image"> + + diff --git a/app/src/main/res/layout/fragment_home_1.xml b/app/src/main/res/layout/fragment_home_1.xml index 98fdf4d..31e55bf 100644 --- a/app/src/main/res/layout/fragment_home_1.xml +++ b/app/src/main/res/layout/fragment_home_1.xml @@ -551,6 +551,7 @@ app:layout_constraintStart_toStartOf="parent"> वोका एफएम खेल जल्द ही Woka पर आ रहा है + वोका लाइव टीवी + ब्लॉग + मासिला + ट्रेलर चलाएं \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index bfdc657..2afb74d 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -15,4 +15,6 @@ #a3e1d3 #11b3fe #443682 + + #cbe16f \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9957167..d983e22 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -136,4 +136,6 @@ Coming soonn on Woka WOKA LIVE TV BLOGS + MASILA + PLAY TRAILER \ No newline at end of file