From 04f2985768c76254f55a5a6bf6637acf2c9b17e8 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Fri, 27 Oct 2023 13:45:50 +0530 Subject: Switch to light mode on first open if e-ink display --- app/src/main/java/app/olauncher/MainActivity.kt | 1 + 1 file changed, 1 insertion(+) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/MainActivity.kt b/app/src/main/java/app/olauncher/MainActivity.kt index d0e149e..8fcb573 100644 --- a/app/src/main/java/app/olauncher/MainActivity.kt +++ b/app/src/main/java/app/olauncher/MainActivity.kt @@ -44,6 +44,7 @@ class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { prefs = Prefs(this) + if (isEinkDisplay()) prefs.appTheme = AppCompatDelegate.MODE_NIGHT_NO AppCompatDelegate.setDefaultNightMode(prefs.appTheme) super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) -- cgit v1.2.1 From da9a58bad6467ca9999a3180e50b9e8597b8dfeb Mon Sep 17 00:00:00 2001 From: Tanuj Date: Fri, 27 Oct 2023 13:50:58 +0530 Subject: Updated Swedish translations --- app/src/main/res/values-sv/strings.xml | 40 +++++++++++----------------------- 1 file changed, 13 insertions(+), 27 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 196e5e7..4f85fc4 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -1,21 +1,8 @@ + - Olauncher - Github - lock layout description to be used a unique id to lock screen - %s, %d%% - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - App Ange som förvald startskärmsapp - Ange som förvald startskärmsapp + Ange Olauncher som förvald först Textfärg Dubbeltryck för att låsa Olauncher lovar att använda skärmlåsningsbehörigheten ansvarsfullt. Olauncher varken samlar in eller delar några data. @@ -27,9 +14,9 @@ Ändra förvald startskärmsapp Integritet Dela - Dela + Dela nu Betygsätt - Betygsätt + Betygsätt nu Följ E-post Donera @@ -56,7 +43,7 @@ Coolt! Visa tangentbord automatiskt Dölj - Visa statusfält + Statusfält överst Byt namn Visa datum och tid Utseende @@ -65,12 +52,11 @@ System Mörkt Ljust - Vår Om-sida längst ner har svar på alla dina frågor. Glöm inte det. :) - \n\nTack. + Tips: Vår Om-sida har svar på alla dina frågor. Glöm inte det. :) \n\nTack. Hejsan, du kommer inte att se detta meddelande igen. - \n\nOm du gillar Olauncher, kan du vänligen ge oss ett 5-stjärnigt betyg? Det hjälper oss att förbättra vår rankning och gör oss glada. Tack! - Hej, vi har en stor förfrågan! Vi vill nå en miljon nedladdningar innan 2023 tar slut, och vi behöver din hjälp. - \n\nKan du dela Olauncher med dina vänner, snälla du? Det skulle verkligen vara till hjälp. Tack! + \n\nOm du gillar Olauncher, skulle du vänligen kunna ge oss ett 5-stjärnigt omdöme? Det hjälper oss att förbättra vår rankning och gör oss väldigt glada. Tack! + Hejsan, vi behöver din hjälp! Vi vill nå en miljon nedladdningar innan 2023 är slut, men vi kan inte göra det på egen hand. + \n\nSkulle du kunna vara vänlig nog att dela Olauncher med dina vänner, är du snäll? Tack, och ha en underbar dag! Hejsan, tangentbordet är det snabbaste sättet att hitta och starta appar i Olauncher. Får vi be dig att behålla denna På i några dagar till innan du bestämmer dig? \n\nValet är alltid ditt. Tillgänglighetsbehörigheten krävs för att aktivera dubbeltryck för att låsa. Eventuella data förvärvade av Olauncher genom denna tjänst kommer inte att lämna din enhet. @@ -82,13 +68,13 @@ Inte nu Olaunchers offentliga färdplan Instagram - Twitter + Utvecklare Färdplan Datum Endast datum Botten: På Botten: Av - Vänligen ange Olauncher som din förvalda startskärmsapp först + Vänligen ange Olauncher som förvald först Affiliate Tips: Börja skriv för BYT NAMN-alternativ för appen Observera: Tryck på \'Olauncher\' högst upp på denna Inställningar-sida för att hitta dina dolda appar.\n\nMer information finns på vår Om-sida nedan. @@ -96,7 +82,7 @@ Sök Aviseringar Vänligen sätt på eller stäng av Olaunchers tillgänglighetstjänst i din enhets inställningar för att aktivera eller inaktivera denna funktion. - \n\nVänligen observera att denna tjänst endast används för att låta dig stänga av skärmen på din enhet genom dubbeltrycksgesten. Vår tillgänglighetstjänst varken samlar in eller delar några data. + \n\nVänligen observera att denna tjänst endast används för att låta dig stänga av skärmen på din enhet genom dubbeltrycksgesten. Vår tillgänglighetstjänst varken samlar in eller delar några data. Godkänn Behörighet Dubbeltryck för att låsa @@ -123,7 +109,7 @@ Vänstersvepsapp inaktiverad Högersvepsapp inaktiverad Din bakgrundsbild kommer att uppdateras inom kort - Olauncher är inte förvald.\nUppdatering av daglig bakgrundsbild kanske misslyckas. + Olauncher är inte förvald. Uppdatering av bakgrundsbild kommer att misslyckas. Långtryck för att aktivera Inga dolda appar Dolda appar -- cgit v1.2.1 From 738d8723bb75a55180177c46948402c105463219 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Fri, 27 Oct 2023 13:54:04 +0530 Subject: Translation cleanup --- app/src/main/res/values-hr/strings.xml | 3 +++ app/src/main/res/values-hu/strings.xml | 15 --------------- 2 files changed, 3 insertions(+), 15 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index f8b49a3..9357c7c 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -2,6 +2,7 @@ Olauncher Aplikacija Postavi kao zadani pokretač + Postavi kao zadani pokretač Boja teksta Dvostruki dodir za zaključavanje Olauncher obećava da će odgovorno koristiti dozvolu za zaključavanje zaslona. @@ -13,7 +14,9 @@ Promijeni zadani pokretač Privatnost Podijeli + Podijeli Ocijeni + Ocijeni Prati E-pošta Github diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index ab21a54..3922fb6 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -1,19 +1,4 @@ - Olauncher - Github - lock layout description to be used a unique id to lock screen - Olauncher Pro - %s, %d%% - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - Alkalmazás Beállítás alapértelmezett indítóként Beállítás alapértelmezett indítóként -- cgit v1.2.1 From ecfa08a4750f61dee75a1a109c6b3bb5e6798cdb Mon Sep 17 00:00:00 2001 From: Y-trie <150873944+Y-trie@users.noreply.github.com> Date: Tue, 14 Nov 2023 17:59:31 -0800 Subject: Fix issue #304 Removed `getHiddenAppsList` and refactored `getAppsList` in Utils to serve the function both. `getAppsList` can now be used to show only hidden apps, only non-hidden applications, or to show both hidden and non-hidden applications. --- app/src/main/java/app/olauncher/MainViewModel.kt | 5 +- app/src/main/java/app/olauncher/helper/Utils.kt | 78 +++++++----------------- 2 files changed, 24 insertions(+), 59 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/MainViewModel.kt b/app/src/main/java/app/olauncher/MainViewModel.kt index d02edac..0b7449b 100644 --- a/app/src/main/java/app/olauncher/MainViewModel.kt +++ b/app/src/main/java/app/olauncher/MainViewModel.kt @@ -20,7 +20,6 @@ import app.olauncher.data.Prefs import app.olauncher.helper.SingleLiveEvent import app.olauncher.helper.WallpaperWorker import app.olauncher.helper.getAppsList -import app.olauncher.helper.getHiddenAppsList import app.olauncher.helper.isOlauncherDefault import app.olauncher.helper.showToast import kotlinx.coroutines.launch @@ -196,13 +195,13 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { fun getAppList(includeHiddenApps: Boolean = false) { viewModelScope.launch { - appList.value = getAppsList(appContext, prefs, includeHiddenApps) + appList.value = getAppsList(appContext, prefs, includeRegularApps = true, includeHiddenApps) } } fun getHiddenApps() { viewModelScope.launch { - hiddenApps.value = getHiddenAppsList(appContext, prefs) + hiddenApps.value = getAppsList(appContext, prefs, includeRegularApps = false, includeHiddenApps = true) } } diff --git a/app/src/main/java/app/olauncher/helper/Utils.kt b/app/src/main/java/app/olauncher/helper/Utils.kt index 9ee2acd..cb25419 100644 --- a/app/src/main/java/app/olauncher/helper/Utils.kt +++ b/app/src/main/java/app/olauncher/helper/Utils.kt @@ -65,7 +65,7 @@ fun Context.showToast(stringResource: Int, duration: Int = Toast.LENGTH_SHORT) { Toast.makeText(this, getString(stringResource), duration).show() } -suspend fun getAppsList(context: Context, prefs: Prefs, includeHiddenApps: Boolean = false): MutableList { +suspend fun getAppsList(context: Context, prefs: Prefs, includeRegularApps: Boolean = true, includeHiddenApps: Boolean = false): MutableList { return withContext(Dispatchers.IO) { val appList: MutableList = mutableListOf() @@ -81,29 +81,28 @@ suspend fun getAppsList(context: Context, prefs: Prefs, includeHiddenApps: Boole for (app in launcherApps.getActivityList(null, profile)) { val appLabelShown = prefs.getAppRenameLabel(app.applicationInfo.packageName).ifBlank { app.label.toString() } - - if (includeHiddenApps && app.applicationInfo.packageName != BuildConfig.APPLICATION_ID) - appList.add( - AppModel( - appLabelShown, - collator.getCollationKey(app.label.toString()), - app.applicationInfo.packageName, - app.componentName.className, - profile - ) - ) - else if (!hiddenApps.contains(app.applicationInfo.packageName + "|" + profile.toString()) - && app.applicationInfo.packageName != BuildConfig.APPLICATION_ID + val appModel = AppModel( + appLabelShown, + collator.getCollationKey(app.label.toString()), + app.applicationInfo.packageName, + app.componentName.className, + profile ) - appList.add( - AppModel( - appLabelShown, - collator.getCollationKey(app.label.toString()), - app.applicationInfo.packageName, - app.componentName.className, - profile - ) - ) + + // if the current app is not OLauncher + if (app.applicationInfo.packageName != BuildConfig.APPLICATION_ID) { + // is this a hidden app? + if (hiddenApps.contains(app.applicationInfo.packageName + "|" + profile.toString())) { + if (includeHiddenApps) { + appList.add(appModel) + } + } else { + // this is a regular app + if (includeRegularApps) { + appList.add(appModel) + } + } + } } } appList.sortBy { it.appLabel.lowercase() } @@ -115,39 +114,6 @@ suspend fun getAppsList(context: Context, prefs: Prefs, includeHiddenApps: Boole } } -suspend fun getHiddenAppsList(context: Context, prefs: Prefs): MutableList { - return withContext(Dispatchers.IO) { - val pm = context.packageManager - if (!prefs.hiddenAppsUpdated) upgradeHiddenApps(prefs) - - val hiddenAppsSet = prefs.hiddenApps - val appList: MutableList = mutableListOf() - if (hiddenAppsSet.isEmpty()) return@withContext appList - - val userManager = context.getSystemService(Context.USER_SERVICE) as UserManager - val collator = Collator.getInstance() - for (hiddenPackage in hiddenAppsSet) { - try { - val appPackage = hiddenPackage.split("|")[0] - val userString = hiddenPackage.split("|")[1] - var userHandle = android.os.Process.myUserHandle() - for (user in userManager.userProfiles) { - if (user.toString() == userString) userHandle = user - } - - val appInfo = pm.getApplicationInfo(appPackage, 0) - val appLabelShown = prefs.getAppRenameLabel(appPackage).ifBlank { pm.getApplicationLabel(appInfo).toString() } - val appKey = collator.getCollationKey(appLabelShown) - appList.add(AppModel(appLabelShown, appKey, appPackage, null, userHandle)) - } catch (e: Exception) { - e.printStackTrace() - } - } - appList.sortBy { it.appLabel.lowercase() } - appList - } -} - // This is to ensure backward compatibility with older app versions // which did not support multiple user profiles private fun upgradeHiddenApps(prefs: Prefs) { -- cgit v1.2.1 From 91e7e4d488221fe45bae982d7938bd1fec941bd7 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Tue, 21 Nov 2023 13:04:29 +0530 Subject: Updated about page url --- app/src/main/java/app/olauncher/data/Constants.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/data/Constants.kt b/app/src/main/java/app/olauncher/data/Constants.kt index 6138268..18ea61e 100644 --- a/app/src/main/java/app/olauncher/data/Constants.kt +++ b/app/src/main/java/app/olauncher/data/Constants.kt @@ -77,7 +77,7 @@ object Constants { const val MIN_ANIM_REFRESH_RATE = 10f - const val URL_ABOUT_OLAUNCHER = "https://tanujnotes.notion.site/Olauncher-Minimal-AF-4843e398b05a455bb521b0665b26fbcd" + const val URL_ABOUT_OLAUNCHER = "https://tanujnotes.substack.com/p/olauncher-minimal-af-launcher?utm_source=olauncher" const val URL_OLAUNCHER_PRIVACY = "https://tanujnotes.notion.site/Olauncher-Privacy-Policy-dd6ac5101ddd4b3da9d27057889d44ab" const val URL_DOUBLE_TAP = "https://tanujnotes.notion.site/Double-tap-to-lock-Olauncher-0f7fb103ec1f47d7a90cdfdcd7fb86ef" const val URL_OLAUNCHER_GITHUB = "https://www.github.com/tanujnotes/Olauncher" -- cgit v1.2.1 From 82618622435989dc8eda46a567e746d7693252ef Mon Sep 17 00:00:00 2001 From: Tanuj Date: Tue, 5 Dec 2023 22:23:41 +0530 Subject: Set app theme on configuration change --- app/src/main/java/app/olauncher/MainActivity.kt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/MainActivity.kt b/app/src/main/java/app/olauncher/MainActivity.kt index 8fcb573..78c143f 100644 --- a/app/src/main/java/app/olauncher/MainActivity.kt +++ b/app/src/main/java/app/olauncher/MainActivity.kt @@ -82,13 +82,12 @@ class MainActivity : AppCompatActivity() { override fun onConfigurationChanged(newConfig: Configuration) { super.onConfigurationChanged(newConfig) - if (prefs.dailyWallpaper && - AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM - ) { + AppCompatDelegate.setDefaultNightMode(prefs.appTheme) + if (prefs.dailyWallpaper && AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM) { setPlainWallpaper() viewModel.setWallpaperWorker() + recreate() } - recreate() } private fun initClickListeners() { -- cgit v1.2.1 From 8041c6d0171ee162122195043ac0b63a746b983a Mon Sep 17 00:00:00 2001 From: ViamosDeveloper <65663551+ViamosDeveloper@users.noreply.github.com> Date: Sat, 9 Dec 2023 16:50:39 +0800 Subject: Update strings.xml I've made some corrections about Russian localization. Some words didn't make any sense (russian is hard) --- app/src/main/res/values-ru-rRU/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 7da9c7e..14f0354 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -47,7 +47,7 @@ Показывать строку состояния Переименовать Показывать дату и время - Появление + Внешний вид Жесты Тема Системная @@ -114,7 +114,7 @@ Olauncher не является лаунчером по умолчанию.\nЕжедневное обновление обоев может завершиться ошибкой. Нажмите и удерживайте, чтобы включить Нет скрытых приложений - Скрытых приложений + Скрытые приложения Показать Скрыть Вы используете свой телефон, или ваш телефон использует вас? -- cgit v1.2.1 From 4dcb3e7eb7958c3e0a418c976b3a969f0278d8d9 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Mon, 18 Dec 2023 11:02:06 +0530 Subject: Digital wellbeing message in settings --- app/src/main/java/app/olauncher/MainActivity.kt | 7 +++++ app/src/main/java/app/olauncher/data/Constants.kt | 3 ++ .../main/java/app/olauncher/ui/SettingsFragment.kt | 33 ++++++++++++++++++++-- app/src/main/res/layout-land/fragment_settings.xml | 20 ++++++++++--- app/src/main/res/layout/fragment_settings.xml | 20 ++++++++++--- app/src/main/res/values/strings.xml | 4 +++ 6 files changed, 76 insertions(+), 11 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/MainActivity.kt b/app/src/main/java/app/olauncher/MainActivity.kt index 78c143f..3a7e668 100644 --- a/app/src/main/java/app/olauncher/MainActivity.kt +++ b/app/src/main/java/app/olauncher/MainActivity.kt @@ -134,6 +134,13 @@ class MainActivity : AppCompatActivity() { binding.messageLayout.visibility = View.GONE } } + + Constants.Dialog.DIGITAL_WELLBEING -> { + showMessageDialog("Hi", getString(R.string.digital_wellbeing_message), getString(R.string.learn_more)) { + binding.messageLayout.visibility = View.GONE + openUrl(Constants.URL_DIGITAL_WELLBEING_LEARN_MORE) + } + } } } } diff --git a/app/src/main/java/app/olauncher/data/Constants.kt b/app/src/main/java/app/olauncher/data/Constants.kt index 18ea61e..02c0ccd 100644 --- a/app/src/main/java/app/olauncher/data/Constants.kt +++ b/app/src/main/java/app/olauncher/data/Constants.kt @@ -12,6 +12,7 @@ object Constants { const val SHARE = "SHARE" const val HIDDEN = "HIDDEN" const val KEYBOARD = "KEYBOARD" + const val DIGITAL_WELLBEING = "DIGITAL_WELLBEING" } object DateTime { @@ -88,6 +89,8 @@ object Constants { const val URL_DEFAULT_DARK_WALLPAPER = "https://images.unsplash.com/photo-1512551980832-13df02babc9e" const val URL_DEFAULT_LIGHT_WALLPAPER = "https://images.unsplash.com/photo-1515549832467-8783363e19b6" const val URL_DUCK_SEARCH = "https://duck.co/?q=" + const val URL_DIGITAL_WELLBEING_LEARN_MORE = "https://tanujnotes.substack.com/p/digital-wellbeing-app-on-android?utm_source=olauncher" + const val DIGITAL_WELLBEING_PACKAGE_NAME = "com.google.android.apps.wellbeing" const val WALLPAPER_WORKER_NAME = "WALLPAPER_WORKER_NAME" } \ No newline at end of file diff --git a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt index a5c5dd6..c92d298 100644 --- a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt +++ b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt @@ -6,8 +6,13 @@ import android.content.Context import android.content.Intent import android.os.Build import android.os.Bundle +import android.os.Process import android.provider.Settings -import android.view.* +import android.view.Gravity +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.view.WindowInsets import android.widget.Toast import androidx.appcompat.app.AppCompatDelegate import androidx.core.os.bundleOf @@ -21,7 +26,18 @@ import app.olauncher.R import app.olauncher.data.Constants import app.olauncher.data.Prefs import app.olauncher.databinding.FragmentSettingsBinding -import app.olauncher.helper.* +import app.olauncher.helper.animateAlpha +import app.olauncher.helper.getColorFromAttr +import app.olauncher.helper.isAccessServiceEnabled +import app.olauncher.helper.isDarkThemeOn +import app.olauncher.helper.isOlauncherDefault +import app.olauncher.helper.isPackageInstalled +import app.olauncher.helper.openAppInfo +import app.olauncher.helper.openUrl +import app.olauncher.helper.rateApp +import app.olauncher.helper.setPlainWallpaper +import app.olauncher.helper.shareApp +import app.olauncher.helper.showToast import app.olauncher.listener.DeviceAdmin class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListener { @@ -52,6 +68,7 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe checkAdminPermission() binding.homeAppsNum.text = prefs.homeAppsNum.toString() + populateDigitalWellbeing() populateKeyboardText() populateLockSettings() populateWallpaperText() @@ -78,7 +95,8 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe when (view.id) { R.id.olauncherHiddenApps -> showHiddenApps() - R.id.appInfo -> openAppInfo(requireContext(), android.os.Process.myUserHandle(), BuildConfig.APPLICATION_ID) + R.id.digitalWellbeing -> viewModel.showDialog.postValue(Constants.Dialog.DIGITAL_WELLBEING) + R.id.appInfo -> openAppInfo(requireContext(), Process.myUserHandle(), BuildConfig.APPLICATION_ID) R.id.setLauncher -> viewModel.resetLauncherLiveData.call() R.id.toggleLock -> toggleLockMode() R.id.autoShowKeyboard -> toggleKeyboardText() @@ -174,6 +192,7 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe binding.appInfo.setOnClickListener(this) binding.setLauncher.setOnClickListener(this) binding.aboutOlauncher.setOnClickListener(this) + binding.digitalWellbeing.setOnClickListener(this) binding.autoShowKeyboard.setOnClickListener(this) binding.toggleLock.setOnClickListener(this) binding.homeAppsNum.setOnClickListener(this) @@ -564,6 +583,14 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe binding.swipeRightApp.setTextColor(requireContext().getColorFromAttr(R.attr.primaryColorTrans50)) } + private fun populateDigitalWellbeing() { + binding.digitalWellbeing.isVisible = isPackageInstalled( + requireContext(), + Constants.DIGITAL_WELLBEING_PACKAGE_NAME, + Process.myUserHandle().toString() + ).not() + } + private fun showAppListIfEnabled(flag: Int) { if ((flag == Constants.FLAG_SET_SWIPE_LEFT_APP) and !prefs.swipeLeftEnabled) { requireContext().showToast(getString(R.string.long_press_to_enable)) diff --git a/app/src/main/res/layout-land/fragment_settings.xml b/app/src/main/res/layout-land/fragment_settings.xml index 49e697d..4607c06 100644 --- a/app/src/main/res/layout-land/fragment_settings.xml +++ b/app/src/main/res/layout-land/fragment_settings.xml @@ -60,24 +60,36 @@ + android:text="@string/about_olauncher" /> + android:text="@string/digital_wellbeing" + android:visibility="gone" + tools:visibility="visible" /> + + diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index ac8af8b..9a395cc 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -61,24 +61,36 @@ + android:text="@string/about_olauncher" /> + android:text="@string/digital_wellbeing" + android:visibility="gone" + tools:visibility="visible" /> + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4d85c4b..c68466b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -74,6 +74,8 @@ \n\nWould you be kind enough to share Olauncher with your friends, please? Thank you and have a wonderful day! Hi, keyboard is the fastest way to find and launch apps in Olauncher. Can we request you to keep this On for a few more days and then decide? \n\nThe choice is always yours. + If you want to set time limits for certain apps, Digital Wellbeing feature of Android can help you do it. + \n\nPlease search for Digital Wellbeing in your phone settings and enable it. The accessibility permission is required to enable double tap to lock. Any data acquired by Olauncher via this service will not leave your device. Support Olauncher for free by using our Amazon affiliate link. Every time you buy something using our link, we get a small commission. Please save the link and use it whenever you shop online.\nThank you! @@ -132,4 +134,6 @@ Hide Are you using your phone, or is your phone using you? About Olauncher + Digital Wellbeing + Learn more \ No newline at end of file -- cgit v1.2.1 From 08b9733d538fad0d6fde6e48cd27d3768a2fb7fb Mon Sep 17 00:00:00 2001 From: Tanuj Date: Mon, 18 Dec 2023 11:20:59 +0530 Subject: Added translation --- app/src/main/res/values-ar/strings.xml | 2 ++ app/src/main/res/values-de/strings.xml | 2 ++ app/src/main/res/values-es-rES/strings.xml | 2 ++ app/src/main/res/values-es-rUS/strings.xml | 2 ++ app/src/main/res/values-fr/strings.xml | 2 ++ app/src/main/res/values-hr/strings.xml | 2 ++ app/src/main/res/values-hu/strings.xml | 2 ++ app/src/main/res/values-in/strings.xml | 2 ++ app/src/main/res/values-it/strings.xml | 2 ++ app/src/main/res/values-ja/strings.xml | 2 ++ app/src/main/res/values-pl/strings.xml | 2 ++ app/src/main/res/values-pt-rBR/strings.xml | 2 ++ app/src/main/res/values-ru-rRU/strings.xml | 2 ++ app/src/main/res/values-sv/strings.xml | 2 ++ app/src/main/res/values-tr/strings.xml | 2 ++ app/src/main/res/values-uk/strings.xml | 2 ++ app/src/main/res/values-zh/strings.xml | 4 +++- 17 files changed, 35 insertions(+), 1 deletion(-) (limited to 'app/src/main') diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index f24adf7..904fdde 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -91,6 +91,8 @@ مرحبا ، لدينا طلب كبير! نريد الوصول إلى مليون عملية تنزيل قبل نهاية عام 2023 ، ونحتاج إلى مساعدتك. \n\nهل يمكنك مشاركة Olauncher مع أصدقائك ، من فضلك؟ ذلك سيكون عونا حقا. شكرًا لك! مرحبًا ، لوحة المفاتيح هي أسرع طريقة للعثور على التطبيقات وتشغيلها في Olauncher. هل يمكننا أن نطلب منك الاحتفاظ بهذا الأمر لبضعة أيام أخرى ثم اتخاذ القرار؟ الاختيار دائما لك. + إذا كنت تريد تعيين حدود زمنية لتطبيقات معينة، فيمكن أن تساعدك ميزة الرفاهية الرقمية في Android على القيام بذلك. + \n\nيرجى البحث عن الرفاهية الرقمية في إعدادات هاتفك وتمكينها. إذن الوصول مطلوب لتمكين النقر المزدوج للقفل. أي بيانات حصل عليها Olauncher عبر هذه الخدمة لن تترك جهازك. ادعم Olauncher مجانًا باستخدام رابط الشراكة التابع لشركة Amazon. في كل مرة تشتري شيئًا باستخدام الرابط الخاص بنا ، نحصل على عمولة صغيرة. يرجى حفظ الرابط واستخدامه في أي وقت تتسوق فيه عبر الإنترنت. شكرًا لك! diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index d6b4991..53c8f6f 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -93,6 +93,8 @@ \n\nKönnten Sie Olauncher bitte mit Ihren Freunden teilen? Das wäre wirklich hilfreich. Dan­ke­schön! Hallo, die Tastatur ist der schnellste Weg, Apps in Olauncher zu finden und zu starten. Können wir Sie bitten, die Funktion noch ein paar Tage eingeschaltet zu lassen und dann zu entscheiden? \n\nDie Wahl liegt immer bei Ihnen. + Wenn Sie Zeitlimits für bestimmte Apps festlegen möchten, kann Ihnen die Digital Wellbeing-Funktion von Android dabei helfen. + \n\nBitte suchen Sie in Ihren Telefoneinstellungen nach Digital Wellbeing und aktivieren Sie es. Die Zugriffsberechtigung ist erforderlich, um das Sperren durch Doppeltippen zu ermöglichen. Die von Olauncher über diesen Dienst erfassten Daten verlassen Ihr Gerät nicht. Unterstützen Sie Olauncher kostenlos, indem Sie unseren Amazon-Partnerlink verwenden. Jedes Mal, wenn Sie über unseren Link etwas kaufen, erhalten wir eine kleine Provision. Bitte speichern Sie den Link und verwenden Sie ihn bei jedem Online-Einkauf. Dan­ke­schön! diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 71d385a..60e07c7 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -60,6 +60,8 @@ \n\n¿Podrías compartir Olauncher con tus amigos, por favor? Eso sería realmente útil. ¡Gracias! Hola, el teclado es la forma más rápida de encontrar y ejecutar aplicaciones en Olauncher. ¿Podemos pedirle que mantenga esto activado durante unos días más y luego decidir? \n\nLa decisión siempre es suya. + Si desea establecer límites de tiempo para determinadas aplicaciones, la función Bienestar digital de Android puede ayudarle a hacerlo. + \n\nBusque Bienestar digital en la configuración de su teléfono y habilítelo. "Se requiere el permiso de accesibilidad para habilitar el doble toque para bloquear. Cualquier dato adquirido por Olauncher a través de este servicio no saldrá de su dispositivo." Apoye a Olauncher de forma gratuita utilizando nuestro enlace de afiliado de Amazon. Cada vez que compre algo usando nuestro enlace, obtendremos una pequeña comisión. Guarde el enlace y utilícelo cada vez que compre en línea.\n¡Gracias! diff --git a/app/src/main/res/values-es-rUS/strings.xml b/app/src/main/res/values-es-rUS/strings.xml index 62177b7..cdcf1b4 100644 --- a/app/src/main/res/values-es-rUS/strings.xml +++ b/app/src/main/res/values-es-rUS/strings.xml @@ -59,6 +59,8 @@ Hola, tenemos una gran solicitud! Queremos alcanzar el millón de descargas antes de que finalice 2023 y necesitamos tu ayuda. \n\n¿Podrías compartir Olauncher con tus amigos, por favor? Eso sería realmente útil. ¡Gracias! Hola, el teclado es la forma más rápida de encontrar y lanzar aplicaciones en Olauncher. ¿Podemos pedirle que mantenga esto encendido por unos días más y luego decidir? La elección es siempre tuya. + Si desea establecer límites de tiempo para determinadas aplicaciones, la función Bienestar digital de Android puede ayudarle a hacerlo. + \n\nBusque Bienestar digital en la configuración de su teléfono y habilítelo. The accessibility permission is required to enable double tap to lock. Any data acquired by Olauncher via this service will not leave your device. Apoye Olauncher de forma gratuita utilizando nuestro enlace de afiliado de Amazon. Cada vez que compras algo usando nuestro enlace, obtenemos una pequeña comisión. Por favor, guarde el enlace y úselo cada vez que compre en línea. ¡Gracias! diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index cdff990..1e72134 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -59,6 +59,8 @@ Bonjour, pensez-vous que vos amis aimeraient Olauncher autant que vous? \n\nSoutenez-nous en partageant l\'appli. Merci ! Bonjour, le clavier est le moyen le plus rapide de trouver et de lancer des applications dans Olauncher. Pouvons-nous vous demander de garder cela activé pendant quelques jours de plus, puis de décider? Le choix vous appartient toujours. + Si vous souhaitez définir des limites de temps pour certaines applications, la fonctionnalité Digital Wellbeing d\'Android peut vous aider à le faire. + \n\nVeuillez rechercher Digital Wellbeing dans les paramètres de votre téléphone et l\'activer. L\'autorisation d\'accessibilité est requise pour activer le double appui pour verrouiller. Toutes les données acquises par Olauncher via ce service ne quitteront pas votre appareil. Soutenez Olauncher gratuitement en utilisant notre lien d\'affiliation Amazon. Chaque fois que vous achetez quelque chose en utilisant notre lien, nous recevons une petite commission. Enregistrez le lien et utilisez le chaque fois que vous commandez en ligne. Merci! diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 9357c7c..39c418f 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -58,6 +58,8 @@ \n\nBok, ako uživaš u korištenju Olaunchera, možeš li nam dati recenziju s 5 zvijezdica? To nam donosi više korisnika i usrećuje nas.\nHvala ti i sretan ostatak dana! Bok, misliš li da bi i tvoji prijatelji voljeli Olauncher? \n\nPodijeli aplikaciju i širi riječ o nama. Hvala ti! + Ako želite postaviti vremenska ograničenja za određene aplikacije, značajka Digital Wellbeing na Androidu može vam pomoći u tome. + \n\nPotražite Digital Wellbeing u postavkama telefona i omogućite ga. Dozvola za pristupačnost potrebna je za omogućavanje zaključavanja dvostrukim dodirom. Bilo koji podatci prikupljeni ovim servisom neće napustiti tvoj uređaj. lock layout description to be used a unique id to lock screen Besplatno podrži Olauncher korištenjem naše sponzorske poveznice za Amazon. diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 3922fb6..4718070 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -59,6 +59,8 @@ \n\nOssza meg az Olauncher-t az Önnek fontos emberekkel. Üdv, a billentyűzet a leggyorsabb módja a alkalmazások megtalálásához és elindításához az Olauncherben. Kérhetjük, hogy hagyja bekapcsolva még néhány napig, és utána döntsön. \n\nA választás mindig az Öné. + Ha időkorlátokat szeretne beállítani bizonyos alkalmazásokhoz, az Android Digital Wellbeing funkciója segíthet ebben. + \n\nKeresse meg a Digitális jólét elemet a telefon beállításai között, és engedélyezze. A dupla koppintás zárolásához szükséges a hozzáférhetőségi engedély. Az Olauncher által ezen a szolgáltatáson keresztül megszerzett adatok nem hagyják el a készüléket. Támogasson minket ingyenesen az Amazon affiliate linkünk használatával. Minden alkalommal, amikor vásárol valamit a linkünket használva, egy kis jutalékot kapunk. Kérjük, mentse el a linket, és használja fel, amikor csak online vásárol. diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 12bb882..5a65961 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -59,6 +59,8 @@ Hai, kami punya permintaan besar! Kami ingin mencapai satu juta unduhan sebelum tahun 2023 berakhir, dan kami membutuhkan bantuan Anda. \n\nBisakah Anda berbagi Olauncher dengan teman-teman Anda? Itu akan sangat membantu. Terima kasih! Hai, keyboard adalah cara tercepat untuk menemukan dan meluncurkan aplikasi di Olauncher. Bisakah kami meminta Anda untuk mengaktifkannya selama beberapa hari lagi dan kemudian memutuskan? Pilihan selalu menjadi milik Anda. + Jika Anda ingin menetapkan batas waktu untuk aplikasi tertentu, fitur Kesejahteraan Digital Android dapat membantu Anda melakukannya. + \n\nSilakan cari Kesejahteraan Digital di pengaturan ponsel Anda dan aktifkan. Izin aksesibilitas diperlukan untuk mengaktifkan ketuk dua kali untuk mengunci. Data apa pun yang diperoleh Olauncher melalui layanan ini tidak akan meninggalkan perangkat Anda. Dukung Olauncher secara gratis dengan menggunakan tautan afiliasi Amazon kami. Setiap kali Anda membeli sesuatu menggunakan tautan kami, kami mendapat komisi kecil. Harap simpan tautan dan gunakan setiap kali Anda berbelanja online.\nTerima kasih! diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index adaf596..151d782 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -60,6 +60,8 @@ \n\nCondividi l\'app e aiutaci a spargere la voce. Grazie! Ciao, la tastiera è il modo più veloce per trovare e avviare le app in Olauncher. Possiamo chiederti di metterlo alla prova ancora per qualche giorno e poi decidere? \n\nSei sempre tu a scegliere. + Se desideri impostare limiti di tempo per determinate app, la funzionalità Benessere digitale di Android può aiutarti a farlo. + \n\nCerca Benessere digitale nelle impostazioni del telefono e attivalo. L\'autorizzazione di accessibilità è necessaria per abilitare il doppio tocco per il blocco schermo. Qualsiasi dato acquisito da Olauncher tramite questo servizio rimarrà all’interno del telefono Supporta Olauncher gratuitamente utilizzando il nostro link di affiliazione su Amazon. Ogni volta che acquisti qualcosa utilizzando il nostro link, riceviamo una piccola commissione. Salva il link e usalo ogni volta che fai acquisti online.\n Grazie! diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 10b55ee..356426c 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -91,6 +91,8 @@ ねえ、Olauncher は役に立つと思いますか? 「はい」の場合、5 つ星の評価が私たちをサポートする最善の方法です。\n\nありがとう、もうこれを見ることはないだろう。 こんにちは、あなたの友達もあなたと同じくらいオランチャーを好きだと思いますか?\n\nアプリを共有して、情報を広めてください。ありがとう! こんにちは、キーボードは Olauncher でアプリを見つけて起動する最も速い方法です。もう数日間これをオンにしてから判断していただくようお願いできますか?選択は常にあなた次第です。 + 特定のアプリに時間制限を設定したい場合は、Android の Digital Wellbeing 機能を使用すると便利です。 + \n\n携帯電話の設定で Digital Wellbeing を検索し、有効にしてください。 ダブルタップしてロックを有効にするには、アクセシビリティ許可が必要です。このサービスを通じて Olauncher が取得したデータは、デバイスから流出することはありません。 Amazon アフィリエイト リンクを使用して、Olauncher を無料でサポートしてください。 あなたが私たちのリンクを使用して何かを購入するたびに、私たちは少額の手数料を受け取ります。リンクを保存し、オンライン ショッピングの際には必ずご利用ください。 ありがとう! diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 99bf6c5..a0ed3f0 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -90,6 +90,8 @@ Hej, czy uważasz, że Olauncher jest przydatny? Jeśli tak, ocena 5 gwiazdek to najlepszy sposób, aby nas wesprzeć.\n\nDziękuję i więcej tego nie zobaczysz. Cześć, myślisz, że Twoi znajomi pokochaliby Olaunchera tak samo jak Ty?\n\nUdostępnij aplikację i pomóż nam rozpowszechniać informacje. Dziękuję! Cześć, klawiatura to najszybszy sposób znajdowania i uruchamiania aplikacji w Olauncher. Czy możemy poprosić o pozostawienie tego włączonego jeszcze przez kilka dni, a następnie podjęcie decyzji?\n\nWybór zawsze należy do Ciebie. + Jeśli chcesz ustawić limity czasowe dla niektórych aplikacji, funkcja Cyfrowa równowaga w systemie Android może Ci w tym pomóc. + \n\nWyszukaj opcję Cyfrowa równowaga w ustawieniach telefonu i włącz ją. Uprawnienia dostępu są wymagane, aby włączyć podwójne dotknięcie, aby zablokować. Wszelkie dane pozyskane przez Olauncher za pośrednictwem tej usługi nie opuszczą Twojego urządzenia. Wesprzyj Olauncher za darmo, korzystając z naszego linku afiliacyjnego Amazon. Za każdym razem, gdy kupujesz coś za pomocą naszego linku, otrzymujemy niewielką prowizję. Zapisz link i używaj go podczas zakupów online. Dziękuję! diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 72f7273..2cbfe24 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -59,6 +59,8 @@ \n\nCompartilhe o aplicativo e ajude-nos a divulgar. Obrigado! Olá, o teclado é a maneira mais rápida de encontrar e iniciar aplicativos no Olauncher. Podemos pedir-lhe que mantenha isto ligado por mais alguns dias para depois decidir? \n\nA escolha é sempre sua! + Se você deseja definir limites de tempo para determinados aplicativos, o recurso Bem-estar digital do Android pode ajudá-lo a fazer isso. + \n\nProcure Bem-estar Digital nas configurações do seu telefone e ative-o. A permissão de acessibilidade é necessária para ativar o toque duplo para bloquear. Quaisquer dados adquiridos pelo Olauncher através deste serviço não sairão do seu dispositivo. Apoie o Olauncher gratuitamente usando nosso link de afiliado da Amazon. Sempre que você comprar algo usando nosso link, receberemos uma pequena comissão. Salve o link e use-o sempre que fizer compras online. Obrigado! diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 14f0354..7d70ca4 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -60,6 +60,8 @@ \n\nНе могли бы вы поделиться Olauncher со своими друзьями, пожалуйста? Это было бы очень полезно. Спасибо! Привет, клавиатура — это самый быстрый способ найти и запустить приложения в Olauncher. Можем ли мы попросить вас оставить это включенным еще на несколько дней, а затем принять решение? \n\nВыбор всегда за вами. + Если вы хотите установить ограничения по времени для определенных приложений, функция «Цифровое благополучие» Android может помочь вам в этом. + \n\nНайдите параметр «Цифровое благополучие» в настройках телефона и включите его. " Разрешение на доступ требуется, чтобы включить двойное касание для блокировки. Любые данные, полученные Olauncher через этот сервис, не покинут ваше устройство." Поддержите Olauncher бесплатно, используя нашу партнерскую ссылку Amazon. Каждый раз, когда вы покупаете что-то по нашей ссылке, мы получаем небольшую комиссию. Пожалуйста, сохраните ссылку и используйте ее при совершении покупок в Интернете.\nСпасибо! diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 4f85fc4..a74ec72 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -59,6 +59,8 @@ \n\nSkulle du kunna vara vänlig nog att dela Olauncher med dina vänner, är du snäll? Tack, och ha en underbar dag! Hejsan, tangentbordet är det snabbaste sättet att hitta och starta appar i Olauncher. Får vi be dig att behålla denna På i några dagar till innan du bestämmer dig? \n\nValet är alltid ditt. + Om du vill ställa in tidsgränser för vissa appar kan Digital Wellbeing-funktionen i Android hjälpa dig att göra det. + \n\nSök efter Digital Wellbeing i dina telefoninställningar och aktivera det. Tillgänglighetsbehörigheten krävs för att aktivera dubbeltryck för att låsa. Eventuella data förvärvade av Olauncher genom denna tjänst kommer inte att lämna din enhet. Stöd Olauncher utan kostnad genom att använda vår Amazon-affiliatelänk. Varje gång du köper något via vår länk får vi en liten provision. Vänligen spara länken och använd den när du handlar på nätet.\nTack! diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index ca2656e..e7721c7 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -93,6 +93,8 @@ \n\nOlauncher\'ı arkadaşlarınızla paylaşır mısınız lütfen? Bu gerçekten yardımcı olacaktır. Teşekkür ederim! Merhaba, klavye, Olauncher\'da uygulamaları bulmanın ve başlatmanın en hızlı yoludur. Bunu birkaç gün daha Açık tutmanızı ve sonra karar vermenizi rica edebilir miyiz? \n\nSeçim her zaman senindir. + Belirli uygulamalar için zaman sınırları belirlemek istiyorsanız Android\'in Dijital Denge özelliği bunu yapmanıza yardımcı olabilir. + \n\nLütfen telefon ayarlarınızda Dijital Refah\'ı arayın ve etkinleştirin. Kilitlemek için çift dokunmayı etkinleştirmek için erişilebilirlik izni gereklidir. Olauncher tarafından bu hizmet aracılığıyla elde edilen hiçbir veri cihazınızdan ayrılmayacaktır. Amazon ortaklık bağlantımızı kullanarak Olauncher\'ı ücretsiz olarak destekleyin. Bağlantımızı kullanarak her bir şey satın aldığınızda, küçük bir komisyon alırız. Lütfen bağlantıyı kaydedin ve çevrimiçi alışveriş yaptığınızda kullanın. Teşekkür ederim! diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 4a58bcd..a7b45dd 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -60,6 +60,8 @@ \n\nНе могли б ви поділитися Olauncher зі своїми друзями? Це було б справді корисно. Дякую тобі! Привіт, клавіатура - це найшвидший спосіб знайти та запустити програми в Olauncher. Чи можемо ми попросити вас залишити це увімкненим ще на кілька днів, а потім прийняти рішення? \n\nВибір завжди за вами. + Якщо ви хочете встановити часові обмеження для певних програм, функція цифрового добробуту Android може допомогти вам це зробити. + \n\nЗнайдіть Digital Wellbeing у налаштуваннях телефону та ввімкніть його. " Дозвіл на доступ потрібний, щоб увімкнути подвійне торкання для блокування. Будь-які дані, отримані Olauncher через цей сервіс, не залишать ваш пристрій." Підтримайте Olauncher безкоштовно, використовуючи наше партнерське посилання Amazon. Щоразу, коли ви купуєте щось за нашим посиланням, ми отримуємо невелику комісію. Будь ласка, збережіть посилання та використовуйте його для здійснення покупок в Інтернеті.\nСпасибі! diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 821409c..875b25c 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -93,7 +93,9 @@ \n\n您能与您的朋友分享 Olauncher 吗? 这真的很有帮助。 谢谢你! 您好,键盘是在 Olauncher 中查找和启动应用程序的最快方式。我们可以要求您再保留几天? \n\n然后再决定吗?选择权永远在你手中。 - 需要辅助功能权限才能启用双击锁定。 Olauncher 通过此服务获取的任何数据都不会离开您的设备。 + 如果您想为某些应用程序设置时间限制,Android 的数字健康功能可以帮助您做到这一点。 + \n\n请在手机设置中搜索数字健康并启用它。 + 请在手机设置中搜索数字健康并启用它。 使用我们的亚马逊附属链接免费支持 Olauncher。 每次您使用我们的链接购买商品时,我们都会获得少量佣金。请保存链接并在网上购物时使用它。 谢谢! 打开链接 -- cgit v1.2.1 From b9663046a2608e92105d9855b0b3272bfc854702 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Mon, 18 Dec 2023 11:27:21 +0530 Subject: Added translation --- app/src/main/res/values-ar/strings.xml | 1 + app/src/main/res/values-de/strings.xml | 1 + app/src/main/res/values-es-rES/strings.xml | 1 + app/src/main/res/values-es-rUS/strings.xml | 1 + app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values-hr/strings.xml | 1 + app/src/main/res/values-hu/strings.xml | 1 + app/src/main/res/values-in/strings.xml | 1 + app/src/main/res/values-it/strings.xml | 1 + app/src/main/res/values-ja/strings.xml | 1 + app/src/main/res/values-pl/strings.xml | 1 + app/src/main/res/values-pt-rBR/strings.xml | 1 + app/src/main/res/values-ru-rRU/strings.xml | 1 + app/src/main/res/values-sv/strings.xml | 1 + app/src/main/res/values-tr/strings.xml | 1 + app/src/main/res/values-uk/strings.xml | 1 + app/src/main/res/values-zh/strings.xml | 1 + 17 files changed, 17 insertions(+) (limited to 'app/src/main') diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 904fdde..607d9cb 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -117,4 +117,5 @@ انتقاد الحق التطبيق تمكين هل تستخدم هاتفك أم أن هاتفك يستخدمك؟ عن Olauncher + يتعلم أكثر \ No newline at end of file diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 53c8f6f..f534b1d 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -121,4 +121,5 @@ App nach rechts wischen deaktiviert Benutzen Sie Ihr Telefon, oder nutzt Ihr Telefon Sie? Über Olauncher + Erfahren Sie mehr diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 60e07c7..f40ea90 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -121,4 +121,5 @@ Ocultar ¿Estás usando tu teléfono, o tu teléfono te está usando a ti? Acerca de Olauncher + Aprende más diff --git a/app/src/main/res/values-es-rUS/strings.xml b/app/src/main/res/values-es-rUS/strings.xml index cdcf1b4..01b90d6 100644 --- a/app/src/main/res/values-es-rUS/strings.xml +++ b/app/src/main/res/values-es-rUS/strings.xml @@ -118,4 +118,5 @@ esconder ¿Estás usando tu teléfono, o tu teléfono te está usando a ti? Acerca de Olauncher + Aprende más diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 1e72134..0d2711e 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -123,4 +123,5 @@ Masquer Utilisez-vous votre téléphone, ou votre téléphone vous utilise-t-il? À propos Olauncher + Apprendre encore plus diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 39c418f..93efc63 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -82,4 +82,5 @@ Povuci prema dolje za Pretraživanje Obavijesti + Saznajte više diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 4718070..d413489 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -121,4 +121,5 @@ Rejtsd el! Ön használja a telefonját, vagy a telefona használja Önt? Az Olauncher-ről + Tudj meg többet \ No newline at end of file diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 5a65961..bf5a8d1 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -118,4 +118,5 @@ bersembunyi Apakah Anda menggunakan ponsel Anda, atau ponsel Anda menggunakan Anda? Tentang Olauncher + Belajarlah lagi \ No newline at end of file diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 151d782..1d764b3 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -121,4 +121,5 @@ nascondi Stai usando il tuo telefono, o è il tuo telefono che sta usando te? Info Olauncher + Saperne di più \ No newline at end of file diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 356426c..3199b21 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -119,4 +119,5 @@ アプリを右にスワイプすると無効になります あなたは電話を使っていますか、それともあなたの電話があなたを使っていますか? アバウト Olauncher + もっと詳しく知る \ No newline at end of file diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index a0ed3f0..b4eaa26 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -118,4 +118,5 @@ Gest Przesuń w prawo jest wyłączony Czy używasz telefonu, czy telefon używa ciebie? O Olauncher + Ucz się więcej diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 2cbfe24..dbfecaa 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -121,4 +121,5 @@ Esconder Você está usando seu telefone, ou seu telefone está usando você? Sobre Olauncher + Saber mais \ No newline at end of file diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 7d70ca4..3b8a4a7 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -121,4 +121,5 @@ Скрыть Вы используете свой телефон, или ваш телефон использует вас? О нас Olauncher + Узнать больше diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index a74ec72..7dd0c1b 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -119,4 +119,5 @@ Dölj Använder du din telefon, eller använder din telefon dig? Om Olauncher + Läs mer \ No newline at end of file diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index e7721c7..a6454ea 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -121,4 +121,5 @@ Sağa kaydırma uygulaması devre dışı bırakıldı Sen mi telefonunu, kullanıyorsun yoksa telefon mu seni kullanıyor? Hakkında Olauncher + Daha fazla bilgi edin \ No newline at end of file diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index a7b45dd..dcffaac 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -121,4 +121,5 @@ Приховати Ви користуєтеся своїм телефоном, чи ваш телефон використовує вас? Про нас Olauncher + Вивчайте більше diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 875b25c..99548e6 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -121,4 +121,5 @@ 向右滑动应用程序已禁用 是你在用手机,还是手机在用你? 关于 Olauncher + 了解更多 -- cgit v1.2.1 From f3520dad798d158fbda7440264cdfde4aea9c1b4 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Mon, 18 Dec 2023 13:04:04 +0530 Subject: Changes in search in app drawer --- app/src/main/java/app/olauncher/helper/Extensions.kt | 19 +++++++++++++++++++ .../main/java/app/olauncher/ui/AppDrawerFragment.kt | 3 ++- 2 files changed, 21 insertions(+), 1 deletion(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/helper/Extensions.kt b/app/src/main/java/app/olauncher/helper/Extensions.kt index d657daf..01d6f50 100644 --- a/app/src/main/java/app/olauncher/helper/Extensions.kt +++ b/app/src/main/java/app/olauncher/helper/Extensions.kt @@ -7,6 +7,7 @@ import android.content.ComponentName import android.content.Context import android.content.Intent import android.content.pm.PackageManager +import android.net.Uri import android.os.Build import android.view.View import android.view.WindowManager @@ -78,3 +79,21 @@ fun Context.isEinkDisplay(): Boolean { } } +fun Context.searchOnPlayStore(query: String? = null): Boolean { + return try { + startActivity( + Intent( + Intent.ACTION_VIEW, + Uri.parse("https://play.google.com/store/search?q=$query&c=apps") + ).addFlags( + Intent.FLAG_ACTIVITY_NO_HISTORY or + Intent.FLAG_ACTIVITY_NEW_DOCUMENT or + Intent.FLAG_ACTIVITY_MULTIPLE_TASK + ) + ) + true + } catch (e: Exception) { + e.printStackTrace() + false + } +} diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt index dd7aeea..1c3306a 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt @@ -22,6 +22,7 @@ import app.olauncher.helper.isSystemApp import app.olauncher.helper.openAppInfo import app.olauncher.helper.openSearch import app.olauncher.helper.openUrl +import app.olauncher.helper.searchOnPlayStore import app.olauncher.helper.showKeyboard import app.olauncher.helper.showToast import app.olauncher.helper.uninstall @@ -75,7 +76,7 @@ class AppDrawerFragment : Fragment() { override fun onQueryTextSubmit(query: String?): Boolean { if (query?.startsWith("!") == true) requireContext().openUrl(Constants.URL_DUCK_SEARCH + query.replace(" ", "%20")) - else if (adapter.itemCount == 0) + else if (adapter.itemCount == 0 && requireContext().searchOnPlayStore(query?.trim()).not()) requireContext().openSearch(query?.trim()) else adapter.launchFirstInList() -- cgit v1.2.1 From 3f3db0e428c1439721745cb2516a5582039f7581 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Tue, 9 Jan 2024 14:57:51 +0530 Subject: Added some strings --- app/src/main/res/values-ar/strings.xml | 4 ++++ app/src/main/res/values-de/strings.xml | 4 ++++ app/src/main/res/values-es-rES/strings.xml | 4 ++++ app/src/main/res/values-es-rUS/strings.xml | 4 ++++ app/src/main/res/values-fr/strings.xml | 4 ++++ app/src/main/res/values-hr/strings.xml | 4 ++++ app/src/main/res/values-hu/strings.xml | 4 ++++ app/src/main/res/values-in/strings.xml | 4 ++++ app/src/main/res/values-it/strings.xml | 4 ++++ app/src/main/res/values-ja/strings.xml | 4 ++++ app/src/main/res/values-pl/strings.xml | 4 ++++ app/src/main/res/values-pt-rBR/strings.xml | 4 ++++ app/src/main/res/values-ru-rRU/strings.xml | 4 ++++ app/src/main/res/values-sv/strings.xml | 4 ++++ app/src/main/res/values-tr/strings.xml | 4 ++++ app/src/main/res/values-uk/strings.xml | 4 ++++ app/src/main/res/values-zh/strings.xml | 4 ++++ app/src/main/res/values/strings.xml | 4 ++++ 18 files changed, 72 insertions(+) (limited to 'app/src/main') diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 607d9cb..9be610f 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -118,4 +118,8 @@ هل تستخدم هاتفك أم أن هاتفك يستخدمك؟ عن Olauncher يتعلم أكثر + هل كنت تعلم؟ + ترك التعليق + Olauncher هو وسيظل دائمًا مجانيًا تمامًا. ليس لديها إعلانات. لا يجمع أي بيانات. والأهم من ذلك أنه يساعدك على تقليل وقت الشاشة والعيش حياة رقمية أكثر صحة. + \n\nنحن نعتقد أن التحول إلى الحد الأدنى من المشغل هو قرار ممتاز. على الرغم من أننا متحيزون بشكل واضح، إلا أننا نأمل أن تستمتع بالتجربة. لا تتردد في مشاركة أفكارك معنا! \ No newline at end of file diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index f534b1d..2ea4ff3 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -122,4 +122,8 @@ Benutzen Sie Ihr Telefon, oder nutzt Ihr Telefon Sie? Über Olauncher Erfahren Sie mehr + Wussten Sie? + Rezension + Olauncher ist und bleibt völlig kostenlos. Es gibt keine Werbung. Es werden keine Daten erfasst. Am wichtigsten ist, dass es Ihnen dabei hilft, Ihre Bildschirmzeit zu verkürzen und ein gesünderes digitales Leben zu führen. + \n\nWir glauben, dass der Wechsel zu einem Minimal Launcher eine ausgezeichnete Entscheidung ist. Obwohl wir offensichtlich voreingenommen sind, hoffen wir, dass Ihnen die Erfahrung gefällt. Teilen Sie uns gerne Ihre Gedanken mit! diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index f40ea90..fe9df0a 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -122,4 +122,8 @@ ¿Estás usando tu teléfono, o tu teléfono te está usando a ti? Acerca de Olauncher Aprende más + ¿Sabías? + Dejar un comentario + Olauncher es y será siempre completamente gratuito. No tiene anuncios. No recopila datos. Lo más importante es que le ayuda a reducir el tiempo que pasa frente a la pantalla y a vivir una vida digital más saludable. + \n\nCreemos que cambiar a un lanzador mínimo es una excelente decisión. Aunque obviamente somos parciales, esperamos que disfrutes la experiencia. ¡No dudes en compartir tus pensamientos con nosotros! diff --git a/app/src/main/res/values-es-rUS/strings.xml b/app/src/main/res/values-es-rUS/strings.xml index 01b90d6..d30f934 100644 --- a/app/src/main/res/values-es-rUS/strings.xml +++ b/app/src/main/res/values-es-rUS/strings.xml @@ -119,4 +119,8 @@ ¿Estás usando tu teléfono, o tu teléfono te está usando a ti? Acerca de Olauncher Aprende más + ¿Sabías? + Dejar un comentario + Olauncher es y será siempre completamente gratuito. No tiene anuncios. No recopila datos. Lo más importante es que le ayuda a reducir el tiempo que pasa frente a la pantalla y a vivir una vida digital más saludable. + \n\nCreemos que cambiar a un lanzador mínimo es una excelente decisión. Aunque obviamente somos parciales, esperamos que disfrutes la experiencia. ¡No dudes en compartir tus pensamientos con nosotros! diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 0d2711e..74952de 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -124,4 +124,8 @@ Utilisez-vous votre téléphone, ou votre téléphone vous utilise-t-il? À propos Olauncher Apprendre encore plus + Saviez-vous? + Laisser un commentaire + Olauncher est et sera toujours entièrement gratuit. Il n\'y a pas de publicité. Il ne collecte aucune donnée. Plus important encore, cela vous aide à réduire votre temps d’écran et à vivre une vie numérique plus saine. + \n\nNous pensons que passer à un lanceur minimal est une excellente décision. Même si nous sommes évidemment partiaux, nous espérons que vous appréciez l'expérience. N'hésitez pas à partager vos idées avec nous! diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 93efc63..912e38b 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -83,4 +83,8 @@ Pretraživanje Obavijesti Saznajte više + Dali si znao? + Ostavite recenziju + Olauncher jest i uvijek će biti potpuno besplatan. Nema reklama. Ne prikuplja podatke. Što je najvažnije, pomaže vam u smanjenju vremena koje provodite pred ekranom i živite zdravijim digitalnim životom. + \n\nVjerujemo da je prelazak na minimalni launcher izvrsna odluka. Iako smo očito pristrani, nadamo se da uživate u iskustvu. Slobodno podijelite svoje misli s nama! diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index d413489..fa079e4 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -122,4 +122,8 @@ Ön használja a telefonját, vagy a telefona használja Önt? Az Olauncher-ről Tudj meg többet + Tudtad? + Hagyjon véleményt + Az Olauncher teljesen ingyenes és mindig is ingyenes lesz. Nincsenek hirdetései. Nem gyűjt adatokat. A legfontosabb, hogy segít csökkenteni a képernyő előtt töltött időt és egészségesebb digitális életet élni. + \n\nÚgy gondoljuk, hogy a minimális indítóra váltás kiváló döntés. Bár nyilvánvalóan elfogultak vagyunk, reméljük, hogy élvezni fogja az élményt. Nyugodtan oszd meg velünk gondolataidat! \ No newline at end of file diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index bf5a8d1..f97ee5c 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -119,4 +119,8 @@ Apakah Anda menggunakan ponsel Anda, atau ponsel Anda menggunakan Anda? Tentang Olauncher Belajarlah lagi + Tahukah kamu? + Tinggalkan ulasan + Olauncher sepenuhnya gratis dan akan selalu gratis. Tidak ada iklan. Itu tidak mengumpulkan data. Yang terpenting, ini membantu Anda mengurangi waktu pemakaian perangkat dan menjalani kehidupan digital yang lebih sehat. + \n\nKami percaya bahwa beralih ke peluncur minimal adalah keputusan yang sangat baik. Meskipun kami jelas-jelas bias, kami harap Anda menikmati pengalaman ini. Jangan ragu untuk berbagi pemikiran Anda dengan kami! \ No newline at end of file diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 1d764b3..f7d2f62 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -122,4 +122,8 @@ Stai usando il tuo telefono, o è il tuo telefono che sta usando te? Info Olauncher Saperne di più + Lo sapevate? + Lascia una recensione + Olauncher è e sarà sempre completamente gratuito. Non ha pubblicità. Non raccoglie dati. Ancora più importante, ti aiuta a ridurre il tempo trascorso davanti allo schermo e a vivere una vita digitale più sana. + \n\nCrediamo che passare a un launcher minimale sia un'ottima decisione. Anche se siamo ovviamente di parte, ci auguriamo che l'esperienza ti piaccia. Sentitevi liberi di condividere i tuoi pensieri con noi! \ No newline at end of file diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 3199b21..feaff79 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -120,4 +120,8 @@ あなたは電話を使っていますか、それともあなたの電話があなたを使っていますか? アバウト Olauncher もっと詳しく知る + 知っていましたか? + レビューを残す + Olauncher は現在も、今後も完全に無料です。広告はありません。データは収集されません。最も重要なことは、スクリーンタイムを短縮し、より健康的なデジタル ライフを送るのに役立つことです。 + \n\n私たちは、最小限のランチャーに切り替えるのは素晴らしい決断だと信じています。明らかに偏見がありますが、楽しんでいただければ幸いです。ぜひご意見をお聞かせください。 \ No newline at end of file diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index b4eaa26..2d6c783 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -119,4 +119,8 @@ Czy używasz telefonu, czy telefon używa ciebie? O Olauncher Ucz się więcej + Czy wiedziałeś? + Ucz się więcej + Olauncher jest i zawsze będzie całkowicie darmowy. Nie zawiera reklam. Nie zbiera żadnych danych. Co najważniejsze, pomaga skrócić czas spędzany przed ekranem i prowadzić zdrowsze cyfrowe życie. + \n\nWierzymy, że przejście na minimalny program uruchamiający to doskonała decyzja. Chociaż jesteśmy oczywiście stronniczy, mamy nadzieję, że spodoba ci się to doświadczenie. Podziel się z nami swoimi przemyśleniami! diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index dbfecaa..a2d7346 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -122,4 +122,8 @@ Você está usando seu telefone, ou seu telefone está usando você? Sobre Olauncher Saber mais + Você sabia? + Deixe um comentário + Olauncher é e sempre será totalmente gratuito. Não tem anúncios. Não coleta dados. Mais importante ainda, ajuda você a reduzir o tempo de tela e a ter uma vida digital mais saudável. + \n\nAcreditamos que mudar para um launcher mínimo é uma excelente decisão. Embora sejamos obviamente tendenciosos, esperamos que você esteja gostando da experiência. Sinta-se à vontade para compartilhar suas idéias conosco! \ No newline at end of file diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 3b8a4a7..7d86837 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -122,4 +122,8 @@ Вы используете свой телефон, или ваш телефон использует вас? О нас Olauncher Узнать больше + Вы знали? + Оставить отзыв + Olauncher есть и всегда будет полностью бесплатным. В нем нет рекламы. Он не собирает никаких данных. Самое главное, это помогает вам сократить время, проводимое перед экраном, и вести более здоровую цифровую жизнь. + \n\nМы считаем, что переход на минимальный лаунчер — отличное решение. Хотя мы явно предвзяты, мы надеемся, что вам понравится этот опыт. Не стесняйтесь поделиться с нами своим мнением! diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 7dd0c1b..e5932ca 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -120,4 +120,8 @@ Använder du din telefon, eller använder din telefon dig? Om Olauncher Läs mer + Visste du? + Lämna en recension + Olauncher är och kommer alltid att vara helt gratis. Den har inga annonser. Den samlar ingen data. Viktigast av allt, det hjälper dig att minska din skärmtid och leva ett hälsosammare digitalt liv. + \n\nVi tror att byte till en minimal launcher är ett utmärkt beslut. Även om vi uppenbarligen är partiska, hoppas vi att du gillar upplevelsen. Dela gärna dina tankar med oss! \ No newline at end of file diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index a6454ea..7b25e49 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -122,4 +122,8 @@ Sen mi telefonunu, kullanıyorsun yoksa telefon mu seni kullanıyor? Hakkında Olauncher Daha fazla bilgi edin + Biliyor musun? + İnceleme bırak + Olauncher tamamen ücretsizdir ve her zaman ücretsiz olacaktır. Hiçbir reklamı yok. Hiçbir veri toplamaz. En önemlisi ekran başında geçirdiğiniz süreyi azaltmanıza ve daha sağlıklı bir dijital yaşam sürmenize yardımcı olur. + \n\nMinimal bir başlatıcıya geçmenin mükemmel bir karar olduğuna inanıyoruz. Açıkça ön yargılı olsak da, bu deneyimden keyif alacağınızı umuyoruz. Düşüncelerinizi bizimle paylaşmaktan çekinmeyin! \ No newline at end of file diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index dcffaac..92f592d 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -122,4 +122,8 @@ Ви користуєтеся своїм телефоном, чи ваш телефон використовує вас? Про нас Olauncher Вивчайте більше + Ти знав? + Залиште відгук + Olauncher є і завжди буде абсолютно безкоштовним. У ньому немає реклами. Він не збирає дані. Найважливіше те, що це допомагає вам скоротити час використання екрана та жити здоровішим цифровим життям. + \n\nМи вважаємо, що перехід на мінімальний лаунчер є відмінним рішенням. Хоча ми явно упереджені, ми сподіваємося, що вам сподобається. Не соромтеся поділитися з нами своїми думками! diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 99548e6..908d2fa 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -122,4 +122,8 @@ 是你在用手机,还是手机在用你? 关于 Olauncher 了解更多 + 你可知道? + 发表评论 + Olauncher 现在并且永远是完全免费的。它没有广告。它不收集任何数据。最重要的是,它可以帮助您减少屏幕时间并过上更健康的数字生活。 + \n\n我们相信切换到最小启动器是一个很好的决定。虽然我们显然有偏见,但我们希望您喜欢这次体验。请随时与我们分享您的想法! diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c68466b..da4dd51 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -136,4 +136,8 @@ About Olauncher Digital Wellbeing Learn more + Did you know? + Leave a review + Olauncher is and will always be entirely free. It has no ads. It collects no data. Most importantly, it helps you in reducing your screen time and live a healthier digital life. + \n\nWe believe that switching to a minimal launcher is an excellent decision. While we're obviously biased, we hope you're enjoying the experience. Feel free to share your thoughts with us! \ No newline at end of file -- cgit v1.2.1 From 2b65082b44abec4699937b2b6ca4f540cdcd7898 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Thu, 11 Jan 2024 13:56:25 +0530 Subject: Changes in user rate/share dialogs --- app/src/main/java/app/olauncher/MainActivity.kt | 46 ++++++++++++++++++++++ app/src/main/java/app/olauncher/MainViewModel.kt | 2 + app/src/main/java/app/olauncher/data/Constants.kt | 12 +++++- app/src/main/java/app/olauncher/data/Prefs.kt | 15 +++++++ .../main/java/app/olauncher/helper/Extensions.kt | 10 +++++ .../java/app/olauncher/ui/AppDrawerFragment.kt | 10 ++++- app/src/main/java/app/olauncher/ui/HomeFragment.kt | 36 ++++++++++------- .../main/java/app/olauncher/ui/SettingsFragment.kt | 5 +++ app/src/main/res/values-fr/strings.xml | 2 +- app/src/main/res/values-it/strings.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- 11 files changed, 122 insertions(+), 20 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/MainActivity.kt b/app/src/main/java/app/olauncher/MainActivity.kt index 3a7e668..3b01b7f 100644 --- a/app/src/main/java/app/olauncher/MainActivity.kt +++ b/app/src/main/java/app/olauncher/MainActivity.kt @@ -55,6 +55,7 @@ class MainActivity : AppCompatActivity() { if (prefs.firstOpen) { viewModel.firstOpen(true) prefs.firstOpen = false + prefs.firstOpenTime = System.currentTimeMillis() } initClickListeners() @@ -106,9 +107,22 @@ class MainActivity : AppCompatActivity() { // else // showLauncherSelector(Constants.REQUEST_CODE_LAUNCHER_SELECTOR) } + viewModel.checkForMessages.observe(this) { + checkForMessages() + } viewModel.showDialog.observe(this) { when (it) { + Constants.Dialog.REVIEW -> { + prefs.userState = Constants.UserState.RATE + showMessageDialog(getString(R.string.did_you_know), getString(R.string.review_message), getString(R.string.leave_a_review)) { + binding.messageLayout.visibility = View.GONE + prefs.rateClicked = true + rateApp() + } + } + Constants.Dialog.RATE -> { + prefs.userState = Constants.UserState.SHARE showMessageDialog(getString(R.string.app_name), getString(R.string.rate_us_message), getString(R.string.rate_now)) { binding.messageLayout.visibility = View.GONE prefs.rateClicked = true @@ -117,6 +131,7 @@ class MainActivity : AppCompatActivity() { } Constants.Dialog.SHARE -> { + prefs.shareShownTime = System.currentTimeMillis() showMessageDialog(getString(R.string.app_name), getString(R.string.share_message), getString(R.string.share_now)) { binding.messageLayout.visibility = View.GONE shareApp() @@ -153,6 +168,37 @@ class MainActivity : AppCompatActivity() { binding.messageLayout.visibility = View.VISIBLE } + private fun checkForMessages() { + if (prefs.firstOpenTime == 0L) + prefs.firstOpenTime = System.currentTimeMillis() + + when (prefs.userState) { + Constants.UserState.START -> { + if (prefs.firstOpenTime.hasBeenMinutes(20)) + prefs.userState = Constants.UserState.REVIEW + } + + Constants.UserState.REVIEW -> { + if (prefs.rateClicked) + prefs.userState = Constants.UserState.SHARE + else if (isOlauncherDefault(this)) + viewModel.showDialog.postValue(Constants.Dialog.REVIEW) + } + + Constants.UserState.RATE -> { + if (prefs.rateClicked) + prefs.userState = Constants.UserState.SHARE + else if (isOlauncherDefault(this) && prefs.firstOpenTime.hasBeenDays(7) && Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 12) + viewModel.showDialog.postValue(Constants.Dialog.RATE) + } + + Constants.UserState.SHARE -> { + if (isOlauncherDefault(this) && prefs.firstOpenTime.hasBeenDays(14) && prefs.shareShownTime.hasBeenDays(70)) + viewModel.showDialog.postValue(Constants.Dialog.SHARE) + } + } + } + @SuppressLint("SourceLockedOrientationActivity") private fun setupOrientation() { if (isTablet(this)) return diff --git a/app/src/main/java/app/olauncher/MainViewModel.kt b/app/src/main/java/app/olauncher/MainViewModel.kt index d02edac..79e328a 100644 --- a/app/src/main/java/app/olauncher/MainViewModel.kt +++ b/app/src/main/java/app/olauncher/MainViewModel.kt @@ -39,7 +39,9 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { val isOlauncherDefault = MutableLiveData() val launcherResetFailed = MutableLiveData() val homeAppAlignment = MutableLiveData() + val showDialog = SingleLiveEvent() + val checkForMessages = SingleLiveEvent() val resetLauncherLiveData = SingleLiveEvent() fun selectedApp(appModel: AppModel, flag: Int) { diff --git a/app/src/main/java/app/olauncher/data/Constants.kt b/app/src/main/java/app/olauncher/data/Constants.kt index 02c0ccd..5734d6b 100644 --- a/app/src/main/java/app/olauncher/data/Constants.kt +++ b/app/src/main/java/app/olauncher/data/Constants.kt @@ -8,6 +8,7 @@ object Constants { } object Dialog { + const val REVIEW = "REVIEW" const val RATE = "RATE" const val SHARE = "SHARE" const val HIDDEN = "HIDDEN" @@ -15,6 +16,13 @@ object Constants { const val DIGITAL_WELLBEING = "DIGITAL_WELLBEING" } + object UserState { + const val START = "START" + const val REVIEW = "REVIEW" + const val RATE = "RATE" + const val SHARE = "SHARE" + } + object DateTime { const val OFF = 0 const val ON = 1 @@ -72,9 +80,11 @@ object Constants { const val REQUEST_CODE_LAUNCHER_SELECTOR = 678 const val HINT_RATE_US = 15 - const val HINT_SHARE = 25 const val LONG_PRESS_DELAY_MS = 500L + const val ONE_DAY_IN_MILLIS = 86400000L + const val ONE_HOUR_IN_MILLIS = 3600000L + const val ONE_MINUTE_IN_MILLIS = 60000L const val MIN_ANIM_REFRESH_RATE = 10f diff --git a/app/src/main/java/app/olauncher/data/Prefs.kt b/app/src/main/java/app/olauncher/data/Prefs.kt index 9235992..90a1e08 100644 --- a/app/src/main/java/app/olauncher/data/Prefs.kt +++ b/app/src/main/java/app/olauncher/data/Prefs.kt @@ -9,8 +9,10 @@ class Prefs(context: Context) { private val PREFS_FILENAME = "app.olauncher" private val FIRST_OPEN = "FIRST_OPEN" + private val FIRST_OPEN_TIME = "FIRST_OPEN_TIME" private val FIRST_SETTINGS_OPEN = "FIRST_SETTINGS_OPEN" private val FIRST_HIDE = "FIRST_HIDE" + private val USER_STATE = "USER_STATE" private val LOCK_MODE = "LOCK_MODE" private val HOME_APPS_NUM = "HOME_APPS_NUM" private val AUTO_SHOW_KEYBOARD = "AUTO_SHOW_KEYBOARD" @@ -32,6 +34,7 @@ class Prefs(context: Context) { private val APP_THEME = "APP_THEME" private val ABOUT_CLICKED = "ABOUT_CLICKED" private val RATE_CLICKED = "RATE_CLICKED" + private val SHARE_SHOWN_TIME = "SHARE_SHOWN_TIME" private val SWIPE_DOWN_ACTION = "SWIPE_DOWN_ACTION" private val TEXT_SIZE_SCALE = "TEXT_SIZE_SCALE" @@ -89,6 +92,10 @@ class Prefs(context: Context) { get() = prefs.getBoolean(FIRST_OPEN, true) set(value) = prefs.edit().putBoolean(FIRST_OPEN, value).apply() + var firstOpenTime: Long + get() = prefs.getLong(FIRST_OPEN_TIME, 0L) + set(value) = prefs.edit().putLong(FIRST_OPEN_TIME, value).apply() + var firstSettingsOpen: Boolean get() = prefs.getBoolean(FIRST_SETTINGS_OPEN, true) set(value) = prefs.edit().putBoolean(FIRST_SETTINGS_OPEN, value).apply() @@ -97,6 +104,10 @@ class Prefs(context: Context) { get() = prefs.getBoolean(FIRST_HIDE, true) set(value) = prefs.edit().putBoolean(FIRST_HIDE, value).apply() + var userState: String + get() = prefs.getString(USER_STATE, Constants.UserState.START).toString() + set(value) = prefs.edit().putString(USER_STATE, value).apply() + var lockModeOn: Boolean get() = prefs.getBoolean(LOCK_MODE, false) set(value) = prefs.edit().putBoolean(LOCK_MODE, value).apply() @@ -181,6 +192,10 @@ class Prefs(context: Context) { get() = prefs.getBoolean(RATE_CLICKED, false) set(value) = prefs.edit().putBoolean(RATE_CLICKED, value).apply() + var shareShownTime: Long + get() = prefs.getLong(SHARE_SHOWN_TIME, 0L) + set(value) = prefs.edit().putLong(SHARE_SHOWN_TIME, value).apply() + var swipeDownAction: Int get() = prefs.getInt(SWIPE_DOWN_ACTION, Constants.SwipeDownAction.NOTIFICATIONS) set(value) = prefs.edit().putInt(SWIPE_DOWN_ACTION, value).apply() diff --git a/app/src/main/java/app/olauncher/helper/Extensions.kt b/app/src/main/java/app/olauncher/helper/Extensions.kt index 01d6f50..11fcd9d 100644 --- a/app/src/main/java/app/olauncher/helper/Extensions.kt +++ b/app/src/main/java/app/olauncher/helper/Extensions.kt @@ -97,3 +97,13 @@ fun Context.searchOnPlayStore(query: String? = null): Boolean { false } } + + +fun Long.hasBeenDays(days: Int): Boolean = + ((System.currentTimeMillis() - this) / Constants.ONE_DAY_IN_MILLIS) >= days + +fun Long.hasBeenHours(hours: Int): Boolean = + ((System.currentTimeMillis() - this) / Constants.ONE_HOUR_IN_MILLIS) >= hours + +fun Long.hasBeenMinutes(minutes: Int): Boolean = + ((System.currentTimeMillis() - this) / Constants.ONE_MINUTE_IN_MILLIS) >= minutes diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt index 1c3306a..24743c5 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt @@ -219,14 +219,14 @@ class AppDrawerFragment : Fragment() { onTop = !recyclerView.canScrollVertically(-1) if (onTop) binding.search.hideKeyboard() if (onTop && !recyclerView.canScrollVertically(1)) - findNavController().popBackStack() + checkMessageAndExit() } RecyclerView.SCROLL_STATE_IDLE -> { if (!recyclerView.canScrollVertically(1)) { binding.search.hideKeyboard() } else if (!recyclerView.canScrollVertically(-1)) { - if (onTop) findNavController().popBackStack() + if (onTop) checkMessageAndExit() else binding.search.showKeyboard(prefs.autoShowKeyboard) } } @@ -235,6 +235,12 @@ class AppDrawerFragment : Fragment() { } } + private fun checkMessageAndExit() { + findNavController().popBackStack() + if (flag == Constants.FLAG_LAUNCH_APP) + viewModel.checkForMessages.call() + } + override fun onStart() { super.onStart() binding.search.showKeyboard(prefs.autoShowKeyboard) diff --git a/app/src/main/java/app/olauncher/ui/HomeFragment.kt b/app/src/main/java/app/olauncher/ui/HomeFragment.kt index 29cad55..7d86c69 100644 --- a/app/src/main/java/app/olauncher/ui/HomeFragment.kt +++ b/app/src/main/java/app/olauncher/ui/HomeFragment.kt @@ -6,7 +6,11 @@ import android.os.BatteryManager import android.os.Build import android.os.Bundle import android.os.Vibrator -import android.view.* +import android.view.Gravity +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.view.WindowInsets import android.widget.TextView import android.widget.Toast import androidx.core.os.bundleOf @@ -21,11 +25,22 @@ import app.olauncher.data.AppModel import app.olauncher.data.Constants import app.olauncher.data.Prefs import app.olauncher.databinding.FragmentHomeBinding -import app.olauncher.helper.* +import app.olauncher.helper.expandNotificationDrawer +import app.olauncher.helper.getChangedAppTheme +import app.olauncher.helper.getUserHandleFromString +import app.olauncher.helper.isPackageInstalled +import app.olauncher.helper.openAlarmApp +import app.olauncher.helper.openCalendar +import app.olauncher.helper.openCameraApp +import app.olauncher.helper.openDialerApp +import app.olauncher.helper.openSearch +import app.olauncher.helper.setPlainWallpaperByTheme +import app.olauncher.helper.showToast import app.olauncher.listener.OnSwipeTouchListener import app.olauncher.listener.ViewSwipeTouchListener import java.text.SimpleDateFormat -import java.util.* +import java.util.Date +import java.util.Locale class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener { @@ -351,6 +366,7 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener Constants.SwipeDownAction.SEARCH -> openSearch(requireContext()) else -> expandNotificationDrawer(requireContext()) } + viewModel.checkForMessages.call() } private fun openSwipeRightApp() { @@ -454,17 +470,9 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener override fun onLongClick() { super.onLongClick() try { - if (prefs.toShowHintCounter == Constants.HINT_RATE_US && prefs.rateClicked.not()) { - viewModel.showDialog.postValue(Constants.Dialog.RATE) - prefs.toShowHintCounter = prefs.toShowHintCounter + 1 - } else if (prefs.toShowHintCounter % Constants.HINT_SHARE == 0) { - viewModel.showDialog.postValue(Constants.Dialog.SHARE) - prefs.toShowHintCounter = prefs.toShowHintCounter + 1 - } else { - findNavController().navigate(R.id.action_mainFragment_to_settingsFragment) - viewModel.firstOpen(false) - } - } catch (e: java.lang.Exception) { + findNavController().navigate(R.id.action_mainFragment_to_settingsFragment) + viewModel.firstOpen(false) + } catch (e: Exception) { e.printStackTrace() } } diff --git a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt index c92d298..c750ee6 100644 --- a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt +++ b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt @@ -617,4 +617,9 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe super.onDestroyView() _binding = null } + + override fun onDestroy() { + viewModel.checkForMessages.call() + super.onDestroy() + } } \ No newline at end of file diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 74952de..853ec23 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -127,5 +127,5 @@ Saviez-vous? Laisser un commentaire Olauncher est et sera toujours entièrement gratuit. Il n\'y a pas de publicité. Il ne collecte aucune donnée. Plus important encore, cela vous aide à réduire votre temps d’écran et à vivre une vie numérique plus saine. - \n\nNous pensons que passer à un lanceur minimal est une excellente décision. Même si nous sommes évidemment partiaux, nous espérons que vous appréciez l'expérience. N'hésitez pas à partager vos idées avec nous! + \n\nNous pensons que passer à un lanceur minimal est une excellente décision. Même si nous sommes évidemment partiaux, nous espérons que vous appréciez l\'expérience. N\'hésitez pas à partager vos idées avec nous! diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index f7d2f62..42a75d9 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -125,5 +125,5 @@ Lo sapevate? Lascia una recensione Olauncher è e sarà sempre completamente gratuito. Non ha pubblicità. Non raccoglie dati. Ancora più importante, ti aiuta a ridurre il tempo trascorso davanti allo schermo e a vivere una vita digitale più sana. - \n\nCrediamo che passare a un launcher minimale sia un'ottima decisione. Anche se siamo ovviamente di parte, ci auguriamo che l'esperienza ti piaccia. Sentitevi liberi di condividere i tuoi pensieri con noi! + \n\nCrediamo che passare a un launcher minimale sia un\'ottima decisione. Anche se siamo ovviamente di parte, ci auguriamo che l\'esperienza ti piaccia. Sentitevi liberi di condividere i tuoi pensieri con noi! \ 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 da4dd51..c3f8af4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -139,5 +139,5 @@ Did you know? Leave a review Olauncher is and will always be entirely free. It has no ads. It collects no data. Most importantly, it helps you in reducing your screen time and live a healthier digital life. - \n\nWe believe that switching to a minimal launcher is an excellent decision. While we're obviously biased, we hope you're enjoying the experience. Feel free to share your thoughts with us! + \n\nWe believe that switching to a minimal launcher is an excellent decision. While we\'re obviously biased, we hope you\'re enjoying the experience. Feel free to share your thoughts with us! \ No newline at end of file -- cgit v1.2.1 From a17c62049fece5ce00fc769cba0b01b5b61cf387 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Thu, 11 Jan 2024 14:19:24 +0530 Subject: Changes in share message --- app/src/main/java/app/olauncher/MainActivity.kt | 12 ++++++++---- app/src/main/res/values-ar/strings.xml | 4 ++-- app/src/main/res/values-de/strings.xml | 4 ++-- app/src/main/res/values-es-rES/strings.xml | 4 ++-- app/src/main/res/values-es-rUS/strings.xml | 4 ++-- app/src/main/res/values-fr/strings.xml | 4 ++-- app/src/main/res/values-hr/strings.xml | 4 ++-- app/src/main/res/values-hu/strings.xml | 4 ++-- app/src/main/res/values-in/strings.xml | 4 ++-- app/src/main/res/values-it/strings.xml | 4 ++-- app/src/main/res/values-ja/strings.xml | 3 ++- app/src/main/res/values-pl/strings.xml | 3 ++- app/src/main/res/values-pt-rBR/strings.xml | 4 ++-- app/src/main/res/values-ru-rRU/strings.xml | 4 ++-- app/src/main/res/values-sv/strings.xml | 4 ++-- app/src/main/res/values-tr/strings.xml | 4 ++-- app/src/main/res/values-uk/strings.xml | 4 ++-- app/src/main/res/values-zh/strings.xml | 4 ++-- 18 files changed, 42 insertions(+), 36 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/MainActivity.kt b/app/src/main/java/app/olauncher/MainActivity.kt index 3b01b7f..8f46b6e 100644 --- a/app/src/main/java/app/olauncher/MainActivity.kt +++ b/app/src/main/java/app/olauncher/MainActivity.kt @@ -188,13 +188,17 @@ class MainActivity : AppCompatActivity() { Constants.UserState.RATE -> { if (prefs.rateClicked) prefs.userState = Constants.UserState.SHARE - else if (isOlauncherDefault(this) && prefs.firstOpenTime.hasBeenDays(7) && Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 12) - viewModel.showDialog.postValue(Constants.Dialog.RATE) + else if (isOlauncherDefault(this) + && prefs.firstOpenTime.hasBeenDays(7) + && Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 12 + ) viewModel.showDialog.postValue(Constants.Dialog.RATE) } Constants.UserState.SHARE -> { - if (isOlauncherDefault(this) && prefs.firstOpenTime.hasBeenDays(14) && prefs.shareShownTime.hasBeenDays(70)) - viewModel.showDialog.postValue(Constants.Dialog.SHARE) + if (isOlauncherDefault(this) && prefs.firstOpenTime.hasBeenDays(14) + && prefs.shareShownTime.hasBeenDays(42) + && Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 12 + ) viewModel.showDialog.postValue(Constants.Dialog.SHARE) } } } diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 9be610f..2ee2913 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -88,8 +88,8 @@ تحتوي صفحة \"حول\" في الأسفل على إجابات لجميع أسئلتك. لا تنسى. شكرًا لك. مرحبًا ، لن ترى هذه الرسالة مرة أخرى. \n\nإذا كنت تحب Olauncher ، فهل يمكنك أن تعطينا تصنيف 5 نجوم؟ يساعدنا ذلك على تحسين تصنيفنا ويجعلنا سعداء. شكرًا لك! - مرحبا ، لدينا طلب كبير! نريد الوصول إلى مليون عملية تنزيل قبل نهاية عام 2023 ، ونحتاج إلى مساعدتك. - \n\nهل يمكنك مشاركة Olauncher مع أصدقائك ، من فضلك؟ ذلك سيكون عونا حقا. شكرًا لك! + مرحبا، نحن بحاجة لمساعدتكم! في العام الماضي تجاوزنا مليون عملية تنزيل. نريد هذا العام أن نصل إلى مليون آخرين ولكن لا يمكننا القيام بذلك بمفردنا. + \n\nهل تتفضل بمشاركة Olauncher مع أصدقائك، من فضلك؟ شكرا لك، ويوم رائع! مرحبًا ، لوحة المفاتيح هي أسرع طريقة للعثور على التطبيقات وتشغيلها في Olauncher. هل يمكننا أن نطلب منك الاحتفاظ بهذا الأمر لبضعة أيام أخرى ثم اتخاذ القرار؟ الاختيار دائما لك. إذا كنت تريد تعيين حدود زمنية لتطبيقات معينة، فيمكن أن تساعدك ميزة الرفاهية الرقمية في Android على القيام بذلك. \n\nيرجى البحث عن الرفاهية الرقمية في إعدادات هاتفك وتمكينها. diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 2ea4ff3..12865b0 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -89,8 +89,8 @@ Auf unserer About-Seite unten finden Sie Antworten auf alle Ihre Fragen. Vergiss es nicht. :)\n\nDan­ke­schön. Hallo, diese Nachricht wird Ihnen nicht mehr angezeigt. \n\nWenn Ihnen Olauncher gefällt, können Sie uns bitte eine 5-Sterne-Bewertung geben? Es hilft uns, unser Ranking zu verbessern und macht uns glücklich. Dan­ke­schön! - Hallo, wir haben eine große Bitte! Wir wollen bis zum Ende des Jahres 2023 eine Million Downloads erreichen und brauchen dazu Ihre Hilfe. - \n\nKönnten Sie Olauncher bitte mit Ihren Freunden teilen? Das wäre wirklich hilfreich. Dan­ke­schön! + Hallo, wir brauchen deine Hilfe! Letztes Jahr haben wir die Marke von einer Million Downloads überschritten. Dieses Jahr wollen wir eine Million mehr erreichen, aber alleine schaffen wir das nicht. + \n\nWären Sie bitte so freundlich, Olauncher mit Ihren Freunden zu teilen? Vielen Dank und einen wunderschönen Tag! Hallo, die Tastatur ist der schnellste Weg, Apps in Olauncher zu finden und zu starten. Können wir Sie bitten, die Funktion noch ein paar Tage eingeschaltet zu lassen und dann zu entscheiden? \n\nDie Wahl liegt immer bei Ihnen. Wenn Sie Zeitlimits für bestimmte Apps festlegen möchten, kann Ihnen die Digital Wellbeing-Funktion von Android dabei helfen. diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index fe9df0a..bed5551 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -56,8 +56,8 @@ Nuestra página \'Acerca de\' en la parte inferior tiene respuestas a todas sus preguntas. no lo olvides :)\n\nGracias. Hola, no volverás a ver este mensaje. \n\nSi te gusta Olauncher, ¿puedes darnos una calificación de 5 estrellas? Nos ayuda a mejorar nuestra clasificación y nos hace felices. ¡Gracias! - Hola, tenemos una gran solicitud! Queremos alcanzar el millón de descargas antes de que finalice 2023 y necesitamos tu ayuda. - \n\n¿Podrías compartir Olauncher con tus amigos, por favor? Eso sería realmente útil. ¡Gracias! + Hola, necesitamos tu ayuda! El año pasado superamos el millón de descargas. Este año queremos llegar a un millón más pero no podemos hacerlo solos. + \n\n¿Serías tan amable de compartir Olauncher con tus amigos, por favor? ¡Gracias y tenga un maravilloso día! Hola, el teclado es la forma más rápida de encontrar y ejecutar aplicaciones en Olauncher. ¿Podemos pedirle que mantenga esto activado durante unos días más y luego decidir? \n\nLa decisión siempre es suya. Si desea establecer límites de tiempo para determinadas aplicaciones, la función Bienestar digital de Android puede ayudarle a hacerlo. diff --git a/app/src/main/res/values-es-rUS/strings.xml b/app/src/main/res/values-es-rUS/strings.xml index d30f934..a99ad44 100644 --- a/app/src/main/res/values-es-rUS/strings.xml +++ b/app/src/main/res/values-es-rUS/strings.xml @@ -56,8 +56,8 @@ Nuestra página Acerca de en la parte inferior tiene respuestas a todas sus preguntas. No lo olvides. :) Hola, no volverás a ver este mensaje. \n\nSi te gusta Olauncher, ¿puedes darnos una calificación de 5 estrellas? Nos ayuda a mejorar nuestra clasificación y nos hace felices. ¡Gracias! - Hola, tenemos una gran solicitud! Queremos alcanzar el millón de descargas antes de que finalice 2023 y necesitamos tu ayuda. - \n\n¿Podrías compartir Olauncher con tus amigos, por favor? Eso sería realmente útil. ¡Gracias! + Hola, necesitamos tu ayuda! El año pasado superamos el millón de descargas. Este año queremos llegar a un millón más pero no podemos hacerlo solos. + \n\n¿Serías tan amable de compartir Olauncher con tus amigos, por favor? ¡Gracias y tenga un maravilloso día! Hola, el teclado es la forma más rápida de encontrar y lanzar aplicaciones en Olauncher. ¿Podemos pedirle que mantenga esto encendido por unos días más y luego decidir? La elección es siempre tuya. Si desea establecer límites de tiempo para determinadas aplicaciones, la función Bienestar digital de Android puede ayudarle a hacerlo. \n\nBusque Bienestar digital en la configuración de su teléfono y habilítelo. diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 853ec23..0a47cbd 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -56,8 +56,8 @@ Notre page \"À propos\" en bas a des réponses à toutes vos questions. :)\n\nMerci! Hé, trouvez-vous Olauncher utile? Si oui, une note de 5 étoiles est le meilleur moyen de nous soutenir. \n\nMerci, vous ne verrez plus ce message. - Bonjour, pensez-vous que vos amis aimeraient Olauncher autant que vous? - \n\nSoutenez-nous en partageant l\'appli. Merci ! + Bonjour, nous avons besoin de votre aide ! L\'année dernière, nous avons franchi le million de téléchargements. Cette année, nous voulons atteindre un million de plus, mais nous ne pouvons pas le faire seuls. + \n\nAuriez-vous la gentillesse de partager Olauncher avec vos amis, s\'il vous plaît ? Merci et passez une merveilleuse journée! Bonjour, le clavier est le moyen le plus rapide de trouver et de lancer des applications dans Olauncher. Pouvons-nous vous demander de garder cela activé pendant quelques jours de plus, puis de décider? Le choix vous appartient toujours. Si vous souhaitez définir des limites de temps pour certaines applications, la fonctionnalité Digital Wellbeing d\'Android peut vous aider à le faire. \n\nVeuillez rechercher Digital Wellbeing dans les paramètres de votre téléphone et l\'activer. diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 912e38b..fda7d01 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -56,8 +56,8 @@ \n\nHvala ti. Ovu poruku više nećeš vidjeti. \n\nBok, ako uživaš u korištenju Olaunchera, možeš li nam dati recenziju s 5 zvijezdica? To nam donosi više korisnika i usrećuje nas.\nHvala ti i sretan ostatak dana! - Bok, misliš li da bi i tvoji prijatelji voljeli Olauncher? - \n\nPodijeli aplikaciju i širi riječ o nama. Hvala ti! + Bok, trebamo tvoju pomoć! Prošle godine prešli smo milijun preuzimanja. Ove godine želimo doseći milijun više, ali ne možemo sami. + \n\nHoćete li, molim vas, biti ljubazni podijeliti Olauncher sa svojim prijateljima? Hvala i ugodan dan! Ako želite postaviti vremenska ograničenja za određene aplikacije, značajka Digital Wellbeing na Androidu može vam pomoći u tome. \n\nPotražite Digital Wellbeing u postavkama telefona i omogućite ga. Dozvola za pristupačnost potrebna je za omogućavanje zaključavanja dvostrukim dodirom. Bilo koji podatci prikupljeni ovim servisom neće napustiti tvoj uređaj. diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index fa079e4..bc22712 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -55,8 +55,8 @@ \n\nKöszönjük! Üdv, ezt az üzenetet nem fogja újra látni. \n\nHa tetszik az Olauncher, kérjük, adjon nekünk 5 csillagos értékelést! Ez segít javítani a helyezésünket, és nagyon boldoggá tesz minket. Köszönjük! - Az embereknek nem kell ragaszkodniuk figyelemelterelő indítóikhoz. Segítsen elterjeszteni, hogy egy jobb opció is létezik. - \n\nOssza meg az Olauncher-t az Önnek fontos emberekkel. + Sziasztok, segítségre van szükségünk! Tavaly átléptük az egymillió letöltést. Idén egy millióval többet szeretnénk elérni, de egyedül nem tudjuk megtenni. + \n\nLenne szíves megosztani az Olaunchert a barátaival, kérem? Köszönöm és további szép napot! Üdv, a billentyűzet a leggyorsabb módja a alkalmazások megtalálásához és elindításához az Olauncherben. Kérhetjük, hogy hagyja bekapcsolva még néhány napig, és utána döntsön. \n\nA választás mindig az Öné. Ha időkorlátokat szeretne beállítani bizonyos alkalmazásokhoz, az Android Digital Wellbeing funkciója segíthet ebben. diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index f97ee5c..1a64074 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -56,8 +56,8 @@ Halaman Tentang kami di bagian bawah memiliki jawaban atas semua pertanyaan Anda. Jangan lupa. :) Hai, Anda tidak akan melihat pesan ini lagi. \n\nJika Anda menyukai Olauncher, bisakah Anda memberi kami peringkat bintang 5? Ini membantu kami meningkatkan peringkat kami dan membuat kami bahagia. Terima kasih! - Hai, kami punya permintaan besar! Kami ingin mencapai satu juta unduhan sebelum tahun 2023 berakhir, dan kami membutuhkan bantuan Anda. - \n\nBisakah Anda berbagi Olauncher dengan teman-teman Anda? Itu akan sangat membantu. Terima kasih! + Hai, kami membutuhkan bantuan Anda! Tahun lalu kami melampaui satu juta unduhan. Tahun ini kami ingin menjangkau satu juta orang lagi tetapi kami tidak dapat melakukannya sendiri. + \n\nMaukah Anda berbaik hati membagikan Olauncher kepada teman-teman Anda? Terima kasih dan semoga harimu menyenangkan! Hai, keyboard adalah cara tercepat untuk menemukan dan meluncurkan aplikasi di Olauncher. Bisakah kami meminta Anda untuk mengaktifkannya selama beberapa hari lagi dan kemudian memutuskan? Pilihan selalu menjadi milik Anda. Jika Anda ingin menetapkan batas waktu untuk aplikasi tertentu, fitur Kesejahteraan Digital Android dapat membantu Anda melakukannya. \n\nSilakan cari Kesejahteraan Digital di pengaturan ponsel Anda dan aktifkan. diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 42a75d9..639f447 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -56,8 +56,8 @@ \n\nGrazie. Ehi, trovi utile Olauncher? Se sì, una valutazione a 5 stelle è il modo migliore per sostenerci. \n\nGrazie e non lo vedrai più. - Ciao, pensi che ai tuoi amici potrebbe piacere Olauncher tanto quanto piace a te? - \n\nCondividi l\'app e aiutaci a spargere la voce. Grazie! + Ciao, abbiamo bisogno del tuo aiuto! L\'anno scorso abbiamo superato il milione di download. Quest’anno vogliamo raggiungere un milione in più ma non possiamo farcela da soli. + \n\nSaresti così gentile da condividere Olauncher con i tuoi amici, per favore? Grazie e buona giornata! Ciao, la tastiera è il modo più veloce per trovare e avviare le app in Olauncher. Possiamo chiederti di metterlo alla prova ancora per qualche giorno e poi decidere? \n\nSei sempre tu a scegliere. Se desideri impostare limiti di tempo per determinate app, la funzionalità Benessere digitale di Android può aiutarti a farlo. diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index feaff79..7b66dc3 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -89,7 +89,8 @@ ライト 下部にある当社の概要ページには、すべての質問への回答が記載されています。忘れないで。 :)\n\nありがとう。 ねえ、Olauncher は役に立つと思いますか? 「はい」の場合、5 つ星の評価が私たちをサポートする最善の方法です。\n\nありがとう、もうこれを見ることはないだろう。 - こんにちは、あなたの友達もあなたと同じくらいオランチャーを好きだと思いますか?\n\nアプリを共有して、情報を広めてください。ありがとう! + こんにちは、あなたの助けが必要です!昨年、ダウンロード数が 100 万件を突破しました。今年はさらに 100 万人を達成したいと考えていますが、私たちだけでは達成できません。 + \n\nOlauncher をお友達と共有していただけますか?ありがとう、そして素晴らしい一日をお過ごしください! こんにちは、キーボードは Olauncher でアプリを見つけて起動する最も速い方法です。もう数日間これをオンにしてから判断していただくようお願いできますか?選択は常にあなた次第です。 特定のアプリに時間制限を設定したい場合は、Android の Digital Wellbeing 機能を使用すると便利です。 \n\n携帯電話の設定で Digital Wellbeing を検索し、有効にしてください。 diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 2d6c783..4511a80 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -88,7 +88,8 @@ Jasny Nasza strona Informacje na dole zawiera odpowiedzi na wszystkie Twoje pytania. Nie zapomnij. :)\n\nDziękuję. Hej, czy uważasz, że Olauncher jest przydatny? Jeśli tak, ocena 5 gwiazdek to najlepszy sposób, aby nas wesprzeć.\n\nDziękuję i więcej tego nie zobaczysz. - Cześć, myślisz, że Twoi znajomi pokochaliby Olaunchera tak samo jak Ty?\n\nUdostępnij aplikację i pomóż nam rozpowszechniać informacje. Dziękuję! + Cześć, potrzebujemy Twojej pomocy! W zeszłym roku przekroczyliśmy milion pobrań. W tym roku chcemy dotrzeć do kolejnego miliona, ale sami nie możemy tego zrobić. + \n\nCzy byłbyś tak miły i udostępnił Olauncher swoim znajomym? Dziękuję i życzę cudownego dnia! Cześć, klawiatura to najszybszy sposób znajdowania i uruchamiania aplikacji w Olauncher. Czy możemy poprosić o pozostawienie tego włączonego jeszcze przez kilka dni, a następnie podjęcie decyzji?\n\nWybór zawsze należy do Ciebie. Jeśli chcesz ustawić limity czasowe dla niektórych aplikacji, funkcja Cyfrowa równowaga w systemie Android może Ci w tym pomóc. \n\nWyszukaj opcję Cyfrowa równowaga w ustawieniach telefonu i włącz ją. diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index a2d7346..a1edb78 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -55,8 +55,8 @@ Claro Nossa página Sobre, na parte inferior, tem respostas para todas as suas perguntas. Não se esqueça. :) Ei, você acha Olauncher útil? Se sim, uma classificação de 5 estrelas é a melhor maneira de nos apoiar. Obrigado. - Olá, você acha que seus amigos amariam o Olauncher tanto quanto você? - \n\nCompartilhe o aplicativo e ajude-nos a divulgar. Obrigado! + Olá, precisamos da sua ajuda! No ano passado ultrapassamos um milhão de downloads. Este ano queremos chegar a mais um milhão, mas não podemos fazê-lo sozinhos. + \n\nVocê poderia fazer a gentileza de compartilhar o Olauncher com seus amigos, por favor? Obrigado e tenha um dia maravilhoso! Olá, o teclado é a maneira mais rápida de encontrar e iniciar aplicativos no Olauncher. Podemos pedir-lhe que mantenha isto ligado por mais alguns dias para depois decidir? \n\nA escolha é sempre sua! Se você deseja definir limites de tempo para determinados aplicativos, o recurso Bem-estar digital do Android pode ajudá-lo a fazer isso. diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 7d86837..4dc856c 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -56,8 +56,8 @@ На странице «О нас» внизу есть ответы на все ваши вопросы. Не забывайте. :) Здравствуйте, вы больше не увидите это сообщение. \n\nЕсли вам нравится Olauncher, не могли бы вы дать нам 5-звездочный рейтинг? Это помогает нам улучшить наш рейтинг и делает нас счастливыми. Спасибо! - Привет, у нас большая просьба! Мы хотим достичь миллиона загрузок до конца 2023 года, и нам нужна ваша помощь. - \n\nНе могли бы вы поделиться Olauncher со своими друзьями, пожалуйста? Это было бы очень полезно. Спасибо! + Привет, нам нужна ваша помощь! В прошлом году мы преодолели миллион загрузок. В этом году мы хотим достичь еще миллиона, но мы не можем сделать это в одиночку. + \n\nНе могли бы вы поделиться Olauncher со своими друзьями, пожалуйста? Спасибо и хорошего дня! Привет, клавиатура — это самый быстрый способ найти и запустить приложения в Olauncher. Можем ли мы попросить вас оставить это включенным еще на несколько дней, а затем принять решение? \n\nВыбор всегда за вами. Если вы хотите установить ограничения по времени для определенных приложений, функция «Цифровое благополучие» Android может помочь вам в этом. diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index e5932ca..0df4d12 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -55,8 +55,8 @@ Tips: Vår Om-sida har svar på alla dina frågor. Glöm inte det. :) \n\nTack. Hejsan, du kommer inte att se detta meddelande igen. \n\nOm du gillar Olauncher, skulle du vänligen kunna ge oss ett 5-stjärnigt omdöme? Det hjälper oss att förbättra vår rankning och gör oss väldigt glada. Tack! - Hejsan, vi behöver din hjälp! Vi vill nå en miljon nedladdningar innan 2023 är slut, men vi kan inte göra det på egen hand. - \n\nSkulle du kunna vara vänlig nog att dela Olauncher med dina vänner, är du snäll? Tack, och ha en underbar dag! + Hej, vi behöver din hjälp! Förra året passerade vi en miljon nedladdningar. I år vill vi nå en miljon fler men vi kan inte göra det ensamma. + \n\nSkulle du vara snäll nog att dela Olauncher med dina vänner? Tack och ha en underbar dag! Hejsan, tangentbordet är det snabbaste sättet att hitta och starta appar i Olauncher. Får vi be dig att behålla denna På i några dagar till innan du bestämmer dig? \n\nValet är alltid ditt. Om du vill ställa in tidsgränser för vissa appar kan Digital Wellbeing-funktionen i Android hjälpa dig att göra det. diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 7b25e49..9b6ab2b 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -89,8 +89,8 @@ Alt kısımdaki Hakkında sayfamızda tüm sorularınızın yanıtları bulunmaktadır. unutma :)\n\nTeşekkür ederim. Merhaba, bu mesajı bir daha görmeyeceksiniz. \n\nOlauncher\'ı beğendiyseniz, lütfen bize 5 yıldız verebilir misiniz? Sıralamamızı yükseltmemize yardımcı oluyor ve bizi mutlu ediyor. Teşekkür ederim! - Merhaba, büyük bir isteğimiz var! 2023 bitmeden bir milyon indirmeye ulaşmak istiyoruz ve yardımınıza ihtiyacımız var. - \n\nOlauncher\'ı arkadaşlarınızla paylaşır mısınız lütfen? Bu gerçekten yardımcı olacaktır. Teşekkür ederim! + Merhaba, yardımınıza ihtiyacımız var! Geçen yıl bir milyon indirmeyi geçtik. Bu yıl bir milyona daha ulaşmak istiyoruz ama bunu tek başımıza yapamayız. + \n\nOlauncher'ı arkadaşlarınızla paylaşma nezaketini gösterir misiniz lütfen? Teşekkür ederim ve harika bir gün geçirmenizi dilerim! Merhaba, klavye, Olauncher\'da uygulamaları bulmanın ve başlatmanın en hızlı yoludur. Bunu birkaç gün daha Açık tutmanızı ve sonra karar vermenizi rica edebilir miyiz? \n\nSeçim her zaman senindir. Belirli uygulamalar için zaman sınırları belirlemek istiyorsanız Android\'in Dijital Denge özelliği bunu yapmanıza yardımcı olabilir. diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 92f592d..3b1a987 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -56,8 +56,8 @@ На сторінці «Про нас» є відповіді на всі ваші запитання. Не забувайте. :) Привіт, ти більше не побачиш це повідомлення. \n\nЯкщо вам подобається Olauncher, чи можете ви поставити нам 5 зірок? Це допомагає нам покращити наш рейтинг і робить нас щасливими. Дякую тобі! - Привіт, у нас велике прохання! Ми хочемо досягти мільйона завантажень до кінця 2023 року, і нам потрібна ваша допомога. - \n\nНе могли б ви поділитися Olauncher зі своїми друзями? Це було б справді корисно. Дякую тобі! + Привіт, нам потрібна ваша допомога! Минулого року ми перевищили мільйон завантажень. Цього року ми хочемо досягти мільйона більше, але ми не можемо зробити це поодинці. + \n\nБудь ласка, не могли б ви поділитися Olauncher зі своїми друзями? Дякую і гарного дня! Привіт, клавіатура - це найшвидший спосіб знайти та запустити програми в Olauncher. Чи можемо ми попросити вас залишити це увімкненим ще на кілька днів, а потім прийняти рішення? \n\nВибір завжди за вами. Якщо ви хочете встановити часові обмеження для певних програм, функція цифрового добробуту Android може допомогти вам це зробити. diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 908d2fa..4113bee 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -89,8 +89,8 @@ 我们底部的“关于”页面可以解答您的所有问题。别忘了。 :)\n\n谢谢。 您好,您不会再看到此消息。 \n\n如果您喜欢 Olauncher,能给我们一个 5 星评价吗? 它帮助我们提高排名并使我们高兴。 谢谢你! - 你好,我们有一个很大的要求! 我们希望在 2023 年底之前达到 100 万下载量,我们需要您的帮助。 - \n\n您能与您的朋友分享 Olauncher 吗? 这真的很有帮助。 谢谢你! + 你好,我们需要你的帮助!去年我们的下载量突破了一百万次。今年我们希望再增加一百万,但我们无法单独做到这一点。 + \n\n您能与您的朋友分享 Olauncher 吗?谢谢您,祝您有美好的一天! 您好,键盘是在 Olauncher 中查找和启动应用程序的最快方式。我们可以要求您再保留几天? \n\n然后再决定吗?选择权永远在你手中。 如果您想为某些应用程序设置时间限制,Android 的数字健康功能可以帮助您做到这一点。 -- cgit v1.2.1 From 3092c896b5994f4344bda38b9c400dc05033daff Mon Sep 17 00:00:00 2001 From: Tanuj Date: Thu, 11 Jan 2024 14:23:17 +0530 Subject: Show exact search matches on the top --- app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt b/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt index 46e236a..4ea2112 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt @@ -80,7 +80,11 @@ class AppDrawerAdapter( autoLaunch = charSearch?.startsWith(" ")?.not() ?: true val appFilteredList = (if (charSearch.isNullOrBlank()) appsList - else appsList.filter { app -> appLabelMatches(app.appLabel, charSearch) } as MutableList) + else appsList.filter { app -> + appLabelMatches(app.appLabel, charSearch) + }.sortedByDescending { + charSearch.contentEquals(it.appLabel, true) + } as MutableList) val filterResults = FilterResults() filterResults.values = appFilteredList @@ -176,7 +180,7 @@ class AppDrawerAdapter( } } etAppRename.setOnEditorActionListener { _, actionCode, _ -> - if(actionCode == EditorInfo.IME_ACTION_DONE) { + if (actionCode == EditorInfo.IME_ACTION_DONE) { val renameLabel = etAppRename.text.toString().trim() if (renameLabel.isNotBlank() && appModel.appPackage.isNotBlank()) { appRenameListener(appModel, renameLabel) -- cgit v1.2.1 From 619d4c05746c19070331eb42ae16f0edb9a8c43f Mon Sep 17 00:00:00 2001 From: Tanuj Date: Thu, 11 Jan 2024 14:24:39 +0530 Subject: Code refactor --- app/src/main/java/app/olauncher/MainActivity.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/MainActivity.kt b/app/src/main/java/app/olauncher/MainActivity.kt index 8f46b6e..26aeb67 100644 --- a/app/src/main/java/app/olauncher/MainActivity.kt +++ b/app/src/main/java/app/olauncher/MainActivity.kt @@ -205,10 +205,10 @@ class MainActivity : AppCompatActivity() { @SuppressLint("SourceLockedOrientationActivity") private fun setupOrientation() { - if (isTablet(this)) return + if (isTablet(this) || Build.VERSION.SDK_INT == Build.VERSION_CODES.O) + return // In Android 8.0, windowIsTranslucent cannot be used with screenOrientation=portrait - if (Build.VERSION.SDK_INT != Build.VERSION_CODES.O) - requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT + requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT } private fun backToHomeScreen() { -- cgit v1.2.1 From cd56b9fa44ef5d41f1cb131e7819b3d1b81090d9 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Thu, 11 Jan 2024 18:45:39 +0530 Subject: Long press to hide digital wellbeing --- app/src/main/java/app/olauncher/data/Constants.kt | 1 + app/src/main/java/app/olauncher/data/Prefs.kt | 5 +++++ app/src/main/java/app/olauncher/helper/Extensions.kt | 7 +++++++ app/src/main/java/app/olauncher/ui/SettingsFragment.kt | 15 ++++++++++----- app/src/main/res/layout/fragment_settings.xml | 16 ++++++++-------- app/src/main/res/values-tr/strings.xml | 2 +- 6 files changed, 32 insertions(+), 14 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/data/Constants.kt b/app/src/main/java/app/olauncher/data/Constants.kt index 5734d6b..00596b5 100644 --- a/app/src/main/java/app/olauncher/data/Constants.kt +++ b/app/src/main/java/app/olauncher/data/Constants.kt @@ -102,5 +102,6 @@ object Constants { const val URL_DIGITAL_WELLBEING_LEARN_MORE = "https://tanujnotes.substack.com/p/digital-wellbeing-app-on-android?utm_source=olauncher" const val DIGITAL_WELLBEING_PACKAGE_NAME = "com.google.android.apps.wellbeing" + const val DIGITAL_WELLBEING_SAMSUNG_PACKAGE_NAME = "com.samsung.android.forest" const val WALLPAPER_WORKER_NAME = "WALLPAPER_WORKER_NAME" } \ No newline at end of file diff --git a/app/src/main/java/app/olauncher/data/Prefs.kt b/app/src/main/java/app/olauncher/data/Prefs.kt index 90a1e08..c281b8c 100644 --- a/app/src/main/java/app/olauncher/data/Prefs.kt +++ b/app/src/main/java/app/olauncher/data/Prefs.kt @@ -37,6 +37,7 @@ class Prefs(context: Context) { private val SHARE_SHOWN_TIME = "SHARE_SHOWN_TIME" private val SWIPE_DOWN_ACTION = "SWIPE_DOWN_ACTION" private val TEXT_SIZE_SCALE = "TEXT_SIZE_SCALE" + private val HIDE_DIGITAL_WELLBEING = "HIDE_DIGITAL_WELLBEING" private val APP_NAME_1 = "APP_NAME_1" private val APP_NAME_2 = "APP_NAME_2" @@ -168,6 +169,10 @@ class Prefs(context: Context) { get() = prefs.getFloat(TEXT_SIZE_SCALE, 1.0f) set(value) = prefs.edit().putFloat(TEXT_SIZE_SCALE, value).apply() + var hideDigitalWellbeing: Boolean + get() = prefs.getBoolean(HIDE_DIGITAL_WELLBEING, false) + set(value) = prefs.edit().putBoolean(HIDE_DIGITAL_WELLBEING, value).apply() + var screenTimeout: Int get() = prefs.getInt(SCREEN_TIMEOUT, 30000) // Default: 30 seconds set(value) = prefs.edit().putInt(SCREEN_TIMEOUT, value).apply() diff --git a/app/src/main/java/app/olauncher/helper/Extensions.kt b/app/src/main/java/app/olauncher/helper/Extensions.kt index 11fcd9d..2d94832 100644 --- a/app/src/main/java/app/olauncher/helper/Extensions.kt +++ b/app/src/main/java/app/olauncher/helper/Extensions.kt @@ -6,9 +6,11 @@ import android.app.role.RoleManager import android.content.ComponentName import android.content.Context import android.content.Intent +import android.content.pm.LauncherApps import android.content.pm.PackageManager import android.net.Uri import android.os.Build +import android.os.UserHandle import android.view.View import android.view.WindowManager import android.view.inputmethod.InputMethodManager @@ -98,6 +100,11 @@ fun Context.searchOnPlayStore(query: String? = null): Boolean { } } +fun Context.isPackageInstalled(packageName: String, userHandle: UserHandle = android.os.Process.myUserHandle()): Boolean { + val launcher = getSystemService(Context.LAUNCHER_APPS_SERVICE) as LauncherApps + val activityInfo = launcher.getActivityList(packageName, userHandle) + return activityInfo.size > 0 +} fun Long.hasBeenDays(days: Int): Boolean = ((System.currentTimeMillis() - this) / Constants.ONE_DAY_IN_MILLIS) >= days diff --git a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt index c750ee6..2183fd8 100644 --- a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt +++ b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt @@ -168,9 +168,15 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe override fun onLongClick(view: View): Boolean { when (view.id) { + R.id.digitalWellbeing -> { + prefs.hideDigitalWellbeing = true + binding.digitalWellbeing.visibility = View.GONE + } + R.id.alignment -> { prefs.appLabelAlignment = prefs.homeAlignment findNavController().navigate(R.id.action_settingsFragment_to_appListFragment) + requireContext().showToast("Alignment changed ✅") } R.id.dailyWallpaper -> removeWallpaper() @@ -247,6 +253,7 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe binding.textSize6.setOnClickListener(this) binding.textSize7.setOnClickListener(this) + binding.digitalWellbeing.setOnLongClickListener(this) binding.dailyWallpaper.setOnLongClickListener(this) binding.alignment.setOnLongClickListener(this) binding.appThemeText.setOnLongClickListener(this) @@ -584,11 +591,9 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe } private fun populateDigitalWellbeing() { - binding.digitalWellbeing.isVisible = isPackageInstalled( - requireContext(), - Constants.DIGITAL_WELLBEING_PACKAGE_NAME, - Process.myUserHandle().toString() - ).not() + binding.digitalWellbeing.isVisible = requireContext().isPackageInstalled(Constants.DIGITAL_WELLBEING_PACKAGE_NAME).not() + && requireContext().isPackageInstalled(Constants.DIGITAL_WELLBEING_SAMSUNG_PACKAGE_NAME).not() + && prefs.hideDigitalWellbeing.not() } private fun showAppListIfEnabled(flag: Int) { diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index 9a395cc..0a1b7cf 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -61,36 +61,36 @@ + android:text="@string/set_as_default_launcher" /> + android:text="@string/about_olauncher" /> + android:text="@string/digital_wellbeing" + android:visibility="gone" + tools:visibility="visible" /> diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 9b6ab2b..01fb287 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -90,7 +90,7 @@ Merhaba, bu mesajı bir daha görmeyeceksiniz. \n\nOlauncher\'ı beğendiyseniz, lütfen bize 5 yıldız verebilir misiniz? Sıralamamızı yükseltmemize yardımcı oluyor ve bizi mutlu ediyor. Teşekkür ederim! Merhaba, yardımınıza ihtiyacımız var! Geçen yıl bir milyon indirmeyi geçtik. Bu yıl bir milyona daha ulaşmak istiyoruz ama bunu tek başımıza yapamayız. - \n\nOlauncher'ı arkadaşlarınızla paylaşma nezaketini gösterir misiniz lütfen? Teşekkür ederim ve harika bir gün geçirmenizi dilerim! + \n\nOlauncher\'ı arkadaşlarınızla paylaşma nezaketini gösterir misiniz lütfen? Teşekkür ederim ve harika bir gün geçirmenizi dilerim! Merhaba, klavye, Olauncher\'da uygulamaları bulmanın ve başlatmanın en hızlı yoludur. Bunu birkaç gün daha Açık tutmanızı ve sonra karar vermenizi rica edebilir miyiz? \n\nSeçim her zaman senindir. Belirli uygulamalar için zaman sınırları belirlemek istiyorsanız Android\'in Dijital Denge özelliği bunu yapmanıza yardımcı olabilir. -- cgit v1.2.1 From bc2db3ba5380742cb49034974bfa354f9b0feaa7 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Thu, 11 Jan 2024 18:46:48 +0530 Subject: gits --- app/src/main/java/app/olauncher/ui/SettingsFragment.kt | 2 +- app/src/main/res/values/strings.xml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt index 2183fd8..db9ac10 100644 --- a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt +++ b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt @@ -176,7 +176,7 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe R.id.alignment -> { prefs.appLabelAlignment = prefs.homeAlignment findNavController().navigate(R.id.action_settingsFragment_to_appListFragment) - requireContext().showToast("Alignment changed ✅") + requireContext().showToast(getString(R.string.alignment_changed)) } R.id.dailyWallpaper -> removeWallpaper() diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c3f8af4..aa7f813 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -140,4 +140,5 @@ Leave a review Olauncher is and will always be entirely free. It has no ads. It collects no data. Most importantly, it helps you in reducing your screen time and live a healthier digital life. \n\nWe believe that switching to a minimal launcher is an excellent decision. While we\'re obviously biased, we hope you\'re enjoying the experience. Feel free to share your thoughts with us! + Alignment changed ✅ \ No newline at end of file -- cgit v1.2.1 From 463de578232fede1dd35ab023c22281e0e0511b9 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Thu, 11 Jan 2024 18:52:40 +0530 Subject: dimens changes --- app/src/main/res/values-hdpi/dimens.xml | 2 +- app/src/main/res/values-ldpi/dimens.xml | 2 +- app/src/main/res/values-mdpi/dimens.xml | 2 +- app/src/main/res/values-xhdpi/dimens.xml | 2 +- app/src/main/res/values-xxhdpi/dimens.xml | 2 +- app/src/main/res/values-xxxhdpi/dimens.xml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/res/values-hdpi/dimens.xml b/app/src/main/res/values-hdpi/dimens.xml index 6d9fc80..19d07c0 100644 --- a/app/src/main/res/values-hdpi/dimens.xml +++ b/app/src/main/res/values-hdpi/dimens.xml @@ -1,6 +1,6 @@ - 22sp + 24sp 14sp 10dp 8dp diff --git a/app/src/main/res/values-ldpi/dimens.xml b/app/src/main/res/values-ldpi/dimens.xml index 882f3ab..648bbf9 100644 --- a/app/src/main/res/values-ldpi/dimens.xml +++ b/app/src/main/res/values-ldpi/dimens.xml @@ -1,6 +1,6 @@ - 22sp + 24sp 14sp 8dp 6dp diff --git a/app/src/main/res/values-mdpi/dimens.xml b/app/src/main/res/values-mdpi/dimens.xml index 54a5b07..73ddac3 100644 --- a/app/src/main/res/values-mdpi/dimens.xml +++ b/app/src/main/res/values-mdpi/dimens.xml @@ -1,6 +1,6 @@ - 22sp + 24sp 14sp 8dp 6dp diff --git a/app/src/main/res/values-xhdpi/dimens.xml b/app/src/main/res/values-xhdpi/dimens.xml index 23c4667..d0a559c 100644 --- a/app/src/main/res/values-xhdpi/dimens.xml +++ b/app/src/main/res/values-xhdpi/dimens.xml @@ -1,6 +1,6 @@ - 24sp + 25sp 16sp 12dp 10dp diff --git a/app/src/main/res/values-xxhdpi/dimens.xml b/app/src/main/res/values-xxhdpi/dimens.xml index ed3904f..8c29f1e 100644 --- a/app/src/main/res/values-xxhdpi/dimens.xml +++ b/app/src/main/res/values-xxhdpi/dimens.xml @@ -1,6 +1,6 @@ - 26sp + 27sp 16sp 12dp 10dp diff --git a/app/src/main/res/values-xxxhdpi/dimens.xml b/app/src/main/res/values-xxxhdpi/dimens.xml index c48f5a5..3d094db 100644 --- a/app/src/main/res/values-xxxhdpi/dimens.xml +++ b/app/src/main/res/values-xxxhdpi/dimens.xml @@ -1,6 +1,6 @@ - 28sp + 29sp 16sp 16dp 14dp -- cgit v1.2.1 From 5bdd4803ed1519adecb7d067b3fc29e2a9dcfa63 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Sat, 13 Jan 2024 15:07:33 +0530 Subject: Minor UI/UX changes --- app/src/main/java/app/olauncher/listener/OnSwipeTouchListener.kt | 3 ++- app/src/main/java/app/olauncher/ui/HomeFragment.kt | 6 +++++- app/src/main/res/layout-land/fragment_settings.xml | 5 ++--- app/src/main/res/layout/fragment_settings.xml | 5 ++--- app/src/main/res/values-xxxhdpi/dimens.xml | 2 +- 5 files changed, 12 insertions(+), 9 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/listener/OnSwipeTouchListener.kt b/app/src/main/java/app/olauncher/listener/OnSwipeTouchListener.kt index 3bb0689..ae09a78 100644 --- a/app/src/main/java/app/olauncher/listener/OnSwipeTouchListener.kt +++ b/app/src/main/java/app/olauncher/listener/OnSwipeTouchListener.kt @@ -45,6 +45,7 @@ internal open class OnSwipeTouchListener(c: Context?) : OnTouchListener { // doubleTapOn = false // onTripleClick() // } + onClick() return super.onSingleTapUp(e) } @@ -104,7 +105,7 @@ internal open class OnSwipeTouchListener(c: Context?) : OnTouchListener { open fun onLongClick() {} open fun onDoubleClick() {} open fun onTripleClick() {} - private fun onClick() {} + open fun onClick() {} init { gestureDetector = GestureDetector(c, GestureListener()) diff --git a/app/src/main/java/app/olauncher/ui/HomeFragment.kt b/app/src/main/java/app/olauncher/ui/HomeFragment.kt index 7d86c69..e64ecd4 100644 --- a/app/src/main/java/app/olauncher/ui/HomeFragment.kt +++ b/app/src/main/java/app/olauncher/ui/HomeFragment.kt @@ -366,7 +366,6 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener Constants.SwipeDownAction.SEARCH -> openSearch(requireContext()) else -> expandNotificationDrawer(requireContext()) } - viewModel.checkForMessages.call() } private fun openSwipeRightApp() { @@ -484,6 +483,11 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener else if (prefs.lockModeOn) lockPhone() } + + override fun onClick() { + super.onClick() + viewModel.checkForMessages.call() + } } } diff --git a/app/src/main/res/layout-land/fragment_settings.xml b/app/src/main/res/layout-land/fragment_settings.xml index 4607c06..6d33708 100644 --- a/app/src/main/res/layout-land/fragment_settings.xml +++ b/app/src/main/res/layout-land/fragment_settings.xml @@ -933,15 +933,14 @@ + android:text="@string/olauncher_pro" /> diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index 0a1b7cf..d80617c 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -955,14 +955,13 @@ + android:text="@string/olauncher_pro" /> diff --git a/app/src/main/res/values-xxxhdpi/dimens.xml b/app/src/main/res/values-xxxhdpi/dimens.xml index 3d094db..d6f8f7e 100644 --- a/app/src/main/res/values-xxxhdpi/dimens.xml +++ b/app/src/main/res/values-xxxhdpi/dimens.xml @@ -1,7 +1,7 @@ 29sp - 16sp + 17sp 16dp 14dp -- cgit v1.2.1 From a2d73b44c49567b9b99b6080cd9996c906b56902 Mon Sep 17 00:00:00 2001 From: AozoraDev Date: Sun, 14 Jan 2024 23:05:42 +0800 Subject: Fix nonsense in values-in --- app/src/main/res/values-in/strings.xml | 58 +++++++++++++++++----------------- 1 file changed, 29 insertions(+), 29 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 1a64074..13c8018 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -8,19 +8,19 @@ Olauncher berjanji untuk menggunakan izin layar kunci secara bertanggung jawab. Olauncher tidak mengumpulkan atau membagikan data apa pun. Tentang Mati - Pada + Nyala Hitam Putih Ubah peluncur default - Pribadi - Membagikan - Membagikan - Kecepatan - Kecepatan - Mengikuti + Privasi + Bagikan + Bagikan sekarang + Peringkat + Berikan peringkat sekarang + Ikuti Surel - Menyumbangkan + Donasi 1. Geser ke atas untuk semua aplikasi\n2. Tekan lama di mana saja untuk pengaturan Aplikasi di layar awal Wallpaper baru setiap hari @@ -41,32 +41,32 @@ 8 Kiat: Mulai ketikkan nama aplikasi untuk meluncurkannya secara otomatis Oke - Dingin! + Keren! Tampilkan keyboard secara otomatis - Bersembunyi + Sembunyikan Tampilkan bilah status Ganti nama - Tunjukkan waktu tanggal + Tampilkan waktu tanggal Penampilan Gerakan - Modus tema + Mode tema Sistem Gelap - Lampu + Terang Halaman Tentang kami di bagian bawah memiliki jawaban atas semua pertanyaan Anda. Jangan lupa. :) Hai, Anda tidak akan melihat pesan ini lagi. \n\nJika Anda menyukai Olauncher, bisakah Anda memberi kami peringkat bintang 5? Ini membantu kami meningkatkan peringkat kami dan membuat kami bahagia. Terima kasih! Hai, kami membutuhkan bantuan Anda! Tahun lalu kami melampaui satu juta unduhan. Tahun ini kami ingin menjangkau satu juta orang lagi tetapi kami tidak dapat melakukannya sendiri. \n\nMaukah Anda berbaik hati membagikan Olauncher kepada teman-teman Anda? Terima kasih dan semoga harimu menyenangkan! Hai, keyboard adalah cara tercepat untuk menemukan dan meluncurkan aplikasi di Olauncher. Bisakah kami meminta Anda untuk mengaktifkannya selama beberapa hari lagi dan kemudian memutuskan? Pilihan selalu menjadi milik Anda. - Jika Anda ingin menetapkan batas waktu untuk aplikasi tertentu, fitur Kesejahteraan Digital Android dapat membantu Anda melakukannya. - \n\nSilakan cari Kesejahteraan Digital di pengaturan ponsel Anda dan aktifkan. + Jika Anda ingin menetapkan batas waktu untuk aplikasi tertentu, fitur Digital Wellbeing Android dapat membantu Anda melakukannya. + \n\nSilakan cari Digital Wellbeing di pengaturan ponsel Anda dan aktifkan. Izin aksesibilitas diperlukan untuk mengaktifkan ketuk dua kali untuk mengunci. Data apa pun yang diperoleh Olauncher melalui layanan ini tidak akan meninggalkan perangkat Anda. Dukung Olauncher secara gratis dengan menggunakan tautan afiliasi Amazon kami. Setiap kali Anda membeli sesuatu menggunakan tautan kami, kami mendapat komisi kecil. Harap simpan tautan dan gunakan setiap kali Anda berbelanja online.\nTerima kasih! Buka tautan - Menyalin - Menutup + Salin + Tutup Tidak sekarang Peta jalan publik Olauncher Instagram @@ -74,27 +74,27 @@ Peta jalan Tanggal Tanggal saja - Bawah: Aktif + Bawah: Nyala Bawah: Mati Silakan atur Olauncher sebagai peluncur default Anda terlebih dahulu Afiliasi Tip: Mulailah mengetik untuk opsi RENAME aplikasi Catatan: Ketuk \'Olauncher\' di bagian atas halaman Pengaturan ini untuk menemukan aplikasi tersembunyi Anda.\n\nRincian lebih lanjut tersedia di halaman Tentang kami di bawah ini. Geser ke bawah untuk - Mencari + Cari Notifikasi Harap aktifkan atau nonaktifkan layanan aksesibilitas Olauncher di pengaturan perangkat Anda untuk mengaktifkan atau menonaktifkan fitur ini.\n\nHarap perhatikan bahwa layanan ini hanya digunakan untuk memungkinkan Anda mematikan layar perangkat menggunakan gerakan ketuk dua kali. Layanan aksesibilitas kami tidak mengumpulkan atau membagikan data apa pun. - Menerima + Terima Izin Ketuk dua kali untuk mengunci - Memungkinkan - Cacat + Aktifkan + Nonaktifkan Tidak bekerja? Info - Menghapus + Hapus Ukuran teks Diaktifkan - Dengan disabilitas + Dinonaktifkan Harap aktifkan ketuk dua kali untuk mengunci Olauncher gagal mengunci perangkat.\nSilakan periksa pengaturan aplikasi Anda. Tekan lama untuk memilih aplikasi @@ -112,15 +112,15 @@ Wallpaper Anda akan segera diperbarui Olauncher bukan peluncur default.\nPembaruan wallpaper harian mungkin gagal. Tekan lama untuk mengaktifkan - Tiada apl tersembunyi + Aplikasi tersembunyi tidak ada Aplikasi tersembunyi - memperlihatkan - bersembunyi + perlihatkan + sembunyikan Apakah Anda menggunakan ponsel Anda, atau ponsel Anda menggunakan Anda? Tentang Olauncher - Belajarlah lagi + Pelajari lebih lanjut Tahukah kamu? Tinggalkan ulasan - Olauncher sepenuhnya gratis dan akan selalu gratis. Tidak ada iklan. Itu tidak mengumpulkan data. Yang terpenting, ini membantu Anda mengurangi waktu pemakaian perangkat dan menjalani kehidupan digital yang lebih sehat. + Olauncher sepenuhnya gratis dan akan selalu gratis. Tidak ada iklan. Tidak mengumpulkan data pribadi. Yang terpenting, ini membantu Anda mengurangi waktu pemakaian perangkat dan menjalani kehidupan digital yang lebih sehat. \n\nKami percaya bahwa beralih ke peluncur minimal adalah keputusan yang sangat baik. Meskipun kami jelas-jelas bias, kami harap Anda menikmati pengalaman ini. Jangan ragu untuk berbagi pemikiran Anda dengan kami! \ No newline at end of file -- cgit v1.2.1 From 9ba0976b83d41395f529b22872590be3fca49c37 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Fri, 19 Jan 2024 12:26:54 +0530 Subject: Removed sortedByDescending in app drawer --- app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt b/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt index 4ea2112..d72b2d6 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt @@ -82,8 +82,8 @@ class AppDrawerAdapter( val appFilteredList = (if (charSearch.isNullOrBlank()) appsList else appsList.filter { app -> appLabelMatches(app.appLabel, charSearch) - }.sortedByDescending { - charSearch.contentEquals(it.appLabel, true) +// }.sortedByDescending { +// charSearch.contentEquals(it.appLabel, true) } as MutableList) val filterResults = FilterResults() -- cgit v1.2.1 From 0f78d03d30eb74f1ad16dcbf92f84bf1572a7d92 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Fri, 19 Jan 2024 12:37:37 +0530 Subject: Copy changes --- app/src/main/java/app/olauncher/MainActivity.kt | 2 +- app/src/main/java/app/olauncher/helper/Extensions.kt | 6 ------ app/src/main/res/values/strings.xml | 8 ++++---- 3 files changed, 5 insertions(+), 11 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/MainActivity.kt b/app/src/main/java/app/olauncher/MainActivity.kt index 26aeb67..3b47061 100644 --- a/app/src/main/java/app/olauncher/MainActivity.kt +++ b/app/src/main/java/app/olauncher/MainActivity.kt @@ -174,7 +174,7 @@ class MainActivity : AppCompatActivity() { when (prefs.userState) { Constants.UserState.START -> { - if (prefs.firstOpenTime.hasBeenMinutes(20)) + if (prefs.firstOpenTime.hasBeenDays(1)) prefs.userState = Constants.UserState.REVIEW } diff --git a/app/src/main/java/app/olauncher/helper/Extensions.kt b/app/src/main/java/app/olauncher/helper/Extensions.kt index 2d94832..3c9bda6 100644 --- a/app/src/main/java/app/olauncher/helper/Extensions.kt +++ b/app/src/main/java/app/olauncher/helper/Extensions.kt @@ -108,9 +108,3 @@ fun Context.isPackageInstalled(packageName: String, userHandle: UserHandle = and fun Long.hasBeenDays(days: Int): Boolean = ((System.currentTimeMillis() - this) / Constants.ONE_DAY_IN_MILLIS) >= days - -fun Long.hasBeenHours(hours: Int): Boolean = - ((System.currentTimeMillis() - this) / Constants.ONE_HOUR_IN_MILLIS) >= hours - -fun Long.hasBeenMinutes(minutes: Int): Boolean = - ((System.currentTimeMillis() - this) / Constants.ONE_MINUTE_IN_MILLIS) >= minutes diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index aa7f813..7b49cde 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -69,9 +69,9 @@ Tip: Our About page has answers to all your questions. Don\'t forget. :) \n\nThank you. Hi, you won\'t see this message again. - \n\nIf you like Olauncher, could you please give us a 5-star rating? It helps us improve our ranking and makes us very happy. Thank you! - Hi, we need your help! We want to hit a million downloads before 2023 ends but we can\'t do it alone. - \n\nWould you be kind enough to share Olauncher with your friends, please? Thank you and have a wonderful day! + \n\nIf you\'re finding Olauncher useful, could you please leave a 5-star review? It\'ll mean the world to us. Thank you! + We need your help! Last year we crossed a million downloads. This year we want to reach a million more, but we can\'t do it alone. + \n\nCould you please share Olauncher with the world? Because Olauncher needs people, and people need Olauncher. Hi, keyboard is the fastest way to find and launch apps in Olauncher. Can we request you to keep this On for a few more days and then decide? \n\nThe choice is always yours. If you want to set time limits for certain apps, Digital Wellbeing feature of Android can help you do it. @@ -138,7 +138,7 @@ Learn more Did you know? Leave a review - Olauncher is and will always be entirely free. It has no ads. It collects no data. Most importantly, it helps you in reducing your screen time and live a healthier digital life. + Olauncher is free and always will be. It has no ads. It collects no data. Most importantly, it helps you in reducing your screen time and live a healthier digital life. \n\nWe believe that switching to a minimal launcher is an excellent decision. While we\'re obviously biased, we hope you\'re enjoying the experience. Feel free to share your thoughts with us! Alignment changed ✅ \ No newline at end of file -- cgit v1.2.1 From b93a6d917b5b8f1d5349430168a4d817b889a5d2 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Fri, 19 Jan 2024 12:38:33 +0530 Subject: App version bumped to 77 (v4.2.1) --- app/src/main/res/values-ldpi/dimens.xml | 1 - 1 file changed, 1 deletion(-) (limited to 'app/src/main') diff --git a/app/src/main/res/values-ldpi/dimens.xml b/app/src/main/res/values-ldpi/dimens.xml index 648bbf9..6eeb0ba 100644 --- a/app/src/main/res/values-ldpi/dimens.xml +++ b/app/src/main/res/values-ldpi/dimens.xml @@ -7,6 +7,5 @@ 45sp 14sp - 180dp \ No newline at end of file -- cgit v1.2.1 From 20c18ba87a0d7e679e0c8ed053f4790d11e9d267 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Wed, 24 Jan 2024 12:27:41 +0530 Subject: Swedish translation improvements --- app/src/main/res/values-sv/strings.xml | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 0df4d12..9e323c9 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -52,15 +52,16 @@ System Mörkt Ljust - Tips: Vår Om-sida har svar på alla dina frågor. Glöm inte det. :) \n\nTack. + Tips: Vår Om-sida har svar på alla dina frågor. Glöm inte det. :) + \n\nTack. Hejsan, du kommer inte att se detta meddelande igen. - \n\nOm du gillar Olauncher, skulle du vänligen kunna ge oss ett 5-stjärnigt omdöme? Det hjälper oss att förbättra vår rankning och gör oss väldigt glada. Tack! - Hej, vi behöver din hjälp! Förra året passerade vi en miljon nedladdningar. I år vill vi nå en miljon fler men vi kan inte göra det ensamma. - \n\nSkulle du vara snäll nog att dela Olauncher med dina vänner? Tack och ha en underbar dag! + \n\nOm du tycker att Olauncher är användbar, skulle du vänligen kunna lämna en 5-stjärnig recension? Det skulle göra oss väldigt glada. Tack! + Vi behöver din hjälp! Förra året passerade vi en miljon nedladdningar. I år vill vi nå en miljon till, men vi kan inte göra det på egen hand. + \n\nKan du dela Olauncher med dina vänner? Olauncher behöver människor, och människor behöver Olauncher. Hejsan, tangentbordet är det snabbaste sättet att hitta och starta appar i Olauncher. Får vi be dig att behålla denna På i några dagar till innan du bestämmer dig? \n\nValet är alltid ditt. - Om du vill ställa in tidsgränser för vissa appar kan Digital Wellbeing-funktionen i Android hjälpa dig att göra det. - \n\nSök efter Digital Wellbeing i dina telefoninställningar och aktivera det. + Om du vill ställa in tidsgränser för vissa appar, kan Digitalt välmående-funktionen i Android hjälpa dig att göra det. + \n\nVänligen sök efter Digitalt välmående i dina telefoninställningar och aktivera den. Tillgänglighetsbehörigheten krävs för att aktivera dubbeltryck för att låsa. Eventuella data förvärvade av Olauncher genom denna tjänst kommer inte att lämna din enhet. Stöd Olauncher utan kostnad genom att använda vår Amazon-affiliatelänk. Varje gång du köper något via vår länk får vi en liten provision. Vänligen spara länken och använd den när du handlar på nätet.\nTack! @@ -119,9 +120,11 @@ Dölj Använder du din telefon, eller använder din telefon dig? Om Olauncher + Digitalt välmående Läs mer Visste du? Lämna en recension - Olauncher är och kommer alltid att vara helt gratis. Den har inga annonser. Den samlar ingen data. Viktigast av allt, det hjälper dig att minska din skärmtid och leva ett hälsosammare digitalt liv. - \n\nVi tror att byte till en minimal launcher är ett utmärkt beslut. Även om vi uppenbarligen är partiska, hoppas vi att du gillar upplevelsen. Dela gärna dina tankar med oss! + Olauncher är gratis och kommer alltid att vara det. Den har inga annonser. Den samlar inte in någon data. Viktigast av allt, det hjälper dig att minska din skärmtid och leva ett hälsosammare digitalt liv. + \n\nVi tycker att det är ett utmärkt beslut att byta till en minimalistisk startskärmsapp. Även om vi uppenbarligen är partiska, hoppas vi att du gillar upplevelsen. Vi vill gärna höra dina tankar! + Placering ändrad ✅ \ No newline at end of file -- cgit v1.2.1 From 448c613d845a40b61a2cc5b0079c775ee964ae3b Mon Sep 17 00:00:00 2001 From: VishnuSanal Date: Sat, 17 Feb 2024 00:35:16 +0530 Subject: fixes #406 --- .../main/java/app/olauncher/ui/AppDrawerAdapter.kt | 51 +++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt b/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt index d72b2d6..55dd973 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt @@ -1,6 +1,9 @@ package app.olauncher.ui +import android.content.Context import android.os.UserHandle +import android.text.Editable +import android.text.TextWatcher import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -172,13 +175,43 @@ class AppDrawerAdapter( } appRename.setOnClickListener { if (appModel.appPackage.isNotEmpty()) { - etAppRename.hint = appModel.appLabel + etAppRename.hint = getAppName(etAppRename.context, appModel.appPackage) + etAppRename.setText(appModel.appLabel) + etAppRename.setSelectAllOnFocus(true) renameLayout.visibility = View.VISIBLE appHideLayout.visibility = View.GONE etAppRename.showKeyboard() etAppRename.imeOptions = EditorInfo.IME_ACTION_DONE; } } + etAppRename.onFocusChangeListener = View.OnFocusChangeListener { v, hasFocus -> + if (hasFocus) + appTitle.visibility = View.INVISIBLE + else + appTitle.visibility = View.VISIBLE + } + etAppRename.addTextChangedListener(object : TextWatcher { + override fun afterTextChanged(s: Editable?) { + etAppRename.hint = getAppName(etAppRename.context, appModel.appPackage) + } + + override fun beforeTextChanged( + s: CharSequence?, + start: Int, + count: Int, + after: Int, + ) { + } + + override fun onTextChanged( + s: CharSequence?, + start: Int, + before: Int, + count: Int, + ) { + etAppRename.hint = "" + } + }) etAppRename.setOnEditorActionListener { _, actionCode, _ -> if (actionCode == EditorInfo.IME_ACTION_DONE) { val renameLabel = etAppRename.text.toString().trim() @@ -196,6 +229,15 @@ class AppDrawerAdapter( if (renameLabel.isNotBlank() && appModel.appPackage.isNotBlank()) { appRenameListener(appModel, renameLabel) renameLayout.visibility = View.GONE + } else { + val packageManager = etAppRename.context.packageManager + appRenameListener( + appModel, + packageManager.getApplicationLabel( + packageManager.getApplicationInfo(appModel.appPackage, 0) + ).toString() + ) + renameLayout.visibility = View.GONE } } appInfo.setOnClickListener { appInfoListener(appModel) } @@ -203,5 +245,12 @@ class AppDrawerAdapter( appHideLayout.setOnClickListener { appHideLayout.visibility = View.GONE } appHide.setOnClickListener { appHideListener(appModel, bindingAdapterPosition) } } + + private fun getAppName(context: Context, appPackage: String): String { + val packageManager = context.packageManager + return packageManager.getApplicationLabel( + packageManager.getApplicationInfo(appPackage, 0) + ).toString() + } } } -- cgit v1.2.1 From 009c964c27520bfcdf138fe554350d31af0ccdc4 Mon Sep 17 00:00:00 2001 From: Caballero Arepa <78449553+Caballero-Arepa@users.noreply.github.com> Date: Fri, 16 Feb 2024 15:21:08 -0500 Subject: Update Spanish rUS --- app/src/main/res/values-es-rUS/strings.xml | 92 +++++++++++++++--------------- 1 file changed, 46 insertions(+), 46 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/res/values-es-rUS/strings.xml b/app/src/main/res/values-es-rUS/strings.xml index a99ad44..2a34e3f 100644 --- a/app/src/main/res/values-es-rUS/strings.xml +++ b/app/src/main/res/values-es-rUS/strings.xml @@ -1,35 +1,35 @@ App - Establecer como iniciador predeterminado - Establecer como iniciador predeterminado - Color de texto - Toca dos veces para bloquear + Establecer como lanzador principal + Primero pongalo como lanzador principal + Color del texto + Tocar dos veces para bloquear Olauncher promete usar el permiso de la pantalla de bloqueo de manera responsable. Olauncher no recopila ni comparte ningún dato. Acerca de - De - En - Black + No + + Negro Blanco - Cambiar lanzador predeterminado + Cambiar lanzador principal Privacidad Compartir - Compartir - Tasa - Tasa + Compartir ahora + Calificar + Calificar ahora Seguir Correo electrónico Donar - 1. Desliza hacia arriba para todas las aplicaciones\n2. Mantenga pulsado en cualquier lugar para la configuración + 1. Desliza hacia arriba para todas las aplicaciones\n2. Mantén pulsado en cualquier lugar para la configuración Aplicaciones en la pantalla de inicio - Nuevo fondo de pantalla diario + Fondo de pantalla nuevo a diario Izquierda - Bien + Derecha Centro Alineación de aplicaciones - Deslizar la aplicación hacia la izquierda - Deslizar la aplicación hacia la derecha + Deslizar a la izquierda + Deslizar a la derecha 0 1 2 @@ -39,46 +39,46 @@ 6 7 8 - Sugerencia: comience a escribir el nombre de una aplicación para iniciarla automáticamente + Sugerencia: Comienza a escribir el nombre de una aplicación para abrirla automáticamente Bueno ¡Fresco! - Teclado de exhibición automática - Esconder + Mostrar teclado automáticamente + Ocultar Mostrar barra de estado - Rebautizar + Renombrar Mostrar fecha y hora - Apariencia - Gestualidad - Modo de tema + Estilo + Gestos + Tema Sistema Oscuro - Ligero - Nuestra página Acerca de en la parte inferior tiene respuestas a todas sus preguntas. No lo olvides. :) + Claro + Nuestra página Acerca de en la parte inferior tiene respuestas a todas tus preguntas. No lo olvides. :) Hola, no volverás a ver este mensaje. \n\nSi te gusta Olauncher, ¿puedes darnos una calificación de 5 estrellas? Nos ayuda a mejorar nuestra clasificación y nos hace felices. ¡Gracias! Hola, necesitamos tu ayuda! El año pasado superamos el millón de descargas. Este año queremos llegar a un millón más pero no podemos hacerlo solos. - \n\n¿Serías tan amable de compartir Olauncher con tus amigos, por favor? ¡Gracias y tenga un maravilloso día! - Hola, el teclado es la forma más rápida de encontrar y lanzar aplicaciones en Olauncher. ¿Podemos pedirle que mantenga esto encendido por unos días más y luego decidir? La elección es siempre tuya. - Si desea establecer límites de tiempo para determinadas aplicaciones, la función Bienestar digital de Android puede ayudarle a hacerlo. - \n\nBusque Bienestar digital en la configuración de su teléfono y habilítelo. - The accessibility permission is required to enable double tap to lock. Any data acquired by Olauncher via this service will not leave your device. + \n\n¿Serías tan amable de compartir Olauncher con tus amigos, por favor? ¡Gracias, y tenga un maravilloso día! + Hola, el teclado es la forma más rápida de encontrar y abrir aplicaciones en Olauncher. ¿Podemos pedirte que mantengas esto encendido por unos días más y luego decidir? La elección siempre es tuya. + Si desea establecer límites de tiempo para determinadas aplicaciones, la función Bienestar Digital de Android puede ayudarle a hacerlo. + \n\nBusque Bienestar Digital en la configuración de su teléfono y habilítelo. + Se necesita el permiso de Accesibilidad para activar el bloqueo con doble-toque. Cualquier dato recolectado por Olauncher no saldrá de tu dispositivo. Apoye Olauncher de forma gratuita utilizando nuestro enlace de afiliado de Amazon. Cada vez que compras algo usando nuestro enlace, obtenemos una pequeña comisión. Por favor, guarde el enlace y úselo cada vez que compre en línea. ¡Gracias! Abrir enlace Copiar Cerrar Ahora no - Hoja de ruta pública de Olauncher + Objetivos públicas de Olauncher Instagram Twitter - Hoja de ruta + Objetivos Fecha Sólo fecha - Abajo: Activado - Abajo: Desactivado - Configura Olauncher como tu lanzador predeterminado primero + Abajo: Sí + Abajo: No + Por favor, primero configura Olauncher como tu lanzador principal Afiliar - Consejo: Comience a escribir para la opción RENAME de la aplicación + Consejo: Comience a escribir para poder RENOMBRAR la aplicación Nota: Toque \'Olauncher\' en la parte superior de esta página de Configuración para encontrar sus aplicaciones ocultas. Más detalles disponibles en nuestra página Acerca de abajo. Desliza el dedo hacia abajo para Buscar @@ -93,24 +93,24 @@ Información Borrar Tamaño del texto - Habilitado - Deshabilitado - Activa el doble toque para bloquear + Activado + Desactivado + Active el doble toque para bloquear Olauncher no pudo bloquear el dispositivo. Comprueba la configuración de la aplicación. Mantenga presionado para seleccionar la aplicación No se puede abrir la información de la aplicación Copiado Aplicación del sistema, no se puede eliminar - Escriba primero un nuevo nombre de aplicación + Escriba primero un nombre nuevo de aplicación Aplicación no encontrada No se puede iniciar la aplicación Buscar la aplicación Launcher o Home - Aplicación de deslizar hacia la izquierda habilitada - Aplicación de deslizamiento hacia la derecha habilitada - Aplicación desactivada para deslizar hacia la izquierda - Aplicación desactivada para deslizar hacia la derecha + Deslizar hacia la izquierda - activado + Deslizar hacia la derecha - activado + Deslizar hacia la izquierda - desactivado + Deslizar hacia la derecha - desactivado Tu fondo de pantalla se actualizará en breve - Olauncher no es el lanzador predeterminado. La actualización diaria del fondo de pantalla puede fallar. + Olauncher no es el lanzador principal. La actualización diaria del fondo de pantalla puede fallar. Mantenga presionado para habilitar Sin aplicaciones ocultas Aplicaciones ocultas @@ -119,7 +119,7 @@ ¿Estás usando tu teléfono, o tu teléfono te está usando a ti? Acerca de Olauncher Aprende más - ¿Sabías? + ¿Sabías qué? Dejar un comentario Olauncher es y será siempre completamente gratuito. No tiene anuncios. No recopila datos. Lo más importante es que le ayuda a reducir el tiempo que pasa frente a la pantalla y a vivir una vida digital más saludable. \n\nCreemos que cambiar a un lanzador mínimo es una excelente decisión. Aunque obviamente somos parciales, esperamos que disfrutes la experiencia. ¡No dudes en compartir tus pensamientos con nosotros! -- cgit v1.2.1 From de5b00bf89b19a4f98651e942aaf6057cbf920b3 Mon Sep 17 00:00:00 2001 From: Caballero Arepa <78449553+Caballero-Arepa@users.noreply.github.com> Date: Fri, 16 Feb 2024 15:23:49 -0500 Subject: Remove - --- app/src/main/res/values-es-rUS/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/src/main') diff --git a/app/src/main/res/values-es-rUS/strings.xml b/app/src/main/res/values-es-rUS/strings.xml index 2a34e3f..c7e93ee 100644 --- a/app/src/main/res/values-es-rUS/strings.xml +++ b/app/src/main/res/values-es-rUS/strings.xml @@ -61,7 +61,7 @@ Hola, el teclado es la forma más rápida de encontrar y abrir aplicaciones en Olauncher. ¿Podemos pedirte que mantengas esto encendido por unos días más y luego decidir? La elección siempre es tuya. Si desea establecer límites de tiempo para determinadas aplicaciones, la función Bienestar Digital de Android puede ayudarle a hacerlo. \n\nBusque Bienestar Digital en la configuración de su teléfono y habilítelo. - Se necesita el permiso de Accesibilidad para activar el bloqueo con doble-toque. Cualquier dato recolectado por Olauncher no saldrá de tu dispositivo. + Se necesita el permiso de Accesibilidad para activar el bloqueo con doble toque. Cualquier dato recolectado por Olauncher no saldrá de tu dispositivo. Apoye Olauncher de forma gratuita utilizando nuestro enlace de afiliado de Amazon. Cada vez que compras algo usando nuestro enlace, obtenemos una pequeña comisión. Por favor, guarde el enlace y úselo cada vez que compre en línea. ¡Gracias! Abrir enlace -- cgit v1.2.1 From 0b6914ffe5417df0d41f9c1f25d68f6df8f3933d Mon Sep 17 00:00:00 2001 From: Caballero Arepa <78449553+Caballero-Arepa@users.noreply.github.com> Date: Fri, 16 Feb 2024 15:38:50 -0500 Subject: Update Spanish rES Tuteo --- app/src/main/res/values-es-rES/strings.xml | 48 +++++++++++++++--------------- 1 file changed, 24 insertions(+), 24 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index bed5551..ccf642c 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -1,8 +1,8 @@ App - Establecer como iniciador predeterminado - Establecer como iniciador predeterminado + Establecer como lanzador principal + Establecer como lanzador principal Color del texto Tocar dos veces para bloquear Olauncher promete usar el permiso de la pantalla de bloqueo de manera responsable. Olauncher no recopila ni comparte ningún dato. @@ -11,25 +11,25 @@ Negro Blanco - Cambiar iniciador predeterminado + Cambiar lanzador principal Privacidad Compartir Compartir - Valorar - Valorar + Calificar + Calificar Seguir Correo electrónico Donar - 1. Deslice hacia arriba para ver todas las aplicaciones\n2. Mantenga pulsado en cualquier lugar para abrir la configuración + 1. Desliza hacia arriba para ver todas las aplicaciones\n2. Mantén pulsado en cualquier lugar para abrir la configuración Aplicaciones en la pantalla de inicio Nuevo fondo de pantalla diario Izquierda Derecha Centrado Posición de aplicaciones - Deslizar hacia la izquierda para abrir - Deslizar hacia la derecha para abrir + Deslizar a la izquierda para abrir + Deslizar a la derecha para abrir 0 1 2 @@ -39,7 +39,7 @@ 6 7 8 - Sugerencia: comience a escribir el nombre de una aplicación para iniciarla automáticamente + Sugerencia: Comienza a escribir el nombre de una aplicación para iniciarla automáticamente De acuerdo ¡Guay! Mostrar teclado automáticamente @@ -56,14 +56,14 @@ Nuestra página \'Acerca de\' en la parte inferior tiene respuestas a todas sus preguntas. no lo olvides :)\n\nGracias. Hola, no volverás a ver este mensaje. \n\nSi te gusta Olauncher, ¿puedes darnos una calificación de 5 estrellas? Nos ayuda a mejorar nuestra clasificación y nos hace felices. ¡Gracias! - Hola, necesitamos tu ayuda! El año pasado superamos el millón de descargas. Este año queremos llegar a un millón más pero no podemos hacerlo solos. + Hola, necesitamos tu ayuda! El año pasado superamos el millón de descargas. Este año queremos llegar a un millón más, pero no podemos hacerlo solos. \n\n¿Serías tan amable de compartir Olauncher con tus amigos, por favor? ¡Gracias y tenga un maravilloso día! - Hola, el teclado es la forma más rápida de encontrar y ejecutar aplicaciones en Olauncher. ¿Podemos pedirle que mantenga esto activado durante unos días más y luego decidir? - \n\nLa decisión siempre es suya. - Si desea establecer límites de tiempo para determinadas aplicaciones, la función Bienestar digital de Android puede ayudarle a hacerlo. - \n\nBusque Bienestar digital en la configuración de su teléfono y habilítelo. + Hola, el teclado es la forma más rápida de encontrar y ejecutar aplicaciones en Olauncher. ¿Podemos pedirte que mantenga esto activado durante unos días más y luego decidir? + \n\nLa decisión siempre es vuestra. + Si deseas establecer límites de tiempo para determinadas aplicaciones, la función Bienestar digital de Android puede ayudarte a hacerlo. + \n\nBusca Bienestar digital en la configuración de su teléfono y habilítelo. "Se requiere el permiso de accesibilidad para habilitar el doble toque para bloquear. Cualquier dato adquirido por Olauncher a través de este servicio no saldrá de su dispositivo." - Apoye a Olauncher de forma gratuita utilizando nuestro enlace de afiliado de Amazon. + Apoya a Olauncher de forma gratuita utilizando nuestro enlace de afiliado de Amazon. Cada vez que compre algo usando nuestro enlace, obtendremos una pequeña comisión. Guarde el enlace y utilícelo cada vez que compre en línea.\n¡Gracias! Abrir enlace Copiar @@ -79,14 +79,14 @@ Abajo: No Primero seleccione Olauncher como su iniciador predeterminado Afiliado - Sugerencia: Comience a escribir para RENOMBRAR la aplicación - Nota: pulse \'Olauncher\' en la parte superior de esta página de Configuración para encontrar sus aplicaciones ocultas. + Sugerencia: Comienza a escribir para RENOMBRAR la aplicación + Nota: pulsa \'Olauncher\' en la parte superior de esta página de Configuración para encontrar las aplicaciones ocultas. \n\nMás detalles disponibles en nuestra página \'Acerca de\' más abajo. Deslizar hacia abajo para Búsqueda Notificaciones - Active o desactive el servicio de accesibilidad de Olauncher en la configuración de su dispositivo para activar o desactivar esta función. - \n\nTenga en cuenta que este servicio solo se utiliza para permitirle apagar la pantalla de su dispositivo con el gesto de doble toque. Nuestro servicio de accesibilidad no recopila ni comparte ningún dato. + Activa o desactiva el servicio de accesibilidad de Olauncher en la configuración de su dispositivo para activar o desactivar esta función. + \n\nTen en cuenta que este servicio solo se utiliza para permitir apagar la pantalla de tu dispositivo con el gesto de doble toque. Nuestro servicio de accesibilidad no recopila ni comparte ningún dato. Aceptar Permiso Tocar dos veces para bloquear @@ -104,16 +104,16 @@ No se ha podido abrir la información de la aplicación Copiado Aplicación del sistema, no se puede eliminar - Primero escriba un nuevo nombre para la aplicación + Primero escribe un nuevo nombre para la aplicación Aplicación no encontrada No se ha podido iniciar la aplicación - Busque la aplicación Lanzador, Iniciador o Inicio + Busca la aplicación Lanzador, Iniciador o Inicio Deslizar hacia la izquierda para abrir aplicación: activado Deslizar hacia la derecha para abrir aplicación: activado Deslizar hacia la izquierda para abrir aplicación: desactivado Deslizar hacia la derecha para abrir aplicación: desactivado - Su fondo de pantalla se actualizará en breve - Olauncher no es su lanzador predeterminado.\nLa actualización diaria del fondo de pantalla puede fallar. + Tu fondo de pantalla se actualizará en breve + Olauncher no es tu lanzador predeterminado.\nLa actualización diaria del fondo de pantalla puede fallar. Mantenga presionado para habilitar Sin aplicaciones ocultas Aplicaciones ocultas @@ -124,6 +124,6 @@ Aprende más ¿Sabías? Dejar un comentario - Olauncher es y será siempre completamente gratuito. No tiene anuncios. No recopila datos. Lo más importante es que le ayuda a reducir el tiempo que pasa frente a la pantalla y a vivir una vida digital más saludable. + Olauncher es y será siempre completamente gratuito. No tiene anuncios. No recopila datos. Lo más importante es que te ayuda a reducir el tiempo que pasa frente a la pantalla y a vivir una vida digital más saludable. \n\nCreemos que cambiar a un lanzador mínimo es una excelente decisión. Aunque obviamente somos parciales, esperamos que disfrutes la experiencia. ¡No dudes en compartir tus pensamientos con nosotros! -- cgit v1.2.1 From b3bd80b33aee20b354910e0592bd30713ede9b28 Mon Sep 17 00:00:00 2001 From: Caballero Arepa <78449553+Caballero-Arepa@users.noreply.github.com> Date: Fri, 16 Feb 2024 15:47:37 -0500 Subject: No tuteo --- app/src/main/res/values-es-rUS/strings.xml | 58 +++++++++++++++--------------- 1 file changed, 29 insertions(+), 29 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/res/values-es-rUS/strings.xml b/app/src/main/res/values-es-rUS/strings.xml index c7e93ee..3ee1884 100644 --- a/app/src/main/res/values-es-rUS/strings.xml +++ b/app/src/main/res/values-es-rUS/strings.xml @@ -14,22 +14,22 @@ Cambiar lanzador principal Privacidad Compartir - Compartir ahora + Compartir ya Calificar - Calificar ahora + Calificar ya Seguir Correo electrónico Donar - 1. Desliza hacia arriba para todas las aplicaciones\n2. Mantén pulsado en cualquier lugar para la configuración + 1. Deslize hacia arriba para todas las aplicaciones\n2. Mantenga pulsado en cualquier lugar para la configuración Aplicaciones en la pantalla de inicio - Fondo de pantalla nuevo a diario + Fondo nuevo de pantalla diario Izquierda Derecha Centro Alineación de aplicaciones - Deslizar a la izquierda - Deslizar a la derecha + Deslizar a la izquierda para abrir + Deslizar a la derecha para abrir 0 1 2 @@ -39,7 +39,7 @@ 6 7 8 - Sugerencia: Comienza a escribir el nombre de una aplicación para abrirla automáticamente + Sugerencia: Comienze a escribir el nombre de una aplicación para abrirla automáticamente Bueno ¡Fresco! Mostrar teclado automáticamente @@ -54,21 +54,21 @@ Oscuro Claro Nuestra página Acerca de en la parte inferior tiene respuestas a todas tus preguntas. No lo olvides. :) - Hola, no volverás a ver este mensaje. - \n\nSi te gusta Olauncher, ¿puedes darnos una calificación de 5 estrellas? Nos ayuda a mejorar nuestra clasificación y nos hace felices. ¡Gracias! - Hola, necesitamos tu ayuda! El año pasado superamos el millón de descargas. Este año queremos llegar a un millón más pero no podemos hacerlo solos. - \n\n¿Serías tan amable de compartir Olauncher con tus amigos, por favor? ¡Gracias, y tenga un maravilloso día! - Hola, el teclado es la forma más rápida de encontrar y abrir aplicaciones en Olauncher. ¿Podemos pedirte que mantengas esto encendido por unos días más y luego decidir? La elección siempre es tuya. + Hola, no volverá a ver este mensaje. + \n\nSi le gusta Olauncher, ¿puede darnos una calificación de 5 estrellas? Nos ayuda a mejorar nuestra clasificación y nos hace felices. ¡Gracias! + Hola, necesitamos su ayuda! El año pasado superamos el millón de descargas. Este año queremos llegar a un millón más pero no podemos hacerlo solos. + \n\n¿Sería tan amable de compartir Olauncher con sus amigos, por favor? ¡Gracias, y tenga un maravilloso día! + Hola, el teclado es la forma más rápida de encontrar y abrir aplicaciones en Olauncher. ¿Podemos pedirle que mantenga esto activado por unos días más y luego decidir? La decisión siempre es suya. Si desea establecer límites de tiempo para determinadas aplicaciones, la función Bienestar Digital de Android puede ayudarle a hacerlo. \n\nBusque Bienestar Digital en la configuración de su teléfono y habilítelo. - Se necesita el permiso de Accesibilidad para activar el bloqueo con doble toque. Cualquier dato recolectado por Olauncher no saldrá de tu dispositivo. + Se necesita el permiso de Accesibilidad para activar el bloqueo con doble toque. Cualquier dato recolectado por Olauncher no saldrá de su dispositivo. Apoye Olauncher de forma gratuita utilizando nuestro enlace de afiliado de Amazon. - Cada vez que compras algo usando nuestro enlace, obtenemos una pequeña comisión. Por favor, guarde el enlace y úselo cada vez que compre en línea. ¡Gracias! + Cada vez que compre algo usando nuestro enlace, obtenemos una pequeña comisión. Por favor, guarde el enlace y úselo cada vez que compre en línea. ¡Gracias! Abrir enlace Copiar Cerrar Ahora no - Objetivos públicas de Olauncher + Objetivos de Olauncher Instagram Twitter Objetivos @@ -76,17 +76,17 @@ Sólo fecha Abajo: Sí Abajo: No - Por favor, primero configura Olauncher como tu lanzador principal + Por favor, primero configure Olauncher como su lanzador principal Afiliar Consejo: Comience a escribir para poder RENOMBRAR la aplicación Nota: Toque \'Olauncher\' en la parte superior de esta página de Configuración para encontrar sus aplicaciones ocultas. Más detalles disponibles en nuestra página Acerca de abajo. - Desliza el dedo hacia abajo para + Deslize el dedo hacia abajo para Buscar Notificaciones Active o desactive el servicio de accesibilidad de Olauncher en la configuración de su dispositivo para habilitar o deshabilitar esta función. Tenga en cuenta que este servicio solo se utiliza para permitirle apagar el dispositivo Aceptar Permiso - Toca dos veces para bloquear + Tocar dos veces para bloquear Habilitar Inutilizar ¿No funciona? @@ -101,26 +101,26 @@ No se puede abrir la información de la aplicación Copiado Aplicación del sistema, no se puede eliminar - Escriba primero un nombre nuevo de aplicación + Escriba un nombre nuevo para la aplicación Aplicación no encontrada No se puede iniciar la aplicación - Buscar la aplicación Launcher o Home - Deslizar hacia la izquierda - activado - Deslizar hacia la derecha - activado - Deslizar hacia la izquierda - desactivado - Deslizar hacia la derecha - desactivado - Tu fondo de pantalla se actualizará en breve + Busca la aplicación Launcher o Home + Deslizar a la izquierda - Activado + Deslizar a la derecha - Activado + Deslizar a la izquierda - Desactivado + Deslizar a la derecha - Desactivado + El fondo de pantalla se actualizará en breve Olauncher no es el lanzador principal. La actualización diaria del fondo de pantalla puede fallar. Mantenga presionado para habilitar Sin aplicaciones ocultas Aplicaciones ocultas demostrar esconder - ¿Estás usando tu teléfono, o tu teléfono te está usando a ti? + ¿Está usando su teléfono, o el teléfono lo usa a usted? Acerca de Olauncher - Aprende más - ¿Sabías qué? + Aprenda más + ¿Sabía qué? Dejar un comentario Olauncher es y será siempre completamente gratuito. No tiene anuncios. No recopila datos. Lo más importante es que le ayuda a reducir el tiempo que pasa frente a la pantalla y a vivir una vida digital más saludable. - \n\nCreemos que cambiar a un lanzador mínimo es una excelente decisión. Aunque obviamente somos parciales, esperamos que disfrutes la experiencia. ¡No dudes en compartir tus pensamientos con nosotros! + \n\nCreemos que cambiar a un lanzador mínimo es una excelente decisión. Aunque obviamente somos parciales, esperamos que disfrutes la experiencia. ¡No dude en compartir sus pensamientos con nosotros! -- cgit v1.2.1 From ba86c21a2d7460688f587c5217154249c3b89d79 Mon Sep 17 00:00:00 2001 From: George Sanger Date: Thu, 22 Feb 2024 23:21:14 +0000 Subject: Added updating filter on appList observer --- app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt index 24743c5..7bad922 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt @@ -175,7 +175,10 @@ class AppDrawerFragment : Fragment() { } else viewModel.appList.observe(viewLifecycleOwner) { - it?.let { adapter.setAppList(it.toMutableList()) } + it?.let { + adapter.setAppList(it.toMutableList()) + adapter.filter.filter(binding.search.query) + } } } -- cgit v1.2.1 From 30834c7dc2e92e16cb1c7afe77a82ce073992f2b Mon Sep 17 00:00:00 2001 From: George Sanger Date: Fri, 23 Feb 2024 00:05:35 +0000 Subject: Remove '!' from web search shortcut. --- app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt index 7bad922..9c00873 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt @@ -75,7 +75,9 @@ class AppDrawerFragment : Fragment() { binding.search.setOnQueryTextListener(object : SearchView.OnQueryTextListener { override fun onQueryTextSubmit(query: String?): Boolean { if (query?.startsWith("!") == true) - requireContext().openUrl(Constants.URL_DUCK_SEARCH + query.replace(" ", "%20")) + requireContext().openUrl(Constants.URL_DUCK_SEARCH + query + .removePrefix("!") + .replace(" ", "%20")) else if (adapter.itemCount == 0 && requireContext().searchOnPlayStore(query?.trim()).not()) requireContext().openSearch(query?.trim()) else -- cgit v1.2.1 From c2258af27c70747af2ccd78c1cef207aa2f45bbd Mon Sep 17 00:00:00 2001 From: Igor Loshmanov <96102012+FinQr@users.noreply.github.com> Date: Sun, 3 Mar 2024 15:19:00 +0300 Subject: Update the Russian translation --- app/src/main/res/values-ru-rRU/strings.xml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 4dc856c..652378b 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -26,10 +26,10 @@ Ежедневно новые обои Слева Справа - По центру - Выравнивание приложений - Проведите влево для - Проведите вправо для + Центр + Расположение приложений + Свайп влево + Свайп вправо 0 1 2 @@ -39,7 +39,7 @@ 6 7 8 - Совет. Начните вводить название приложения, чтобы оно запустилось автоматически. + Совет: начните вводить название приложения, чтобы запустить его автоматически. Хорошо Круто! Автопоказ клавиатуры @@ -47,7 +47,7 @@ Показывать строку состояния Переименовать Показывать дату и время - Внешний вид + Оформление Жесты Тема Системная @@ -55,10 +55,10 @@ Светлая На странице «О нас» внизу есть ответы на все ваши вопросы. Не забывайте. :) Здравствуйте, вы больше не увидите это сообщение. - \n\nЕсли вам нравится Olauncher, не могли бы вы дать нам 5-звездочный рейтинг? Это помогает нам улучшить наш рейтинг и делает нас счастливыми. Спасибо! + \n\nЕсли вам нравится Olauncher, не могли бы вы поставить нам 5 звезд? Это поможет улучшить наш рейтинг и сделает нас счастливыми. Спасибо! Привет, нам нужна ваша помощь! В прошлом году мы преодолели миллион загрузок. В этом году мы хотим достичь еще миллиона, но мы не можем сделать это в одиночку. - \n\nНе могли бы вы поделиться Olauncher со своими друзьями, пожалуйста? Спасибо и хорошего дня! - Привет, клавиатура — это самый быстрый способ найти и запустить приложения в Olauncher. Можем ли мы попросить вас оставить это включенным еще на несколько дней, а затем принять решение? + \n\nНе могли бы вы поделиться Olauncher со своими друзьями, пожалуйста? Спасибо, хорошего дня! + Привет, клавиатура — это самый быстрый способ найти и запустить приложения в Olauncher. Могли бы вы продолжить использовать Автопоказ клавиатуры еще несколько дней, прежде чем принять окончательное решение? \n\nВыбор всегда за вами. Если вы хотите установить ограничения по времени для определенных приложений, функция «Цифровое благополучие» Android может помочь вам в этом. \n\nНайдите параметр «Цифровое благополучие» в настройках телефона и включите его. @@ -80,7 +80,7 @@ Сначала установите Olauncher в качестве лаунчера по умолчанию. Партнер Совет: начните вводить текст чтобы ПЕРЕИМЕНОВАТЬ приложение. - Примечание. Нажмите «Olauncher» в верхней части страницы настроек, чтобы найти скрытые приложения. + Примечание: для доступа к скрытым приложениям, нажмите «Olauncher» в верхней части страницы настроек. \n\nБолее подробная информация доступна на нашей странице «О нас» ниже. Проведите вниз для Поиск @@ -103,7 +103,7 @@ Длительное нажатие для выбора приложения Не удалось открыть информацию о приложении Скопировано - Не могу удалить системное приложение + Невозможно удалить системное приложение Сначала введите новое имя приложения Приложение не найдено Не удается запустить приложение -- cgit v1.2.1 From f3f067cb08ecdd1c6ad568744baf96ba6eab983b Mon Sep 17 00:00:00 2001 From: Tanuj Date: Mon, 11 Mar 2024 12:46:33 +0530 Subject: Fixed: app drawer closing when swiped up on short (non-scrollable) app list --- .../java/app/olauncher/ui/AppDrawerFragment.kt | 23 ++++++++++++++++++---- app/src/main/res/layout/fragment_app_drawer.xml | 3 +-- 2 files changed, 20 insertions(+), 6 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt index 24743c5..a8a0b6f 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt @@ -10,7 +10,9 @@ import androidx.appcompat.widget.SearchView import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.navigation.fragment.findNavController +import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView +import androidx.recyclerview.widget.RecyclerView.Recycler import app.olauncher.MainViewModel import app.olauncher.R import app.olauncher.data.Constants @@ -27,6 +29,7 @@ import app.olauncher.helper.showKeyboard import app.olauncher.helper.showToast import app.olauncher.helper.uninstall + class AppDrawerFragment : Fragment() { private lateinit var prefs: Prefs @@ -154,6 +157,17 @@ class AppDrawerFragment : Fragment() { viewModel.getAppList() } ) + + val linearLayoutManager: LinearLayoutManager = object : LinearLayoutManager(requireContext()) { + override fun scrollVerticallyBy(dx: Int, recycler: Recycler, state: RecyclerView.State): Int { + val scrollRange = super.scrollVerticallyBy(dx, recycler, state) + val overScroll = dx - scrollRange + if (overScroll < -10 && binding.recyclerView.scrollState == RecyclerView.SCROLL_STATE_DRAGGING) + checkMessageAndExit() + return scrollRange + } + } + binding.recyclerView.layoutManager = linearLayoutManager binding.recyclerView.adapter = adapter binding.recyclerView.addOnScrollListener(getRecyclerViewOnScrollListener()) binding.recyclerView.itemAnimator = null @@ -218,16 +232,17 @@ class AppDrawerFragment : Fragment() { RecyclerView.SCROLL_STATE_DRAGGING -> { onTop = !recyclerView.canScrollVertically(-1) if (onTop) binding.search.hideKeyboard() - if (onTop && !recyclerView.canScrollVertically(1)) - checkMessageAndExit() + // if (onTop && !recyclerView.canScrollVertically(1)) + // checkMessageAndExit() } RecyclerView.SCROLL_STATE_IDLE -> { if (!recyclerView.canScrollVertically(1)) { binding.search.hideKeyboard() } else if (!recyclerView.canScrollVertically(-1)) { - if (onTop) checkMessageAndExit() - else binding.search.showKeyboard(prefs.autoShowKeyboard) + if (!onTop) binding.search.showKeyboard(prefs.autoShowKeyboard) + // if (onTop) checkMessageAndExit() + // else binding.search.showKeyboard(prefs.autoShowKeyboard) } } } diff --git a/app/src/main/res/layout/fragment_app_drawer.xml b/app/src/main/res/layout/fragment_app_drawer.xml index a73ddd1..81e4422 100644 --- a/app/src/main/res/layout/fragment_app_drawer.xml +++ b/app/src/main/res/layout/fragment_app_drawer.xml @@ -70,7 +70,6 @@ android:clipChildren="false" android:clipToPadding="false" android:fadingEdgeLength="24dp" - android:requiresFadingEdge="vertical" - app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" /> + android:requiresFadingEdge="vertical" /> \ No newline at end of file -- cgit v1.2.1 From aafc97a475de52eaa550b8a6518315a2c23ecf98 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Mon, 11 Mar 2024 13:03:57 +0530 Subject: Minor changes --- app/src/main/java/app/olauncher/MainActivity.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/MainActivity.kt b/app/src/main/java/app/olauncher/MainActivity.kt index 3b47061..29239e3 100644 --- a/app/src/main/java/app/olauncher/MainActivity.kt +++ b/app/src/main/java/app/olauncher/MainActivity.kt @@ -174,7 +174,7 @@ class MainActivity : AppCompatActivity() { when (prefs.userState) { Constants.UserState.START -> { - if (prefs.firstOpenTime.hasBeenDays(1)) + if (prefs.firstOpenTime.hasBeenDays(3)) prefs.userState = Constants.UserState.REVIEW } @@ -189,15 +189,15 @@ class MainActivity : AppCompatActivity() { if (prefs.rateClicked) prefs.userState = Constants.UserState.SHARE else if (isOlauncherDefault(this) - && prefs.firstOpenTime.hasBeenDays(7) - && Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 12 + && prefs.firstOpenTime.hasBeenDays(14) + && Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 15 ) viewModel.showDialog.postValue(Constants.Dialog.RATE) } Constants.UserState.SHARE -> { - if (isOlauncherDefault(this) && prefs.firstOpenTime.hasBeenDays(14) + if (isOlauncherDefault(this) && prefs.firstOpenTime.hasBeenDays(21) && prefs.shareShownTime.hasBeenDays(42) - && Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 12 + && Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 15 ) viewModel.showDialog.postValue(Constants.Dialog.SHARE) } } -- cgit v1.2.1 From 911a5dc9d24fa3ef584accbc738e63de8a1d0d7c Mon Sep 17 00:00:00 2001 From: Tanuj Date: Mon, 11 Mar 2024 13:20:08 +0530 Subject: Changes in settings --- app/src/main/java/app/olauncher/data/Constants.kt | 1 + .../main/java/app/olauncher/ui/SettingsFragment.kt | 2 ++ app/src/main/res/layout-land/fragment_settings.xml | 24 +++++++++++++++------- app/src/main/res/layout/fragment_settings.xml | 14 +++++++++++-- app/src/main/res/values/strings.xml | 3 ++- 5 files changed, 34 insertions(+), 10 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/data/Constants.kt b/app/src/main/java/app/olauncher/data/Constants.kt index 00596b5..10509a9 100644 --- a/app/src/main/java/app/olauncher/data/Constants.kt +++ b/app/src/main/java/app/olauncher/data/Constants.kt @@ -93,6 +93,7 @@ object Constants { const val URL_DOUBLE_TAP = "https://tanujnotes.notion.site/Double-tap-to-lock-Olauncher-0f7fb103ec1f47d7a90cdfdcd7fb86ef" const val URL_OLAUNCHER_GITHUB = "https://www.github.com/tanujnotes/Olauncher" const val URL_OLAUNCHER_PLAY_STORE = "https://play.google.com/store/apps/details?id=app.olauncher" + const val URL_OLAUNCHER_PRO = "https://play.google.com/store/apps/details?id=app.prolauncher" const val URL_PLAY_STORE_DEV = "https://play.google.com/store/apps/dev?id=7198807840081074933" const val URL_TWITTER_TANUJ = "https://twitter.com/tanujnotes" const val URL_WALLPAPERS = "https://gist.githubusercontent.com/tanujnotes/85e2d0343ace71e76615ac346fbff82b/raw" diff --git a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt index db9ac10..531e2db 100644 --- a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt +++ b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt @@ -95,6 +95,7 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe when (view.id) { R.id.olauncherHiddenApps -> showHiddenApps() + R.id.olauncherPro -> requireContext().openUrl(Constants.URL_OLAUNCHER_PRO) R.id.digitalWellbeing -> viewModel.showDialog.postValue(Constants.Dialog.DIGITAL_WELLBEING) R.id.appInfo -> openAppInfo(requireContext(), Process.myUserHandle(), BuildConfig.APPLICATION_ID) R.id.setLauncher -> viewModel.resetLauncherLiveData.call() @@ -198,6 +199,7 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe binding.appInfo.setOnClickListener(this) binding.setLauncher.setOnClickListener(this) binding.aboutOlauncher.setOnClickListener(this) + binding.olauncherPro.setOnClickListener(this) binding.digitalWellbeing.setOnClickListener(this) binding.autoShowKeyboard.setOnClickListener(this) binding.toggleLock.setOnClickListener(this) diff --git a/app/src/main/res/layout-land/fragment_settings.xml b/app/src/main/res/layout-land/fragment_settings.xml index 6d33708..0f51313 100644 --- a/app/src/main/res/layout-land/fragment_settings.xml +++ b/app/src/main/res/layout-land/fragment_settings.xml @@ -60,36 +60,46 @@ + + + android:text="@string/olauncher_pro" /> + android:text="@string/digital_wellbeing" + android:visibility="gone" + tools:visibility="visible" /> diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index d80617c..f4d4142 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -80,6 +80,16 @@ android:layout_marginBottom="8dp" android:text="@string/about_olauncher" /> + + + android:text="@string/digital_minimalism" /> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7b49cde..38435b2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2,7 +2,8 @@ Olauncher Github lock layout description to be used a unique id to lock screen - Olauncher Pro + Olauncher Pro + Digital Minimalism %s, %d%% 0 1 -- cgit v1.2.1 From ad4a0ece72457989782561037a451bf1f0647a6d Mon Sep 17 00:00:00 2001 From: Tanuj Date: Mon, 11 Mar 2024 13:25:08 +0530 Subject: Minor UI changes --- app/src/main/res/drawable/rounded_rect_shade_color.xml | 6 +++--- app/src/main/res/values-hdpi/dimens.xml | 2 +- app/src/main/res/values-ldpi/dimens.xml | 2 +- app/src/main/res/values-mdpi/dimens.xml | 2 +- app/src/main/res/values-xhdpi/dimens.xml | 2 +- app/src/main/res/values-xxhdpi/dimens.xml | 2 +- app/src/main/res/values-xxxhdpi/dimens.xml | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/res/drawable/rounded_rect_shade_color.xml b/app/src/main/res/drawable/rounded_rect_shade_color.xml index bb87ed4..b3274c4 100644 --- a/app/src/main/res/drawable/rounded_rect_shade_color.xml +++ b/app/src/main/res/drawable/rounded_rect_shade_color.xml @@ -1,9 +1,9 @@ - - + + diff --git a/app/src/main/res/values-hdpi/dimens.xml b/app/src/main/res/values-hdpi/dimens.xml index 19d07c0..288f259 100644 --- a/app/src/main/res/values-hdpi/dimens.xml +++ b/app/src/main/res/values-hdpi/dimens.xml @@ -5,7 +5,7 @@ 10dp 8dp - 45sp + 50sp 14sp \ No newline at end of file diff --git a/app/src/main/res/values-ldpi/dimens.xml b/app/src/main/res/values-ldpi/dimens.xml index 6eeb0ba..eef407c 100644 --- a/app/src/main/res/values-ldpi/dimens.xml +++ b/app/src/main/res/values-ldpi/dimens.xml @@ -5,7 +5,7 @@ 8dp 6dp - 45sp + 50sp 14sp \ No newline at end of file diff --git a/app/src/main/res/values-mdpi/dimens.xml b/app/src/main/res/values-mdpi/dimens.xml index 73ddac3..d6c1fbe 100644 --- a/app/src/main/res/values-mdpi/dimens.xml +++ b/app/src/main/res/values-mdpi/dimens.xml @@ -5,6 +5,6 @@ 8dp 6dp - 45sp + 50sp 14sp \ No newline at end of file diff --git a/app/src/main/res/values-xhdpi/dimens.xml b/app/src/main/res/values-xhdpi/dimens.xml index d0a559c..4bdf6a2 100644 --- a/app/src/main/res/values-xhdpi/dimens.xml +++ b/app/src/main/res/values-xhdpi/dimens.xml @@ -5,6 +5,6 @@ 12dp 10dp - 50sp + 60sp 16sp \ No newline at end of file diff --git a/app/src/main/res/values-xxhdpi/dimens.xml b/app/src/main/res/values-xxhdpi/dimens.xml index 8c29f1e..bfaf760 100644 --- a/app/src/main/res/values-xxhdpi/dimens.xml +++ b/app/src/main/res/values-xxhdpi/dimens.xml @@ -5,6 +5,6 @@ 12dp 10dp - 60sp + 70sp 18sp \ No newline at end of file diff --git a/app/src/main/res/values-xxxhdpi/dimens.xml b/app/src/main/res/values-xxxhdpi/dimens.xml index d6f8f7e..4713aa7 100644 --- a/app/src/main/res/values-xxxhdpi/dimens.xml +++ b/app/src/main/res/values-xxxhdpi/dimens.xml @@ -5,6 +5,6 @@ 16dp 14dp - 64sp + 70sp 18sp -- cgit v1.2.1 From 2d39f0c0bd4969ed3667d1f5d537f0765428a017 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Sun, 28 Apr 2024 13:29:48 +0530 Subject: Message changes --- app/src/main/java/app/olauncher/MainActivity.kt | 8 ++++---- app/src/main/res/values/strings.xml | 6 ++++-- 2 files changed, 8 insertions(+), 6 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/MainActivity.kt b/app/src/main/java/app/olauncher/MainActivity.kt index 29239e3..d3e867a 100644 --- a/app/src/main/java/app/olauncher/MainActivity.kt +++ b/app/src/main/java/app/olauncher/MainActivity.kt @@ -174,7 +174,7 @@ class MainActivity : AppCompatActivity() { when (prefs.userState) { Constants.UserState.START -> { - if (prefs.firstOpenTime.hasBeenDays(3)) + if (prefs.firstOpenTime.hasBeenDays(1)) prefs.userState = Constants.UserState.REVIEW } @@ -189,14 +189,14 @@ class MainActivity : AppCompatActivity() { if (prefs.rateClicked) prefs.userState = Constants.UserState.SHARE else if (isOlauncherDefault(this) - && prefs.firstOpenTime.hasBeenDays(14) + && prefs.firstOpenTime.hasBeenDays(7) && Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 15 ) viewModel.showDialog.postValue(Constants.Dialog.RATE) } Constants.UserState.SHARE -> { - if (isOlauncherDefault(this) && prefs.firstOpenTime.hasBeenDays(21) - && prefs.shareShownTime.hasBeenDays(42) + if (isOlauncherDefault(this) && prefs.firstOpenTime.hasBeenDays(14) + && prefs.shareShownTime.hasBeenDays(35) && Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 15 ) viewModel.showDialog.postValue(Constants.Dialog.SHARE) } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 38435b2..76c6d65 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -71,8 +71,10 @@ \n\nThank you. Hi, you won\'t see this message again. \n\nIf you\'re finding Olauncher useful, could you please leave a 5-star review? It\'ll mean the world to us. Thank you! - We need your help! Last year we crossed a million downloads. This year we want to reach a million more, but we can\'t do it alone. - \n\nCould you please share Olauncher with the world? Because Olauncher needs people, and people need Olauncher. + + + Your monthly reminder - you should use your phone, not the other way round. Stay strong. You\'re doing great! + \n\nIf you have a moment to spare, could you please share Olauncher with others? Olauncher needs people. More importantly, people need Olauncher. Hi, keyboard is the fastest way to find and launch apps in Olauncher. Can we request you to keep this On for a few more days and then decide? \n\nThe choice is always yours. If you want to set time limits for certain apps, Digital Wellbeing feature of Android can help you do it. -- cgit v1.2.1 From d9b29259106b3c68738d7f47bf0238593d26bcc9 Mon Sep 17 00:00:00 2001 From: George Sanger Date: Mon, 29 Apr 2024 13:34:38 +0100 Subject: Revert "Remove '!' from web search shortcut." This reverts commit 30834c7dc2e92e16cb1c7afe77a82ce073992f2b. --- app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt index 9c00873..7bad922 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt @@ -75,9 +75,7 @@ class AppDrawerFragment : Fragment() { binding.search.setOnQueryTextListener(object : SearchView.OnQueryTextListener { override fun onQueryTextSubmit(query: String?): Boolean { if (query?.startsWith("!") == true) - requireContext().openUrl(Constants.URL_DUCK_SEARCH + query - .removePrefix("!") - .replace(" ", "%20")) + requireContext().openUrl(Constants.URL_DUCK_SEARCH + query.replace(" ", "%20")) else if (adapter.itemCount == 0 && requireContext().searchOnPlayStore(query?.trim()).not()) requireContext().openSearch(query?.trim()) else -- cgit v1.2.1 From f40dfeaad24d45914aecda148ad835ea682a03ea Mon Sep 17 00:00:00 2001 From: Tamas Balog Date: Mon, 15 Jul 2024 07:47:37 +0200 Subject: Apply various fixes in the Hungarian translation --- app/src/main/res/values-hu/strings.xml | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index bc22712..aa2e2fa 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -1,6 +1,6 @@ Alkalmazás - Beállítás alapértelmezett indítóként + Beállítás alapért. indítóként Beállítás alapértelmezett indítóként Szövegszín Dupla koppintás a képernyő lezárásához @@ -37,10 +37,10 @@ 6 7 8 - Tipp: Kezdje el begépelni egy alkalmazás nevét az automatikus indításához + Tipp: Kezdje el begépelni egy alkalmazás nevét annak automatikus indításához Rendben Szuper! - Billentyűzet automatikus megjelenítlse + Billentyűzet auto. megjelenítése Elrejtés Állapotsor megjelenítése fent Átnevezés @@ -55,13 +55,15 @@ \n\nKöszönjük! Üdv, ezt az üzenetet nem fogja újra látni. \n\nHa tetszik az Olauncher, kérjük, adjon nekünk 5 csillagos értékelést! Ez segít javítani a helyezésünket, és nagyon boldoggá tesz minket. Köszönjük! - Sziasztok, segítségre van szükségünk! Tavaly átléptük az egymillió letöltést. Idén egy millióval többet szeretnénk elérni, de egyedül nem tudjuk megtenni. - \n\nLenne szíves megosztani az Olaunchert a barátaival, kérem? Köszönöm és további szép napot! - Üdv, a billentyűzet a leggyorsabb módja a alkalmazások megtalálásához és elindításához az Olauncherben. Kérhetjük, hogy hagyja bekapcsolva még néhány napig, és utána döntsön. + + + Az Ön havi emlékeztetője - használja Ön a telefonját, és ne a telefonja Önt! Csak így tovább! Nagyszerűen csinálja! + \n\nHa van egy kis ideje, kérjük, ossza meg másokkal is az Olauncher-t. Az Olauncher-nek szüksége van emberekre. De ami még fontosabb, az embereknek szüksége van az Olauncher-re.. + Üdv, a billentyűzet a leggyorsabb módja az alkalmazások megtalálásához és elindításához az Olauncherben. Megkérhetjük, hogy hagyja bekapcsolva még néhány napig, és utána döntsön? \n\nA választás mindig az Öné. Ha időkorlátokat szeretne beállítani bizonyos alkalmazásokhoz, az Android Digital Wellbeing funkciója segíthet ebben. \n\nKeresse meg a Digitális jólét elemet a telefon beállításai között, és engedélyezze. - A dupla koppintás zárolásához szükséges a hozzáférhetőségi engedély. Az Olauncher által ezen a szolgáltatáson keresztül megszerzett adatok nem hagyják el a készüléket. + A hozzáférhetőségi engedély szükséges a dupla koppintás általi zároláshoz. Az Olauncher által ezen a szolgáltatáson keresztül megszerzett adatok nem hagyják el a készüléket. Támogasson minket ingyenesen az Amazon affiliate linkünk használatával. Minden alkalommal, amikor vásárol valamit a linkünket használva, egy kis jutalékot kapunk. Kérjük, mentse el a linket, és használja fel, amikor csak online vásárol. \n\nKöszönjük! @@ -77,7 +79,7 @@ Csak dátum Alsó: Be Alsó: Ki - Kérjük állítsa be az Olauncher alkalmazást alapértelmezett indítóként + Kérjük, állítsa be az Olauncher-t alapértelmezett indítóként Affiliate Tipp: Kezdjen el gépelni az alkalmazás ÁTNEVEZÉSE opcióhoz Megjegyzés: A rejtett alkalmazások megtalálásához érintse meg az "Olauncher" elemet ennek a beállítás oldalnak a tetején. @@ -119,11 +121,13 @@ Rejtett alkalmazások Mutasd! Rejtsd el! - Ön használja a telefonját, vagy a telefona használja Önt? + Ön használja a telefonját, vagy a telefonja használja Önt? Az Olauncher-ről - Tudj meg többet - Tudtad? + Digitális jóllét + Tudjon meg többet + Tudta? Hagyjon véleményt Az Olauncher teljesen ingyenes és mindig is ingyenes lesz. Nincsenek hirdetései. Nem gyűjt adatokat. A legfontosabb, hogy segít csökkenteni a képernyő előtt töltött időt és egészségesebb digitális életet élni. - \n\nÚgy gondoljuk, hogy a minimális indítóra váltás kiváló döntés. Bár nyilvánvalóan elfogultak vagyunk, reméljük, hogy élvezni fogja az élményt. Nyugodtan oszd meg velünk gondolataidat! + \n\nÚgy gondoljuk, hogy a minimális indítóra váltás kiváló döntés. Bár nyilvánvalóan elfogultak vagyunk, reméljük, hogy élvezni fogja az élményt. Nyugodtan ossza meg velünk gondolatait! + Az igazítás megváltozott ✅ \ No newline at end of file -- cgit v1.2.1 From d974234ec04f4b5c4219c9154d43b6dca12d83c4 Mon Sep 17 00:00:00 2001 From: J-cart Date: Wed, 17 Jul 2024 12:46:13 +0100 Subject: (feat) app drawer character list --- app/src/main/java/app/olauncher/MainViewModel.kt | 18 +++ .../app/olauncher/data/DrawerCharacterModel.kt | 7 ++ .../java/app/olauncher/helper/AppFilterHelper.kt | 7 ++ .../main/java/app/olauncher/ui/AppDrawerAdapter.kt | 6 +- .../java/app/olauncher/ui/AppDrawerFragment.kt | 127 +++++++++++++++++++-- .../app/olauncher/ui/DrawerCharacterAdapter.kt | 69 +++++++++++ .../main/res/layout-land/fragment_app_drawer.xml | 17 +++ app/src/main/res/layout/drawer_alphabet.xml | 24 ++++ app/src/main/res/layout/fragment_app_drawer.xml | 16 +++ 9 files changed, 282 insertions(+), 9 deletions(-) create mode 100644 app/src/main/java/app/olauncher/data/DrawerCharacterModel.kt create mode 100644 app/src/main/java/app/olauncher/helper/AppFilterHelper.kt create mode 100644 app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt create mode 100644 app/src/main/res/layout/drawer_alphabet.xml (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/MainViewModel.kt b/app/src/main/java/app/olauncher/MainViewModel.kt index a06a35e..4c5fafe 100644 --- a/app/src/main/java/app/olauncher/MainViewModel.kt +++ b/app/src/main/java/app/olauncher/MainViewModel.kt @@ -16,6 +16,7 @@ import androidx.work.PeriodicWorkRequestBuilder import androidx.work.WorkManager import app.olauncher.data.AppModel import app.olauncher.data.Constants +import app.olauncher.data.DrawerCharacterModel import app.olauncher.data.Prefs import app.olauncher.helper.SingleLiveEvent import app.olauncher.helper.WallpaperWorker @@ -34,6 +35,7 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { val toggleDateTime = MutableLiveData() val updateSwipeApps = MutableLiveData() val appList = MutableLiveData?>() + val drawerCharacterList = MutableLiveData>() val hiddenApps = MutableLiveData?>() val isOlauncherDefault = MutableLiveData() val launcherResetFailed = MutableLiveData() @@ -243,4 +245,20 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { prefs.homeAlignment = gravity homeAppAlignment.value = prefs.homeAlignment } + + fun updateDrawerCharacterList(characters:List){ + drawerCharacterList.value = characters + } + + fun updateRangeDrawerCharacterList(char:String){ + val charRegex = Regex("[0-9\\\\$&+,:;=?@#|/'<>.^*()%!-]") + val characters = drawerCharacterList.value ?: emptyList() + if (characters.isNotEmpty()){ + val checkAndReplaceIfNum = if (charRegex.matches(char)) "#" else char + val updatedCharacters = + characters.map { DrawerCharacterModel(it.character, it.character.equals(checkAndReplaceIfNum,true)) } + + drawerCharacterList.value = updatedCharacters + } + } } \ No newline at end of file diff --git a/app/src/main/java/app/olauncher/data/DrawerCharacterModel.kt b/app/src/main/java/app/olauncher/data/DrawerCharacterModel.kt new file mode 100644 index 0000000..fa95700 --- /dev/null +++ b/app/src/main/java/app/olauncher/data/DrawerCharacterModel.kt @@ -0,0 +1,7 @@ +package app.olauncher.data + +data class DrawerCharacterModel( + val character: String = "", + val inRange: Boolean = false, + +) \ No newline at end of file diff --git a/app/src/main/java/app/olauncher/helper/AppFilterHelper.kt b/app/src/main/java/app/olauncher/helper/AppFilterHelper.kt new file mode 100644 index 0000000..271e96e --- /dev/null +++ b/app/src/main/java/app/olauncher/helper/AppFilterHelper.kt @@ -0,0 +1,7 @@ +package app.olauncher.helper + +import app.olauncher.data.AppModel + +interface AppFilterHelper { + fun onAppFiltered(items:List) +} \ No newline at end of file diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt b/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt index 55dd973..47d7352 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt @@ -18,6 +18,7 @@ import app.olauncher.R import app.olauncher.data.AppModel import app.olauncher.data.Constants import app.olauncher.databinding.AdapterAppDrawerBinding +import app.olauncher.helper.AppFilterHelper import app.olauncher.helper.hideKeyboard import app.olauncher.helper.isSystemApp import app.olauncher.helper.showKeyboard @@ -25,6 +26,7 @@ import java.text.Normalizer class AppDrawerAdapter( private var flag: Int, + private val appFilterHelper: AppFilterHelper, private val appLabelGravity: Int, private val appClickListener: (AppModel) -> Unit, private val appInfoListener: (AppModel) -> Unit, @@ -97,7 +99,9 @@ class AppDrawerAdapter( @Suppress("UNCHECKED_CAST") override fun publishResults(constraint: CharSequence?, results: FilterResults?) { results?.values?.let { - appFilteredList = it as MutableList + val items = it as MutableList + appFilteredList = items + appFilterHelper.onAppFiltered(items.toList()) submitList(appFilteredList) { autoLaunch() } diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt index b6a766a..07aee26 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt @@ -1,12 +1,15 @@ package app.olauncher.ui import android.os.Bundle +import android.view.Gravity import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.view.animation.AnimationUtils +import android.widget.FrameLayout import android.widget.TextView import androidx.appcompat.widget.SearchView +import androidx.core.view.isVisible import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.navigation.fragment.findNavController @@ -15,9 +18,12 @@ import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView.Recycler import app.olauncher.MainViewModel import app.olauncher.R +import app.olauncher.data.AppModel import app.olauncher.data.Constants +import app.olauncher.data.DrawerCharacterModel import app.olauncher.data.Prefs import app.olauncher.databinding.FragmentAppDrawerBinding +import app.olauncher.helper.AppFilterHelper import app.olauncher.helper.hideKeyboard import app.olauncher.helper.isEinkDisplay import app.olauncher.helper.isSystemApp @@ -34,6 +40,8 @@ class AppDrawerFragment : Fragment() { private lateinit var prefs: Prefs private lateinit var adapter: AppDrawerAdapter + private lateinit var linearLayoutManager: LinearLayoutManager + private lateinit var drawerCharacterAdapter: DrawerCharacterAdapter private var flag = Constants.FLAG_LAUNCH_APP private var canRename = false @@ -42,7 +50,11 @@ class AppDrawerFragment : Fragment() { private var _binding: FragmentAppDrawerBinding? = null private val binding get() = _binding!! - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { _binding = FragmentAppDrawerBinding.inflate(inflater, container, false) return binding.root } @@ -61,7 +73,26 @@ class AppDrawerFragment : Fragment() { initClickListeners() } + private fun setAppDrawerMargins(center: Boolean) { + val centerValue = if (center) 5 else 48 + + val rv = binding.recyclerView + val params = rv.layoutParams as FrameLayout.LayoutParams + val scale = resources.displayMetrics.density + val marginTop = (180 * scale).toInt() + val marginBottom = (24 * scale).toInt() + val marginRight = (centerValue * scale).toInt() + params.setMargins(0, marginTop, marginRight, marginBottom) + rv.layoutParams = params + } + + private fun initViews() { + binding.alphabetRecyclerView.isVisible = prefs.autoShowKeyboard.not() + + setAppDrawerMargins(prefs.appLabelAlignment == Gravity.CENTER) + + if (flag == Constants.FLAG_HIDDEN_APPS) binding.search.queryHint = getString(R.string.hidden_apps) else if (flag in Constants.FLAG_SET_HOME_APP_1..Constants.FLAG_SET_CALENDAR_APP) @@ -101,8 +132,17 @@ class AppDrawerFragment : Fragment() { } private fun initAdapter() { + + val appFilterHelper = object : AppFilterHelper { + override fun onAppFiltered(items: List) { + submitDrawerCharacters(items) + } + } + drawerCharacterAdapter = DrawerCharacterAdapter() + adapter = AppDrawerAdapter( flag, + appFilterHelper, prefs.appLabelAlignment, appClickListener = { if (it.appPackage.isEmpty()) @@ -158,8 +198,12 @@ class AppDrawerFragment : Fragment() { } ) - val linearLayoutManager: LinearLayoutManager = object : LinearLayoutManager(requireContext()) { - override fun scrollVerticallyBy(dx: Int, recycler: Recycler, state: RecyclerView.State): Int { + linearLayoutManager = object : LinearLayoutManager(requireContext()) { + override fun scrollVerticallyBy( + dx: Int, + recycler: Recycler, + state: RecyclerView.State + ): Int { val scrollRange = super.scrollVerticallyBy(dx, recycler, state) val overScroll = dx - scrollRange if (overScroll < -10 && binding.recyclerView.scrollState == RecyclerView.SCROLL_STATE_DRAGGING) @@ -174,6 +218,7 @@ class AppDrawerFragment : Fragment() { if (requireContext().isEinkDisplay().not()) binding.recyclerView.layoutAnimation = AnimationUtils.loadLayoutAnimation(requireContext(), R.anim.layout_anim_from_bottom) + binding.alphabetRecyclerView.adapter = drawerCharacterAdapter } private fun initObservers() { @@ -183,17 +228,26 @@ class AppDrawerFragment : Fragment() { binding.appDrawerTip.isSelected = true } } - if (flag == Constants.FLAG_HIDDEN_APPS) + if (flag == Constants.FLAG_HIDDEN_APPS) { viewModel.hiddenApps.observe(viewLifecycleOwner) { - it?.let { adapter.setAppList(it.toMutableList()) } - } - else - viewModel.appList.observe(viewLifecycleOwner) { it?.let { adapter.setAppList(it.toMutableList()) + submitDrawerCharacters(it) + } + } + } else { + viewModel.appList.observe(viewLifecycleOwner) { + it?.let { appModels -> + adapter.setAppList(appModels.toMutableList()) adapter.filter.filter(binding.search.query) + submitDrawerCharacters(appModels) } } + } + + viewModel.drawerCharacterList.observe(viewLifecycleOwner) { characters -> + drawerCharacterAdapter.submitList(characters) + } } private fun initClickListeners() { @@ -250,6 +304,14 @@ class AppDrawerFragment : Fragment() { } } } + + override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { + super.onScrolled(recyclerView, dx, dy) + val visiblePosition = linearLayoutManager.findFirstVisibleItemPosition() + val position = if (visiblePosition >= 0) visiblePosition else 0 + val item = adapter.currentList[position] + viewModel.updateRangeDrawerCharacterList(item.appLabel.first().toString()) + } } } @@ -259,6 +321,55 @@ class AppDrawerFragment : Fragment() { viewModel.checkForMessages.call() } + private fun submitDrawerCharacters(drawerItems: List) { + if (drawerItems.isEmpty()) { + viewModel.updateDrawerCharacterList(emptyList()) + return + } + + + val charRegex = Regex("[0-9\\\\$&+,:;=?@#|/'<>.^*()%!-]") + val emojiRegex = Regex("\\p{So}+") + val emojiRegex2 = Regex("[\uD800-\uDBFF\uDC00-\uDFFF]+") + + val firstVisibleItemPosition = + linearLayoutManager.findFirstCompletelyVisibleItemPosition() + + val position = + if (firstVisibleItemPosition >= 0) firstVisibleItemPosition else 0 + val firstVisibleItem = + drawerItems[position] + + + val drawerCharacters = + drawerItems.filter { it.appLabel.isNotEmpty() }.map { char -> + val firstLetter = char.appLabel.first().toString() + val regexMatch = charRegex.matches(firstLetter) || emojiRegex.matches( + char.appLabel.first().toString() + ) || emojiRegex2.matches(char.appLabel.first().toString()) + + if (regexMatch) "#" else firstLetter.uppercase() + }.toSet() + .map { str -> + DrawerCharacterModel(str, str.equals(firstVisibleItem.appLabel.first().toString(),true)) + } + + viewModel.updateDrawerCharacterList(drawerCharacters) + + drawerCharacterAdapter.adapterClick { char -> + + val matchIndex = if (char == "#") { + 0 + } else { + val match = drawerItems.find { char.equals(it.appLabel.first().toString(),true) } + drawerItems.indexOf(match) + } + linearLayoutManager.scrollToPositionWithOffset(matchIndex, 0) + + } + } + + override fun onStart() { super.onStart() binding.search.showKeyboard(prefs.autoShowKeyboard) diff --git a/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt b/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt new file mode 100644 index 0000000..d5e8f33 --- /dev/null +++ b/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt @@ -0,0 +1,69 @@ +package app.olauncher.ui + +import android.util.TypedValue +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.DiffUtil +import androidx.recyclerview.widget.ListAdapter +import androidx.recyclerview.widget.RecyclerView +import app.olauncher.R +import app.olauncher.data.DrawerCharacterModel +import app.olauncher.databinding.DrawerAlphabetBinding + +class DrawerCharacterAdapter : + ListAdapter(diffObject) { + inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) { + private val binding = DrawerAlphabetBinding.bind(view) + fun bind(character: DrawerCharacterModel) { + + if (character.inRange) { + binding.character.setTextColor(itemView.context.getColor(R.color.design_default_color_secondary)) + }else{ + val typedValue = TypedValue() + itemView.context.theme.resolveAttribute(R.attr.primaryColor, typedValue, true) + binding.character.setTextColor(itemView.context.getColor(typedValue.resourceId)) + } + + binding.character.text = character.character + binding.root.setOnClickListener { + listener?.let { it(character.character) } + } + + } + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + val view = + LayoutInflater.from(parent.context).inflate(R.layout.drawer_alphabet, parent, false) + return ViewHolder(view) + } + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + val pos = getItem(position) + holder.bind(pos) + } + + companion object { + val diffObject = object : DiffUtil.ItemCallback() { + override fun areItemsTheSame( + oldItem: DrawerCharacterModel, + newItem: DrawerCharacterModel + ): Boolean { + return oldItem.character == newItem.character + } + + override fun areContentsTheSame( + oldItem: DrawerCharacterModel, + newItem: DrawerCharacterModel + ): Boolean { + return oldItem.hashCode() == newItem.hashCode() + } + } + } + + private var listener: ((String) -> Unit)? = null + fun adapterClick(listener: (String) -> Unit) { + this.listener = listener + } +} \ No newline at end of file diff --git a/app/src/main/res/layout-land/fragment_app_drawer.xml b/app/src/main/res/layout-land/fragment_app_drawer.xml index 4749e24..dd8de35 100644 --- a/app/src/main/res/layout-land/fragment_app_drawer.xml +++ b/app/src/main/res/layout-land/fragment_app_drawer.xml @@ -3,6 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" + xmlns:tools="http://schemas.android.com/tools" android:animateLayoutChanges="true" android:background="?attr/primaryShadeDarkColor"> @@ -74,4 +75,20 @@ android:requiresFadingEdge="vertical" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" /> + + \ No newline at end of file diff --git a/app/src/main/res/layout/drawer_alphabet.xml b/app/src/main/res/layout/drawer_alphabet.xml new file mode 100644 index 0000000..147753e --- /dev/null +++ b/app/src/main/res/layout/drawer_alphabet.xml @@ -0,0 +1,24 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_app_drawer.xml b/app/src/main/res/layout/fragment_app_drawer.xml index 81e4422..b80909e 100644 --- a/app/src/main/res/layout/fragment_app_drawer.xml +++ b/app/src/main/res/layout/fragment_app_drawer.xml @@ -3,6 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" + xmlns:tools="http://schemas.android.com/tools" android:animateLayoutChanges="true" android:background="?attr/primaryShadeDarkColor"> @@ -72,4 +73,19 @@ android:fadingEdgeLength="24dp" android:requiresFadingEdge="vertical" /> + + \ No newline at end of file -- cgit v1.2.1 From da5e76e3c696ce56e30d0749ab6d0149899e6981 Mon Sep 17 00:00:00 2001 From: J-cart Date: Thu, 18 Jul 2024 10:49:38 +0100 Subject: go to app when scrolling through character list... --- .../java/app/olauncher/ui/AppDrawerFragment.kt | 26 ++++++----- .../app/olauncher/ui/DrawerCharacterAdapter.kt | 51 +++++++++++++++++----- app/src/main/res/layout/drawer_alphabet_pop_up.xml | 26 +++++++++++ 3 files changed, 80 insertions(+), 23 deletions(-) create mode 100644 app/src/main/res/layout/drawer_alphabet_pop_up.xml (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt index 07aee26..5320912 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt @@ -211,6 +211,21 @@ class AppDrawerFragment : Fragment() { return scrollRange } } + binding.alphabetRecyclerView.addOnItemTouchListener( + DrawerCharacterAdapter.CharacterTouchListener(drawerCharacterAdapter) { char -> + viewModel.updateRangeDrawerCharacterList(char) + val matchIndex = if (char == "#") { + 0 + } else { + val match = adapter.currentList.find { + char.equals(it.appLabel.first().toString(), true) + } + adapter.currentList.indexOf(match) + } + linearLayoutManager.scrollToPositionWithOffset(matchIndex, 0) + }) + + binding.recyclerView.layoutManager = linearLayoutManager binding.recyclerView.adapter = adapter binding.recyclerView.addOnScrollListener(getRecyclerViewOnScrollListener()) @@ -356,17 +371,6 @@ class AppDrawerFragment : Fragment() { viewModel.updateDrawerCharacterList(drawerCharacters) - drawerCharacterAdapter.adapterClick { char -> - - val matchIndex = if (char == "#") { - 0 - } else { - val match = drawerItems.find { char.equals(it.appLabel.first().toString(),true) } - drawerItems.indexOf(match) - } - linearLayoutManager.scrollToPositionWithOffset(matchIndex, 0) - - } } diff --git a/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt b/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt index d5e8f33..124efc3 100644 --- a/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt +++ b/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt @@ -2,33 +2,33 @@ package app.olauncher.ui import android.util.TypedValue import android.view.LayoutInflater +import android.view.MotionEvent import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView +import androidx.recyclerview.widget.RecyclerView.OnItemTouchListener import app.olauncher.R import app.olauncher.data.DrawerCharacterModel import app.olauncher.databinding.DrawerAlphabetBinding + class DrawerCharacterAdapter : ListAdapter(diffObject) { inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) { private val binding = DrawerAlphabetBinding.bind(view) fun bind(character: DrawerCharacterModel) { - if (character.inRange) { + if (character.inRange) { binding.character.setTextColor(itemView.context.getColor(R.color.design_default_color_secondary)) - }else{ - val typedValue = TypedValue() - itemView.context.theme.resolveAttribute(R.attr.primaryColor, typedValue, true) - binding.character.setTextColor(itemView.context.getColor(typedValue.resourceId)) + } else { + val typedValue = TypedValue() + itemView.context.theme.resolveAttribute(R.attr.primaryColor, typedValue, true) + binding.character.setTextColor(itemView.context.getColor(typedValue.resourceId)) } binding.character.text = character.character - binding.root.setOnClickListener { - listener?.let { it(character.character) } - } } } @@ -62,8 +62,35 @@ class DrawerCharacterAdapter : } } - private var listener: ((String) -> Unit)? = null - fun adapterClick(listener: (String) -> Unit) { - this.listener = listener + + class CharacterTouchListener( + private val adapter: DrawerCharacterAdapter, + private val clickListener: ((String) -> Unit)? + ) : + OnItemTouchListener { + + override fun onInterceptTouchEvent(rv: RecyclerView, e: MotionEvent): Boolean { + val child = rv.findChildViewUnder(e.x, e.y) + if (child != null) { + val itemPosition = rv.getChildAdapterPosition(child) + clickListener?.let { it(adapter.currentList[itemPosition].character) } + } + + return true + } + + override fun onTouchEvent(rv: RecyclerView, e: MotionEvent) { + val child = rv.findChildViewUnder(e.x, e.y) + if (child != null) { + val itemPosition = rv.getChildAdapterPosition(child) + clickListener?.let { it(adapter.currentList[itemPosition].character) } + } + } + + override fun onRequestDisallowInterceptTouchEvent(disallowIntercept: Boolean) { + } + } -} \ No newline at end of file + +} + diff --git a/app/src/main/res/layout/drawer_alphabet_pop_up.xml b/app/src/main/res/layout/drawer_alphabet_pop_up.xml new file mode 100644 index 0000000..df4f452 --- /dev/null +++ b/app/src/main/res/layout/drawer_alphabet_pop_up.xml @@ -0,0 +1,26 @@ + + + + + + \ No newline at end of file -- cgit v1.2.1 From 2c78578639fb058be0ba862c9fb052f22f7d66ee Mon Sep 17 00:00:00 2001 From: J-cart Date: Wed, 24 Jul 2024 20:34:35 +0100 Subject: scroll position indicator ... --- app/src/main/java/app/olauncher/MainViewModel.kt | 29 ++++++++++++++++++-- app/src/main/java/app/olauncher/data/Constants.kt | 5 ++++ .../app/olauncher/data/DrawerCharacterModel.kt | 1 + .../java/app/olauncher/ui/AppDrawerFragment.kt | 28 ++++++++++++------- .../app/olauncher/ui/DrawerCharacterAdapter.kt | 31 +++++++++++++++++++--- app/src/main/res/layout/drawer_alphabet.xml | 27 ++++++++++++++++--- app/src/main/res/layout/drawer_alphabet_pop_up.xml | 26 ------------------ 7 files changed, 102 insertions(+), 45 deletions(-) delete mode 100644 app/src/main/res/layout/drawer_alphabet_pop_up.xml (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/MainViewModel.kt b/app/src/main/java/app/olauncher/MainViewModel.kt index 4c5fafe..9b56772 100644 --- a/app/src/main/java/app/olauncher/MainViewModel.kt +++ b/app/src/main/java/app/olauncher/MainViewModel.kt @@ -16,6 +16,7 @@ import androidx.work.PeriodicWorkRequestBuilder import androidx.work.WorkManager import app.olauncher.data.AppModel import app.olauncher.data.Constants +import app.olauncher.data.Constants.CharacterIndicator import app.olauncher.data.DrawerCharacterModel import app.olauncher.data.Prefs import app.olauncher.helper.SingleLiveEvent @@ -250,15 +251,39 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { drawerCharacterList.value = characters } - fun updateRangeDrawerCharacterList(char:String){ + fun updateRangeDrawerCharacterList(char:String,mode:Int){ val charRegex = Regex("[0-9\\\\$&+,:;=?@#|/'<>.^*()%!-]") val characters = drawerCharacterList.value ?: emptyList() if (characters.isNotEmpty()){ val checkAndReplaceIfNum = if (charRegex.matches(char)) "#" else char + val updatedCharacters = - characters.map { DrawerCharacterModel(it.character, it.character.equals(checkAndReplaceIfNum,true)) } + characters.map { + val showIndicator = + if (mode == CharacterIndicator.SHOW) it.character.equals(checkAndReplaceIfNum, true) else false + DrawerCharacterModel( + it.character, + it.character.equals(checkAndReplaceIfNum, true), + showIndicator + ) + } drawerCharacterList.value = updatedCharacters } } + + fun updateRangeIndicator(){ + val currentList = (drawerCharacterList.value?.toMutableList() ?: mutableListOf()) + + if (currentList.isNotEmpty()){ + val currentRangeChar = currentList.find { it.inRange } + currentRangeChar?.let { + val index = currentList.indexOf(it) + val newValue = it.copy(showIndicator = false) + currentList[index] = newValue + drawerCharacterList.value = currentList + } + + } + } } \ No newline at end of file diff --git a/app/src/main/java/app/olauncher/data/Constants.kt b/app/src/main/java/app/olauncher/data/Constants.kt index 10509a9..30aae8f 100644 --- a/app/src/main/java/app/olauncher/data/Constants.kt +++ b/app/src/main/java/app/olauncher/data/Constants.kt @@ -52,6 +52,11 @@ object Constants { const val SEVEN = 1.3f } + object CharacterIndicator{ + const val SHOW = 102 + const val HIDE = 101 + } + const val WALL_TYPE_LIGHT = "light" const val WALL_TYPE_DARK = "dark" diff --git a/app/src/main/java/app/olauncher/data/DrawerCharacterModel.kt b/app/src/main/java/app/olauncher/data/DrawerCharacterModel.kt index fa95700..0bc4ae3 100644 --- a/app/src/main/java/app/olauncher/data/DrawerCharacterModel.kt +++ b/app/src/main/java/app/olauncher/data/DrawerCharacterModel.kt @@ -3,5 +3,6 @@ package app.olauncher.data data class DrawerCharacterModel( val character: String = "", val inRange: Boolean = false, + val showIndicator: Boolean = false, ) \ No newline at end of file diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt index 5320912..b01e395 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt @@ -20,6 +20,7 @@ import app.olauncher.MainViewModel import app.olauncher.R import app.olauncher.data.AppModel import app.olauncher.data.Constants +import app.olauncher.data.Constants.CharacterIndicator import app.olauncher.data.DrawerCharacterModel import app.olauncher.data.Prefs import app.olauncher.databinding.FragmentAppDrawerBinding @@ -212,17 +213,24 @@ class AppDrawerFragment : Fragment() { } } binding.alphabetRecyclerView.addOnItemTouchListener( - DrawerCharacterAdapter.CharacterTouchListener(drawerCharacterAdapter) { char -> - viewModel.updateRangeDrawerCharacterList(char) - val matchIndex = if (char == "#") { - 0 - } else { - val match = adapter.currentList.find { - char.equals(it.appLabel.first().toString(), true) + DrawerCharacterAdapter.CharacterTouchListener(drawerCharacterAdapter) { char,mode -> + if (mode != CharacterIndicator.HIDE) { + viewModel.updateRangeDrawerCharacterList(char,mode) + val matchIndex = if (char == "#") { + 0 + } else { + val match = adapter.currentList.find { + char.equals(it.appLabel.first().toString(), true) + } + adapter.currentList.indexOf(match) } - adapter.currentList.indexOf(match) + linearLayoutManager.scrollToPositionWithOffset(matchIndex, 0) + } + + if (mode == CharacterIndicator.HIDE) { + viewModel.updateRangeIndicator() } - linearLayoutManager.scrollToPositionWithOffset(matchIndex, 0) + }) @@ -325,7 +333,7 @@ class AppDrawerFragment : Fragment() { val visiblePosition = linearLayoutManager.findFirstVisibleItemPosition() val position = if (visiblePosition >= 0) visiblePosition else 0 val item = adapter.currentList[position] - viewModel.updateRangeDrawerCharacterList(item.appLabel.first().toString()) + viewModel.updateRangeDrawerCharacterList(item.appLabel.first().toString(),101) } } } diff --git a/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt b/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt index 124efc3..4c0bf0b 100644 --- a/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt +++ b/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt @@ -5,11 +5,14 @@ import android.view.LayoutInflater import android.view.MotionEvent 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 androidx.recyclerview.widget.RecyclerView.OnItemTouchListener import app.olauncher.R +import app.olauncher.data.Constants +import app.olauncher.data.Constants.CharacterIndicator import app.olauncher.data.DrawerCharacterModel import app.olauncher.databinding.DrawerAlphabetBinding @@ -28,7 +31,14 @@ class DrawerCharacterAdapter : binding.character.setTextColor(itemView.context.getColor(typedValue.resourceId)) } + if (character.showIndicator) { + binding.characterIndicator.visibility = View.VISIBLE + } else { + binding.characterIndicator.visibility = View.INVISIBLE + } + binding.character.text = character.character + binding.characterIndicator.text = character.character } } @@ -65,17 +75,26 @@ class DrawerCharacterAdapter : class CharacterTouchListener( private val adapter: DrawerCharacterAdapter, - private val clickListener: ((String) -> Unit)? + private val clickListener: ((String,Int) -> Unit)? ) : OnItemTouchListener { override fun onInterceptTouchEvent(rv: RecyclerView, e: MotionEvent): Boolean { val child = rv.findChildViewUnder(e.x, e.y) + if (child != null) { val itemPosition = rv.getChildAdapterPosition(child) - clickListener?.let { it(adapter.currentList[itemPosition].character) } + clickListener?.let { it(adapter.currentList[itemPosition].character, + CharacterIndicator.SHOW) } + if (e.action == MotionEvent.ACTION_UP){ + child.postDelayed({clickListener?.let { it("", CharacterIndicator.HIDE) }},1000L) + + } } + + + return true } @@ -83,8 +102,14 @@ class DrawerCharacterAdapter : val child = rv.findChildViewUnder(e.x, e.y) if (child != null) { val itemPosition = rv.getChildAdapterPosition(child) - clickListener?.let { it(adapter.currentList[itemPosition].character) } + clickListener?.let { it(adapter.currentList[itemPosition].character,102) } + if (e.action == MotionEvent.ACTION_UP){ +// clickListener?.let { it("",101) } + child.postDelayed({clickListener?.let { it("", CharacterIndicator.HIDE) }},1000L) + } + } + } override fun onRequestDisallowInterceptTouchEvent(disallowIntercept: Boolean) { diff --git a/app/src/main/res/layout/drawer_alphabet.xml b/app/src/main/res/layout/drawer_alphabet.xml index 147753e..cd1a841 100644 --- a/app/src/main/res/layout/drawer_alphabet.xml +++ b/app/src/main/res/layout/drawer_alphabet.xml @@ -5,20 +5,39 @@ android:layout_width="wrap_content" android:layout_height="wrap_content"> + + + \ No newline at end of file diff --git a/app/src/main/res/layout/drawer_alphabet_pop_up.xml b/app/src/main/res/layout/drawer_alphabet_pop_up.xml deleted file mode 100644 index df4f452..0000000 --- a/app/src/main/res/layout/drawer_alphabet_pop_up.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - \ No newline at end of file -- cgit v1.2.1 From 96f60eac9c92b093cb3b76461db6839410db13d5 Mon Sep 17 00:00:00 2001 From: J-cart Date: Thu, 25 Jul 2024 20:34:57 +0100 Subject: scroll position indicator (better alt) ... --- app/src/main/java/app/olauncher/MainViewModel.kt | 22 +--------- .../app/olauncher/data/DrawerCharacterModel.kt | 4 +- .../java/app/olauncher/ui/AppDrawerFragment.kt | 33 +++++++++++---- .../app/olauncher/ui/DrawerCharacterAdapter.kt | 49 +++++++++------------- .../main/res/layout-land/fragment_app_drawer.xml | 2 +- app/src/main/res/layout/drawer_alphabet.xml | 30 +++---------- app/src/main/res/layout/fragment_app_drawer.xml | 20 ++++++++- 7 files changed, 71 insertions(+), 89 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/MainViewModel.kt b/app/src/main/java/app/olauncher/MainViewModel.kt index 9b56772..155f3e4 100644 --- a/app/src/main/java/app/olauncher/MainViewModel.kt +++ b/app/src/main/java/app/olauncher/MainViewModel.kt @@ -251,7 +251,7 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { drawerCharacterList.value = characters } - fun updateRangeDrawerCharacterList(char:String,mode:Int){ + fun updateRangeDrawerCharacterList(char:String){ val charRegex = Regex("[0-9\\\\$&+,:;=?@#|/'<>.^*()%!-]") val characters = drawerCharacterList.value ?: emptyList() if (characters.isNotEmpty()){ @@ -259,31 +259,13 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { val updatedCharacters = characters.map { - val showIndicator = - if (mode == CharacterIndicator.SHOW) it.character.equals(checkAndReplaceIfNum, true) else false DrawerCharacterModel( it.character, - it.character.equals(checkAndReplaceIfNum, true), - showIndicator + it.character.equals(checkAndReplaceIfNum, true) ) } drawerCharacterList.value = updatedCharacters } } - - fun updateRangeIndicator(){ - val currentList = (drawerCharacterList.value?.toMutableList() ?: mutableListOf()) - - if (currentList.isNotEmpty()){ - val currentRangeChar = currentList.find { it.inRange } - currentRangeChar?.let { - val index = currentList.indexOf(it) - val newValue = it.copy(showIndicator = false) - currentList[index] = newValue - drawerCharacterList.value = currentList - } - - } - } } \ No newline at end of file diff --git a/app/src/main/java/app/olauncher/data/DrawerCharacterModel.kt b/app/src/main/java/app/olauncher/data/DrawerCharacterModel.kt index 0bc4ae3..565020c 100644 --- a/app/src/main/java/app/olauncher/data/DrawerCharacterModel.kt +++ b/app/src/main/java/app/olauncher/data/DrawerCharacterModel.kt @@ -2,7 +2,5 @@ package app.olauncher.data data class DrawerCharacterModel( val character: String = "", - val inRange: Boolean = false, - val showIndicator: Boolean = false, - + val inRange: Boolean = false ) \ No newline at end of file diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt index b01e395..8746dc3 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt @@ -80,20 +80,29 @@ class AppDrawerFragment : Fragment() { val rv = binding.recyclerView val params = rv.layoutParams as FrameLayout.LayoutParams val scale = resources.displayMetrics.density - val marginTop = (180 * scale).toInt() + val marginTop = (160 * scale).toInt() val marginBottom = (24 * scale).toInt() val marginRight = (centerValue * scale).toInt() params.setMargins(0, marginTop, marginRight, marginBottom) rv.layoutParams = params } + private fun setIndicatorMargins(x:Float,y:Float) { + val indicator = binding.characterIndicator + val params = indicator?.layoutParams as FrameLayout.LayoutParams + val scale = resources.displayMetrics.density + val marginTop = y.toInt() + (158 * scale).toInt() + val marginRight = (32 * scale).toInt() + params.setMargins(x.toInt(), marginTop, marginRight, 0) + indicator.layoutParams = params + } + private fun initViews() { - binding.alphabetRecyclerView.isVisible = prefs.autoShowKeyboard.not() + binding.characterRecyclerView.isVisible = prefs.autoShowKeyboard.not() setAppDrawerMargins(prefs.appLabelAlignment == Gravity.CENTER) - if (flag == Constants.FLAG_HIDDEN_APPS) binding.search.queryHint = getString(R.string.hidden_apps) else if (flag in Constants.FLAG_SET_HOME_APP_1..Constants.FLAG_SET_CALENDAR_APP) @@ -212,10 +221,16 @@ class AppDrawerFragment : Fragment() { return scrollRange } } - binding.alphabetRecyclerView.addOnItemTouchListener( - DrawerCharacterAdapter.CharacterTouchListener(drawerCharacterAdapter) { char,mode -> + binding.characterRecyclerView.addOnItemTouchListener( + DrawerCharacterAdapter.CharacterTouchListener(drawerCharacterAdapter) { char,mode ,pos-> + if (mode != CharacterIndicator.HIDE) { - viewModel.updateRangeDrawerCharacterList(char,mode) + binding.characterIndicator?.let{ + setIndicatorMargins(pos.first,pos.second) + it.text = char + it.isVisible = true + } + viewModel.updateRangeDrawerCharacterList(char) val matchIndex = if (char == "#") { 0 } else { @@ -228,7 +243,7 @@ class AppDrawerFragment : Fragment() { } if (mode == CharacterIndicator.HIDE) { - viewModel.updateRangeIndicator() + binding.characterIndicator?.isVisible = false } }) @@ -241,7 +256,7 @@ class AppDrawerFragment : Fragment() { if (requireContext().isEinkDisplay().not()) binding.recyclerView.layoutAnimation = AnimationUtils.loadLayoutAnimation(requireContext(), R.anim.layout_anim_from_bottom) - binding.alphabetRecyclerView.adapter = drawerCharacterAdapter + binding.characterRecyclerView.adapter = drawerCharacterAdapter } private fun initObservers() { @@ -333,7 +348,7 @@ class AppDrawerFragment : Fragment() { val visiblePosition = linearLayoutManager.findFirstVisibleItemPosition() val position = if (visiblePosition >= 0) visiblePosition else 0 val item = adapter.currentList[position] - viewModel.updateRangeDrawerCharacterList(item.appLabel.first().toString(),101) + viewModel.updateRangeDrawerCharacterList(item.appLabel.first().toString()) } } } diff --git a/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt b/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt index 4c0bf0b..c99f6ae 100644 --- a/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt +++ b/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt @@ -5,13 +5,11 @@ import android.view.LayoutInflater import android.view.MotionEvent 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 androidx.recyclerview.widget.RecyclerView.OnItemTouchListener import app.olauncher.R -import app.olauncher.data.Constants import app.olauncher.data.Constants.CharacterIndicator import app.olauncher.data.DrawerCharacterModel import app.olauncher.databinding.DrawerAlphabetBinding @@ -31,14 +29,8 @@ class DrawerCharacterAdapter : binding.character.setTextColor(itemView.context.getColor(typedValue.resourceId)) } - if (character.showIndicator) { - binding.characterIndicator.visibility = View.VISIBLE - } else { - binding.characterIndicator.visibility = View.INVISIBLE - } binding.character.text = character.character - binding.characterIndicator.text = character.character } } @@ -75,46 +67,43 @@ class DrawerCharacterAdapter : class CharacterTouchListener( private val adapter: DrawerCharacterAdapter, - private val clickListener: ((String,Int) -> Unit)? + private val clickListener: ((String,Int,Pair) -> Unit)? ) : OnItemTouchListener { override fun onInterceptTouchEvent(rv: RecyclerView, e: MotionEvent): Boolean { - val child = rv.findChildViewUnder(e.x, e.y) - - if (child != null) { - val itemPosition = rv.getChildAdapterPosition(child) - clickListener?.let { it(adapter.currentList[itemPosition].character, - CharacterIndicator.SHOW) } - if (e.action == MotionEvent.ACTION_UP){ - child.postDelayed({clickListener?.let { it("", CharacterIndicator.HIDE) }},1000L) - - } - } - - - - + updateIndicatorView(rv, e) return true } override fun onTouchEvent(rv: RecyclerView, e: MotionEvent) { + updateIndicatorView(rv, e) + } + + override fun onRequestDisallowInterceptTouchEvent(disallowIntercept: Boolean) { + } + + private fun updateIndicatorView(rv: RecyclerView,e:MotionEvent){ val child = rv.findChildViewUnder(e.x, e.y) if (child != null) { + val view = rv.getChildViewHolder(child).itemView val itemPosition = rv.getChildAdapterPosition(child) - clickListener?.let { it(adapter.currentList[itemPosition].character,102) } + + clickListener?.let { + it( + adapter.currentList[itemPosition].character, + CharacterIndicator.SHOW, + Pair(view.x, view.y) + ) + } if (e.action == MotionEvent.ACTION_UP){ -// clickListener?.let { it("",101) } - child.postDelayed({clickListener?.let { it("", CharacterIndicator.HIDE) }},1000L) + child.postDelayed({clickListener?.let { it("", CharacterIndicator.HIDE,Pair(e.x,e.y)) }},1000L) } } } - override fun onRequestDisallowInterceptTouchEvent(disallowIntercept: Boolean) { - } - } } diff --git a/app/src/main/res/layout-land/fragment_app_drawer.xml b/app/src/main/res/layout-land/fragment_app_drawer.xml index dd8de35..d8cada4 100644 --- a/app/src/main/res/layout-land/fragment_app_drawer.xml +++ b/app/src/main/res/layout-land/fragment_app_drawer.xml @@ -76,7 +76,7 @@ app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" /> - - - - + /> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_app_drawer.xml b/app/src/main/res/layout/fragment_app_drawer.xml index b80909e..cb2ddd8 100644 --- a/app/src/main/res/layout/fragment_app_drawer.xml +++ b/app/src/main/res/layout/fragment_app_drawer.xml @@ -74,7 +74,7 @@ android:requiresFadingEdge="vertical" /> + + \ No newline at end of file -- cgit v1.2.1 From 720277e871d38228e1f23de16715e35233747e89 Mon Sep 17 00:00:00 2001 From: J-cart Date: Fri, 26 Jul 2024 13:04:58 +0100 Subject: scroll position indicator visibility timer fix... --- app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt | 9 ++++++++- app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt | 12 ++++++------ app/src/main/res/layout/fragment_app_drawer.xml | 2 +- 3 files changed, 15 insertions(+), 8 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt index 8746dc3..5c0a20e 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt @@ -12,6 +12,7 @@ import androidx.appcompat.widget.SearchView import androidx.core.view.isVisible import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels +import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView @@ -35,6 +36,8 @@ import app.olauncher.helper.searchOnPlayStore import app.olauncher.helper.showKeyboard import app.olauncher.helper.showToast import app.olauncher.helper.uninstall +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch class AppDrawerFragment : Fragment() { @@ -243,7 +246,11 @@ class AppDrawerFragment : Fragment() { } if (mode == CharacterIndicator.HIDE) { - binding.characterIndicator?.isVisible = false + lifecycleScope.launch { + delay(1000L) + binding.characterIndicator?.isVisible = false + } + } }) diff --git a/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt b/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt index c99f6ae..c8e587e 100644 --- a/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt +++ b/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt @@ -83,10 +83,10 @@ class DrawerCharacterAdapter : override fun onRequestDisallowInterceptTouchEvent(disallowIntercept: Boolean) { } - private fun updateIndicatorView(rv: RecyclerView,e:MotionEvent){ + private fun updateIndicatorView(rv: RecyclerView, e: MotionEvent) { val child = rv.findChildViewUnder(e.x, e.y) - if (child != null) { - val view = rv.getChildViewHolder(child).itemView + child?.let { + val view = rv.getChildViewHolder(child).itemView val itemPosition = rv.getChildAdapterPosition(child) clickListener?.let { @@ -96,11 +96,11 @@ class DrawerCharacterAdapter : Pair(view.x, view.y) ) } - if (e.action == MotionEvent.ACTION_UP){ - child.postDelayed({clickListener?.let { it("", CharacterIndicator.HIDE,Pair(e.x,e.y)) }},1000L) + if (e.action == MotionEvent.ACTION_UP) { + clickListener?.let { it("", CharacterIndicator.HIDE, Pair(e.x, e.y)) } } + } ?: clickListener?.let { it("", CharacterIndicator.HIDE, Pair(e.x, e.y)) } - } } diff --git a/app/src/main/res/layout/fragment_app_drawer.xml b/app/src/main/res/layout/fragment_app_drawer.xml index cb2ddd8..5394c55 100644 --- a/app/src/main/res/layout/fragment_app_drawer.xml +++ b/app/src/main/res/layout/fragment_app_drawer.xml @@ -95,7 +95,7 @@ android:layout_height="wrap_content" android:maxLines="1" tools:text="W" - android:visibility="gone" + android:visibility="invisible" android:layout_gravity="end" android:paddingHorizontal="6dp" android:paddingVertical="2dp" -- cgit v1.2.1 From a98fe9e487c17e7842a0b0a21f558c7e3cbd008d Mon Sep 17 00:00:00 2001 From: J-cart Date: Mon, 29 Jul 2024 12:24:51 +0100 Subject: target--compile SDK-> 34... --- app/src/main/java/app/olauncher/listener/OnSwipeTouchListener.kt | 6 +++--- app/src/main/java/app/olauncher/listener/ViewSwipeTouchListener.kt | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/listener/OnSwipeTouchListener.kt b/app/src/main/java/app/olauncher/listener/OnSwipeTouchListener.kt index ae09a78..3197b3c 100644 --- a/app/src/main/java/app/olauncher/listener/OnSwipeTouchListener.kt +++ b/app/src/main/java/app/olauncher/listener/OnSwipeTouchListener.kt @@ -74,14 +74,14 @@ internal open class OnSwipeTouchListener(c: Context?) : OnTouchListener { } override fun onFling( - event1: MotionEvent, + event1: MotionEvent?, event2: MotionEvent, velocityX: Float, velocityY: Float, ): Boolean { try { - val diffY = event2.y - event1.y - val diffX = event2.x - event1.x + val diffY = event2.y - (event1?.y ?: 0F) + val diffX = event2.x - (event1?.x ?: 0F) if (abs(diffX) > abs(diffY)) { if (abs(diffX) > SWIPE_THRESHOLD && abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) { if (diffX > 0) onSwipeRight() else onSwipeLeft() diff --git a/app/src/main/java/app/olauncher/listener/ViewSwipeTouchListener.kt b/app/src/main/java/app/olauncher/listener/ViewSwipeTouchListener.kt index 8810824..9d7009e 100644 --- a/app/src/main/java/app/olauncher/listener/ViewSwipeTouchListener.kt +++ b/app/src/main/java/app/olauncher/listener/ViewSwipeTouchListener.kt @@ -58,14 +58,14 @@ internal open class ViewSwipeTouchListener(c: Context?, v: View) : OnTouchListen } override fun onFling( - event1: MotionEvent, + event1: MotionEvent?, event2: MotionEvent, velocityX: Float, velocityY: Float, ): Boolean { try { - val diffY = event2.y - event1.y - val diffX = event2.x - event1.x + val diffY = event2.y - (event1?.y ?: 0F) + val diffX = event2.x - (event1?.x ?: 0F) if (abs(diffX) > abs(diffY)) { if (abs(diffX) > SWIPE_THRESHOLD && abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) { if (diffX > 0) onSwipeRight() else onSwipeLeft() -- cgit v1.2.1 From facd0ff9ea1b27184d0d9a636cbf0c2b19f8f631 Mon Sep 17 00:00:00 2001 From: J-cart Date: Wed, 31 Jul 2024 07:52:38 +0100 Subject: (fix) app drawer character list... --- .../java/app/olauncher/ui/AppDrawerFragment.kt | 66 +++++++++++++++++----- .../main/res/layout-land/fragment_app_drawer.xml | 49 +++++++++++----- app/src/main/res/layout/fragment_app_drawer.xml | 64 +++++++++++---------- 3 files changed, 123 insertions(+), 56 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt index 5c0a20e..762b71e 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt @@ -1,5 +1,6 @@ package app.olauncher.ui +import android.content.res.Configuration.ORIENTATION_PORTRAIT import android.os.Bundle import android.view.Gravity import android.view.LayoutInflater @@ -7,6 +8,7 @@ import android.view.View import android.view.ViewGroup import android.view.animation.AnimationUtils import android.widget.FrameLayout +import android.widget.LinearLayout import android.widget.TextView import androidx.appcompat.widget.SearchView import androidx.core.view.isVisible @@ -77,34 +79,67 @@ class AppDrawerFragment : Fragment() { initClickListeners() } - private fun setAppDrawerMargins(center: Boolean) { + private fun setAppDrawerPortraitMargins(center: Boolean) { val centerValue = if (center) 5 else 48 val rv = binding.recyclerView val params = rv.layoutParams as FrameLayout.LayoutParams val scale = resources.displayMetrics.density - val marginTop = (160 * scale).toInt() + val marginTop = (180 * scale).toInt() val marginBottom = (24 * scale).toInt() val marginRight = (centerValue * scale).toInt() params.setMargins(0, marginTop, marginRight, marginBottom) rv.layoutParams = params } - private fun setIndicatorMargins(x:Float,y:Float) { + private fun setAppDrawerLandMargins() { + val rv = binding.recyclerView + val params = rv.layoutParams as FrameLayout.LayoutParams + val scale = resources.displayMetrics.density + val marginTop = (80 * scale).toInt() + val marginBottom = 0 + val marginRight = (56 * scale).toInt() + val marginLeft = (56 * scale).toInt() + params.setMargins(marginLeft, marginTop, marginRight, marginBottom) + rv.layoutParams = params + } + + private fun setIndicatorMargins(x:Float,y:Float,isLast:Boolean,isFirst:Boolean) { + val lastValue = if (isLast) 6 else 3 val indicator = binding.characterIndicator - val params = indicator?.layoutParams as FrameLayout.LayoutParams + val params = indicator.layoutParams as LinearLayout.LayoutParams val scale = resources.displayMetrics.density - val marginTop = y.toInt() + (158 * scale).toInt() - val marginRight = (32 * scale).toInt() - params.setMargins(x.toInt(), marginTop, marginRight, 0) + val marginTop =if (isFirst) (y + (1 * scale)).toInt() else (y - (lastValue * scale)).toInt() + val marginRight = (8 * scale).toInt() + val marginLeft = x.toInt() + val marginBottom = 0 + params.setMargins(marginLeft, marginTop, marginRight, marginBottom) indicator.layoutParams = params } + private fun setIndicatorLayoutLandMargins() { + val indicatorLayout = binding.indicatorLayout + val params = indicatorLayout.layoutParams as FrameLayout.LayoutParams + val scale = resources.displayMetrics.density + val marginTop = (6 * scale).toInt() + val marginRight = 0 + val marginLeft = 0 + val marginBottom = (6 * scale).toInt() + params.setMargins(marginLeft, marginTop, marginRight, marginBottom) + indicatorLayout.layoutParams = params + } + + private fun initViews() { binding.characterRecyclerView.isVisible = prefs.autoShowKeyboard.not() - setAppDrawerMargins(prefs.appLabelAlignment == Gravity.CENTER) + if (requireContext().resources.configuration.orientation == ORIENTATION_PORTRAIT) { + setAppDrawerPortraitMargins(prefs.appLabelAlignment == Gravity.CENTER) + }else{ + setAppDrawerLandMargins() + setIndicatorLayoutLandMargins() + } if (flag == Constants.FLAG_HIDDEN_APPS) binding.search.queryHint = getString(R.string.hidden_apps) @@ -228,10 +263,15 @@ class AppDrawerFragment : Fragment() { DrawerCharacterAdapter.CharacterTouchListener(drawerCharacterAdapter) { char,mode ,pos-> if (mode != CharacterIndicator.HIDE) { - binding.characterIndicator?.let{ - setIndicatorMargins(pos.first,pos.second) - it.text = char - it.isVisible = true + binding.characterIndicator.apply{ + setIndicatorMargins( + pos.first, + pos.second, + char.equals("Z", true), + char.equals("A", true) + ) + text = char + isVisible = true } viewModel.updateRangeDrawerCharacterList(char) val matchIndex = if (char == "#") { @@ -248,7 +288,7 @@ class AppDrawerFragment : Fragment() { if (mode == CharacterIndicator.HIDE) { lifecycleScope.launch { delay(1000L) - binding.characterIndicator?.isVisible = false + binding.characterIndicator.isVisible = false } } diff --git a/app/src/main/res/layout-land/fragment_app_drawer.xml b/app/src/main/res/layout-land/fragment_app_drawer.xml index d8cada4..f547139 100644 --- a/app/src/main/res/layout-land/fragment_app_drawer.xml +++ b/app/src/main/res/layout-land/fragment_app_drawer.xml @@ -75,20 +75,41 @@ android:requiresFadingEdge="vertical" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" /> - + android:layout_height="wrap_content" + android:layout_marginVertical="6dp" + android:layout_gravity="center|end" + > + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_app_drawer.xml b/app/src/main/res/layout/fragment_app_drawer.xml index 5394c55..bb79e73 100644 --- a/app/src/main/res/layout/fragment_app_drawer.xml +++ b/app/src/main/res/layout/fragment_app_drawer.xml @@ -19,6 +19,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" + android:layout_marginEnd="32dp" android:gravity="end" android:imeOptions="actionSearch" android:paddingHorizontal="3dp" @@ -73,37 +74,42 @@ android:fadingEdgeLength="24dp" android:requiresFadingEdge="vertical" /> - - + android:layout_gravity="center|end" + > + + + + \ No newline at end of file -- cgit v1.2.1 From 39ec3bbe6af9858fb6ec123c77eb80600ac0308b Mon Sep 17 00:00:00 2001 From: Tanuj Date: Fri, 9 Aug 2024 20:26:28 +0530 Subject: Changes in letters app drawer --- .../java/app/olauncher/ui/AppDrawerFragment.kt | 22 +++----- .../app/olauncher/ui/DrawerCharacterAdapter.kt | 65 +++++++--------------- app/src/main/res/drawable/bg_shade_circular.xml | 5 ++ app/src/main/res/layout-land/drawer_alphabet.xml | 24 ++++++++ .../main/res/layout-land/fragment_app_drawer.xml | 38 ++++++------- app/src/main/res/layout/drawer_alphabet.xml | 19 ++++--- app/src/main/res/layout/fragment_app_drawer.xml | 40 +++++++------ 7 files changed, 104 insertions(+), 109 deletions(-) create mode 100644 app/src/main/res/drawable/bg_shade_circular.xml create mode 100644 app/src/main/res/layout-land/drawer_alphabet.xml (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt index 762b71e..3c0e2b2 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt @@ -59,7 +59,7 @@ class AppDrawerFragment : Fragment() { override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? + savedInstanceState: Bundle?, ): View { _binding = FragmentAppDrawerBinding.inflate(inflater, container, false) return binding.root @@ -104,12 +104,11 @@ class AppDrawerFragment : Fragment() { rv.layoutParams = params } - private fun setIndicatorMargins(x:Float,y:Float,isLast:Boolean,isFirst:Boolean) { - val lastValue = if (isLast) 6 else 3 + private fun setIndicatorMargins(x: Float, y: Float, isLast: Boolean, isFirst: Boolean) { val indicator = binding.characterIndicator val params = indicator.layoutParams as LinearLayout.LayoutParams val scale = resources.displayMetrics.density - val marginTop =if (isFirst) (y + (1 * scale)).toInt() else (y - (lastValue * scale)).toInt() + val marginTop = y.toInt() - 80 val marginRight = (8 * scale).toInt() val marginLeft = x.toInt() val marginBottom = 0 @@ -136,7 +135,7 @@ class AppDrawerFragment : Fragment() { if (requireContext().resources.configuration.orientation == ORIENTATION_PORTRAIT) { setAppDrawerPortraitMargins(prefs.appLabelAlignment == Gravity.CENTER) - }else{ + } else { setAppDrawerLandMargins() setIndicatorLayoutLandMargins() } @@ -250,7 +249,7 @@ class AppDrawerFragment : Fragment() { override fun scrollVerticallyBy( dx: Int, recycler: Recycler, - state: RecyclerView.State + state: RecyclerView.State, ): Int { val scrollRange = super.scrollVerticallyBy(dx, recycler, state) val overScroll = dx - scrollRange @@ -260,10 +259,10 @@ class AppDrawerFragment : Fragment() { } } binding.characterRecyclerView.addOnItemTouchListener( - DrawerCharacterAdapter.CharacterTouchListener(drawerCharacterAdapter) { char,mode ,pos-> + DrawerCharacterAdapter.CharacterTouchListener(drawerCharacterAdapter) { char, mode, pos -> if (mode != CharacterIndicator.HIDE) { - binding.characterIndicator.apply{ + binding.characterIndicator.apply { setIndicatorMargins( pos.first, pos.second, @@ -287,15 +286,12 @@ class AppDrawerFragment : Fragment() { if (mode == CharacterIndicator.HIDE) { lifecycleScope.launch { - delay(1000L) + delay(300L) binding.characterIndicator.isVisible = false } - } - }) - binding.recyclerView.layoutManager = linearLayoutManager binding.recyclerView.adapter = adapter binding.recyclerView.addOnScrollListener(getRecyclerViewOnScrollListener()) @@ -436,7 +432,7 @@ class AppDrawerFragment : Fragment() { if (regexMatch) "#" else firstLetter.uppercase() }.toSet() .map { str -> - DrawerCharacterModel(str, str.equals(firstVisibleItem.appLabel.first().toString(),true)) + DrawerCharacterModel(str, str.equals(firstVisibleItem.appLabel.first().toString(), true)) } viewModel.updateDrawerCharacterList(drawerCharacters) diff --git a/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt b/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt index c8e587e..f589adb 100644 --- a/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt +++ b/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt @@ -1,6 +1,5 @@ package app.olauncher.ui -import android.util.TypedValue import android.view.LayoutInflater import android.view.MotionEvent import android.view.View @@ -13,75 +12,54 @@ import app.olauncher.R import app.olauncher.data.Constants.CharacterIndicator import app.olauncher.data.DrawerCharacterModel import app.olauncher.databinding.DrawerAlphabetBinding +import app.olauncher.helper.getColorFromAttr - -class DrawerCharacterAdapter : - ListAdapter(diffObject) { +class DrawerCharacterAdapter : ListAdapter(diffObject) { inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) { private val binding = DrawerAlphabetBinding.bind(view) fun bind(character: DrawerCharacterModel) { - if (character.inRange) { - binding.character.setTextColor(itemView.context.getColor(R.color.design_default_color_secondary)) - } else { - val typedValue = TypedValue() - itemView.context.theme.resolveAttribute(R.attr.primaryColor, typedValue, true) - binding.character.setTextColor(itemView.context.getColor(typedValue.resourceId)) - } - - + val textColor = if (character.inRange) + itemView.context.getColor(R.color.colorAccent) + else + itemView.context.getColorFromAttr(R.attr.primaryColor) + binding.character.setTextColor(textColor) binding.character.text = character.character - } } - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { - val view = - LayoutInflater.from(parent.context).inflate(R.layout.drawer_alphabet, parent, false) - return ViewHolder(view) - } + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder = + ViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.drawer_alphabet, parent, false)) - override fun onBindViewHolder(holder: ViewHolder, position: Int) { - val pos = getItem(position) - holder.bind(pos) - } + override fun onBindViewHolder(holder: ViewHolder, position: Int) = holder.bind(getItem(position)) companion object { val diffObject = object : DiffUtil.ItemCallback() { override fun areItemsTheSame( oldItem: DrawerCharacterModel, - newItem: DrawerCharacterModel - ): Boolean { - return oldItem.character == newItem.character - } + newItem: DrawerCharacterModel, + ): Boolean = oldItem.character == newItem.character override fun areContentsTheSame( oldItem: DrawerCharacterModel, - newItem: DrawerCharacterModel - ): Boolean { - return oldItem.hashCode() == newItem.hashCode() - } + newItem: DrawerCharacterModel, + ): Boolean = oldItem.hashCode() == newItem.hashCode() } } - class CharacterTouchListener( private val adapter: DrawerCharacterAdapter, - private val clickListener: ((String,Int,Pair) -> Unit)? - ) : - OnItemTouchListener { + private val clickListener: ((String, Int, Pair) -> Unit)?, + ) : OnItemTouchListener { override fun onInterceptTouchEvent(rv: RecyclerView, e: MotionEvent): Boolean { updateIndicatorView(rv, e) return true } - override fun onTouchEvent(rv: RecyclerView, e: MotionEvent) { - updateIndicatorView(rv, e) - } + override fun onTouchEvent(rv: RecyclerView, e: MotionEvent) = updateIndicatorView(rv, e) - override fun onRequestDisallowInterceptTouchEvent(disallowIntercept: Boolean) { - } + override fun onRequestDisallowInterceptTouchEvent(disallowIntercept: Boolean) = Unit private fun updateIndicatorView(rv: RecyclerView, e: MotionEvent) { val child = rv.findChildViewUnder(e.x, e.y) @@ -96,15 +74,10 @@ class DrawerCharacterAdapter : Pair(view.x, view.y) ) } - if (e.action == MotionEvent.ACTION_UP) { + if (e.action == MotionEvent.ACTION_UP) clickListener?.let { it("", CharacterIndicator.HIDE, Pair(e.x, e.y)) } - } } ?: clickListener?.let { it("", CharacterIndicator.HIDE, Pair(e.x, e.y)) } - - } - } - } diff --git a/app/src/main/res/drawable/bg_shade_circular.xml b/app/src/main/res/drawable/bg_shade_circular.xml new file mode 100644 index 0000000..f0b1242 --- /dev/null +++ b/app/src/main/res/drawable/bg_shade_circular.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/res/layout-land/drawer_alphabet.xml b/app/src/main/res/layout-land/drawer_alphabet.xml new file mode 100644 index 0000000..a40caca --- /dev/null +++ b/app/src/main/res/layout-land/drawer_alphabet.xml @@ -0,0 +1,24 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-land/fragment_app_drawer.xml b/app/src/main/res/layout-land/fragment_app_drawer.xml index f547139..8a813f6 100644 --- a/app/src/main/res/layout-land/fragment_app_drawer.xml +++ b/app/src/main/res/layout-land/fragment_app_drawer.xml @@ -1,9 +1,9 @@ @@ -79,37 +79,35 @@ android:id="@+id/indicatorLayout" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginVertical="6dp" - android:layout_gravity="center|end" - > + android:layout_gravity="center_vertical|end" + android:clipChildren="false" + android:clipToPadding="false"> + android:maxLines="1" + android:textAlignment="center" + android:visibility="invisible" + tools:text="W" + tools:visibility="visible" /> + + tools:listitem="@layout/drawer_alphabet" /> \ No newline at end of file diff --git a/app/src/main/res/layout/drawer_alphabet.xml b/app/src/main/res/layout/drawer_alphabet.xml index 7d28980..912e7bb 100644 --- a/app/src/main/res/layout/drawer_alphabet.xml +++ b/app/src/main/res/layout/drawer_alphabet.xml @@ -1,23 +1,24 @@ + android:maxLines="1" + android:paddingVertical="2.5dp" + android:paddingStart="20dp" + android:paddingEnd="16dp" + android:textAlignment="center" + android:textSize="13sp" + tools:targetApi="o" + tools:text="W" /> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_app_drawer.xml b/app/src/main/res/layout/fragment_app_drawer.xml index bb79e73..fe64815 100644 --- a/app/src/main/res/layout/fragment_app_drawer.xml +++ b/app/src/main/res/layout/fragment_app_drawer.xml @@ -1,9 +1,9 @@ @@ -18,8 +18,8 @@ android:id="@+id/search" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_weight="1" android:layout_marginEnd="32dp" + android:layout_weight="1" android:gravity="end" android:imeOptions="actionSearch" android:paddingHorizontal="3dp" @@ -74,42 +74,40 @@ android:fadingEdgeLength="24dp" android:requiresFadingEdge="vertical" /> - + android:layout_gravity="center_vertical|end" + android:clipChildren="false" + android:clipToPadding="false"> + android:maxLines="1" + android:textAlignment="center" + android:visibility="invisible" + tools:text="W" + tools:visibility="visible" /> + + tools:listitem="@layout/drawer_alphabet" /> \ No newline at end of file -- cgit v1.2.1 From 1d933f233ab7c8e7dea8f56ada9310e6c762c354 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Fri, 9 Aug 2024 20:28:03 +0530 Subject: Minor UI change --- app/src/main/res/layout-land/fragment_app_drawer.xml | 1 + app/src/main/res/layout/fragment_app_drawer.xml | 1 + 2 files changed, 2 insertions(+) (limited to 'app/src/main') diff --git a/app/src/main/res/layout-land/fragment_app_drawer.xml b/app/src/main/res/layout-land/fragment_app_drawer.xml index 8a813f6..8d29128 100644 --- a/app/src/main/res/layout-land/fragment_app_drawer.xml +++ b/app/src/main/res/layout-land/fragment_app_drawer.xml @@ -80,6 +80,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical|end" + android:alpha="0.8" android:clipChildren="false" android:clipToPadding="false"> diff --git a/app/src/main/res/layout/fragment_app_drawer.xml b/app/src/main/res/layout/fragment_app_drawer.xml index fe64815..c6cc2fb 100644 --- a/app/src/main/res/layout/fragment_app_drawer.xml +++ b/app/src/main/res/layout/fragment_app_drawer.xml @@ -79,6 +79,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical|end" + android:alpha="0.8" android:clipChildren="false" android:clipToPadding="false"> -- cgit v1.2.1 From 2727465765cb7f9c20a4011af22214031db03d82 Mon Sep 17 00:00:00 2001 From: Jonas Wischeropp Date: Sat, 10 Aug 2024 13:44:37 +0200 Subject: fixed crash when search is empty --- app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt | 2 ++ 1 file changed, 2 insertions(+) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt index 3c0e2b2..8c61ae7 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt @@ -388,6 +388,8 @@ class AppDrawerFragment : Fragment() { override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { super.onScrolled(recyclerView, dx, dy) + if (linearLayoutManager.itemCount == 0) + return val visiblePosition = linearLayoutManager.findFirstVisibleItemPosition() val position = if (visiblePosition >= 0) visiblePosition else 0 val item = adapter.currentList[position] -- cgit v1.2.1 From 61b9afe6cde0197c9a2fc0897258ff56a9682a3f Mon Sep 17 00:00:00 2001 From: Tanuj Date: Sat, 10 Aug 2024 20:15:36 +0530 Subject: UI UX fixes in the app drawer --- .../main/java/app/olauncher/ui/AppDrawerAdapter.kt | 11 ++++- .../java/app/olauncher/ui/AppDrawerFragment.kt | 9 ++-- app/src/main/res/drawable/ic_check.xml | 11 +++++ app/src/main/res/drawable/ic_close.xml | 4 +- app/src/main/res/drawable/ic_rename.xml | 4 +- app/src/main/res/layout/adapter_app_drawer.xml | 48 ++++++++++++++++++---- 6 files changed, 70 insertions(+), 17 deletions(-) create mode 100644 app/src/main/res/drawable/ic_check.xml (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt b/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt index 47d7352..d9bfacd 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt @@ -160,6 +160,7 @@ class AppDrawerAdapter( with(binding) { appHideLayout.visibility = View.GONE renameLayout.visibility = View.GONE + appTitle.visibility = View.VISIBLE appTitle.text = appModel.appLabel appTitle.gravity = appLabelGravity otherProfileIndicator.isVisible = appModel.user != myUserHandle @@ -172,6 +173,7 @@ class AppDrawerAdapter( root.context.getString(R.string.adapter_show) else root.context.getString(R.string.adapter_hide) + appTitle.visibility = View.INVISIBLE appHideLayout.visibility = View.VISIBLE appRename.isVisible = flag != Constants.FLAG_HIDDEN_APPS } @@ -246,7 +248,14 @@ class AppDrawerAdapter( } appInfo.setOnClickListener { appInfoListener(appModel) } appDelete.setOnClickListener { appDeleteListener(appModel) } - appHideLayout.setOnClickListener { appHideLayout.visibility = View.GONE } + appMenuClose.setOnClickListener { + appHideLayout.visibility = View.GONE + appTitle.visibility = View.VISIBLE + } + appRenameClose.setOnClickListener { + renameLayout.visibility = View.GONE + appTitle.visibility = View.VISIBLE + } appHide.setOnClickListener { appHideListener(appModel, bindingAdapterPosition) } } diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt index 8c61ae7..1a28a41 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt @@ -87,7 +87,7 @@ class AppDrawerFragment : Fragment() { val scale = resources.displayMetrics.density val marginTop = (180 * scale).toInt() val marginBottom = (24 * scale).toInt() - val marginRight = (centerValue * scale).toInt() + val marginRight = if (prefs.autoShowKeyboard) 0 else (centerValue * scale).toInt() params.setMargins(0, marginTop, marginRight, marginBottom) rv.layoutParams = params } @@ -273,13 +273,14 @@ class AppDrawerFragment : Fragment() { isVisible = true } viewModel.updateRangeDrawerCharacterList(char) - val matchIndex = if (char == "#") { - 0 - } else { + val matchIndex = try { val match = adapter.currentList.find { char.equals(it.appLabel.first().toString(), true) } adapter.currentList.indexOf(match) + } catch (e: Exception) { + e.printStackTrace() + 0 } linearLayoutManager.scrollToPositionWithOffset(matchIndex, 0) } diff --git a/app/src/main/res/drawable/ic_check.xml b/app/src/main/res/drawable/ic_check.xml new file mode 100644 index 0000000..53bb39e --- /dev/null +++ b/app/src/main/res/drawable/ic_check.xml @@ -0,0 +1,11 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_close.xml b/app/src/main/res/drawable/ic_close.xml index e5c82dd..022cd02 100644 --- a/app/src/main/res/drawable/ic_close.xml +++ b/app/src/main/res/drawable/ic_close.xml @@ -1,6 +1,6 @@ + tools:visibility="gone"> + + - + android:textSize="12sp" + app:drawableTopCompat="@drawable/ic_check" /> + -- cgit v1.2.1 From 82959e3f3eb1cde83cbc8532f26a0a228514a496 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Mon, 12 Aug 2024 17:03:22 +0530 Subject: Crash fix --- app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt index 1a28a41..8a1a82e 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt @@ -238,6 +238,8 @@ class AppDrawerFragment : Fragment() { viewModel.showDialog.postValue(Constants.Dialog.HIDDEN) findNavController().navigate(R.id.action_appListFragment_to_settingsFragment2) } + viewModel.getAppList() + viewModel.getHiddenApps() }, appRenameListener = { appModel, renameLabel -> prefs.setAppRenameLabel(appModel.appPackage, renameLabel) @@ -301,6 +303,7 @@ class AppDrawerFragment : Fragment() { binding.recyclerView.layoutAnimation = AnimationUtils.loadLayoutAnimation(requireContext(), R.anim.layout_anim_from_bottom) binding.characterRecyclerView.adapter = drawerCharacterAdapter + binding.characterRecyclerView.itemAnimator = null } private fun initObservers() { @@ -421,9 +424,7 @@ class AppDrawerFragment : Fragment() { val position = if (firstVisibleItemPosition >= 0) firstVisibleItemPosition else 0 - val firstVisibleItem = - drawerItems[position] - + val firstVisibleItem = if (position < drawerItems.size) drawerItems[position] else null val drawerCharacters = drawerItems.filter { it.appLabel.isNotEmpty() }.map { char -> @@ -435,11 +436,10 @@ class AppDrawerFragment : Fragment() { if (regexMatch) "#" else firstLetter.uppercase() }.toSet() .map { str -> - DrawerCharacterModel(str, str.equals(firstVisibleItem.appLabel.first().toString(), true)) + DrawerCharacterModel(str, str.equals(firstVisibleItem?.appLabel?.first().toString(), true)) } viewModel.updateDrawerCharacterList(drawerCharacters) - } -- cgit v1.2.1 From d3809fc56ace5fc9846c3878b3f85713ba19aef6 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Fri, 23 Aug 2024 14:53:54 +0530 Subject: Removed character scrolling in the app drawer --- app/src/main/java/app/olauncher/MainViewModel.kt | 25 --- .../main/java/app/olauncher/ui/AppDrawerAdapter.kt | 2 - .../java/app/olauncher/ui/AppDrawerFragment.kt | 169 --------------------- .../app/olauncher/ui/DrawerCharacterAdapter.kt | 83 ---------- .../main/res/drawable/rounded_rect_shade_color.xml | 2 +- app/src/main/res/layout-land/drawer_alphabet.xml | 24 --- .../main/res/layout-land/fragment_app_drawer.xml | 36 ----- app/src/main/res/layout-land/fragment_settings.xml | 4 +- app/src/main/res/layout/adapter_app_drawer.xml | 4 +- app/src/main/res/layout/drawer_alphabet.xml | 24 --- app/src/main/res/layout/fragment_app_drawer.xml | 37 ----- app/src/main/res/layout/fragment_settings.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- 13 files changed, 8 insertions(+), 406 deletions(-) delete mode 100644 app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt delete mode 100644 app/src/main/res/layout-land/drawer_alphabet.xml delete mode 100644 app/src/main/res/layout/drawer_alphabet.xml (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/MainViewModel.kt b/app/src/main/java/app/olauncher/MainViewModel.kt index 155f3e4..a06a35e 100644 --- a/app/src/main/java/app/olauncher/MainViewModel.kt +++ b/app/src/main/java/app/olauncher/MainViewModel.kt @@ -16,8 +16,6 @@ import androidx.work.PeriodicWorkRequestBuilder import androidx.work.WorkManager import app.olauncher.data.AppModel import app.olauncher.data.Constants -import app.olauncher.data.Constants.CharacterIndicator -import app.olauncher.data.DrawerCharacterModel import app.olauncher.data.Prefs import app.olauncher.helper.SingleLiveEvent import app.olauncher.helper.WallpaperWorker @@ -36,7 +34,6 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { val toggleDateTime = MutableLiveData() val updateSwipeApps = MutableLiveData() val appList = MutableLiveData?>() - val drawerCharacterList = MutableLiveData>() val hiddenApps = MutableLiveData?>() val isOlauncherDefault = MutableLiveData() val launcherResetFailed = MutableLiveData() @@ -246,26 +243,4 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { prefs.homeAlignment = gravity homeAppAlignment.value = prefs.homeAlignment } - - fun updateDrawerCharacterList(characters:List){ - drawerCharacterList.value = characters - } - - fun updateRangeDrawerCharacterList(char:String){ - val charRegex = Regex("[0-9\\\\$&+,:;=?@#|/'<>.^*()%!-]") - val characters = drawerCharacterList.value ?: emptyList() - if (characters.isNotEmpty()){ - val checkAndReplaceIfNum = if (charRegex.matches(char)) "#" else char - - val updatedCharacters = - characters.map { - DrawerCharacterModel( - it.character, - it.character.equals(checkAndReplaceIfNum, true) - ) - } - - drawerCharacterList.value = updatedCharacters - } - } } \ No newline at end of file diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt b/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt index d9bfacd..76a0ebf 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt @@ -26,7 +26,6 @@ import java.text.Normalizer class AppDrawerAdapter( private var flag: Int, - private val appFilterHelper: AppFilterHelper, private val appLabelGravity: Int, private val appClickListener: (AppModel) -> Unit, private val appInfoListener: (AppModel) -> Unit, @@ -101,7 +100,6 @@ class AppDrawerAdapter( results?.values?.let { val items = it as MutableList appFilteredList = items - appFilterHelper.onAppFiltered(items.toList()) submitList(appFilteredList) { autoLaunch() } diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt index 8a1a82e..cd8e30f 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt @@ -1,33 +1,23 @@ package app.olauncher.ui -import android.content.res.Configuration.ORIENTATION_PORTRAIT import android.os.Bundle -import android.view.Gravity import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.view.animation.AnimationUtils -import android.widget.FrameLayout -import android.widget.LinearLayout import android.widget.TextView import androidx.appcompat.widget.SearchView -import androidx.core.view.isVisible import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels -import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView.Recycler import app.olauncher.MainViewModel import app.olauncher.R -import app.olauncher.data.AppModel import app.olauncher.data.Constants -import app.olauncher.data.Constants.CharacterIndicator -import app.olauncher.data.DrawerCharacterModel import app.olauncher.data.Prefs import app.olauncher.databinding.FragmentAppDrawerBinding -import app.olauncher.helper.AppFilterHelper import app.olauncher.helper.hideKeyboard import app.olauncher.helper.isEinkDisplay import app.olauncher.helper.isSystemApp @@ -38,8 +28,6 @@ import app.olauncher.helper.searchOnPlayStore import app.olauncher.helper.showKeyboard import app.olauncher.helper.showToast import app.olauncher.helper.uninstall -import kotlinx.coroutines.delay -import kotlinx.coroutines.launch class AppDrawerFragment : Fragment() { @@ -47,7 +35,6 @@ class AppDrawerFragment : Fragment() { private lateinit var prefs: Prefs private lateinit var adapter: AppDrawerAdapter private lateinit var linearLayoutManager: LinearLayoutManager - private lateinit var drawerCharacterAdapter: DrawerCharacterAdapter private var flag = Constants.FLAG_LAUNCH_APP private var canRename = false @@ -79,67 +66,7 @@ class AppDrawerFragment : Fragment() { initClickListeners() } - private fun setAppDrawerPortraitMargins(center: Boolean) { - val centerValue = if (center) 5 else 48 - - val rv = binding.recyclerView - val params = rv.layoutParams as FrameLayout.LayoutParams - val scale = resources.displayMetrics.density - val marginTop = (180 * scale).toInt() - val marginBottom = (24 * scale).toInt() - val marginRight = if (prefs.autoShowKeyboard) 0 else (centerValue * scale).toInt() - params.setMargins(0, marginTop, marginRight, marginBottom) - rv.layoutParams = params - } - - private fun setAppDrawerLandMargins() { - val rv = binding.recyclerView - val params = rv.layoutParams as FrameLayout.LayoutParams - val scale = resources.displayMetrics.density - val marginTop = (80 * scale).toInt() - val marginBottom = 0 - val marginRight = (56 * scale).toInt() - val marginLeft = (56 * scale).toInt() - params.setMargins(marginLeft, marginTop, marginRight, marginBottom) - rv.layoutParams = params - } - - private fun setIndicatorMargins(x: Float, y: Float, isLast: Boolean, isFirst: Boolean) { - val indicator = binding.characterIndicator - val params = indicator.layoutParams as LinearLayout.LayoutParams - val scale = resources.displayMetrics.density - val marginTop = y.toInt() - 80 - val marginRight = (8 * scale).toInt() - val marginLeft = x.toInt() - val marginBottom = 0 - params.setMargins(marginLeft, marginTop, marginRight, marginBottom) - indicator.layoutParams = params - } - - - private fun setIndicatorLayoutLandMargins() { - val indicatorLayout = binding.indicatorLayout - val params = indicatorLayout.layoutParams as FrameLayout.LayoutParams - val scale = resources.displayMetrics.density - val marginTop = (6 * scale).toInt() - val marginRight = 0 - val marginLeft = 0 - val marginBottom = (6 * scale).toInt() - params.setMargins(marginLeft, marginTop, marginRight, marginBottom) - indicatorLayout.layoutParams = params - } - - private fun initViews() { - binding.characterRecyclerView.isVisible = prefs.autoShowKeyboard.not() - - if (requireContext().resources.configuration.orientation == ORIENTATION_PORTRAIT) { - setAppDrawerPortraitMargins(prefs.appLabelAlignment == Gravity.CENTER) - } else { - setAppDrawerLandMargins() - setIndicatorLayoutLandMargins() - } - if (flag == Constants.FLAG_HIDDEN_APPS) binding.search.queryHint = getString(R.string.hidden_apps) else if (flag in Constants.FLAG_SET_HOME_APP_1..Constants.FLAG_SET_CALENDAR_APP) @@ -179,17 +106,8 @@ class AppDrawerFragment : Fragment() { } private fun initAdapter() { - - val appFilterHelper = object : AppFilterHelper { - override fun onAppFiltered(items: List) { - submitDrawerCharacters(items) - } - } - drawerCharacterAdapter = DrawerCharacterAdapter() - adapter = AppDrawerAdapter( flag, - appFilterHelper, prefs.appLabelAlignment, appClickListener = { if (it.appPackage.isEmpty()) @@ -260,40 +178,6 @@ class AppDrawerFragment : Fragment() { return scrollRange } } - binding.characterRecyclerView.addOnItemTouchListener( - DrawerCharacterAdapter.CharacterTouchListener(drawerCharacterAdapter) { char, mode, pos -> - - if (mode != CharacterIndicator.HIDE) { - binding.characterIndicator.apply { - setIndicatorMargins( - pos.first, - pos.second, - char.equals("Z", true), - char.equals("A", true) - ) - text = char - isVisible = true - } - viewModel.updateRangeDrawerCharacterList(char) - val matchIndex = try { - val match = adapter.currentList.find { - char.equals(it.appLabel.first().toString(), true) - } - adapter.currentList.indexOf(match) - } catch (e: Exception) { - e.printStackTrace() - 0 - } - linearLayoutManager.scrollToPositionWithOffset(matchIndex, 0) - } - - if (mode == CharacterIndicator.HIDE) { - lifecycleScope.launch { - delay(300L) - binding.characterIndicator.isVisible = false - } - } - }) binding.recyclerView.layoutManager = linearLayoutManager binding.recyclerView.adapter = adapter @@ -302,8 +186,6 @@ class AppDrawerFragment : Fragment() { if (requireContext().isEinkDisplay().not()) binding.recyclerView.layoutAnimation = AnimationUtils.loadLayoutAnimation(requireContext(), R.anim.layout_anim_from_bottom) - binding.characterRecyclerView.adapter = drawerCharacterAdapter - binding.characterRecyclerView.itemAnimator = null } private fun initObservers() { @@ -317,7 +199,6 @@ class AppDrawerFragment : Fragment() { viewModel.hiddenApps.observe(viewLifecycleOwner) { it?.let { adapter.setAppList(it.toMutableList()) - submitDrawerCharacters(it) } } } else { @@ -325,14 +206,9 @@ class AppDrawerFragment : Fragment() { it?.let { appModels -> adapter.setAppList(appModels.toMutableList()) adapter.filter.filter(binding.search.query) - submitDrawerCharacters(appModels) } } } - - viewModel.drawerCharacterList.observe(viewLifecycleOwner) { characters -> - drawerCharacterAdapter.submitList(characters) - } } private fun initClickListeners() { @@ -389,16 +265,6 @@ class AppDrawerFragment : Fragment() { } } } - - override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { - super.onScrolled(recyclerView, dx, dy) - if (linearLayoutManager.itemCount == 0) - return - val visiblePosition = linearLayoutManager.findFirstVisibleItemPosition() - val position = if (visiblePosition >= 0) visiblePosition else 0 - val item = adapter.currentList[position] - viewModel.updateRangeDrawerCharacterList(item.appLabel.first().toString()) - } } } @@ -408,41 +274,6 @@ class AppDrawerFragment : Fragment() { viewModel.checkForMessages.call() } - private fun submitDrawerCharacters(drawerItems: List) { - if (drawerItems.isEmpty()) { - viewModel.updateDrawerCharacterList(emptyList()) - return - } - - - val charRegex = Regex("[0-9\\\\$&+,:;=?@#|/'<>.^*()%!-]") - val emojiRegex = Regex("\\p{So}+") - val emojiRegex2 = Regex("[\uD800-\uDBFF\uDC00-\uDFFF]+") - - val firstVisibleItemPosition = - linearLayoutManager.findFirstCompletelyVisibleItemPosition() - - val position = - if (firstVisibleItemPosition >= 0) firstVisibleItemPosition else 0 - val firstVisibleItem = if (position < drawerItems.size) drawerItems[position] else null - - val drawerCharacters = - drawerItems.filter { it.appLabel.isNotEmpty() }.map { char -> - val firstLetter = char.appLabel.first().toString() - val regexMatch = charRegex.matches(firstLetter) || emojiRegex.matches( - char.appLabel.first().toString() - ) || emojiRegex2.matches(char.appLabel.first().toString()) - - if (regexMatch) "#" else firstLetter.uppercase() - }.toSet() - .map { str -> - DrawerCharacterModel(str, str.equals(firstVisibleItem?.appLabel?.first().toString(), true)) - } - - viewModel.updateDrawerCharacterList(drawerCharacters) - } - - override fun onStart() { super.onStart() binding.search.showKeyboard(prefs.autoShowKeyboard) diff --git a/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt b/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt deleted file mode 100644 index f589adb..0000000 --- a/app/src/main/java/app/olauncher/ui/DrawerCharacterAdapter.kt +++ /dev/null @@ -1,83 +0,0 @@ -package app.olauncher.ui - -import android.view.LayoutInflater -import android.view.MotionEvent -import android.view.View -import android.view.ViewGroup -import androidx.recyclerview.widget.DiffUtil -import androidx.recyclerview.widget.ListAdapter -import androidx.recyclerview.widget.RecyclerView -import androidx.recyclerview.widget.RecyclerView.OnItemTouchListener -import app.olauncher.R -import app.olauncher.data.Constants.CharacterIndicator -import app.olauncher.data.DrawerCharacterModel -import app.olauncher.databinding.DrawerAlphabetBinding -import app.olauncher.helper.getColorFromAttr - -class DrawerCharacterAdapter : ListAdapter(diffObject) { - inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) { - private val binding = DrawerAlphabetBinding.bind(view) - fun bind(character: DrawerCharacterModel) { - - val textColor = if (character.inRange) - itemView.context.getColor(R.color.colorAccent) - else - itemView.context.getColorFromAttr(R.attr.primaryColor) - binding.character.setTextColor(textColor) - binding.character.text = character.character - } - } - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder = - ViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.drawer_alphabet, parent, false)) - - override fun onBindViewHolder(holder: ViewHolder, position: Int) = holder.bind(getItem(position)) - - companion object { - val diffObject = object : DiffUtil.ItemCallback() { - override fun areItemsTheSame( - oldItem: DrawerCharacterModel, - newItem: DrawerCharacterModel, - ): Boolean = oldItem.character == newItem.character - - override fun areContentsTheSame( - oldItem: DrawerCharacterModel, - newItem: DrawerCharacterModel, - ): Boolean = oldItem.hashCode() == newItem.hashCode() - } - } - - class CharacterTouchListener( - private val adapter: DrawerCharacterAdapter, - private val clickListener: ((String, Int, Pair) -> Unit)?, - ) : OnItemTouchListener { - - override fun onInterceptTouchEvent(rv: RecyclerView, e: MotionEvent): Boolean { - updateIndicatorView(rv, e) - return true - } - - override fun onTouchEvent(rv: RecyclerView, e: MotionEvent) = updateIndicatorView(rv, e) - - override fun onRequestDisallowInterceptTouchEvent(disallowIntercept: Boolean) = Unit - - private fun updateIndicatorView(rv: RecyclerView, e: MotionEvent) { - val child = rv.findChildViewUnder(e.x, e.y) - child?.let { - val view = rv.getChildViewHolder(child).itemView - val itemPosition = rv.getChildAdapterPosition(child) - - clickListener?.let { - it( - adapter.currentList[itemPosition].character, - CharacterIndicator.SHOW, - Pair(view.x, view.y) - ) - } - if (e.action == MotionEvent.ACTION_UP) - clickListener?.let { it("", CharacterIndicator.HIDE, Pair(e.x, e.y)) } - } ?: clickListener?.let { it("", CharacterIndicator.HIDE, Pair(e.x, e.y)) } - } - } -} - diff --git a/app/src/main/res/drawable/rounded_rect_shade_color.xml b/app/src/main/res/drawable/rounded_rect_shade_color.xml index b3274c4..aed3918 100644 --- a/app/src/main/res/drawable/rounded_rect_shade_color.xml +++ b/app/src/main/res/drawable/rounded_rect_shade_color.xml @@ -4,6 +4,6 @@ diff --git a/app/src/main/res/layout-land/drawer_alphabet.xml b/app/src/main/res/layout-land/drawer_alphabet.xml deleted file mode 100644 index a40caca..0000000 --- a/app/src/main/res/layout-land/drawer_alphabet.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout-land/fragment_app_drawer.xml b/app/src/main/res/layout-land/fragment_app_drawer.xml index 8d29128..c15bbb1 100644 --- a/app/src/main/res/layout-land/fragment_app_drawer.xml +++ b/app/src/main/res/layout-land/fragment_app_drawer.xml @@ -75,40 +75,4 @@ android:requiresFadingEdge="vertical" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" /> - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout-land/fragment_settings.xml b/app/src/main/res/layout-land/fragment_settings.xml index 0f51313..9e00ebc 100644 --- a/app/src/main/res/layout-land/fragment_settings.xml +++ b/app/src/main/res/layout-land/fragment_settings.xml @@ -4,14 +4,14 @@ android:id="@+id/mainActivityLayout" android:layout_width="match_parent" android:layout_height="match_parent" - android:animateLayoutChanges="true"> + android:animateLayoutChanges="true" + android:background="?attr/primaryShadeDarkColor"> + tools:visibility="visible"> - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_app_drawer.xml b/app/src/main/res/layout/fragment_app_drawer.xml index c6cc2fb..91d0484 100644 --- a/app/src/main/res/layout/fragment_app_drawer.xml +++ b/app/src/main/res/layout/fragment_app_drawer.xml @@ -74,41 +74,4 @@ android:fadingEdgeLength="24dp" android:requiresFadingEdge="vertical" /> - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index f4d4142..6f292f2 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -5,7 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:animateLayoutChanges="true" - android:background="?attr/primaryColorInverseTrans50"> + android:background="?attr/primaryShadeDarkColor"> Show Hide Are you using your phone, or is your phone using you? - About Olauncher + About and FAQs Digital Wellbeing Learn more Did you know? -- cgit v1.2.1 From 246d3e8f0bc04ae8cef0237b20d3544a381a9ff2 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Fri, 23 Aug 2024 15:28:12 +0530 Subject: Changes in set default launcher and minSdkVersion is not 24 --- app/src/main/java/app/olauncher/MainActivity.kt | 34 +++++++++++++--------- .../main/java/app/olauncher/helper/Extensions.kt | 12 ++++++++ 2 files changed, 32 insertions(+), 14 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/MainActivity.kt b/app/src/main/java/app/olauncher/MainActivity.kt index d3e867a..56d3478 100644 --- a/app/src/main/java/app/olauncher/MainActivity.kt +++ b/app/src/main/java/app/olauncher/MainActivity.kt @@ -11,7 +11,6 @@ import android.os.Bundle import android.provider.Settings import android.view.View import android.view.WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS -import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatDelegate import androidx.lifecycle.ViewModelProvider @@ -20,8 +19,19 @@ import androidx.navigation.Navigation import app.olauncher.data.Constants import app.olauncher.data.Prefs import app.olauncher.databinding.ActivityMainBinding -import app.olauncher.helper.* -import java.util.* +import app.olauncher.helper.hasBeenDays +import app.olauncher.helper.isDarkThemeOn +import app.olauncher.helper.isDefaultLauncher +import app.olauncher.helper.isEinkDisplay +import app.olauncher.helper.isOlauncherDefault +import app.olauncher.helper.isTablet +import app.olauncher.helper.openUrl +import app.olauncher.helper.rateApp +import app.olauncher.helper.resetLauncherViaFakeActivity +import app.olauncher.helper.setPlainWallpaper +import app.olauncher.helper.shareApp +import app.olauncher.helper.showLauncherSelector +import java.util.Calendar class MainActivity : AppCompatActivity() { @@ -102,10 +112,10 @@ class MainActivity : AppCompatActivity() { openLauncherChooser(it) } viewModel.resetLauncherLiveData.observe(this) { -// if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) - resetDefaultLauncher() -// else -// showLauncherSelector(Constants.REQUEST_CODE_LAUNCHER_SELECTOR) + if (isDefaultLauncher() || Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) + resetLauncherViaFakeActivity() + else + showLauncherSelector(Constants.REQUEST_CODE_LAUNCHER_SELECTOR) } viewModel.checkForMessages.observe(this) { checkForMessages() @@ -225,12 +235,7 @@ class MainActivity : AppCompatActivity() { private fun openLauncherChooser(resetFailed: Boolean) { if (resetFailed) { - val intent = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) - Intent(Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS) - else { - showToast(getString(R.string.search_for_Launcher_or_home_app), Toast.LENGTH_LONG) - Intent(Settings.ACTION_SETTINGS) - } + val intent = Intent(Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS) startActivity(intent) } } @@ -245,7 +250,8 @@ class MainActivity : AppCompatActivity() { } Constants.REQUEST_CODE_LAUNCHER_SELECTOR -> { - resetDefaultLauncher() + if (resultCode == Activity.RESULT_OK) + resetLauncherViaFakeActivity() } } } diff --git a/app/src/main/java/app/olauncher/helper/Extensions.kt b/app/src/main/java/app/olauncher/helper/Extensions.kt index 3c9bda6..585108a 100644 --- a/app/src/main/java/app/olauncher/helper/Extensions.kt +++ b/app/src/main/java/app/olauncher/helper/Extensions.kt @@ -11,10 +11,12 @@ import android.content.pm.PackageManager import android.net.Uri import android.os.Build import android.os.UserHandle +import android.provider.Settings import android.view.View import android.view.WindowManager import android.view.inputmethod.InputMethodManager import androidx.annotation.RequiresApi +import app.olauncher.BuildConfig import app.olauncher.data.Constants fun View.hideKeyboard() { @@ -64,6 +66,16 @@ fun Context.resetDefaultLauncher() { } } +fun Context.isDefaultLauncher(): Boolean { + val launcherPackageName = getDefaultLauncherPackage(this) + return BuildConfig.APPLICATION_ID == launcherPackageName +} + +fun Context.resetLauncherViaFakeActivity() { + resetDefaultLauncher() + if (getDefaultLauncherPackage(this).contains(".")) + startActivity(Intent(Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS)) +} fun Context.openSearch(query: String? = null) { val intent = Intent(Intent.ACTION_WEB_SEARCH) -- cgit v1.2.1 From 3335f12932b063893504a03625f27007d4b53dde Mon Sep 17 00:00:00 2001 From: Tanuj Date: Fri, 23 Aug 2024 16:15:55 +0530 Subject: Changes in text shadow --- app/src/main/res/values-night/styles.xml | 4 ++-- app/src/main/res/values/styles.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/res/values-night/styles.xml b/app/src/main/res/values-night/styles.xml index 2085d29..c8688e3 100644 --- a/app/src/main/res/values-night/styles.xml +++ b/app/src/main/res/values-night/styles.xml @@ -65,9 +65,9 @@ @drawable/text_colors_default ?attr/primaryColorTrans80 ?attr/primaryTextShadowColor - 1 + 0 1 - 2 + 4 diff --git a/app/src/main/res/values-xhdpi/dimens.xml b/app/src/main/res/values-xhdpi/dimens.xml index 4bdf6a2..1745fdd 100644 --- a/app/src/main/res/values-xhdpi/dimens.xml +++ b/app/src/main/res/values-xhdpi/dimens.xml @@ -1,6 +1,6 @@ - 25sp + 28sp 16sp 12dp 10dp diff --git a/app/src/main/res/values-xxhdpi/dimens.xml b/app/src/main/res/values-xxhdpi/dimens.xml index bfaf760..d601687 100644 --- a/app/src/main/res/values-xxhdpi/dimens.xml +++ b/app/src/main/res/values-xxhdpi/dimens.xml @@ -1,6 +1,6 @@ - 27sp + 30sp 16sp 12dp 10dp diff --git a/app/src/main/res/values-xxxhdpi/dimens.xml b/app/src/main/res/values-xxxhdpi/dimens.xml index 4713aa7..6e38b44 100644 --- a/app/src/main/res/values-xxxhdpi/dimens.xml +++ b/app/src/main/res/values-xxxhdpi/dimens.xml @@ -1,6 +1,6 @@ - 29sp + 32sp 17sp 16dp 14dp diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 2da7339..e80e1c6 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -66,7 +66,7 @@ ?attr/primaryColorTrans80 ?attr/primaryTextShadowColor 0 - 1 + 2 4 -- cgit v1.2.1 From 6617b621afba479648a918f5ae6b8ab6cdff0dec Mon Sep 17 00:00:00 2001 From: Tanuj Date: Fri, 23 Aug 2024 16:36:53 +0530 Subject: Change in share message --- app/src/main/res/values/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 76f012a..e12299a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -71,10 +71,10 @@ \n\nThank you. Hi, you won\'t see this message again. \n\nIf you\'re finding Olauncher useful, could you please leave a 5-star review? It\'ll mean the world to us. Thank you! - - - Your monthly reminder - you should use your phone, not the other way round. Stay strong. You\'re doing great! - \n\nIf you have a moment to spare, could you please share Olauncher with others? Olauncher needs people. More importantly, people need Olauncher. + We need your help! Last year we crossed a million downloads. This year we want to reach a million more. We can\'t do it alone. + \n\nCould you please share Olauncher with the world? Because Olauncher needs people, and people need Olauncher. + + Hi, keyboard is the fastest way to find and launch apps in Olauncher. Can we request you to keep this On for a few more days and then decide? \n\nThe choice is always yours. If you want to set time limits for certain apps, Digital Wellbeing feature of Android can help you do it. -- cgit v1.2.1 From 4fa00a2c5c1686fa998f9c81dde25a92527f5b6f Mon Sep 17 00:00:00 2001 From: Tanuj Date: Sat, 31 Aug 2024 14:29:35 +0530 Subject: Search on web from app drawer --- app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt index cd8e30f..919c789 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt @@ -24,7 +24,6 @@ import app.olauncher.helper.isSystemApp import app.olauncher.helper.openAppInfo import app.olauncher.helper.openSearch import app.olauncher.helper.openUrl -import app.olauncher.helper.searchOnPlayStore import app.olauncher.helper.showKeyboard import app.olauncher.helper.showToast import app.olauncher.helper.uninstall @@ -84,7 +83,7 @@ class AppDrawerFragment : Fragment() { override fun onQueryTextSubmit(query: String?): Boolean { if (query?.startsWith("!") == true) requireContext().openUrl(Constants.URL_DUCK_SEARCH + query.replace(" ", "%20")) - else if (adapter.itemCount == 0 && requireContext().searchOnPlayStore(query?.trim()).not()) + else if (adapter.itemCount == 0) // && requireContext().searchOnPlayStore(query?.trim()).not()) requireContext().openSearch(query?.trim()) else adapter.launchFirstInList() -- cgit v1.2.1 From 03da448203a7521f527ed3e0852c7e2b5e4779e3 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Sat, 31 Aug 2024 14:30:17 +0530 Subject: Minor change in small font scale --- app/src/main/java/app/olauncher/data/Constants.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/data/Constants.kt b/app/src/main/java/app/olauncher/data/Constants.kt index 30aae8f..5b3e0a7 100644 --- a/app/src/main/java/app/olauncher/data/Constants.kt +++ b/app/src/main/java/app/olauncher/data/Constants.kt @@ -43,8 +43,8 @@ object Constants { } object TextSize { - const val ONE = 0.7f - const val TWO = 0.8f + const val ONE = 0.6f + const val TWO = 0.75f const val THREE = 0.9f const val FOUR = 1f const val FIVE = 1.1f -- cgit v1.2.1 From 87022579eeb448d8fb3fd760554e163c2cf09cbc Mon Sep 17 00:00:00 2001 From: Tanuj Date: Sat, 31 Aug 2024 16:55:41 +0530 Subject: Fixed: showing keyboard after closing app drawer --- app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt index 919c789..1986300 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt @@ -248,19 +248,16 @@ class AppDrawerFragment : Fragment() { RecyclerView.SCROLL_STATE_DRAGGING -> { onTop = !recyclerView.canScrollVertically(-1) - if (onTop) binding.search.hideKeyboard() - // if (onTop && !recyclerView.canScrollVertically(1)) - // checkMessageAndExit() + if (onTop) + binding.search.hideKeyboard() } RecyclerView.SCROLL_STATE_IDLE -> { - if (!recyclerView.canScrollVertically(1)) { + if (!recyclerView.canScrollVertically(1)) binding.search.hideKeyboard() - } else if (!recyclerView.canScrollVertically(-1)) { - if (!onTop) binding.search.showKeyboard(prefs.autoShowKeyboard) - // if (onTop) checkMessageAndExit() - // else binding.search.showKeyboard(prefs.autoShowKeyboard) - } + else if (!recyclerView.canScrollVertically(-1)) + if (!onTop && isRemoving.not()) + binding.search.showKeyboard(prefs.autoShowKeyboard) } } } -- cgit v1.2.1 From 2fc19a0e9d1192a45b7c1a18c4bd7acf5b84ae3f Mon Sep 17 00:00:00 2001 From: Tanuj Date: Sat, 31 Aug 2024 23:09:02 +0530 Subject: Indicator for new apps --- app/src/main/java/app/olauncher/data/AppModel.kt | 1 + app/src/main/java/app/olauncher/helper/Utils.kt | 10 +++++++--- app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt | 5 ++--- app/src/main/java/app/olauncher/ui/HomeFragment.kt | 1 + 4 files changed, 11 insertions(+), 6 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/data/AppModel.kt b/app/src/main/java/app/olauncher/data/AppModel.kt index 3064bb9..7c11965 100644 --- a/app/src/main/java/app/olauncher/data/AppModel.kt +++ b/app/src/main/java/app/olauncher/data/AppModel.kt @@ -8,6 +8,7 @@ data class AppModel( val key: CollationKey?, val appPackage: String, val activityClassName: String?, + val isNew: Boolean? = false, val user: UserHandle, ) : Comparable { override fun compareTo(other: AppModel): Int = when { diff --git a/app/src/main/java/app/olauncher/helper/Utils.kt b/app/src/main/java/app/olauncher/helper/Utils.kt index cb25419..14612fa 100644 --- a/app/src/main/java/app/olauncher/helper/Utils.kt +++ b/app/src/main/java/app/olauncher/helper/Utils.kt @@ -5,12 +5,10 @@ import android.app.SearchManager import android.app.WallpaperManager import android.content.ClipData import android.content.ClipboardManager -import android.content.ComponentName import android.content.Context import android.content.Intent import android.content.pm.ApplicationInfo import android.content.pm.LauncherApps -import android.content.pm.PackageManager import android.content.res.Configuration import android.content.res.Configuration.UI_MODE_NIGHT_YES import android.graphics.Bitmap @@ -65,7 +63,12 @@ fun Context.showToast(stringResource: Int, duration: Int = Toast.LENGTH_SHORT) { Toast.makeText(this, getString(stringResource), duration).show() } -suspend fun getAppsList(context: Context, prefs: Prefs, includeRegularApps: Boolean = true, includeHiddenApps: Boolean = false): MutableList { +suspend fun getAppsList( + context: Context, + prefs: Prefs, + includeRegularApps: Boolean = true, + includeHiddenApps: Boolean = false, +): MutableList { return withContext(Dispatchers.IO) { val appList: MutableList = mutableListOf() @@ -86,6 +89,7 @@ suspend fun getAppsList(context: Context, prefs: Prefs, includeRegularApps: Bool collator.getCollationKey(app.label.toString()), app.applicationInfo.packageName, app.componentName.className, + (System.currentTimeMillis() - app.firstInstallTime) < Constants.ONE_HOUR_IN_MILLIS, profile ) diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt b/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt index 76a0ebf..b0b0f85 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt @@ -18,7 +18,6 @@ import app.olauncher.R import app.olauncher.data.AppModel import app.olauncher.data.Constants import app.olauncher.databinding.AdapterAppDrawerBinding -import app.olauncher.helper.AppFilterHelper import app.olauncher.helper.hideKeyboard import app.olauncher.helper.isSystemApp import app.olauncher.helper.showKeyboard @@ -131,7 +130,7 @@ class AppDrawerAdapter( fun setAppList(appsList: MutableList) { // Add empty app for bottom padding in recyclerview - appsList.add(AppModel("", null, "", "", android.os.Process.myUserHandle())) + appsList.add(AppModel("", null, "", "", false, android.os.Process.myUserHandle())) this.appsList = appsList this.appFilteredList = appsList submitList(appsList) @@ -159,7 +158,7 @@ class AppDrawerAdapter( appHideLayout.visibility = View.GONE renameLayout.visibility = View.GONE appTitle.visibility = View.VISIBLE - appTitle.text = appModel.appLabel + appTitle.text = appModel.appLabel + if (appModel.isNew == true) " ✨" else "" appTitle.gravity = appLabelGravity otherProfileIndicator.isVisible = appModel.user != myUserHandle diff --git a/app/src/main/java/app/olauncher/ui/HomeFragment.kt b/app/src/main/java/app/olauncher/ui/HomeFragment.kt index e64ecd4..b603611 100644 --- a/app/src/main/java/app/olauncher/ui/HomeFragment.kt +++ b/app/src/main/java/app/olauncher/ui/HomeFragment.kt @@ -333,6 +333,7 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener null, packageName, activityClassName, + false, getUserHandleFromString(requireContext(), userString) ), Constants.FLAG_LAUNCH_APP -- cgit v1.2.1 From b72530f499cbbf107dc2f4693a5eb5a6bda4dfde Mon Sep 17 00:00:00 2001 From: Tanuj Date: Sun, 1 Sep 2024 11:53:03 +0530 Subject: Copy changes --- app/src/main/res/values/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e12299a..00ca5f1 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -71,10 +71,10 @@ \n\nThank you. Hi, you won\'t see this message again. \n\nIf you\'re finding Olauncher useful, could you please leave a 5-star review? It\'ll mean the world to us. Thank you! - We need your help! Last year we crossed a million downloads. This year we want to reach a million more. We can\'t do it alone. - \n\nCould you please share Olauncher with the world? Because Olauncher needs people, and people need Olauncher. - - + We need your help! We crossed a million downloads last year. This year, we want to reach a million more, but we can\'t do it alone. + \n\nOlauncher needs people, and people need Olauncher. Could you please share Olauncher with others? + + Hi, keyboard is the fastest way to find and launch apps in Olauncher. Can we request you to keep this On for a few more days and then decide? \n\nThe choice is always yours. If you want to set time limits for certain apps, Digital Wellbeing feature of Android can help you do it. @@ -141,7 +141,7 @@ Learn more Did you know? Leave a review - Olauncher is free and always will be. It has no ads. It collects no data. Most importantly, it helps you in reducing your screen time and live a healthier digital life. - \n\nWe believe that switching to a minimal launcher is an excellent decision. While we\'re obviously biased, we hope you\'re enjoying the experience. Feel free to share your thoughts with us! + Olauncher is free and always will be. It has no ads, collects no data, and helps you reduce screen time for a healthier digital life. + \n\nWe believe a minimal launcher is a great choice, and we hope you enjoy it. Tell the world what you think! Alignment changed ✅ \ No newline at end of file -- cgit v1.2.1 From 06618a1f44ebb87a99e45de12b0b236069baa1ea Mon Sep 17 00:00:00 2001 From: Tanuj Date: Sun, 1 Sep 2024 11:54:32 +0530 Subject: Changes in popup messages --- app/src/main/java/app/olauncher/MainActivity.kt | 7 ++++--- app/src/main/java/app/olauncher/helper/Extensions.kt | 3 +++ 2 files changed, 7 insertions(+), 3 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/MainActivity.kt b/app/src/main/java/app/olauncher/MainActivity.kt index 56d3478..2381132 100644 --- a/app/src/main/java/app/olauncher/MainActivity.kt +++ b/app/src/main/java/app/olauncher/MainActivity.kt @@ -20,6 +20,7 @@ import app.olauncher.data.Constants import app.olauncher.data.Prefs import app.olauncher.databinding.ActivityMainBinding import app.olauncher.helper.hasBeenDays +import app.olauncher.helper.hasBeenHours import app.olauncher.helper.isDarkThemeOn import app.olauncher.helper.isDefaultLauncher import app.olauncher.helper.isEinkDisplay @@ -184,7 +185,7 @@ class MainActivity : AppCompatActivity() { when (prefs.userState) { Constants.UserState.START -> { - if (prefs.firstOpenTime.hasBeenDays(1)) + if (prefs.firstOpenTime.hasBeenHours(1)) prefs.userState = Constants.UserState.REVIEW } @@ -199,14 +200,14 @@ class MainActivity : AppCompatActivity() { if (prefs.rateClicked) prefs.userState = Constants.UserState.SHARE else if (isOlauncherDefault(this) - && prefs.firstOpenTime.hasBeenDays(7) + && prefs.firstOpenTime.hasBeenDays(3) && Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 15 ) viewModel.showDialog.postValue(Constants.Dialog.RATE) } Constants.UserState.SHARE -> { if (isOlauncherDefault(this) && prefs.firstOpenTime.hasBeenDays(14) - && prefs.shareShownTime.hasBeenDays(35) + && prefs.shareShownTime.hasBeenDays(45) && Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 15 ) viewModel.showDialog.postValue(Constants.Dialog.SHARE) } diff --git a/app/src/main/java/app/olauncher/helper/Extensions.kt b/app/src/main/java/app/olauncher/helper/Extensions.kt index 585108a..c15d9e6 100644 --- a/app/src/main/java/app/olauncher/helper/Extensions.kt +++ b/app/src/main/java/app/olauncher/helper/Extensions.kt @@ -120,3 +120,6 @@ fun Context.isPackageInstalled(packageName: String, userHandle: UserHandle = and fun Long.hasBeenDays(days: Int): Boolean = ((System.currentTimeMillis() - this) / Constants.ONE_DAY_IN_MILLIS) >= days + +fun Long.hasBeenHours(hours: Int): Boolean = + ((System.currentTimeMillis() - this) / Constants.ONE_HOUR_IN_MILLIS) >= hours -- cgit v1.2.1 From a6824c995ff94c6f51d2372899378a012f49f7fd Mon Sep 17 00:00:00 2001 From: Tanuj Date: Sun, 1 Sep 2024 12:05:36 +0530 Subject: Minor changes --- app/src/main/java/app/olauncher/MainActivity.kt | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/MainActivity.kt b/app/src/main/java/app/olauncher/MainActivity.kt index 2381132..b078502 100644 --- a/app/src/main/java/app/olauncher/MainActivity.kt +++ b/app/src/main/java/app/olauncher/MainActivity.kt @@ -32,6 +32,7 @@ import app.olauncher.helper.resetLauncherViaFakeActivity import app.olauncher.helper.setPlainWallpaper import app.olauncher.helper.shareApp import app.olauncher.helper.showLauncherSelector +import app.olauncher.helper.showToast import java.util.Calendar class MainActivity : AppCompatActivity() { @@ -128,6 +129,7 @@ class MainActivity : AppCompatActivity() { showMessageDialog(getString(R.string.did_you_know), getString(R.string.review_message), getString(R.string.leave_a_review)) { binding.messageLayout.visibility = View.GONE prefs.rateClicked = true + showToast("😇🙏❤️") rateApp() } } @@ -137,6 +139,7 @@ class MainActivity : AppCompatActivity() { showMessageDialog(getString(R.string.app_name), getString(R.string.rate_us_message), getString(R.string.rate_now)) { binding.messageLayout.visibility = View.GONE prefs.rateClicked = true + showToast("🤩🙏❤️") rateApp() } } @@ -145,6 +148,7 @@ class MainActivity : AppCompatActivity() { prefs.shareShownTime = System.currentTimeMillis() showMessageDialog(getString(R.string.app_name), getString(R.string.share_message), getString(R.string.share_now)) { binding.messageLayout.visibility = View.GONE + showToast("😊🙏❤️") shareApp() } } -- cgit v1.2.1 From a03439f8131ec0d86efc41e3a19c8227d4bb3369 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Tue, 3 Sep 2024 15:04:10 +0530 Subject: Don't set wallpaper if phone is in landscape mode --- app/src/main/java/app/olauncher/helper/Utils.kt | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/helper/Utils.kt b/app/src/main/java/app/olauncher/helper/Utils.kt index 14612fa..181dfac 100644 --- a/app/src/main/java/app/olauncher/helper/Utils.kt +++ b/app/src/main/java/app/olauncher/helper/Utils.kt @@ -264,17 +264,16 @@ suspend fun getWallpaperBitmap(originalImage: Bitmap, width: Int, height: Int): suspend fun setWallpaper(appContext: Context, url: String): Boolean { return withContext(Dispatchers.IO) { val originalImageBitmap = getBitmapFromURL(url) ?: return@withContext false - val wallpaperManager = WallpaperManager.getInstance(appContext) + if (appContext.resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE && isTablet(appContext).not()) + return@withContext false + val wallpaperManager = WallpaperManager.getInstance(appContext) val (width, height) = getScreenDimensions(appContext) val scaledBitmap = getWallpaperBitmap(originalImageBitmap, width, height) try { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - wallpaperManager.setBitmap(scaledBitmap, null, false, WallpaperManager.FLAG_SYSTEM) - wallpaperManager.setBitmap(scaledBitmap, null, false, WallpaperManager.FLAG_LOCK) - } else - wallpaperManager.setBitmap(scaledBitmap) + wallpaperManager.setBitmap(scaledBitmap, null, false, WallpaperManager.FLAG_SYSTEM) + wallpaperManager.setBitmap(scaledBitmap, null, false, WallpaperManager.FLAG_LOCK) } catch (e: Exception) { return@withContext false } -- cgit v1.2.1 From a349434940b8ec23ddec3f827e39a3a5af10aa00 Mon Sep 17 00:00:00 2001 From: Tamas Balog Date: Fri, 6 Sep 2024 18:53:37 +0200 Subject: Update Hungarian translation based on the latest English changes --- app/src/main/res/values-hu/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index aa2e2fa..ce20e10 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -55,10 +55,10 @@ \n\nKöszönjük! Üdv, ezt az üzenetet nem fogja újra látni. \n\nHa tetszik az Olauncher, kérjük, adjon nekünk 5 csillagos értékelést! Ez segít javítani a helyezésünket, és nagyon boldoggá tesz minket. Köszönjük! - - - Az Ön havi emlékeztetője - használja Ön a telefonját, és ne a telefonja Önt! Csak így tovább! Nagyszerűen csinálja! - \n\nHa van egy kis ideje, kérjük, ossza meg másokkal is az Olauncher-t. Az Olauncher-nek szüksége van emberekre. De ami még fontosabb, az embereknek szüksége van az Olauncher-re.. + A segítségére van szükségünk! Tavaly átléptük az egymillió letöltést. Idén egy millióval többet szeretnénk elérni, de egyedül nem tudjuk megtenni. + \n\nAz Olauncher-nek emberekre van szüksége, az embereknek pedig az Olauncher-re. Köszönettel vennénk, ha megosztaná másokkal is az Olaunchert! + + Üdv, a billentyűzet a leggyorsabb módja az alkalmazások megtalálásához és elindításához az Olauncherben. Megkérhetjük, hogy hagyja bekapcsolva még néhány napig, és utána döntsön? \n\nA választás mindig az Öné. Ha időkorlátokat szeretne beállítani bizonyos alkalmazásokhoz, az Android Digital Wellbeing funkciója segíthet ebben. @@ -127,7 +127,7 @@ Tudjon meg többet Tudta? Hagyjon véleményt - Az Olauncher teljesen ingyenes és mindig is ingyenes lesz. Nincsenek hirdetései. Nem gyűjt adatokat. A legfontosabb, hogy segít csökkenteni a képernyő előtt töltött időt és egészségesebb digitális életet élni. - \n\nÚgy gondoljuk, hogy a minimális indítóra váltás kiváló döntés. Bár nyilvánvalóan elfogultak vagyunk, reméljük, hogy élvezni fogja az élményt. Nyugodtan ossza meg velünk gondolatait! + Az Olauncher teljesen ingyenes és mindig is az lesz. Nincsenek hirdetései, nem gyűjt adatokat, és segít csökkenteni a képernyő előtt töltött időt egy egészségesebb digitális élet végett. + \n\nÚgy gondoljuk, hogy egy minimális indítóra váltás kiváló döntés, és reméljük, hogy élvezni fogja. Ossza meg másokkal is tapasztalatait! Az igazítás megváltozott ✅ \ No newline at end of file -- cgit v1.2.1 From 2e30c0430c9fe8b10a0dacc74f47278700129baa Mon Sep 17 00:00:00 2001 From: Tanuj Date: Sat, 28 Sep 2024 10:22:20 +0530 Subject: Change in star indicator for new app --- app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt b/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt index b0b0f85..cc9dd2c 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerAdapter.kt @@ -158,7 +158,7 @@ class AppDrawerAdapter( appHideLayout.visibility = View.GONE renameLayout.visibility = View.GONE appTitle.visibility = View.VISIBLE - appTitle.text = appModel.appLabel + if (appModel.isNew == true) " ✨" else "" + appTitle.text = appModel.appLabel + if (appModel.isNew == true) " ✦" else "" appTitle.gravity = appLabelGravity otherProfileIndicator.isVisible = appModel.user != myUserHandle -- cgit v1.2.1 From d9b864e7c5ce433853ed481c35d380605c303e6f Mon Sep 17 00:00:00 2001 From: Tanuj Date: Tue, 1 Oct 2024 12:05:30 +0530 Subject: Copy changes --- app/src/main/java/app/olauncher/ui/SettingsFragment.kt | 2 +- app/src/main/res/layout-land/fragment_settings.xml | 2 +- app/src/main/res/layout/fragment_settings.xml | 2 +- app/src/main/res/values-ar/strings.xml | 2 ++ app/src/main/res/values-de/strings.xml | 1 + app/src/main/res/values-es-rES/strings.xml | 1 + app/src/main/res/values-es-rUS/strings.xml | 1 + app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values-hr/strings.xml | 1 + app/src/main/res/values-hu/strings.xml | 2 +- app/src/main/res/values-in/strings.xml | 1 + app/src/main/res/values-it/strings.xml | 1 + app/src/main/res/values-ja/strings.xml | 1 + app/src/main/res/values-pl/strings.xml | 1 + app/src/main/res/values-pt-rBR/strings.xml | 1 + app/src/main/res/values-ru-rRU/strings.xml | 1 + app/src/main/res/values-sv/strings.xml | 2 +- app/src/main/res/values-tr/strings.xml | 1 + app/src/main/res/values-uk/strings.xml | 1 + app/src/main/res/values-zh/strings.xml | 1 + app/src/main/res/values/strings.xml | 2 +- 21 files changed, 22 insertions(+), 6 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt index 531e2db..ff88dc7 100644 --- a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt +++ b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt @@ -271,7 +271,7 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe viewModel.isOlauncherDefault.observe(viewLifecycleOwner) { if (it) { binding.setLauncher.text = getString(R.string.change_default_launcher) - prefs.toShowHintCounter = prefs.toShowHintCounter + 1 + prefs.toShowHintCounter += 1 } } viewModel.homeAppAlignment.observe(viewLifecycleOwner) { diff --git a/app/src/main/res/layout-land/fragment_settings.xml b/app/src/main/res/layout-land/fragment_settings.xml index 9e00ebc..22aa09c 100644 --- a/app/src/main/res/layout-land/fragment_settings.xml +++ b/app/src/main/res/layout-land/fragment_settings.xml @@ -97,7 +97,7 @@ android:layout_marginStart="8dp" android:layout_marginTop="12dp" android:layout_marginBottom="8dp" - android:text="@string/digital_wellbeing" + android:text="@string/screen_time" android:visibility="gone" tools:visibility="visible" /> diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index 6f292f2..731db9b 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -98,7 +98,7 @@ android:layout_marginStart="8dp" android:layout_marginTop="12dp" android:layout_marginBottom="8dp" - android:text="@string/digital_wellbeing" + android:text="@string/screen_time" android:visibility="gone" tools:visibility="visible" /> diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 2ee2913..b507ac2 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -122,4 +122,6 @@ ترك التعليق Olauncher هو وسيظل دائمًا مجانيًا تمامًا. ليس لديها إعلانات. لا يجمع أي بيانات. والأهم من ذلك أنه يساعدك على تقليل وقت الشاشة والعيش حياة رقمية أكثر صحة. \n\nنحن نعتقد أن التحول إلى الحد الأدنى من المشغل هو قرار ممتاز. على الرغم من أننا متحيزون بشكل واضح، إلا أننا نأمل أن تستمتع بالتجربة. لا تتردد في مشاركة أفكارك معنا! + + وقت الشاشة \ No newline at end of file diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 12865b0..cdcb3d8 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -120,6 +120,7 @@ App nach links wischen deaktiviert App nach rechts wischen deaktiviert Benutzen Sie Ihr Telefon, oder nutzt Ihr Telefon Sie? + Bildschirmzeit Über Olauncher Erfahren Sie mehr Wussten Sie? diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index ccf642c..e119300 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -123,6 +123,7 @@ Acerca de Olauncher Aprende más ¿Sabías? + Tiempo de pantalla Dejar un comentario Olauncher es y será siempre completamente gratuito. No tiene anuncios. No recopila datos. Lo más importante es que te ayuda a reducir el tiempo que pasa frente a la pantalla y a vivir una vida digital más saludable. \n\nCreemos que cambiar a un lanzador mínimo es una excelente decisión. Aunque obviamente somos parciales, esperamos que disfrutes la experiencia. ¡No dudes en compartir tus pensamientos con nosotros! diff --git a/app/src/main/res/values-es-rUS/strings.xml b/app/src/main/res/values-es-rUS/strings.xml index 3ee1884..bc2c181 100644 --- a/app/src/main/res/values-es-rUS/strings.xml +++ b/app/src/main/res/values-es-rUS/strings.xml @@ -119,6 +119,7 @@ ¿Está usando su teléfono, o el teléfono lo usa a usted? Acerca de Olauncher Aprenda más + Tiempo de pantalla ¿Sabía qué? Dejar un comentario Olauncher es y será siempre completamente gratuito. No tiene anuncios. No recopila datos. Lo más importante es que le ayuda a reducir el tiempo que pasa frente a la pantalla y a vivir una vida digital más saludable. diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 0a47cbd..272c30b 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -124,6 +124,7 @@ Utilisez-vous votre téléphone, ou votre téléphone vous utilise-t-il? À propos Olauncher Apprendre encore plus + Temps d'écran Saviez-vous? Laisser un commentaire Olauncher est et sera toujours entièrement gratuit. Il n\'y a pas de publicité. Il ne collecte aucune donnée. Plus important encore, cela vous aide à réduire votre temps d’écran et à vivre une vie numérique plus saine. diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index fda7d01..d284f9e 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -84,6 +84,7 @@ Obavijesti Saznajte više Dali si znao? + Vrijeme na ekranu Ostavite recenziju Olauncher jest i uvijek će biti potpuno besplatan. Nema reklama. Ne prikuplja podatke. Što je najvažnije, pomaže vam u smanjenju vremena koje provodite pred ekranom i živite zdravijim digitalnim životom. \n\nVjerujemo da je prelazak na minimalni launcher izvrsna odluka. Iako smo očito pristrani, nadamo se da uživate u iskustvu. Slobodno podijelite svoje misli s nama! diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index aa2e2fa..527ff1f 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -123,7 +123,7 @@ Rejtsd el! Ön használja a telefonját, vagy a telefonja használja Önt? Az Olauncher-ről - Digitális jóllét + Képernyőidő Tudjon meg többet Tudta? Hagyjon véleményt diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 13c8018..56a6e48 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -119,6 +119,7 @@ Apakah Anda menggunakan ponsel Anda, atau ponsel Anda menggunakan Anda? Tentang Olauncher Pelajari lebih lanjut + Waktu layar Tahukah kamu? Tinggalkan ulasan Olauncher sepenuhnya gratis dan akan selalu gratis. Tidak ada iklan. Tidak mengumpulkan data pribadi. Yang terpenting, ini membantu Anda mengurangi waktu pemakaian perangkat dan menjalani kehidupan digital yang lebih sehat. diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 639f447..41a6fb5 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -122,6 +122,7 @@ Stai usando il tuo telefono, o è il tuo telefono che sta usando te? Info Olauncher Saperne di più + Tempo di schermo Lo sapevate? Lascia una recensione Olauncher è e sarà sempre completamente gratuito. Non ha pubblicità. Non raccoglie dati. Ancora più importante, ti aiuta a ridurre il tempo trascorso davanti allo schermo e a vivere una vita digitale più sana. diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 7b66dc3..438e239 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -117,6 +117,7 @@ アプリを左にスワイプ有効化 アプリを右にスワイプ有効 左にスワイプするとアプリが無効になります + スクリーンタイム アプリを右にスワイプすると無効になります あなたは電話を使っていますか、それともあなたの電話があなたを使っていますか? アバウト Olauncher diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 4511a80..bba9f9d 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -119,6 +119,7 @@ Gest Przesuń w prawo jest wyłączony Czy używasz telefonu, czy telefon używa ciebie? O Olauncher + Czas ekranowy Ucz się więcej Czy wiedziałeś? Ucz się więcej diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index a1edb78..2153e4e 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -122,6 +122,7 @@ Você está usando seu telefone, ou seu telefone está usando você? Sobre Olauncher Saber mais + Tempo de tela Você sabia? Deixe um comentário Olauncher é e sempre será totalmente gratuito. Não tem anúncios. Não coleta dados. Mais importante ainda, ajuda você a reduzir o tempo de tela e a ter uma vida digital mais saudável. diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 652378b..5198eaa 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -121,6 +121,7 @@ Скрыть Вы используете свой телефон, или ваш телефон использует вас? О нас Olauncher + Время на экране Узнать больше Вы знали? Оставить отзыв diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 9e323c9..4f8c984 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -120,7 +120,7 @@ Dölj Använder du din telefon, eller använder din telefon dig? Om Olauncher - Digitalt välmående + Skärmtid Läs mer Visste du? Lämna en recension diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 01fb287..79780d1 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -122,6 +122,7 @@ Sen mi telefonunu, kullanıyorsun yoksa telefon mu seni kullanıyor? Hakkında Olauncher Daha fazla bilgi edin + Ekran süresi Biliyor musun? İnceleme bırak Olauncher tamamen ücretsizdir ve her zaman ücretsiz olacaktır. Hiçbir reklamı yok. Hiçbir veri toplamaz. En önemlisi ekran başında geçirdiğiniz süreyi azaltmanıza ve daha sağlıklı bir dijital yaşam sürmenize yardımcı olur. diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 3b1a987..1e0902e 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -122,6 +122,7 @@ Ви користуєтеся своїм телефоном, чи ваш телефон використовує вас? Про нас Olauncher Вивчайте більше + Час екрану Ти знав? Залиште відгук Olauncher є і завжди буде абсолютно безкоштовним. У ньому немає реклами. Він не збирає дані. Найважливіше те, що це допомагає вам скоротити час використання екрана та жити здоровішим цифровим життям. diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 4113bee..2d0b3a7 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -122,6 +122,7 @@ 是你在用手机,还是手机在用你? 关于 Olauncher 了解更多 + 屏幕时间 你可知道? 发表评论 Olauncher 现在并且永远是完全免费的。它没有广告。它不收集任何数据。最重要的是,它可以帮助您减少屏幕时间并过上更健康的数字生活。 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 00ca5f1..6ef72cb 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -137,7 +137,7 @@ Hide Are you using your phone, or is your phone using you? About and FAQs - Digital Wellbeing + Screen time Learn more Did you know? Leave a review -- cgit v1.2.1 From 1f468fd05e29729e3d58e35951a1696af795042d Mon Sep 17 00:00:00 2001 From: Tanuj Date: Tue, 1 Oct 2024 12:15:51 +0530 Subject: Added some missing translations! --- app/src/main/res/values-ar/strings.xml | 1 + app/src/main/res/values-de/strings.xml | 1 + app/src/main/res/values-es-rES/strings.xml | 1 + app/src/main/res/values-es-rUS/strings.xml | 1 + app/src/main/res/values-fr/strings.xml | 3 ++- app/src/main/res/values-hr/strings.xml | 40 ++++++++++++++++++++++++++++++ app/src/main/res/values-hu/strings.xml | 6 ++--- app/src/main/res/values-in/strings.xml | 1 + app/src/main/res/values-it/strings.xml | 1 + app/src/main/res/values-ja/strings.xml | 1 + app/src/main/res/values-pl/strings.xml | 1 + app/src/main/res/values-pt-rBR/strings.xml | 1 + app/src/main/res/values-ru-rRU/strings.xml | 1 + app/src/main/res/values-sv/strings.xml | 2 +- app/src/main/res/values-tr/strings.xml | 1 + app/src/main/res/values-uk/strings.xml | 1 + app/src/main/res/values-zh/strings.xml | 1 + 17 files changed, 59 insertions(+), 5 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index b507ac2..a6b0947 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -124,4 +124,5 @@ \n\nنحن نعتقد أن التحول إلى الحد الأدنى من المشغل هو قرار ممتاز. على الرغم من أننا متحيزون بشكل واضح، إلا أننا نأمل أن تستمتع بالتجربة. لا تتردد في مشاركة أفكارك معنا! وقت الشاشة + تم تغيير المحاذاة ✅ \ No newline at end of file diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index cdcb3d8..2e83bda 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -127,4 +127,5 @@ Rezension Olauncher ist und bleibt völlig kostenlos. Es gibt keine Werbung. Es werden keine Daten erfasst. Am wichtigsten ist, dass es Ihnen dabei hilft, Ihre Bildschirmzeit zu verkürzen und ein gesünderes digitales Leben zu führen. \n\nWir glauben, dass der Wechsel zu einem Minimal Launcher eine ausgezeichnete Entscheidung ist. Obwohl wir offensichtlich voreingenommen sind, hoffen wir, dass Ihnen die Erfahrung gefällt. Teilen Sie uns gerne Ihre Gedanken mit! + Ausrichtung geändert ✅ diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index e119300..d01d9a0 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -127,4 +127,5 @@ Dejar un comentario Olauncher es y será siempre completamente gratuito. No tiene anuncios. No recopila datos. Lo más importante es que te ayuda a reducir el tiempo que pasa frente a la pantalla y a vivir una vida digital más saludable. \n\nCreemos que cambiar a un lanzador mínimo es una excelente decisión. Aunque obviamente somos parciales, esperamos que disfrutes la experiencia. ¡No dudes en compartir tus pensamientos con nosotros! + Alineación cambiada ✅ diff --git a/app/src/main/res/values-es-rUS/strings.xml b/app/src/main/res/values-es-rUS/strings.xml index bc2c181..be60ea6 100644 --- a/app/src/main/res/values-es-rUS/strings.xml +++ b/app/src/main/res/values-es-rUS/strings.xml @@ -124,4 +124,5 @@ Dejar un comentario Olauncher es y será siempre completamente gratuito. No tiene anuncios. No recopila datos. Lo más importante es que le ayuda a reducir el tiempo que pasa frente a la pantalla y a vivir una vida digital más saludable. \n\nCreemos que cambiar a un lanzador mínimo es una excelente decisión. Aunque obviamente somos parciales, esperamos que disfrutes la experiencia. ¡No dude en compartir sus pensamientos con nosotros! + Alineación cambiada ✅ diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 272c30b..7a38be7 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -124,9 +124,10 @@ Utilisez-vous votre téléphone, ou votre téléphone vous utilise-t-il? À propos Olauncher Apprendre encore plus - Temps d'écran + Temps d\'écran Saviez-vous? Laisser un commentaire Olauncher est et sera toujours entièrement gratuit. Il n\'y a pas de publicité. Il ne collecte aucune donnée. Plus important encore, cela vous aide à réduire votre temps d’écran et à vivre une vie numérique plus saine. \n\nNous pensons que passer à un lanceur minimal est une excellente décision. Même si nous sommes évidemment partiaux, nous espérons que vous appréciez l\'expérience. N\'hésitez pas à partager vos idées avec nous! + Alignement changé ✅ diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index d284f9e..5fc882b 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -58,6 +58,8 @@ \n\nBok, ako uživaš u korištenju Olaunchera, možeš li nam dati recenziju s 5 zvijezdica? To nam donosi više korisnika i usrećuje nas.\nHvala ti i sretan ostatak dana! Bok, trebamo tvoju pomoć! Prošle godine prešli smo milijun preuzimanja. Ove godine želimo doseći milijun više, ali ne možemo sami. \n\nHoćete li, molim vas, biti ljubazni podijeliti Olauncher sa svojim prijateljima? Hvala i ugodan dan! + Bok, tipkovnica je najbrži način za pronalaženje i pokretanje aplikacija u Olauncheru. Možemo li vas zamoliti da to zadržite uključeno još nekoliko dana, a zatim odlučite? + \n\nIzbor je uvijek vaš. Ako želite postaviti vremenska ograničenja za određene aplikacije, značajka Digital Wellbeing na Androidu može vam pomoći u tome. \n\nPotražite Digital Wellbeing u postavkama telefona i omogućite ga. Dozvola za pristupačnost potrebna je za omogućavanje zaključavanja dvostrukim dodirom. Bilo koji podatci prikupljeni ovim servisom neće napustiti tvoj uređaj. @@ -67,6 +69,7 @@ Otvori poveznicu Kopiraj Zatvori + Ne sad Javni plan razvoja Olaunchera Instagram Twitter @@ -88,4 +91,41 @@ Ostavite recenziju Olauncher jest i uvijek će biti potpuno besplatan. Nema reklama. Ne prikuplja podatke. Što je najvažnije, pomaže vam u smanjenju vremena koje provodite pred ekranom i živite zdravijim digitalnim životom. \n\nVjerujemo da je prelazak na minimalni launcher izvrsna odluka. Iako smo očito pristrani, nadamo se da uživate u iskustvu. Slobodno podijelite svoje misli s nama! + + Molimo vas da uključite ili isključite Olauncherovu uslugu pristupa u postavkama vašeg uređaja kako biste omogućili ili onemogućili ovu funkciju.\n\nImajte na umu da se ova usluga koristi samo za isključivanje ekrana vašeg uređaja pomoću geste dvostrukog dodira. Naša usluga pristupa ne prikuplja niti dijeli bilo kakve podatke. + Prihvati + Dozvola + Dvostruki dodir za zaključavanje + Omogući + Onemogući + Ne radi? + Informacije + Izbriši + Veličina teksta + Omogućeno + Onemogućeno + Molimo vas da uključite dvostruki dodir za otključavanje + Olauncher nije uspio zaključati uređaj.\nMolimo provjerite postavke aplikacije. + Dugo pritisnite za odabir aplikacije + Nije moguće otvoriti informacije o aplikaciji + Kopirano + Sistemska aplikacija, ne može se izbrisati + Prvo upišite novo ime aplikacije + Aplikacija nije pronađena + Nije moguće pokrenuti aplikaciju + Pretraži Launcher ili Home aplikaciju + Povucite lijevo, aplikacija omogućena + Povucite desno, aplikacija omogućena + Povucite lijevo, aplikacija onemogućena + Povucite desno, aplikacija onemogućena + Vaša pozadina će se uskoro ažurirati + Olauncher nije zadani. Ažuriranje pozadine će ne uspjeti. + Dugo pritisnite za omogućavanje + Nema skrivenih aplikacija + Skrivene aplikacije + Prikaži + Sakrij + Koristite li svoj telefon ili vaš telefon koristi vas? + O Olauncher-u i ČPP + Poravnanje promijenjeno ✅ diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 527ff1f..f93d3a0 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -55,8 +55,8 @@ \n\nKöszönjük! Üdv, ezt az üzenetet nem fogja újra látni. \n\nHa tetszik az Olauncher, kérjük, adjon nekünk 5 csillagos értékelést! Ez segít javítani a helyezésünket, és nagyon boldoggá tesz minket. Köszönjük! - - + + Az Ön havi emlékeztetője - használja Ön a telefonját, és ne a telefonja Önt! Csak így tovább! Nagyszerűen csinálja! \n\nHa van egy kis ideje, kérjük, ossza meg másokkal is az Olauncher-t. Az Olauncher-nek szüksége van emberekre. De ami még fontosabb, az embereknek szüksége van az Olauncher-re.. Üdv, a billentyűzet a leggyorsabb módja az alkalmazások megtalálásához és elindításához az Olauncherben. Megkérhetjük, hogy hagyja bekapcsolva még néhány napig, és utána döntsön? @@ -129,5 +129,5 @@ Hagyjon véleményt Az Olauncher teljesen ingyenes és mindig is ingyenes lesz. Nincsenek hirdetései. Nem gyűjt adatokat. A legfontosabb, hogy segít csökkenteni a képernyő előtt töltött időt és egészségesebb digitális életet élni. \n\nÚgy gondoljuk, hogy a minimális indítóra váltás kiváló döntés. Bár nyilvánvalóan elfogultak vagyunk, reméljük, hogy élvezni fogja az élményt. Nyugodtan ossza meg velünk gondolatait! - Az igazítás megváltozott ✅ + Igazítás megváltozott ✅ \ No newline at end of file diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 56a6e48..b1b12a1 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -124,4 +124,5 @@ Tinggalkan ulasan Olauncher sepenuhnya gratis dan akan selalu gratis. Tidak ada iklan. Tidak mengumpulkan data pribadi. Yang terpenting, ini membantu Anda mengurangi waktu pemakaian perangkat dan menjalani kehidupan digital yang lebih sehat. \n\nKami percaya bahwa beralih ke peluncur minimal adalah keputusan yang sangat baik. Meskipun kami jelas-jelas bias, kami harap Anda menikmati pengalaman ini. Jangan ragu untuk berbagi pemikiran Anda dengan kami! + Penyelarasan diubah ✅ \ No newline at end of file diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 41a6fb5..f6cae22 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -127,4 +127,5 @@ Lascia una recensione Olauncher è e sarà sempre completamente gratuito. Non ha pubblicità. Non raccoglie dati. Ancora più importante, ti aiuta a ridurre il tempo trascorso davanti allo schermo e a vivere una vita digitale più sana. \n\nCrediamo che passare a un launcher minimale sia un\'ottima decisione. Anche se siamo ovviamente di parte, ci auguriamo che l\'esperienza ti piaccia. Sentitevi liberi di condividere i tuoi pensieri con noi! + Allineamento cambiato ✅ \ No newline at end of file diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 438e239..1420e9e 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -126,4 +126,5 @@ レビューを残す Olauncher は現在も、今後も完全に無料です。広告はありません。データは収集されません。最も重要なことは、スクリーンタイムを短縮し、より健康的なデジタル ライフを送るのに役立つことです。 \n\n私たちは、最小限のランチャーに切り替えるのは素晴らしい決断だと信じています。明らかに偏見がありますが、楽しんでいただければ幸いです。ぜひご意見をお聞かせください。 + アライメントが変更されました ✅ \ No newline at end of file diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index bba9f9d..178654e 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -125,4 +125,5 @@ Ucz się więcej Olauncher jest i zawsze będzie całkowicie darmowy. Nie zawiera reklam. Nie zbiera żadnych danych. Co najważniejsze, pomaga skrócić czas spędzany przed ekranem i prowadzić zdrowsze cyfrowe życie. \n\nWierzymy, że przejście na minimalny program uruchamiający to doskonała decyzja. Chociaż jesteśmy oczywiście stronniczy, mamy nadzieję, że spodoba ci się to doświadczenie. Podziel się z nami swoimi przemyśleniami! + Wyrównanie zmienione ✅ diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 2153e4e..32af0ac 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -127,4 +127,5 @@ Deixe um comentário Olauncher é e sempre será totalmente gratuito. Não tem anúncios. Não coleta dados. Mais importante ainda, ajuda você a reduzir o tempo de tela e a ter uma vida digital mais saudável. \n\nAcreditamos que mudar para um launcher mínimo é uma excelente decisão. Embora sejamos obviamente tendenciosos, esperamos que você esteja gostando da experiência. Sinta-se à vontade para compartilhar suas idéias conosco! + Alinhamento alterado ✅ \ No newline at end of file diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 5198eaa..61b2fa3 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -127,4 +127,5 @@ Оставить отзыв Olauncher есть и всегда будет полностью бесплатным. В нем нет рекламы. Он не собирает никаких данных. Самое главное, это помогает вам сократить время, проводимое перед экраном, и вести более здоровую цифровую жизнь. \n\nМы считаем, что переход на минимальный лаунчер — отличное решение. Хотя мы явно предвзяты, мы надеемся, что вам понравится этот опыт. Не стесняйтесь поделиться с нами своим мнением! + Выравнивание изменено ✅ diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 4f8c984..424a45f 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -126,5 +126,5 @@ Lämna en recension Olauncher är gratis och kommer alltid att vara det. Den har inga annonser. Den samlar inte in någon data. Viktigast av allt, det hjälper dig att minska din skärmtid och leva ett hälsosammare digitalt liv. \n\nVi tycker att det är ett utmärkt beslut att byta till en minimalistisk startskärmsapp. Även om vi uppenbarligen är partiska, hoppas vi att du gillar upplevelsen. Vi vill gärna höra dina tankar! - Placering ändrad ✅ + Justering ändrad ✅ \ No newline at end of file diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 79780d1..637eed2 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -127,4 +127,5 @@ İnceleme bırak Olauncher tamamen ücretsizdir ve her zaman ücretsiz olacaktır. Hiçbir reklamı yok. Hiçbir veri toplamaz. En önemlisi ekran başında geçirdiğiniz süreyi azaltmanıza ve daha sağlıklı bir dijital yaşam sürmenize yardımcı olur. \n\nMinimal bir başlatıcıya geçmenin mükemmel bir karar olduğuna inanıyoruz. Açıkça ön yargılı olsak da, bu deneyimden keyif alacağınızı umuyoruz. Düşüncelerinizi bizimle paylaşmaktan çekinmeyin! + Hizalama değiştirildi ✅ \ No newline at end of file diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 1e0902e..33f3546 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -127,4 +127,5 @@ Залиште відгук Olauncher є і завжди буде абсолютно безкоштовним. У ньому немає реклами. Він не збирає дані. Найважливіше те, що це допомагає вам скоротити час використання екрана та жити здоровішим цифровим життям. \n\nМи вважаємо, що перехід на мінімальний лаунчер є відмінним рішенням. Хоча ми явно упереджені, ми сподіваємося, що вам сподобається. Не соромтеся поділитися з нами своїми думками! + Вирівнювання змінено ✅ diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 2d0b3a7..0297c46 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -127,4 +127,5 @@ 发表评论 Olauncher 现在并且永远是完全免费的。它没有广告。它不收集任何数据。最重要的是,它可以帮助您减少屏幕时间并过上更健康的数字生活。 \n\n我们相信切换到最小启动器是一个很好的决定。虽然我们显然有偏见,但我们希望您喜欢这次体验。请随时与我们分享您的想法! + 对齐已更改 ✅ -- cgit v1.2.1 From 743a2221d61c7281d7a901331f795495d5baf952 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Tue, 1 Oct 2024 12:49:34 +0530 Subject: Minor text size changes --- app/src/main/res/values-xxhdpi/dimens.xml | 2 +- app/src/main/res/values-xxxhdpi/dimens.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/res/values-xxhdpi/dimens.xml b/app/src/main/res/values-xxhdpi/dimens.xml index d601687..34d6328 100644 --- a/app/src/main/res/values-xxhdpi/dimens.xml +++ b/app/src/main/res/values-xxhdpi/dimens.xml @@ -5,6 +5,6 @@ 12dp 10dp - 70sp + 66sp 18sp \ No newline at end of file diff --git a/app/src/main/res/values-xxxhdpi/dimens.xml b/app/src/main/res/values-xxxhdpi/dimens.xml index 6e38b44..247b4a5 100644 --- a/app/src/main/res/values-xxxhdpi/dimens.xml +++ b/app/src/main/res/values-xxxhdpi/dimens.xml @@ -5,6 +5,6 @@ 16dp 14dp - 70sp + 66sp 18sp -- cgit v1.2.1 From 781bd67dc7efd492360ec1d9777e327057a5e857 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Tue, 1 Oct 2024 13:09:36 +0530 Subject: Translation and copy changes --- app/src/main/java/app/olauncher/MainActivity.kt | 11 ++++++++--- app/src/main/java/app/olauncher/data/Constants.kt | 1 + app/src/main/java/app/olauncher/ui/SettingsFragment.kt | 1 + app/src/main/res/values-ar/strings.xml | 2 +- app/src/main/res/values-de/strings.xml | 3 ++- app/src/main/res/values-es-rES/strings.xml | 3 ++- app/src/main/res/values-es-rUS/strings.xml | 3 ++- app/src/main/res/values-fr/strings.xml | 3 ++- app/src/main/res/values-hr/strings.xml | 4 ++-- app/src/main/res/values-hu/strings.xml | 4 ++-- app/src/main/res/values-in/strings.xml | 3 ++- app/src/main/res/values-it/strings.xml | 4 ++-- app/src/main/res/values-ja/strings.xml | 3 ++- app/src/main/res/values-pl/strings.xml | 3 ++- app/src/main/res/values-pt-rBR/strings.xml | 3 ++- app/src/main/res/values-ru-rRU/strings.xml | 3 ++- app/src/main/res/values-sv/strings.xml | 4 ++-- app/src/main/res/values-tr/strings.xml | 3 ++- app/src/main/res/values-uk/strings.xml | 3 ++- app/src/main/res/values-zh/strings.xml | 3 ++- app/src/main/res/values/strings.xml | 4 ++-- 21 files changed, 45 insertions(+), 26 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/MainActivity.kt b/app/src/main/java/app/olauncher/MainActivity.kt index b078502..ca4cbfc 100644 --- a/app/src/main/java/app/olauncher/MainActivity.kt +++ b/app/src/main/java/app/olauncher/MainActivity.kt @@ -124,12 +124,17 @@ class MainActivity : AppCompatActivity() { } viewModel.showDialog.observe(this) { when (it) { + Constants.Dialog.ABOUT -> { + showMessageDialog(getString(R.string.app_name), getString(R.string.welcome_to_olauncher_settings), getString(R.string.okay)) { + binding.messageLayout.visibility = View.GONE + } + } Constants.Dialog.REVIEW -> { prefs.userState = Constants.UserState.RATE showMessageDialog(getString(R.string.did_you_know), getString(R.string.review_message), getString(R.string.leave_a_review)) { binding.messageLayout.visibility = View.GONE prefs.rateClicked = true - showToast("😇🙏❤️") + showToast("😇❤️") rateApp() } } @@ -139,7 +144,7 @@ class MainActivity : AppCompatActivity() { showMessageDialog(getString(R.string.app_name), getString(R.string.rate_us_message), getString(R.string.rate_now)) { binding.messageLayout.visibility = View.GONE prefs.rateClicked = true - showToast("🤩🙏❤️") + showToast("🤩❤️") rateApp() } } @@ -148,7 +153,7 @@ class MainActivity : AppCompatActivity() { prefs.shareShownTime = System.currentTimeMillis() showMessageDialog(getString(R.string.app_name), getString(R.string.share_message), getString(R.string.share_now)) { binding.messageLayout.visibility = View.GONE - showToast("😊🙏❤️") + showToast("😊❤️") shareApp() } } diff --git a/app/src/main/java/app/olauncher/data/Constants.kt b/app/src/main/java/app/olauncher/data/Constants.kt index 5b3e0a7..b7bd8b1 100644 --- a/app/src/main/java/app/olauncher/data/Constants.kt +++ b/app/src/main/java/app/olauncher/data/Constants.kt @@ -8,6 +8,7 @@ object Constants { } object Dialog { + const val ABOUT = "ABOUT" const val REVIEW = "REVIEW" const val RATE = "RATE" const val SHARE = "SHARE" diff --git a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt index ff88dc7..c6b2130 100644 --- a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt +++ b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt @@ -266,6 +266,7 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe private fun initObservers() { if (prefs.firstSettingsOpen) { + viewModel.showDialog.postValue(Constants.Dialog.ABOUT) prefs.firstSettingsOpen = false } viewModel.isOlauncherDefault.observe(viewLifecycleOwner) { diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index a6b0947..f651315 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -85,7 +85,7 @@ نظام مظلم ضوء - تحتوي صفحة \"حول\" في الأسفل على إجابات لجميع أسئلتك. لا تنسى. شكرًا لك. + مرحبًا بك في الإعدادات!\n\nتذكر، إذا كان لديك أي سؤال، فإن صفحة "حول" لدينا تحتوي على الإجابة. مرحبًا ، لن ترى هذه الرسالة مرة أخرى. \n\nإذا كنت تحب Olauncher ، فهل يمكنك أن تعطينا تصنيف 5 نجوم؟ يساعدنا ذلك على تحسين تصنيفنا ويجعلنا سعداء. شكرًا لك! مرحبا، نحن بحاجة لمساعدتكم! في العام الماضي تجاوزنا مليون عملية تنزيل. نريد هذا العام أن نصل إلى مليون آخرين ولكن لا يمكننا القيام بذلك بمفردنا. diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 2e83bda..c1dfd96 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -86,7 +86,8 @@ System Dunkel Hell - Auf unserer About-Seite unten finden Sie Antworten auf alle Ihre Fragen. Vergiss es nicht. :)\n\nDan­ke­schön. + Willkommen in den Einstellungen! + \n\nDenken Sie daran, wenn Sie Fragen haben, unsere Seite „Über“ hat die Antwort. Hallo, diese Nachricht wird Ihnen nicht mehr angezeigt. \n\nWenn Ihnen Olauncher gefällt, können Sie uns bitte eine 5-Sterne-Bewertung geben? Es hilft uns, unser Ranking zu verbessern und macht uns glücklich. Dan­ke­schön! Hallo, wir brauchen deine Hilfe! Letztes Jahr haben wir die Marke von einer Million Downloads überschritten. Dieses Jahr wollen wir eine Million mehr erreichen, aber alleine schaffen wir das nicht. diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index d01d9a0..ab1ce05 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -53,7 +53,8 @@ Sistema Oscuro Claro - Nuestra página \'Acerca de\' en la parte inferior tiene respuestas a todas sus preguntas. no lo olvides :)\n\nGracias. + ¡Bienvenido a la configuración! + \n\nRecuerda, si tienes alguna pregunta, nuestra página Acerca de tiene la respuesta. Hola, no volverás a ver este mensaje. \n\nSi te gusta Olauncher, ¿puedes darnos una calificación de 5 estrellas? Nos ayuda a mejorar nuestra clasificación y nos hace felices. ¡Gracias! Hola, necesitamos tu ayuda! El año pasado superamos el millón de descargas. Este año queremos llegar a un millón más, pero no podemos hacerlo solos. diff --git a/app/src/main/res/values-es-rUS/strings.xml b/app/src/main/res/values-es-rUS/strings.xml index be60ea6..91ec3aa 100644 --- a/app/src/main/res/values-es-rUS/strings.xml +++ b/app/src/main/res/values-es-rUS/strings.xml @@ -53,7 +53,8 @@ Sistema Oscuro Claro - Nuestra página Acerca de en la parte inferior tiene respuestas a todas tus preguntas. No lo olvides. :) + ¡Bienvenido a la configuración! + \n\nRecuerda, si tienes alguna pregunta, nuestra página Acerca de tiene la respuesta. Hola, no volverá a ver este mensaje. \n\nSi le gusta Olauncher, ¿puede darnos una calificación de 5 estrellas? Nos ayuda a mejorar nuestra clasificación y nos hace felices. ¡Gracias! Hola, necesitamos su ayuda! El año pasado superamos el millón de descargas. Este año queremos llegar a un millón más pero no podemos hacerlo solos. diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 7a38be7..41c6e93 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -53,7 +53,8 @@ Système Sombre Clair - Notre page \"À propos\" en bas a des réponses à toutes vos questions. :)\n\nMerci! + Bienvenue dans les paramètres ! + \n\nN\'oubliez pas, si vous avez des questions, notre page À propos a la réponse. Hé, trouvez-vous Olauncher utile? Si oui, une note de 5 étoiles est le meilleur moyen de nous soutenir. \n\nMerci, vous ne verrez plus ce message. Bonjour, nous avons besoin de votre aide ! L\'année dernière, nous avons franchi le million de téléchargements. Cette année, nous voulons atteindre un million de plus, mais nous ne pouvons pas le faire seuls. diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 5fc882b..ffe9c9e 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -52,8 +52,8 @@ Sustav Tamna Svijetla - Naša stranica s informacijama na dnu zaslona ima odgovore na sva tvoja pitanja. Nemoj zaboraviti to. :) - \n\nHvala ti. + Dobrodošli u postavke! + \n\nZapamtite, ako imate bilo kakvih pitanja, naša stranica O nama ima odgovor. Ovu poruku više nećeš vidjeti. \n\nBok, ako uživaš u korištenju Olaunchera, možeš li nam dati recenziju s 5 zvijezdica? To nam donosi više korisnika i usrećuje nas.\nHvala ti i sretan ostatak dana! Bok, trebamo tvoju pomoć! Prošle godine prešli smo milijun preuzimanja. Ove godine želimo doseći milijun više, ali ne možemo sami. diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index f93d3a0..2009c9f 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -51,8 +51,8 @@ Rendszer Sötét Világos - A Névjegy oldalunk alján megtalálja a válaszokat minden kérdésére. Ne feledje el. :) - \n\nKöszönjük! + Üdvözöljük a beállításokban! + \n\nNe feledje, ha bármilyen kérdése van, az „Rólunk” oldalunk tartalmazza a választ. Üdv, ezt az üzenetet nem fogja újra látni. \n\nHa tetszik az Olauncher, kérjük, adjon nekünk 5 csillagos értékelést! Ez segít javítani a helyezésünket, és nagyon boldoggá tesz minket. Köszönjük! diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index b1b12a1..cf4e4e2 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -53,7 +53,8 @@ Sistem Gelap Terang - Halaman Tentang kami di bagian bawah memiliki jawaban atas semua pertanyaan Anda. Jangan lupa. :) + Selamat datang di pengaturan! + \n\nIngat, jika Anda memiliki pertanyaan, halaman Tentang kami memiliki jawabannya. Hai, Anda tidak akan melihat pesan ini lagi. \n\nJika Anda menyukai Olauncher, bisakah Anda memberi kami peringkat bintang 5? Ini membantu kami meningkatkan peringkat kami dan membuat kami bahagia. Terima kasih! Hai, kami membutuhkan bantuan Anda! Tahun lalu kami melampaui satu juta unduhan. Tahun ini kami ingin menjangkau satu juta orang lagi tetapi kami tidak dapat melakukannya sendiri. diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index f6cae22..8b3fd6c 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -52,8 +52,8 @@ di sistema Scuro Chiaro - La nostra pagina Informazioni in basso ha le risposto a tutte le tue domande. Non dimenticare. :) - \n\nGrazie. + Benvenuto nelle impostazioni! + \n\nRicorda, se hai domande, la nostra pagina Informazioni ha la risposta. Ehi, trovi utile Olauncher? Se sì, una valutazione a 5 stelle è il modo migliore per sostenerci. \n\nGrazie e non lo vedrai più. Ciao, abbiamo bisogno del tuo aiuto! L\'anno scorso abbiamo superato il milione di download. Quest’anno vogliamo raggiungere un milione in più ma non possiamo farcela da soli. diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 1420e9e..5f5fcf7 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -87,7 +87,8 @@ システム ダーク ライト - 下部にある当社の概要ページには、すべての質問への回答が記載されています。忘れないで。 :)\n\nありがとう。 + 設定へようこそ! + \n\n質問がある場合は、私たちの「About」ページに答えがありますので、覚えておいてください。 ねえ、Olauncher は役に立つと思いますか? 「はい」の場合、5 つ星の評価が私たちをサポートする最善の方法です。\n\nありがとう、もうこれを見ることはないだろう。 こんにちは、あなたの助けが必要です!昨年、ダウンロード数が 100 万件を突破しました。今年はさらに 100 万人を達成したいと考えていますが、私たちだけでは達成できません。 \n\nOlauncher をお友達と共有していただけますか?ありがとう、そして素晴らしい一日をお過ごしください! diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 178654e..7970b04 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -86,7 +86,8 @@ System Ciemny Jasny - Nasza strona Informacje na dole zawiera odpowiedzi na wszystkie Twoje pytania. Nie zapomnij. :)\n\nDziękuję. + Witamy w ustawieniach! + \n\nPamiętaj, jeśli masz jakiekolwiek pytania, nasza strona „O nas” ma odpowiedź. Hej, czy uważasz, że Olauncher jest przydatny? Jeśli tak, ocena 5 gwiazdek to najlepszy sposób, aby nas wesprzeć.\n\nDziękuję i więcej tego nie zobaczysz. Cześć, potrzebujemy Twojej pomocy! W zeszłym roku przekroczyliśmy milion pobrań. W tym roku chcemy dotrzeć do kolejnego miliona, ale sami nie możemy tego zrobić. \n\nCzy byłbyś tak miły i udostępnił Olauncher swoim znajomym? Dziękuję i życzę cudownego dnia! diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 32af0ac..3af6d22 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -53,7 +53,8 @@ Sistema Escuro Claro - Nossa página Sobre, na parte inferior, tem respostas para todas as suas perguntas. Não se esqueça. :) + Bem-vindo às configurações! + \n\nLembre-se, se você tiver alguma dúvida, nossa página Sobre tem a resposta. Ei, você acha Olauncher útil? Se sim, uma classificação de 5 estrelas é a melhor maneira de nos apoiar. Obrigado. Olá, precisamos da sua ajuda! No ano passado ultrapassamos um milhão de downloads. Este ano queremos chegar a mais um milhão, mas não podemos fazê-lo sozinhos. \n\nVocê poderia fazer a gentileza de compartilhar o Olauncher com seus amigos, por favor? Obrigado e tenha um dia maravilhoso! diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 61b2fa3..51abd3b 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -53,7 +53,8 @@ Системная Темная Светлая - На странице «О нас» внизу есть ответы на все ваши вопросы. Не забывайте. :) + Добро пожаловать в настройки! + \n\nПомните, если у вас есть вопросы, на нашей странице «О нас» есть ответ. Здравствуйте, вы больше не увидите это сообщение. \n\nЕсли вам нравится Olauncher, не могли бы вы поставить нам 5 звезд? Это поможет улучшить наш рейтинг и сделает нас счастливыми. Спасибо! Привет, нам нужна ваша помощь! В прошлом году мы преодолели миллион загрузок. В этом году мы хотим достичь еще миллиона, но мы не можем сделать это в одиночку. diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 424a45f..aaf77f0 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -52,8 +52,8 @@ System Mörkt Ljust - Tips: Vår Om-sida har svar på alla dina frågor. Glöm inte det. :) - \n\nTack. + Välkommen till inställningarna! + \n\nKom ihåg, om du har några frågor har vår sida Om oss svaret. Hejsan, du kommer inte att se detta meddelande igen. \n\nOm du tycker att Olauncher är användbar, skulle du vänligen kunna lämna en 5-stjärnig recension? Det skulle göra oss väldigt glada. Tack! Vi behöver din hjälp! Förra året passerade vi en miljon nedladdningar. I år vill vi nå en miljon till, men vi kan inte göra det på egen hand. diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 637eed2..8f9b8da 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -86,7 +86,8 @@ sistem Karanlık Işık - Alt kısımdaki Hakkında sayfamızda tüm sorularınızın yanıtları bulunmaktadır. unutma :)\n\nTeşekkür ederim. + Ayarlar sayfasına hoş geldiniz! + \n\nUnutmayın, herhangi bir sorunuz varsa, Hakkında sayfamızda cevap var. Merhaba, bu mesajı bir daha görmeyeceksiniz. \n\nOlauncher\'ı beğendiyseniz, lütfen bize 5 yıldız verebilir misiniz? Sıralamamızı yükseltmemize yardımcı oluyor ve bizi mutlu ediyor. Teşekkür ederim! Merhaba, yardımınıza ihtiyacımız var! Geçen yıl bir milyon indirmeyi geçtik. Bu yıl bir milyona daha ulaşmak istiyoruz ama bunu tek başımıza yapamayız. diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 33f3546..0771010 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -53,7 +53,8 @@ Системна Темна Світла - На сторінці «Про нас» є відповіді на всі ваші запитання. Не забувайте. :) + Ласкаво просимо до налаштувань! + \n\nПам\'ятайте, якщо у вас є питання, на нашій сторінці «Про нас» є відповідь. Привіт, ти більше не побачиш це повідомлення. \n\nЯкщо вам подобається Olauncher, чи можете ви поставити нам 5 зірок? Це допомагає нам покращити наш рейтинг і робить нас щасливими. Дякую тобі! Привіт, нам потрібна ваша допомога! Минулого року ми перевищили мільйон завантажень. Цього року ми хочемо досягти мільйона більше, але ми не можемо зробити це поодинці. diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 0297c46..25d138d 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -86,7 +86,8 @@ 系统 黑暗 - 我们底部的“关于”页面可以解答您的所有问题。别忘了。 :)\n\n谢谢。 + 欢迎来到设置! + \n\n请记住,如果您有任何问题,我们的“关于”页面有答案。 您好,您不会再看到此消息。 \n\n如果您喜欢 Olauncher,能给我们一个 5 星评价吗? 它帮助我们提高排名并使我们高兴。 谢谢你! 你好,我们需要你的帮助!去年我们的下载量突破了一百万次。今年我们希望再增加一百万,但我们无法单独做到这一点。 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6ef72cb..b7e8e31 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -67,8 +67,8 @@ System Dark Light - Tip: Our About page has answers to all your questions. Don\'t forget. :) - \n\nThank you. + Welcome to the settings! + \n\nRemember, if you have any questions, our About page has the answer. Hi, you won\'t see this message again. \n\nIf you\'re finding Olauncher useful, could you please leave a 5-star review? It\'ll mean the world to us. Thank you! We need your help! We crossed a million downloads last year. This year, we want to reach a million more, but we can\'t do it alone. -- cgit v1.2.1 From 7504f5980004ea480584de439f90e5612d9904e0 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Tue, 1 Oct 2024 13:16:32 +0530 Subject: Minor UI changes --- app/src/main/res/drawable/rounded_rect_shade_color.xml | 6 +++--- app/src/main/res/drawable/rounded_rectangle_dark.xml | 2 +- app/src/main/res/layout/activity_main.xml | 1 + 3 files changed, 5 insertions(+), 4 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/res/drawable/rounded_rect_shade_color.xml b/app/src/main/res/drawable/rounded_rect_shade_color.xml index aed3918..eda3ce1 100644 --- a/app/src/main/res/drawable/rounded_rect_shade_color.xml +++ b/app/src/main/res/drawable/rounded_rect_shade_color.xml @@ -1,9 +1,9 @@ - - + + diff --git a/app/src/main/res/drawable/rounded_rectangle_dark.xml b/app/src/main/res/drawable/rounded_rectangle_dark.xml index 9138e96..4c0758a 100644 --- a/app/src/main/res/drawable/rounded_rectangle_dark.xml +++ b/app/src/main/res/drawable/rounded_rectangle_dark.xml @@ -4,6 +4,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index de1dc4c..12a0fb2 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -53,6 +53,7 @@ android:layout_gravity="end|center_vertical" android:alpha="0.5" android:background="?attr/selectableItemBackgroundBorderless" + android:contentDescription="@string/close" android:padding="6dp" android:src="@drawable/ic_close" /> -- cgit v1.2.1 From 310d1b7943aeec02cf0fb44d30d8c02fc6b7891a Mon Sep 17 00:00:00 2001 From: Tanuj Date: Tue, 1 Oct 2024 13:23:37 +0530 Subject: Minor copy changes --- app/src/main/res/layout-land/fragment_home.xml | 2 +- app/src/main/res/layout/fragment_home.xml | 2 +- app/src/main/res/values-ar/strings.xml | 1 + app/src/main/res/values-de/strings.xml | 1 + app/src/main/res/values-es-rES/strings.xml | 1 + app/src/main/res/values-es-rUS/strings.xml | 1 + app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values-hr/strings.xml | 1 + app/src/main/res/values-hu/strings.xml | 1 + app/src/main/res/values-in/strings.xml | 1 + app/src/main/res/values-it/strings.xml | 1 + app/src/main/res/values-ja/strings.xml | 1 + app/src/main/res/values-pl/strings.xml | 1 + app/src/main/res/values-pt-rBR/strings.xml | 1 + app/src/main/res/values-ru-rRU/strings.xml | 1 + app/src/main/res/values-sv/strings.xml | 1 + app/src/main/res/values-tr/strings.xml | 1 + app/src/main/res/values-uk/strings.xml | 1 + app/src/main/res/values-zh/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 20 files changed, 20 insertions(+), 2 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/res/layout-land/fragment_home.xml b/app/src/main/res/layout-land/fragment_home.xml index 0165e15..c3b71a6 100644 --- a/app/src/main/res/layout-land/fragment_home.xml +++ b/app/src/main/res/layout-land/fragment_home.xml @@ -172,6 +172,6 @@ android:layout_marginBottom="56dp" android:ellipsize="end" android:maxLines="1" - android:text="@string/set_as_default_launcher" + android:text="@string/set_as_default_launcher_u" android:visibility="gone" /> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 3cbd920..0057e9e 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -173,6 +173,6 @@ android:layout_marginBottom="56dp" android:ellipsize="end" android:maxLines="1" - android:text="@string/set_as_default_launcher" + android:text="@string/set_as_default_launcher_u" android:visibility="gone" /> \ No newline at end of file diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index f651315..8812c6a 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -2,6 +2,7 @@ App تعيين كمشغل افتراضي + تعيين كمشغل افتراضي تعيين كمشغل افتراضي صفر واحد diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index c1dfd96..6b3e1b5 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -2,6 +2,7 @@ App Als Standard-Launcher festlegen + Als Standard-Launcher festlegen Als Standard-Launcher festlegen 0 1 diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index ab1ce05..eff5985 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -2,6 +2,7 @@ App Establecer como lanzador principal + Establecer como lanzador principal Establecer como lanzador principal Color del texto Tocar dos veces para bloquear diff --git a/app/src/main/res/values-es-rUS/strings.xml b/app/src/main/res/values-es-rUS/strings.xml index 91ec3aa..3d1ef69 100644 --- a/app/src/main/res/values-es-rUS/strings.xml +++ b/app/src/main/res/values-es-rUS/strings.xml @@ -2,6 +2,7 @@ App Establecer como lanzador principal + Establecer como lanzador principal Primero pongalo como lanzador principal Color del texto Tocar dos veces para bloquear diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 41c6e93..ffb7fc0 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -2,6 +2,7 @@ App Définir comme lanceur par défaut + Définir comme lanceur par défaut Définir comme lanceur par défaut Couleur du texte Double appui pour verrouiller diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index ffe9c9e..7f09100 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -2,6 +2,7 @@ Olauncher Aplikacija Postavi kao zadani pokretač + Postavi kao zadani pokretač Postavi kao zadani pokretač Boja teksta Dvostruki dodir za zaključavanje diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 2009c9f..2d85931 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -1,6 +1,7 @@ Alkalmazás Beállítás alapért. indítóként + Beállítás alapért. indítóként Beállítás alapértelmezett indítóként Szövegszín Dupla koppintás a képernyő lezárásához diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index cf4e4e2..213e9a1 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -2,6 +2,7 @@ Aplikasi Tetapkan sebagai peluncur default + Tetapkan sebagai peluncur default Tetapkan sebagai peluncur default Warna teks Ketuk dua kali untuk mengunci diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 8b3fd6c..263a9fc 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -1,6 +1,7 @@ App Imposta come launcher predefinito + Imposta come launcher predefinito Imposta come launcher predefinito Colore del testo Tocca due volte per bloccare diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 5f5fcf7..695e6f0 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -2,6 +2,7 @@ アプリ デフォルトのランチャーとして設定 + デフォルトのランチャーとして設定 デフォルトのランチャーとして設定 diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 7970b04..a245403 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -2,6 +2,7 @@ Aplikacja Ustaw jako domyślny program uruchamiający + Ustaw jako domyślny program uruchamiający Ustaw jako domyślny program uruchamiający 0 1 diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 3af6d22..032a6d8 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -2,6 +2,7 @@ Aplicativo Definir como launcher padrão + Definir como launcher padrão Definir como launcher padrão Cor do texto Toque duplo para bloquear diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 51abd3b..5b878fa 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -2,6 +2,7 @@ Приложение Сделать лаунчером по умолчанию + Сделать лаунчером по умолчанию Сделать лаунчером по умолчанию Цвет текста Блокировка двойным тапом diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index aaf77f0..05e0c36 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -2,6 +2,7 @@ App Ange som förvald startskärmsapp + Ange som förvald startskärmsapp Ange Olauncher som förvald först Textfärg Dubbeltryck för att låsa diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 8f9b8da..96050ec 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -2,6 +2,7 @@ Uygulama Varsayılan başlatıcı olarak ayarla + Varsayılan başlatıcı olarak ayarla Varsayılan başlatıcı olarak ayarla 0 1 diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 0771010..80dc6d9 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -2,6 +2,7 @@ Додаток Зробити лаунчером за замовчування + Зробити лаунчером за замовчування Зробити лаунчером за замовчування Кольор тексту Блокування подвійним тапом diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 25d138d..757fde2 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -2,6 +2,7 @@ 应用程序 设置为默认启动器 + 设置为默认启动器 设置为默认启动器 提示:输入应用程序名称以查找并启动它 好的 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b7e8e31..3387a65 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -17,6 +17,7 @@ App Set as default launcher + Set as default launcher Set Olauncher default first Text color Double tap to lock -- cgit v1.2.1 From fbfe4203651452f40fac588f2f5bb7756e941cc2 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Thu, 14 Nov 2024 17:13:33 +0530 Subject: Showing screen time on home screen --- app/src/main/AndroidManifest.xml | 3 ++ app/src/main/java/app/olauncher/MainActivity.kt | 8 +-- app/src/main/java/app/olauncher/MainViewModel.kt | 28 +++++++++++ app/src/main/java/app/olauncher/data/Constants.kt | 2 + .../main/java/app/olauncher/helper/Extensions.kt | 39 +++++++++++++++ app/src/main/java/app/olauncher/ui/HomeFragment.kt | 57 ++++++++++++++++++++++ .../main/java/app/olauncher/ui/SettingsFragment.kt | 11 ++--- app/src/main/res/layout-land/fragment_home.xml | 15 ++++++ app/src/main/res/layout/fragment_home.xml | 15 ++++++ app/src/main/res/layout/fragment_settings.xml | 1 - app/src/main/res/values/strings.xml | 4 ++ 11 files changed, 172 insertions(+), 11 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8975394..922853d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,9 @@ + { prefs.userState = Constants.UserState.RATE showMessageDialog(getString(R.string.did_you_know), getString(R.string.review_message), getString(R.string.leave_a_review)) { @@ -171,9 +171,9 @@ class MainActivity : AppCompatActivity() { } Constants.Dialog.DIGITAL_WELLBEING -> { - showMessageDialog("Hi", getString(R.string.digital_wellbeing_message), getString(R.string.learn_more)) { - binding.messageLayout.visibility = View.GONE - openUrl(Constants.URL_DIGITAL_WELLBEING_LEARN_MORE) + showMessageDialog(getString(R.string.screen_time), getString(R.string.app_usage_message), getString(R.string.permission)) { + startActivity(Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS)) + // openUrl(Constants.URL_DIGITAL_WELLBEING_LEARN_MORE) } } } diff --git a/app/src/main/java/app/olauncher/MainViewModel.kt b/app/src/main/java/app/olauncher/MainViewModel.kt index a06a35e..735b527 100644 --- a/app/src/main/java/app/olauncher/MainViewModel.kt +++ b/app/src/main/java/app/olauncher/MainViewModel.kt @@ -1,10 +1,13 @@ package app.olauncher import android.app.Application +import android.app.Service.USAGE_STATS_SERVICE +import android.app.usage.UsageStatsManager import android.content.ComponentName import android.content.Context import android.content.pm.LauncherApps import android.os.UserHandle +import android.util.Log import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData import androidx.lifecycle.viewModelScope @@ -16,15 +19,19 @@ import androidx.work.PeriodicWorkRequestBuilder import androidx.work.WorkManager import app.olauncher.data.AppModel import app.olauncher.data.Constants +import app.olauncher.data.Constants.ONE_DAY_IN_MILLIS import app.olauncher.data.Prefs import app.olauncher.helper.SingleLiveEvent import app.olauncher.helper.WallpaperWorker +import app.olauncher.helper.formattedTimeSpent import app.olauncher.helper.getAppsList import app.olauncher.helper.isOlauncherDefault import app.olauncher.helper.showToast import kotlinx.coroutines.launch +import java.util.Calendar import java.util.concurrent.TimeUnit + class MainViewModel(application: Application) : AndroidViewModel(application) { private val appContext by lazy { application.applicationContext } private val prefs = Prefs(appContext) @@ -38,6 +45,7 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { val isOlauncherDefault = MutableLiveData() val launcherResetFailed = MutableLiveData() val homeAppAlignment = MutableLiveData() + val screenTimeValue = MutableLiveData() val showDialog = SingleLiveEvent() val checkForMessages = SingleLiveEvent() @@ -243,4 +251,24 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { prefs.homeAlignment = gravity homeAppAlignment.value = prefs.homeAlignment } + + fun getTodaysScreenTime() { + viewModelScope.launch { + val usageStatsManager = appContext.getSystemService(USAGE_STATS_SERVICE) as UsageStatsManager + + val calendar = Calendar.getInstance() + calendar.set(Calendar.HOUR_OF_DAY, 0) + calendar.set(Calendar.MINUTE, 0) + calendar.set(Calendar.SECOND, 0) + + val usageStats = usageStatsManager.queryUsageStats( + UsageStatsManager.INTERVAL_DAILY, + calendar.timeInMillis, + calendar.timeInMillis + ONE_DAY_IN_MILLIS + ) + val totalTimeInMillis = usageStats.sumOf { it.totalTimeInForeground } + val viewTimeSpent = appContext.formattedTimeSpent(totalTimeInMillis) + screenTimeValue.postValue(viewTimeSpent) + } + } } \ No newline at end of file diff --git a/app/src/main/java/app/olauncher/data/Constants.kt b/app/src/main/java/app/olauncher/data/Constants.kt index b7bd8b1..12f9a75 100644 --- a/app/src/main/java/app/olauncher/data/Constants.kt +++ b/app/src/main/java/app/olauncher/data/Constants.kt @@ -109,6 +109,8 @@ object Constants { const val URL_DIGITAL_WELLBEING_LEARN_MORE = "https://tanujnotes.substack.com/p/digital-wellbeing-app-on-android?utm_source=olauncher" const val DIGITAL_WELLBEING_PACKAGE_NAME = "com.google.android.apps.wellbeing" + const val DIGITAL_WELLBEING_ACTIVITY = "com.google.android.apps.wellbeing.settings.TopLevelSettingsActivity" const val DIGITAL_WELLBEING_SAMSUNG_PACKAGE_NAME = "com.samsung.android.forest" + const val DIGITAL_WELLBEING_SAMSUNG_ACTIVITY = "com.samsung.android.forest.launcher.LauncherActivity" const val WALLPAPER_WORKER_NAME = "WALLPAPER_WORKER_NAME" } \ No newline at end of file diff --git a/app/src/main/java/app/olauncher/helper/Extensions.kt b/app/src/main/java/app/olauncher/helper/Extensions.kt index c15d9e6..3bab48f 100644 --- a/app/src/main/java/app/olauncher/helper/Extensions.kt +++ b/app/src/main/java/app/olauncher/helper/Extensions.kt @@ -1,6 +1,7 @@ package app.olauncher.helper import android.app.Activity +import android.app.AppOpsManager import android.app.SearchManager import android.app.role.RoleManager import android.content.ComponentName @@ -8,6 +9,7 @@ import android.content.Context import android.content.Intent import android.content.pm.LauncherApps import android.content.pm.PackageManager +import android.content.res.Resources import android.net.Uri import android.os.Build import android.os.UserHandle @@ -17,6 +19,7 @@ import android.view.WindowManager import android.view.inputmethod.InputMethodManager import androidx.annotation.RequiresApi import app.olauncher.BuildConfig +import app.olauncher.R import app.olauncher.data.Constants fun View.hideKeyboard() { @@ -118,8 +121,44 @@ fun Context.isPackageInstalled(packageName: String, userHandle: UserHandle = and return activityInfo.size > 0 } +@RequiresApi(Build.VERSION_CODES.Q) +fun Context.appUsagePermissionGranted(): Boolean { + val appOpsManager = getSystemService(Context.APP_OPS_SERVICE) as AppOpsManager + return appOpsManager.unsafeCheckOpNoThrow( + "android:get_usage_stats", + android.os.Process.myUid(), + packageName + ) == AppOpsManager.MODE_ALLOWED +} + +fun Context.formattedTimeSpent(timeSpent: Long): String { + val seconds = timeSpent / 1000 + val minutes = seconds / 60 + val hours = minutes / 60 + val remainingMinutes = minutes % 60 + return when { + timeSpent == 0L -> "0m" + + hours > 0 -> getString( + R.string.time_spent_hour, + hours.toString(), + remainingMinutes.toString() + ) + + minutes > 0 -> { + getString(R.string.time_spent_min, minutes.toString()) + } + + else -> "<1m" + } +} + fun Long.hasBeenDays(days: Int): Boolean = ((System.currentTimeMillis() - this) / Constants.ONE_DAY_IN_MILLIS) >= days fun Long.hasBeenHours(hours: Int): Boolean = ((System.currentTimeMillis() - this) / Constants.ONE_HOUR_IN_MILLIS) >= hours + +fun Int.dpToPx(): Int { + return (this * Resources.getSystem().displayMetrics.density).toInt() +} diff --git a/app/src/main/java/app/olauncher/ui/HomeFragment.kt b/app/src/main/java/app/olauncher/ui/HomeFragment.kt index b603611..458f42a 100644 --- a/app/src/main/java/app/olauncher/ui/HomeFragment.kt +++ b/app/src/main/java/app/olauncher/ui/HomeFragment.kt @@ -2,6 +2,7 @@ package app.olauncher.ui import android.app.admin.DevicePolicyManager import android.content.Context +import android.content.Intent import android.os.BatteryManager import android.os.Build import android.os.Bundle @@ -11,10 +12,13 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.view.WindowInsets +import android.widget.FrameLayout import android.widget.TextView import android.widget.Toast +import androidx.annotation.RequiresApi import androidx.core.os.bundleOf import androidx.core.view.isVisible +import androidx.core.view.setPadding import androidx.fragment.app.Fragment import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProvider @@ -25,6 +29,8 @@ import app.olauncher.data.AppModel import app.olauncher.data.Constants import app.olauncher.data.Prefs import app.olauncher.databinding.FragmentHomeBinding +import app.olauncher.helper.appUsagePermissionGranted +import app.olauncher.helper.dpToPx import app.olauncher.helper.expandNotificationDrawer import app.olauncher.helper.getChangedAppTheme import app.olauncher.helper.getUserHandleFromString @@ -87,6 +93,8 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener R.id.clock -> openClockApp() R.id.date -> openCalendarApp() R.id.setDefaultLauncher -> viewModel.resetLauncherLiveData.call() + R.id.tvScreenTime -> openScreenTimeDigitalWellbeing() + else -> { try { // Launch app val appLocation = view.tag.toString().toInt() @@ -177,6 +185,9 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener viewModel.toggleDateTime.observe(viewLifecycleOwner) { populateDateTime() } + viewModel.screenTimeValue.observe(viewLifecycleOwner) { + it?.let { binding.tvScreenTime.text = it } + } } private fun initSwipeTouchListener() { @@ -199,6 +210,7 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener binding.clock.setOnLongClickListener(this) binding.date.setOnLongClickListener(this) binding.setDefaultLauncher.setOnClickListener(this) + binding.tvScreenTime.setOnClickListener(this) } private fun setHomeAlignment(horizontalGravity: Int = prefs.homeAlignment) { @@ -233,10 +245,33 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener binding.date.text = dateText.replace(".,", ",") } + @RequiresApi(Build.VERSION_CODES.Q) + private fun populateScreenTime() { + if (requireContext().appUsagePermissionGranted().not()) return + + viewModel.getTodaysScreenTime() + + binding.tvScreenTime.visibility = View.VISIBLE + val params = FrameLayout.LayoutParams( + FrameLayout.LayoutParams.WRAP_CONTENT, + FrameLayout.LayoutParams.WRAP_CONTENT + ).apply { + topMargin = 72.dpToPx() + marginStart = 10.dpToPx() + marginEnd = 10.dpToPx() + gravity = if (prefs.homeAlignment == Gravity.END) Gravity.START else Gravity.END + } + binding.tvScreenTime.layoutParams = params + binding.tvScreenTime.setPadding(10.dpToPx()) + } + private fun populateHomeScreen(appCountUpdated: Boolean) { if (appCountUpdated) hideHomeApps() populateDateTime() + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) + populateScreenTime() + val homeAppsNum = prefs.homeAppsNum if (homeAppsNum == 0) return @@ -439,6 +474,28 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener requireActivity().recreate() } + private fun openScreenTimeDigitalWellbeing() { + val intent = Intent() + try { + intent.setClassName( + Constants.DIGITAL_WELLBEING_PACKAGE_NAME, + Constants.DIGITAL_WELLBEING_ACTIVITY + ) + startActivity(intent) + } catch (e: Exception) { + e.printStackTrace() + try { + intent.setClassName( + Constants.DIGITAL_WELLBEING_SAMSUNG_PACKAGE_NAME, + Constants.DIGITAL_WELLBEING_SAMSUNG_ACTIVITY + ) + startActivity(intent) + } catch (e: Exception) { + e.printStackTrace() + } + } + } + private fun showLongPressToast() = requireContext().showToast(getString(R.string.long_press_to_select_app)) private fun textOnClick(view: View) = onClick(view) diff --git a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt index c6b2130..48e3b0b 100644 --- a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt +++ b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt @@ -68,7 +68,6 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe checkAdminPermission() binding.homeAppsNum.text = prefs.homeAppsNum.toString() - populateDigitalWellbeing() populateKeyboardText() populateLockSettings() populateWallpaperText() @@ -593,11 +592,11 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe binding.swipeRightApp.setTextColor(requireContext().getColorFromAttr(R.attr.primaryColorTrans50)) } - private fun populateDigitalWellbeing() { - binding.digitalWellbeing.isVisible = requireContext().isPackageInstalled(Constants.DIGITAL_WELLBEING_PACKAGE_NAME).not() - && requireContext().isPackageInstalled(Constants.DIGITAL_WELLBEING_SAMSUNG_PACKAGE_NAME).not() - && prefs.hideDigitalWellbeing.not() - } +// private fun populateDigitalWellbeing() { +// binding.digitalWellbeing.isVisible = requireContext().isPackageInstalled(Constants.DIGITAL_WELLBEING_PACKAGE_NAME).not() +// && requireContext().isPackageInstalled(Constants.DIGITAL_WELLBEING_SAMSUNG_PACKAGE_NAME).not() +// && prefs.hideDigitalWellbeing.not() +// } private fun showAppListIfEnabled(flag: Int) { if ((flag == Constants.FLAG_SET_SWIPE_LEFT_APP) and !prefs.swipeLeftEnabled) { diff --git a/app/src/main/res/layout-land/fragment_home.xml b/app/src/main/res/layout-land/fragment_home.xml index c3b71a6..7b470d7 100644 --- a/app/src/main/res/layout-land/fragment_home.xml +++ b/app/src/main/res/layout-land/fragment_home.xml @@ -49,6 +49,21 @@ tools:text="Thu, 30 Dec" /> + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3387a65..fbe4ad0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -14,6 +14,8 @@ 6 7 8 + %1$sm + %1$sh %2$sm App Set as default launcher @@ -80,6 +82,8 @@ \n\nThe choice is always yours. If you want to set time limits for certain apps, Digital Wellbeing feature of Android can help you do it. \n\nPlease search for Digital Wellbeing in your phone settings and enable it. + To see your screen time on the home screen, please allow the app usage permission. + \n\nNote: No app usage data is collected by us. All the data is processed on your device. The accessibility permission is required to enable double tap to lock. Any data acquired by Olauncher via this service will not leave your device. Support Olauncher for free by using our Amazon affiliate link. Every time you buy something using our link, we get a small commission. Please save the link and use it whenever you shop online.\nThank you! -- cgit v1.2.1 From cf792624d404a2d6aea81548964f0be298fc942d Mon Sep 17 00:00:00 2001 From: Tanuj Date: Fri, 15 Nov 2024 12:42:12 +0530 Subject: Minor UI change --- app/src/main/res/layout-land/fragment_home.xml | 1 + app/src/main/res/layout/fragment_home.xml | 1 + 2 files changed, 2 insertions(+) (limited to 'app/src/main') diff --git a/app/src/main/res/layout-land/fragment_home.xml b/app/src/main/res/layout-land/fragment_home.xml index 7b470d7..0c08f2c 100644 --- a/app/src/main/res/layout-land/fragment_home.xml +++ b/app/src/main/res/layout-land/fragment_home.xml @@ -60,6 +60,7 @@ android:layout_marginTop="72dp" android:gravity="center" android:padding="10dp" + android:textSize="@dimen/date_size" android:visibility="gone" tools:text="2h 11m" tools:visibility="visible" /> diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 9339a4c..4626a5b 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -59,6 +59,7 @@ android:layout_marginTop="72dp" android:gravity="center" android:padding="10dp" + android:textSize="@dimen/date_size" android:visibility="gone" tools:text="2h 11m" tools:visibility="visible" /> -- cgit v1.2.1 From cbe544335a3c8d214ce0d14ae76da1e9cfdfa7ff Mon Sep 17 00:00:00 2001 From: Tanuj Date: Fri, 15 Nov 2024 13:08:31 +0530 Subject: Removed vibrator --- app/src/main/java/app/olauncher/ui/HomeFragment.kt | 3 --- 1 file changed, 3 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/ui/HomeFragment.kt b/app/src/main/java/app/olauncher/ui/HomeFragment.kt index 458f42a..9e19a81 100644 --- a/app/src/main/java/app/olauncher/ui/HomeFragment.kt +++ b/app/src/main/java/app/olauncher/ui/HomeFragment.kt @@ -6,7 +6,6 @@ import android.content.Intent import android.os.BatteryManager import android.os.Build import android.os.Bundle -import android.os.Vibrator import android.view.Gravity import android.view.LayoutInflater import android.view.View @@ -53,7 +52,6 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener private lateinit var prefs: Prefs private lateinit var viewModel: MainViewModel private lateinit var deviceManager: DevicePolicyManager - private lateinit var vibrator: Vibrator private var _binding: FragmentHomeBinding? = null private val binding get() = _binding!! @@ -71,7 +69,6 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener } ?: throw Exception("Invalid Activity") deviceManager = context?.getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager - vibrator = context?.getSystemService(Context.VIBRATOR_SERVICE) as Vibrator initObservers() setHomeAlignment(prefs.homeAlignment) -- cgit v1.2.1 From c4487df71df1f31f2db10e029218786449296ebb Mon Sep 17 00:00:00 2001 From: Tanuj Date: Fri, 15 Nov 2024 16:41:16 +0530 Subject: Screen time margins on landscape --- app/src/main/java/app/olauncher/ui/HomeFragment.kt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/ui/HomeFragment.kt b/app/src/main/java/app/olauncher/ui/HomeFragment.kt index 9e19a81..c13087c 100644 --- a/app/src/main/java/app/olauncher/ui/HomeFragment.kt +++ b/app/src/main/java/app/olauncher/ui/HomeFragment.kt @@ -3,6 +3,7 @@ package app.olauncher.ui import android.app.admin.DevicePolicyManager import android.content.Context import android.content.Intent +import android.content.res.Configuration import android.os.BatteryManager import android.os.Build import android.os.Bundle @@ -247,15 +248,17 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener if (requireContext().appUsagePermissionGranted().not()) return viewModel.getTodaysScreenTime() - binding.tvScreenTime.visibility = View.VISIBLE + + val isLandscape = resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE + val horizontalMargin = if (isLandscape) 64.dpToPx() else 10.dpToPx() val params = FrameLayout.LayoutParams( FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT ).apply { - topMargin = 72.dpToPx() - marginStart = 10.dpToPx() - marginEnd = 10.dpToPx() + topMargin = if (isLandscape) 56.dpToPx() else 72.dpToPx() + marginStart = horizontalMargin + marginEnd = horizontalMargin gravity = if (prefs.homeAlignment == Gravity.END) Gravity.START else Gravity.END } binding.tvScreenTime.layoutParams = params -- cgit v1.2.1 From 5db3c85e0ab6005840001b6cedf0c7decf873eea Mon Sep 17 00:00:00 2001 From: Tanuj Date: Sat, 16 Nov 2024 12:07:19 +0530 Subject: Settings UI changes --- app/src/main/java/app/olauncher/data/Prefs.kt | 10 - .../main/java/app/olauncher/ui/SettingsFragment.kt | 20 +- app/src/main/res/layout-land/fragment_settings.xml | 221 ++++++++++++-------- app/src/main/res/layout/fragment_settings.xml | 230 ++++++++++++--------- app/src/main/res/values/strings.xml | 5 +- 5 files changed, 281 insertions(+), 205 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/data/Prefs.kt b/app/src/main/java/app/olauncher/data/Prefs.kt index c281b8c..c1ab5ad 100644 --- a/app/src/main/java/app/olauncher/data/Prefs.kt +++ b/app/src/main/java/app/olauncher/data/Prefs.kt @@ -27,7 +27,6 @@ class Prefs(context: Context) { private val DATE_TIME_VISIBILITY = "DATE_TIME_VISIBILITY" private val SWIPE_LEFT_ENABLED = "SWIPE_LEFT_ENABLED" private val SWIPE_RIGHT_ENABLED = "SWIPE_RIGHT_ENABLED" - private val SCREEN_TIMEOUT = "SCREEN_TIMEOUT" private val HIDDEN_APPS = "HIDDEN_APPS" private val HIDDEN_APPS_UPDATED = "HIDDEN_APPS_UPDATED" private val SHOW_HINT_COUNTER = "SHOW_HINT_COUNTER" @@ -37,7 +36,6 @@ class Prefs(context: Context) { private val SHARE_SHOWN_TIME = "SHARE_SHOWN_TIME" private val SWIPE_DOWN_ACTION = "SWIPE_DOWN_ACTION" private val TEXT_SIZE_SCALE = "TEXT_SIZE_SCALE" - private val HIDE_DIGITAL_WELLBEING = "HIDE_DIGITAL_WELLBEING" private val APP_NAME_1 = "APP_NAME_1" private val APP_NAME_2 = "APP_NAME_2" @@ -169,14 +167,6 @@ class Prefs(context: Context) { get() = prefs.getFloat(TEXT_SIZE_SCALE, 1.0f) set(value) = prefs.edit().putFloat(TEXT_SIZE_SCALE, value).apply() - var hideDigitalWellbeing: Boolean - get() = prefs.getBoolean(HIDE_DIGITAL_WELLBEING, false) - set(value) = prefs.edit().putBoolean(HIDE_DIGITAL_WELLBEING, value).apply() - - var screenTimeout: Int - get() = prefs.getInt(SCREEN_TIMEOUT, 30000) // Default: 30 seconds - set(value) = prefs.edit().putInt(SCREEN_TIMEOUT, value).apply() - var hiddenApps: MutableSet get() = prefs.getStringSet(HIDDEN_APPS, mutableSetOf()) as MutableSet set(value) = prefs.edit().putStringSet(HIDDEN_APPS, value).apply() diff --git a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt index 48e3b0b..94a4fc3 100644 --- a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt +++ b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt @@ -27,11 +27,11 @@ import app.olauncher.data.Constants import app.olauncher.data.Prefs import app.olauncher.databinding.FragmentSettingsBinding import app.olauncher.helper.animateAlpha +import app.olauncher.helper.appUsagePermissionGranted import app.olauncher.helper.getColorFromAttr import app.olauncher.helper.isAccessServiceEnabled import app.olauncher.helper.isDarkThemeOn import app.olauncher.helper.isOlauncherDefault -import app.olauncher.helper.isPackageInstalled import app.olauncher.helper.openAppInfo import app.olauncher.helper.openUrl import app.olauncher.helper.rateApp @@ -69,6 +69,7 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe binding.homeAppsNum.text = prefs.homeAppsNum.toString() populateKeyboardText() + populateScreenTimeOnOff() populateLockSettings() populateWallpaperText() populateAppThemeText() @@ -95,7 +96,7 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe when (view.id) { R.id.olauncherHiddenApps -> showHiddenApps() R.id.olauncherPro -> requireContext().openUrl(Constants.URL_OLAUNCHER_PRO) - R.id.digitalWellbeing -> viewModel.showDialog.postValue(Constants.Dialog.DIGITAL_WELLBEING) + R.id.screenTimeOnOff -> viewModel.showDialog.postValue(Constants.Dialog.DIGITAL_WELLBEING) R.id.appInfo -> openAppInfo(requireContext(), Process.myUserHandle(), BuildConfig.APPLICATION_ID) R.id.setLauncher -> viewModel.resetLauncherLiveData.call() R.id.toggleLock -> toggleLockMode() @@ -168,11 +169,6 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe override fun onLongClick(view: View): Boolean { when (view.id) { - R.id.digitalWellbeing -> { - prefs.hideDigitalWellbeing = true - binding.digitalWellbeing.visibility = View.GONE - } - R.id.alignment -> { prefs.appLabelAlignment = prefs.homeAlignment findNavController().navigate(R.id.action_settingsFragment_to_appListFragment) @@ -199,10 +195,10 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe binding.setLauncher.setOnClickListener(this) binding.aboutOlauncher.setOnClickListener(this) binding.olauncherPro.setOnClickListener(this) - binding.digitalWellbeing.setOnClickListener(this) binding.autoShowKeyboard.setOnClickListener(this) binding.toggleLock.setOnClickListener(this) binding.homeAppsNum.setOnClickListener(this) + binding.screenTimeOnOff.setOnClickListener(this) binding.dailyWallpaperUrl.setOnClickListener(this) binding.dailyWallpaper.setOnClickListener(this) binding.alignment.setOnClickListener(this) @@ -254,7 +250,6 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe binding.textSize6.setOnClickListener(this) binding.textSize7.setOnClickListener(this) - binding.digitalWellbeing.setOnLongClickListener(this) binding.dailyWallpaper.setOnLongClickListener(this) binding.alignment.setOnLongClickListener(this) binding.appThemeText.setOnLongClickListener(this) @@ -525,6 +520,13 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe }.toString() } + private fun populateScreenTimeOnOff() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + if (requireContext().appUsagePermissionGranted()) binding.screenTimeOnOff.text = getString(R.string.on) + else binding.screenTimeOnOff.text = getString(R.string.off) + } else binding.screenTimeLayout.visibility = View.GONE + } + private fun populateKeyboardText() { if (prefs.autoShowKeyboard) binding.autoShowKeyboard.text = getString(R.string.on) else binding.autoShowKeyboard.text = getString(R.string.off) diff --git a/app/src/main/res/layout-land/fragment_settings.xml b/app/src/main/res/layout-land/fragment_settings.xml index 22aa09c..30e4002 100644 --- a/app/src/main/res/layout-land/fragment_settings.xml +++ b/app/src/main/res/layout-land/fragment_settings.xml @@ -89,18 +89,6 @@ android:layout_marginBottom="8dp" android:text="@string/olauncher_pro" /> - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + If you want to set time limits for certain apps, Digital Wellbeing feature of Android can help you do it. \n\nPlease search for Digital Wellbeing in your phone settings and enable it. - To see your screen time on the home screen, please allow the app usage permission. - \n\nNote: No app usage data is collected by us. All the data is processed on your device. + To see show/hide your screen time on the home screen, please allow or disallow the app usage permission. + \n\nNote: No app usage data is collected. Everything is processed on your device. The accessibility permission is required to enable double tap to lock. Any data acquired by Olauncher via this service will not leave your device. Support Olauncher for free by using our Amazon affiliate link. Every time you buy something using our link, we get a small commission. Please save the link and use it whenever you shop online.\nThank you! @@ -149,4 +149,5 @@ Olauncher is free and always will be. It has no ads, collects no data, and helps you reduce screen time for a healthier digital life. \n\nWe believe a minimal launcher is a great choice, and we hope you enjoy it. Tell the world what you think! Alignment changed ✅ + Home screen \ No newline at end of file -- cgit v1.2.1 From 8843617455e69c3c4ec54b0e78d28a3c70abe595 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Sat, 16 Nov 2024 18:26:44 +0530 Subject: Minor UI fixes in screen time on home --- app/src/main/java/app/olauncher/ui/HomeFragment.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/ui/HomeFragment.kt b/app/src/main/java/app/olauncher/ui/HomeFragment.kt index c13087c..35d6e58 100644 --- a/app/src/main/java/app/olauncher/ui/HomeFragment.kt +++ b/app/src/main/java/app/olauncher/ui/HomeFragment.kt @@ -252,11 +252,16 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener val isLandscape = resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE val horizontalMargin = if (isLandscape) 64.dpToPx() else 10.dpToPx() + val marginTop = if (isLandscape) { + if (prefs.dateTimeVisibility == Constants.DateTime.DATE_ONLY) 36.dpToPx() else 56.dpToPx() + } else { + if (prefs.dateTimeVisibility == Constants.DateTime.DATE_ONLY) 45.dpToPx() else 72.dpToPx() + } val params = FrameLayout.LayoutParams( FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT ).apply { - topMargin = if (isLandscape) 56.dpToPx() else 72.dpToPx() + topMargin = marginTop marginStart = horizontalMargin marginEnd = horizontalMargin gravity = if (prefs.homeAlignment == Gravity.END) Gravity.START else Gravity.END -- cgit v1.2.1 From b15ce740531a02632a1534eac34983b45be65b45 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Sat, 16 Nov 2024 19:06:27 +0530 Subject: Translations --- app/src/main/res/values-ar/strings.xml | 8 +++++--- app/src/main/res/values-de/strings.xml | 7 +++++-- app/src/main/res/values-es-rES/strings.xml | 7 +++++-- app/src/main/res/values-es-rUS/strings.xml | 7 +++++-- app/src/main/res/values-fr/strings.xml | 7 +++++-- app/src/main/res/values-hr/strings.xml | 8 ++++++-- app/src/main/res/values-hu/strings.xml | 19 +++++++++++-------- app/src/main/res/values-in/strings.xml | 7 +++++-- app/src/main/res/values-it/strings.xml | 7 +++++-- app/src/main/res/values-ja/strings.xml | 7 +++++-- app/src/main/res/values-pl/strings.xml | 7 +++++-- app/src/main/res/values-pt-rBR/strings.xml | 7 +++++-- app/src/main/res/values-ru-rRU/strings.xml | 7 +++++-- app/src/main/res/values-sv/strings.xml | 7 +++++-- app/src/main/res/values-tr/strings.xml | 7 +++++-- app/src/main/res/values-uk/strings.xml | 7 +++++-- app/src/main/res/values-zh/strings.xml | 7 +++++-- app/src/main/res/values/strings.xml | 2 +- 18 files changed, 93 insertions(+), 42 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 8812c6a..4b88ffa 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -94,6 +94,8 @@ مرحبًا ، لوحة المفاتيح هي أسرع طريقة للعثور على التطبيقات وتشغيلها في Olauncher. هل يمكننا أن نطلب منك الاحتفاظ بهذا الأمر لبضعة أيام أخرى ثم اتخاذ القرار؟ الاختيار دائما لك. إذا كنت تريد تعيين حدود زمنية لتطبيقات معينة، فيمكن أن تساعدك ميزة الرفاهية الرقمية في Android على القيام بذلك. \n\nيرجى البحث عن الرفاهية الرقمية في إعدادات هاتفك وتمكينها. + لعرض/إخفاء وقت استخدام الشاشة على الشاشة الرئيسية، يرجى السماح أو منع إذن استخدام التطبيق. + \n\nملاحظة: لا يتم جمع أي بيانات حول استخدام التطبيقات. يتم معالجة كل شيء على جهازك. إذن الوصول مطلوب لتمكين النقر المزدوج للقفل. أي بيانات حصل عليها Olauncher عبر هذه الخدمة لن تترك جهازك. ادعم Olauncher مجانًا باستخدام رابط الشراكة التابع لشركة Amazon. في كل مرة تشتري شيئًا باستخدام الرابط الخاص بنا ، نحصل على عمولة صغيرة. يرجى حفظ الرابط واستخدامه في أي وقت تتسوق فيه عبر الإنترنت. شكرًا لك! @@ -123,7 +125,7 @@ ترك التعليق Olauncher هو وسيظل دائمًا مجانيًا تمامًا. ليس لديها إعلانات. لا يجمع أي بيانات. والأهم من ذلك أنه يساعدك على تقليل وقت الشاشة والعيش حياة رقمية أكثر صحة. \n\nنحن نعتقد أن التحول إلى الحد الأدنى من المشغل هو قرار ممتاز. على الرغم من أننا متحيزون بشكل واضح، إلا أننا نأمل أن تستمتع بالتجربة. لا تتردد في مشاركة أفكارك معنا! - - وقت الشاشة - تم تغيير المحاذاة ✅ + وقت الشاشة + تم تغيير المحاذاة ✅ + شاشة الرئيسية \ No newline at end of file diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 6b3e1b5..5d65da8 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -97,6 +97,8 @@ \n\nDie Wahl liegt immer bei Ihnen. Wenn Sie Zeitlimits für bestimmte Apps festlegen möchten, kann Ihnen die Digital Wellbeing-Funktion von Android dabei helfen. \n\nBitte suchen Sie in Ihren Telefoneinstellungen nach Digital Wellbeing und aktivieren Sie es. + Um die Bildschirmzeit auf dem Startbildschirm anzuzeigen oder zu verbergen, erteilen Sie bitte die Erlaubnis für die App-Nutzung oder verweigern Sie sie. + \n\nHinweis: Es werden keine Daten zur App-Nutzung gesammelt. Alles wird auf Ihrem Gerät verarbeitet. Die Zugriffsberechtigung ist erforderlich, um das Sperren durch Doppeltippen zu ermöglichen. Die von Olauncher über diesen Dienst erfassten Daten verlassen Ihr Gerät nicht. Unterstützen Sie Olauncher kostenlos, indem Sie unseren Amazon-Partnerlink verwenden. Jedes Mal, wenn Sie über unseren Link etwas kaufen, erhalten wir eine kleine Provision. Bitte speichern Sie den Link und verwenden Sie ihn bei jedem Online-Einkauf. Dan­ke­schön! @@ -122,12 +124,13 @@ App nach links wischen deaktiviert App nach rechts wischen deaktiviert Benutzen Sie Ihr Telefon, oder nutzt Ihr Telefon Sie? - Bildschirmzeit + Bildschirmzeit Über Olauncher Erfahren Sie mehr Wussten Sie? Rezension Olauncher ist und bleibt völlig kostenlos. Es gibt keine Werbung. Es werden keine Daten erfasst. Am wichtigsten ist, dass es Ihnen dabei hilft, Ihre Bildschirmzeit zu verkürzen und ein gesünderes digitales Leben zu führen. \n\nWir glauben, dass der Wechsel zu einem Minimal Launcher eine ausgezeichnete Entscheidung ist. Obwohl wir offensichtlich voreingenommen sind, hoffen wir, dass Ihnen die Erfahrung gefällt. Teilen Sie uns gerne Ihre Gedanken mit! - Ausrichtung geändert ✅ + Ausrichtung geändert ✅ + Startbildschirm diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index eff5985..ec88fd3 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -64,6 +64,8 @@ \n\nLa decisión siempre es vuestra. Si deseas establecer límites de tiempo para determinadas aplicaciones, la función Bienestar digital de Android puede ayudarte a hacerlo. \n\nBusca Bienestar digital en la configuración de su teléfono y habilítelo. + Para mostrar/ocultar el tiempo de pantalla en la pantalla de inicio, permita o deniegue el permiso de uso de la aplicación. + \n\nNota: No se recopilan datos de uso de la aplicación. Todo se procesa en su dispositivo. "Se requiere el permiso de accesibilidad para habilitar el doble toque para bloquear. Cualquier dato adquirido por Olauncher a través de este servicio no saldrá de su dispositivo." Apoya a Olauncher de forma gratuita utilizando nuestro enlace de afiliado de Amazon. Cada vez que compre algo usando nuestro enlace, obtendremos una pequeña comisión. Guarde el enlace y utilícelo cada vez que compre en línea.\n¡Gracias! @@ -125,9 +127,10 @@ Acerca de Olauncher Aprende más ¿Sabías? - Tiempo de pantalla + Tiempo de pantalla Dejar un comentario Olauncher es y será siempre completamente gratuito. No tiene anuncios. No recopila datos. Lo más importante es que te ayuda a reducir el tiempo que pasa frente a la pantalla y a vivir una vida digital más saludable. \n\nCreemos que cambiar a un lanzador mínimo es una excelente decisión. Aunque obviamente somos parciales, esperamos que disfrutes la experiencia. ¡No dudes en compartir tus pensamientos con nosotros! - Alineación cambiada ✅ + Alineación cambiada ✅ + Pantalla de inicio diff --git a/app/src/main/res/values-es-rUS/strings.xml b/app/src/main/res/values-es-rUS/strings.xml index 3d1ef69..76f0a3d 100644 --- a/app/src/main/res/values-es-rUS/strings.xml +++ b/app/src/main/res/values-es-rUS/strings.xml @@ -63,6 +63,8 @@ Hola, el teclado es la forma más rápida de encontrar y abrir aplicaciones en Olauncher. ¿Podemos pedirle que mantenga esto activado por unos días más y luego decidir? La decisión siempre es suya. Si desea establecer límites de tiempo para determinadas aplicaciones, la función Bienestar Digital de Android puede ayudarle a hacerlo. \n\nBusque Bienestar Digital en la configuración de su teléfono y habilítelo. + Para mostrar/ocultar el tiempo de pantalla en la pantalla de inicio, permita o deniegue el permiso de uso de la aplicación. + \n\nNota: No se recopilan datos de uso de la aplicación. Todo se procesa en su dispositivo. Se necesita el permiso de Accesibilidad para activar el bloqueo con doble toque. Cualquier dato recolectado por Olauncher no saldrá de su dispositivo. Apoye Olauncher de forma gratuita utilizando nuestro enlace de afiliado de Amazon. Cada vez que compre algo usando nuestro enlace, obtenemos una pequeña comisión. Por favor, guarde el enlace y úselo cada vez que compre en línea. ¡Gracias! @@ -121,10 +123,11 @@ ¿Está usando su teléfono, o el teléfono lo usa a usted? Acerca de Olauncher Aprenda más - Tiempo de pantalla + Tiempo de pantalla ¿Sabía qué? Dejar un comentario Olauncher es y será siempre completamente gratuito. No tiene anuncios. No recopila datos. Lo más importante es que le ayuda a reducir el tiempo que pasa frente a la pantalla y a vivir una vida digital más saludable. \n\nCreemos que cambiar a un lanzador mínimo es una excelente decisión. Aunque obviamente somos parciales, esperamos que disfrutes la experiencia. ¡No dude en compartir sus pensamientos con nosotros! - Alineación cambiada ✅ + Alineación cambiada ✅ + Pantalla de inicio diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index ffb7fc0..1dfb558 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -63,6 +63,8 @@ Bonjour, le clavier est le moyen le plus rapide de trouver et de lancer des applications dans Olauncher. Pouvons-nous vous demander de garder cela activé pendant quelques jours de plus, puis de décider? Le choix vous appartient toujours. Si vous souhaitez définir des limites de temps pour certaines applications, la fonctionnalité Digital Wellbeing d\'Android peut vous aider à le faire. \n\nVeuillez rechercher Digital Wellbeing dans les paramètres de votre téléphone et l\'activer. + Pour afficher/masquer le temps d\'écran sur l\'écran d\'accueil, autorisez ou refusez l\'autorisation d\'utilisation de l\'application. + \n\nRemarque : Aucune donnée d'utilisation de l\'application n\'est collectée. Tout est traité sur votre appareil. L\'autorisation d\'accessibilité est requise pour activer le double appui pour verrouiller. Toutes les données acquises par Olauncher via ce service ne quitteront pas votre appareil. Soutenez Olauncher gratuitement en utilisant notre lien d\'affiliation Amazon. Chaque fois que vous achetez quelque chose en utilisant notre lien, nous recevons une petite commission. Enregistrez le lien et utilisez le chaque fois que vous commandez en ligne. Merci! @@ -126,10 +128,11 @@ Utilisez-vous votre téléphone, ou votre téléphone vous utilise-t-il? À propos Olauncher Apprendre encore plus - Temps d\'écran + Temps d\'écran Saviez-vous? Laisser un commentaire Olauncher est et sera toujours entièrement gratuit. Il n\'y a pas de publicité. Il ne collecte aucune donnée. Plus important encore, cela vous aide à réduire votre temps d’écran et à vivre une vie numérique plus saine. \n\nNous pensons que passer à un lanceur minimal est une excellente décision. Même si nous sommes évidemment partiaux, nous espérons que vous appréciez l\'expérience. N\'hésitez pas à partager vos idées avec nous! - Alignement changé ✅ + Alignement changé ✅ + Écran d\'accueil diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 7f09100..572f3d7 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -42,6 +42,7 @@ 8 Savjet: Povuci prema dolje za zatvaranje. Pomakni zaslon za zatvaranje tipkovnice. U redu + Cool! Automatski prikaži tipkovnicu Sakrij Prikaži statusnu traku @@ -63,6 +64,8 @@ \n\nIzbor je uvijek vaš. Ako želite postaviti vremenska ograničenja za određene aplikacije, značajka Digital Wellbeing na Androidu može vam pomoći u tome. \n\nPotražite Digital Wellbeing u postavkama telefona i omogućite ga. + Da biste prikazali/sakrili vrijeme korištenja ekrana na početnom zaslonu, molimo dozvolite ili onemogućite dopuštenje korištenja aplikacije. + \n\nNapomena: Ne prikupljaju se podaci o korištenju aplikacije. Sve se obrađuje na vašem uređaju. Dozvola za pristupačnost potrebna je za omogućavanje zaključavanja dvostrukim dodirom. Bilo koji podatci prikupljeni ovim servisom neće napustiti tvoj uređaj. lock layout description to be used a unique id to lock screen Besplatno podrži Olauncher korištenjem naše sponzorske poveznice za Amazon. @@ -88,7 +91,7 @@ Obavijesti Saznajte više Dali si znao? - Vrijeme na ekranu + Vrijeme na ekranu Ostavite recenziju Olauncher jest i uvijek će biti potpuno besplatan. Nema reklama. Ne prikuplja podatke. Što je najvažnije, pomaže vam u smanjenju vremena koje provodite pred ekranom i živite zdravijim digitalnim životom. \n\nVjerujemo da je prelazak na minimalni launcher izvrsna odluka. Iako smo očito pristrani, nadamo se da uživate u iskustvu. Slobodno podijelite svoje misli s nama! @@ -128,5 +131,6 @@ Sakrij Koristite li svoj telefon ili vaš telefon koristi vas? O Olauncher-u i ČPP - Poravnanje promijenjeno ✅ + Poravnanje promijenjeno ✅ + Početni ekran diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 3845f87..7eb6d49 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -55,19 +55,21 @@ Üdvözöljük a beállításokban! \n\nNe feledje, ha bármilyen kérdése van, az „Rólunk” oldalunk tartalmazza a választ. Üdv, ezt az üzenetet nem fogja újra látni. - \n\nHa tetszik az Olauncher, kérjük, adjon nekünk 5 csillagos értékelést! Ez segít javítani a helyezésünket, és nagyon boldoggá tesz minket. Köszönjük! + \n\nHa tetszik az Olauncher, kérjük, adjon nekünk 5 csillagos értékelést! Ez segít javítani a helyezésünket, és nagyon boldoggá tesz minket. Köszönjük! A segítségére van szükségünk! Tavaly átléptük az egymillió letöltést. Idén egy millióval többet szeretnénk elérni, de egyedül nem tudjuk megtenni. - \n\nAz Olauncher-nek emberekre van szüksége, az embereknek pedig az Olauncher-re. Köszönettel vennénk, ha megosztaná másokkal is az Olaunchert! - - + \n\nAz Olauncher-nek emberekre van szüksége, az embereknek pedig az Olauncher-re. Köszönettel vennénk, ha megosztaná másokkal is az Olaunchert! + + Üdv, a billentyűzet a leggyorsabb módja az alkalmazások megtalálásához és elindításához az Olauncherben. Megkérhetjük, hogy hagyja bekapcsolva még néhány napig, és utána döntsön? - \n\nA választás mindig az Öné. + \n\nA választás mindig az Öné. Ha időkorlátokat szeretne beállítani bizonyos alkalmazásokhoz, az Android Digital Wellbeing funkciója segíthet ebben. - \n\nKeresse meg a Digitális jólét elemet a telefon beállításai között, és engedélyezze. + \n\nKeresse meg a Digitális jólét elemet a telefon beállításai között, és engedélyezze. + A képernyőidő megjelenítéséhez/elrejtéséhez a kezdőképernyőn engedélyezze vagy tagadja meg az alkalmazás használati engedélyét. + \n\nMegjegyzés: Nem gyűjtünk alkalmazás-használati adatokat. Minden az Ön eszközén kerül feldolgozásra. A hozzáférhetőségi engedély szükséges a dupla koppintás általi zároláshoz. Az Olauncher által ezen a szolgáltatáson keresztül megszerzett adatok nem hagyják el a készüléket. Támogasson minket ingyenesen az Amazon affiliate linkünk használatával. Minden alkalommal, amikor vásárol valamit a linkünket használva, egy kis jutalékot kapunk. Kérjük, mentse el a linket, és használja fel, amikor csak online vásárol. - \n\nKöszönjük! + \n\nKöszönjük! Link megnyitása Másolás Bezárás @@ -124,11 +126,12 @@ Rejtsd el! Ön használja a telefonját, vagy a telefonja használja Önt? Az Olauncher-ről - Képernyőidő + Képernyőidő Tudjon meg többet Tudta? Hagyjon véleményt Az Olauncher teljesen ingyenes és mindig is az lesz. Nincsenek hirdetései, nem gyűjt adatokat, és segít csökkenteni a képernyő előtt töltött időt egy egészségesebb digitális élet végett. \n\nÚgy gondoljuk, hogy egy minimális indítóra váltás kiváló döntés, és reméljük, hogy élvezni fogja. Ossza meg másokkal is tapasztalatait! Az igazítás megváltozott ✅ + Kezdőképernyő \ No newline at end of file diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 213e9a1..5b7c0bb 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -63,6 +63,8 @@ Hai, keyboard adalah cara tercepat untuk menemukan dan meluncurkan aplikasi di Olauncher. Bisakah kami meminta Anda untuk mengaktifkannya selama beberapa hari lagi dan kemudian memutuskan? Pilihan selalu menjadi milik Anda. Jika Anda ingin menetapkan batas waktu untuk aplikasi tertentu, fitur Digital Wellbeing Android dapat membantu Anda melakukannya. \n\nSilakan cari Digital Wellbeing di pengaturan ponsel Anda dan aktifkan. + Untuk menampilkan/menyembunyikan waktu layar di layar utama, izinkan atau tolak izin penggunaan aplikasi. + \n\nCatatan: Tidak ada data penggunaan aplikasi yang dikumpulkan. Semua diproses di perangkat Anda. Izin aksesibilitas diperlukan untuk mengaktifkan ketuk dua kali untuk mengunci. Data apa pun yang diperoleh Olauncher melalui layanan ini tidak akan meninggalkan perangkat Anda. Dukung Olauncher secara gratis dengan menggunakan tautan afiliasi Amazon kami. Setiap kali Anda membeli sesuatu menggunakan tautan kami, kami mendapat komisi kecil. Harap simpan tautan dan gunakan setiap kali Anda berbelanja online.\nTerima kasih! @@ -121,10 +123,11 @@ Apakah Anda menggunakan ponsel Anda, atau ponsel Anda menggunakan Anda? Tentang Olauncher Pelajari lebih lanjut - Waktu layar + Waktu layar Tahukah kamu? Tinggalkan ulasan Olauncher sepenuhnya gratis dan akan selalu gratis. Tidak ada iklan. Tidak mengumpulkan data pribadi. Yang terpenting, ini membantu Anda mengurangi waktu pemakaian perangkat dan menjalani kehidupan digital yang lebih sehat. \n\nKami percaya bahwa beralih ke peluncur minimal adalah keputusan yang sangat baik. Meskipun kami jelas-jelas bias, kami harap Anda menikmati pengalaman ini. Jangan ragu untuk berbagi pemikiran Anda dengan kami! - Penyelarasan diubah ✅ + Penyelarasan diubah ✅ + Layar beranda \ No newline at end of file diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 263a9fc..0aff260 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -63,6 +63,8 @@ \n\nSei sempre tu a scegliere. Se desideri impostare limiti di tempo per determinate app, la funzionalità Benessere digitale di Android può aiutarti a farlo. \n\nCerca Benessere digitale nelle impostazioni del telefono e attivalo. + Per visualizzare/nascondere il tempo di utilizzo dello schermo sulla schermata iniziale, conceda o neghi il permesso di utilizzo dell\'app. + \n\nNota: Non vengono raccolti dati sull\'utilizzo dell\'app. Tutto viene elaborato sul tuo dispositivo. L\'autorizzazione di accessibilità è necessaria per abilitare il doppio tocco per il blocco schermo. Qualsiasi dato acquisito da Olauncher tramite questo servizio rimarrà all’interno del telefono Supporta Olauncher gratuitamente utilizzando il nostro link di affiliazione su Amazon. Ogni volta che acquisti qualcosa utilizzando il nostro link, riceviamo una piccola commissione. Salva il link e usalo ogni volta che fai acquisti online.\n Grazie! @@ -123,10 +125,11 @@ Stai usando il tuo telefono, o è il tuo telefono che sta usando te? Info Olauncher Saperne di più - Tempo di schermo + Tempo di schermo Lo sapevate? Lascia una recensione Olauncher è e sarà sempre completamente gratuito. Non ha pubblicità. Non raccoglie dati. Ancora più importante, ti aiuta a ridurre il tempo trascorso davanti allo schermo e a vivere una vita digitale più sana. \n\nCrediamo che passare a un launcher minimale sia un\'ottima decisione. Anche se siamo ovviamente di parte, ci auguriamo che l\'esperienza ti piaccia. Sentitevi liberi di condividere i tuoi pensieri con noi! - Allineamento cambiato ✅ + Allineamento cambiato ✅ + Schermata principale \ No newline at end of file diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 695e6f0..f5103da 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -96,6 +96,8 @@ こんにちは、キーボードは Olauncher でアプリを見つけて起動する最も速い方法です。もう数日間これをオンにしてから判断していただくようお願いできますか?選択は常にあなた次第です。 特定のアプリに時間制限を設定したい場合は、Android の Digital Wellbeing 機能を使用すると便利です。 \n\n携帯電話の設定で Digital Wellbeing を検索し、有効にしてください。 + ホーム画面で画面時間を表示/非表示するには、アプリの使用権限を許可または拒否してください。 + \n\n注意: アプリの使用データは収集されません。すべての処理はあなたのデバイスで行われます。 ダブルタップしてロックを有効にするには、アクセシビリティ許可が必要です。このサービスを通じて Olauncher が取得したデータは、デバイスから流出することはありません。 Amazon アフィリエイト リンクを使用して、Olauncher を無料でサポートしてください。 あなたが私たちのリンクを使用して何かを購入するたびに、私たちは少額の手数料を受け取ります。リンクを保存し、オンライン ショッピングの際には必ずご利用ください。 ありがとう! @@ -119,7 +121,7 @@ アプリを左にスワイプ有効化 アプリを右にスワイプ有効 左にスワイプするとアプリが無効になります - スクリーンタイム + スクリーンタイム アプリを右にスワイプすると無効になります あなたは電話を使っていますか、それともあなたの電話があなたを使っていますか? アバウト Olauncher @@ -128,5 +130,6 @@ レビューを残す Olauncher は現在も、今後も完全に無料です。広告はありません。データは収集されません。最も重要なことは、スクリーンタイムを短縮し、より健康的なデジタル ライフを送るのに役立つことです。 \n\n私たちは、最小限のランチャーに切り替えるのは素晴らしい決断だと信じています。明らかに偏見がありますが、楽しんでいただければ幸いです。ぜひご意見をお聞かせください。 - アライメントが変更されました ✅ + アライメントが変更されました ✅ + ホーム画面 \ No newline at end of file diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index a245403..fb2d0e8 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -95,6 +95,8 @@ Cześć, klawiatura to najszybszy sposób znajdowania i uruchamiania aplikacji w Olauncher. Czy możemy poprosić o pozostawienie tego włączonego jeszcze przez kilka dni, a następnie podjęcie decyzji?\n\nWybór zawsze należy do Ciebie. Jeśli chcesz ustawić limity czasowe dla niektórych aplikacji, funkcja Cyfrowa równowaga w systemie Android może Ci w tym pomóc. \n\nWyszukaj opcję Cyfrowa równowaga w ustawieniach telefonu i włącz ją. + Aby wyświetlić/ukryć czas ekranu na ekranie głównym, pozwól lub zabroń aplikacji na dostęp do danych o użyciu. + \n\nUwaga: Nie są gromadzone żadne dane o użyciu aplikacji. Wszystko jest przetwarzane na Twoim urządzeniu. Uprawnienia dostępu są wymagane, aby włączyć podwójne dotknięcie, aby zablokować. Wszelkie dane pozyskane przez Olauncher za pośrednictwem tej usługi nie opuszczą Twojego urządzenia. Wesprzyj Olauncher za darmo, korzystając z naszego linku afiliacyjnego Amazon. Za każdym razem, gdy kupujesz coś za pomocą naszego linku, otrzymujemy niewielką prowizję. Zapisz link i używaj go podczas zakupów online. Dziękuję! @@ -121,11 +123,12 @@ Gest Przesuń w prawo jest wyłączony Czy używasz telefonu, czy telefon używa ciebie? O Olauncher - Czas ekranowy + Czas ekranowy Ucz się więcej Czy wiedziałeś? Ucz się więcej Olauncher jest i zawsze będzie całkowicie darmowy. Nie zawiera reklam. Nie zbiera żadnych danych. Co najważniejsze, pomaga skrócić czas spędzany przed ekranem i prowadzić zdrowsze cyfrowe życie. \n\nWierzymy, że przejście na minimalny program uruchamiający to doskonała decyzja. Chociaż jesteśmy oczywiście stronniczy, mamy nadzieję, że spodoba ci się to doświadczenie. Podziel się z nami swoimi przemyśleniami! - Wyrównanie zmienione ✅ + Wyrównanie zmienione ✅ + Ekran główny diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 032a6d8..ef6e81b 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -63,6 +63,8 @@ \n\nA escolha é sempre sua! Se você deseja definir limites de tempo para determinados aplicativos, o recurso Bem-estar digital do Android pode ajudá-lo a fazer isso. \n\nProcure Bem-estar Digital nas configurações do seu telefone e ative-o. + Para exibir/ocultar o tempo de tela na tela inicial, permita ou negue a permissão de uso do aplicativo. + \n\nNota: Não são coletados dados de uso do aplicativo. Tudo é processado no seu dispositivo. A permissão de acessibilidade é necessária para ativar o toque duplo para bloquear. Quaisquer dados adquiridos pelo Olauncher através deste serviço não sairão do seu dispositivo. Apoie o Olauncher gratuitamente usando nosso link de afiliado da Amazon. Sempre que você comprar algo usando nosso link, receberemos uma pequena comissão. Salve o link e use-o sempre que fizer compras online. Obrigado! @@ -124,10 +126,11 @@ Você está usando seu telefone, ou seu telefone está usando você? Sobre Olauncher Saber mais - Tempo de tela + Tempo de tela Você sabia? Deixe um comentário Olauncher é e sempre será totalmente gratuito. Não tem anúncios. Não coleta dados. Mais importante ainda, ajuda você a reduzir o tempo de tela e a ter uma vida digital mais saudável. \n\nAcreditamos que mudar para um launcher mínimo é uma excelente decisão. Embora sejamos obviamente tendenciosos, esperamos que você esteja gostando da experiência. Sinta-se à vontade para compartilhar suas idéias conosco! - Alinhamento alterado ✅ + Alinhamento alterado ✅ + Tela inicial \ No newline at end of file diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 5b878fa..6d129fc 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -64,6 +64,8 @@ \n\nВыбор всегда за вами. Если вы хотите установить ограничения по времени для определенных приложений, функция «Цифровое благополучие» Android может помочь вам в этом. \n\nНайдите параметр «Цифровое благополучие» в настройках телефона и включите его. + Чтобы показать/скрыть время экрана на домашнем экране, разрешите или запретите разрешение на использование приложения. + \n\nПримечание: Не собираются данные об использовании приложения. Все обрабатывается на вашем устройстве. " Разрешение на доступ требуется, чтобы включить двойное касание для блокировки. Любые данные, полученные Olauncher через этот сервис, не покинут ваше устройство." Поддержите Olauncher бесплатно, используя нашу партнерскую ссылку Amazon. Каждый раз, когда вы покупаете что-то по нашей ссылке, мы получаем небольшую комиссию. Пожалуйста, сохраните ссылку и используйте ее при совершении покупок в Интернете.\nСпасибо! @@ -123,11 +125,12 @@ Скрыть Вы используете свой телефон, или ваш телефон использует вас? О нас Olauncher - Время на экране + Время на экране Узнать больше Вы знали? Оставить отзыв Olauncher есть и всегда будет полностью бесплатным. В нем нет рекламы. Он не собирает никаких данных. Самое главное, это помогает вам сократить время, проводимое перед экраном, и вести более здоровую цифровую жизнь. \n\nМы считаем, что переход на минимальный лаунчер — отличное решение. Хотя мы явно предвзяты, мы надеемся, что вам понравится этот опыт. Не стесняйтесь поделиться с нами своим мнением! - Выравнивание изменено ✅ + Выравнивание изменено ✅ + Главный экран diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 05e0c36..4a8fc2e 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -63,6 +63,8 @@ \n\nValet är alltid ditt. Om du vill ställa in tidsgränser för vissa appar, kan Digitalt välmående-funktionen i Android hjälpa dig att göra det. \n\nVänligen sök efter Digitalt välmående i dina telefoninställningar och aktivera den. + För att visa/dölja din skärmtid på startsidan, vänligen tillåt eller neka appanvändningsbehörigheten. + \n\nObs: Inga data om appanvändning samlas in. Allt bearbetas på din enhet. Tillgänglighetsbehörigheten krävs för att aktivera dubbeltryck för att låsa. Eventuella data förvärvade av Olauncher genom denna tjänst kommer inte att lämna din enhet. Stöd Olauncher utan kostnad genom att använda vår Amazon-affiliatelänk. Varje gång du köper något via vår länk får vi en liten provision. Vänligen spara länken och använd den när du handlar på nätet.\nTack! @@ -121,11 +123,12 @@ Dölj Använder du din telefon, eller använder din telefon dig? Om Olauncher - Skärmtid + Skärmtid Läs mer Visste du? Lämna en recension Olauncher är gratis och kommer alltid att vara det. Den har inga annonser. Den samlar inte in någon data. Viktigast av allt, det hjälper dig att minska din skärmtid och leva ett hälsosammare digitalt liv. \n\nVi tycker att det är ett utmärkt beslut att byta till en minimalistisk startskärmsapp. Även om vi uppenbarligen är partiska, hoppas vi att du gillar upplevelsen. Vi vill gärna höra dina tankar! - Justering ändrad ✅ + Justering ändrad ✅ + Startskärm \ No newline at end of file diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 96050ec..b542063 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -97,6 +97,8 @@ \n\nSeçim her zaman senindir. Belirli uygulamalar için zaman sınırları belirlemek istiyorsanız Android\'in Dijital Denge özelliği bunu yapmanıza yardımcı olabilir. \n\nLütfen telefon ayarlarınızda Dijital Refah\'ı arayın ve etkinleştirin. + Ana ekranınızda ekran sürenizi göstermek/gizlemek için lütfen uygulama kullanım iznini onaylayın veya reddedin. + \n\nNot: Uygulama kullanım verileri toplanmaz. Her şey cihazınızda işlenir. Kilitlemek için çift dokunmayı etkinleştirmek için erişilebilirlik izni gereklidir. Olauncher tarafından bu hizmet aracılığıyla elde edilen hiçbir veri cihazınızdan ayrılmayacaktır. Amazon ortaklık bağlantımızı kullanarak Olauncher\'ı ücretsiz olarak destekleyin. Bağlantımızı kullanarak her bir şey satın aldığınızda, küçük bir komisyon alırız. Lütfen bağlantıyı kaydedin ve çevrimiçi alışveriş yaptığınızda kullanın. Teşekkür ederim! @@ -124,10 +126,11 @@ Sen mi telefonunu, kullanıyorsun yoksa telefon mu seni kullanıyor? Hakkında Olauncher Daha fazla bilgi edin - Ekran süresi + Ekran süresi Biliyor musun? İnceleme bırak Olauncher tamamen ücretsizdir ve her zaman ücretsiz olacaktır. Hiçbir reklamı yok. Hiçbir veri toplamaz. En önemlisi ekran başında geçirdiğiniz süreyi azaltmanıza ve daha sağlıklı bir dijital yaşam sürmenize yardımcı olur. \n\nMinimal bir başlatıcıya geçmenin mükemmel bir karar olduğuna inanıyoruz. Açıkça ön yargılı olsak da, bu deneyimden keyif alacağınızı umuyoruz. Düşüncelerinizi bizimle paylaşmaktan çekinmeyin! - Hizalama değiştirildi ✅ + Hizalama değiştirildi ✅ + Ana ekran \ No newline at end of file diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 80dc6d9..f097332 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -64,6 +64,8 @@ \n\nВибір завжди за вами. Якщо ви хочете встановити часові обмеження для певних програм, функція цифрового добробуту Android може допомогти вам це зробити. \n\nЗнайдіть Digital Wellbeing у налаштуваннях телефону та ввімкніть його. + Щоб показати/ховати час роботи з екраном на головному екрані, будь ласка, дозвольте або забороніть дозвіл на використання програми. + \n\nПримітка: Не збираються дані про використання програми. Все обробляється на вашому пристрої. " Дозвіл на доступ потрібний, щоб увімкнути подвійне торкання для блокування. Будь-які дані, отримані Olauncher через цей сервіс, не залишать ваш пристрій." Підтримайте Olauncher безкоштовно, використовуючи наше партнерське посилання Amazon. Щоразу, коли ви купуєте щось за нашим посиланням, ми отримуємо невелику комісію. Будь ласка, збережіть посилання та використовуйте його для здійснення покупок в Інтернеті.\nСпасибі! @@ -124,10 +126,11 @@ Ви користуєтеся своїм телефоном, чи ваш телефон використовує вас? Про нас Olauncher Вивчайте більше - Час екрану + Час екрану Ти знав? Залиште відгук Olauncher є і завжди буде абсолютно безкоштовним. У ньому немає реклами. Він не збирає дані. Найважливіше те, що це допомагає вам скоротити час використання екрана та жити здоровішим цифровим життям. \n\nМи вважаємо, що перехід на мінімальний лаунчер є відмінним рішенням. Хоча ми явно упереджені, ми сподіваємося, що вам сподобається. Не соромтеся поділитися з нами своїми думками! - Вирівнювання змінено ✅ + Вирівнювання змінено ✅ + Головний екран diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 757fde2..08c545e 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -97,6 +97,8 @@ \n\n然后再决定吗?选择权永远在你手中。 如果您想为某些应用程序设置时间限制,Android 的数字健康功能可以帮助您做到这一点。 \n\n请在手机设置中搜索数字健康并启用它。 + 要在主屏幕上显示/隐藏您的屏幕时间,请允许或拒绝应用程序使用权限。 + \n\n注意:不收集应用程序使用数据。所有数据都在您的设备上处理。 请在手机设置中搜索数字健康并启用它。 使用我们的亚马逊附属链接免费支持 Olauncher。 每次您使用我们的链接购买商品时,我们都会获得少量佣金。请保存链接并在网上购物时使用它。 谢谢! @@ -124,10 +126,11 @@ 是你在用手机,还是手机在用你? 关于 Olauncher 了解更多 - 屏幕时间 + 屏幕时间 你可知道? 发表评论 Olauncher 现在并且永远是完全免费的。它没有广告。它不收集任何数据。最重要的是,它可以帮助您减少屏幕时间并过上更健康的数字生活。 \n\n我们相信切换到最小启动器是一个很好的决定。虽然我们显然有偏见,但我们希望您喜欢这次体验。请随时与我们分享您的想法! - 对齐已更改 ✅ + 对齐已更改 ✅ + 主屏幕 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7a85160..933c547 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -82,7 +82,7 @@ \n\nThe choice is always yours. If you want to set time limits for certain apps, Digital Wellbeing feature of Android can help you do it. \n\nPlease search for Digital Wellbeing in your phone settings and enable it. - To see show/hide your screen time on the home screen, please allow or disallow the app usage permission. + To show/hide your screen time on the home screen, please allow or disallow the app usage permission. \n\nNote: No app usage data is collected. Everything is processed on your device. The accessibility permission is required to enable double tap to lock. Any data acquired by Olauncher via this service will not leave your device. Support Olauncher for free by using our Amazon affiliate link. -- cgit v1.2.1 From 93794eab27ec7be62320ec9eb56d81afce4e1d60 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Sat, 16 Nov 2024 19:12:57 +0530 Subject: Minor copy fix --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/src/main') diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 933c547..e5f22ff 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -102,7 +102,7 @@ Please set Olauncher as default first Affiliate Tip: Start typing for app RENAME option - Note: Tap on \'Olauncher\' at the top of this Settings page to find your hidden apps.\n\nMore details available in our About page below. + Note: Tap on \'Olauncher\' at the top of this Settings page to find your hidden apps.\n\nMore details available in our About page. Swipe down for Search Notifications -- cgit v1.2.1 From 97f105c62897317448ab8bf33ed2eaef726c8323 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Sun, 17 Nov 2024 12:14:00 +0530 Subject: Copy changes --- app/src/main/java/app/olauncher/MainActivity.kt | 10 +++++----- app/src/main/res/values-ar/strings.xml | 1 + app/src/main/res/values-de/strings.xml | 1 + app/src/main/res/values-es-rES/strings.xml | 1 + app/src/main/res/values-es-rUS/strings.xml | 1 + app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values-hr/strings.xml | 1 + app/src/main/res/values-hu/strings.xml | 1 + app/src/main/res/values-in/strings.xml | 1 + app/src/main/res/values-it/strings.xml | 1 + app/src/main/res/values-ja/strings.xml | 1 + app/src/main/res/values-pl/strings.xml | 1 + app/src/main/res/values-pt-rBR/strings.xml | 1 + app/src/main/res/values-ru-rRU/strings.xml | 1 + app/src/main/res/values-sv/strings.xml | 1 + app/src/main/res/values-tr/strings.xml | 1 + app/src/main/res/values-uk/strings.xml | 1 + app/src/main/res/values-zh/strings.xml | 1 + app/src/main/res/values/strings.xml | 9 +++++---- 19 files changed, 27 insertions(+), 9 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/MainActivity.kt b/app/src/main/java/app/olauncher/MainActivity.kt index b33f356..fbf4dd5 100644 --- a/app/src/main/java/app/olauncher/MainActivity.kt +++ b/app/src/main/java/app/olauncher/MainActivity.kt @@ -151,7 +151,7 @@ class MainActivity : AppCompatActivity() { Constants.Dialog.SHARE -> { prefs.shareShownTime = System.currentTimeMillis() - showMessageDialog(getString(R.string.app_name), getString(R.string.share_message), getString(R.string.share_now)) { + showMessageDialog(getString(R.string.hey), getString(R.string.share_message), getString(R.string.share_now)) { binding.messageLayout.visibility = View.GONE showToast("😊❤️") shareApp() @@ -209,15 +209,15 @@ class MainActivity : AppCompatActivity() { if (prefs.rateClicked) prefs.userState = Constants.UserState.SHARE else if (isOlauncherDefault(this) - && prefs.firstOpenTime.hasBeenDays(3) - && Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 15 + && prefs.firstOpenTime.hasBeenDays(7) + && Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 18 ) viewModel.showDialog.postValue(Constants.Dialog.RATE) } Constants.UserState.SHARE -> { if (isOlauncherDefault(this) && prefs.firstOpenTime.hasBeenDays(14) - && prefs.shareShownTime.hasBeenDays(45) - && Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 15 + && prefs.shareShownTime.hasBeenDays(42) + && Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 18 ) viewModel.showDialog.postValue(Constants.Dialog.SHARE) } } diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 4b88ffa..727fa80 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -128,4 +128,5 @@ وقت الشاشة تم تغيير المحاذاة ✅ شاشة الرئيسية + مرحبا \ No newline at end of file diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 5d65da8..5d95310 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -133,4 +133,5 @@ \n\nWir glauben, dass der Wechsel zu einem Minimal Launcher eine ausgezeichnete Entscheidung ist. Obwohl wir offensichtlich voreingenommen sind, hoffen wir, dass Ihnen die Erfahrung gefällt. Teilen Sie uns gerne Ihre Gedanken mit! Ausrichtung geändert ✅ Startbildschirm + Hey diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index ec88fd3..24f4ab0 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -133,4 +133,5 @@ \n\nCreemos que cambiar a un lanzador mínimo es una excelente decisión. Aunque obviamente somos parciales, esperamos que disfrutes la experiencia. ¡No dudes en compartir tus pensamientos con nosotros! Alineación cambiada ✅ Pantalla de inicio + Hola diff --git a/app/src/main/res/values-es-rUS/strings.xml b/app/src/main/res/values-es-rUS/strings.xml index 76f0a3d..90bfe34 100644 --- a/app/src/main/res/values-es-rUS/strings.xml +++ b/app/src/main/res/values-es-rUS/strings.xml @@ -130,4 +130,5 @@ \n\nCreemos que cambiar a un lanzador mínimo es una excelente decisión. Aunque obviamente somos parciales, esperamos que disfrutes la experiencia. ¡No dude en compartir sus pensamientos con nosotros! Alineación cambiada ✅ Pantalla de inicio + Hola diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 1dfb558..6fffdcb 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -135,4 +135,5 @@ \n\nNous pensons que passer à un lanceur minimal est une excellente décision. Même si nous sommes évidemment partiaux, nous espérons que vous appréciez l\'expérience. N\'hésitez pas à partager vos idées avec nous! Alignement changé ✅ Écran d\'accueil + Salut diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 572f3d7..1252ea9 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -133,4 +133,5 @@ O Olauncher-u i ČPP Poravnanje promijenjeno ✅ Početni ekran + Bok diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 7eb6d49..80128c3 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -134,4 +134,5 @@ \n\nÚgy gondoljuk, hogy egy minimális indítóra váltás kiváló döntés, és reméljük, hogy élvezni fogja. Ossza meg másokkal is tapasztalatait! Az igazítás megváltozott ✅ Kezdőképernyő + Szia \ No newline at end of file diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 5b7c0bb..cb29eb7 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -130,4 +130,5 @@ \n\nKami percaya bahwa beralih ke peluncur minimal adalah keputusan yang sangat baik. Meskipun kami jelas-jelas bias, kami harap Anda menikmati pengalaman ini. Jangan ragu untuk berbagi pemikiran Anda dengan kami! Penyelarasan diubah ✅ Layar beranda + Hai \ No newline at end of file diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 0aff260..5d2fb74 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -132,4 +132,5 @@ \n\nCrediamo che passare a un launcher minimale sia un\'ottima decisione. Anche se siamo ovviamente di parte, ci auguriamo che l\'esperienza ti piaccia. Sentitevi liberi di condividere i tuoi pensieri con noi! Allineamento cambiato ✅ Schermata principale + Ciao \ No newline at end of file diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index f5103da..b5d0352 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -132,4 +132,5 @@ \n\n私たちは、最小限のランチャーに切り替えるのは素晴らしい決断だと信じています。明らかに偏見がありますが、楽しんでいただければ幸いです。ぜひご意見をお聞かせください。 アライメントが変更されました ✅ ホーム画面 + やあ \ No newline at end of file diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index fb2d0e8..7e6ff5b 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -131,4 +131,5 @@ \n\nWierzymy, że przejście na minimalny program uruchamiający to doskonała decyzja. Chociaż jesteśmy oczywiście stronniczy, mamy nadzieję, że spodoba ci się to doświadczenie. Podziel się z nami swoimi przemyśleniami! Wyrównanie zmienione ✅ Ekran główny + Hej diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index ef6e81b..8775f8b 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -133,4 +133,5 @@ \n\nAcreditamos que mudar para um launcher mínimo é uma excelente decisão. Embora sejamos obviamente tendenciosos, esperamos que você esteja gostando da experiência. Sinta-se à vontade para compartilhar suas idéias conosco! Alinhamento alterado ✅ Tela inicial + Oi \ No newline at end of file diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 6d129fc..bfc430e 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -133,4 +133,5 @@ \n\nМы считаем, что переход на минимальный лаунчер — отличное решение. Хотя мы явно предвзяты, мы надеемся, что вам понравится этот опыт. Не стесняйтесь поделиться с нами своим мнением! Выравнивание изменено ✅ Главный экран + Привет diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 4a8fc2e..22f41fb 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -131,4 +131,5 @@ \n\nVi tycker att det är ett utmärkt beslut att byta till en minimalistisk startskärmsapp. Även om vi uppenbarligen är partiska, hoppas vi att du gillar upplevelsen. Vi vill gärna höra dina tankar! Justering ändrad ✅ Startskärm + Hej \ No newline at end of file diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index b542063..8b3575f 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -133,4 +133,5 @@ \n\nMinimal bir başlatıcıya geçmenin mükemmel bir karar olduğuna inanıyoruz. Açıkça ön yargılı olsak da, bu deneyimden keyif alacağınızı umuyoruz. Düşüncelerinizi bizimle paylaşmaktan çekinmeyin! Hizalama değiştirildi ✅ Ana ekran + Merhaba \ No newline at end of file diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index f097332..7b54721 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -133,4 +133,5 @@ \n\nМи вважаємо, що перехід на мінімальний лаунчер є відмінним рішенням. Хоча ми явно упереджені, ми сподіваємося, що вам сподобається. Не соромтеся поділитися з нами своїми думками! Вирівнювання змінено ✅ Головний екран + Привіт diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 08c545e..03055df 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -133,4 +133,5 @@ \n\n我们相信切换到最小启动器是一个很好的决定。虽然我们显然有偏见,但我们希望您喜欢这次体验。请随时与我们分享您的想法! 对齐已更改 ✅ 主屏幕 + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e5f22ff..816f728 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -74,8 +74,8 @@ \n\nRemember, if you have any questions, our About page has the answer. Hi, you won\'t see this message again. \n\nIf you\'re finding Olauncher useful, could you please leave a 5-star review? It\'ll mean the world to us. Thank you! - We need your help! We crossed a million downloads last year. This year, we want to reach a million more, but we can\'t do it alone. - \n\nOlauncher needs people, and people need Olauncher. Could you please share Olauncher with others? + We need your help! We want to tell every Android user about the benefits of Olauncher but we can\'t do it alone. + \n\nCould you please share Olauncher with your friends, family and followers? That\'d be very helpful. Thanks! Hi, keyboard is the fastest way to find and launch apps in Olauncher. Can we request you to keep this On for a few more days and then decide? @@ -146,8 +146,9 @@ Learn more Did you know? Leave a review - Olauncher is free and always will be. It has no ads, collects no data, and helps you reduce screen time for a healthier digital life. - \n\nWe believe a minimal launcher is a great choice, and we hope you enjoy it. Tell the world what you think! + Olauncher is free and always will be. It has no ads, collects no data, and reduces your screen time resulting in a healthier life. + \n\nWe hope you enjoy it. Tell us what you think. Alignment changed ✅ Home screen + Hey \ No newline at end of file -- cgit v1.2.1 From 4f3dfbb29cf2ad3ce402782ef7c2ca67bf4092f5 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Sun, 17 Nov 2024 12:40:35 +0530 Subject: Copy changes --- app/src/main/java/app/olauncher/MainActivity.kt | 10 ++++++++-- app/src/main/java/app/olauncher/data/Constants.kt | 1 + app/src/main/java/app/olauncher/data/Prefs.kt | 5 +++++ app/src/main/java/app/olauncher/ui/SettingsFragment.kt | 8 ++++++++ app/src/main/res/values-ar/strings.xml | 2 ++ app/src/main/res/values-de/strings.xml | 2 ++ app/src/main/res/values-es-rES/strings.xml | 2 ++ app/src/main/res/values-es-rUS/strings.xml | 2 ++ app/src/main/res/values-fr/strings.xml | 4 +++- app/src/main/res/values-hr/strings.xml | 2 ++ app/src/main/res/values-hu/strings.xml | 2 ++ app/src/main/res/values-in/strings.xml | 2 ++ app/src/main/res/values-it/strings.xml | 2 ++ app/src/main/res/values-ja/strings.xml | 2 ++ app/src/main/res/values-pl/strings.xml | 2 ++ app/src/main/res/values-pt-rBR/strings.xml | 2 ++ app/src/main/res/values-ru-rRU/strings.xml | 2 ++ app/src/main/res/values-sv/strings.xml | 2 ++ app/src/main/res/values-tr/strings.xml | 2 ++ app/src/main/res/values-uk/strings.xml | 2 ++ app/src/main/res/values-zh/strings.xml | 2 ++ app/src/main/res/values/strings.xml | 2 ++ 22 files changed, 59 insertions(+), 3 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/MainActivity.kt b/app/src/main/java/app/olauncher/MainActivity.kt index fbf4dd5..afe4321 100644 --- a/app/src/main/java/app/olauncher/MainActivity.kt +++ b/app/src/main/java/app/olauncher/MainActivity.kt @@ -26,6 +26,7 @@ import app.olauncher.helper.isDefaultLauncher import app.olauncher.helper.isEinkDisplay import app.olauncher.helper.isOlauncherDefault import app.olauncher.helper.isTablet +import app.olauncher.helper.openUrl import app.olauncher.helper.rateApp import app.olauncher.helper.resetLauncherViaFakeActivity import app.olauncher.helper.setPlainWallpaper @@ -173,7 +174,12 @@ class MainActivity : AppCompatActivity() { Constants.Dialog.DIGITAL_WELLBEING -> { showMessageDialog(getString(R.string.screen_time), getString(R.string.app_usage_message), getString(R.string.permission)) { startActivity(Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS)) - // openUrl(Constants.URL_DIGITAL_WELLBEING_LEARN_MORE) + } + } + + Constants.Dialog.PRO_MESSAGE -> { + showMessageDialog(getString(R.string.hey), getString(R.string.pro_message), getString(R.string.olauncher_pro)) { + openUrl(Constants.URL_OLAUNCHER_PRO) } } } @@ -215,7 +221,7 @@ class MainActivity : AppCompatActivity() { } Constants.UserState.SHARE -> { - if (isOlauncherDefault(this) && prefs.firstOpenTime.hasBeenDays(14) + if (isOlauncherDefault(this) && prefs.firstOpenTime.hasBeenDays(21) && prefs.shareShownTime.hasBeenDays(42) && Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 18 ) viewModel.showDialog.postValue(Constants.Dialog.SHARE) diff --git a/app/src/main/java/app/olauncher/data/Constants.kt b/app/src/main/java/app/olauncher/data/Constants.kt index 12f9a75..bb28b6c 100644 --- a/app/src/main/java/app/olauncher/data/Constants.kt +++ b/app/src/main/java/app/olauncher/data/Constants.kt @@ -15,6 +15,7 @@ object Constants { const val HIDDEN = "HIDDEN" const val KEYBOARD = "KEYBOARD" const val DIGITAL_WELLBEING = "DIGITAL_WELLBEING" + const val PRO_MESSAGE = "PRO_MESSAGE" } object UserState { diff --git a/app/src/main/java/app/olauncher/data/Prefs.kt b/app/src/main/java/app/olauncher/data/Prefs.kt index c1ab5ad..6db3119 100644 --- a/app/src/main/java/app/olauncher/data/Prefs.kt +++ b/app/src/main/java/app/olauncher/data/Prefs.kt @@ -36,6 +36,7 @@ class Prefs(context: Context) { private val SHARE_SHOWN_TIME = "SHARE_SHOWN_TIME" private val SWIPE_DOWN_ACTION = "SWIPE_DOWN_ACTION" private val TEXT_SIZE_SCALE = "TEXT_SIZE_SCALE" + private val PRO_MESSAGE_SHOWN = "PRO_MESSAGE_SHOWN" private val APP_NAME_1 = "APP_NAME_1" private val APP_NAME_2 = "APP_NAME_2" @@ -167,6 +168,10 @@ class Prefs(context: Context) { get() = prefs.getFloat(TEXT_SIZE_SCALE, 1.0f) set(value) = prefs.edit().putFloat(TEXT_SIZE_SCALE, value).apply() + var proMessageShown: Boolean + get() = prefs.getBoolean(PRO_MESSAGE_SHOWN, false) + set(value) = prefs.edit().putBoolean(PRO_MESSAGE_SHOWN, value).apply() + var hiddenApps: MutableSet get() = prefs.getStringSet(HIDDEN_APPS, mutableSetOf()) as MutableSet set(value) = prefs.edit().putStringSet(HIDDEN_APPS, value).apply() diff --git a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt index 94a4fc3..bfa1a1b 100644 --- a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt +++ b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt @@ -68,6 +68,7 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe checkAdminPermission() binding.homeAppsNum.text = prefs.homeAppsNum.toString() + populateProMessage() populateKeyboardText() populateScreenTimeOnOff() populateLockSettings() @@ -622,6 +623,13 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe binding.rate.setCompoundDrawablesWithIntrinsicBounds(0, android.R.drawable.arrow_down_float, 0, 0) } + private fun populateProMessage() { + if (prefs.proMessageShown.not() && prefs.userState == Constants.UserState.SHARE) { + prefs.proMessageShown = true + viewModel.showDialog.postValue(Constants.Dialog.PRO_MESSAGE) + } + } + override fun onDestroyView() { super.onDestroyView() _binding = null diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 727fa80..2225c05 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -96,6 +96,8 @@ \n\nيرجى البحث عن الرفاهية الرقمية في إعدادات هاتفك وتمكينها. لعرض/إخفاء وقت استخدام الشاشة على الشاشة الرئيسية، يرجى السماح أو منع إذن استخدام التطبيق. \n\nملاحظة: لا يتم جمع أي بيانات حول استخدام التطبيقات. يتم معالجة كل شيء على جهازك. + يحتوي Olauncher أيضًا على إصدار احترافي يسمى Pro Launcher. يحتوي على ميزات إضافية مثل الطقس، والأدوات، والخطوط، والمجلدات، وخلفيات AMOLED، وما إلى ذلك. + \n\nإنه أيضًا أفضل طريقة لدعم مطوري Olauncher. تحقق من ذلك! إذن الوصول مطلوب لتمكين النقر المزدوج للقفل. أي بيانات حصل عليها Olauncher عبر هذه الخدمة لن تترك جهازك. ادعم Olauncher مجانًا باستخدام رابط الشراكة التابع لشركة Amazon. في كل مرة تشتري شيئًا باستخدام الرابط الخاص بنا ، نحصل على عمولة صغيرة. يرجى حفظ الرابط واستخدامه في أي وقت تتسوق فيه عبر الإنترنت. شكرًا لك! diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 5d95310..9f40e7d 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -99,6 +99,8 @@ \n\nBitte suchen Sie in Ihren Telefoneinstellungen nach Digital Wellbeing und aktivieren Sie es. Um die Bildschirmzeit auf dem Startbildschirm anzuzeigen oder zu verbergen, erteilen Sie bitte die Erlaubnis für die App-Nutzung oder verweigern Sie sie. \n\nHinweis: Es werden keine Daten zur App-Nutzung gesammelt. Alles wird auf Ihrem Gerät verarbeitet. + Olauncher hat auch eine Pro-Version namens Pro Launcher. Sie bietet zusätzliche Funktionen wie Wetter, Widgets, Schriftarten, Ordner, AMOLED-Hintergründe usw. + \n\nEs ist auch der beste Weg, die Entwickler von Olauncher zu unterstützen. Schau es dir an! Die Zugriffsberechtigung ist erforderlich, um das Sperren durch Doppeltippen zu ermöglichen. Die von Olauncher über diesen Dienst erfassten Daten verlassen Ihr Gerät nicht. Unterstützen Sie Olauncher kostenlos, indem Sie unseren Amazon-Partnerlink verwenden. Jedes Mal, wenn Sie über unseren Link etwas kaufen, erhalten wir eine kleine Provision. Bitte speichern Sie den Link und verwenden Sie ihn bei jedem Online-Einkauf. Dan­ke­schön! diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 24f4ab0..3253993 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -66,6 +66,8 @@ \n\nBusca Bienestar digital en la configuración de su teléfono y habilítelo. Para mostrar/ocultar el tiempo de pantalla en la pantalla de inicio, permita o deniegue el permiso de uso de la aplicación. \n\nNota: No se recopilan datos de uso de la aplicación. Todo se procesa en su dispositivo. + Olauncher también tiene una versión pro llamada Pro Launcher. Tiene funciones adicionales como clima, widgets, fuentes, carpetas, fondos AMOLED, etc. + \n\nTambién es la mejor manera de apoyar a los desarrolladores de Olauncher. ¡Échale un vistazo! "Se requiere el permiso de accesibilidad para habilitar el doble toque para bloquear. Cualquier dato adquirido por Olauncher a través de este servicio no saldrá de su dispositivo." Apoya a Olauncher de forma gratuita utilizando nuestro enlace de afiliado de Amazon. Cada vez que compre algo usando nuestro enlace, obtendremos una pequeña comisión. Guarde el enlace y utilícelo cada vez que compre en línea.\n¡Gracias! diff --git a/app/src/main/res/values-es-rUS/strings.xml b/app/src/main/res/values-es-rUS/strings.xml index 90bfe34..65cc65b 100644 --- a/app/src/main/res/values-es-rUS/strings.xml +++ b/app/src/main/res/values-es-rUS/strings.xml @@ -65,6 +65,8 @@ \n\nBusque Bienestar Digital en la configuración de su teléfono y habilítelo. Para mostrar/ocultar el tiempo de pantalla en la pantalla de inicio, permita o deniegue el permiso de uso de la aplicación. \n\nNota: No se recopilan datos de uso de la aplicación. Todo se procesa en su dispositivo. + Olauncher también tiene una versión pro llamada Pro Launcher. Tiene funciones adicionales como clima, widgets, fuentes, carpetas, fondos AMOLED, etc. + \n\nTambién es la mejor manera de apoyar a los desarrolladores de Olauncher. ¡Échale un vistazo! Se necesita el permiso de Accesibilidad para activar el bloqueo con doble toque. Cualquier dato recolectado por Olauncher no saldrá de su dispositivo. Apoye Olauncher de forma gratuita utilizando nuestro enlace de afiliado de Amazon. Cada vez que compre algo usando nuestro enlace, obtenemos una pequeña comisión. Por favor, guarde el enlace y úselo cada vez que compre en línea. ¡Gracias! diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 6fffdcb..f09c97b 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -64,7 +64,9 @@ Si vous souhaitez définir des limites de temps pour certaines applications, la fonctionnalité Digital Wellbeing d\'Android peut vous aider à le faire. \n\nVeuillez rechercher Digital Wellbeing dans les paramètres de votre téléphone et l\'activer. Pour afficher/masquer le temps d\'écran sur l\'écran d\'accueil, autorisez ou refusez l\'autorisation d\'utilisation de l\'application. - \n\nRemarque : Aucune donnée d'utilisation de l\'application n\'est collectée. Tout est traité sur votre appareil. + \n\nRemarque : Aucune donnée d\'utilisation de l\'application n\'est collectée. Tout est traité sur votre appareil. + Olauncher a également une version pro appelée Pro Launcher. Elle dispose de fonctionnalités supplémentaires telles que la météo, les widgets, les polices, les dossiers, les fonds d\'écran AMOLED, etc. + \n\nC\'est aussi le meilleur moyen de soutenir les développeurs d\'Olauncher. Jetez-y un œil ! L\'autorisation d\'accessibilité est requise pour activer le double appui pour verrouiller. Toutes les données acquises par Olauncher via ce service ne quitteront pas votre appareil. Soutenez Olauncher gratuitement en utilisant notre lien d\'affiliation Amazon. Chaque fois que vous achetez quelque chose en utilisant notre lien, nous recevons une petite commission. Enregistrez le lien et utilisez le chaque fois que vous commandez en ligne. Merci! diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 1252ea9..64b2296 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -66,6 +66,8 @@ \n\nPotražite Digital Wellbeing u postavkama telefona i omogućite ga. Da biste prikazali/sakrili vrijeme korištenja ekrana na početnom zaslonu, molimo dozvolite ili onemogućite dopuštenje korištenja aplikacije. \n\nNapomena: Ne prikupljaju se podaci o korištenju aplikacije. Sve se obrađuje na vašem uređaju. + Olauncher također ima pro verziju pod nazivom Pro Launcher. Ima dodatne značajke poput vremena, widgeta, fontova, mapa, AMOLED pozadina itd. + \n\nTo je također najbolji način da podržite programere Olauncher-a. Pogledajte! Dozvola za pristupačnost potrebna je za omogućavanje zaključavanja dvostrukim dodirom. Bilo koji podatci prikupljeni ovim servisom neće napustiti tvoj uređaj. lock layout description to be used a unique id to lock screen Besplatno podrži Olauncher korištenjem naše sponzorske poveznice za Amazon. diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 80128c3..6e96f29 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -66,6 +66,8 @@ \n\nKeresse meg a Digitális jólét elemet a telefon beállításai között, és engedélyezze. A képernyőidő megjelenítéséhez/elrejtéséhez a kezdőképernyőn engedélyezze vagy tagadja meg az alkalmazás használati engedélyét. \n\nMegjegyzés: Nem gyűjtünk alkalmazás-használati adatokat. Minden az Ön eszközén kerül feldolgozásra. + Az Olauncher-nek van egy pro verziója is, amely Pro Launcher néven ismert. További funkciókat kínál, mint például időjárás, widgetek, betűtípusok, mappák, AMOLED háttérképek stb. + \n\nEz a legjobb módja annak, hogy támogassa az Olauncher fejlesztőit. Nézd meg! A hozzáférhetőségi engedély szükséges a dupla koppintás általi zároláshoz. Az Olauncher által ezen a szolgáltatáson keresztül megszerzett adatok nem hagyják el a készüléket. Támogasson minket ingyenesen az Amazon affiliate linkünk használatával. Minden alkalommal, amikor vásárol valamit a linkünket használva, egy kis jutalékot kapunk. Kérjük, mentse el a linket, és használja fel, amikor csak online vásárol. diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index cb29eb7..0a1bf80 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -65,6 +65,8 @@ \n\nSilakan cari Digital Wellbeing di pengaturan ponsel Anda dan aktifkan. Untuk menampilkan/menyembunyikan waktu layar di layar utama, izinkan atau tolak izin penggunaan aplikasi. \n\nCatatan: Tidak ada data penggunaan aplikasi yang dikumpulkan. Semua diproses di perangkat Anda. + Olauncher juga memiliki versi pro yang disebut Pro Launcher. Ini memiliki fitur tambahan seperti cuaca, widget, font, folder, wallpaper AMOLED, dan banyak lagi. + \n\nIni juga merupakan cara terbaik untuk mendukung pengembang Olauncher. Cek it out! Izin aksesibilitas diperlukan untuk mengaktifkan ketuk dua kali untuk mengunci. Data apa pun yang diperoleh Olauncher melalui layanan ini tidak akan meninggalkan perangkat Anda. Dukung Olauncher secara gratis dengan menggunakan tautan afiliasi Amazon kami. Setiap kali Anda membeli sesuatu menggunakan tautan kami, kami mendapat komisi kecil. Harap simpan tautan dan gunakan setiap kali Anda berbelanja online.\nTerima kasih! diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 5d2fb74..30655a3 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -65,6 +65,8 @@ \n\nCerca Benessere digitale nelle impostazioni del telefono e attivalo. Per visualizzare/nascondere il tempo di utilizzo dello schermo sulla schermata iniziale, conceda o neghi il permesso di utilizzo dell\'app. \n\nNota: Non vengono raccolti dati sull\'utilizzo dell\'app. Tutto viene elaborato sul tuo dispositivo. + Olauncher ha anche una versione pro chiamata Pro Launcher. Ha funzionalità extra come meteo, widget, font, cartelle, sfondi AMOLED, e così via. + \n\nÈ anche il modo migliore per supportare gli sviluppatori di Olauncher. Dai un\'occhiata! L\'autorizzazione di accessibilità è necessaria per abilitare il doppio tocco per il blocco schermo. Qualsiasi dato acquisito da Olauncher tramite questo servizio rimarrà all’interno del telefono Supporta Olauncher gratuitamente utilizzando il nostro link di affiliazione su Amazon. Ogni volta che acquisti qualcosa utilizzando il nostro link, riceviamo una piccola commissione. Salva il link e usalo ogni volta che fai acquisti online.\n Grazie! diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index b5d0352..db06522 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -98,6 +98,8 @@ \n\n携帯電話の設定で Digital Wellbeing を検索し、有効にしてください。 ホーム画面で画面時間を表示/非表示するには、アプリの使用権限を許可または拒否してください。 \n\n注意: アプリの使用データは収集されません。すべての処理はあなたのデバイスで行われます。 + OlauncherにはPro Launcherというプロ版もあります。天気、ウィジェット、フォント、フォルダー、AMOLED壁紙などの追加機能があります。 + \n\nOlauncherの開発者をサポートするための最良の方法でもあります。チェックしてみてください! ダブルタップしてロックを有効にするには、アクセシビリティ許可が必要です。このサービスを通じて Olauncher が取得したデータは、デバイスから流出することはありません。 Amazon アフィリエイト リンクを使用して、Olauncher を無料でサポートしてください。 あなたが私たちのリンクを使用して何かを購入するたびに、私たちは少額の手数料を受け取ります。リンクを保存し、オンライン ショッピングの際には必ずご利用ください。 ありがとう! diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 7e6ff5b..ecd179d 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -97,6 +97,8 @@ \n\nWyszukaj opcję Cyfrowa równowaga w ustawieniach telefonu i włącz ją. Aby wyświetlić/ukryć czas ekranu na ekranie głównym, pozwól lub zabroń aplikacji na dostęp do danych o użyciu. \n\nUwaga: Nie są gromadzone żadne dane o użyciu aplikacji. Wszystko jest przetwarzane na Twoim urządzeniu. + Olauncher ma również wersję pro o nazwie Pro Launcher. Posiada dodatkowe funkcje, takie jak pogoda, widgety, czcionki, foldery, tapety AMOLED itp. + \n\nTo także najlepszy sposób na wsparcie deweloperów Olauncher. Sprawdź to! Uprawnienia dostępu są wymagane, aby włączyć podwójne dotknięcie, aby zablokować. Wszelkie dane pozyskane przez Olauncher za pośrednictwem tej usługi nie opuszczą Twojego urządzenia. Wesprzyj Olauncher za darmo, korzystając z naszego linku afiliacyjnego Amazon. Za każdym razem, gdy kupujesz coś za pomocą naszego linku, otrzymujemy niewielką prowizję. Zapisz link i używaj go podczas zakupów online. Dziękuję! diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 8775f8b..877b9bf 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -65,6 +65,8 @@ \n\nProcure Bem-estar Digital nas configurações do seu telefone e ative-o. Para exibir/ocultar o tempo de tela na tela inicial, permita ou negue a permissão de uso do aplicativo. \n\nNota: Não são coletados dados de uso do aplicativo. Tudo é processado no seu dispositivo. + Olauncher também tem uma versão pro chamada Pro Launcher. Tem recursos extras como clima, widgets, fontes, pastas, papéis de parede AMOLED, e assim por diante. + \n\nÉ também a melhor maneira de apoiar os desenvolvedores do Olauncher. Confira! A permissão de acessibilidade é necessária para ativar o toque duplo para bloquear. Quaisquer dados adquiridos pelo Olauncher através deste serviço não sairão do seu dispositivo. Apoie o Olauncher gratuitamente usando nosso link de afiliado da Amazon. Sempre que você comprar algo usando nosso link, receberemos uma pequena comissão. Salve o link e use-o sempre que fizer compras online. Obrigado! diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index bfc430e..9276e9f 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -66,6 +66,8 @@ \n\nНайдите параметр «Цифровое благополучие» в настройках телефона и включите его. Чтобы показать/скрыть время экрана на домашнем экране, разрешите или запретите разрешение на использование приложения. \n\nПримечание: Не собираются данные об использовании приложения. Все обрабатывается на вашем устройстве. + У Olauncher также есть профессиональная версия под названием Pro Launcher. Она имеет дополнительные функции, такие как погода, виджеты, шрифты, папки, обои AMOLED и так далее. + \n\nЭто также лучший способ поддержать разработчиков Olauncher. Ознакомьтесь! " Разрешение на доступ требуется, чтобы включить двойное касание для блокировки. Любые данные, полученные Olauncher через этот сервис, не покинут ваше устройство." Поддержите Olauncher бесплатно, используя нашу партнерскую ссылку Amazon. Каждый раз, когда вы покупаете что-то по нашей ссылке, мы получаем небольшую комиссию. Пожалуйста, сохраните ссылку и используйте ее при совершении покупок в Интернете.\nСпасибо! diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 22f41fb..5d7721a 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -65,6 +65,8 @@ \n\nVänligen sök efter Digitalt välmående i dina telefoninställningar och aktivera den. För att visa/dölja din skärmtid på startsidan, vänligen tillåt eller neka appanvändningsbehörigheten. \n\nObs: Inga data om appanvändning samlas in. Allt bearbetas på din enhet. + Olauncher har också en pro-version som kallas Pro Launcher. Den har extra funktioner som väder, widgets, typsnitt, mappar, AMOLED-bakgrunder och så vidare. + \n\nDet är också det bästa sättet att stödja utvecklarna av Olauncher. Kolla in det! Tillgänglighetsbehörigheten krävs för att aktivera dubbeltryck för att låsa. Eventuella data förvärvade av Olauncher genom denna tjänst kommer inte att lämna din enhet. Stöd Olauncher utan kostnad genom att använda vår Amazon-affiliatelänk. Varje gång du köper något via vår länk får vi en liten provision. Vänligen spara länken och använd den när du handlar på nätet.\nTack! diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 8b3575f..6a1f122 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -99,6 +99,8 @@ \n\nLütfen telefon ayarlarınızda Dijital Refah\'ı arayın ve etkinleştirin. Ana ekranınızda ekran sürenizi göstermek/gizlemek için lütfen uygulama kullanım iznini onaylayın veya reddedin. \n\nNot: Uygulama kullanım verileri toplanmaz. Her şey cihazınızda işlenir. + Olauncher\'ın Pro Launcher adında bir pro versiyonu da var. Hava durumu, widget\'lar, yazı tipleri, klasörler, AMOLED duvar kağıtları gibi ekstra özelliklere sahip. + \n\nAyrıca Olauncher geliştiricilerini desteklemenin en iyi yolu. Göz atın! Kilitlemek için çift dokunmayı etkinleştirmek için erişilebilirlik izni gereklidir. Olauncher tarafından bu hizmet aracılığıyla elde edilen hiçbir veri cihazınızdan ayrılmayacaktır. Amazon ortaklık bağlantımızı kullanarak Olauncher\'ı ücretsiz olarak destekleyin. Bağlantımızı kullanarak her bir şey satın aldığınızda, küçük bir komisyon alırız. Lütfen bağlantıyı kaydedin ve çevrimiçi alışveriş yaptığınızda kullanın. Teşekkür ederim! diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 7b54721..ced28a8 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -66,6 +66,8 @@ \n\nЗнайдіть Digital Wellbeing у налаштуваннях телефону та ввімкніть його. Щоб показати/ховати час роботи з екраном на головному екрані, будь ласка, дозвольте або забороніть дозвіл на використання програми. \n\nПримітка: Не збираються дані про використання програми. Все обробляється на вашому пристрої. + Olauncher також має професійну версію під назвою Pro Launcher. Вона має додаткові функції, такі як погода, віджети, шрифти, папки, фони AMOLED тощо. + \n\nЦе також найкращий спосіб підтримати розробників Olauncher. Ознайомтеся! " Дозвіл на доступ потрібний, щоб увімкнути подвійне торкання для блокування. Будь-які дані, отримані Olauncher через цей сервіс, не залишать ваш пристрій." Підтримайте Olauncher безкоштовно, використовуючи наше партнерське посилання Amazon. Щоразу, коли ви купуєте щось за нашим посиланням, ми отримуємо невелику комісію. Будь ласка, збережіть посилання та використовуйте його для здійснення покупок в Інтернеті.\nСпасибі! diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 03055df..d6bf036 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -99,6 +99,8 @@ \n\n请在手机设置中搜索数字健康并启用它。 要在主屏幕上显示/隐藏您的屏幕时间,请允许或拒绝应用程序使用权限。 \n\n注意:不收集应用程序使用数据。所有数据都在您的设备上处理。 + Olauncher 还有一个名为 Pro Launcher 的专业版。它具有额外的功能,如天气、部件、字体、文件夹、AMOLED 壁纸等。 + \n\n这也是支持 Olauncher 开发者的最佳方式。快来看看吧! 请在手机设置中搜索数字健康并启用它。 使用我们的亚马逊附属链接免费支持 Olauncher。 每次您使用我们的链接购买商品时,我们都会获得少量佣金。请保存链接并在网上购物时使用它。 谢谢! diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 816f728..6e725c8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -84,6 +84,8 @@ \n\nPlease search for Digital Wellbeing in your phone settings and enable it. To show/hide your screen time on the home screen, please allow or disallow the app usage permission. \n\nNote: No app usage data is collected. Everything is processed on your device. + Olauncher also has a pro version called Pro Launcher. It has extra features like weather, widgets, fonts, folders, AMOLED wallpapers, and so on. + \n\nIt\'s also the best way to support the developers of Olauncher. Check it out! The accessibility permission is required to enable double tap to lock. Any data acquired by Olauncher via this service will not leave your device. Support Olauncher for free by using our Amazon affiliate link. Every time you buy something using our link, we get a small commission. Please save the link and use it whenever you shop online.\nThank you! -- cgit v1.2.1 From 8c788ac0e01c2705f8adb298c9097cb40ebbc0de Mon Sep 17 00:00:00 2001 From: Ahmad Tharwat <74804846+ahmad-tharwat@users.noreply.github.com> Date: Sun, 2 Feb 2025 15:38:02 +0200 Subject: Update strings.xml Fixed auto generated Arabic translations with the correct ones. --- app/src/main/res/values-ar/strings.xml | 96 +++++++++++++++++----------------- 1 file changed, 48 insertions(+), 48 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 2225c05..0fef8b8 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -1,6 +1,6 @@ - App + تطبيق تعيين كمشغل افتراضي تعيين كمشغل افتراضي تعيين كمشغل افتراضي @@ -14,78 +14,78 @@ سبعة ثمانية نصيحة: ابدأ في كتابة اسم التطبيق لتشغيله تلقائيًا - تمام + حسنًا رائع! - نصيحة: ابدأ الكتابة لخيار التطبيق RENAME - سيتم تحديث ورق الحائط الخاص بك قريبًا + نصيحة: ابدأ الكتابة بتغيير اسم التطبيق + سيتم تحديث الخلفية الخاصة بك قريبًا Olauncher ليس المشغل الافتراضي. قد يفشل التحديث اليومي للخلفية. - اضغط لفترة طويلة للتمكين + اضغط مطولًا للتمكين لا توجد تطبيقات مخفية تطبيقات مخفية - انتقاد اليسار تعطيل التطبيق - انتقاد الحق التطبيق تعطيل - ملاحظة: اضغط على \"Olauncher\" أعلى صفحة الإعدادات هذه للعثور على تطبيقاتك المخفية. المزيد من التفاصيل متوفرة في صفحة \"حول\" أدناه. + التمرير لليسار معطّل + التمرير لليمين معطّل + ملاحظة: اضغط على \"Olauncher\" أعلى الصفحة للعثور على تطبيقاتك المخفية. المزيد من التفاصيل متوفرة في صفحة \"حول\" أدناه. اسحب لأسفل من أجل يبحث إشعارات يرجى تشغيل أو إيقاف تشغيل خدمة الوصول في Olauncher في إعدادات جهازك لتمكين هذه الميزة أو تعطيلها. يرجى ملاحظة أن هذه الخدمة تُستخدم فقط للسماح لك بإيقاف تشغيل شاشة جهازك باستخدام إيماءة النقر المزدوج. خدمة الوصول لدينا لا تجمع أو تشارك أي بيانات. يقبل إذن - انقر نقرًا مزدوجًا للقفل - يُمكَِن - إبطال + النقر المزدوج للقفل + تشغيل + إيقاف لا يعمل؟ معلومات يمسح حجم الخط - ممكن - عاجز - يرجى تشغيل النقر المزدوج للقفل + ممكّن + مُطفأ + يرجى تشغيل النقر المزدوج لفتح القفل فشل Olauncher في قفل الجهاز. يرجى التحقق من إعدادات التطبيق الخاص بك. - اضغط لفترة طويلة لتحديد التطبيق - تعذر فتح معلومات التطبيق - نسخ - تطبيق النظام ، لا يمكن الحذف - اكتب اسم تطبيق جديد أولاً + اضغط مطوّلًا لاختيار التطبيق + تعذر فتح التطبيق + نُسخ + ﻻ يمكن حذف تطبيقات النظام + اكتب اسمًا جديدًا للتطبيق أولاً يعرض يخفي لون الخط - انقر نقرًا مزدوجًا للقفل + انقر مرتين لقفل الشاشة يعد Olauncher باستخدام إذن قفل الشاشة بشكل مسؤول. لا يقوم Olauncher بجمع أو مشاركة أي بيانات. - عن - عن - على + حول + + نعم أسود أبيض تغيير المشغل الافتراضي خصوصية - يشارك - يشارك - معدل - معدل - يتبع - بريد إلكتروني - يتبرع - 1. مرر لأعلى لجميع التطبيقات\n2. اضغط لفترة طويلة في أي مكان للإعدادات - تطبيقات على الشاشة الرئيسية - تطبيقات على الشاشة الرئيسية - غادر + شارك + يشارك اﻵن + قيّم + قيّم اﻵن + تابع + بريد + تبرّع + 1. مرر لأعلى لجميع التطبيقات\n2. اضغط مطوّلًا في أي مكان للإعدادات + التطبيقات على الشاشة الرئيسية + تحديث الخلفية يوميّا + يسار يمين مركز محاذاة التطبيق - انتقاد اليسار التطبيق - انتقد التطبيق الصحيح - لوحة مفاتيح العرض التلقائي + افتح عند التمرير لليسار + افتح عند التمرير لليمين + العرض التلقائي للوحة المفاتيح يخفي أظهر شريط الحالة إعادة تسمية إظهار التاريخ والوقت - مظهر + المظهر إيماءات - وضع الموضوع + النمط نظام مظلم - ضوء + مضيء مرحبًا بك في الإعدادات!\n\nتذكر، إذا كان لديك أي سؤال، فإن صفحة "حول" لدينا تحتوي على الإجابة. مرحبًا ، لن ترى هذه الرسالة مرة أخرى. \n\nإذا كنت تحب Olauncher ، فهل يمكنك أن تعطينا تصنيف 5 نجوم؟ يساعدنا ذلك على تحسين تصنيفنا ويجعلنا سعداء. شكرًا لك! @@ -111,24 +111,24 @@ خريطة الطريق تاريخ التاريخ فقط - القاع: تشغيل - القاع: إيقاف + المحاذاة ﻷسفل + المحاذاة ﻷعلى يرجى تعيين Olauncher كمشغل افتراضي أولاً شركة تابعة التطبيق غير موجود تعذر تشغيل التطبيق ابحث عن Launcher أو Home app - انتقاد اليسار التطبيق تمكين - انتقاد الحق التطبيق تمكين + التمرير لليسار مفعّل + التمرير لليمين مفعّل هل تستخدم هاتفك أم أن هاتفك يستخدمك؟ عن Olauncher - يتعلم أكثر + تعلم أكثر هل كنت تعلم؟ - ترك التعليق + أخبرنا رأيك Olauncher هو وسيظل دائمًا مجانيًا تمامًا. ليس لديها إعلانات. لا يجمع أي بيانات. والأهم من ذلك أنه يساعدك على تقليل وقت الشاشة والعيش حياة رقمية أكثر صحة. \n\nنحن نعتقد أن التحول إلى الحد الأدنى من المشغل هو قرار ممتاز. على الرغم من أننا متحيزون بشكل واضح، إلا أننا نأمل أن تستمتع بالتجربة. لا تتردد في مشاركة أفكارك معنا! وقت الشاشة تم تغيير المحاذاة ✅ - شاشة الرئيسية + الشاشة الرئيسية مرحبا - \ No newline at end of file + -- cgit v1.2.1 From 619af0e6ab95fb0c795c122bbbf21a91dc189d12 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Sun, 16 Feb 2025 12:41:43 +0530 Subject: Msg popup timing changes --- app/src/main/java/app/olauncher/MainActivity.kt | 11 ++++++----- app/src/main/java/app/olauncher/helper/Extensions.kt | 14 ++++++++++++++ 2 files changed, 20 insertions(+), 5 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/MainActivity.kt b/app/src/main/java/app/olauncher/MainActivity.kt index afe4321..483d06d 100644 --- a/app/src/main/java/app/olauncher/MainActivity.kt +++ b/app/src/main/java/app/olauncher/MainActivity.kt @@ -22,6 +22,7 @@ import app.olauncher.databinding.ActivityMainBinding import app.olauncher.helper.hasBeenDays import app.olauncher.helper.hasBeenHours import app.olauncher.helper.isDarkThemeOn +import app.olauncher.helper.isDaySince import app.olauncher.helper.isDefaultLauncher import app.olauncher.helper.isEinkDisplay import app.olauncher.helper.isOlauncherDefault @@ -215,15 +216,15 @@ class MainActivity : AppCompatActivity() { if (prefs.rateClicked) prefs.userState = Constants.UserState.SHARE else if (isOlauncherDefault(this) - && prefs.firstOpenTime.hasBeenDays(7) - && Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 18 + && prefs.firstOpenTime.isDaySince() >= 7 + && Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 16 ) viewModel.showDialog.postValue(Constants.Dialog.RATE) } Constants.UserState.SHARE -> { - if (isOlauncherDefault(this) && prefs.firstOpenTime.hasBeenDays(21) - && prefs.shareShownTime.hasBeenDays(42) - && Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 18 + if (isOlauncherDefault(this) && prefs.firstOpenTime.hasBeenDays(14) + && prefs.shareShownTime.isDaySince() >= 70 + && Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 16 ) viewModel.showDialog.postValue(Constants.Dialog.SHARE) } } diff --git a/app/src/main/java/app/olauncher/helper/Extensions.kt b/app/src/main/java/app/olauncher/helper/Extensions.kt index 3bab48f..2d2675a 100644 --- a/app/src/main/java/app/olauncher/helper/Extensions.kt +++ b/app/src/main/java/app/olauncher/helper/Extensions.kt @@ -21,6 +21,7 @@ import androidx.annotation.RequiresApi import app.olauncher.BuildConfig import app.olauncher.R import app.olauncher.data.Constants +import java.util.Calendar fun View.hideKeyboard() { this.clearFocus() @@ -153,6 +154,19 @@ fun Context.formattedTimeSpent(timeSpent: Long): String { } } +fun Long.convertEpochToMidnight(): Long { + val calendar = Calendar.getInstance() + calendar.timeInMillis = this + calendar.set(Calendar.HOUR_OF_DAY, 0) + calendar.set(Calendar.MINUTE, 0) + calendar.set(Calendar.SECOND, 0) + calendar.set(Calendar.MILLISECOND, 0) + return calendar.timeInMillis +} + +fun Long.isDaySince(): Int = ((System.currentTimeMillis().convertEpochToMidnight() - this.convertEpochToMidnight()) + / Constants.ONE_DAY_IN_MILLIS).toInt() + fun Long.hasBeenDays(days: Int): Boolean = ((System.currentTimeMillis() - this) / Constants.ONE_DAY_IN_MILLIS) >= days -- cgit v1.2.1 From ee6cd182a7c8b8801945708c071afef4fc7175da Mon Sep 17 00:00:00 2001 From: Tanuj Date: Sun, 16 Feb 2025 12:56:46 +0530 Subject: Ask to be default on first open --- app/src/main/java/app/olauncher/MainActivity.kt | 1 + 1 file changed, 1 insertion(+) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/MainActivity.kt b/app/src/main/java/app/olauncher/MainActivity.kt index 483d06d..06a412f 100644 --- a/app/src/main/java/app/olauncher/MainActivity.kt +++ b/app/src/main/java/app/olauncher/MainActivity.kt @@ -69,6 +69,7 @@ class MainActivity : AppCompatActivity() { viewModel.firstOpen(true) prefs.firstOpen = false prefs.firstOpenTime = System.currentTimeMillis() + viewModel.resetLauncherLiveData.call() } initClickListeners() -- cgit v1.2.1 From 567f89e6981cbb3a5267442d75e5124b2be90260 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Sun, 16 Feb 2025 16:02:25 +0530 Subject: Added a wallpaper message for new users --- app/src/main/java/app/olauncher/MainActivity.kt | 23 ++++++++++++++++++++-- app/src/main/java/app/olauncher/data/Constants.kt | 2 ++ app/src/main/java/app/olauncher/data/Prefs.kt | 5 +++++ .../main/java/app/olauncher/helper/Extensions.kt | 3 +++ app/src/main/res/values-ar/strings.xml | 2 ++ app/src/main/res/values-de/strings.xml | 2 ++ app/src/main/res/values-es-rES/strings.xml | 2 ++ app/src/main/res/values-es-rUS/strings.xml | 2 ++ app/src/main/res/values-fr/strings.xml | 2 ++ app/src/main/res/values-hr/strings.xml | 2 ++ app/src/main/res/values-hu/strings.xml | 2 ++ app/src/main/res/values-in/strings.xml | 2 ++ app/src/main/res/values-it/strings.xml | 2 ++ app/src/main/res/values-ja/strings.xml | 2 ++ app/src/main/res/values-pl/strings.xml | 2 ++ app/src/main/res/values-pt-rBR/strings.xml | 2 ++ app/src/main/res/values-ru-rRU/strings.xml | 2 ++ app/src/main/res/values-sv/strings.xml | 2 ++ app/src/main/res/values-tr/strings.xml | 2 ++ app/src/main/res/values-uk/strings.xml | 2 ++ app/src/main/res/values-zh/strings.xml | 2 ++ app/src/main/res/values/strings.xml | 4 +++- 22 files changed, 68 insertions(+), 3 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/MainActivity.kt b/app/src/main/java/app/olauncher/MainActivity.kt index 06a412f..629e3d3 100644 --- a/app/src/main/java/app/olauncher/MainActivity.kt +++ b/app/src/main/java/app/olauncher/MainActivity.kt @@ -21,6 +21,7 @@ import app.olauncher.data.Prefs import app.olauncher.databinding.ActivityMainBinding import app.olauncher.helper.hasBeenDays import app.olauncher.helper.hasBeenHours +import app.olauncher.helper.hasBeenMinutes import app.olauncher.helper.isDarkThemeOn import app.olauncher.helper.isDaySince import app.olauncher.helper.isDefaultLauncher @@ -132,6 +133,17 @@ class MainActivity : AppCompatActivity() { } } + Constants.Dialog.WALLPAPER -> { + prefs.wallpaperMsgShown = true + prefs.userState = Constants.UserState.REVIEW + showMessageDialog(getString(R.string.did_you_know), getString(R.string.wallpaper_message), getString(R.string.enable)) { + binding.messageLayout.visibility = View.GONE + prefs.dailyWallpaper = true + viewModel.setWallpaperWorker() + showToast(getString(R.string.your_wallpaper_will_update_shortly)) + } + } + Constants.Dialog.REVIEW -> { prefs.userState = Constants.UserState.RATE showMessageDialog(getString(R.string.did_you_know), getString(R.string.review_message), getString(R.string.leave_a_review)) { @@ -202,14 +214,21 @@ class MainActivity : AppCompatActivity() { when (prefs.userState) { Constants.UserState.START -> { - if (prefs.firstOpenTime.hasBeenHours(1)) + if (prefs.firstOpenTime.hasBeenMinutes(10)) + prefs.userState = Constants.UserState.WALLPAPER + } + + Constants.UserState.WALLPAPER -> { + if (prefs.wallpaperMsgShown || prefs.dailyWallpaper) prefs.userState = Constants.UserState.REVIEW + else if (isOlauncherDefault(this)) + viewModel.showDialog.postValue(Constants.Dialog.WALLPAPER) } Constants.UserState.REVIEW -> { if (prefs.rateClicked) prefs.userState = Constants.UserState.SHARE - else if (isOlauncherDefault(this)) + else if (isOlauncherDefault(this) && prefs.firstOpenTime.hasBeenHours(1)) viewModel.showDialog.postValue(Constants.Dialog.REVIEW) } diff --git a/app/src/main/java/app/olauncher/data/Constants.kt b/app/src/main/java/app/olauncher/data/Constants.kt index bb28b6c..9b6e922 100644 --- a/app/src/main/java/app/olauncher/data/Constants.kt +++ b/app/src/main/java/app/olauncher/data/Constants.kt @@ -9,6 +9,7 @@ object Constants { object Dialog { const val ABOUT = "ABOUT" + const val WALLPAPER = "WALLPAPER" const val REVIEW = "REVIEW" const val RATE = "RATE" const val SHARE = "SHARE" @@ -20,6 +21,7 @@ object Constants { object UserState { const val START = "START" + const val WALLPAPER = "WALLPAPER" const val REVIEW = "REVIEW" const val RATE = "RATE" const val SHARE = "SHARE" diff --git a/app/src/main/java/app/olauncher/data/Prefs.kt b/app/src/main/java/app/olauncher/data/Prefs.kt index 6db3119..e9c485b 100644 --- a/app/src/main/java/app/olauncher/data/Prefs.kt +++ b/app/src/main/java/app/olauncher/data/Prefs.kt @@ -33,6 +33,7 @@ class Prefs(context: Context) { private val APP_THEME = "APP_THEME" private val ABOUT_CLICKED = "ABOUT_CLICKED" private val RATE_CLICKED = "RATE_CLICKED" + private val WALLPAPER_MSG_SHOWN = "WALLPAPER_MSG_SHOWN" private val SHARE_SHOWN_TIME = "SHARE_SHOWN_TIME" private val SWIPE_DOWN_ACTION = "SWIPE_DOWN_ACTION" private val TEXT_SIZE_SCALE = "TEXT_SIZE_SCALE" @@ -192,6 +193,10 @@ class Prefs(context: Context) { get() = prefs.getBoolean(RATE_CLICKED, false) set(value) = prefs.edit().putBoolean(RATE_CLICKED, value).apply() + var wallpaperMsgShown: Boolean + get() = prefs.getBoolean(WALLPAPER_MSG_SHOWN, false) + set(value) = prefs.edit().putBoolean(WALLPAPER_MSG_SHOWN, value).apply() + var shareShownTime: Long get() = prefs.getLong(SHARE_SHOWN_TIME, 0L) set(value) = prefs.edit().putLong(SHARE_SHOWN_TIME, value).apply() diff --git a/app/src/main/java/app/olauncher/helper/Extensions.kt b/app/src/main/java/app/olauncher/helper/Extensions.kt index 2d2675a..ee9d90f 100644 --- a/app/src/main/java/app/olauncher/helper/Extensions.kt +++ b/app/src/main/java/app/olauncher/helper/Extensions.kt @@ -173,6 +173,9 @@ fun Long.hasBeenDays(days: Int): Boolean = fun Long.hasBeenHours(hours: Int): Boolean = ((System.currentTimeMillis() - this) / Constants.ONE_HOUR_IN_MILLIS) >= hours +fun Long.hasBeenMinutes(minutes: Int): Boolean = + ((System.currentTimeMillis() - this) / Constants.ONE_MINUTE_IN_MILLIS) >= minutes + fun Int.dpToPx(): Int { return (this * Resources.getSystem().displayMetrics.density).toInt() } diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 2225c05..25451e8 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -98,6 +98,8 @@ \n\nملاحظة: لا يتم جمع أي بيانات حول استخدام التطبيقات. يتم معالجة كل شيء على جهازك. يحتوي Olauncher أيضًا على إصدار احترافي يسمى Pro Launcher. يحتوي على ميزات إضافية مثل الطقس، والأدوات، والخطوط، والمجلدات، وخلفيات AMOLED، وما إلى ذلك. \n\nإنه أيضًا أفضل طريقة لدعم مطوري Olauncher. تحقق من ذلك! + يقدم Olauncher خلفيات جميلة جديدة يوميًا. امنح شاشتك الرئيسية مظهرًا جديدًا كل يوم، مجانًا! + \n\nهل ترغب في تجربته؟ إذن الوصول مطلوب لتمكين النقر المزدوج للقفل. أي بيانات حصل عليها Olauncher عبر هذه الخدمة لن تترك جهازك. ادعم Olauncher مجانًا باستخدام رابط الشراكة التابع لشركة Amazon. في كل مرة تشتري شيئًا باستخدام الرابط الخاص بنا ، نحصل على عمولة صغيرة. يرجى حفظ الرابط واستخدامه في أي وقت تتسوق فيه عبر الإنترنت. شكرًا لك! diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 9f40e7d..95489af 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -101,6 +101,8 @@ \n\nHinweis: Es werden keine Daten zur App-Nutzung gesammelt. Alles wird auf Ihrem Gerät verarbeitet. Olauncher hat auch eine Pro-Version namens Pro Launcher. Sie bietet zusätzliche Funktionen wie Wetter, Widgets, Schriftarten, Ordner, AMOLED-Hintergründe usw. \n\nEs ist auch der beste Weg, die Entwickler von Olauncher zu unterstützen. Schau es dir an! + Olauncher bietet täglich wunderschöne neue Wallpapers. Verleihe deinem Homescreen jeden Tag ein frisches Aussehen – kostenlos! + \n\nMöchtest du es ausprobieren? Die Zugriffsberechtigung ist erforderlich, um das Sperren durch Doppeltippen zu ermöglichen. Die von Olauncher über diesen Dienst erfassten Daten verlassen Ihr Gerät nicht. Unterstützen Sie Olauncher kostenlos, indem Sie unseren Amazon-Partnerlink verwenden. Jedes Mal, wenn Sie über unseren Link etwas kaufen, erhalten wir eine kleine Provision. Bitte speichern Sie den Link und verwenden Sie ihn bei jedem Online-Einkauf. Dan­ke­schön! diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 3253993..69bf586 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -68,6 +68,8 @@ \n\nNota: No se recopilan datos de uso de la aplicación. Todo se procesa en su dispositivo. Olauncher también tiene una versión pro llamada Pro Launcher. Tiene funciones adicionales como clima, widgets, fuentes, carpetas, fondos AMOLED, etc. \n\nTambién es la mejor manera de apoyar a los desarrolladores de Olauncher. ¡Échale un vistazo! + Olauncher ofrece hermosos fondos de pantalla nuevos a diario. ¡Dale un nuevo look a tu pantalla de inicio cada día, gratis! + \n\n¿Quieres probarlo? "Se requiere el permiso de accesibilidad para habilitar el doble toque para bloquear. Cualquier dato adquirido por Olauncher a través de este servicio no saldrá de su dispositivo." Apoya a Olauncher de forma gratuita utilizando nuestro enlace de afiliado de Amazon. Cada vez que compre algo usando nuestro enlace, obtendremos una pequeña comisión. Guarde el enlace y utilícelo cada vez que compre en línea.\n¡Gracias! diff --git a/app/src/main/res/values-es-rUS/strings.xml b/app/src/main/res/values-es-rUS/strings.xml index 65cc65b..0bba712 100644 --- a/app/src/main/res/values-es-rUS/strings.xml +++ b/app/src/main/res/values-es-rUS/strings.xml @@ -67,6 +67,8 @@ \n\nNota: No se recopilan datos de uso de la aplicación. Todo se procesa en su dispositivo. Olauncher también tiene una versión pro llamada Pro Launcher. Tiene funciones adicionales como clima, widgets, fuentes, carpetas, fondos AMOLED, etc. \n\nTambién es la mejor manera de apoyar a los desarrolladores de Olauncher. ¡Échale un vistazo! + Olauncher ofrece hermosos fondos de pantalla nuevos a diario. ¡Dale un nuevo look a tu pantalla de inicio cada día, gratis! + \n\n¿Quieres probarlo? Se necesita el permiso de Accesibilidad para activar el bloqueo con doble toque. Cualquier dato recolectado por Olauncher no saldrá de su dispositivo. Apoye Olauncher de forma gratuita utilizando nuestro enlace de afiliado de Amazon. Cada vez que compre algo usando nuestro enlace, obtenemos una pequeña comisión. Por favor, guarde el enlace y úselo cada vez que compre en línea. ¡Gracias! diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index f09c97b..da25890 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -67,6 +67,8 @@ \n\nRemarque : Aucune donnée d\'utilisation de l\'application n\'est collectée. Tout est traité sur votre appareil. Olauncher a également une version pro appelée Pro Launcher. Elle dispose de fonctionnalités supplémentaires telles que la météo, les widgets, les polices, les dossiers, les fonds d\'écran AMOLED, etc. \n\nC\'est aussi le meilleur moyen de soutenir les développeurs d\'Olauncher. Jetez-y un œil ! + Olauncher propose de superbes fonds d\'écran nouveaux chaque jour. Donne un nouveau look à ton écran d\'accueil chaque jour, gratuitement! + \n\nTu veux essayer? L\'autorisation d\'accessibilité est requise pour activer le double appui pour verrouiller. Toutes les données acquises par Olauncher via ce service ne quitteront pas votre appareil. Soutenez Olauncher gratuitement en utilisant notre lien d\'affiliation Amazon. Chaque fois que vous achetez quelque chose en utilisant notre lien, nous recevons une petite commission. Enregistrez le lien et utilisez le chaque fois que vous commandez en ligne. Merci! diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 64b2296..3f2c850 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -68,6 +68,8 @@ \n\nNapomena: Ne prikupljaju se podaci o korištenju aplikacije. Sve se obrađuje na vašem uređaju. Olauncher također ima pro verziju pod nazivom Pro Launcher. Ima dodatne značajke poput vremena, widgeta, fontova, mapa, AMOLED pozadina itd. \n\nTo je također najbolji način da podržite programere Olauncher-a. Pogledajte! + Olauncher nudi predivne nove pozadine svaki dan. Daj svom početnom ekranu svjež izgled svaki dan, besplatno! + \n\nŽeliš li isprobati? Dozvola za pristupačnost potrebna je za omogućavanje zaključavanja dvostrukim dodirom. Bilo koji podatci prikupljeni ovim servisom neće napustiti tvoj uređaj. lock layout description to be used a unique id to lock screen Besplatno podrži Olauncher korištenjem naše sponzorske poveznice za Amazon. diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 6e96f29..4c2cdfd 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -68,6 +68,8 @@ \n\nMegjegyzés: Nem gyűjtünk alkalmazás-használati adatokat. Minden az Ön eszközén kerül feldolgozásra. Az Olauncher-nek van egy pro verziója is, amely Pro Launcher néven ismert. További funkciókat kínál, mint például időjárás, widgetek, betűtípusok, mappák, AMOLED háttérképek stb. \n\nEz a legjobb módja annak, hogy támogassa az Olauncher fejlesztőit. Nézd meg! + Az Olauncher naponta gyönyörű új háttérképeket kínál. Minden nap frissítheted a kezdőképernyődet, ingyen! + \n\nSzeretnéd kipróbálni? A hozzáférhetőségi engedély szükséges a dupla koppintás általi zároláshoz. Az Olauncher által ezen a szolgáltatáson keresztül megszerzett adatok nem hagyják el a készüléket. Támogasson minket ingyenesen az Amazon affiliate linkünk használatával. Minden alkalommal, amikor vásárol valamit a linkünket használva, egy kis jutalékot kapunk. Kérjük, mentse el a linket, és használja fel, amikor csak online vásárol. diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 0a1bf80..be78aeb 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -67,6 +67,8 @@ \n\nCatatan: Tidak ada data penggunaan aplikasi yang dikumpulkan. Semua diproses di perangkat Anda. Olauncher juga memiliki versi pro yang disebut Pro Launcher. Ini memiliki fitur tambahan seperti cuaca, widget, font, folder, wallpaper AMOLED, dan banyak lagi. \n\nIni juga merupakan cara terbaik untuk mendukung pengembang Olauncher. Cek it out! + Olauncher menawarkan wallpaper baru yang indah setiap hari. Berikan tampilan baru pada layar utama Anda setiap hari, secara gratis! + \n\nIngin mencobanya? Izin aksesibilitas diperlukan untuk mengaktifkan ketuk dua kali untuk mengunci. Data apa pun yang diperoleh Olauncher melalui layanan ini tidak akan meninggalkan perangkat Anda. Dukung Olauncher secara gratis dengan menggunakan tautan afiliasi Amazon kami. Setiap kali Anda membeli sesuatu menggunakan tautan kami, kami mendapat komisi kecil. Harap simpan tautan dan gunakan setiap kali Anda berbelanja online.\nTerima kasih! diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 30655a3..cec987a 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -67,6 +67,8 @@ \n\nNota: Non vengono raccolti dati sull\'utilizzo dell\'app. Tutto viene elaborato sul tuo dispositivo. Olauncher ha anche una versione pro chiamata Pro Launcher. Ha funzionalità extra come meteo, widget, font, cartelle, sfondi AMOLED, e così via. \n\nÈ anche il modo migliore per supportare gli sviluppatori di Olauncher. Dai un\'occhiata! + Olauncher offre bellissimi sfondi nuovi ogni giorno. Dai un aspetto fresco alla tua schermata principale ogni giorno, gratuitamente! + \n\nVuoi provarlo? L\'autorizzazione di accessibilità è necessaria per abilitare il doppio tocco per il blocco schermo. Qualsiasi dato acquisito da Olauncher tramite questo servizio rimarrà all’interno del telefono Supporta Olauncher gratuitamente utilizzando il nostro link di affiliazione su Amazon. Ogni volta che acquisti qualcosa utilizzando il nostro link, riceviamo una piccola commissione. Salva il link e usalo ogni volta che fai acquisti online.\n Grazie! diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index db06522..66bc893 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -100,6 +100,8 @@ \n\n注意: アプリの使用データは収集されません。すべての処理はあなたのデバイスで行われます。 OlauncherにはPro Launcherというプロ版もあります。天気、ウィジェット、フォント、フォルダー、AMOLED壁紙などの追加機能があります。 \n\nOlauncherの開発者をサポートするための最良の方法でもあります。チェックしてみてください! + Olauncherは毎日美しい新しい壁紙を提供します。毎日ホーム画面に新しい外観を無料で提供! + \n\n試してみますか? ダブルタップしてロックを有効にするには、アクセシビリティ許可が必要です。このサービスを通じて Olauncher が取得したデータは、デバイスから流出することはありません。 Amazon アフィリエイト リンクを使用して、Olauncher を無料でサポートしてください。 あなたが私たちのリンクを使用して何かを購入するたびに、私たちは少額の手数料を受け取ります。リンクを保存し、オンライン ショッピングの際には必ずご利用ください。 ありがとう! diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index ecd179d..7ed26a5 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -99,6 +99,8 @@ \n\nUwaga: Nie są gromadzone żadne dane o użyciu aplikacji. Wszystko jest przetwarzane na Twoim urządzeniu. Olauncher ma również wersję pro o nazwie Pro Launcher. Posiada dodatkowe funkcje, takie jak pogoda, widgety, czcionki, foldery, tapety AMOLED itp. \n\nTo także najlepszy sposób na wsparcie deweloperów Olauncher. Sprawdź to! + Olauncher oferuje piękne nowe tapety codziennie. Nadaj swojemu ekranowi głównemu świeży wygląd każdego dnia, za darmo! + \n\nChcesz spróbować? Uprawnienia dostępu są wymagane, aby włączyć podwójne dotknięcie, aby zablokować. Wszelkie dane pozyskane przez Olauncher za pośrednictwem tej usługi nie opuszczą Twojego urządzenia. Wesprzyj Olauncher za darmo, korzystając z naszego linku afiliacyjnego Amazon. Za każdym razem, gdy kupujesz coś za pomocą naszego linku, otrzymujemy niewielką prowizję. Zapisz link i używaj go podczas zakupów online. Dziękuję! diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 877b9bf..d9d5954 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -67,6 +67,8 @@ \n\nNota: Não são coletados dados de uso do aplicativo. Tudo é processado no seu dispositivo. Olauncher também tem uma versão pro chamada Pro Launcher. Tem recursos extras como clima, widgets, fontes, pastas, papéis de parede AMOLED, e assim por diante. \n\nÉ também a melhor maneira de apoiar os desenvolvedores do Olauncher. Confira! + Olauncher oferece lindos papéis de parede novos todos os dias. Dê uma nova aparência à sua tela inicial todos os dias, gratuitamente! + \n\nQuer tentar? A permissão de acessibilidade é necessária para ativar o toque duplo para bloquear. Quaisquer dados adquiridos pelo Olauncher através deste serviço não sairão do seu dispositivo. Apoie o Olauncher gratuitamente usando nosso link de afiliado da Amazon. Sempre que você comprar algo usando nosso link, receberemos uma pequena comissão. Salve o link e use-o sempre que fizer compras online. Obrigado! diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 9276e9f..11ab215 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -68,6 +68,8 @@ \n\nПримечание: Не собираются данные об использовании приложения. Все обрабатывается на вашем устройстве. У Olauncher также есть профессиональная версия под названием Pro Launcher. Она имеет дополнительные функции, такие как погода, виджеты, шрифты, папки, обои AMOLED и так далее. \n\nЭто также лучший способ поддержать разработчиков Olauncher. Ознакомьтесь! + Olauncher предлагает красивые новые обои каждый день. Обновите свой главный экран каждый день, бесплатно! + \n\nХотите попробовать? " Разрешение на доступ требуется, чтобы включить двойное касание для блокировки. Любые данные, полученные Olauncher через этот сервис, не покинут ваше устройство." Поддержите Olauncher бесплатно, используя нашу партнерскую ссылку Amazon. Каждый раз, когда вы покупаете что-то по нашей ссылке, мы получаем небольшую комиссию. Пожалуйста, сохраните ссылку и используйте ее при совершении покупок в Интернете.\nСпасибо! diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 5d7721a..92a8a61 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -67,6 +67,8 @@ \n\nObs: Inga data om appanvändning samlas in. Allt bearbetas på din enhet. Olauncher har också en pro-version som kallas Pro Launcher. Den har extra funktioner som väder, widgets, typsnitt, mappar, AMOLED-bakgrunder och så vidare. \n\nDet är också det bästa sättet att stödja utvecklarna av Olauncher. Kolla in det! + Olauncher erbjuder vackra nya bakgrundsbilder varje dag. Ge din hemskärm ett fräscht utseende varje dag, gratis! + \n\nVill du prova? Tillgänglighetsbehörigheten krävs för att aktivera dubbeltryck för att låsa. Eventuella data förvärvade av Olauncher genom denna tjänst kommer inte att lämna din enhet. Stöd Olauncher utan kostnad genom att använda vår Amazon-affiliatelänk. Varje gång du köper något via vår länk får vi en liten provision. Vänligen spara länken och använd den när du handlar på nätet.\nTack! diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 6a1f122..2529a50 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -101,6 +101,8 @@ \n\nNot: Uygulama kullanım verileri toplanmaz. Her şey cihazınızda işlenir. Olauncher\'ın Pro Launcher adında bir pro versiyonu da var. Hava durumu, widget\'lar, yazı tipleri, klasörler, AMOLED duvar kağıtları gibi ekstra özelliklere sahip. \n\nAyrıca Olauncher geliştiricilerini desteklemenin en iyi yolu. Göz atın! + Olauncher her gün güzel yeni duvar kağıtları sunuyor. Ana ekranınıza her gün taze bir görünüm kazandırın, ücretsiz! + \n\nDenemek ister misiniz? Kilitlemek için çift dokunmayı etkinleştirmek için erişilebilirlik izni gereklidir. Olauncher tarafından bu hizmet aracılığıyla elde edilen hiçbir veri cihazınızdan ayrılmayacaktır. Amazon ortaklık bağlantımızı kullanarak Olauncher\'ı ücretsiz olarak destekleyin. Bağlantımızı kullanarak her bir şey satın aldığınızda, küçük bir komisyon alırız. Lütfen bağlantıyı kaydedin ve çevrimiçi alışveriş yaptığınızda kullanın. Teşekkür ederim! diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index ced28a8..be05fb1 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -68,6 +68,8 @@ \n\nПримітка: Не збираються дані про використання програми. Все обробляється на вашому пристрої. Olauncher також має професійну версію під назвою Pro Launcher. Вона має додаткові функції, такі як погода, віджети, шрифти, папки, фони AMOLED тощо. \n\nЦе також найкращий спосіб підтримати розробників Olauncher. Ознайомтеся! + Olauncher пропонує красиві нові шпалери щодня. Дайте вашому головному екрану новий вигляд кожного дня, безкоштовно! + \n\nХочете спробувати? " Дозвіл на доступ потрібний, щоб увімкнути подвійне торкання для блокування. Будь-які дані, отримані Olauncher через цей сервіс, не залишать ваш пристрій." Підтримайте Olauncher безкоштовно, використовуючи наше партнерське посилання Amazon. Щоразу, коли ви купуєте щось за нашим посиланням, ми отримуємо невелику комісію. Будь ласка, збережіть посилання та використовуйте його для здійснення покупок в Інтернеті.\nСпасибі! diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index d6bf036..b1daf05 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -101,6 +101,8 @@ \n\n注意:不收集应用程序使用数据。所有数据都在您的设备上处理。 Olauncher 还有一个名为 Pro Launcher 的专业版。它具有额外的功能,如天气、部件、字体、文件夹、AMOLED 壁纸等。 \n\n这也是支持 Olauncher 开发者的最佳方式。快来看看吧! + Olauncher每天提供美丽的新壁纸。让你的主屏幕每天焕然一新,免费! + \n\n想试试吗? 请在手机设置中搜索数字健康并启用它。 使用我们的亚马逊附属链接免费支持 Olauncher。 每次您使用我们的链接购买商品时,我们都会获得少量佣金。请保存链接并在网上购物时使用它。 谢谢! diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6e725c8..876d807 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -86,6 +86,8 @@ \n\nNote: No app usage data is collected. Everything is processed on your device. Olauncher also has a pro version called Pro Launcher. It has extra features like weather, widgets, fonts, folders, AMOLED wallpapers, and so on. \n\nIt\'s also the best way to support the developers of Olauncher. Check it out! + Olauncher offers beautiful new wallpapers daily. Give your homescreen a fresh new look every day, for free! + \n\nWant to try it? The accessibility permission is required to enable double tap to lock. Any data acquired by Olauncher via this service will not leave your device. Support Olauncher for free by using our Amazon affiliate link. Every time you buy something using our link, we get a small commission. Please save the link and use it whenever you shop online.\nThank you! @@ -148,7 +150,7 @@ Learn more Did you know? Leave a review - Olauncher is free and always will be. It has no ads, collects no data, and reduces your screen time resulting in a healthier life. + Olauncher is free and always will be. It has no ads, collects no data, and reduces your screen time, resulting in a healthier life. \n\nWe hope you enjoy it. Tell us what you think. Alignment changed ✅ Home screen -- cgit v1.2.1 From e4d413e2fd8e52fd97209dfa85034139ce3b4a50 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Sun, 16 Feb 2025 18:18:37 +0530 Subject: Fixed: Wrong text color --- app/src/main/java/app/olauncher/MainActivity.kt | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/MainActivity.kt b/app/src/main/java/app/olauncher/MainActivity.kt index 629e3d3..bf1ee3e 100644 --- a/app/src/main/java/app/olauncher/MainActivity.kt +++ b/app/src/main/java/app/olauncher/MainActivity.kt @@ -14,11 +14,13 @@ import android.view.WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatDelegate import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.lifecycleScope import androidx.navigation.NavController import androidx.navigation.Navigation import app.olauncher.data.Constants import app.olauncher.data.Prefs import app.olauncher.databinding.ActivityMainBinding +import app.olauncher.helper.getColorFromAttr import app.olauncher.helper.hasBeenDays import app.olauncher.helper.hasBeenHours import app.olauncher.helper.hasBeenMinutes @@ -35,6 +37,9 @@ import app.olauncher.helper.setPlainWallpaper import app.olauncher.helper.shareApp import app.olauncher.helper.showLauncherSelector import app.olauncher.helper.showToast +import kotlinx.coroutines.Job +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch import java.util.Calendar class MainActivity : AppCompatActivity() { @@ -43,6 +48,7 @@ class MainActivity : AppCompatActivity() { private lateinit var navController: NavController private lateinit var viewModel: MainViewModel private lateinit var binding: ActivityMainBinding + private var timerJob: Job? = null override fun onBackPressed() { if (navController.currentDestination?.id != R.id.mainFragment) @@ -81,6 +87,11 @@ class MainActivity : AppCompatActivity() { window.addFlags(FLAG_LAYOUT_NO_LIMITS) } + override fun onStart() { + super.onStart() + checkTheme() + } + override fun onStop() { backToHomeScreen() super.onStop() @@ -146,7 +157,7 @@ class MainActivity : AppCompatActivity() { Constants.Dialog.REVIEW -> { prefs.userState = Constants.UserState.RATE - showMessageDialog(getString(R.string.did_you_know), getString(R.string.review_message), getString(R.string.leave_a_review)) { + showMessageDialog(getString(R.string.hey), getString(R.string.review_message), getString(R.string.leave_a_review)) { binding.messageLayout.visibility = View.GONE prefs.rateClicked = true showToast("😇❤️") @@ -277,6 +288,16 @@ class MainActivity : AppCompatActivity() { } } + private fun checkTheme() { + timerJob?.cancel() + timerJob = lifecycleScope.launch { + delay(200) + if ((prefs.appTheme == AppCompatDelegate.MODE_NIGHT_YES && getColorFromAttr(R.attr.primaryColor) != getColor(R.color.white)) + || (prefs.appTheme == AppCompatDelegate.MODE_NIGHT_NO && getColorFromAttr(R.attr.primaryColor) != getColor(R.color.black)) + ) recreate() + } + } + @Deprecated("Deprecated in Java") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) -- cgit v1.2.1 From 41eadf98da287b1235ddec9055c1b508cd38063a Mon Sep 17 00:00:00 2001 From: Tanuj Date: Sun, 16 Feb 2025 18:25:00 +0530 Subject: Minor text size change --- app/src/main/res/values-hdpi/dimens.xml | 1 - app/src/main/res/values-ldpi/dimens.xml | 1 - app/src/main/res/values-xxhdpi/dimens.xml | 2 +- app/src/main/res/values-xxxhdpi/dimens.xml | 2 +- 4 files changed, 2 insertions(+), 4 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/res/values-hdpi/dimens.xml b/app/src/main/res/values-hdpi/dimens.xml index 65f1cc4..96a1925 100644 --- a/app/src/main/res/values-hdpi/dimens.xml +++ b/app/src/main/res/values-hdpi/dimens.xml @@ -7,5 +7,4 @@ 50sp 14sp - \ No newline at end of file diff --git a/app/src/main/res/values-ldpi/dimens.xml b/app/src/main/res/values-ldpi/dimens.xml index 9383a82..7bad3df 100644 --- a/app/src/main/res/values-ldpi/dimens.xml +++ b/app/src/main/res/values-ldpi/dimens.xml @@ -7,5 +7,4 @@ 50sp 14sp - \ No newline at end of file diff --git a/app/src/main/res/values-xxhdpi/dimens.xml b/app/src/main/res/values-xxhdpi/dimens.xml index 34d6328..7599018 100644 --- a/app/src/main/res/values-xxhdpi/dimens.xml +++ b/app/src/main/res/values-xxhdpi/dimens.xml @@ -1,7 +1,7 @@ 30sp - 16sp + 18sp 12dp 10dp diff --git a/app/src/main/res/values-xxxhdpi/dimens.xml b/app/src/main/res/values-xxxhdpi/dimens.xml index 247b4a5..d731dc2 100644 --- a/app/src/main/res/values-xxxhdpi/dimens.xml +++ b/app/src/main/res/values-xxxhdpi/dimens.xml @@ -1,7 +1,7 @@ 32sp - 17sp + 18sp 16dp 14dp -- cgit v1.2.1 From ad00df97add7594049ab412d7ca5e43bd5828ac0 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Sun, 16 Feb 2025 18:51:24 +0530 Subject: About page indicator --- app/src/main/java/app/olauncher/ui/SettingsFragment.kt | 6 ++++-- app/src/main/res/layout-land/fragment_settings.xml | 2 ++ app/src/main/res/layout/fragment_settings.xml | 3 +++ 3 files changed, 9 insertions(+), 2 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt index bfa1a1b..b64a7ca 100644 --- a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt +++ b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt @@ -63,7 +63,7 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe } ?: throw Exception("Invalid Activity") viewModel.isOlauncherDefault() - deviceManager = context?.getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager + deviceManager = requireContext().getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager componentName = ComponentName(requireContext(), DeviceAdmin::class.java) checkAdminPermission() @@ -618,8 +618,10 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe } private fun populateActionHints() { + if (prefs.aboutClicked.not()) + binding.aboutOlauncher.setCompoundDrawablesWithIntrinsicBounds(0, 0, android.R.drawable.stat_notify_more, 0) if (viewModel.isOlauncherDefault.value != true) return - if (prefs.rateClicked.not() && prefs.toShowHintCounter > Constants.HINT_RATE_US && prefs.toShowHintCounter < Constants.HINT_RATE_US + 10) + if (prefs.rateClicked.not() && prefs.toShowHintCounter > Constants.HINT_RATE_US && prefs.toShowHintCounter < Constants.HINT_RATE_US + 100) binding.rate.setCompoundDrawablesWithIntrinsicBounds(0, android.R.drawable.arrow_down_float, 0, 0) } diff --git a/app/src/main/res/layout-land/fragment_settings.xml b/app/src/main/res/layout-land/fragment_settings.xml index 30e4002..eeebae4 100644 --- a/app/src/main/res/layout-land/fragment_settings.xml +++ b/app/src/main/res/layout-land/fragment_settings.xml @@ -77,6 +77,8 @@ android:layout_marginStart="8dp" android:layout_marginTop="12dp" android:layout_marginBottom="8dp" + android:drawablePadding="8dp" + android:gravity="center" android:text="@string/about_olauncher" /> Date: Mon, 17 Feb 2025 14:38:34 +0530 Subject: Daily wallpaper minor changes --- app/src/main/java/app/olauncher/helper/Utils.kt | 12 ++++++++---- app/src/main/java/app/olauncher/helper/WallpaperWorker.kt | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/helper/Utils.kt b/app/src/main/java/app/olauncher/helper/Utils.kt index 181dfac..d89946a 100644 --- a/app/src/main/java/app/olauncher/helper/Utils.kt +++ b/app/src/main/java/app/olauncher/helper/Utils.kt @@ -295,13 +295,17 @@ fun getScreenDimensions(context: Context): Pair { return Pair(point.x, point.y) } -suspend fun getTodaysWallpaper(wallType: String): String { +suspend fun getTodaysWallpaper(wallType: String, firstOpenTime: Long): String { return withContext(Dispatchers.IO) { var wallpaperUrl: String try { - val month = SimpleDateFormat("M", Locale.ENGLISH).format(Date()) ?: "" - val day = SimpleDateFormat("d", Locale.ENGLISH).format(Date()) ?: "" - val key = String.format("%s_%s", month, day) + val key = if (firstOpenTime.isDaySince() < 10) + String.format("0_%s", firstOpenTime.isDaySince().toString()) + else { + val month = SimpleDateFormat("M", Locale.ENGLISH).format(Date()) ?: "0" + val day = SimpleDateFormat("d", Locale.ENGLISH).format(Date()) ?: "0" + String.format("%s_%s", month, day) + } val url = URL(Constants.URL_WALLPAPERS) val connection: HttpURLConnection = url.openConnection() as HttpURLConnection diff --git a/app/src/main/java/app/olauncher/helper/WallpaperWorker.kt b/app/src/main/java/app/olauncher/helper/WallpaperWorker.kt index 7b944c5..5282dab 100644 --- a/app/src/main/java/app/olauncher/helper/WallpaperWorker.kt +++ b/app/src/main/java/app/olauncher/helper/WallpaperWorker.kt @@ -18,7 +18,7 @@ class WallpaperWorker(appContext: Context, workerParams: WorkerParameters) : Cor true else if (prefs.dailyWallpaper) { val wallType = checkWallpaperType() - val wallpaperUrl = getTodaysWallpaper(wallType) + val wallpaperUrl = getTodaysWallpaper(wallType, prefs.firstOpenTime) if (prefs.dailyWallpaperUrl == wallpaperUrl) true else { -- cgit v1.2.1 From f7a847d66c1b1486c4500ad6f862df29e0dfa3ac Mon Sep 17 00:00:00 2001 From: Tanuj Date: Mon, 17 Feb 2025 14:53:10 +0530 Subject: Long press to hide text - Set as default launcher --- app/src/main/java/app/olauncher/data/Prefs.kt | 5 +++++ app/src/main/java/app/olauncher/ui/HomeFragment.kt | 15 +++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/app/olauncher/data/Prefs.kt b/app/src/main/java/app/olauncher/data/Prefs.kt index e9c485b..62f164d 100644 --- a/app/src/main/java/app/olauncher/data/Prefs.kt +++ b/app/src/main/java/app/olauncher/data/Prefs.kt @@ -38,6 +38,7 @@ class Prefs(context: Context) { private val SWIPE_DOWN_ACTION = "SWIPE_DOWN_ACTION" private val TEXT_SIZE_SCALE = "TEXT_SIZE_SCALE" private val PRO_MESSAGE_SHOWN = "PRO_MESSAGE_SHOWN" + private val HIDE_SET_DEFAULT_LAUNCHER = "HIDE_SET_DEFAULT_LAUNCHER" private val APP_NAME_1 = "APP_NAME_1" private val APP_NAME_2 = "APP_NAME_2" @@ -173,6 +174,10 @@ class Prefs(context: Context) { get() = prefs.getBoolean(PRO_MESSAGE_SHOWN, false) set(value) = prefs.edit().putBoolean(PRO_MESSAGE_SHOWN, value).apply() + var hideSetDefaultLauncher: Boolean + get() = prefs.getBoolean(HIDE_SET_DEFAULT_LAUNCHER, false) + set(value) = prefs.edit().putBoolean(HIDE_SET_DEFAULT_LAUNCHER, value).apply() + var hiddenApps: MutableSet get() = prefs.getStringSet(HIDDEN_APPS, mutableSetOf()) as MutableSet set(value) = prefs.edit().putStringSet(HIDDEN_APPS, value).apply() diff --git a/app/src/main/java/app/olauncher/ui/HomeFragment.kt b/app/src/main/java/app/olauncher/ui/HomeFragment.kt index 35d6e58..c2406db 100644 --- a/app/src/main/java/app/olauncher/ui/HomeFragment.kt +++ b/app/src/main/java/app/olauncher/ui/HomeFragment.kt @@ -151,6 +151,15 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener prefs.calendarAppClassName = "" prefs.calendarAppUser = "" } + + R.id.setDefaultLauncher -> { + prefs.hideSetDefaultLauncher = true + binding.setDefaultLauncher.visibility = View.GONE + if (viewModel.isOlauncherDefault.value != true) { + requireContext().showToast(R.string.set_as_default_launcher) + findNavController().navigate(R.id.action_mainFragment_to_settingsFragment) + } + } } return true } @@ -174,8 +183,9 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener setHomeAlignment() } if (binding.firstRunTips.visibility == View.VISIBLE) return@Observer - if (it) binding.setDefaultLauncher.visibility = View.GONE - else binding.setDefaultLauncher.visibility = View.VISIBLE + binding.setDefaultLauncher.isVisible = it.not() && prefs.hideSetDefaultLauncher.not() +// if (it) binding.setDefaultLauncher.visibility = View.GONE +// else binding.setDefaultLauncher.visibility = View.VISIBLE }) viewModel.homeAppAlignment.observe(viewLifecycleOwner) { setHomeAlignment(it) @@ -208,6 +218,7 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener binding.clock.setOnLongClickListener(this) binding.date.setOnLongClickListener(this) binding.setDefaultLauncher.setOnClickListener(this) + binding.setDefaultLauncher.setOnLongClickListener(this) binding.tvScreenTime.setOnClickListener(this) } -- cgit v1.2.1 From 9836fa89b2b4fbf84f5c6f64ed8045a507f0f398 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Mon, 17 Feb 2025 15:04:34 +0530 Subject: Updated app icon --- app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 1349 -> 0 bytes app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png | Bin 1823 -> 0 bytes app/src/main/res/mipmap-hdpi/ic_launcher_round.png | Bin 3297 -> 0 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 928 -> 0 bytes app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png | Bin 1031 -> 0 bytes app/src/main/res/mipmap-mdpi/ic_launcher_round.png | Bin 1973 -> 0 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 2645 -> 0 bytes .../main/res/mipmap-xhdpi/ic_launcher_foreground.png | Bin 2812 -> 0 bytes app/src/main/res/mipmap-xhdpi/ic_launcher_round.png | Bin 5474 -> 0 bytes app/src/main/res/mipmap-xxhdpi/ic_launcher.png | Bin 4157 -> 0 bytes .../main/res/mipmap-xxhdpi/ic_launcher_foreground.png | Bin 5034 -> 0 bytes app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png | Bin 8780 -> 0 bytes app/src/main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 5454 -> 0 bytes .../main/res/mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 7212 -> 0 bytes app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 12343 -> 0 bytes app/src/main/res/values/ic_launcher_background.xml | 2 +- 16 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png delete mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png delete mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png delete mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png delete mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png delete mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png (limited to 'app/src/main') diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 893250c..0000000 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png deleted file mode 100644 index 2ce7fcd..0000000 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png deleted file mode 100644 index b67c213..0000000 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png and /dev/null differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index a776960..0000000 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png deleted file mode 100644 index 7f8b7fd..0000000 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png deleted file mode 100644 index 8ee1a22..0000000 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 379dab5..0000000 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png deleted file mode 100644 index 4247ba6..0000000 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png deleted file mode 100644 index 9ae2db2..0000000 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index b2b07cd..0000000 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png deleted file mode 100644 index a7d4d15..0000000 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png deleted file mode 100644 index 1946471..0000000 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 810aeb7..0000000 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png deleted file mode 100644 index 7d1764d..0000000 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index 04dd8ce..0000000 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/app/src/main/res/values/ic_launcher_background.xml b/app/src/main/res/values/ic_launcher_background.xml index c5d5899..210ab8a 100644 --- a/app/src/main/res/values/ic_launcher_background.xml +++ b/app/src/main/res/values/ic_launcher_background.xml @@ -1,4 +1,4 @@ - #FFFFFF + #1A1E1D \ No newline at end of file -- cgit v1.2.1 From 00ca2a7f195ed792108c6adb213b37e4ceb95405 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Mon, 17 Feb 2025 15:04:43 +0530 Subject: Updated app icon --- app/src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1396 bytes app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp | Bin 0 -> 1590 bytes app/src/main/res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2794 bytes app/src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 822 bytes app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp | Bin 0 -> 946 bytes app/src/main/res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1900 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1776 bytes .../main/res/mipmap-xhdpi/ic_launcher_foreground.webp | Bin 0 -> 2306 bytes app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3646 bytes app/src/main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2612 bytes .../main/res/mipmap-xxhdpi/ic_launcher_foreground.webp | Bin 0 -> 3936 bytes app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5814 bytes app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3754 bytes .../main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp | Bin 0 -> 5628 bytes app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 8068 bytes 15 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp (limited to 'app/src/main') diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000..43ad1d0 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000..43d4002 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000..9697b0f Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000..dda0a4b Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000..27ed372 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp new file mode 100644 index 0000000..aa005c9 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000..d5f37d4 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000..f75feb2 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..ac0764e Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp new file mode 100644 index 0000000..8404384 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000..7e3c456 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..716d025 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp new file mode 100644 index 0000000..71f6a80 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000..759afcc Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..ece9e96 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ -- cgit v1.2.1 From 078773e180c700eec3ebc64c91b31158dd6e7b54 Mon Sep 17 00:00:00 2001 From: Tanuj Date: Mon, 17 Feb 2025 15:08:01 +0530 Subject: Increased app drawer search bar max length to 200 --- app/src/main/res/values-night/styles.xml | 2 +- app/src/main/res/values/styles.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/res/values-night/styles.xml b/app/src/main/res/values-night/styles.xml index 27e00aa..250a22a 100644 --- a/app/src/main/res/values-night/styles.xml +++ b/app/src/main/res/values-night/styles.xml @@ -51,7 +51,7 @@