From 877a62b809fa51e4c9fde3d6980e3e1d12056060 Mon Sep 17 00:00:00 2001 From: Nicholas Date: Mon, 6 Mar 2023 11:34:18 -0500 Subject: [PATCH] Convert VersionTracker to Kotlin and add RefreshAttributesJob. --- .../securesms/util/VersionTracker.java | 51 ------------------- .../securesms/util/VersionTracker.kt | 48 +++++++++++++++++ 2 files changed, 48 insertions(+), 51 deletions(-) delete mode 100644 app/src/main/java/org/thoughtcrime/securesms/util/VersionTracker.java create mode 100644 app/src/main/java/org/thoughtcrime/securesms/util/VersionTracker.kt diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/VersionTracker.java b/app/src/main/java/org/thoughtcrime/securesms/util/VersionTracker.java deleted file mode 100644 index 43a7a5360..000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/util/VersionTracker.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.thoughtcrime.securesms.util; - -import android.content.Context; -import android.content.pm.PackageManager; - -import androidx.annotation.NonNull; - -import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; -import org.thoughtcrime.securesms.jobs.RemoteConfigRefreshJob; -import org.thoughtcrime.securesms.jobs.RetrieveRemoteAnnouncementsJob; -import org.thoughtcrime.securesms.keyvalue.SignalStore; - -import java.util.concurrent.TimeUnit; - -public class VersionTracker { - - private static final String TAG = Log.tag(VersionTracker.class); - - public static int getLastSeenVersion(@NonNull Context context) { - return TextSecurePreferences.getLastVersionCode(context); - } - - public static void updateLastSeenVersion(@NonNull Context context) { - int currentVersionCode = Util.getCanonicalVersionCode(); - int lastVersionCode = TextSecurePreferences.getLastVersionCode(context); - - if (currentVersionCode != lastVersionCode) { - Log.i(TAG, "Upgraded from " + lastVersionCode + " to " + currentVersionCode); - SignalStore.misc().clearClientDeprecated(); - ApplicationDependencies.getJobManager().add(new RemoteConfigRefreshJob()); - RetrieveRemoteAnnouncementsJob.enqueue(true); - LocalMetrics.getInstance().clear(); - } - - TextSecurePreferences.setLastVersionCode(context, currentVersionCode); - } - - public static long getDaysSinceFirstInstalled(Context context) { - try { - long installTimestamp = context.getPackageManager() - .getPackageInfo(context.getPackageName(), 0) - .firstInstallTime; - - return TimeUnit.MILLISECONDS.toDays(System.currentTimeMillis() - installTimestamp); - } catch (PackageManager.NameNotFoundException e) { - Log.w(TAG, e); - return 0; - } - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/VersionTracker.kt b/app/src/main/java/org/thoughtcrime/securesms/util/VersionTracker.kt new file mode 100644 index 000000000..68c76f811 --- /dev/null +++ b/app/src/main/java/org/thoughtcrime/securesms/util/VersionTracker.kt @@ -0,0 +1,48 @@ +package org.thoughtcrime.securesms.util + +import android.content.Context +import android.content.pm.PackageManager +import org.signal.core.util.logging.Log +import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.jobs.RefreshAttributesJob +import org.thoughtcrime.securesms.jobs.RemoteConfigRefreshJob +import org.thoughtcrime.securesms.jobs.RetrieveRemoteAnnouncementsJob +import org.thoughtcrime.securesms.keyvalue.SignalStore +import java.time.Duration + +object VersionTracker { + private val TAG = Log.tag(VersionTracker::class.java) + + @JvmStatic + fun getLastSeenVersion(context: Context): Int { + return TextSecurePreferences.getLastVersionCode(context) + } + + @JvmStatic + fun updateLastSeenVersion(context: Context) { + val currentVersionCode = Util.getCanonicalVersionCode() + val lastVersionCode = TextSecurePreferences.getLastVersionCode(context) + + if (currentVersionCode != lastVersionCode) { + Log.i(TAG, "Upgraded from $lastVersionCode to $currentVersionCode") + SignalStore.misc().clearClientDeprecated() + val jobChain = listOf(RemoteConfigRefreshJob(), RefreshAttributesJob()) + ApplicationDependencies.getJobManager().startChain(jobChain).enqueue() + RetrieveRemoteAnnouncementsJob.enqueue(true) + LocalMetrics.getInstance().clear() + } + + TextSecurePreferences.setLastVersionCode(context, currentVersionCode) + } + + @JvmStatic + fun getDaysSinceFirstInstalled(context: Context): Long { + return try { + val installTimestamp = context.packageManager.getPackageInfo(context.packageName, 0).firstInstallTime + Duration.ofMillis(System.currentTimeMillis() - installTimestamp).toDays() + } catch (e: PackageManager.NameNotFoundException) { + Log.w(TAG, e) + 0 + } + } +}