That fuck shit the fascists are using
at master 108 lines 4.0 kB view raw
1package org.tm.archive; 2 3import android.content.Context; 4import android.content.Intent; 5import android.content.res.Configuration; 6import android.os.Bundle; 7import android.view.View; 8 9import androidx.annotation.NonNull; 10import androidx.appcompat.app.ActionBar; 11import androidx.appcompat.app.AppCompatActivity; 12import androidx.appcompat.app.AppCompatDelegate; 13import androidx.core.app.ActivityCompat; 14import androidx.core.app.ActivityOptionsCompat; 15 16import org.signal.core.util.logging.Log; 17import org.tm.archive.dependencies.ApplicationDependencies; 18import org.tm.archive.util.AppStartup; 19import org.tm.archive.util.ConfigurationUtil; 20import org.tm.archive.util.WindowUtil; 21import org.tm.archive.util.dynamiclanguage.DynamicLanguageContextWrapper; 22 23import java.util.Objects; 24 25/** 26 * Base class for all activities. The vast majority of activities shouldn't extend this directly. 27 * Instead, they should extend {@link PassphraseRequiredActivity} so they're protected by 28 * screen lock. 29 */ 30public abstract class SignalBaseActivity extends AppCompatActivity {//*TM_SA*/change BaseActivity to SignalBaseActivity 31 private static final String TAG = Log.tag(BaseActivity.class); 32 33 @Override 34 protected void onCreate(Bundle savedInstanceState) { 35 AppStartup.getInstance().onCriticalRenderEventStart(); 36 logEvent("onCreate()"); 37 super.onCreate(savedInstanceState); 38 AppStartup.getInstance().onCriticalRenderEventEnd(); 39 } 40 41 @Override 42 protected void onResume() { 43 super.onResume(); 44 WindowUtil.initializeScreenshotSecurity(this, getWindow()); 45 } 46 47 @Override 48 protected void onStart() { 49 logEvent("onStart()"); 50 ApplicationDependencies.getShakeToReport().registerActivity(this); 51 super.onStart(); 52 } 53 54 @Override 55 protected void onStop() { 56 logEvent("onStop()"); 57 super.onStop(); 58 } 59 60 @Override 61 protected void onDestroy() { 62 logEvent("onDestroy()"); 63 super.onDestroy(); 64 } 65 66 protected void startActivitySceneTransition(Intent intent, View sharedView, String transitionName) { 67 Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(this, sharedView, transitionName) 68 .toBundle(); 69 ActivityCompat.startActivity(this, intent, bundle); 70 } 71 72 @Override 73 protected void attachBaseContext(@NonNull Context newBase) { 74 super.attachBaseContext(newBase); 75 76 Configuration configuration = new Configuration(newBase.getResources().getConfiguration()); 77 int appCompatNightMode = getDelegate().getLocalNightMode() != AppCompatDelegate.MODE_NIGHT_UNSPECIFIED ? getDelegate().getLocalNightMode() 78 : AppCompatDelegate.getDefaultNightMode(); 79 80 configuration.uiMode = (configuration.uiMode & ~Configuration.UI_MODE_NIGHT_MASK) | mapNightModeToConfigurationUiMode(newBase, appCompatNightMode); 81 configuration.orientation = Configuration.ORIENTATION_UNDEFINED; 82 83 applyOverrideConfiguration(configuration); 84 } 85 86 @Override 87 public void applyOverrideConfiguration(@NonNull Configuration overrideConfiguration) { 88 DynamicLanguageContextWrapper.prepareOverrideConfiguration(this, overrideConfiguration); 89 super.applyOverrideConfiguration(overrideConfiguration); 90 } 91 92 private void logEvent(@NonNull String event) { 93 Log.d(TAG, "[" + Log.tag(getClass()) + "] " + event); 94 } 95 96 public final @NonNull ActionBar requireSupportActionBar() { 97 return Objects.requireNonNull(getSupportActionBar()); 98 } 99 100 private static int mapNightModeToConfigurationUiMode(@NonNull Context context, @AppCompatDelegate.NightMode int appCompatNightMode) { 101 if (appCompatNightMode == AppCompatDelegate.MODE_NIGHT_YES) { 102 return Configuration.UI_MODE_NIGHT_YES; 103 } else if (appCompatNightMode == AppCompatDelegate.MODE_NIGHT_NO) { 104 return Configuration.UI_MODE_NIGHT_NO; 105 } 106 return ConfigurationUtil.getNightModeConfiguration(context.getApplicationContext()); 107 } 108}