[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
|
||||
android:name=".applications.appinfo.AppLocalePickerActivity"
|
||||
android:name=".Settings$AppLocalePickerActivity"
|
||||
android:label="@string/app_locale_picker_title"
|
||||
android:exported="true" >
|
||||
<intent-filter>
|
||||
<action android:name="android.settings.APP_LOCALE_SETTINGS" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<data android:scheme="package" />
|
||||
</intent-filter>
|
||||
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
|
||||
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 SpellCheckersSettingsActivity 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 UserDictionarySettingsActivity 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