Utilize logic from lottie to determine animation scale.
This commit is contained in:
parent
c1b19390a2
commit
e3954ab5e8
4 changed files with 43 additions and 51 deletions
|
@ -23,6 +23,7 @@ import org.thoughtcrime.securesms.recipients.Recipient;
|
|||
import org.thoughtcrime.securesms.service.webrtc.AndroidTelecomUtil;
|
||||
import org.thoughtcrime.securesms.util.AppSignatureUtil;
|
||||
import org.thoughtcrime.securesms.util.ByteUnit;
|
||||
import org.thoughtcrime.securesms.util.ContextUtil;
|
||||
import org.thoughtcrime.securesms.util.DeviceProperties;
|
||||
import org.thoughtcrime.securesms.util.NetworkUtil;
|
||||
import org.thoughtcrime.securesms.util.ScreenDensity;
|
||||
|
@ -48,42 +49,43 @@ public class LogSectionSystemInfo implements LogSection {
|
|||
final PackageManager pm = context.getPackageManager();
|
||||
final StringBuilder builder = new StringBuilder();
|
||||
|
||||
builder.append("Time : ").append(System.currentTimeMillis()).append('\n');
|
||||
builder.append("Manufacturer : ").append(Build.MANUFACTURER).append("\n");
|
||||
builder.append("Model : ").append(Build.MODEL).append("\n");
|
||||
builder.append("Product : ").append(Build.PRODUCT).append("\n");
|
||||
builder.append("Screen : ").append(getScreenResolution(context)).append(", ")
|
||||
builder.append("Time : ").append(System.currentTimeMillis()).append('\n');
|
||||
builder.append("Manufacturer : ").append(Build.MANUFACTURER).append("\n");
|
||||
builder.append("Model : ").append(Build.MODEL).append("\n");
|
||||
builder.append("Product : ").append(Build.PRODUCT).append("\n");
|
||||
builder.append("Screen : ").append(getScreenResolution(context)).append(", ")
|
||||
.append(ScreenDensity.get(context)).append(", ")
|
||||
.append(getScreenRefreshRate(context)).append("\n");
|
||||
builder.append("Font Scale : ").append(context.getResources().getConfiguration().fontScale).append("\n");
|
||||
builder.append("Android : ").append(Build.VERSION.RELEASE).append(", API ")
|
||||
builder.append("Font Scale : ").append(context.getResources().getConfiguration().fontScale).append("\n");
|
||||
builder.append("Animation Scale: ").append(ContextUtil.getAnimationScale(context));
|
||||
builder.append("Android : ").append(Build.VERSION.RELEASE).append(", API ")
|
||||
.append(Build.VERSION.SDK_INT).append(" (")
|
||||
.append(Build.VERSION.INCREMENTAL).append(", ")
|
||||
.append(Build.DISPLAY).append(")\n");
|
||||
builder.append("ABIs : ").append(TextUtils.join(", ", getSupportedAbis())).append("\n");
|
||||
builder.append("Memory : ").append(getMemoryUsage()).append("\n");
|
||||
builder.append("Memclass : ").append(getMemoryClass(context)).append("\n");
|
||||
builder.append("MemInfo : ").append(getMemoryInfo(context)).append("\n");
|
||||
builder.append("OS Host : ").append(Build.HOST).append("\n");
|
||||
builder.append("RecipientId : ").append(SignalStore.registrationValues().isRegistrationComplete() ? Recipient.self().getId() : "N/A").append("\n");
|
||||
builder.append("ACI : ").append(getCensoredAci(context)).append("\n");
|
||||
builder.append("Device ID : ").append(SignalStore.account().getDeviceId()).append("\n");
|
||||
builder.append("Censored : ").append(ApplicationDependencies.getSignalServiceNetworkAccess().isCensored()).append("\n");
|
||||
builder.append("Network Status: ").append(NetworkUtil.getNetworkStatus(context)).append("\n");
|
||||
builder.append("Data Saver : ").append(DeviceProperties.getDataSaverState(context)).append("\n");
|
||||
builder.append("Play Services : ").append(getPlayServicesString(context)).append("\n");
|
||||
builder.append("FCM : ").append(SignalStore.account().isFcmEnabled()).append("\n");
|
||||
builder.append("BkgRestricted : ").append(Build.VERSION.SDK_INT >= 28 ? DeviceProperties.isBackgroundRestricted(context) : "N/A").append("\n");
|
||||
builder.append("Locale : ").append(Locale.getDefault()).append("\n");
|
||||
builder.append("Linked Devices: ").append(TextSecurePreferences.isMultiDevice(context)).append("\n");
|
||||
builder.append("First Version : ").append(TextSecurePreferences.getFirstInstallVersion(context)).append("\n");
|
||||
builder.append("Days Installed: ").append(VersionTracker.getDaysSinceFirstInstalled(context)).append("\n");
|
||||
builder.append("Build Variant : ").append(BuildConfig.BUILD_DISTRIBUTION_TYPE).append(BuildConfig.BUILD_ENVIRONMENT_TYPE).append(BuildConfig.BUILD_VARIANT_TYPE).append("\n");
|
||||
builder.append("Emoji Version : ").append(getEmojiVersionString(context)).append("\n");
|
||||
builder.append("RenderBigEmoji: ").append(FontUtil.canRenderEmojiAtFontSize(1024)).append("\n");
|
||||
builder.append("Telecom : ").append(AndroidTelecomUtil.getTelecomSupported()).append("\n");
|
||||
builder.append("User-Agent : ").append(StandardUserAgentInterceptor.USER_AGENT).append("\n");
|
||||
builder.append("App : ");
|
||||
builder.append("ABIs : ").append(TextUtils.join(", ", getSupportedAbis())).append("\n");
|
||||
builder.append("Memory : ").append(getMemoryUsage()).append("\n");
|
||||
builder.append("Memclass : ").append(getMemoryClass(context)).append("\n");
|
||||
builder.append("MemInfo : ").append(getMemoryInfo(context)).append("\n");
|
||||
builder.append("OS Host : ").append(Build.HOST).append("\n");
|
||||
builder.append("RecipientId : ").append(SignalStore.registrationValues().isRegistrationComplete() ? Recipient.self().getId() : "N/A").append("\n");
|
||||
builder.append("ACI : ").append(getCensoredAci(context)).append("\n");
|
||||
builder.append("Device ID : ").append(SignalStore.account().getDeviceId()).append("\n");
|
||||
builder.append("Censored : ").append(ApplicationDependencies.getSignalServiceNetworkAccess().isCensored()).append("\n");
|
||||
builder.append("Network Status : ").append(NetworkUtil.getNetworkStatus(context)).append("\n");
|
||||
builder.append("Data Saver : ").append(DeviceProperties.getDataSaverState(context)).append("\n");
|
||||
builder.append("Play Services : ").append(getPlayServicesString(context)).append("\n");
|
||||
builder.append("FCM : ").append(SignalStore.account().isFcmEnabled()).append("\n");
|
||||
builder.append("BkgRestricted : ").append(Build.VERSION.SDK_INT >= 28 ? DeviceProperties.isBackgroundRestricted(context) : "N/A").append("\n");
|
||||
builder.append("Locale : ").append(Locale.getDefault()).append("\n");
|
||||
builder.append("Linked Devices : ").append(TextSecurePreferences.isMultiDevice(context)).append("\n");
|
||||
builder.append("First Version : ").append(TextSecurePreferences.getFirstInstallVersion(context)).append("\n");
|
||||
builder.append("Days Installed : ").append(VersionTracker.getDaysSinceFirstInstalled(context)).append("\n");
|
||||
builder.append("Build Variant : ").append(BuildConfig.BUILD_DISTRIBUTION_TYPE).append(BuildConfig.BUILD_ENVIRONMENT_TYPE).append(BuildConfig.BUILD_VARIANT_TYPE).append("\n");
|
||||
builder.append("Emoji Version : ").append(getEmojiVersionString(context)).append("\n");
|
||||
builder.append("RenderBigEmoji : ").append(FontUtil.canRenderEmojiAtFontSize(1024)).append("\n");
|
||||
builder.append("Telecom : ").append(AndroidTelecomUtil.getTelecomSupported()).append("\n");
|
||||
builder.append("User-Agent : ").append(StandardUserAgentInterceptor.USER_AGENT).append("\n");
|
||||
builder.append("App : ");
|
||||
try {
|
||||
builder.append(pm.getApplicationLabel(pm.getApplicationInfo(context.getPackageName(), 0)))
|
||||
.append(" ")
|
||||
|
@ -97,7 +99,7 @@ public class LogSectionSystemInfo implements LogSection {
|
|||
} catch (PackageManager.NameNotFoundException nnfe) {
|
||||
builder.append("Unknown\n");
|
||||
}
|
||||
builder.append("Package : ").append(BuildConfig.APPLICATION_ID).append(" (").append(getSigningString(context)).append(")");
|
||||
builder.append("Package : ").append(BuildConfig.APPLICATION_ID).append(" (").append(getSigningString(context)).append(")");
|
||||
|
||||
return builder;
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ import com.bumptech.glide.request.target.Target
|
|||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.blurhash.BlurHash
|
||||
import org.thoughtcrime.securesms.mms.GlideApp
|
||||
import org.thoughtcrime.securesms.util.areSystemAnimationsDisabled
|
||||
import org.thoughtcrime.securesms.util.ContextUtil
|
||||
import org.thoughtcrime.securesms.util.visible
|
||||
|
||||
class StoryFirstTimeNavigationView @JvmOverloads constructor(
|
||||
|
@ -119,7 +119,7 @@ class StoryFirstTimeNavigationView @JvmOverloads constructor(
|
|||
}
|
||||
|
||||
private fun startLottieAnimations() {
|
||||
if (context.contentResolver.areSystemAnimationsDisabled()) {
|
||||
if (ContextUtil.getAnimationScale(context) == 0f) {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
package org.thoughtcrime.securesms.util
|
||||
|
||||
import android.animation.ValueAnimator
|
||||
import android.content.ContentResolver
|
||||
import android.os.Build
|
||||
import android.provider.Settings
|
||||
|
||||
fun ContentResolver.areSystemAnimationsDisabled(): Boolean {
|
||||
return if (Build.VERSION.SDK_INT >= 26) {
|
||||
!ValueAnimator.areAnimatorsEnabled()
|
||||
} else {
|
||||
val durationScale = Settings.Global.getFloat(this, Settings.Global.ANIMATOR_DURATION_SCALE, 1.0f)
|
||||
val transitionScale = Settings.Global.getFloat(this, Settings.Global.TRANSITION_ANIMATION_SCALE, 1.0f)
|
||||
|
||||
!(durationScale > 0f && transitionScale > 0f)
|
||||
}
|
||||
}
|
|
@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.util;
|
|||
|
||||
import android.content.Context;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.provider.Settings;
|
||||
|
||||
import androidx.annotation.DrawableRes;
|
||||
import androidx.annotation.NonNull;
|
||||
|
@ -16,4 +17,10 @@ public final class ContextUtil {
|
|||
return Objects.requireNonNull(AppCompatResources.getDrawable(context, drawable));
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation "borrowed" from com.airbnb.lottie.utils.Utils#getAnimationScale(android.content.Context)
|
||||
*/
|
||||
public static float getAnimationScale(Context context) {
|
||||
return Settings.Global.getFloat(context.getContentResolver(), Settings.Global.ANIMATOR_DURATION_SCALE, 1.0f);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue