SRE/02-Easy5/E5/sources/androidx/appcompat/app/AppLocalesStorageHelper.java
2025-03-31 16:33:42 +02:00

237 lines
9.8 KiB
Java

package androidx.appcompat.app;
import android.content.ComponentName;
import android.content.Context;
import android.os.Build;
import android.util.Log;
import android.util.Xml;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.appcompat.app.AppLocalesStorageHelper;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayDeque;
import java.util.Queue;
import java.util.concurrent.Executor;
import org.xmlpull.v1.XmlSerializer;
/* loaded from: classes.dex */
class AppLocalesStorageHelper {
static final String APPLICATION_LOCALES_RECORD_FILE = "androidx.appcompat.app.AppCompatDelegate.application_locales_record_file";
static final String APP_LOCALES_META_DATA_HOLDER_SERVICE_NAME = "androidx.appcompat.app.AppLocalesMetadataHolderService";
static final String LOCALE_RECORD_ATTRIBUTE_TAG = "application_locales";
static final String LOCALE_RECORD_FILE_TAG = "locales";
static final String TAG = "AppLocalesStorageHelper";
private AppLocalesStorageHelper() {
}
/* JADX WARN: Code restructure failed: missing block: B:14:0x0040, code lost:
if (r3 != null) goto L40;
*/
/* JADX WARN: Code restructure failed: missing block: B:22:0x0042, code lost:
r3.close();
*/
/* JADX WARN: Code restructure failed: missing block: B:33:0x0039, code lost:
r2 = r4.getAttributeValue(null, androidx.appcompat.app.AppLocalesStorageHelper.LOCALE_RECORD_ATTRIBUTE_TAG);
*/
/* JADX WARN: Code restructure failed: missing block: B:43:0x004f, code lost:
if (r3 == null) goto L27;
*/
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
static java.lang.String readLocales(android.content.Context r9) {
/*
java.lang.String r0 = "androidx.appcompat.app.AppCompatDelegate.application_locales_record_file"
java.lang.String r1 = "AppLocalesStorageHelper"
java.lang.String r2 = ""
java.io.FileInputStream r3 = r9.openFileInput(r0) // Catch: java.io.FileNotFoundException -> L74
org.xmlpull.v1.XmlPullParser r4 = android.util.Xml.newPullParser() // Catch: java.lang.Throwable -> L48 java.lang.Throwable -> L4a
java.lang.String r5 = "UTF-8"
r4.setInput(r3, r5) // Catch: java.lang.Throwable -> L48 java.lang.Throwable -> L4a
int r5 = r4.getDepth() // Catch: java.lang.Throwable -> L48 java.lang.Throwable -> L4a
L17:
int r6 = r4.next() // Catch: java.lang.Throwable -> L48 java.lang.Throwable -> L4a
r7 = 1
if (r6 == r7) goto L40
r7 = 3
if (r6 != r7) goto L27
int r8 = r4.getDepth() // Catch: java.lang.Throwable -> L48 java.lang.Throwable -> L4a
if (r8 <= r5) goto L40
L27:
if (r6 == r7) goto L17
r7 = 4
if (r6 != r7) goto L2d
goto L17
L2d:
java.lang.String r6 = r4.getName() // Catch: java.lang.Throwable -> L48 java.lang.Throwable -> L4a
java.lang.String r7 = "locales"
boolean r6 = r6.equals(r7) // Catch: java.lang.Throwable -> L48 java.lang.Throwable -> L4a
if (r6 == 0) goto L17
java.lang.String r5 = "application_locales"
r6 = 0
java.lang.String r2 = r4.getAttributeValue(r6, r5) // Catch: java.lang.Throwable -> L48 java.lang.Throwable -> L4a
L40:
if (r3 == 0) goto L52
L42:
r3.close() // Catch: java.io.IOException -> L46
goto L52
L46:
goto L52
L48:
r9 = move-exception
goto L6e
L4a:
java.lang.String r4 = "Reading app Locales : Unable to parse through file :androidx.appcompat.app.AppCompatDelegate.application_locales_record_file"
android.util.Log.w(r1, r4) // Catch: java.lang.Throwable -> L48
if (r3 == 0) goto L52
goto L42
L52:
boolean r3 = r2.isEmpty()
if (r3 != 0) goto L6a
java.lang.StringBuilder r9 = new java.lang.StringBuilder
java.lang.String r0 = "Reading app Locales : Locales read from file: androidx.appcompat.app.AppCompatDelegate.application_locales_record_file , appLocales: "
r9.<init>(r0)
r9.append(r2)
java.lang.String r9 = r9.toString()
android.util.Log.d(r1, r9)
goto L6d
L6a:
r9.deleteFile(r0)
L6d:
return r2
L6e:
if (r3 == 0) goto L73
r3.close() // Catch: java.io.IOException -> L73
L73:
throw r9
L74:
java.lang.String r9 = "Reading app Locales : Locales record file not found: androidx.appcompat.app.AppCompatDelegate.application_locales_record_file"
android.util.Log.w(r1, r9)
return r2
*/
throw new UnsupportedOperationException("Method not decompiled: androidx.appcompat.app.AppLocalesStorageHelper.readLocales(android.content.Context):java.lang.String");
}
static void persistLocales(Context context, String str) {
if (str.equals("")) {
context.deleteFile(APPLICATION_LOCALES_RECORD_FILE);
return;
}
try {
FileOutputStream openFileOutput = context.openFileOutput(APPLICATION_LOCALES_RECORD_FILE, 0);
XmlSerializer newSerializer = Xml.newSerializer();
try {
try {
newSerializer.setOutput(openFileOutput, null);
newSerializer.startDocument("UTF-8", true);
newSerializer.startTag(null, LOCALE_RECORD_FILE_TAG);
newSerializer.attribute(null, LOCALE_RECORD_ATTRIBUTE_TAG, str);
newSerializer.endTag(null, LOCALE_RECORD_FILE_TAG);
newSerializer.endDocument();
Log.d(TAG, "Storing App Locales : app-locales: " + str + " persisted successfully.");
if (openFileOutput == null) {
return;
}
} catch (Exception e) {
Log.w(TAG, "Storing App Locales : Failed to persist app-locales: " + str, e);
if (openFileOutput == null) {
return;
}
}
try {
openFileOutput.close();
} catch (IOException unused) {
}
} catch (Throwable th) {
if (openFileOutput != null) {
try {
openFileOutput.close();
} catch (IOException unused2) {
}
}
throw th;
}
} catch (FileNotFoundException unused3) {
Log.w(TAG, String.format("Storing App Locales : FileNotFoundException: Cannot open file %s for writing ", APPLICATION_LOCALES_RECORD_FILE));
}
}
static void syncLocalesToFramework(Context context) {
if (Build.VERSION.SDK_INT >= 33) {
ComponentName componentName = new ComponentName(context, APP_LOCALES_META_DATA_HOLDER_SERVICE_NAME);
if (context.getPackageManager().getComponentEnabledSetting(componentName) != 1) {
if (AppCompatDelegate.getApplicationLocales().isEmpty()) {
String readLocales = readLocales(context);
Object systemService = context.getSystemService("locale");
if (systemService != null) {
AppCompatDelegate.Api33Impl.localeManagerSetApplicationLocales(systemService, AppCompatDelegate.Api24Impl.localeListForLanguageTags(readLocales));
}
}
context.getPackageManager().setComponentEnabledSetting(componentName, 1, 1);
}
}
}
static class ThreadPerTaskExecutor implements Executor {
ThreadPerTaskExecutor() {
}
@Override // java.util.concurrent.Executor
public void execute(Runnable runnable) {
new Thread(runnable).start();
}
}
static class SerialExecutor implements Executor {
Runnable mActive;
final Executor mExecutor;
private final Object mLock = new Object();
final Queue<Runnable> mTasks = new ArrayDeque();
SerialExecutor(Executor executor) {
this.mExecutor = executor;
}
@Override // java.util.concurrent.Executor
public void execute(final Runnable runnable) {
synchronized (this.mLock) {
this.mTasks.add(new Runnable() { // from class: androidx.appcompat.app.AppLocalesStorageHelper$SerialExecutor$$ExternalSyntheticLambda0
@Override // java.lang.Runnable
public final void run() {
AppLocalesStorageHelper.SerialExecutor.this.m43xd188c474(runnable);
}
});
if (this.mActive == null) {
scheduleNext();
}
}
}
/* renamed from: lambda$execute$0$androidx-appcompat-app-AppLocalesStorageHelper$SerialExecutor, reason: not valid java name */
/* synthetic */ void m43xd188c474(Runnable runnable) {
try {
runnable.run();
} finally {
scheduleNext();
}
}
protected void scheduleNext() {
synchronized (this.mLock) {
Runnable poll = this.mTasks.poll();
this.mActive = poll;
if (poll != null) {
this.mExecutor.execute(poll);
}
}
}
}
}