From ac13e4da77c46096d8e81d1c48c5e87b56548813 Mon Sep 17 00:00:00 2001 From: sbeve72 Date: Mon, 22 Feb 2021 22:59:56 +0530 Subject: [PATCH] Minor improvements --- .../com/sbeve/jada/activities/MainActivity.kt | 23 +++------------ .../sbeve/jada/fragments/main/MainFragment.kt | 29 +++++++++++++++---- .../com/sbeve/jada/retrofit_utils/Retrofit.kt | 4 ++- build.gradle | 6 ++-- 4 files changed, 34 insertions(+), 28 deletions(-) diff --git a/app/src/main/java/com/sbeve/jada/activities/MainActivity.kt b/app/src/main/java/com/sbeve/jada/activities/MainActivity.kt index f75065f..4230626 100644 --- a/app/src/main/java/com/sbeve/jada/activities/MainActivity.kt +++ b/app/src/main/java/com/sbeve/jada/activities/MainActivity.kt @@ -4,18 +4,16 @@ import android.content.Context import android.content.SharedPreferences import android.os.Bundle import androidx.appcompat.app.AppCompatActivity -import androidx.navigation.NavController -import androidx.navigation.fragment.NavHostFragment +import androidx.navigation.findNavController import androidx.navigation.ui.AppBarConfiguration import androidx.navigation.ui.NavigationUI -import com.sbeve.jada.R import com.sbeve.jada.databinding.ActivityMainBinding class MainActivity : AppCompatActivity() { - private val navController: NavController by lazy { - (supportFragmentManager.findFragmentById(R.id.main_nav_host) as NavHostFragment).navController + private val navController by lazy { + findNavController(binding.mainNavHost.id) } private val appBarConfiguration: AppBarConfiguration by lazy { AppBarConfiguration(navController.graph) @@ -37,25 +35,12 @@ class MainActivity : AppCompatActivity() { return NavigationUI.navigateUp(navController, appBarConfiguration) } - /* - private fun hideSoftKeyboard() { - val imm: InputMethodManager = getSystemService(AppCompatActivity.INPUT_METHOD_SERVICE) as InputMethodManager - - //Find the currently focused view, so we can grab the correct window token from it. - var view = currentFocus - - //If no view currently has focus, create a new one, just so we can grab a window token from it - if (view == null) { - view = View(this) - } - imm.hideSoftInputFromWindow(view.windowToken, 0) - } - private fun showSoftKeyboard(view: View) { val imm: InputMethodManager = getSystemService(AppCompatActivity.INPUT_METHOD_SERVICE) as InputMethodManager imm.showSoftInput(view, 0) } */ + } diff --git a/app/src/main/java/com/sbeve/jada/fragments/main/MainFragment.kt b/app/src/main/java/com/sbeve/jada/fragments/main/MainFragment.kt index 104a234..2b03816 100644 --- a/app/src/main/java/com/sbeve/jada/fragments/main/MainFragment.kt +++ b/app/src/main/java/com/sbeve/jada/fragments/main/MainFragment.kt @@ -1,5 +1,6 @@ package com.sbeve.jada.fragments.main +import android.content.Context.INPUT_METHOD_SERVICE import android.content.DialogInterface import android.content.Intent import android.content.SharedPreferences @@ -7,6 +8,7 @@ import android.os.Bundle import android.view.View import android.view.animation.AlphaAnimation import android.view.animation.Animation +import android.view.inputmethod.InputMethodManager import androidx.appcompat.widget.SearchView import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels @@ -101,8 +103,7 @@ class MainFragment : Fragment(R.layout.fragment_main), SearchView.OnQueryTextLis private fun handleSharedText(sharedText: String) { createChangeLanguageDialog { _, _ -> - navController.navigate(MainFragmentDirections.actionMainFragmentToResultFragment(sharedText, savedLanguageIndex)) - viewModel.addQuery(RecentQuery(sharedText, savedLanguageIndex)) + navigateToResultsFragment(sharedText, savedLanguageIndex, true) }.show() } @@ -126,9 +127,28 @@ class MainFragment : Fragment(R.layout.fragment_main), SearchView.OnQueryTextLis }) } + private fun hideSoftKeyboard() { + val imm: InputMethodManager = mainActivityContext.getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager + + //Find the currently focused view, so we can grab the correct window token from it. + var view = mainActivityContext.currentFocus + + //If no view currently has focus, create a new one, just so we can grab a window token from it + if (view == null) { + view = View(mainActivityContext) + } + imm.hideSoftInputFromWindow(view.windowToken, 0) + } + + private fun navigateToResultsFragment(query: String, languageIndex: Int, isQueryToBeSaved: Boolean) { + navController.navigate(MainFragmentDirections.actionMainFragmentToResultFragment(query, languageIndex)) + if (isQueryToBeSaved) viewModel.addQuery(RecentQuery(query, languageIndex)) + hideSoftKeyboard() + } + //implement on onItemClick which opens the result fragment with the saved recent query and the provided language override fun onItemClick(query: String, queryLanguageIndex: Int) { - navController.navigate(MainFragmentDirections.actionMainFragmentToResultFragment(query, queryLanguageIndex)) + navigateToResultsFragment(query, queryLanguageIndex, false) } //implement onDeleteButtonClick to delete the saved query the button of which is pressed @@ -147,8 +167,7 @@ class MainFragment : Fragment(R.layout.fragment_main), SearchView.OnQueryTextLis //navigate to the result fragment and show the results for submitted query. Asynchronously update the database. override fun onQueryTextSubmit(query: String): Boolean { - viewModel.addQuery(RecentQuery(query, savedLanguageIndex)) - navController.navigate(MainFragmentDirections.actionMainFragmentToResultFragment(query, savedLanguageIndex)) + navigateToResultsFragment(query, savedLanguageIndex, true) return true } diff --git a/app/src/main/java/com/sbeve/jada/retrofit_utils/Retrofit.kt b/app/src/main/java/com/sbeve/jada/retrofit_utils/Retrofit.kt index 462bce6..fc5bb35 100644 --- a/app/src/main/java/com/sbeve/jada/retrofit_utils/Retrofit.kt +++ b/app/src/main/java/com/sbeve/jada/retrofit_utils/Retrofit.kt @@ -20,7 +20,8 @@ object RetrofitInit { "Italian", "Korean", "Br Portuguese", - "Turkish" + "Turkish", + "Arabic" ), arrayOf( "hi", @@ -34,6 +35,7 @@ object RetrofitInit { "ko", "pt-BR", "tr", + "ar", ) ) diff --git a/build.gradle b/build.gradle index 49719f8..08b798f 100644 --- a/build.gradle +++ b/build.gradle @@ -1,14 +1,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext { - kotlin_version = "1.4.21" + kotlin_version = '1.4.30' nav_version = '2.3.3' retrofit_version = "2.9.0" - lifecycle_version = "2.2.0" + lifecycle_version = '2.3.0' room_version = "2.2.6" app_compat_version = "1.2.0" constraint_layout_version = "2.0.4" - material_components_version = "1.2.1" + material_components_version = '1.3.0' coroutines_version = "1.3.9" }