Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 24ff1c56 authored by Saalim Quadri's avatar Saalim Quadri Committed by Nishith Khanna
Browse files

feat: Migrate current anonymous users to use weekly interval

parent 705abdb9
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -103,6 +103,7 @@ class AppLoungeApplication : Application(), Configuration.Provider {
            })
            })
        }
        }


        appLoungePreference.migrateAnonymousUserUpdateInterval()
        UpdatesWorkManager.enqueueWork(
        UpdatesWorkManager.enqueueWork(
            this,
            this,
            appLoungePreference.getUpdateInterval(),
            appLoungePreference.getUpdateInterval(),
+37 −0
Original line number Original line Diff line number Diff line
@@ -83,4 +83,41 @@ class AppLoungePreference @Inject constructor(
        context.getString(R.string.update_apps_from_other_stores),
        context.getString(R.string.update_apps_from_other_stores),
        true
        true
    )
    )

    fun migrateAnonymousUserUpdateInterval() {
        val updateIntervals = context.resources.getStringArray(R.array.update_interval_values)
        val daily = updateIntervals[0]   // 24
        val weekly = updateIntervals[1]  // 168
        val monthly = updateIntervals[2] // 720
        val migrationCompleted = preferenceManager.getBoolean(
            context.getString(R.string.anonymous_update_migration_completed),
            false
        )

        if (migrationCompleted) return

        if (appLoungeDataStore.getUserType() == User.ANONYMOUS) {
            val currentInterval = preferenceManager.getString(
                context.getString(R.string.update_check_intervals),
                null
            )
            currentInterval?.let { interval ->
                val newVal = when (interval) {
                    daily -> weekly
                    weekly, monthly -> interval
                    else -> context.getString(R.string.preference_update_interval_default_anonymous)
                }
                preferenceManager.edit {
                    putString(
                        context.getString(R.string.update_check_intervals_anonymous),
                        newVal
                    )
                }
            }
        }

        preferenceManager.edit {
            putBoolean(context.getString(R.string.anonymous_update_migration_completed), true)
        }
    }
}
}
+1 −0
Original line number Original line Diff line number Diff line
@@ -166,6 +166,7 @@
    <!-- Settings Preferences-->
    <!-- Settings Preferences-->
    <string name="update_check_intervals" translatable="false">updateCheckIntervals</string>
    <string name="update_check_intervals" translatable="false">updateCheckIntervals</string>
    <string name="update_check_intervals_anonymous" translatable="false">updateCheckIntervalsAnonymous</string>
    <string name="update_check_intervals_anonymous" translatable="false">updateCheckIntervalsAnonymous</string>
    <string name="anonymous_update_migration_completed" translatable="false">anonymousUpdateMigrationCompleted</string>
    <string name="updateNotify" translatable="false">updateNotify</string>
    <string name="updateNotify" translatable="false">updateNotify</string>
    <string name="auto_install_enabled" translatable="false">updateInstallAuto</string>
    <string name="auto_install_enabled" translatable="false">updateInstallAuto</string>
    <string name="only_unmetered_network" translatable="false">updateUnmeteredOnly</string>
    <string name="only_unmetered_network" translatable="false">updateUnmeteredOnly</string>