summaryrefslogtreecommitdiff
path: root/app/src/main/java
diff options
context:
space:
mode:
authorTanuj <thetanuj@hotmail.com>2022-07-27 15:06:46 +0530
committerTanuj <thetanuj@hotmail.com>2022-07-27 15:06:46 +0530
commitca7a7ee660cfbbf0b2092a05b585c3524adfdab2 (patch)
treee94bb17d26681b3df00fb642f827939c7cb47833 /app/src/main/java
parent3108eab98f3f6b0ba9fb7d2a426d8d0147307df3 (diff)
downloadSidePhOnelauncher-ca7a7ee660cfbbf0b2092a05b585c3524adfdab2.tar.gz
SidePhOnelauncher-ca7a7ee660cfbbf0b2092a05b585c3524adfdab2.tar.bz2
SidePhOnelauncher-ca7a7ee660cfbbf0b2092a05b585c3524adfdab2.zip
Added support olauncher affiliate link
Diffstat (limited to 'app/src/main/java')
-rw-r--r--app/src/main/java/app/olauncher/MainActivity.kt32
-rw-r--r--app/src/main/java/app/olauncher/MainViewModel.kt2
-rw-r--r--app/src/main/java/app/olauncher/data/Constants.kt6
-rw-r--r--app/src/main/java/app/olauncher/helper/SingleLiveEvent.kt36
-rw-r--r--app/src/main/java/app/olauncher/ui/SettingsFragment.kt5
5 files changed, 67 insertions, 14 deletions
diff --git a/app/src/main/java/app/olauncher/MainActivity.kt b/app/src/main/java/app/olauncher/MainActivity.kt
index 618f88a..ebbc021 100644
--- a/app/src/main/java/app/olauncher/MainActivity.kt
+++ b/app/src/main/java/app/olauncher/MainActivity.kt
@@ -8,6 +8,7 @@ import android.content.res.Configuration
import android.os.Build
import android.os.Bundle
import android.provider.Settings
+import android.util.Log
import android.view.View
import android.view.WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
import androidx.appcompat.app.AppCompatActivity
@@ -20,6 +21,7 @@ import app.olauncher.data.Constants
import app.olauncher.data.Prefs
import app.olauncher.helper.*
import kotlinx.android.synthetic.main.activity_main.*
+import java.util.*
class MainActivity : AppCompatActivity() {
@@ -85,28 +87,27 @@ class MainActivity : AppCompatActivity() {
viewModel.showMessageDialog("")
}
closeOneLink.setOnClickListener {
- viewModel.showSupportDialog(false)
+ supportOlauncherLayout.visibility = View.GONE
}
copyOneLink.setOnClickListener {
- this.copyToClipboard(Constants.URL_AFFILIATE)
- viewModel.showSupportDialog(false)
+ copyToClipboard(getAffiliateUrl())
+ supportOlauncherLayout.visibility = View.GONE
}
openOneLink.setOnClickListener {
- this.openUrl(Constants.URL_AFFILIATE)
- viewModel.showSupportDialog(false)
+ openUrl(getAffiliateUrl())
}
}
private fun initObservers(viewModel: MainViewModel) {
- viewModel.launcherResetFailed.observe(this, {
+ viewModel.launcherResetFailed.observe(this) {
openLauncherChooser(it)
- })
- viewModel.showMessageDialog.observe(this, {
+ }
+ viewModel.showMessageDialog.observe(this) {
showMessage(it)
- })
- viewModel.showSupportDialog.observe(this, {
+ }
+ viewModel.showSupportDialog.observe(this) {
supportOlauncherLayout.isVisible = it
- })
+ }
}
@SuppressLint("SourceLockedOrientationActivity")
@@ -118,6 +119,8 @@ class MainActivity : AppCompatActivity() {
}
private fun backToHomeScreen() {
+ messageLayout.visibility = View.GONE
+ supportOlauncherLayout.visibility = View.GONE
// Whenever home button is pressed or user leaves the launcher,
// pop all the fragments except main
if (navController.currentDestination?.id != R.id.mainFragment)
@@ -150,6 +153,13 @@ class MainActivity : AppCompatActivity() {
messageLayout.visibility = View.VISIBLE
}
+ private fun getAffiliateUrl(): String {
+ return if (TimeZone.getDefault().displayName.equals(Constants.IST_NAME, true))
+ Constants.URL_AFFILIATE_IN
+ else
+ Constants.URL_AFFILIATE
+ }
+
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
when (requestCode) {
diff --git a/app/src/main/java/app/olauncher/MainViewModel.kt b/app/src/main/java/app/olauncher/MainViewModel.kt
index 793a7dd..9312620 100644
--- a/app/src/main/java/app/olauncher/MainViewModel.kt
+++ b/app/src/main/java/app/olauncher/MainViewModel.kt
@@ -30,7 +30,7 @@ class MainViewModel(application: Application) : AndroidViewModel(application) {
val launcherResetFailed = MutableLiveData<Boolean>()
val homeAppAlignment = MutableLiveData<Int>()
val showMessageDialog = MutableLiveData<String>()
- val showSupportDialog = MutableLiveData<Boolean>()
+ val showSupportDialog = SingleLiveEvent<Boolean>()
fun selectedApp(appModel: AppModel, flag: Int) {
when (flag) {
diff --git a/app/src/main/java/app/olauncher/data/Constants.kt b/app/src/main/java/app/olauncher/data/Constants.kt
index 3577521..debdce5 100644
--- a/app/src/main/java/app/olauncher/data/Constants.kt
+++ b/app/src/main/java/app/olauncher/data/Constants.kt
@@ -49,10 +49,12 @@ object Constants {
const val URL_TWITTER_TANUJ = "https://twitter.com/tanujnotes"
const val URL_INSTA_OLAUNCHER = "https://instagram.com/olauncherapp"
const val URL_AFFILIATE = "https://amzn.to/3uftwFW"
-
- const val WALLPAPER_WORKER_NAME = "WALLPAPER_WORKER_NAME"
+ const val URL_AFFILIATE_IN = "https://www.amazon.in/?tag=tanujnotes-20"
const val URL_NOTIFY = "https://gist.githubusercontent.com/tanujnotes/da9490348422979650ccb3ec9392a40f/raw"
const val URL_WALLPAPERS = "https://gist.githubusercontent.com/tanujnotes/bf400a269746c5c124a599af040dd82e/raw"
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 WALLPAPER_WORKER_NAME = "WALLPAPER_WORKER_NAME"
+ const val IST_NAME = "India Standard Time"
} \ No newline at end of file
diff --git a/app/src/main/java/app/olauncher/helper/SingleLiveEvent.kt b/app/src/main/java/app/olauncher/helper/SingleLiveEvent.kt
new file mode 100644
index 0000000..de74c1f
--- /dev/null
+++ b/app/src/main/java/app/olauncher/helper/SingleLiveEvent.kt
@@ -0,0 +1,36 @@
+package app.olauncher.helper
+
+import android.util.Log
+import androidx.annotation.MainThread
+import androidx.lifecycle.LifecycleOwner
+import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.Observer
+import java.util.concurrent.atomic.AtomicBoolean
+
+class SingleLiveEvent<T> : MutableLiveData<T>() {
+ private val pending = AtomicBoolean(false)
+
+ @MainThread
+ override fun observe(owner: LifecycleOwner, observer: Observer<in T>) {
+ if (hasActiveObservers()) {
+ Log.d("SingleLiveEvent", "Only one observer will be notified of the changes")
+ }
+
+ super.observe(owner) { t ->
+ if (pending.compareAndSet(true, false)) {
+ observer.onChanged(t)
+ }
+ }
+ }
+
+ @MainThread
+ override fun setValue(t: T?) {
+ pending.set(true)
+ super.setValue(t)
+ }
+
+ @MainThread
+ fun call() {
+ value = null
+ }
+} \ 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 e7289a5..488973b 100644
--- a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt
+++ b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt
@@ -117,6 +117,10 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe
prefs.rateClicked = true
rateApp()
}
+ R.id.affiliate -> {
+ viewModel.showSupportDialog(true)
+ findNavController().popBackStack()
+ }
R.id.twitter -> requireContext().openUrl(Constants.URL_TWITTER_TANUJ)
R.id.instagram -> requireContext().openUrl(Constants.URL_INSTA_OLAUNCHER)
R.id.privacy -> requireContext().openUrl(Constants.URL_OLAUNCHER_PRIVACY)
@@ -177,6 +181,7 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe
instagram.setOnClickListener(this)
privacy.setOnClickListener(this)
github.setOnClickListener(this)
+ affiliate.setOnClickListener(this)
moreApps.setOnClickListener(this)
maxApps0.setOnClickListener(this)