Rabbit-R1/switch port/java/sources/androidx/appcompat/app/AppLocalesStorageHelper.java
2024-05-21 17:08:36 -04:00

258 lines
11 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 com.google.android.exoplayer2.C;
import io.sentry.protocol.Device;
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;
/* JADX INFO: Access modifiers changed from: package-private */
/* loaded from: classes.dex */
public 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 INFO: Access modifiers changed from: package-private */
/* JADX WARN: Code restructure failed: missing block: B:13:0x0040, code lost:
if (r3 != null) goto L44;
*/
/* JADX WARN: Code restructure failed: missing block: B:15:0x0054, code lost:
if (r2.isEmpty() == false) goto L28;
*/
/* JADX WARN: Code restructure failed: missing block: B:16:0x0056, code lost:
android.util.Log.d(androidx.appcompat.app.AppLocalesStorageHelper.TAG, "Reading app Locales : Locales read from file: androidx.appcompat.app.AppCompatDelegate.application_locales_record_file , appLocales: " + r2);
*/
/* JADX WARN: Code restructure failed: missing block: B:17:0x006c, code lost:
return r2;
*/
/* JADX WARN: Code restructure failed: missing block: B:19:0x0069, code lost:
r9.deleteFile(androidx.appcompat.app.AppLocalesStorageHelper.APPLICATION_LOCALES_RECORD_FILE);
*/
/* JADX WARN: Code restructure failed: missing block: B:21:0x0042, code lost:
r3.close();
*/
/* JADX WARN: Code restructure failed: missing block: B:32:0x0039, code lost:
r2 = r4.getAttributeValue(null, androidx.appcompat.app.AppLocalesStorageHelper.LOCALE_RECORD_ATTRIBUTE_TAG);
*/
/* JADX WARN: Code restructure failed: missing block: B:49:0x004d, code lost:
if (r3 == null) goto L26;
*/
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public 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 -> L73
org.xmlpull.v1.XmlPullParser r4 = android.util.Xml.newPullParser() // Catch: java.lang.Throwable -> L46 java.lang.Throwable -> L48
java.lang.String r5 = "UTF-8"
r4.setInput(r3, r5) // Catch: java.lang.Throwable -> L46 java.lang.Throwable -> L48
int r5 = r4.getDepth() // Catch: java.lang.Throwable -> L46 java.lang.Throwable -> L48
L17:
int r6 = r4.next() // Catch: java.lang.Throwable -> L46 java.lang.Throwable -> L48
r7 = 1
if (r6 == r7) goto L40
r7 = 3
if (r6 != r7) goto L27
int r8 = r4.getDepth() // Catch: java.lang.Throwable -> L46 java.lang.Throwable -> L48
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 -> L46 java.lang.Throwable -> L48
java.lang.String r7 = "locales"
boolean r6 = r6.equals(r7) // Catch: java.lang.Throwable -> L46 java.lang.Throwable -> L48
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 -> L46 java.lang.Throwable -> L48
L40:
if (r3 == 0) goto L50
L42:
r3.close() // Catch: java.io.IOException -> L50
goto L50
L46:
r9 = move-exception
goto L6d
L48:
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 -> L46
if (r3 == 0) goto L50
goto L42
L50:
boolean r3 = r2.isEmpty()
if (r3 != 0) goto L69
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)
java.lang.StringBuilder r9 = r9.append(r2)
java.lang.String r9 = r9.toString()
android.util.Log.d(r1, r9)
goto L6c
L69:
r9.deleteFile(r0)
L6c:
return r2
L6d:
if (r3 == 0) goto L72
r3.close() // Catch: java.io.IOException -> L72
L72:
throw r9
L73:
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");
}
/* JADX INFO: Access modifiers changed from: package-private */
public 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(C.UTF8_NAME, 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));
}
}
/* JADX INFO: Access modifiers changed from: package-private */
public 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(Device.JsonKeys.LOCALE);
if (systemService != null) {
AppCompatDelegate.Api33Impl.localeManagerSetApplicationLocales(systemService, AppCompatDelegate.Api24Impl.localeListForLanguageTags(readLocales));
}
}
context.getPackageManager().setComponentEnabledSetting(componentName, 1, 1);
}
}
}
/* loaded from: classes.dex */
static class ThreadPerTaskExecutor implements Executor {
@Override // java.util.concurrent.Executor
public void execute(Runnable runnable) {
new Thread(runnable).start();
}
}
/* JADX INFO: Access modifiers changed from: package-private */
/* loaded from: classes.dex */
public static class SerialExecutor implements Executor {
Runnable mActive;
final Executor mExecutor;
private final Object mLock = new Object();
final Queue<Runnable> mTasks = new ArrayDeque();
/* JADX INFO: Access modifiers changed from: package-private */
public 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.m14xd188c474(runnable);
}
});
if (this.mActive == null) {
scheduleNext();
}
}
}
/* JADX INFO: Access modifiers changed from: package-private */
/* renamed from: lambda$execute$0$androidx-appcompat-app-AppLocalesStorageHelper$SerialExecutor, reason: not valid java name */
public /* synthetic */ void m14xd188c474(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);
}
}
}
}
}