From f940abe837ea6b6e00c74eb68ef2e86f19e721bd Mon Sep 17 00:00:00 2001 From: AdityaGaikwad Date: Thu, 16 May 2024 20:56:34 +0530 Subject: [PATCH] home side bar completed built custom bottom nav for home new activity for ExploreWokaActivity research to blur the background with transparency Made 2 theme Home fragment and MyList Fragment Connected them with the side bar with respect to the selected theme --- app/src/main/AndroidManifest.xml | 14 +- .../main/java/com/woka/home/BlurBackground.kt | 35 ++ .../java/com/woka/home/BottomNavigation.kt | 112 ++++++ .../java/com/woka/home/ExploreWokaActivity.kt | 33 ++ .../main/java/com/woka/home/HomeActivity.kt | 133 ++++++- .../main/java/com/woka/home/HomeViewModel.kt | 5 + app/src/main/java/com/woka/home/Theme.kt | 15 + .../com/woka/home/fragments/Home1Fragment.kt | 25 ++ .../com/woka/home/fragments/Home2Fragment.kt | 25 ++ .../com/woka/home/fragments/MyListFragment.kt | 25 ++ .../onboard/fragments/LanguageFragment.kt | 6 +- .../com/woka/userPreference/UserPreference.kt | 18 +- app/src/main/java/com/woka/utils/Constants.kt | 7 +- .../java/com/woka/utils/WokaBaseActivity.kt | 2 +- app/src/main/res/drawable/ic_close_filled.xml | 5 + app/src/main/res/drawable/ic_home_bn.xml | 10 + .../main/res/layout/activity_explore_woka.xml | 25 ++ app/src/main/res/layout/activity_home.xml | 350 ++++++++++++++++-- app/src/main/res/layout/fragment_home2.xml | 17 + app/src/main/res/layout/fragment_home_1.xml | 16 + app/src/main/res/layout/fragment_my_list.xml | 16 + app/src/main/res/layout/layout_bottom_nav.xml | 152 ++++++++ app/src/main/res/menu/home_bottom_menu.xml | 19 - app/src/main/res/values/colors.xml | 1 + app/src/main/res/values/strings.xml | 10 + app/src/main/res/values/themes.xml | 7 + 26 files changed, 1013 insertions(+), 70 deletions(-) create mode 100644 app/src/main/java/com/woka/home/BlurBackground.kt create mode 100644 app/src/main/java/com/woka/home/BottomNavigation.kt create mode 100644 app/src/main/java/com/woka/home/ExploreWokaActivity.kt create mode 100644 app/src/main/java/com/woka/home/HomeViewModel.kt create mode 100644 app/src/main/java/com/woka/home/Theme.kt create mode 100644 app/src/main/java/com/woka/home/fragments/Home1Fragment.kt create mode 100644 app/src/main/java/com/woka/home/fragments/Home2Fragment.kt create mode 100644 app/src/main/java/com/woka/home/fragments/MyListFragment.kt create mode 100644 app/src/main/res/drawable/ic_close_filled.xml create mode 100644 app/src/main/res/drawable/ic_home_bn.xml create mode 100644 app/src/main/res/layout/activity_explore_woka.xml create mode 100644 app/src/main/res/layout/fragment_home2.xml create mode 100644 app/src/main/res/layout/fragment_home_1.xml create mode 100644 app/src/main/res/layout/fragment_my_list.xml create mode 100644 app/src/main/res/layout/layout_bottom_nav.xml delete mode 100644 app/src/main/res/menu/home_bottom_menu.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 234ee29..0775126 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,6 @@ + xmlns:tools="http://schemas.android.com/tools"> @@ -14,12 +14,16 @@ android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.Woka" - tools:targetApi="31" > + tools:targetApi="31"> + + android:screenOrientation="portrait" /> + android:theme="@style/Theme.App.Starting"> diff --git a/app/src/main/java/com/woka/home/BlurBackground.kt b/app/src/main/java/com/woka/home/BlurBackground.kt new file mode 100644 index 0000000..1e68f7d --- /dev/null +++ b/app/src/main/java/com/woka/home/BlurBackground.kt @@ -0,0 +1,35 @@ +package com.woka.home + +import android.content.Context +import android.graphics.Bitmap +import android.renderscript.Allocation +import android.renderscript.Element +import android.renderscript.RenderScript +import android.renderscript.ScriptIntrinsicBlur + +class BlurBackground { + companion object { + private const val BITMAP_SCALE = 0.4f + private const val BLUR_RADIUS = 7.5f + + fun blur(context: Context, image: Bitmap): Bitmap { + val width = (image.width * BITMAP_SCALE).toInt() + val height = (image.height * BITMAP_SCALE).toInt() + + val inputBitmap = Bitmap.createScaledBitmap(image, width, height, false) + val outputBitmap = Bitmap.createBitmap(inputBitmap) + + val rs = RenderScript.create(context) + val script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs)) + val tmpIn = Allocation.createFromBitmap(rs, inputBitmap) + val tmpOut = Allocation.createFromBitmap(rs, outputBitmap) + + script.setRadius(BLUR_RADIUS) + script.setInput(tmpIn) + script.forEach(tmpOut) + tmpOut.copyTo(outputBitmap) + + return outputBitmap + } + } +} diff --git a/app/src/main/java/com/woka/home/BottomNavigation.kt b/app/src/main/java/com/woka/home/BottomNavigation.kt new file mode 100644 index 0000000..c5ddd5f --- /dev/null +++ b/app/src/main/java/com/woka/home/BottomNavigation.kt @@ -0,0 +1,112 @@ +package com.woka.home + +import android.content.Context +import android.content.res.ColorStateList +import android.util.AttributeSet +import android.widget.FrameLayout +import android.widget.ImageView +import android.widget.TextView +import androidx.cardview.widget.CardView +import com.woka.R +import com.woka.utils.toast + +class BottomNavigation: FrameLayout { + + companion object{ + const val HOME = 1 + const val EXPLORE_WOKA = 2 + const val MY_LIST = 3 + } + + private var bottomTabSelectListener: OnBottomTabSelectListener? = null + + fun setOnBottomTabSelectListener(listener: OnBottomTabSelectListener){ + bottomTabSelectListener = listener + } + + private var selectedItem = HOME + + fun getSelectedTab() = selectedItem + + // colors + private val primaryColor = ColorStateList.valueOf(context.getColor(R.color.color_primary)) + private val darkGray = ColorStateList.valueOf(context.getColor(android.R.color.darker_gray)) + + // uis + private var homeCard: CardView? = null + private var exploreCard: CardView? = null + private var myListCard: CardView? = null + + private var homeImg: ImageView? = null + private var homeTxt: TextView? = null + + private var myListImg: ImageView? = null + private var myListTxt: TextView? = null + + init { + val view = inflate(context, R.layout.layout_bottom_nav, this) + + homeCard = view.findViewById(R.id.home_bn) + exploreCard = view.findViewById(R.id.explore_woka_bn) + myListCard = view.findViewById(R.id.my_list_bn) + + homeImg = view.findViewById(R.id.home_img_bn) + homeTxt = view.findViewById(R.id.home_txt_bn) + + myListImg = view.findViewById(R.id.my_list_img_bn) + myListTxt = view.findViewById(R.id.my_list_txt_bn) + + clickEvents() + } + + constructor(context: Context): super(context) + + constructor(context: Context, attrs: AttributeSet): super(context, attrs) + + constructor(context: Context, attrs: AttributeSet, style: Int): super(context, attrs, style) + + fun clickEvents(){ + + homeCard?.setOnClickListener { + if (selectedItem != HOME){ + selectTab(HOME) + } + } + + exploreCard?.setOnClickListener { + if (selectedItem != EXPLORE_WOKA) { + bottomTabSelectListener?.onBottomTabSelected(EXPLORE_WOKA) + } + } + + myListCard?.setOnClickListener { + if (selectedItem != MY_LIST) { + selectTab(MY_LIST) + } + } + + } + + fun selectTab(tab: Int){ + if (tab == HOME){ + homeImg?.imageTintList = primaryColor + homeTxt?.setTextColor(primaryColor) + + myListImg?.imageTintList = darkGray + myListTxt?.setTextColor(darkGray) + }else if (tab == MY_LIST){ + myListImg?.imageTintList = primaryColor + myListTxt?.setTextColor(primaryColor) + + homeImg?.imageTintList = darkGray + homeTxt?.setTextColor(darkGray) + } + + bottomTabSelectListener?.onBottomTabSelected(tab) + selectedItem = tab + } + + interface OnBottomTabSelectListener{ + fun onBottomTabSelected(tab: Int) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/woka/home/ExploreWokaActivity.kt b/app/src/main/java/com/woka/home/ExploreWokaActivity.kt new file mode 100644 index 0000000..0062822 --- /dev/null +++ b/app/src/main/java/com/woka/home/ExploreWokaActivity.kt @@ -0,0 +1,33 @@ +package com.woka.home + +import android.graphics.Bitmap +import android.graphics.Canvas +import android.graphics.drawable.BitmapDrawable +import android.os.Bundle +import android.view.View +import androidx.activity.enableEdgeToEdge +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat +import com.woka.R +import com.woka.databinding.ActivityExploreWokaBinding +import com.woka.utils.WokaBaseActivity + + +class ExploreWokaActivity : WokaBaseActivity() { + + private lateinit var binding: ActivityExploreWokaBinding + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + enableEdgeToEdge() + binding = ActivityExploreWokaBinding.inflate(layoutInflater) + + setContentView(binding.root) + 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 + } + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/woka/home/HomeActivity.kt b/app/src/main/java/com/woka/home/HomeActivity.kt index 0575e14..dd250b5 100644 --- a/app/src/main/java/com/woka/home/HomeActivity.kt +++ b/app/src/main/java/com/woka/home/HomeActivity.kt @@ -1,33 +1,41 @@ package com.woka.home -import android.graphics.Color +import android.content.Intent import android.os.Bundle import android.util.Log -import android.view.Gravity import android.view.View.GONE import android.view.View.VISIBLE -import android.view.WindowManager import androidx.activity.enableEdgeToEdge import androidx.core.content.ContextCompat import androidx.core.view.GravityCompat import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import androidx.lifecycle.Observer +import androidx.lifecycle.ViewModelProvider import com.bumptech.glide.Glide +import com.woka.BuildConfig import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.databinding.ActivityHomeBinding +import com.woka.home.BottomNavigation.Companion.EXPLORE_WOKA +import com.woka.home.BottomNavigation.Companion.HOME +import com.woka.home.BottomNavigation.Companion.MY_LIST +import com.woka.home.fragments.Home1Fragment +import com.woka.home.fragments.Home2Fragment +import com.woka.home.fragments.MyListFragment import com.woka.mvvm.userDataModels.UserDataResponse import com.woka.networking.ApiResult +import com.woka.utils.LOCALE_ENGLISH +import com.woka.utils.LOCALE_HINDI import com.woka.utils.TAG -import com.woka.utils.UserType import com.woka.utils.WokaBaseActivity -import com.woka.utils.toast -class HomeActivity : WokaBaseActivity(), Observer> { +class HomeActivity : WokaBaseActivity(), Observer>, BottomNavigation.OnBottomTabSelectListener { private lateinit var binding: ActivityHomeBinding + private lateinit var viewModel: HomeViewModel + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() @@ -39,6 +47,8 @@ class HomeActivity : WokaBaseActivity(), Observer> { insets } + viewModel = ViewModelProvider(this)[HomeViewModel::class.java] + userPrefs?.userLiveData?.observe(this, this) initViews() @@ -46,16 +56,25 @@ class HomeActivity : WokaBaseActivity(), Observer> { clickEvents() } + override fun onBackPressed() { + if (binding.bottomNav.getSelectedTab() != HOME){ + binding.bottomNav.selectTab(HOME) + }else { + super.onBackPressed() + } + } + private fun initViews() { binding.apply { + val versionName = "VER ${BuildConfig.VERSION_NAME}" + sbVersion.text = versionName - bottomNav.setOnItemSelectedListener { - if (bottomNav.selectedItemId != it.itemId) - toast(it.title.toString()) - - true - } + bottomNav.setOnBottomTabSelectListener(this@HomeActivity) } + + selectTheme(userPrefs?.appTheme?: Theme.THEME_ONE, true) + + selectLanguage(userPrefs?.appLanguage?: LOCALE_ENGLISH, true) } private fun clickEvents() { @@ -67,9 +86,99 @@ class HomeActivity : WokaBaseActivity(), Observer> { closeDrawer.setOnClickListener { homeDrawer.closeDrawer(GravityCompat.END) } + + sbTheme1.setOnClickListener { + selectTheme(Theme.THEME_ONE) + } + + sbTheme2.setOnClickListener { + selectTheme(Theme.THEME_TWO) + } + + sbEnglish.setOnClickListener { + selectLanguage(LOCALE_ENGLISH) + } + + sbHindi.setOnClickListener { + selectLanguage(LOCALE_HINDI) + } } } + private fun selectTheme(theme: Theme, init: Boolean = false){ + if (init || userPrefs?.appTheme != theme){ + // changing ui + binding.apply { + when(theme){ + Theme.THEME_ONE -> { + sbTheme1Selected.visibility = VISIBLE + sbTheme2Selected.visibility = GONE + } + Theme.THEME_TWO -> { + sbTheme2Selected.visibility = VISIBLE + sbTheme1Selected.visibility = GONE + } + } + } + + userPrefs?.appTheme = theme + + binding.homeDrawer.closeDrawer(GravityCompat.END) + binding.bottomNav.selectTab(HOME) + } + } + + private fun selectLanguage(locale: String, init: Boolean = false){ + if (init || userPrefs?.appLanguage != locale){ + binding.apply { + when(locale){ + LOCALE_ENGLISH -> { + sbEnglish.setTextColor(ContextCompat.getColor(this@HomeActivity, R.color.color_primary_dark)) + sbEnglish.background = ContextCompat.getDrawable(this@HomeActivity, R.drawable.lang_tab_bg) + + sbHindi.setTextColor(ContextCompat.getColor(this@HomeActivity, R.color.white)) + sbHindi.background = ContextCompat.getDrawable(this@HomeActivity, android.R.color.transparent) + } + LOCALE_HINDI -> { + sbHindi.setTextColor(ContextCompat.getColor(this@HomeActivity, R.color.color_primary_dark)) + sbHindi.background = ContextCompat.getDrawable(this@HomeActivity, R.drawable.lang_tab_bg) + + sbEnglish.setTextColor(ContextCompat.getColor(this@HomeActivity, R.color.white)) + sbEnglish.background = ContextCompat.getDrawable(this@HomeActivity, android.R.color.transparent) + } + } + + userPrefs?.appLanguage = locale + } + } + } + + // on bottom navigation tab is selected + override fun onBottomTabSelected(tab: Int) { + when (tab){ + HOME -> { + if (userPrefs?.appTheme == Theme.THEME_TWO){ + supportFragmentManager.beginTransaction() + .replace(R.id.fc_home, Home2Fragment.newInstance()) + .commit() + }else{ + supportFragmentManager.beginTransaction() + .replace(R.id.fc_home, Home1Fragment.newInstance()) + .commit() + } + } + EXPLORE_WOKA -> { + startActivity(Intent(this, ExploreWokaActivity::class.java)) + } + MY_LIST -> { + supportFragmentManager.beginTransaction() + .replace(R.id.fc_home, MyListFragment.newInstance()) + .commit() + } + } + } + + // observer for userdata changes override fun onChanged(value: ApiResult) { when(value){ is ApiResult.Error -> {} diff --git a/app/src/main/java/com/woka/home/HomeViewModel.kt b/app/src/main/java/com/woka/home/HomeViewModel.kt new file mode 100644 index 0000000..05a9d16 --- /dev/null +++ b/app/src/main/java/com/woka/home/HomeViewModel.kt @@ -0,0 +1,5 @@ +package com.woka.home + +import androidx.lifecycle.ViewModel + +class HomeViewModel: ViewModel() \ No newline at end of file diff --git a/app/src/main/java/com/woka/home/Theme.kt b/app/src/main/java/com/woka/home/Theme.kt new file mode 100644 index 0000000..8c58a78 --- /dev/null +++ b/app/src/main/java/com/woka/home/Theme.kt @@ -0,0 +1,15 @@ +package com.woka.home + +enum class Theme(val id: Int){ + THEME_ONE(1), + THEME_TWO(2); + + companion object{ + fun create(id: Int): Theme{ + return when(id){ + 1 -> THEME_ONE + else -> THEME_TWO + } + } + } +} \ 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 new file mode 100644 index 0000000..c8a4950 --- /dev/null +++ b/app/src/main/java/com/woka/home/fragments/Home1Fragment.kt @@ -0,0 +1,25 @@ +package com.woka.home.fragments + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import com.woka.databinding.FragmentHome1Binding + +class Home1Fragment : Fragment() { + + private lateinit var binding: FragmentHome1Binding + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + binding = FragmentHome1Binding.inflate(inflater, container, false) + return binding.root + } + + companion object { + fun newInstance() = Home1Fragment() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/woka/home/fragments/Home2Fragment.kt b/app/src/main/java/com/woka/home/fragments/Home2Fragment.kt new file mode 100644 index 0000000..fa0ce54 --- /dev/null +++ b/app/src/main/java/com/woka/home/fragments/Home2Fragment.kt @@ -0,0 +1,25 @@ +package com.woka.home.fragments + +import android.os.Bundle +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import com.woka.databinding.FragmentHome2Binding + +class Home2Fragment : Fragment() { + + private lateinit var binding: FragmentHome2Binding + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + binding = FragmentHome2Binding.inflate(inflater, container, false) + return binding.root + } + + companion object { + fun newInstance() = Home2Fragment() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/woka/home/fragments/MyListFragment.kt b/app/src/main/java/com/woka/home/fragments/MyListFragment.kt new file mode 100644 index 0000000..b6599e7 --- /dev/null +++ b/app/src/main/java/com/woka/home/fragments/MyListFragment.kt @@ -0,0 +1,25 @@ +package com.woka.home.fragments + +import android.os.Bundle +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import com.woka.databinding.FragmentMyListBinding + +class MyListFragment : Fragment() { + + private lateinit var binding: FragmentMyListBinding + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + binding = FragmentMyListBinding.inflate(inflater, container, false) + return binding.root + } + + companion object { + fun newInstance() = MyListFragment() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/woka/onboard/fragments/LanguageFragment.kt b/app/src/main/java/com/woka/onboard/fragments/LanguageFragment.kt index 33cbf0d..3a3369d 100644 --- a/app/src/main/java/com/woka/onboard/fragments/LanguageFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/LanguageFragment.kt @@ -10,6 +10,8 @@ import androidx.core.app.ActivityOptionsCompat import androidx.fragment.app.Fragment import com.woka.databinding.FragmentLanguageBinding import com.woka.onboard.OnboardActivity +import com.woka.utils.LOCALE_ENGLISH +import com.woka.utils.LOCALE_HINDI import com.woka.utils.ProgressView import com.woka.utils.changeLocale @@ -39,12 +41,12 @@ class LanguageFragment : Fragment() { private fun clickEvents() { binding.english.setOnClickListener { - requireActivity().changeLocale("en") + requireActivity().changeLocale(LOCALE_ENGLISH) gotoOnboardActivity() } binding.hindi.setOnClickListener { - requireActivity().changeLocale("hi") + requireActivity().changeLocale(LOCALE_HINDI) gotoOnboardActivity() } } diff --git a/app/src/main/java/com/woka/userPreference/UserPreference.kt b/app/src/main/java/com/woka/userPreference/UserPreference.kt index 95dc06a..626b685 100644 --- a/app/src/main/java/com/woka/userPreference/UserPreference.kt +++ b/app/src/main/java/com/woka/userPreference/UserPreference.kt @@ -8,6 +8,7 @@ import android.provider.Settings import android.provider.Settings.Secure import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData +import com.woka.home.Theme import com.woka.mvvm.UserApiService import com.woka.mvvm.UserRepository import com.woka.mvvm.userDataModels.UserData @@ -21,21 +22,27 @@ import kotlinx.coroutines.launch class UserPreference(context: Context) { - companion object{ + companion object { private const val USER_PREFERENCE = "woka_user_preferences" private const val APP_LANGUAGE = "app_language" + private const val APP_THEME = "app_theme" private const val ACCESS_TOKEN = "access_token" private const val USER_TYPE = "user_type" private const val GUEST_USER_NAME = "guest_user_name" } - private val userPrefs: SharedPreferences = context.getSharedPreferences(USER_PREFERENCE, MODE_PRIVATE) + private val userPrefs: SharedPreferences = + context.getSharedPreferences(USER_PREFERENCE, MODE_PRIVATE) + @SuppressLint("HardwareIds") val deviceId: String = Secure.getString(context.contentResolver, Secure.ANDROID_ID) var appLanguage: String - get() = userPrefs.getString(APP_LANGUAGE, "en")?:"en" + get() = userPrefs.getString(APP_LANGUAGE, "en") ?: "en" set(value) = userPrefs.edit().putString(APP_LANGUAGE, value).apply() + var appTheme: Theme + get() = Theme.create(userPrefs.getInt(APP_THEME, 1)) + set(value) = userPrefs.edit().putInt(APP_THEME, value.id).apply() var accessToken: String? get() = userPrefs.getString(ACCESS_TOKEN, null) @@ -49,13 +56,14 @@ class UserPreference(context: Context) { get() = userPrefs.getString(GUEST_USER_NAME, null) set(value) = userPrefs.edit().putString(GUEST_USER_NAME, value).apply() - private val userRepository = UserRepository(RetrofitHelper.getRetrofit().create(UserApiService::class.java)) + private val userRepository = + UserRepository(RetrofitHelper.getRetrofit().create(UserApiService::class.java)) private val _userLiveData = MutableLiveData>() val userLiveData: LiveData> get() = _userLiveData - fun loadUserData(){ + fun loadUserData() { CoroutineScope(Dispatchers.IO).launch { _userLiveData.postValue(ApiResult.Loading()) _userLiveData.postValue(userRepository.getUserData()) diff --git a/app/src/main/java/com/woka/utils/Constants.kt b/app/src/main/java/com/woka/utils/Constants.kt index e8c567f..19759a7 100644 --- a/app/src/main/java/com/woka/utils/Constants.kt +++ b/app/src/main/java/com/woka/utils/Constants.kt @@ -5,5 +5,10 @@ const val TAG = "aditya_testing" const val PARENT_TYPE = "2" const val CHILD_TYPE = "1" +// networking const val NO_INTERNET_MESSAGE = "Make sure you are connected to internet" -const val UNKNOWN_ERROR_MESSAGE = "An unknown error occurred" \ No newline at end of file +const val UNKNOWN_ERROR_MESSAGE = "An unknown error occurred" + +// language code +const val LOCALE_HINDI = "hi" +const val LOCALE_ENGLISH = "en" \ No newline at end of file diff --git a/app/src/main/java/com/woka/utils/WokaBaseActivity.kt b/app/src/main/java/com/woka/utils/WokaBaseActivity.kt index a62cb60..dddd59d 100644 --- a/app/src/main/java/com/woka/utils/WokaBaseActivity.kt +++ b/app/src/main/java/com/woka/utils/WokaBaseActivity.kt @@ -18,6 +18,6 @@ open class WokaBaseActivity: AppCompatActivity() { configuration.fontScale = min(configuration.fontScale.toDouble(), 1.0).toFloat() applyOverrideConfiguration(configuration) super.attachBaseContext(newBase) - changeLocale(userPrefs?.appLanguage?:"en") + changeLocale(userPrefs?.appLanguage?: LOCALE_ENGLISH) } } \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_close_filled.xml b/app/src/main/res/drawable/ic_close_filled.xml new file mode 100644 index 0000000..08e3336 --- /dev/null +++ b/app/src/main/res/drawable/ic_close_filled.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_home_bn.xml b/app/src/main/res/drawable/ic_home_bn.xml new file mode 100644 index 0000000..34037e1 --- /dev/null +++ b/app/src/main/res/drawable/ic_home_bn.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout/activity_explore_woka.xml b/app/src/main/res/layout/activity_explore_woka.xml new file mode 100644 index 0000000..5563c10 --- /dev/null +++ b/app/src/main/res/layout/activity_explore_woka.xml @@ -0,0 +1,25 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml index b90e738..b534892 100644 --- a/app/src/main/res/layout/activity_home.xml +++ b/app/src/main/res/layout/activity_home.xml @@ -41,6 +41,7 @@ - + app:layout_constraintBottom_toBottomOf="parent" + /> @@ -70,19 +67,19 @@ android:fitsSystemWindows="true" > - - + > - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + diff --git a/app/src/main/res/layout/fragment_home2.xml b/app/src/main/res/layout/fragment_home2.xml new file mode 100644 index 0000000..bfde68e --- /dev/null +++ b/app/src/main/res/layout/fragment_home2.xml @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home_1.xml b/app/src/main/res/layout/fragment_home_1.xml new file mode 100644 index 0000000..5ce8e89 --- /dev/null +++ b/app/src/main/res/layout/fragment_home_1.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_my_list.xml b/app/src/main/res/layout/fragment_my_list.xml new file mode 100644 index 0000000..ec07299 --- /dev/null +++ b/app/src/main/res/layout/fragment_my_list.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_bottom_nav.xml b/app/src/main/res/layout/layout_bottom_nav.xml new file mode 100644 index 0000000..c6f1508 --- /dev/null +++ b/app/src/main/res/layout/layout_bottom_nav.xml @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/home_bottom_menu.xml b/app/src/main/res/menu/home_bottom_menu.xml deleted file mode 100644 index 58b3fb1..0000000 --- a/app/src/main/res/menu/home_bottom_menu.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - \ 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 7e985fb..7e7a515 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -4,6 +4,7 @@ #FFFFFFFF #80FFFFFF #09005D + #050038 #6ed5fe #9909005D diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6c7ba8e..e160a57 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -108,4 +108,14 @@ My List Logout THEME + About WOKA + FAQs + WOKA Support + My Profile + My Orders + De-activate Account + + + Disclaimer + WOKA CREATIONS PVT LTD \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 906f991..104ed81 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -22,5 +22,12 @@ @font/exo_2 + + +