[Panlingual] Remove getCallingPackage and use Uri instead.
- Use uri to pass the package name. - Allow adb command to start this function Bug: 211856852 Test: see b/211856852#2 Change-Id: I3d73d32d7546bf0e3db25d952b2caee934f523dc
This commit is contained in:
@@ -833,12 +833,13 @@
|
|||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".applications.appinfo.AppLocalePickerActivity"
|
android:name=".Settings$AppLocalePickerActivity"
|
||||||
android:label="@string/app_locale_picker_title"
|
android:label="@string/app_locale_picker_title"
|
||||||
android:exported="true" >
|
android:exported="true" >
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.settings.APP_LOCALE_SETTINGS" />
|
<action android:name="android.settings.APP_LOCALE_SETTINGS" />
|
||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
|
<data android:scheme="package" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
|
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
|
||||||
android:value="com.android.settings.applications.appinfo.AppLocaleDetails" />
|
android:value="com.android.settings.applications.appinfo.AppLocaleDetails" />
|
||||||
|
@@ -108,6 +108,8 @@ public class Settings extends SettingsActivity {
|
|||||||
public static class InputMethodAndSubtypeEnablerActivity extends SettingsActivity { /* empty */ }
|
public static class InputMethodAndSubtypeEnablerActivity extends SettingsActivity { /* empty */ }
|
||||||
public static class SpellCheckersSettingsActivity extends SettingsActivity { /* empty */ }
|
public static class SpellCheckersSettingsActivity extends SettingsActivity { /* empty */ }
|
||||||
public static class LocalePickerActivity extends SettingsActivity { /* empty */ }
|
public static class LocalePickerActivity extends SettingsActivity { /* empty */ }
|
||||||
|
/** Activity for the App locale details settings. */
|
||||||
|
public static class AppLocalePickerActivity extends SettingsActivity { /* empty */ }
|
||||||
public static class LanguageAndInputSettingsActivity extends SettingsActivity { /* empty */ }
|
public static class LanguageAndInputSettingsActivity extends SettingsActivity { /* empty */ }
|
||||||
public static class UserDictionarySettingsActivity extends SettingsActivity { /* empty */ }
|
public static class UserDictionarySettingsActivity extends SettingsActivity { /* empty */ }
|
||||||
public static class DarkThemeSettingsActivity extends SettingsActivity { /* empty */ }
|
public static class DarkThemeSettingsActivity extends SettingsActivity { /* empty */ }
|
||||||
|
@@ -1,53 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2021 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.
|
|
||||||
*/
|
|
||||||
package com.android.settings.applications.appinfo;
|
|
||||||
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
|
||||||
|
|
||||||
import com.android.settings.SettingsActivity;
|
|
||||||
import com.android.settings.applications.AppInfoBase;
|
|
||||||
|
|
||||||
/** Activity for the entry of {@link #AppLocaleDetails} from outside Settings app. */
|
|
||||||
public class AppLocalePickerActivity extends SettingsActivity {
|
|
||||||
private static final String TAG = "AppLocalePickerActivity";
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onCreate(Bundle savedState) {
|
|
||||||
Intent intent = getEntryIntent(getIntent());
|
|
||||||
if (intent == null) {
|
|
||||||
finish();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
setIntent(intent);
|
|
||||||
super.onCreate(savedState);
|
|
||||||
}
|
|
||||||
|
|
||||||
@VisibleForTesting
|
|
||||||
Intent getEntryIntent(Intent intent) {
|
|
||||||
String callingPackage = getCallingPackage();
|
|
||||||
if (callingPackage == null || callingPackage.isEmpty()) {
|
|
||||||
Log.d(TAG, "No calling package name is found.");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
final Bundle fragmentArgs = new Bundle();
|
|
||||||
fragmentArgs.putString(AppInfoBase.ARG_PACKAGE_NAME, callingPackage);
|
|
||||||
return intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS, fragmentArgs);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,87 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2021 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.android.settings.applications.appinfo;
|
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
|
||||||
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.os.Looper;
|
|
||||||
|
|
||||||
import androidx.test.annotation.UiThreadTest;
|
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
|
||||||
|
|
||||||
import com.android.settings.SettingsActivity;
|
|
||||||
import com.android.settings.applications.AppInfoBase;
|
|
||||||
|
|
||||||
import org.junit.After;
|
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.junit.runner.RunWith;
|
|
||||||
|
|
||||||
@RunWith(AndroidJUnit4.class)
|
|
||||||
public class AppLocalePickerActivityTest {
|
|
||||||
private TestAppLocalePickerActivity mActivity;
|
|
||||||
|
|
||||||
@Before
|
|
||||||
@UiThreadTest
|
|
||||||
public void setUp() {
|
|
||||||
if (Looper.myLooper() == null) {
|
|
||||||
Looper.prepare();
|
|
||||||
}
|
|
||||||
mActivity = new TestAppLocalePickerActivity();
|
|
||||||
}
|
|
||||||
|
|
||||||
@After
|
|
||||||
public void cleanUp() {
|
|
||||||
mActivity = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void onCreate_getEntryIntent_returnNull() {
|
|
||||||
TestAppLocalePickerActivity.setCallingPackage(null);
|
|
||||||
Intent intent = new Intent();
|
|
||||||
|
|
||||||
assertThat(mActivity.getEntryIntent(intent)).isEqualTo(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void onCreate_getEntryIntent_returnIntentWithPackageName() {
|
|
||||||
String callingPackageName = "com.example.android";
|
|
||||||
TestAppLocalePickerActivity.setCallingPackage(callingPackageName);
|
|
||||||
Intent intent = new Intent();
|
|
||||||
|
|
||||||
Intent entryIntent = mActivity.getEntryIntent(intent);
|
|
||||||
|
|
||||||
Bundle outputBundle =
|
|
||||||
entryIntent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS);
|
|
||||||
String packageName = outputBundle.getString(AppInfoBase.ARG_PACKAGE_NAME);
|
|
||||||
assertThat(packageName).isEqualTo(callingPackageName);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class TestAppLocalePickerActivity extends AppLocalePickerActivity {
|
|
||||||
private static String sCallingPackage;
|
|
||||||
@Override
|
|
||||||
public String getCallingPackage() {
|
|
||||||
return sCallingPackage;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setCallingPackage(String packageName) {
|
|
||||||
sCallingPackage = packageName;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Reference in New Issue
Block a user