diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/home/HomeFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/home/HomeFragment.java index 5ec5d6e5..174697e6 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/home/HomeFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/home/HomeFragment.java @@ -7,6 +7,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.appcompat.widget.SearchView; import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; @@ -39,6 +40,19 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat getString(com.d4rk.androidtutorials.java.R.string.announcement_title), getString(com.d4rk.androidtutorials.java.R.string.announcement_subtitle) ); + binding.searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { + @Override + public boolean onQueryTextSubmit(String query) { + homeViewModel.setSearchQuery(query); + return true; + } + + @Override + public boolean onQueryTextChange(String newText) { + homeViewModel.setSearchQuery(newText); + return true; + } + }); LayoutInflater inflater = LayoutInflater.from(requireContext()); homeViewModel.getUiState().observe(getViewLifecycleOwner(), state -> { binding.announcementTitle.setText(state.announcementTitle()); diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/home/HomeViewModel.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/home/HomeViewModel.java index 1273223e..e879c1f3 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/home/HomeViewModel.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/home/HomeViewModel.java @@ -29,6 +29,8 @@ public class HomeViewModel extends ViewModel { private final GetAppPlayStoreUrlUseCase getAppPlayStoreUrlUseCase; private final MutableLiveData uiState = new MutableLiveData<>(); + private final MutableLiveData searchQuery = new MutableLiveData<>(""); + private List allPromotedApps = new ArrayList<>(); @Inject public HomeViewModel(GetDailyTipUseCase getDailyTipUseCase, @@ -59,18 +61,8 @@ public HomeViewModel(GetDailyTipUseCase getDailyTipUseCase, result.add(apps.get((startIndex + i) % apps.size())); } } - HomeUiState current = uiState.getValue(); - if (current == null) { - current = new HomeUiState("", "", "", result); - } else { - current = new HomeUiState( - current.announcementTitle(), - current.announcementSubtitle(), - current.dailyTip(), - result - ); - } - uiState.postValue(current); + allPromotedApps = result; + filterPromotedApps(); }); } @@ -84,6 +76,34 @@ public void setAnnouncements(String title, String subtitle) { uiState.setValue(current); } + public void setSearchQuery(String query) { + searchQuery.setValue(query); + filterPromotedApps(); + } + + private void filterPromotedApps() { + String query = searchQuery.getValue(); + List filtered = new ArrayList<>(); + for (PromotedApp app : allPromotedApps) { + if (query == null || query.isEmpty() || + app.name().toLowerCase().contains(query.toLowerCase())) { + filtered.add(app); + } + } + HomeUiState current = uiState.getValue(); + if (current == null) { + current = new HomeUiState("", "", getDailyTipUseCase.invoke(), filtered); + } else { + current = new HomeUiState( + current.announcementTitle(), + current.announcementSubtitle(), + current.dailyTip(), + filtered + ); + } + uiState.postValue(current); + } + /** * Exposes the UI state for the Home screen. */ diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 5b0e0e2f..c5be916f 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -168,6 +168,15 @@ android:text="@string/other_apps_title" android:textAppearance="@style/TextAppearance.Material3.TitleMedium" /> + + نزّله من على Google Play اعرف المزيد متجر Play + ابحث عن الدروس + ابحث عن الدروس أندرويد ستوديو diff --git a/app/src/main/res/values-bg-rBG/strings.xml b/app/src/main/res/values-bg-rBG/strings.xml index 928caab1..e980fa54 100644 --- a/app/src/main/res/values-bg-rBG/strings.xml +++ b/app/src/main/res/values-bg-rBG/strings.xml @@ -19,6 +19,8 @@ Вземете от Google Play Научете повече Play Store + Търсене на уроци + Търсене на уроци Android Studio diff --git a/app/src/main/res/values-bn-rBD/strings.xml b/app/src/main/res/values-bn-rBD/strings.xml index 11a298fb..86e4ea12 100644 --- a/app/src/main/res/values-bn-rBD/strings.xml +++ b/app/src/main/res/values-bn-rBD/strings.xml @@ -19,6 +19,8 @@ গুগল প্লে থেকে পান আরও জানুন প্লে স্টোর + টিউটোরিয়াল খুঁজুন + টিউটোরিয়াল খুঁজুন অ্যান্ড্রয়েড স্টুডিও diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml index 6b50dfee..b3cf3784 100644 --- a/app/src/main/res/values-de-rDE/strings.xml +++ b/app/src/main/res/values-de-rDE/strings.xml @@ -19,6 +19,8 @@ Jetzt bei Google Play Mehr erfahren Play Store + Tutorials suchen + Tutorials suchen Android Studio diff --git a/app/src/main/res/values-es-rGQ/strings.xml b/app/src/main/res/values-es-rGQ/strings.xml index 633ce2fe..ea6b2234 100644 --- a/app/src/main/res/values-es-rGQ/strings.xml +++ b/app/src/main/res/values-es-rGQ/strings.xml @@ -19,6 +19,8 @@ Consíguelo en Google Play Más información Play Store + Buscar tutoriales + Buscar tutoriales Android Studio diff --git a/app/src/main/res/values-es-rMX/strings.xml b/app/src/main/res/values-es-rMX/strings.xml index edf89268..eb62a5d6 100644 --- a/app/src/main/res/values-es-rMX/strings.xml +++ b/app/src/main/res/values-es-rMX/strings.xml @@ -19,6 +19,8 @@ Descárgala en Google Play Más información Play Store + Buscar tutoriales + Buscar tutoriales Android Studio diff --git a/app/src/main/res/values-fil-rPH/strings.xml b/app/src/main/res/values-fil-rPH/strings.xml index 82b3f481..a6f7661d 100644 --- a/app/src/main/res/values-fil-rPH/strings.xml +++ b/app/src/main/res/values-fil-rPH/strings.xml @@ -19,6 +19,8 @@ Kunin ito sa Google Play Matuto pa Play Store + Maghanap ng mga tutorial + Maghanap ng mga tutorial Android Studio diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml index 88051591..8e6e2409 100644 --- a/app/src/main/res/values-fr-rFR/strings.xml +++ b/app/src/main/res/values-fr-rFR/strings.xml @@ -19,6 +19,8 @@ Obtenez-le sur Google Play En savoir plus Play Store + Rechercher des tutoriels + Rechercher des tutoriels Android Studio @@ -382,7 +384,7 @@ Bouton d\'image cliqué ! Ceci est un Toast ! Afficher la syntaxe du code - Afficher l'extrait de code java + Afficher l\'extrait de code java Ouvrez-moi 🌐 Saisissez ici… Entrez votre mot de passe… diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index a2985046..dd02cabf 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -8,6 +8,8 @@ इसे Google Play पर प्राप्त करें और जानें प्ले स्टोर + ट्यूटोरियल खोजें + ट्यूटोरियल खोजें अपडेट डाउनलोड किया गया Google Play Store में देखें संस्करण की जानकारी diff --git a/app/src/main/res/values-hu-rHU/strings.xml b/app/src/main/res/values-hu-rHU/strings.xml index c5328721..3416d19e 100644 --- a/app/src/main/res/values-hu-rHU/strings.xml +++ b/app/src/main/res/values-hu-rHU/strings.xml @@ -3,6 +3,8 @@ Szerezd meg a Google Playen Tudj meg többet Play Áruház + Oktatóanyagok keresése + Oktatóanyagok keresése Képernyőkép az Új projekt gombbal az Android Studioban. Képernyőkép a projekt beállításakor az aktivitástípus választásáról. Képernyőkép az alkalmazás neve, csomagja, nyelve és minimum SDK mezőiről. diff --git a/app/src/main/res/values-in-rID/strings.xml b/app/src/main/res/values-in-rID/strings.xml index 074f9e36..87ac319d 100644 --- a/app/src/main/res/values-in-rID/strings.xml +++ b/app/src/main/res/values-in-rID/strings.xml @@ -8,6 +8,8 @@ Dapatkan di Google Play Pelajari lebih lanjut Play Store + Cari tutorial + Cari tutorial Pembaruan diunduh Lihat di Google Play Store Info versi diff --git a/app/src/main/res/values-it-rIT/strings.xml b/app/src/main/res/values-it-rIT/strings.xml index b1872638..6e8b26dd 100644 --- a/app/src/main/res/values-it-rIT/strings.xml +++ b/app/src/main/res/values-it-rIT/strings.xml @@ -3,6 +3,8 @@ Scaricalo su Google Play Scopri di più Play Store + Cerca tutorial + Cerca tutorial Screenshot che mostra il pulsante Nuovo progetto in Android Studio. Screenshot che mostra la selezione del tipo di attività durante la configurazione del progetto. Screenshot che mostra i campi nome app, pacchetto, lingua e SDK minimo. diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index ce2c1b17..71ee02fb 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -3,6 +3,8 @@ Google Play で入手しよう 詳しく見る Play ストア + チュートリアルを検索 + チュートリアルを検索 Android Studio の新規プロジェクトボタンを示すスクリーンショット。 プロジェクト設定中のアクティビティタイプ選択を示すスクリーンショット。 アプリ名、パッケージ、言語、最小 SDK の入力欄を示すスクリーンショット。 diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index dcfa5ebc..291a2a64 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -19,6 +19,8 @@ Google Play에서 다운로드 자세히 알아보기 Play 스토어 + 튜토리얼 검색 + 튜토리얼 검색 Android Studio diff --git a/app/src/main/res/values-pl-rPL/strings.xml b/app/src/main/res/values-pl-rPL/strings.xml index 037d8ac1..3348c6f6 100644 --- a/app/src/main/res/values-pl-rPL/strings.xml +++ b/app/src/main/res/values-pl-rPL/strings.xml @@ -3,6 +3,8 @@ Pobierz z Google Play Dowiedz się więcej Sklep Play + Wyszukaj samouczki + Wyszukaj samouczki Zrzut ekranu pokazujący przycisk Nowy projekt w Android Studio. Zrzut ekranu pokazujący wybór typu aktywności podczas konfiguracji projektu. Zrzut ekranu pokazujący pola nazwy aplikacji, pakietu, języka i minimalnego SDK. diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index d254b6b7..8af2d55a 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -19,6 +19,8 @@ Disponível no Google Play Saiba mais Play Store + Pesquisar tutoriais + Pesquisar tutoriais Android Studio diff --git a/app/src/main/res/values-ro-rRO/strings.xml b/app/src/main/res/values-ro-rRO/strings.xml index d2952efc..b959f523 100644 --- a/app/src/main/res/values-ro-rRO/strings.xml +++ b/app/src/main/res/values-ro-rRO/strings.xml @@ -8,6 +8,8 @@ Ia-l de pe Google Play Află mai multe Magazin Play + Caută tutoriale + Caută tutoriale Actualizare descărcată Vezi în Magazinul Google Play Informații versiune diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index ce3bc3c2..44070a6f 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -8,6 +8,8 @@ Получить в Google Play Узнать больше Play Маркет + Поиск руководств + Поиск руководств Обновление загружено Просмотреть в Google Play Store Информация о версии diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml index f537153d..0341d46a 100644 --- a/app/src/main/res/values-sv-rSE/strings.xml +++ b/app/src/main/res/values-sv-rSE/strings.xml @@ -19,6 +19,8 @@ Hämta den på Google Play Läs mer Play Butik + Sök handledningar + Sök handledningar Android Studio diff --git a/app/src/main/res/values-th-rTH/strings.xml b/app/src/main/res/values-th-rTH/strings.xml index c905c444..f6cddde8 100644 --- a/app/src/main/res/values-th-rTH/strings.xml +++ b/app/src/main/res/values-th-rTH/strings.xml @@ -19,6 +19,8 @@ ดาวน์โหลดได้ที่ Google Play เรียนรู้เพิ่มเติม Play Store + ค้นหาบทช่วยสอน + ค้นหาบทช่วยสอน Android Studio diff --git a/app/src/main/res/values-tr-rTR/strings.xml b/app/src/main/res/values-tr-rTR/strings.xml index b537afe8..194a7ed7 100644 --- a/app/src/main/res/values-tr-rTR/strings.xml +++ b/app/src/main/res/values-tr-rTR/strings.xml @@ -19,6 +19,8 @@ Google Play\'den edinin Daha fazla bilgi edinin Play Store + Eğitimleri ara + Eğitimleri ara Android Studio @@ -391,7 +393,7 @@ Resim butonuna tıklandı! Bu bir toast! Kod sözdizimini göster - Java Kodu Snippet'i Göster + Java Kodu Snippet\'i Göster Beni aç 🌐 Buraya yazın… Şifrenizi girin… diff --git a/app/src/main/res/values-uk-rUA/strings.xml b/app/src/main/res/values-uk-rUA/strings.xml index 4248f030..91a395f7 100644 --- a/app/src/main/res/values-uk-rUA/strings.xml +++ b/app/src/main/res/values-uk-rUA/strings.xml @@ -19,6 +19,8 @@ Завантажте з Google Play Дізнайтеся більше Play Store + Пошук навчальних посібників + Пошук навчальних посібників Android Studio diff --git a/app/src/main/res/values-ur-rPK/strings.xml b/app/src/main/res/values-ur-rPK/strings.xml index 99529909..d89c18cf 100644 --- a/app/src/main/res/values-ur-rPK/strings.xml +++ b/app/src/main/res/values-ur-rPK/strings.xml @@ -19,6 +19,8 @@ اسے گوگل پلے سے حاصل کریں مزید جانیں پلے اسٹور + ٹیوٹوریلز تلاش کریں + ٹیوٹوریلز تلاش کریں اینڈرائیڈ اسٹوڈیو diff --git a/app/src/main/res/values-vi-rVN/strings.xml b/app/src/main/res/values-vi-rVN/strings.xml index 8546ffab..720d3c1f 100644 --- a/app/src/main/res/values-vi-rVN/strings.xml +++ b/app/src/main/res/values-vi-rVN/strings.xml @@ -19,6 +19,8 @@ Tải trên Google Play Tìm hiểu thêm Cửa hàng Play + Tìm kiếm hướng dẫn + Tìm kiếm hướng dẫn Android Studio diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index d6d9814b..2f905cf4 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -19,6 +19,8 @@ 在 Google Play 上取得 瞭解更多 Play 商店 + 搜尋教學 + 搜尋教學 Android Studio diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index de2d5c36..00021ebc 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -19,6 +19,8 @@ Get it on Google Play Learn More Play Store + Search tutorials + Search tutorials Android Studio