diff --git a/src/com/android/settings/applications/appinfo/AppLocalePreferenceController.java b/src/com/android/settings/applications/appinfo/AppLocalePreferenceController.java index eaa2ec00d76..fb15eaea862 100644 --- a/src/com/android/settings/applications/appinfo/AppLocalePreferenceController.java +++ b/src/com/android/settings/applications/appinfo/AppLocalePreferenceController.java @@ -17,14 +17,20 @@ package com.android.settings.applications.appinfo; import android.content.Context; +import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; +import android.net.Uri; +import android.text.TextUtils; import android.util.FeatureFlagUtils; +import android.util.Log; import androidx.annotation.VisibleForTesting; +import androidx.preference.Preference; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.applications.AppLocaleUtil; +import com.android.settings.localepicker.AppLocalePickerActivity; import java.util.List; @@ -59,6 +65,23 @@ public class AppLocalePreferenceController extends AppInfoPreferenceControllerBa return AppLocaleDetails.getSummary(mContext, mParent.getAppEntry().info.packageName); } + @Override + public boolean handlePreferenceTreeClick(Preference preference) { + if (TextUtils.equals(preference.getKey(), mPreferenceKey)) { + return false; + } + + if (mParent != null) { + Intent intent = new Intent(mContext, AppLocalePickerActivity.class); + intent.setData(Uri.parse("package:" + mParent.getAppEntry().info.packageName)); + mContext.startActivity(intent); + return true; + } else { + Log.d(TAG, "mParent is null"); + return false; + } + } + @VisibleForTesting boolean canDisplayLocaleUi() { return AppLocaleUtil