That fuck shit the fascists are using
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}