kopia lustrzana https://github.com/ryukoposting/Signal-Android
Restart app after refreshing remote config via internal settings.
rodzic
2edaba39a0
commit
8fb598e60a
|
@ -7,6 +7,7 @@ import android.content.DialogInterface
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
|
import org.signal.core.util.AppUtil
|
||||||
import org.signal.core.util.concurrent.SignalExecutors
|
import org.signal.core.util.concurrent.SignalExecutors
|
||||||
import org.signal.ringrtc.CallManager
|
import org.signal.ringrtc.CallManager
|
||||||
import org.thoughtcrime.securesms.BuildConfig
|
import org.thoughtcrime.securesms.BuildConfig
|
||||||
|
@ -19,6 +20,7 @@ import org.thoughtcrime.securesms.components.settings.configure
|
||||||
import org.thoughtcrime.securesms.database.LocalMetricsDatabase
|
import org.thoughtcrime.securesms.database.LocalMetricsDatabase
|
||||||
import org.thoughtcrime.securesms.database.SignalDatabase
|
import org.thoughtcrime.securesms.database.SignalDatabase
|
||||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
|
||||||
|
import org.thoughtcrime.securesms.jobmanager.JobTracker
|
||||||
import org.thoughtcrime.securesms.jobs.DownloadLatestEmojiDataJob
|
import org.thoughtcrime.securesms.jobs.DownloadLatestEmojiDataJob
|
||||||
import org.thoughtcrime.securesms.jobs.EmojiSearchIndexDownloadJob
|
import org.thoughtcrime.securesms.jobs.EmojiSearchIndexDownloadJob
|
||||||
import org.thoughtcrime.securesms.jobs.RefreshAttributesJob
|
import org.thoughtcrime.securesms.jobs.RefreshAttributesJob
|
||||||
|
@ -33,6 +35,8 @@ import org.thoughtcrime.securesms.payments.DataExportUtil
|
||||||
import org.thoughtcrime.securesms.util.ConversationUtil
|
import org.thoughtcrime.securesms.util.ConversationUtil
|
||||||
import org.thoughtcrime.securesms.util.FeatureFlags
|
import org.thoughtcrime.securesms.util.FeatureFlags
|
||||||
import org.thoughtcrime.securesms.util.concurrent.SimpleTask
|
import org.thoughtcrime.securesms.util.concurrent.SimpleTask
|
||||||
|
import java.util.Optional
|
||||||
|
import java.util.concurrent.TimeUnit
|
||||||
import kotlin.math.max
|
import kotlin.math.max
|
||||||
|
|
||||||
class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__internal_preferences) {
|
class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__internal_preferences) {
|
||||||
|
@ -446,8 +450,16 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun refreshRemoteValues() {
|
private fun refreshRemoteValues() {
|
||||||
ApplicationDependencies.getJobManager().add(RemoteConfigRefreshJob())
|
Toast.makeText(context, "Running remote config refresh, app will restart after completion.", Toast.LENGTH_LONG).show()
|
||||||
Toast.makeText(context, "Scheduled remote config refresh", Toast.LENGTH_SHORT).show()
|
SignalExecutors.BOUNDED.execute {
|
||||||
|
val result: Optional<JobTracker.JobState> = ApplicationDependencies.getJobManager().runSynchronously(RemoteConfigRefreshJob(), TimeUnit.SECONDS.toMillis(10))
|
||||||
|
|
||||||
|
if (result.isPresent && result.get() == JobTracker.JobState.SUCCESS) {
|
||||||
|
AppUtil.restart(requireContext())
|
||||||
|
} else {
|
||||||
|
Toast.makeText(context, "Failed to refresh config remote config.", Toast.LENGTH_SHORT).show()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun forceStorageServiceSync() {
|
private fun forceStorageServiceSync() {
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
package org.signal.core.util;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
public final class AppUtil {
|
||||||
|
|
||||||
|
private AppUtil() {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Restarts the application. Should generally only be used for internal tools.
|
||||||
|
*/
|
||||||
|
public static void restart(@NonNull Context context) {
|
||||||
|
String packageName = context.getPackageName();
|
||||||
|
Intent defaultIntent = context.getPackageManager().getLaunchIntentForPackage(packageName);
|
||||||
|
|
||||||
|
defaultIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||||
|
|
||||||
|
context.startActivity(defaultIntent);
|
||||||
|
Runtime.getRuntime().exit(0);
|
||||||
|
}
|
||||||
|
}
|
Ładowanie…
Reference in New Issue