[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
This commit is contained in:
danielwbhuang
2022-03-14 20:00:15 +08:00
parent f7434ecc63
commit fbf8cde0fb

View File

@@ -17,14 +17,20 @@
package com.android.settings.applications.appinfo; package com.android.settings.applications.appinfo;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.text.TextUtils;
import android.util.FeatureFlagUtils; import android.util.FeatureFlagUtils;
import android.util.Log;
import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import com.android.settings.SettingsPreferenceFragment; import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.applications.AppLocaleUtil; import com.android.settings.applications.AppLocaleUtil;
import com.android.settings.localepicker.AppLocalePickerActivity;
import java.util.List; import java.util.List;
@@ -59,6 +65,23 @@ public class AppLocalePreferenceController extends AppInfoPreferenceControllerBa
return AppLocaleDetails.getSummary(mContext, mParent.getAppEntry().info.packageName); 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 @VisibleForTesting
boolean canDisplayLocaleUi() { boolean canDisplayLocaleUi() {
return AppLocaleUtil return AppLocaleUtil