diff options
| author | Tanuj <thetanuj@hotmail.com> | 2023-07-04 21:06:19 +0530 |
|---|---|---|
| committer | Tanuj <thetanuj@hotmail.com> | 2023-07-04 21:06:19 +0530 |
| commit | 89fca9170bebbe6f067fbe0e6a44b3bcedaad6d1 (patch) | |
| tree | 497e4f2c04925a5b495d2d3fe16ebef2eca42443 /app | |
| parent | caf3eb7a6cef23aae95ad07da2f5c6ac69d8dbe7 (diff) | |
| download | SidePhOnelauncher-89fca9170bebbe6f067fbe0e6a44b3bcedaad6d1.tar.gz SidePhOnelauncher-89fca9170bebbe6f067fbe0e6a44b3bcedaad6d1.tar.bz2 SidePhOnelauncher-89fca9170bebbe6f067fbe0e6a44b3bcedaad6d1.zip | |
Changes in show dialog
Diffstat (limited to 'app')
| -rw-r--r-- | app/src/main/java/app/olauncher/MainActivity.kt | 55 | ||||
| -rw-r--r-- | app/src/main/java/app/olauncher/MainViewModel.kt | 7 | ||||
| -rw-r--r-- | app/src/main/java/app/olauncher/data/Constants.kt | 11 | ||||
| -rw-r--r-- | app/src/main/java/app/olauncher/data/Prefs.kt | 2 | ||||
| -rw-r--r-- | app/src/main/java/app/olauncher/helper/Utils.kt | 24 | ||||
| -rw-r--r-- | app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt | 2 | ||||
| -rw-r--r-- | app/src/main/java/app/olauncher/ui/HomeFragment.kt | 12 | ||||
| -rw-r--r-- | app/src/main/java/app/olauncher/ui/SettingsFragment.kt | 49 | ||||
| -rw-r--r-- | app/src/main/res/drawable/ic_close.xml | 9 | ||||
| -rw-r--r-- | app/src/main/res/layout/activity_main.xml | 57 | ||||
| -rw-r--r-- | app/src/main/res/values/strings.xml | 4 |
11 files changed, 150 insertions, 82 deletions
diff --git a/app/src/main/java/app/olauncher/MainActivity.kt b/app/src/main/java/app/olauncher/MainActivity.kt index 1fca0b0..d3a8c6a 100644 --- a/app/src/main/java/app/olauncher/MainActivity.kt +++ b/app/src/main/java/app/olauncher/MainActivity.kt @@ -91,9 +91,8 @@ class MainActivity : AppCompatActivity() { } private fun initClickListeners() { - binding.okay.setOnClickListener { + binding.ivClose.setOnClickListener { binding.messageLayout.visibility = View.GONE - viewModel.showMessageDialog("") } } @@ -101,11 +100,46 @@ class MainActivity : AppCompatActivity() { viewModel.launcherResetFailed.observe(this) { openLauncherChooser(it) } - viewModel.showMessageDialog.observe(this) { - showMessage(it) + viewModel.showDialog.observe(this) { + when (it) { + Constants.Dialog.RATE -> { + showMessageDialog(getString(R.string.app_name), getString(R.string.rate_us_message), "Rate now") { + binding.messageLayout.visibility = View.GONE + prefs.rateClicked = true + rateApp() + } + } + + Constants.Dialog.SHARE -> { + showMessageDialog(getString(R.string.app_name), getString(R.string.share_message), getString(R.string.share)) { + binding.messageLayout.visibility = View.GONE + shareApp() + } + } + + Constants.Dialog.HIDDEN -> { + showMessageDialog("Hidden apps", getString(R.string.hidden_apps_message), getString(R.string.okay)) { + binding.messageLayout.visibility = View.GONE + } + } + + Constants.Dialog.KEYBOARD -> { + showMessageDialog(getString(R.string.app_name), getString(R.string.keyboard_message), getString(R.string.okay)) { + binding.messageLayout.visibility = View.GONE + } + } + } } } + private fun showMessageDialog(title: String, message: String, action: String, clickListener: () -> Unit) { + binding.tvTitle.text = title + binding.tvMessage.text = message + binding.tvAction.text = action + binding.tvAction.setOnClickListener { clickListener() } + binding.messageLayout.visibility = View.VISIBLE + } + @SuppressLint("SourceLockedOrientationActivity") private fun setupOrientation() { if (isTablet(this)) return @@ -138,24 +172,13 @@ class MainActivity : AppCompatActivity() { } } - private fun showMessage(message: String) { - if (message.isEmpty()) return - binding.messageTextView.text = message - binding.messageLayout.visibility = View.VISIBLE - } - @Deprecated("Deprecated in Java") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) when (requestCode) { Constants.REQUEST_CODE_ENABLE_ADMIN -> { - if (resultCode == Activity.RESULT_OK) { + if (resultCode == Activity.RESULT_OK) prefs.lockModeOn = true - if (Build.VERSION.SDK_INT > Build.VERSION_CODES.P) - showMessage(getString(R.string.double_tap_lock_is_enabled_message)) - else - showMessage(getString(R.string.double_tap_lock_uninstall_message)) - } } } } diff --git a/app/src/main/java/app/olauncher/MainViewModel.kt b/app/src/main/java/app/olauncher/MainViewModel.kt index 5a045d8..7ba1634 100644 --- a/app/src/main/java/app/olauncher/MainViewModel.kt +++ b/app/src/main/java/app/olauncher/MainViewModel.kt @@ -17,6 +17,7 @@ import androidx.work.WorkManager import app.olauncher.data.AppModel import app.olauncher.data.Constants import app.olauncher.data.Prefs +import app.olauncher.helper.SingleLiveEvent import app.olauncher.helper.WallpaperWorker import app.olauncher.helper.getAppsList import app.olauncher.helper.getDefaultLauncherPackage @@ -40,7 +41,7 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { val isOlauncherDefault = MutableLiveData<Boolean>() val launcherResetFailed = MutableLiveData<Boolean>() val homeAppAlignment = MutableLiveData<Int>() - val showMessageDialog = MutableLiveData<String>() + val showDialog = SingleLiveEvent<String>() fun selectedApp(appModel: AppModel, flag: Int) { when (flag) { @@ -241,8 +242,4 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { prefs.homeAlignment = gravity homeAppAlignment.value = prefs.homeAlignment } - - fun showMessageDialog(message: String) { - showMessageDialog.postValue(message) - } }
\ 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 689ca0d..c76124b 100644 --- a/app/src/main/java/app/olauncher/data/Constants.kt +++ b/app/src/main/java/app/olauncher/data/Constants.kt @@ -7,6 +7,13 @@ object Constants { const val RENAME = "rename" } + object Dialog { + const val RATE = "RATE" + const val SHARE = "SHARE" + const val HIDDEN = "HIDDEN" + const val KEYBOARD = "KEYBOARD" + } + object DateTime { const val OFF = 0 const val ON = 1 @@ -62,8 +69,8 @@ object Constants { const val REQUEST_CODE_ENABLE_ADMIN = 666 - const val HINT_RATE_US = 20 - const val HINT_SHARE = 30 + const val HINT_RATE_US = 15 + const val HINT_SHARE = 25 const val TRIPLE_TAP_DELAY_MS = 300L const val LONG_PRESS_DELAY_MS = 500L diff --git a/app/src/main/java/app/olauncher/data/Prefs.kt b/app/src/main/java/app/olauncher/data/Prefs.kt index fca6f0b..9235992 100644 --- a/app/src/main/java/app/olauncher/data/Prefs.kt +++ b/app/src/main/java/app/olauncher/data/Prefs.kt @@ -118,7 +118,7 @@ class Prefs(context: Context) { set(value) = prefs.edit().putString(DAILY_WALLPAPER_URL, value).apply() var homeAppsNum: Int - get() = prefs.getInt(HOME_APPS_NUM, 5) + get() = prefs.getInt(HOME_APPS_NUM, 4) set(value) = prefs.edit().putInt(HOME_APPS_NUM, value).apply() var homeAlignment: Int diff --git a/app/src/main/java/app/olauncher/helper/Utils.kt b/app/src/main/java/app/olauncher/helper/Utils.kt index 1ad0bb3..89acc0c 100644 --- a/app/src/main/java/app/olauncher/helper/Utils.kt +++ b/app/src/main/java/app/olauncher/helper/Utils.kt @@ -529,4 +529,28 @@ fun View.animateAlpha(alpha: Float = 1.0f) { alpha(alpha) start() } +} + +fun Context.shareApp() { + val message = "Are you using your phone or your phone is using you?\n" + + Constants.URL_OLAUNCHER_PLAY_STORE + val sendIntent: Intent = Intent().apply { + action = Intent.ACTION_SEND + putExtra(Intent.EXTRA_TEXT, message) + type = "text/plain" + } + + val shareIntent = Intent.createChooser(sendIntent, null) + startActivity(shareIntent) +} + +fun Context.rateApp() { + val intent = Intent( + Intent.ACTION_VIEW, + Uri.parse(Constants.URL_OLAUNCHER_PLAY_STORE) + ) + var flags = Intent.FLAG_ACTIVITY_NO_HISTORY or Intent.FLAG_ACTIVITY_MULTIPLE_TASK + flags = flags or Intent.FLAG_ACTIVITY_NEW_DOCUMENT + intent.addFlags(flags) + startActivity(intent) }
\ 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 8f45c9a..7069d85 100644 --- a/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt +++ b/app/src/main/java/app/olauncher/ui/AppDrawerFragment.kt @@ -139,7 +139,7 @@ class AppDrawerFragment : Fragment() { findNavController().popBackStack() if (prefs.firstHide) { prefs.firstHide = false - viewModel.showMessageDialog(getString(R.string.hidden_apps_message)) + viewModel.showDialog.postValue(Constants.Dialog.HIDDEN) findNavController().navigate(R.id.action_appListFragment_to_settingsFragment2) } }, diff --git a/app/src/main/java/app/olauncher/ui/HomeFragment.kt b/app/src/main/java/app/olauncher/ui/HomeFragment.kt index 956f1e2..3e40d02 100644 --- a/app/src/main/java/app/olauncher/ui/HomeFragment.kt +++ b/app/src/main/java/app/olauncher/ui/HomeFragment.kt @@ -450,8 +450,16 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener override fun onLongClick() { super.onLongClick() try { - findNavController().navigate(R.id.action_mainFragment_to_settingsFragment) - viewModel.firstOpen(false) + 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) { + 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) { 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 8de9b86..925315e 100644 --- a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt +++ b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt @@ -4,7 +4,6 @@ import android.app.admin.DevicePolicyManager import android.content.ComponentName import android.content.Context import android.content.Intent -import android.net.Uri import android.os.Build import android.os.Bundle import android.provider.Settings @@ -134,10 +133,10 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe requireContext().openUrl(Constants.URL_ABOUT_OLAUNCHER) } - R.id.share -> shareApp() + R.id.share -> requireActivity().shareApp() R.id.rate -> { prefs.rateClicked = true - rateApp() + requireActivity().rateApp() } R.id.twitter -> requireContext().openUrl(Constants.URL_TWITTER_TANUJ) @@ -433,7 +432,7 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe private fun toggleKeyboardText() { if (prefs.autoShowKeyboard && prefs.keyboardMessageShown.not()) { - viewModel.showMessageDialog(getString(R.string.keyboard_message)) + viewModel.showDialog.postValue(Constants.Dialog.KEYBOARD) prefs.keyboardMessageShown = true } else { prefs.autoShowKeyboard = !prefs.autoShowKeyboard @@ -547,30 +546,6 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe populateSwipeDownAction() } - private fun shareApp() { - val message = "Are you using your phone or your phone is using you?\n" + - Constants.URL_OLAUNCHER_PLAY_STORE - val sendIntent: Intent = Intent().apply { - action = Intent.ACTION_SEND - putExtra(Intent.EXTRA_TEXT, message) - type = "text/plain" - } - - val shareIntent = Intent.createChooser(sendIntent, null) - startActivity(shareIntent) - } - - private fun rateApp() { - val intent = Intent( - Intent.ACTION_VIEW, - Uri.parse(Constants.URL_OLAUNCHER_PLAY_STORE) - ) - var flags = Intent.FLAG_ACTIVITY_NO_HISTORY or Intent.FLAG_ACTIVITY_MULTIPLE_TASK - flags = flags or Intent.FLAG_ACTIVITY_NEW_DOCUMENT - intent.addFlags(flags) - startActivity(intent) - } - private fun populateSwipeApps() { binding.swipeLeftApp.text = prefs.appNameSwipeLeft binding.swipeRightApp.text = prefs.appNameSwipeRight @@ -597,15 +572,15 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe } private fun populateActionHints() { - when (prefs.toShowHintCounter) { - Constants.HINT_RATE_US -> { - viewModel.showMessageDialog(getString(R.string.rate_us_message)) - binding.rate.setCompoundDrawablesWithIntrinsicBounds(0, android.R.drawable.arrow_down_float, 0, 0) - binding.scrollView.post { - binding.scrollView.fullScroll(View.FOCUS_DOWN) - } - } - } +// when (prefs.toShowHintCounter) { +// Constants.HINT_RATE_US -> { +// viewModel.showDialog.postValue(Constants.Dialog.RATE) +// binding.rate.setCompoundDrawablesWithIntrinsicBounds(0, android.R.drawable.arrow_down_float, 0, 0) +// binding.scrollView.post { +// binding.scrollView.fullScroll(View.FOCUS_DOWN) +// } +// } +// } if (viewModel.isOlauncherDefault.value != true) return if (prefs.aboutClicked.not() && prefs.toShowHintCounter < Constants.HINT_RATE_US) binding.about.setCompoundDrawablesWithIntrinsicBounds(0, android.R.drawable.arrow_down_float, 0, 0) diff --git a/app/src/main/res/drawable/ic_close.xml b/app/src/main/res/drawable/ic_close.xml new file mode 100644 index 0000000..e5c82dd --- /dev/null +++ b/app/src/main/res/drawable/ic_close.xml @@ -0,0 +1,9 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="20dp" + android:height="20dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <path + android:fillColor="?attr/primaryColor" + android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z" /> +</vector> diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4931183..de1dc4c 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -24,8 +24,9 @@ android:clickable="true" android:clipToPadding="false" android:focusable="true" - android:padding="24dp" - android:visibility="gone"> + android:padding="32dp" + android:visibility="gone" + tools:visibility="visible"> <LinearLayout android:layout_width="match_parent" @@ -36,36 +37,60 @@ android:orientation="vertical" android:outlineAmbientShadowColor="@color/colorPrimaryDark" android:outlineSpotShadowColor="@color/colorPrimaryDark" - android:padding="24dp" + android:paddingVertical="24dp" + android:paddingStart="24dp" + android:paddingEnd="16dp" tools:targetApi="p"> - <TextView - style="@style/TextLarge" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:clickable="false" - android:text="@string/app_name" - android:textColor="?attr/primaryColor" /> + <FrameLayout + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <ImageView + android:id="@+id/ivClose" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="end|center_vertical" + android:alpha="0.5" + android:background="?attr/selectableItemBackgroundBorderless" + android:padding="6dp" + android:src="@drawable/ic_close" /> + + <TextView + android:id="@+id/tvTitle" + style="@style/TextLarge" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:layout_marginEnd="48dp" + android:clickable="false" + android:includeFontPadding="false" + android:text="@string/app_name" + android:textColor="?attr/primaryColor" /> + </FrameLayout> <TextView - android:id="@+id/messageTextView" + android:id="@+id/tvMessage" style="@style/TextSmall" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginTop="16dp" + android:layout_marginTop="20dp" android:lineSpacingExtra="2dp" android:textColor="?attr/primaryColor" - tools:text="@string/double_tap_lock_is_enabled_message" /> + tools:text="@string/rate_us_message" /> <TextView - android:id="@+id/okay" + android:id="@+id/tvAction" style="@style/TextSmallBold" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end" - android:layout_marginTop="16dp" + android:layout_marginTop="20dp" + android:background="?attr/selectableItemBackground" + android:padding="8dp" android:text="@string/okay" - android:textAllCaps="true" /> + android:textAllCaps="false" + android:textSize="18sp" /> </LinearLayout> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index aab4f44..6bb0f5b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -56,8 +56,8 @@ \n\nNote: Turn this OFF first if you decide to delete Olauncher.</string> <string name="welcome_to_olauncher_settings">Our About page on the bottom has answers to all your questions. Don\'t forget. :) \n\nThank you.</string> - <string name="rate_us_message">Hey, if you find Olauncher useful, a 5-star rating will make us very happy. :) - \n\nThank you and you won\'t see this again.</string> + <string name="rate_us_message">Hi, you won\'t see this message again. + \n\nIf you like Olauncher, can you please give us a 5-star rating? It helps us improve our ranking and makes us happy. Thank you!</string> <string name="share_message">Hi, do you think your friends would love Olauncher as much as you do? \n\nShare the app and help us spread the word. Thank you!</string> <string name="keyboard_message">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.</string> |
