From fbf8cde0fb8521f72bbfc82637ef01fb23d92aca Mon Sep 17 00:00:00 2001 From: danielwbhuang Date: Mon, 14 Mar 2022 20:00:15 +0800 Subject: [PATCH] [Panlingual] Settings UI revamp - Navigation handling Entry: Settings > Apps > All apps > any app - video: https://screencast.googleplex.com/cast/NjM1NjUwODYxNTkwMTE4NHxkOGQzZDM2OS01Nw Bug: 223090378 Test: local Change-Id: Ied357b60c103f25540981cc0cb7abadb020f7995 --- .../AppLocalePreferenceController.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) 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