[Panlingual] Improve and refactor revamped UI
- Remove useless file
- Make Icon be able to scroll up and down
Bug: 226350483
Test: local test
Change-Id: I4564f432143e7e31ba5beff1dd32d7bc7764f9bf
(cherry picked from commit ded10f8e24
)
Merged-In: I4564f432143e7e31ba5beff1dd32d7bc7764f9bf
This commit is contained in:
@@ -1,33 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Copyright (C) 2022 The Android Open Source Project
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:id="@+id/app_locale_detail_container"
|
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
<FrameLayout
|
|
||||||
android:id="@+id/app_locale_detail"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"/>
|
|
||||||
|
|
||||||
<FrameLayout
|
|
||||||
android:id="@+id/app_locale_picker_with_region"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
@@ -37,4 +37,7 @@
|
|||||||
|
|
||||||
<!-- For a menu item allowing users to edit a SIM display name -->
|
<!-- For a menu item allowing users to edit a SIM display name -->
|
||||||
<item type="id" name="edit_sim_name" />
|
<item type="id" name="edit_sim_name" />
|
||||||
|
|
||||||
|
<!-- For a layout container to add AppLocaleDetails into -->
|
||||||
|
<item type="id" name="layout_app_locale_details" />
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -18,12 +18,16 @@ package com.android.settings.localepicker;
|
|||||||
|
|
||||||
import android.app.FragmentTransaction;
|
import android.app.FragmentTransaction;
|
||||||
import android.app.LocaleManager;
|
import android.app.LocaleManager;
|
||||||
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.LocaleList;
|
import android.os.LocaleList;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
|
import android.view.View;
|
||||||
|
import android.widget.FrameLayout;
|
||||||
|
|
||||||
|
import com.android.internal.annotations.VisibleForTesting;
|
||||||
import com.android.internal.app.LocalePickerWithRegion;
|
import com.android.internal.app.LocalePickerWithRegion;
|
||||||
import com.android.internal.app.LocaleStore;
|
import com.android.internal.app.LocaleStore;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
@@ -39,11 +43,19 @@ public class AppLocalePickerActivity extends SettingsBaseActivity
|
|||||||
private static final String TAG = AppLocalePickerActivity.class.getSimpleName();
|
private static final String TAG = AppLocalePickerActivity.class.getSimpleName();
|
||||||
|
|
||||||
private String mPackageName;
|
private String mPackageName;
|
||||||
|
private LocalePickerWithRegion mLocalePickerWithRegion;
|
||||||
|
private AppLocaleDetails mAppLocaleDetails;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
mPackageName = getIntent().getData().getSchemeSpecificPart();
|
Uri data = getIntent().getData();
|
||||||
|
if (data == null) {
|
||||||
|
Log.d(TAG, "There is no uri data.");
|
||||||
|
finish();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mPackageName = data.getSchemeSpecificPart();
|
||||||
if (TextUtils.isEmpty(mPackageName)) {
|
if (TextUtils.isEmpty(mPackageName)) {
|
||||||
Log.d(TAG, "There is no package name.");
|
Log.d(TAG, "There is no package name.");
|
||||||
finish();
|
finish();
|
||||||
@@ -51,25 +63,13 @@ public class AppLocalePickerActivity extends SettingsBaseActivity
|
|||||||
}
|
}
|
||||||
|
|
||||||
getActionBar().setDisplayHomeAsUpEnabled(true);
|
getActionBar().setDisplayHomeAsUpEnabled(true);
|
||||||
setContentView(R.layout.app_locale_picker);
|
|
||||||
|
|
||||||
// Create App locale info detail part.
|
mLocalePickerWithRegion = LocalePickerWithRegion.createLanguagePicker(
|
||||||
AppLocaleDetails appLocaleDetails = AppLocaleDetails.newInstance(mPackageName);
|
this, AppLocalePickerActivity.this, false /* translate only */, mPackageName);
|
||||||
getSupportFragmentManager()
|
mAppLocaleDetails = AppLocaleDetails.newInstance(mPackageName);
|
||||||
.beginTransaction()
|
|
||||||
.replace(R.id.app_locale_detail, appLocaleDetails)
|
|
||||||
.commit();
|
|
||||||
|
|
||||||
// Create Locale picker part.
|
// Launch Locale picker part.
|
||||||
final LocalePickerWithRegion selector = LocalePickerWithRegion.createLanguagePicker(
|
launchLocalePickerPage();
|
||||||
this, AppLocalePickerActivity.this, false /* translate only */);
|
|
||||||
// LocalePickerWithRegion use android.app.ListFragment. Thus, it can not user
|
|
||||||
// getSupportFragmentManager() to add this into container.
|
|
||||||
getFragmentManager()
|
|
||||||
.beginTransaction()
|
|
||||||
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
|
|
||||||
.replace(R.id.app_locale_picker_with_region, selector)
|
|
||||||
.commit();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -114,5 +114,38 @@ public class AppLocalePickerActivity extends SettingsBaseActivity
|
|||||||
}
|
}
|
||||||
localeManager.setApplicationLocales(mPackageName, LocaleList.forLanguageTags(languageTag));
|
localeManager.setApplicationLocales(mPackageName, LocaleList.forLanguageTags(languageTag));
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
private View launchAppLocaleDetailsPage() {
|
||||||
|
FrameLayout appLocaleDetailsContainer = new FrameLayout(this);
|
||||||
|
appLocaleDetailsContainer.setId(R.id.layout_app_locale_details);
|
||||||
|
getSupportFragmentManager()
|
||||||
|
.beginTransaction()
|
||||||
|
.replace(R.id.layout_app_locale_details, mAppLocaleDetails)
|
||||||
|
.commit();
|
||||||
|
return appLocaleDetailsContainer;
|
||||||
|
}
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
void launchLocalePickerPage() {
|
||||||
|
// LocalePickerWithRegion use android.app.ListFragment. Thus, it can not use
|
||||||
|
// getSupportFragmentManager() to add this into container.
|
||||||
|
android.app.FragmentManager fragmentManager = getFragmentManager();
|
||||||
|
fragmentManager.registerFragmentLifecycleCallbacks(
|
||||||
|
new android.app.FragmentManager.FragmentLifecycleCallbacks() {
|
||||||
|
@Override
|
||||||
|
public void onFragmentViewCreated(
|
||||||
|
android.app.FragmentManager fm,
|
||||||
|
android.app.Fragment f,
|
||||||
|
View v,
|
||||||
|
Bundle savedInstanceState) {
|
||||||
|
super.onFragmentViewCreated(fm, f, v, savedInstanceState);
|
||||||
|
mLocalePickerWithRegion
|
||||||
|
.getListView().addHeaderView(launchAppLocaleDetailsPage());
|
||||||
|
}
|
||||||
|
}, true);
|
||||||
|
fragmentManager.beginTransaction()
|
||||||
|
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
|
||||||
|
.replace(R.id.content_frame, mLocalePickerWithRegion)
|
||||||
|
.commit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user