From 94b82abd61880a2e771df2f91e16431205072940 Mon Sep 17 00:00:00 2001 From: Dave Mankoff Date: Wed, 3 Jul 2019 13:26:55 -0400 Subject: Allow Services to be created through Dagger. This is a significant change that allows Services to have their constructed injected into. The DozeService is now labeled as injectable (thought it takes no arguments). At least one Service has to be marked as injectable for Dagger to be happy compiling this code. Bug: 138787339 Test: atest SystemUITests Change-Id: I0ec92e01dd236bcee3083c8f8744c53b7ccc92d3 Merged-In: Ib58f8763c996fbc2aea07ead56493d2d9e936f5b --- packages/CarSystemUI/Android.bp | 2 +- packages/SystemUI/AndroidManifest.xml | 4 +- packages/SystemUI/docs/dagger.md | 9 ++- .../android/systemui/ContextComponentHelper.java | 25 +++++++ .../android/systemui/ContextComponentResolver.java | 48 ++++++++++++++ .../src/com/android/systemui/ServiceBinder.java | 41 ++++++++++++ .../systemui/SystemUIAppComponentFactory.java | 76 ++++++++++++++++++++++ .../com/android/systemui/SystemUIApplication.java | 14 +++- .../src/com/android/systemui/SystemUIFactory.java | 31 +-------- .../android/systemui/SystemUIRootComponent.java | 68 +++++++++++++++++++ .../src/com/android/systemui/doze/DozeService.java | 3 + .../systemui/fragments/FragmentService.java | 4 +- .../util/InjectionInflationController.java | 4 +- 13 files changed, 291 insertions(+), 38 deletions(-) create mode 100644 packages/SystemUI/src/com/android/systemui/ContextComponentHelper.java create mode 100644 packages/SystemUI/src/com/android/systemui/ContextComponentResolver.java create mode 100644 packages/SystemUI/src/com/android/systemui/ServiceBinder.java create mode 100644 packages/SystemUI/src/com/android/systemui/SystemUIAppComponentFactory.java create mode 100644 packages/SystemUI/src/com/android/systemui/SystemUIRootComponent.java diff --git a/packages/CarSystemUI/Android.bp b/packages/CarSystemUI/Android.bp index 589623b0d6cd..61cab73c226a 100644 --- a/packages/CarSystemUI/Android.bp +++ b/packages/CarSystemUI/Android.bp @@ -26,8 +26,8 @@ android_app { ], static_libs: [ - "CarNotificationLib", "SystemUI-core", + "CarNotificationLib", "SystemUIPluginLib", "SystemUISharedLib", "SettingsLib", diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml index 17274f418a1e..4f74605b4003 100644 --- a/packages/SystemUI/AndroidManifest.xml +++ b/packages/SystemUI/AndroidManifest.xml @@ -20,6 +20,7 @@ xmlns:androidprv="http://schemas.android.com/apk/prv/res/android" package="com.android.systemui" android:sharedUserId="android.uid.systemui" + xmlns:tools="http://schemas.android.com/tools" coreApp="true"> @@ -259,7 +260,8 @@ android:theme="@style/Theme.SystemUI" android:defaultToDeviceProtectedStorage="true" android:directBootAware="true" - android:appComponentFactory="androidx.core.app.CoreComponentFactory"> + tools:replace="android:appComponentFactory" + android:appComponentFactory=".SystemUIAppComponentFactory"> diff --git a/packages/SystemUI/docs/dagger.md b/packages/SystemUI/docs/dagger.md index c2159df1cee1..c440fba10135 100644 --- a/packages/SystemUI/docs/dagger.md +++ b/packages/SystemUI/docs/dagger.md @@ -53,7 +53,7 @@ variants (like other form factors e.g. Car). ### Adding injection to a new SystemUI object Anything that depends on any `@Singleton` provider from SystemUIRootComponent -should be declared as an `@Subcomponent` of the root component, this requires +should be declared as a `@Subcomponent` of the root component. This requires declaring your own interface for generating your own modules or just the object you need injected. The subcomponent also needs to be added to SystemUIRootComponent in SystemUIFactory so it can be acquired. @@ -204,6 +204,13 @@ public CustomView(@Named(VIEW_CONTEXT) Context themedViewContext, AttributeSet a } ``` +## Updating Dagger2 + +Binaries can be downloaded from https://repo1.maven.org/maven2/com/google/dagger/ and then loaded +into +[/prebuilts/tools/common/m2/repository/com/google/dagger/](http://cs/android/prebuilts/tools/common/m2/repository/com/google/dagger/) + + ## TODO List - Eliminate usages of Dependency#get diff --git a/packages/SystemUI/src/com/android/systemui/ContextComponentHelper.java b/packages/SystemUI/src/com/android/systemui/ContextComponentHelper.java new file mode 100644 index 000000000000..8fabe7aa9eb6 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/ContextComponentHelper.java @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2019 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.systemui; + +/** + * Interface necessary to make Dagger happy. See {@link ContextComponentResolver}. + */ +public interface ContextComponentHelper { + /** Turns a classname into an instance of the class or returns null. */ + T resolve(String className); +} diff --git a/packages/SystemUI/src/com/android/systemui/ContextComponentResolver.java b/packages/SystemUI/src/com/android/systemui/ContextComponentResolver.java new file mode 100644 index 000000000000..09bccd993f39 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/ContextComponentResolver.java @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2019 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.systemui; + +import java.util.Map; + +import javax.inject.Inject; +import javax.inject.Provider; + +/** + * Used during Service and Activity instantiation to make them injectable. + */ +public class ContextComponentResolver implements ContextComponentHelper { + private final Map, Provider> mCreators; + + @Inject + ContextComponentResolver(Map, Provider> creators) { + mCreators = creators; + } + + /** + * Looks up the class name to see if Dagger has an instance of it. + */ + @Override + public T resolve(String className) { + for (Map.Entry, Provider> p : mCreators.entrySet()) { + if (p.getKey().getName().equals(className)) { + return (T) p.getValue().get(); + } + } + + return null; + } +} diff --git a/packages/SystemUI/src/com/android/systemui/ServiceBinder.java b/packages/SystemUI/src/com/android/systemui/ServiceBinder.java new file mode 100644 index 000000000000..6282c6e5282f --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/ServiceBinder.java @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2019 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.systemui; + +import com.android.systemui.doze.DozeService; + +import dagger.Binds; +import dagger.Module; +import dagger.multibindings.ClassKey; +import dagger.multibindings.IntoMap; + +/** + * Services and Activities that are injectable should go here. + */ +@Module +public abstract class ServiceBinder { + + @Binds + public abstract ContextComponentHelper bindComponentHelper( + ContextComponentResolver componentHelper); + + @Binds + @IntoMap + @ClassKey(DozeService.class) + public abstract Object bindDozeService(DozeService service); + +} diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIAppComponentFactory.java b/packages/SystemUI/src/com/android/systemui/SystemUIAppComponentFactory.java new file mode 100644 index 000000000000..00ae99295768 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/SystemUIAppComponentFactory.java @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2019 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.systemui; + +import android.app.Application; +import android.app.Service; +import android.content.Intent; + +import androidx.core.app.CoreComponentFactory; + +import javax.inject.Inject; + +/** + * Implementation of AppComponentFactory that injects into constructors. + */ +public class SystemUIAppComponentFactory extends CoreComponentFactory { + + @Inject + public ContextComponentHelper mComponentHelper; + + public SystemUIAppComponentFactory() { + super(); + } + + @Override + public Application instantiateApplication(ClassLoader cl, String className) + throws InstantiationException, IllegalAccessException, ClassNotFoundException { + Application app = super.instantiateApplication(cl, className); + if (app instanceof SystemUIApplication) { + ((SystemUIApplication) app).setContextAvailableCallback( + context -> { + SystemUIFactory.createFromConfig(context); + SystemUIFactory.getInstance().getRootComponent().inject( + SystemUIAppComponentFactory.this); + } + ); + } + + return app; + } + + @Override + public Service instantiateService(ClassLoader cl, String className, Intent intent) + throws InstantiationException, IllegalAccessException, ClassNotFoundException { + Service service = mComponentHelper.resolve(className); + if (service != null) { + return checkCompatWrapper(service); + } + return super.instantiateService(cl, className, intent); + } + + static T checkCompatWrapper(T obj) { + if (obj instanceof CompatWrapped) { + T wrapper = (T) ((CompatWrapped) obj).getWrapper(); + if (wrapper != null) { + return wrapper; + } + } + + return obj; + } +} diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java b/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java index e89e6cb269f8..f8449add6dce 100644 --- a/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java +++ b/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java @@ -60,16 +60,20 @@ public class SystemUIApplication extends Application implements SysUiServiceProv private boolean mServicesStarted; private boolean mBootCompleted; private final Map, Object> mComponents = new HashMap<>(); + private ContextAvailableCallback mContextAvailableCallback; @Override public void onCreate() { super.onCreate(); + // This line is used to setup Dagger's dependency injection and should be kept at the + // top of this method. + mContextAvailableCallback.onContextAvailable(this); + // Set the application theme that is inherited by all services. Note that setting the // application theme in the manifest does only work for activities. Keep this in sync with // the theme set there. setTheme(R.style.Theme_SystemUI); - SystemUIFactory.createFromConfig(this); if (Process.myUserHandle().equals(UserHandle.SYSTEM)) { IntentFilter bootCompletedFilter = new IntentFilter(Intent.ACTION_BOOT_COMPLETED); @@ -286,4 +290,12 @@ public class SystemUIApplication extends Application implements SysUiServiceProv public SystemUI[] getServices() { return mServices; } + + void setContextAvailableCallback(ContextAvailableCallback callback) { + mContextAvailableCallback = callback; + } + + interface ContextAvailableCallback { + void onContextAvailable(Context context); + } } diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java index e87da3cbc170..2cdc81fcf695 100644 --- a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java +++ b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java @@ -36,7 +36,6 @@ import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.assist.AssistManager; import com.android.systemui.classifier.FalsingManagerFactory; import com.android.systemui.dock.DockManager; -import com.android.systemui.fragments.FragmentService; import com.android.systemui.keyguard.DismissCallbackRegistry; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.power.EnhancedEstimates; @@ -67,8 +66,6 @@ import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; import com.android.systemui.statusbar.phone.UnlockMethodCache; import com.android.systemui.statusbar.policy.DeviceProvisionedController; import com.android.systemui.util.AsyncSensorManager; -import com.android.systemui.util.InjectionInflationController; -import com.android.systemui.util.leak.GarbageMonitor; import com.android.systemui.volume.VolumeDialogComponent; import java.util.function.Consumer; @@ -76,7 +73,6 @@ import java.util.function.Consumer; import javax.inject.Named; import javax.inject.Singleton; -import dagger.Component; import dagger.Module; import dagger.Provides; @@ -114,7 +110,7 @@ public class SystemUIFactory { public SystemUIFactory() {} protected void init(Context context) { - mRootComponent = DaggerSystemUIFactory_SystemUIRootComponent.builder() + mRootComponent = DaggerSystemUIRootComponent.builder() .systemUIFactory(this) .dependencyProvider(new com.android.systemui.DependencyProvider()) .contextHolder(new ContextHolder(context)) @@ -266,29 +262,4 @@ public class SystemUIFactory { return mContext; } } - - @Singleton - @Component(modules = {SystemUIFactory.class, DependencyProvider.class, DependencyBinder.class, - ContextHolder.class}) - public interface SystemUIRootComponent { - @Singleton - Dependency.DependencyInjector createDependency(); - - @Singleton - StatusBar.StatusBarInjector getStatusBarInjector(); - - /** - * FragmentCreator generates all Fragments that need injection. - */ - @Singleton - FragmentService.FragmentCreator createFragmentCreator(); - - /** - * ViewCreator generates all Views that need injection. - */ - InjectionInflationController.ViewCreator createViewCreator(); - - @Singleton - GarbageMonitor createGarbageMonitor(); - } } diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIRootComponent.java b/packages/SystemUI/src/com/android/systemui/SystemUIRootComponent.java new file mode 100644 index 000000000000..c732df3fdb9f --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/SystemUIRootComponent.java @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2019 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.systemui; + +import com.android.systemui.fragments.FragmentService; +import com.android.systemui.statusbar.phone.StatusBar; +import com.android.systemui.util.InjectionInflationController; +import com.android.systemui.util.leak.GarbageMonitor; + +import javax.inject.Singleton; + +import dagger.Component; + +/** + * Root component for Dagger injection. + */ +@Singleton +@Component(modules = {SystemUIFactory.class, DependencyProvider.class, DependencyBinder.class, + ServiceBinder.class, SystemUIFactory.ContextHolder.class}) +public interface SystemUIRootComponent { + /** + * Main dependency providing module. + */ + @Singleton + Dependency.DependencyInjector createDependency(); + + /** + * Injects the StatusBar. + */ + @Singleton + StatusBar.StatusBarInjector getStatusBarInjector(); + + /** + * FragmentCreator generates all Fragments that need injection. + */ + @Singleton + FragmentService.FragmentCreator createFragmentCreator(); + + /** + * ViewCreator generates all Views that need injection. + */ + InjectionInflationController.ViewCreator createViewCreator(); + + /** + * Creatse a GarbageMonitor. + */ + @Singleton + GarbageMonitor createGarbageMonitor(); + + /** + * Injects into the supplied argument. + */ + void inject(SystemUIAppComponentFactory factory); +} diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java index 2db73065fe19..83b6db7948b7 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java @@ -31,6 +31,8 @@ import com.android.systemui.shared.plugins.PluginManager; import java.io.FileDescriptor; import java.io.PrintWriter; +import javax.inject.Inject; + public class DozeService extends DreamService implements DozeMachine.Service, RequestDoze, PluginListener { private static final String TAG = "DozeService"; @@ -40,6 +42,7 @@ public class DozeService extends DreamService private DozeServicePlugin mDozePlugin; private PluginManager mPluginManager; + @Inject public DozeService() { setDebug(DEBUG); } diff --git a/packages/SystemUI/src/com/android/systemui/fragments/FragmentService.java b/packages/SystemUI/src/com/android/systemui/fragments/FragmentService.java index 8dbaf0f681cf..b4cc571be061 100644 --- a/packages/SystemUI/src/com/android/systemui/fragments/FragmentService.java +++ b/packages/SystemUI/src/com/android/systemui/fragments/FragmentService.java @@ -22,7 +22,7 @@ import android.view.View; import com.android.systemui.ConfigurationChangedReceiver; import com.android.systemui.Dumpable; -import com.android.systemui.SystemUIFactory; +import com.android.systemui.SystemUIRootComponent; import com.android.systemui.qs.QSFragment; import com.android.systemui.statusbar.phone.NavigationBarFragment; @@ -51,7 +51,7 @@ public class FragmentService implements ConfigurationChangedReceiver, Dumpable { private final FragmentCreator mFragmentCreator; @Inject - public FragmentService(SystemUIFactory.SystemUIRootComponent rootComponent) { + public FragmentService(SystemUIRootComponent rootComponent) { mFragmentCreator = rootComponent.createFragmentCreator(); initInjectionMap(); } diff --git a/packages/SystemUI/src/com/android/systemui/util/InjectionInflationController.java b/packages/SystemUI/src/com/android/systemui/util/InjectionInflationController.java index ede30046d6c3..9b264c4a326e 100644 --- a/packages/SystemUI/src/com/android/systemui/util/InjectionInflationController.java +++ b/packages/SystemUI/src/com/android/systemui/util/InjectionInflationController.java @@ -26,7 +26,7 @@ import android.view.View; import com.android.keyguard.KeyguardClockSwitch; import com.android.keyguard.KeyguardMessageArea; import com.android.keyguard.KeyguardSliceView; -import com.android.systemui.SystemUIFactory; +import com.android.systemui.SystemUIRootComponent; import com.android.systemui.qs.QSCarrierGroup; import com.android.systemui.qs.QSFooterImpl; import com.android.systemui.qs.QSPanel; @@ -62,7 +62,7 @@ public class InjectionInflationController { private final LayoutInflater.Factory2 mFactory = new InjectionFactory(); @Inject - public InjectionInflationController(SystemUIFactory.SystemUIRootComponent rootComponent) { + public InjectionInflationController(SystemUIRootComponent rootComponent) { mViewCreator = rootComponent.createViewCreator(); initInjectionMap(); } -- cgit v1.2.3-59-g8ed1b From 43f862d2724b90e28ed966f424b54ec2ecfb4ca9 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Sun, 4 Aug 2019 05:55:00 -0700 Subject: Import translations. DO NOT MERGE Auto-generated-cl: translation import Bug: 64712476 Change-Id: I10923eba90d78c1f199e2e009185342da5dcc6dd --- core/res/res/values-af/strings.xml | 1 + core/res/res/values-am/strings.xml | 1 + core/res/res/values-ar/strings.xml | 1 + core/res/res/values-as/strings.xml | 1 + core/res/res/values-az/strings.xml | 1 + core/res/res/values-b+sr+Latn/strings.xml | 1 + core/res/res/values-be/strings.xml | 1 + core/res/res/values-bg/strings.xml | 1 + core/res/res/values-bn/strings.xml | 1 + core/res/res/values-bs/strings.xml | 1 + core/res/res/values-ca/strings.xml | 9 +++--- core/res/res/values-cs/strings.xml | 1 + core/res/res/values-da/strings.xml | 1 + core/res/res/values-de/strings.xml | 1 + core/res/res/values-el/strings.xml | 1 + core/res/res/values-en-rAU/strings.xml | 1 + core/res/res/values-en-rGB/strings.xml | 1 + core/res/res/values-en-rIN/strings.xml | 1 + core/res/res/values-es-rUS/strings.xml | 1 + core/res/res/values-es/strings.xml | 1 + core/res/res/values-et/strings.xml | 1 + core/res/res/values-eu/strings.xml | 1 + core/res/res/values-fa/strings.xml | 1 + core/res/res/values-fi/strings.xml | 1 + core/res/res/values-fr-rCA/strings.xml | 1 + core/res/res/values-fr/strings.xml | 1 + core/res/res/values-gl/strings.xml | 1 + core/res/res/values-gu/strings.xml | 1 + core/res/res/values-hi/strings.xml | 47 ++++++++++++++++--------------- core/res/res/values-hr/strings.xml | 1 + core/res/res/values-hu/strings.xml | 1 + core/res/res/values-hy/strings.xml | 1 + core/res/res/values-in/strings.xml | 1 + core/res/res/values-is/strings.xml | 1 + core/res/res/values-it/strings.xml | 1 + core/res/res/values-iw/strings.xml | 1 + core/res/res/values-ja/strings.xml | 25 ++++++++-------- core/res/res/values-ka/strings.xml | 1 + core/res/res/values-kk/strings.xml | 1 + core/res/res/values-km/strings.xml | 1 + core/res/res/values-kn/strings.xml | 1 + core/res/res/values-ko/strings.xml | 1 + core/res/res/values-ky/strings.xml | 1 + core/res/res/values-lo/strings.xml | 1 + core/res/res/values-lt/strings.xml | 1 + core/res/res/values-lv/strings.xml | 1 + core/res/res/values-mk/strings.xml | 1 + core/res/res/values-ml/strings.xml | 1 + core/res/res/values-mn/strings.xml | 1 + core/res/res/values-mr/strings.xml | 5 ++-- core/res/res/values-ms/strings.xml | 1 + core/res/res/values-my/strings.xml | 1 + core/res/res/values-nb/strings.xml | 1 + core/res/res/values-ne/strings.xml | 1 + core/res/res/values-nl/strings.xml | 1 + core/res/res/values-or/strings.xml | 3 +- core/res/res/values-pa/strings.xml | 1 + core/res/res/values-pl/strings.xml | 1 + core/res/res/values-pt-rBR/strings.xml | 1 + core/res/res/values-pt-rPT/strings.xml | 1 + core/res/res/values-pt/strings.xml | 1 + core/res/res/values-ro/strings.xml | 1 + core/res/res/values-ru/strings.xml | 1 + core/res/res/values-si/strings.xml | 1 + core/res/res/values-sk/strings.xml | 1 + core/res/res/values-sl/strings.xml | 1 + core/res/res/values-sq/strings.xml | 1 + core/res/res/values-sr/strings.xml | 1 + core/res/res/values-sv/strings.xml | 1 + core/res/res/values-sw/strings.xml | 3 +- core/res/res/values-ta/strings.xml | 3 +- core/res/res/values-te/strings.xml | 1 + core/res/res/values-th/strings.xml | 1 + core/res/res/values-tl/strings.xml | 1 + core/res/res/values-tr/strings.xml | 1 + core/res/res/values-uk/strings.xml | 1 + core/res/res/values-ur/strings.xml | 1 + core/res/res/values-uz/strings.xml | 1 + core/res/res/values-vi/strings.xml | 1 + core/res/res/values-zh-rCN/strings.xml | 9 +++--- core/res/res/values-zh-rHK/strings.xml | 1 + core/res/res/values-zh-rTW/strings.xml | 1 + core/res/res/values-zu/strings.xml | 1 + 83 files changed, 131 insertions(+), 48 deletions(-) diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml index 0816cc0cb594..10e851b3d630 100644 --- a/core/res/res/values-af/strings.xml +++ b/core/res/res/values-af/strings.xml @@ -95,6 +95,7 @@ "Stemboodskappe" "Wi-Fi-oproepe" "SIM-status" + "Hoëprioriteit-SIM-status" "Ander party het TTY-modus VOL versoek" "Ander party het TTY-modus GOD versoek" "Ander party het TTY-modus SOD versoek" diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml index 9ab7a53e3ab8..06654c4590ea 100644 --- a/core/res/res/values-am/strings.xml +++ b/core/res/res/values-am/strings.xml @@ -95,6 +95,7 @@ "የድምጽ መልዕክቶች" "የWi-Fi ጥሪ" "የሲም ሁኔታ" + "ከፍተኛ ቅድሚያ ተሰጪ የሲም ኹናቴ" "ቢጤ መልዕክት መጻጻፊያ ስልክ ሁነታ FULL ጠይቋል" "ቢጤ መልዕክት መጻጻፊያ ስልክ ሁነታ HCO ጠይቋል" "ቢጤ መልዕክት መጻጻፊያ ስልክ ሁነታ VCO ጠይቋል" diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml index 375592a9f52f..deb815cf42ea 100644 --- a/core/res/res/values-ar/strings.xml +++ b/core/res/res/values-ar/strings.xml @@ -99,6 +99,7 @@ "رسائل البريد الصوتي" "‏الاتصال عبر Wi-Fi" "‏حالة شريحة SIM" + "‏حالة شريحة SIM ذات أولوية" "‏طلب النظير وضع TTY الكامل" "‏طلب النظير وضع TTY على HCO" "‏طلب النظير وضع TTY على VCO" diff --git a/core/res/res/values-as/strings.xml b/core/res/res/values-as/strings.xml index 698921978c54..c53af2b3fa7e 100644 --- a/core/res/res/values-as/strings.xml +++ b/core/res/res/values-as/strings.xml @@ -95,6 +95,7 @@ "ভইচমেইলৰ বাৰ্তাসমূহ" "ৱাই-ফাই কলিং" "ছিমৰ স্থিতি" + "উচ্চ অগ্ৰাধিকাৰযুক্ত ছিমৰ স্থিতি" "নেটৱৰ্ক পীয়েৰে TTY ম\'ড FULLলৈ সলনি কৰিবলৈ অনুৰোধ কৰিছে" "নেটৱৰ্ক পীয়েৰে TTY ম\'ড HCOলৈ সলনি কৰিবলৈ অনুৰোধ কৰিছে" "নেটৱৰ্ক পীয়েৰে TTY ম\'ড VCO লৈ সলনি কৰিবলৈ অনুৰোধ কৰিছে" diff --git a/core/res/res/values-az/strings.xml b/core/res/res/values-az/strings.xml index 7a3cc7aaef5b..a3a2f2a0ecff 100644 --- a/core/res/res/values-az/strings.xml +++ b/core/res/res/values-az/strings.xml @@ -95,6 +95,7 @@ "Səsli e-poçt mesajları" "Wi-Fi zəngi" "SIM status" + "Yüksək Prioritetli SIM statusu" "Eskpert TTY Rejimi FULL-u sorğuladı" "Ekspert TTY Rejimi HCO-nu sorğuladı" "Ekspert TTY Rejimi VCO-nu sorğuladı" diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml index 93d87fe2b303..61a2167b8860 100644 --- a/core/res/res/values-b+sr+Latn/strings.xml +++ b/core/res/res/values-b+sr+Latn/strings.xml @@ -96,6 +96,7 @@ "Poruke govorne pošte" "Pozivanje preko Wi-Fi mreže" "Status SIM-a" + "Obaveštenja SIM kartice sa statusom „visok prioritet“" "Korisnik zahteva POTPUN režim TTY" "Korisnik zahteva PRENOS ZVUKA za režim TTY" "Korisnik zahteva PRENOS GLASA za režim TTY" diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml index 6823c44b21f8..cb6b3707b355 100644 --- a/core/res/res/values-be/strings.xml +++ b/core/res/res/values-be/strings.xml @@ -97,6 +97,7 @@ "Паведамленні галасавой пошты" "Wi-Fi-тэлефанія" "Статус SIM-карты" + "Стан SIM-карты з высокім прыярытэтам" "Аднарангавая прылада запытала рэжым TTY FULL" "Аднарангавая прылада запытала рэжым TTY НСО" "Аднарангавая прылада запытала рэжым TTY VCO" diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml index b41d69d3f32c..7c44bcaedd93 100644 --- a/core/res/res/values-bg/strings.xml +++ b/core/res/res/values-bg/strings.xml @@ -95,6 +95,7 @@ "Съобщения в гласовата поща" "Обаждания през Wi-Fi" "Състояние на SIM картата" + "Състояние на SIM картата с висок приоритет" "Отсрещният потребител заяви пълен TTY режим (FULL)" "Отсрещният потребител заяви TTY режим с пренос на слух (HCO)" "Отсрещният потребител заяви TTY режим с пренос на глас (VCО)" diff --git a/core/res/res/values-bn/strings.xml b/core/res/res/values-bn/strings.xml index 1889519ecd85..3d834d5922a6 100644 --- a/core/res/res/values-bn/strings.xml +++ b/core/res/res/values-bn/strings.xml @@ -95,6 +95,7 @@ "ভয়েসমেল মেসেজ" "ওয়াই-ফাই কলিং" "সিম কার্ডের স্টাটাস" + "উচ্চ প্রায়রিটি সিম স্ট্যাটাস" "পির TTY মোড FULL অনুরোধ করেছে" "পির TTY মোড HCO অনুরোধ করেছে" "পির TTY মোড VCO অনুরোধ করেছে" diff --git a/core/res/res/values-bs/strings.xml b/core/res/res/values-bs/strings.xml index cd0a1d5aaf7e..572b8eaec5eb 100644 --- a/core/res/res/values-bs/strings.xml +++ b/core/res/res/values-bs/strings.xml @@ -96,6 +96,7 @@ "Poruke govorne pošte" "Pozivanje putem WiFi-ja" "Status SIM-a" + "Status visokog prioriteta SIM-a" "Ravnopravni uređaj zatražio načina rada TTY FULL" "Ravnopravni uređaj zatražio načina rada TTY HCO" "Ravnopravni uređaj zatražio načina rada TTY VCO" diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml index b13f506da65f..f4b341c2283d 100644 --- a/core/res/res/values-ca/strings.xml +++ b/core/res/res/values-ca/strings.xml @@ -95,6 +95,7 @@ "Missatges de veu" "Trucades per Wi-Fi" "Estat de la SIM" + "Estat de la SIM d\'alta prioritat" "L\'altre dispositiu ha sol·licitat el mode TTY COMPLET." "L\'altre dispositiu ha sol·licitat el mode TTY HCO." "L\'altre dispositiu ha sol·licitat el mode TTY VCO." @@ -572,9 +573,9 @@ "Torna a registrar la teva cara." "Ja no es reconeix la teva cara. Torna-ho a provar." "És massa semblant; canvia de postura." - "Inclina el cap una mica menys." - "Inclina el cap una mica menys." - "No inclinis tant el cap." + "No giris tant el cap." + "No inclinis tant el cap." + "No giris tant el cap." "Suprimeix qualsevol cosa que amagui la teva cara." "Neteja la part superior de la pantalla, inclosa la barra negra" @@ -1482,7 +1483,7 @@ "Enrere" "Següent" "Omet" - "Cap coincidència" + "No s\'ha trobat cap coincidència" "Troba-ho a la pàgina" %d de %d diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml index a9413bdfaaba..d0d060723572 100644 --- a/core/res/res/values-cs/strings.xml +++ b/core/res/res/values-cs/strings.xml @@ -97,6 +97,7 @@ "Hlasové zprávy" "Volání přes Wi-Fi" "Stav SIM karty" + "Stav SIM karty: vysoká priorita" "Partner požádal o přechod na režim TTY FULL" "Partner požádal o přechod na režim TTY HCO" "Partner požádal o přechod na režim TTY VCO" diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml index 76dea804a645..ee5597f289bc 100644 --- a/core/res/res/values-da/strings.xml +++ b/core/res/res/values-da/strings.xml @@ -95,6 +95,7 @@ "Talebeskeder" "Wi-Fi-opkald" "SIM-status" + "SIM-kort med høj prioritet" "Den anden enhed har skiftet til FULD TTY-tilstand" "Den anden enhed har skiftet til TTY-tilstanden HCO" "Den anden enhed har skiftet til TTY-tilstanden VCO" diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml index 754b01965ed2..ebca5d4faf2e 100644 --- a/core/res/res/values-de/strings.xml +++ b/core/res/res/values-de/strings.xml @@ -95,6 +95,7 @@ "Mailboxnachrichten" "WLAN-Telefonie" "Status der SIM-Karte" + "Benachrichtigungen mit hoher Priorität von der SIM-Karte" "Peer hat TTY-Modus \"Vollständig\" angefordert." "Peer hat TTY-Modus \"HCO\" angefordert." "Peer hat TTY-Modus \"VC\" angefordert." diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml index 6d1306f4102f..d74bc5951d5e 100644 --- a/core/res/res/values-el/strings.xml +++ b/core/res/res/values-el/strings.xml @@ -95,6 +95,7 @@ "Μηνύματα αυτόματου τηλεφωνητή" "Κλήση Wi-Fi" "Κατάσταση SIM" + "Κατάσταση SIM υψηλής προτεραιότητας" "Αίτημα peer για TTY ΠΛΗΡΗΣ Λειτουργία" "Αίτημα peer για TTY Λειτουργία HCO" "Αίτημα peer για TTY Λειτουργία VCO" diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml index c2a22ad2c466..f5a5698b5b61 100644 --- a/core/res/res/values-en-rAU/strings.xml +++ b/core/res/res/values-en-rAU/strings.xml @@ -95,6 +95,7 @@ "Voicemail messages" "Wi-Fi Calling" "SIM status" + "High priority SIM status" "Peer requested TTY Mode FULL" "Peer requested TTY Mode HCO" "Peer requested TTY Mode VCO" diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml index c2a22ad2c466..f5a5698b5b61 100644 --- a/core/res/res/values-en-rGB/strings.xml +++ b/core/res/res/values-en-rGB/strings.xml @@ -95,6 +95,7 @@ "Voicemail messages" "Wi-Fi Calling" "SIM status" + "High priority SIM status" "Peer requested TTY Mode FULL" "Peer requested TTY Mode HCO" "Peer requested TTY Mode VCO" diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml index c2a22ad2c466..f5a5698b5b61 100644 --- a/core/res/res/values-en-rIN/strings.xml +++ b/core/res/res/values-en-rIN/strings.xml @@ -95,6 +95,7 @@ "Voicemail messages" "Wi-Fi Calling" "SIM status" + "High priority SIM status" "Peer requested TTY Mode FULL" "Peer requested TTY Mode HCO" "Peer requested TTY Mode VCO" diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml index 5128f67bfb2c..7a22a8e454a1 100644 --- a/core/res/res/values-es-rUS/strings.xml +++ b/core/res/res/values-es-rUS/strings.xml @@ -95,6 +95,7 @@ "Mensajes del buzón de voz" "Llamada con Wi-Fi" "Estado de SIM" + "Notificaciones de prioridad alta sobre el estado de la SIM" "El dispositivo del mismo nivel solicitó el modo TTY FULL." "El dispositivo del mismo nivel solicitó el modo TTY HCO." "El dispositivo del mismo nivel solicitó el modo TTY VCO." diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml index 608a8515bcc3..ae7f38a18986 100644 --- a/core/res/res/values-es/strings.xml +++ b/core/res/res/values-es/strings.xml @@ -95,6 +95,7 @@ "Mensajes de voz" "Llamada por Wi-Fi" "Estado de la tarjeta SIM" + "Estado de SIM de alta prioridad" "Un dispositivo ha solicitado el modo TTY FULL" "Un dispositivo ha solicitado el modo TTY HCO" "Un dispositivo ha solicitado el modo TTY VCO" diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml index a78178c8fbf6..d3404a646301 100644 --- a/core/res/res/values-et/strings.xml +++ b/core/res/res/values-et/strings.xml @@ -95,6 +95,7 @@ "Kõnepostisõnumid" "WiFi-kõned" "SIM-kaardi olek" + "Kõrge prioriteediga SIM-i olek" "Partner taotles TTY-režiimi TÄIELIK" "Partner taotles TTY-režiimi HCO" "Partner taotles TTY-režiimi VCO" diff --git a/core/res/res/values-eu/strings.xml b/core/res/res/values-eu/strings.xml index fb79545da1ce..a2a1b37118ec 100644 --- a/core/res/res/values-eu/strings.xml +++ b/core/res/res/values-eu/strings.xml @@ -95,6 +95,7 @@ "Erantzungailuko mezuak" "Wi-Fi bidezko deiak" "SIMaren egoera" + "SIM txartelaren lehentasun handiko jakinarazpenak" "Beste gailuak TTY osagarria FULL moduan erabiltzea eskatu du" "Beste gailuak TTY osagarria HCO moduan erabiltzea eskatu du" "Beste gailuak TTY osagarria VCO moduan erabiltzea eskatu du" diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml index f79628756a02..7d86be9a8ecd 100644 --- a/core/res/res/values-fa/strings.xml +++ b/core/res/res/values-fa/strings.xml @@ -95,6 +95,7 @@ "پیام‌های پست صوتی" "‏تماس ازطریق Wi-Fi" "وضعیت سیم‌کارت" + "وضعیت سیم با اولویت بالا" "‏دستگاه مرتبط درخواست TTY حالت FULL کرد" "‏دستگاه مرتبط درخواست TTY حالت HCO کرد" "‏دستگاه مرتبط درخواست TTY حالت VCO کرد" diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml index 0b86b22ccb1e..0a6132d10a85 100644 --- a/core/res/res/values-fi/strings.xml +++ b/core/res/res/values-fi/strings.xml @@ -95,6 +95,7 @@ "Vastaajaviestit" "Wi-Fi-puhelut" "SIM-kortin tila" + "Tärkeät SIM-ilmoitukset" "Toinen käyttäjä vaihtoi TTY-tilaksi TÄYSI" "Toinen käyttäjä vaihtoi TTY-tilaksi HCO" "Toinen käyttäjä vaihtoi TTY-tilaksi VCO" diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml index ca9121d470d3..8d12675b833d 100644 --- a/core/res/res/values-fr-rCA/strings.xml +++ b/core/res/res/values-fr-rCA/strings.xml @@ -95,6 +95,7 @@ "Messages vocaux" "Appels Wi-Fi" "État de la carte SIM" + "État SIM de priorité élevée" "Mode TTY COMPLET demandé par un pair" "Mode TTY HCO demandé par un pair" "Mode TTY VCO demandé par un pair" diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml index ab1a928c15ad..c1cac17bbb74 100644 --- a/core/res/res/values-fr/strings.xml +++ b/core/res/res/values-fr/strings.xml @@ -95,6 +95,7 @@ "Messages vocaux" "Appels Wi-Fi" "État de la carte SIM" + "Notifications prioritaires de la carte SIM" "Mode TTY demandé par l\'interlocuteur : COMPLET" "Mode TTY demandé par l\'interlocuteur : HCO" "Mode TTY demandé par l\'interlocuteur : VCO" diff --git a/core/res/res/values-gl/strings.xml b/core/res/res/values-gl/strings.xml index 7a1b2659f4a2..6bdf045de2b6 100644 --- a/core/res/res/values-gl/strings.xml +++ b/core/res/res/values-gl/strings.xml @@ -95,6 +95,7 @@ "Mensaxes de correo de voz" "Chamadas por wifi" "Estado da SIM" + "Estado da SIM con prioridade alta" "Outro dispositivo solicitou o modo TTY COMPLETO" "Outro dispositivo solicitou o modo TTY HCO" "Outro dispositivo solicitou o modo TTY VCO" diff --git a/core/res/res/values-gu/strings.xml b/core/res/res/values-gu/strings.xml index 880454a9cd5b..b2a9e781e2aa 100644 --- a/core/res/res/values-gu/strings.xml +++ b/core/res/res/values-gu/strings.xml @@ -95,6 +95,7 @@ "વૉઇસમેઇલ સંદેશા" "વાઇ-ફાઇ કૉલિંગ" "સિમનું સ્ટેટસ" + "સિમ કાર્ડનું ઉચ્ચ પ્રાધાન્યતાનું સ્ટેટસ" "પીઅરે TTY મોડ પૂર્ણની વિનંતી કરી" "પીઅરે TTY મોડ HCO ની વિનંતી કરી" "પીઅરે TTY મોડ VCO ની વિનંતી કરી" diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml index acd206f34668..e1bfe5eb2721 100644 --- a/core/res/res/values-hi/strings.xml +++ b/core/res/res/values-hi/strings.xml @@ -95,6 +95,7 @@ "वॉइसमेल संदेश" "वाई-फ़ाई कॉलिंग" "सिम की स्थिति" + "सिम की ज़रूरी सूचनाओं की स्थिति" "पीयर ने टेलीटाइपराइटर (TTY) मोड फ़ुल का अनुरोध किया" "पीयर ने टेलीटाइपराइटर (TTY) मोड एचसीओ (HCO) का अनुरोध किया" "पीयर ने टेलीटाइपराइटर (TTY) मोड वीसीओ (VCO) का अनुरोध किया" @@ -281,9 +282,9 @@ "<b>%1$s</b> को अपने संपर्क देखने की अनुमति देना चाहते हैं?" "जगह" "इस डिवाइस की जगह तक पहुंचने दें" - "<b>%1$s</b> को इस डिवाइस की \'जगह की जानकारी\' एक्सेस करने की अनुमति देना चाहते हैं?" + "<b>%1$s</b> को इस डिवाइस की \'जगह की जानकारी\' ऐक्सेस करने की अनुमति देना चाहते हैं?" "ऐप्लिकेशन, डिवाइस की जगह की जानकारी सिर्फ़ तभी देख पाएगा जब आप इसका इस्तेमाल कर रहे हों" - "क्या आप %1$s को हमेशा के लिए जगह की जानकारी एक्सेस करने की अनुमति देना चाहते हैं?" + "क्या आप %1$s को हमेशा के लिए जगह की जानकारी ऐक्सेस करने की अनुमति देना चाहते हैं?" "इस समय ऐप्लिकेशन, डिवाइस की \'जगह की जानकारी\' सिर्फ़ तभी देख पाएगा जब आप इसका इस्तेमाल कर रहे हों" "कैलेंडर" "अपने कैलेंडर को ऐक्सेस करने" @@ -293,7 +294,7 @@ "<b>%1$s</b> को एसएमएस (मैसेज) भेजने और देखने की अनुमति देना चाहते हैं?" "मेमोरी" "अपने डिवाइस पर मौजूद फ़ोटो, मीडिया और फ़ाइलें ऐक्सेस करने की" - "<b>%1$s</b> को डिवाइस पर मौजूद फ़ोटो, ऑडियो-वीडियो और फ़ाइलें एक्सेस करने की अनुमति दें?" + "<b>%1$s</b> को डिवाइस पर मौजूद फ़ोटो, ऑडियो-वीडियो और फ़ाइलें ऐक्सेस करने की अनुमति दें?" "माइक्रोफ़ोन" "ऑडियो रिकॉर्ड करें" "<b>%1$s</b> को ऑडियो रिकॉर्ड करने की अनुमति देना चाहते हैं?" @@ -305,7 +306,7 @@ "<b>%1$s</b> को फ़ोटो खींचने और वीडियो रिकॉर्ड करने की अनुमति देना चाहते हैं?" "कॉल लॉग" "कॉल लॉग की जानकारी देखना और उसमें बदलाव करना" - "<b>%1$s</b> को अपने काॅल लाॅग एक्सेस करने की मंज़ूरी देना चाहते हैं?" + "<b>%1$s</b> को अपने काॅल लाॅग ऐक्सेस करने की मंज़ूरी देना चाहते हैं?" "फ़ोन" "फ़ोन कॉल करने और उन्हें प्रबंधित करने की अनुमति दें" "<b>%1$s</b> को फ़ोन कॉल करने और उन्हें प्रबंधित करने की अनुमति दें?" @@ -354,7 +355,7 @@ "यह ऐप आपके फ़ोन पर सहेजे गए सभी मैसेज (एसएमएस) पढ़ सकता है." "टेक्सट मैसेज (WAP) पाएं" "एप्लिकेशन को WAP मैसेज पाने और प्रोसेस करने देता है. इस अनुमति में आपको भेजे गए मैसेज की निगरानी आपको दिए एप्लिकेशन को दिखाए बिना करने और हटाने की क्षमता शामिल है." - "चल रहे ऐप्स पुनर्प्राप्त करें" + "चल रहे ऐप्स फिर से पाएं" "ऐप को माजूदा समय में और हाल ही में चल रही कार्रवाइयों के बारे में जानकारी निकालने देता है. इससे ऐप डिवाइस पर इस्तेमाल किए गए ऐप के बारे में जानकारी खोज सकता है." "प्रोफ़ाइल और डिवाइस स्‍वामियों को प्रबंधित करें" "ऐप्‍स को प्रोफ़ाइल स्‍वामी और डिवाइस स्‍वामी सेट करने दें." @@ -402,7 +403,7 @@ "ऐप को आने वाला कॉल (इनकमिंग) और किया जाने वाला कॉल (आउटगोइंग) डेटा सहित, आपके टैबलेट के कॉल लॉग को बदलने की अनुमति देता है. धोखा देने वाले ऐप, इसका इस्तेमाल करके आपके कॉल लॉग को मिटा या बदल सकते हैं." "ऐप को आने वाला कॉल (इनकमिंग) और किया जाने वाला कॉल (आउटगोइंग) डेटा सहित, आपके टीवी के कॉल लॉग को बदलने की अनुमति देता है. धोखा देने वाले ऐप, इसका इस्तेमाल करके आपके कॉल लॉग को मिटा या बदल सकते हैं." "ऐप को आने वाला कॉल (इनकमिंग) और किया जाने वाला कॉल (आउटगोइंग) डेटा सहित, आपके फ़ोन के कॉल लॉग को बदलने की अनुमति देता है. धोखा देने वाले ऐप, इसका इस्तेमाल करके आपके कॉल लॉग को मिटा या बदल सकते हैं." - "शरीर के लिए बने सेंसर (जैसे हृदय गति मॉनीटर) को एक्सेस करें" + "शरीर के लिए बने सेंसर (जैसे हृदय गति मॉनीटर) को ऐक्सेस करें" "ऐप को आपकी शारीरिक स्‍थिति, जैसे आपकी हृदय गति पर नज़र रखने वाले सेंसर के डेटा तक पहुंचने देती है." "कैलेंडर इवेंट और विवरण पढ़ें" "यह ऐप्लिकेशन आपके टैबलेट पर संग्रहित सभी कैलेंडर इवेंट पढ़ सकता है और आपका कैलेंडर डेटा शेयर कर सकता है या सहेज सकता है." @@ -414,14 +415,14 @@ "यह ऐप्लिकेशन आपके फ़ोन पर मौजूद कैलेंडर इवेंट जोड़, निकाल या बदल सकता है. यह ऐप्लिकेशन ऐसे संदेश भेज सकता है जो कैलेंडर स्वामियों से आए हुए लग सकते हैं या यह स्वामियों को सूचित किए बिना इवेंट में बदलाव कर सकता है." "कुछ और जगह बताने वाले आदेशों तक पहुंच" "ऐप को कुछ और जगह की जानकारी देने वाले आदेशों की पहुंच पाने देता है. इससे ऐप जीपीएस या जगह की जानकारी देने वाले दूसरे स्रोतों के काम में रोक-टोक कर सकता है." - "ऐप्लिकेशन \'जगह की सटीक जानकारी\' सिर्फ़ सामने खुली होने पर एक्सेस करे" + "ऐप्लिकेशन \'जगह की सटीक जानकारी\' सिर्फ़ सामने खुली होने पर ऐक्सेस करे" "यह ऐप्लिकेशन सिर्फ़ तब आपकी \'जगह की सटीक जानकारी\' का इस्तेमाल कर सकता है जब यह स्क्रीन पर दिखाई दे रहा हो. यह ज़रूरी है कि \'जगह की जानकारी\' वाली ये सेवाएं आपके फ़ोन में मौजूद हों और चालू की गई हों ताकि ऐप्लिकेशन उनका इस्तेमाल कर पाए. ऐसा करने से ज़्यादा बैटरी खर्च हो सकती है." - "स्क्रीन पर दिखाई देते समय \'जगह की अनुमानित जानकारी\' (नेटवर्क-आधारित) एक्सेस करें" + "स्क्रीन पर दिखाई देते समय \'जगह की अनुमानित जानकारी\' (नेटवर्क-आधारित) ऐक्सेस करें" "यह ऐप्लिकेशन सेल टावर और वाई-फ़ाई नेटवर्क जैसे नेटवर्क स्रोतों के आधार पर आपकी जगह का पता लगा सकता है, लेकिन सिर्फ़ तब, जब ऐप्लिकेशन स्क्रीन पर दिखाई दे रहा हो. यह ज़रूरी है कि \'जगह की जानकारी\' वाली ये सेवाएं आपके टैबलेट में मौजूद हों और चालू की गई हों ताकि ऐप्लिकेशन उनका इस्तेमाल कर पाए." "यह ऐप्लिकेशन सेल टावर और वाई-फ़ाई नेटवर्क जैसे नेटवर्क स्रोतों के आधार पर आपकी जगह का पता लगा सकता है, लेकिन सिर्फ़ तब, जब ऐप्लिकेशन स्क्रीन पर दिखाई दे रहा हो. यह ज़रूरी है कि \'जगह की जानकारी\' वाली ये सेवाएं आपके टीवी पर मौजूद हों और चालू की गई हों ताकि ऐप्लिकेशन उनका इस्तेमाल कर पाए." "यह ऐप्लिकेशन सेल टावर और वाई-फ़ाई नेटवर्क जैसे नेटवर्क स्रोतों के आधार पर आपकी जगह का पता लगा सकता है, लेकिन सिर्फ़ तब, जब ऐप्लिकेशन स्क्रीन पर दिखाई दे रहा हो. यह ज़रूरी है कि \'जगह की जानकारी\' वाली ये सेवाएं आपके फ़ोन में मौजूद हों और चालू की गई हों ताकि ऐप्लिकेशन उनका इस्तेमाल कर पाए." - "बैकग्राउंड में जगह की जानकारी एक्सेस करना" - "अनुमानित या बिल्कुल सही जगह की जानकारी का एक्सेस करने की अनुमति अलग से दिए जाने पर, बैकग्राउंड में चलने के दौरान ऐप्लिकेशन आपकी जगह की जानकारी एक्सेस कर सकता है." + "बैकग्राउंड में जगह की जानकारी ऐक्सेस करना" + "अनुमानित या बिल्कुल सही जगह की जानकारी का ऐक्सेस करने की अनुमति अलग से दिए जाने पर, बैकग्राउंड में चलने के दौरान ऐप्लिकेशन आपकी जगह की जानकारी ऐक्सेस कर सकता है." "अपनी ऑडियो सेटिंग बदलें" "ऐप्स को वैश्विक ऑडियो सेटिंग, जैसे वॉल्‍यूम और कौन-सा स्पीकर आउटपुट के लिए उपयोग किया गया, संशोधित करने देता है." "ऑडियो रिकॉर्ड करने" @@ -450,7 +451,7 @@ "ऐप को डिवाइस के फ़ोन नंबर का इस्तेमाल करने देती है." "टैबलेट को सोने (कम बैटरी मोड) से रोकें" "टीवी को सोने (कम बैटरी मोड) से रोकें" - "टीवी को सोने (कम बैटरी मोड) से रोकें" + "फ़ोन को सोने (कम बैटरी मोड) से रोकें" "ऐप्स को टैबलेट को प्रयोग में नहीं हो जाने से रोकता है." "ऐप को टीवी को सोने (कम बैटरी मोड) से रोकने की अनुमति देता है." "ऐप्स को फ़ोन को प्रयोग में नहीं होने से रोकता है." @@ -468,7 +469,7 @@ "ऐप्स को टैबलेट का समय क्षेत्र बदलने देता है." "डिवाइस पर खाते ढूंढें" "एप्लिकेशन को टैबलेट से ज्ञात खातों की सूची पाने देता है. इसमें वे खाते शामिल हो सकते हैं जिन्‍हें इंस्‍टॉल किए गए एप्लिकेशन ने बनाया है." - "ऐप को टीवी द्वारा ज्ञात खातों की सूची प्राप्‍त करने देती है. इसमें इंस्‍टॉल किए गए ऐप्‍लिकेशन के द्वारा बनाए गए खाते शामिल हो सकते हैं." + "ऐप्लिकेशन को टीवी से ज्ञात खातों की सूची पाने देती है. इसमें इंस्‍टॉल किए गए ऐप्‍लिकेशन से बनाए गए खाते शामिल हो सकते हैं." "एप्लिकेशन को फ़ोन से ज्ञात खातों की सूची पाने देता है. इसमें वे खाते शामिल हो सकते हैं जिन्‍हें इंस्‍टॉल किए गए एप्लिकेशन ने बनाया है." "नेटवर्क कनेक्‍शन देखें" "ऐप को नेटवर्क कनेक्‍शन के बारे में जानकारी देखने देता है, जैसे कौन से नेटवर्क मौजूद हैं और कनेक्‍ट हैं." @@ -484,7 +485,7 @@ "ऐप्स को वाई-फ़ाई पहुंच बिंदुओं से कनेक्ट और डिसकनेक्ट करने और वाई-फ़ाई नेटवर्क के लिए डिवाइस कॉन्फ़िगरेशन में परिवर्तन करने देता है." "वाई-फ़ाई मल्‍टीकास्‍ट पाने को अनुमति दें" "एप्लिकेशन को वाई-फ़ाई नेटवर्क पर मल्टीकास्ट पते के इस्तेमाल से सिर्फ़ आपके टैबलेट पर ही नहीं, बल्कि सभी डिवाइस पर भेजे गए पैकेट पाने देता है. यह गैर-मल्टीकास्ट मोड से ज़्यादा पावर का इस्तेमाल करता है." - "ऐप को मल्‍टीकास्‍ट पतों का उपयोग करके ना केवल आपके टीवी को, बल्‍कि वाई-फ़ाई पर मौजूद सभी डिवाइसों को पैकेट भेजने और प्राप्‍त करने देती है. इसमें गैर-मल्‍टीकास्‍ट मोड की अपेक्षा ज़्यादा पावर का उपयोग होता है." + "ऐप्लिकेशन को मल्‍टीकास्‍ट पतों का उपयोग करके न सिर्फ़ आपके टीवी को, बल्‍कि वाई-फ़ाई पर मौजूद सभी डिवाइसों को पैकेट भेजने और पाने देती है. इसमें गैर-मल्‍टीकास्‍ट मोड की अपेक्षा ज़्यादा पावर का उपयोग होता है." "एप्लिकेशन को वाई-फ़ाई नेटवर्क पर मल्टीकास्ट पते के इस्तेमाल से सिर्फ़ आपके फ़ोन पर ही नहीं, बल्कि सभी डिवाइस पर भेजे गए पैकेट पाने देता है. यह गैर-मल्टीकास्ट मोड से ज़्यादा पावर का इस्तेमाल करता है." "ब्लूटूथ सेटिंग पर पहुंचें" "किसी ऐप्स को स्‍थानीय ब्लूटूथ टैबलेट कॉन्‍फ़िगर करने की और रिमोट डिवाइस के साथ खोजने और युग्‍मित करने देता है." @@ -503,7 +504,7 @@ "नियर फ़ील्‍ड कम्‍यूनिकेशन नियंत्रित करें" "ऐप्स को नियर फ़ील्ड कम्यूनिकेशन (NFC) टैग, कार्ड, और रीडर के साथ संचार करने देता है." "अपना स्‍क्रीन लॉक अक्षम करें" - "ऐप्स को कीलॉक और कोई भी संबद्ध पासवर्ड सुरक्षा अक्षम करने देता है. उदाहरण के लिए, इनकमिंग फ़ोन कॉल प्राप्त करते समय फ़ोन, कीलॉक को अक्षम कर देता है, फिर कॉल खत्म होने पर कीलॉक को फिर से सक्षम कर देता है." + "ऐप्स को कीलॉक और कोई भी संबद्ध पासवर्ड सुरक्षा बंद करने देता है. उदाहरण के लिए, इनकमिंग फ़ोन कॉल पाते समय फ़ोन, कीलॉक को बंद कर देता है, फिर कॉल खत्म होने पर कीलॉक को फिर से चालू कर देता है." "जानें कि स्क्रीन लॉक कितना मुश्किल बनाया गया है" "यह मंज़ूरी मिलने के बाद ऐप्लिकेशन जान पाता है कि स्क्रीन लॉक कितना मुश्किल (बहुत ज़्यादा, मध्यम, कम या बिल्कुल नहीं) है. इस स्तर से यह पता चलता है कि स्क्रीन लॉक कितना लंबा या किस तरह का है. ऐप्लिकेशन उपयोगकर्ताओं को यह सुझाव भी दे सकता है कि वे स्क्रीन लॉक को एक तय लेवल तक अपडेट करें. लेकिन उपयोगकर्ता इसे बेझिझक अनदेखा करके छोड़ सकते हैं. ध्यान दें कि स्क्रीन लॉक को सादे टेक्स्ट में सेव नहीं किया जाता है इसलिए ऐप्लिकेशन को सटीक पासवर्ड पता नहीं होता है." "बायोमीट्रिक हार्डवेयर इस्तेमाल करने दें" @@ -518,8 +519,8 @@ "इससे ऐप्लिकेशन को आपके वीडियो संग्रह में बदलाव करने की मंज़ूरी दी जाती है." "अपने फ़ोटो संग्रह में बदलाव करने की अनुमति दें" "इससे ऐप्लिकेशन को आपके फ़ोटो संग्रह में बदलाव करने की मंज़ूरी दी जाती है." - "अपने मीडिया संग्रह से जगह की जानकारी एक्सेस करने की अनुमति दें" - "इससे ऐप्लिकेशन को आपके मीडिया संग्रह से जगह की जानकारी एक्सेस करने की अनुमति दी जाती है." + "अपने मीडिया संग्रह से जगह की जानकारी ऐक्सेस करने की अनुमति दें" + "इससे ऐप्लिकेशन को आपके मीडिया संग्रह से जगह की जानकारी ऐक्सेस करने की अनुमति दी जाती है." "अपनी पहचान की पुष्टि करें" "बायोमेट्रिक हार्डवेयर उपलब्ध नहीं है" "प्रमाणीकरण रद्द किया गया" @@ -614,7 +615,7 @@ "इन-कॉल स्क्रीन से सहभागिता करें" "ऐप को यह नियंत्रित करने देती है कि उपयोगकर्ता को इन-कॉल स्क्रीन कब और कैसी दिखाई देती है." "टेलीफ़ोनी सेवाओं के साथ सहभागिता करें" - "कॉल करने/प्राप्‍त करने के लिए ऐप्स को टेलीफ़ोनी सेवा के साथ सहभागिता करने दें." + "कॉल करने/पाने के लिए ऐप्स को टेलीफ़ोनी सेवा के साथ सहभागिता करने दें." "इन कॉल उपयोगकर्ता अनुभव लें" "ऐप को इन कॉल उपयोगकर्ता अनुभव लेने देती है." "ऐतिहासिक नेटवर्क उपयोग पढें" @@ -637,7 +638,7 @@ "ऐप्स को नेटवर्क स्थितियों के अवलोकनों को सुनने देता है. सामान्य ऐप्स के लिए कभी भी आवश्यक नहीं होना चाहिए." "इनपुट डिवाइस कैलिब्रेशन बदलें" "ऐप्स को टच स्क्रीन के कैलिब्रेशन पैरामीटर को बदलने देती है. सामान्य ऐप्स के लिए कभी भी आवश्यक नहीं होना चाहिए." - "DRM प्रमाणपत्र एक्सेस करें" + "DRM प्रमाणपत्र ऐक्सेस करें" "ऐप्लिकेशन को DRM प्रमाणपत्रों का प्रावधान और उपयोग करने देती है. सामान्य ऐप्स के लिए कभी भी आवश्यकता नहीं होना चाहिए." "Android बीम ट्रांसफ़र की स्थिति पाएं" "इस ऐप को मौजूदा Android बीम ट्रांसफ़र के बारे में जानकारी पाने की अनुमति दें." @@ -1134,7 +1135,7 @@ "इसे इस्तेमाल करके लिंक खोलें" "%1$s इस्तेमाल करके लिंक खोलें" "%2$s इस्तेमाल करके %1$s लिंक खोलें" - "एक्सेस दें" + "ऐक्सेस दें" "इसके ज़रिये बदलाव करें" "%1$s की मदद से बदलाव करें" "बदलाव करें" @@ -1213,9 +1214,9 @@ "%1$s हीप डंप तैयार है" "हीप डंप (Java™ प्रोसेस मेमोरी का स्नैपशॉट) ले लिया गया है. शेयर करने के लिए टैप करें." "हीप डंप शेयर करें?" - "%1$s प्रक्रिया अपनी %2$s की मेमोरी सीमा पार कर चुकी है. एक हीप डंप इसके डेवलपर के साथ शेयर किए जाने के लिए तैयार है. सावधान रहें: इस हीप डंप में कोई ऐसी निजी जानकारी भी शामिल हो सकती है जिसका एक्सेस ऐप्लिकेशन के पास हो." - "%1$s प्रक्रिया अपनी %2$s की मेमोरी सीमा पार कर चुकी है. एक हीप डंप शेयर किए जाने के लिए तैयार है. सावधान रहें: इस हीप डंप में कोई ऐसी संवेदनशील निजी जानकारी भी शामिल हो सकती है जिसका एक्सेस प्रोसेस के पास हो. इसमें आपके टाइप किए गए शब्दों का डेटा भी शामिल है." - "%1$s प्रक्रिया का हीप डंप शेयर किए जाने के लिए तैयार है. सावधान रहें: इस हीप डंप में कोई ऐसी संवेदनशील निजी जानकारी शामिल हो सकती है जिसका एक्सेस प्रोसेस के पास हो. इसमें आपके टाइप किए गए शब्दों का डेटा भी शामिल है." + "%1$s प्रक्रिया अपनी %2$s की मेमोरी सीमा पार कर चुकी है. एक हीप डंप इसके डेवलपर के साथ शेयर किए जाने के लिए तैयार है. सावधान रहें: इस हीप डंप में कोई ऐसी निजी जानकारी भी शामिल हो सकती है जिसका ऐक्सेस ऐप्लिकेशन के पास हो." + "%1$s प्रक्रिया अपनी %2$s की मेमोरी सीमा पार कर चुकी है. एक हीप डंप शेयर किए जाने के लिए तैयार है. सावधान रहें: इस हीप डंप में कोई ऐसी संवेदनशील निजी जानकारी भी शामिल हो सकती है जिसका ऐक्सेस प्रोसेस के पास हो. इसमें आपके टाइप किए गए शब्दों का डेटा भी शामिल है." + "%1$s प्रक्रिया का हीप डंप शेयर किए जाने के लिए तैयार है. सावधान रहें: इस हीप डंप में कोई ऐसी संवेदनशील निजी जानकारी शामिल हो सकती है जिसका ऐक्सेस प्रोसेस के पास हो. इसमें आपके टाइप किए गए शब्दों का डेटा भी शामिल है." "मैसेज करने के लिए कोई कार्रवाई चुनें" "रिंगर वॉल्‍यूम" "मीडिया वॉल्‍यूम" @@ -1375,7 +1376,7 @@ "भाषा और लेआउट चुनने के लिए टैप करें" " ABCDEFGHIJKLMNOPQRSTUVWXYZ" " 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" - "दूसरे ऐप्लिकेशन के ऊपर दिखाए जाने का एक्सेस" + "दूसरे ऐप्लिकेशन के ऊपर दिखाए जाने का ऐक्सेस" "%s अन्य ऐप्लिकेशन के ऊपर दिखाई दे रहा है" "%s अन्य ऐप पर दिखाई दे रहा है" "अगर आप नहीं चाहते कि %s इस सुविधा का उपयोग करे, तो सेटिंग खोलने और उसे बंद करने के लिए टैप करें." diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml index 35853d6ecbea..aca3b2d8098e 100644 --- a/core/res/res/values-hr/strings.xml +++ b/core/res/res/values-hr/strings.xml @@ -96,6 +96,7 @@ "Poruke govorne pošte" "Wi-Fi pozivi" "Status SIM-a" + "Status SIM-a visokog prioriteta" "Način TTY FULL koji zahtijeva paralelni uređaj" "Način TTY HCO koji zahtijeva paralelni uređaj" "Način TTY VCO koji zahtijeva paralelni uređaj" diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml index 1fbc3fe02105..ff91dcf7a466 100644 --- a/core/res/res/values-hu/strings.xml +++ b/core/res/res/values-hu/strings.xml @@ -95,6 +95,7 @@ "Hangpostaüzenetek" "Wi-Fi-hívás" "SIM-kártya állapota" + "Elsődleges SIM-kártya állapota" "Partner által kért TTY-mód: FULL" "Partner által kért TTY-mód: HCO" "Partner által kért TTY-mód: VCO" diff --git a/core/res/res/values-hy/strings.xml b/core/res/res/values-hy/strings.xml index 3377d3b48785..7ee4fb609b47 100644 --- a/core/res/res/values-hy/strings.xml +++ b/core/res/res/values-hy/strings.xml @@ -95,6 +95,7 @@ "Ձայնային փոստի հաղորդագրություններ" "Զանգեր Wi-Fi-ի միջոցով" "SIM քարտի կարգավիճակը" + "SIM քարտի բարձր առաջնահերթության ծանուցումներ" "Բաժանորդի սարքում ընտրված է հեռատիպի ԲՈԼՈՐԸ ռեժիմը" "Բաժանորդի սարքում ընտրված է հեռատիպի HCO ռեժիմը" "Բաժանորդի սարքում ընտրված է հեռատիպի VCO ռեժիմը" diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml index 07671b2c758a..48bd1751a13d 100644 --- a/core/res/res/values-in/strings.xml +++ b/core/res/res/values-in/strings.xml @@ -95,6 +95,7 @@ "Notifikasi pesan suara" "Panggilan Wi-Fi" "Status SIM" + "Status SIM prioritas tinggi" "Rekan meminta Mode TTY PENUH" "Rekan meminta Mode TTY HCO" "Rekan meminta Mode TTY VCO" diff --git a/core/res/res/values-is/strings.xml b/core/res/res/values-is/strings.xml index c796dbffe527..b06a7f0714c6 100644 --- a/core/res/res/values-is/strings.xml +++ b/core/res/res/values-is/strings.xml @@ -95,6 +95,7 @@ "Talhólfsskilaboð" "Wi-Fi símtöl" "Staða SIM-korts" + "Áríðandi staða SIM-korts" "Jafningi bað um FULLA stillingu fjarrita" "Jafningi bað um HCO-stillingu fjarrita" "Jafningi bað um VCO-stillingu fjarrita" diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml index 45efc5ddf60b..98f5fb2a2cd3 100644 --- a/core/res/res/values-it/strings.xml +++ b/core/res/res/values-it/strings.xml @@ -95,6 +95,7 @@ "Messaggi vocali" "Chiamate Wi-Fi" "Stato SIM" + "Stato SIM con priorità elevata" "Peer ha richiesto la modalità TTY FULL" "Peer ha richiesto la modalità TTY HCO" "Peer ha richiesto la modalità TTY VCO" diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml index d792b5c6cede..00a37ebd6208 100644 --- a/core/res/res/values-iw/strings.xml +++ b/core/res/res/values-iw/strings.xml @@ -97,6 +97,7 @@ "הודעות קוליות" "‏שיחות Wi-Fi" "‏סטטוס SIM" + "‏סטטוס התראות SIM בעדיפות גבוהה" "‏העמית ביקש TTY במצב FULL" "‏העמית ביקש TTY במצב HCO" "‏העמית ביקש TTY במצב VCO" diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml index ebe2fc478395..7b1d8a5f9845 100644 --- a/core/res/res/values-ja/strings.xml +++ b/core/res/res/values-ja/strings.xml @@ -95,6 +95,7 @@ "ボイスメール メッセージ" "Wi-Fi 通話" "SIM のステータス" + "高優先度: SIM のステータス" "ピアから、TTY モードを FULL にするようリクエストされました" "ピアから、TTYモードをHCOにするようリクエストされました" "ピアから、TTYモードをVCOにするようリクエストされました" @@ -297,7 +298,7 @@ "マイク" "音声の録音" "音声の録音を「<b>%1$s</b>」に許可しますか?" - "運動データ" + "身体活動" "運動データにアクセス" "運動データへのアクセスを「<b>%1$s</b>」に許可しますか?" "カメラ" @@ -550,11 +551,11 @@ "指紋アイコン" - "フェイスアンロック ハードウェアの管理" + "顔認証ハードウェアの管理" "使用する顔テンプレートの追加や削除を行うメソッドの呼び出しをアプリに許可します。" - "フェイスアンロック ハードウェアの使用" - "フェイスアンロック ハードウェアを認証に使用することをアプリに許可します" - "フェイスアンロック" + "顔認証ハードウェアの使用" + "顔認証ハードウェアを認証に使用することをアプリに許可します" + "顔認証" "顔の再登録" "認識を改善するには、顔を再登録してください" "顔を認識できませんでした。もう一度お試しください。" @@ -580,15 +581,15 @@ "顔を確認できません。ハードウェアを利用できません。" - "フェイスアンロックをもう一度お試しください。" + "顔認証をもう一度お試しください。" "新しい顔データを保存できません。古いデータを削除してください。" "顔の操作をキャンセルしました。" - "フェイスアンロックはユーザーによりキャンセルされました。" + "顔認証はユーザーによりキャンセルされました。" "試行回数の上限です。後でもう一度お試しください。" - "試行回数が上限を超えました。フェイスアンロックを無効にしました。" + "試行回数が上限を超えたため、顔認証を無効にしました。" "顔を確認できません。もう一度お試しください。" - "フェイスアンロックを設定していません。" - "このデバイスでは、フェイスアンロックはご利用いただけません。" + "顔認証を設定していません。" + "このデバイスでは、顔認証はご利用いただけません。" "顔 %d" @@ -817,7 +818,7 @@ "もう一度お試しください" "もう一度お試しください" "すべての機能とデータを利用するにはロック解除" - "フェイスアンロックの最大試行回数を超えました" + "顔認証の最大試行回数を超えました" "SIMカードが挿入されていません" "タブレット内にSIMカードがありません。" "テレビにSIMカードが挿入されていません。" @@ -887,7 +888,7 @@ "ロック解除エリアを拡大します。" "スライドロックを解除します。" "パターンロックを解除します。" - "フェイスアンロックを行います。" + "顔認証を行います。" "PINロックを解除します。" "SIM PIN のロックを解除します。" "SIM PUK のロックを解除します。" diff --git a/core/res/res/values-ka/strings.xml b/core/res/res/values-ka/strings.xml index 9404f49f4fc6..896ad137dec9 100644 --- a/core/res/res/values-ka/strings.xml +++ b/core/res/res/values-ka/strings.xml @@ -95,6 +95,7 @@ "ხმოვანი ფოსტის შეტყობინებები" "დარეკვა Wi-Fi-ს მეშვეობით" "SIM სტატუსი" + "მაღალპრიორიტეტული SIM სტატუსი" "მოთხოვნილია კვანძი TTY რეჟიმი FULL" "მოთხოვნილია კვანძი TTY რეჟიმი HCO" "მოთხოვნილია კვანძი TTY რეჟიმი VCO" diff --git a/core/res/res/values-kk/strings.xml b/core/res/res/values-kk/strings.xml index c3ea2a909d14..801e3777e24c 100644 --- a/core/res/res/values-kk/strings.xml +++ b/core/res/res/values-kk/strings.xml @@ -95,6 +95,7 @@ "Дауыстық пошта хабарлары" "Wi-Fi қоңыраулары" "SIM күйі" + "SIM картасы туралы маңызды хабарландырулар" "Пир TTY режимі ТОЛЫҚ сұрады" "Пир TTY режимінің HCO сұрады" "Пир TTY режимінің VCO сұрады" diff --git a/core/res/res/values-km/strings.xml b/core/res/res/values-km/strings.xml index 28c097049b41..8bb03e061e7e 100644 --- a/core/res/res/values-km/strings.xml +++ b/core/res/res/values-km/strings.xml @@ -95,6 +95,7 @@ "សារ​ជា​សំឡេង" "ការហៅ​ទូរសព្ទ​តាម Wi-Fi" "ស្ថានភាព​ស៊ីម" + "ស្ថានភាពស៊ីម​ដែលមាន​អាទិភាព​ខ្ពស់" "ម៉ាស៊ីនកូនបានស្នើ TTY Mode FULL" "ម៉ាស៊ីនកូនបានស្នើ TTY Mode HCO" "ម៉ាស៊ីនកូនបានស្នើ TTY Mode VCO" diff --git a/core/res/res/values-kn/strings.xml b/core/res/res/values-kn/strings.xml index 0331f863cb63..8e5ea6af10d0 100644 --- a/core/res/res/values-kn/strings.xml +++ b/core/res/res/values-kn/strings.xml @@ -95,6 +95,7 @@ "ಧ್ವನಿಮೇಲ್ ಸಂದೇಶಗಳು" "ವೈ-ಫೈ ಕರೆ ಮಾಡುವಿಕೆ" "ಸಿಮ್‌ ಸ್ಥಿತಿ" + "ಹೆಚ್ಚಿನ ಆದ್ಯತೆಯ ಸಿಮ್ ಸ್ಥಿತಿ" "ಪೀರ್ ವಿನಂತಿಸಿಕೊಂಡ TTY ಮೋಡ್ ಪೂರ್ಣಗೊಂಡಿದೆ" "ಪೀರ್ ವಿನಂತಿಸಿಕೊಂಡ TTY ಮೋಡ್ HCO" "ಪೀರ್ ವಿನಂತಿಸಿಕೊಂಡ TTY ಮೋಡ್ VCO" diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml index c97f740c9da2..9d547ca682f3 100644 --- a/core/res/res/values-ko/strings.xml +++ b/core/res/res/values-ko/strings.xml @@ -95,6 +95,7 @@ "음성사서함 메시지" "Wi-Fi 통화" "SIM 상태" + "우선순위가 높은 SIM 상태" "피어가 TTY 모드 FULL을 요청했습니다." "피어가 TTY 모드 HCO를 요청했습니다." "피어가 TTY 모드 VCO를 요청했습니다." diff --git a/core/res/res/values-ky/strings.xml b/core/res/res/values-ky/strings.xml index e86ceb13f3d7..d3d1cd0f2953 100644 --- a/core/res/res/values-ky/strings.xml +++ b/core/res/res/values-ky/strings.xml @@ -95,6 +95,7 @@ "Үн почтасынын билдирүүлөрү" "Wi-Fi аркылуу чалуу" "SIM-картанын абалы" + "SIM картадагы өтө маанилүү билдирмелер" "Peer TTY режимин FULL кылууну суранды" "Peer TTY режимин HCO кылууну суранды" "Peer TTY режимин VCO кылууну суранды" diff --git a/core/res/res/values-lo/strings.xml b/core/res/res/values-lo/strings.xml index 17b015486e62..55747d0556f4 100644 --- a/core/res/res/values-lo/strings.xml +++ b/core/res/res/values-lo/strings.xml @@ -95,6 +95,7 @@ "ຂໍ້ຄວາມສຽງ" "ການ​ໂທ Wi-Fi" "ສະຖານະ SIM" + "ສະຖານະ SIM ຄວາມສຳຄັນສູງ" "ໂໝດ TTY ທີ່​ເພື່ອນ​ຂໍ​ນັ້ນ​ເຕັມ​ແລ້ວ" "ໂໝດ TTY ທີ່​ເພື່ອນ​ຂໍ HCO" "ໂໝດ TTY ທີ່​ເພື່ອນ​ຂໍ VCO" diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml index caf8e4fce3b3..f0ce8621142c 100644 --- a/core/res/res/values-lt/strings.xml +++ b/core/res/res/values-lt/strings.xml @@ -97,6 +97,7 @@ "Balso pašto pranešimai" "„Wi-Fi“ skambinimas" "SIM būsena" + "Didelio prioriteto SIM kortelės būsena" "Lygiavertis naudotojas pateikė užklausą dėl TTY režimo FULL" "Lygiavertis naudotojas pateikė užklausą dėl TTY režimo HCO" "Lygiavertis naudotojas pateikė užklausą dėl TTY režimo VCO" diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml index d71234ce1b66..bed07f26da80 100644 --- a/core/res/res/values-lv/strings.xml +++ b/core/res/res/values-lv/strings.xml @@ -96,6 +96,7 @@ "Balss pasta ziņojumi" "Wi-Fi zvani" "SIM kartes statuss" + "Augstas prioritātes SIM kartes statuss" "Vienādranga ierīce pieprasīja teksta tālruņa režīmu FULL" "Vienādranga ierīce pieprasīja teksta tālruņa režīmu HCO" "Vienādranga ierīce pieprasīja teksta tālruņa režīmu VCO" diff --git a/core/res/res/values-mk/strings.xml b/core/res/res/values-mk/strings.xml index d89fa9c03de0..530b0237e822 100644 --- a/core/res/res/values-mk/strings.xml +++ b/core/res/res/values-mk/strings.xml @@ -95,6 +95,7 @@ "Пораки од говорна пошта" "Повикување преку Wi-Fi" "Статус на SIM-картичка" + "Статус на SIM-известувања со висок приоритет" "Рамноправен уред го побара режимот на TTY „FULL“" "Рамноправен уред го побара режимот на TTY „HCO“" "Рамноправен уред го побара режимот на TTY „VCO“" diff --git a/core/res/res/values-ml/strings.xml b/core/res/res/values-ml/strings.xml index 819d3f7e93ea..9ad8b1341567 100644 --- a/core/res/res/values-ml/strings.xml +++ b/core/res/res/values-ml/strings.xml @@ -95,6 +95,7 @@ "വോയ്‌സ്‌മെയിൽ സന്ദേശങ്ങൾ" "വൈഫൈ കോളിംഗ്" "സിം നില" + "ഉയർന്ന മുൻഗണനയുള്ള സിം നില" "പിയർ അഭ്യർത്ഥിച്ച TTY മോഡ് \'ഫുൾ\'" "പിയർ അഭ്യർത്ഥിച്ച TTY മോഡ് HCO" "പിയർ അഭ്യർത്ഥിച്ച TTY മോഡ് VCO" diff --git a/core/res/res/values-mn/strings.xml b/core/res/res/values-mn/strings.xml index dd5dc11118b9..d5f358b20997 100644 --- a/core/res/res/values-mn/strings.xml +++ b/core/res/res/values-mn/strings.xml @@ -95,6 +95,7 @@ "Дуут шуудангийн мессеж" "Wi-Fi дуудлага" "SIM статус" + "Өндөр ач холбогдолтой SIM-н статус" "Хандлагын цэгт хүсэлт тавьсан TTY Mode FULL" "Хандлагын цэгт хүсэлт тавьсан TTY Mode HCO" "Хандлагын цэгт хүсэлт тавьсан TTY Mode VCO" diff --git a/core/res/res/values-mr/strings.xml b/core/res/res/values-mr/strings.xml index f5cf1f576bab..faafeb70df32 100644 --- a/core/res/res/values-mr/strings.xml +++ b/core/res/res/values-mr/strings.xml @@ -95,6 +95,7 @@ "व्हॉइसमेल मेसेज" "वाय-फाय कॉलिंग" "सिम स्थिती" + "उच्च प्राधान्य सिम स्थिती" "समवयस्क व्यक्तीने TTY मोड पूर्ण ची विनंती केली" "समवयस्क व्यक्तीने TTY मोड HCO ची विनंती केली" "समवयस्क व्यक्तीने TTY मोड VCO ची विनंती केली" @@ -301,8 +302,8 @@ "शारीरिक अ‍ॅक्टिव्हिटी अ‍ॅक्सेस करा" "<b>%1$s</b> ला तुमची शारीरिक अ‍ॅक्टिव्हिटी अ‍ॅक्सेस करण्याची अनुमती द्यायची का?" "कॅमेरा" - "चित्रे घेण्याची आणि व्हिडिओ रेकॉर्ड" - "<b>%1$s</b> ला फोटो घेऊ आणि व्हिडिओ रेकॉर्ड करू द्यायचे?" + "चित्रे काढण्याची आणि व्हिडिओ रेकॉर्ड करण्याची" + "<b>%1$s</b> ला फोटो काढू आणि व्हिडिओ रेकॉर्ड करू द्यायचे?" "कॉल लॉग" "फोन कॉल लॉग वाचा आणि लिहा" "<b>%1$s</b> ला तुमचे फोन कॉल लॉग अ‍ॅक्सेस करण्याची अनुमती द्यायची का?" diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml index b5f0ef58c634..b6743f4b257a 100644 --- a/core/res/res/values-ms/strings.xml +++ b/core/res/res/values-ms/strings.xml @@ -95,6 +95,7 @@ "Mesej mel suara" "Panggilan Wi-Fi" "Status SIM" + "Status SIM keutamaan tinggi" "Rakan meminta Mod TTY PENUH" "Rakan meminta Mod TTY HCO" "Rakan meminta Mod TTY VCO" diff --git a/core/res/res/values-my/strings.xml b/core/res/res/values-my/strings.xml index 1387725c50c6..ad5aaca1a2b9 100644 --- a/core/res/res/values-my/strings.xml +++ b/core/res/res/values-my/strings.xml @@ -95,6 +95,7 @@ "အသံမေးလ် မက်ဆေ့ဂျ်များ" "Wi-Fi ခေါ်ဆိုမှု" "ဆင်းမ်ကဒ် အခြေအနေ" + "အထူးဦးစားပေး ဆင်းမ်ကတ်အခြေအနေ" "အခြားစက်မှ TTY မုဒ် FULL ပြုရန် တောင်းဆို၏" "အခြားစက်မှ TTY မုဒ် HCO ပြုရန် တောင်းဆို၏" "TTY မုဒ် VCO ပြုရန် အခြားစက်မှ တောင်းဆို၏" diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml index 3a3a999b7bc2..c6d16987c005 100644 --- a/core/res/res/values-nb/strings.xml +++ b/core/res/res/values-nb/strings.xml @@ -95,6 +95,7 @@ "Talepostmeldinger" "Wi-Fi-anrop" "SIM-status" + "SIM-status er satt til høy prioritet" "Motpart ba om TTY-modus FULL" "Motpart ba om TTY-modus HCO" "Motpart ba om TTY-modus VCO" diff --git a/core/res/res/values-ne/strings.xml b/core/res/res/values-ne/strings.xml index 7b0fbfc890d9..47392328f27f 100644 --- a/core/res/res/values-ne/strings.xml +++ b/core/res/res/values-ne/strings.xml @@ -95,6 +95,7 @@ "भ्वाइस मेल सन्देशहरू" "Wi-Fi कल" "SIM को स्थिति" + "उच्च प्राथमिकता रहेको SIM को स्थिति" "सहकर्मी अनुरोध गरियो। TTY मोड पूर्ण" "सहकर्मी अनुरोध गरियो। TTY मोड HCO" "सहकर्मी अनुरोध गरियो। TTY मोड VCO" diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml index cadbbfecbec0..fe53b2387f8c 100644 --- a/core/res/res/values-nl/strings.xml +++ b/core/res/res/values-nl/strings.xml @@ -95,6 +95,7 @@ "Voicemailberichten" "Bellen via wifi" "Simkaartstatus" + "Meldingen met hoge prioriteit voor de simkaartstatus" "Door peer aangevraagde TTY-modus VOL" "Door peer aangevraagde TTY-modus HCO" "Door peer aangevraagde TTY-modus VCO" diff --git a/core/res/res/values-or/strings.xml b/core/res/res/values-or/strings.xml index 176d01c0273a..ce40db3e71a8 100644 --- a/core/res/res/values-or/strings.xml +++ b/core/res/res/values-or/strings.xml @@ -95,6 +95,7 @@ "ଭଏସମେଲ୍‍ ମେସେଜ୍‍" "ୱାଇ-ଫାଇ କଲିଙ୍ଗ" "SIM ଷ୍ଟାଟସ୍" + "ଉଚ୍ଚ ପ୍ରାଥମିକତା SIM ସ୍ଥିତି" "ପୀଆର୍‌ ଅନୁରୋଧ କରିଥିବା TTY ମୋଡ୍‍ FULL ଅଟେ" "ପୀଅର୍‌ ଅନୁରୋଧ କରିଥିବା TTY ମୋଡ୍‍ HCO ଅଟେ" "ପୀଅର୍‌ ଅନୁରୋଧ କରିଥିବା TTY ମୋଡ୍‍ VCO ଅଟେ" @@ -1658,7 +1659,7 @@ "ଆପଣଙ୍କ ଅନଲକ୍‍ ପାଟର୍ନକୁ ଆପଣ %1$d ଥର ଭୁଲ ଭାବେ ଅଙ୍କନ କରିଛନ୍ତି। ଆଉ %2$dଟି ଭୁଲ ପ୍ରୟାସ ପରେ ଏକ ଇମେଲ୍‍ ଆକାଉଣ୍ଟ ବ୍ୟବହାର କରି ନିଜ ଫୋନ୍‌କୁ ଅନଲକ୍‌ କରିବା ପାଇଁ କୁହାଯିବ।\n\n%3$d ସେକେଣ୍ଡ ପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।" " — " "ବାହାର କରନ୍ତୁ" - "ମାତ୍ରା ବଢ଼ାଇ ସୁପାରିସ ସ୍ତର ବଢ଼ାଉଛନ୍ତି? \n\n ଲମ୍ବା ସମୟ ପର୍ଯ୍ୟନ୍ତ ଉଚ୍ଚ ଶବ୍ଦରେ ଶୁଣିଲେ ଆପଣଙ୍କ ଶ୍ରବଣ ଶକ୍ତି ଖରାପ ହୋଇପାରେ।" + "ମାତ୍ରା ବଢ଼ାଇ ସୁପାରିଶ ସ୍ତର ବଢ଼ାଉଛନ୍ତି? \n\n ଲମ୍ବା ସମୟ ପର୍ଯ୍ୟନ୍ତ ଉଚ୍ଚ ଶବ୍ଦରେ ଶୁଣିଲେ ଆପଣଙ୍କ ଶ୍ରବଣ ଶକ୍ତି ଖରାପ ହୋଇପାରେ।" "ଆକ୍ସେସବିଲିଟି ଶର୍ଟକଟ୍‍ ବ୍ୟବହାର କରିବେ?" "ସର୍ଟକଟ୍‌ ଅନ୍‌ ଥିବା ବେଳେ, ଉଭୟ ଭଲ୍ୟୁମ୍‍ ବଟନ୍‍ 3 ସେକେଣ୍ଡ ପାଇଁ ଦବାଇବା ଦ୍ୱାରା ଆକ୍ସେସବିଲିଟି ବୈଶିଷ୍ଟ ଆରମ୍ଭ ହେବ।\n\n ସମ୍ପ୍ରତି ଆକ୍ସେସବିଲିଟି ବୈଶିଷ୍ଟ୍ୟ:\n %1$s\n\n ସେଟିଙ୍ଗ ଓ ଆକ୍ସେସବିଲିଟିରେ ଆପଣ ବୈଶିଷ୍ଟ୍ୟ ବଦଳାଇ ପାରିବେ।" "ଶର୍ଟକଟ୍‍ ବନ୍ଦ କରନ୍ତୁ" diff --git a/core/res/res/values-pa/strings.xml b/core/res/res/values-pa/strings.xml index 7262dddbc92b..591ba0a9fcc3 100644 --- a/core/res/res/values-pa/strings.xml +++ b/core/res/res/values-pa/strings.xml @@ -95,6 +95,7 @@ "ਵੌਇਸਮੇਲ ਸੁਨੇਹੇ" "ਵਾਈ-ਫਾਈ ਕਾਲਿੰਗ" "ਸਿਮ ਅਵਸਥਾ" + "ਉੱਚ ਤਰਜੀਹੀ ਸਿਮ ਸਥਿਤੀ" "ਪੀਅਰ ਨੇ TTY Mode FULL ਦੀ ਬੇਨਤੀ ਕੀਤੀ" "ਪੀਅਰ ਨੇ TTY Mode HCO ਦੀ ਬੇਨਤੀ ਕੀਤੀ" "ਪੀਅਰ ਨੇ TTY Mode VCO ਦੀ ਬੇਨਤੀ ਕੀਤੀ" diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml index 4937ced8a16b..302f541e3f55 100644 --- a/core/res/res/values-pl/strings.xml +++ b/core/res/res/values-pl/strings.xml @@ -97,6 +97,7 @@ "Wiadomości poczty głosowej" "Połączenia przez Wi-Fi" "Stan karty SIM" + "Stan karty SIM – wysoki priorytet" "Drugie urządzenie zażądało trybu „TTY pełny”" "Drugie urządzenie zażądało trybu „TTY HCO”" "Drugie urządzenie zażądało trybu „TTY VCO”" diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml index a5068390066e..d0e1bc95e048 100644 --- a/core/res/res/values-pt-rBR/strings.xml +++ b/core/res/res/values-pt-rBR/strings.xml @@ -95,6 +95,7 @@ "Mensagens do correio de voz" "Chamadas por Wi-Fi" "Status do chip" + "Status de prioridade alta do chip" "TTD modo COMPLETO solicitado" "TTD modo HCO solicitado" "TTD modo VCO solicitado" diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml index 26f92c98f0d0..a4cbc3e13fed 100644 --- a/core/res/res/values-pt-rPT/strings.xml +++ b/core/res/res/values-pt-rPT/strings.xml @@ -95,6 +95,7 @@ "Mensagens de correio de voz" "Chamadas Wi-Fi" "Estado do SIM" + "Estado do SIM de elevada prioridade" "O par solicitou o modo COMPLETO de teletipo" "O par solicitou o modo HCO de teletipo" "O par solicitou o modo VCO de teletipo" diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml index a5068390066e..d0e1bc95e048 100644 --- a/core/res/res/values-pt/strings.xml +++ b/core/res/res/values-pt/strings.xml @@ -95,6 +95,7 @@ "Mensagens do correio de voz" "Chamadas por Wi-Fi" "Status do chip" + "Status de prioridade alta do chip" "TTD modo COMPLETO solicitado" "TTD modo HCO solicitado" "TTD modo VCO solicitado" diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml index b29367f100f6..245864cb4cb5 100644 --- a/core/res/res/values-ro/strings.xml +++ b/core/res/res/values-ro/strings.xml @@ -96,6 +96,7 @@ "Mesaje din mesageria vocală" "Apelare prin Wi-Fi" "Starea cardului SIM" + "Notificări de la SIM cu prioritate ridicată" "Cealaltă persoană a solicitat modul TTY cu setarea COMPLET" "Cealaltă persoană a solicitat modul TTY cu setarea HCO" "Cealaltă persoană a solicitat modul TTY cu setarea VCO" diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml index b363b33f59a9..29c2e124f4b8 100644 --- a/core/res/res/values-ru/strings.xml +++ b/core/res/res/values-ru/strings.xml @@ -97,6 +97,7 @@ "Голосовые сообщения" "Звонки по Wi-Fi" "Статус SIM-карты" + "Важные уведомления SIM-карты" "На устройстве абонента выбран режим телетайпа \"ВСЕ\"" "На устройстве абонента выбран режим телетайпа HCO" "На устройстве абонента выбран режим телетайпа VCO" diff --git a/core/res/res/values-si/strings.xml b/core/res/res/values-si/strings.xml index 18a3158815ec..65b899c10754 100644 --- a/core/res/res/values-si/strings.xml +++ b/core/res/res/values-si/strings.xml @@ -95,6 +95,7 @@ "හඬ තැපැල් පණිවිඩ" "Wi-Fi ඇමතීම" "SIM තත්ත්වය" + "ඉහළ ප්‍රමුඛතා SIM තත්ත්වය" "සම ඉල්ලීම් කළ TTY ප්‍රකාරය පූර්ණයි" "සම ඉල්ලීම් කළ TTY ප්‍රකාරය HCO" "සම ඉල්ලීම් කළ TTY ප්‍රකාරය VCO" diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml index 50b591aa1385..ee04effced2b 100644 --- a/core/res/res/values-sk/strings.xml +++ b/core/res/res/values-sk/strings.xml @@ -97,6 +97,7 @@ "Správy hlasovej schránky" "Volanie cez Wi‑Fi" "Stav SIM karty" + "Stav SIM karty: vysoká priorita" "Používateľ, s ktorým komunikujete, požiadal o režim FULL textového telefónu" "Používateľ, s ktorým komunikujete, požiadal o režim HCO textového telefónu" "Používateľ, s ktorým komunikujete, požiadal o režim VCO textového telefónu" diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml index af26aae6404c..bf5e88b1b2be 100644 --- a/core/res/res/values-sl/strings.xml +++ b/core/res/res/values-sl/strings.xml @@ -97,6 +97,7 @@ "Sporočila v odzivniku" "Klicanje prek Wi-Fi-ja" "Stanje kartice SIM" + "Stanje kartice SIM z visoko stopnjo prednosti" "Enakovredna naprava je zahtevala način TTY FULL" "Enakovredna naprava je zahtevala način TTY HCO" "Enakovredna naprava je zahtevala način TTY VCO" diff --git a/core/res/res/values-sq/strings.xml b/core/res/res/values-sq/strings.xml index fc4fd4fa13b3..77a83abb2bc8 100644 --- a/core/res/res/values-sq/strings.xml +++ b/core/res/res/values-sq/strings.xml @@ -95,6 +95,7 @@ "Mesazhet e postës zanore" "Telefonata me Wi-Fi" "Statusi i kartës SIM" + "Statusi i kartës SIM me përparësi të lartë" "Homologu yt kërkoi modalitet \"TTY\" të plotë" "Homologu kërkoi modalitet \"TTY\" të llojit \"HCO\"" "Homologu yt kërkoi modalitet \"TTY\" të llojit \"VCO\"" diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml index a8dc15e40856..a8a4c5c13d5e 100644 --- a/core/res/res/values-sr/strings.xml +++ b/core/res/res/values-sr/strings.xml @@ -96,6 +96,7 @@ "Поруке говорне поште" "Позивање преко Wi-Fi мреже" "Статус SIM-а" + "Обавештења SIM картице са статусом „висок приоритет“" "Корисник захтева ПОТПУН режим TTY" "Корисник захтева ПРЕНОС ЗВУКА за режим TTY" "Корисник захтева ПРЕНОС ГЛАСА за режим TTY" diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml index c728bcc580f2..12143f490cd0 100644 --- a/core/res/res/values-sv/strings.xml +++ b/core/res/res/values-sv/strings.xml @@ -95,6 +95,7 @@ "Röstmeddelanden" "Wi-Fi-samtal" "Status för SIM-kort" + "SIM-aviseringar med hög prioritet" "Peer-enheten begärde texttelefonläget FULL" "Peer-enheten begärde texttelefonläget HCO" "Peer-enheten begärde texttelefonläget VCO" diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml index 9f18c45a3b2c..cded9f1097af 100644 --- a/core/res/res/values-sw/strings.xml +++ b/core/res/res/values-sw/strings.xml @@ -95,6 +95,7 @@ "Ujumbe wa sauti" "Kupiga simu kupitia Wi-Fi" "Hali ya SIM" + "Hali ya SIM ya kipaumbele cha juu" "Hali ya TTY iliyoombwa na mtandao mwenza KAMILI" "Hali ya TTY iliyoombwa na mtandao mwenza HCO" "Hali ya TTY iliyoombwa na mtandao mwenza VCO" @@ -363,7 +364,7 @@ "Wezesha mtindo wa gari" "Inaruhusu programu kuwawezesha mtindo wa gari." "funga programu zingine" - "Inaruhusu programu kukamilisha michakato ya usuli ya programu nyingine. Hii inaweza kusababisha programu nyingine kukoma kufanyakazi." + "Huruhusu programu kukamilisha michakato ya chinichini ya programu nyingine. Hii inaweza kusababisha programu nyingine kuacha kufanya kazi." "Programu hii inaweza kuonekana juu ya programu zingine" "Programu hii inaweza kuonekana juu ya programu zingine au sehemu zingine za skrini. Hii huenda ikaathiri matumizi ya kawaida ya programu na kubadilisha jinsi ambavyo programu zingine zinavyoonekana." "tumia chini chini" diff --git a/core/res/res/values-ta/strings.xml b/core/res/res/values-ta/strings.xml index 5c0156e33291..fb815de04adf 100644 --- a/core/res/res/values-ta/strings.xml +++ b/core/res/res/values-ta/strings.xml @@ -95,6 +95,7 @@ "குரலஞ்சல் செய்திகள்" "வைஃபை அழைப்பு" "சிம் நிலை" + "அதிக முன்னுரிமையுடைய சிம்மின் நிலை" "TTY Mode FULLஐ இணைச் செயல்பாடு கோரியது" "TTY Mode HCOஐ இணைச் செயல்பாடு கோரியது" "TTY Mode VCOஐ இணைச் செயல்பாடு கோரியது" @@ -365,7 +366,7 @@ "பிற பயன்பாடுகளை மூடுதல்" "பிற பயன்பாடுகளின் பின்புலச் செயல்முறைகளை நிறுத்த ஆப்ஸை அனுமதிக்கிறது. இதனால் பிற பயன்பாடுகள் இயங்குவதை நிறுத்தலாம்." "இந்த ஆப்ஸ் பிற பயன்பாடுகளின் மேலே தோன்றலாம்" - "இந்த ஆப்ஸ் பிற பயன்பாடுகளின் மேலே அல்லது திரையின் பிற பகுதிகளில் தோன்றலாம். இது வழக்கமான பயன்பாட்டு உபயோகத்தில் குறுக்கிட்டு, பிற பயன்பாடுகள் தோன்றும் விதத்தை மாற்றக்கூடும்." + "இந்த ஆப்ஸ் பிற பயன்பாடுகளின் மேலே அல்லது திரையின் பிற பகுதிகளில் தோன்றலாம். இது வழக்கமான ஆப்ஸ் உபயோகத்தில் குறுக்கிட்டு, பிற பயன்பாடுகள் தோன்றும் விதத்தை மாற்றக்கூடும்." "பின்னணியில் இயக்கு" "இந்த ஆப்ஸ், பின்னணியில் இயங்கலாம். இதனால் பேட்டரி விரைவாகத் தீர்ந்துவிடக்கூடும்." "பின்னணியில் தரவைப் பயன்படுத்து" diff --git a/core/res/res/values-te/strings.xml b/core/res/res/values-te/strings.xml index 6a1f34c95fcb..776d39e1156e 100644 --- a/core/res/res/values-te/strings.xml +++ b/core/res/res/values-te/strings.xml @@ -95,6 +95,7 @@ "వాయిస్ మెయిల్ సందేశాలు" "Wi-Fi కాలింగ్" "SIM స్థితి" + "అధిక ప్రాధాన్యత గల SIM స్థితి" "అవతలి వారు FULL TTY మోడ్‌ని అభ్యర్థించారు" "అవతలి వారు HCO TTY మోడ్‌ని అభ్యర్థించారు" "అవతలి వారు VCO TTY మోడ్‌ని అభ్యర్థించారు" diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml index 3132529bea42..fdedffaea9a9 100644 --- a/core/res/res/values-th/strings.xml +++ b/core/res/res/values-th/strings.xml @@ -95,6 +95,7 @@ "ข้อความเสียง" "การโทรผ่าน Wi-Fi" "สถานะซิม" + "สถานะซิมลำดับความสำคัญสูง" "อีกฝั่งหนึ่งขอโหมด TTY เป็น \"เต็ม\"" "อีกฝั่งหนึ่งขอโหมด TTY เป็น \"HCO\"" "อีกฝั่งหนึ่งขอโหมด TTY เป็น \"VCO\"" diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml index a56a12282505..c33e5611ce7a 100644 --- a/core/res/res/values-tl/strings.xml +++ b/core/res/res/values-tl/strings.xml @@ -95,6 +95,7 @@ "Mga mensahe sa voicemail" "Pagtawag gamit ang Wi-Fi" "Status ng SIM" + "High priority na status ng SIM" "Hiniling ng peer ang TTY Mode FULL" "Hiniling ng peer ang TTY Mode HCO" "Hiniling ng peer ang TTY Mode VCO" diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml index 34b6e5a011d2..7d69213ebe0c 100644 --- a/core/res/res/values-tr/strings.xml +++ b/core/res/res/values-tr/strings.xml @@ -95,6 +95,7 @@ "Sesli mesajlar" "Kablosuz çağrı" "SIM durumu" + "Yüksek öncelikli SIM durumu" "Karşı taraf TTY Modunu TAM yaptı" "Karşı taraf TTY Modunu HCO yaptı" "Karşı taraf TTY Modunu VCO yaptı" diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml index 44058f51663c..13c89296c4bc 100644 --- a/core/res/res/values-uk/strings.xml +++ b/core/res/res/values-uk/strings.xml @@ -97,6 +97,7 @@ "Повідомлення голосової пошти" "Дзвінки через Wi-Fi" "Статус SIM-карти" + "Високопріоритетні сповіщення із SIM-карти" "Пристрій змінив режим TTY на FULL" "Пристрій змінив режим TTY на HCO" "Пристрій змінив режим TTY на VCO" diff --git a/core/res/res/values-ur/strings.xml b/core/res/res/values-ur/strings.xml index 7766c76f3443..dba7f8f06f67 100644 --- a/core/res/res/values-ur/strings.xml +++ b/core/res/res/values-ur/strings.xml @@ -95,6 +95,7 @@ "صوتی میل پیغامات" "‏Wi-Fi کالنگ" "‏SIM کا اسٹیٹس" + "‏اعلی ترجیحی SIM کی صورتحال" "‏ہمسر نے TTY وضع مکمل کی درخواست کی" "‏ہمسر نے TTY وضع HCO کی درخواست کی" "‏ہمسر نے TTY وضع VCO کی درخواست کی" diff --git a/core/res/res/values-uz/strings.xml b/core/res/res/values-uz/strings.xml index ac2c83740b7b..f06a0a029b98 100644 --- a/core/res/res/values-uz/strings.xml +++ b/core/res/res/values-uz/strings.xml @@ -95,6 +95,7 @@ "Ovozli xabarlar" "Wi-Fi chaqiruv" "SIM karta holati" + "SIM kartadagi muhim bildirishnomalar" "Teng huquqli ishtirokchi teletayp rejimini FULL (to‘liq) qilib o‘zgartirdi" "Teng huquqli ishtirokchi teletayp rejimini HCO (eshitadi, gapirolmaydi) qilib o‘zgartirdi" "Teng huquqli ishtirokchi teletayp rejimini VCO (gapiradi, eshitolmaydi) qilib o‘zgartirdi" diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml index 429861b07100..c5bd7cc026c0 100644 --- a/core/res/res/values-vi/strings.xml +++ b/core/res/res/values-vi/strings.xml @@ -95,6 +95,7 @@ "Thư thoại" "Gọi qua Wi-Fi" "Trạng thái SIM" + "Trạng thái SIM có mức ưu tiên cao" "TTY theo yêu cầu của thiết bị ngang hàng ở chế độ ĐẦY ĐỦ" "TTY theo yêu cầu của thiết bị ngang hàng ở chế độ HCO" "TTY theo yêu cầu của thiết bị ngang hàng ở chế độ VCO" diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml index ef50a39771ed..487e4a020f2c 100644 --- a/core/res/res/values-zh-rCN/strings.xml +++ b/core/res/res/values-zh-rCN/strings.xml @@ -95,6 +95,7 @@ "语音邮件" "WLAN 通话" "SIM 卡状态" + "高优先顺序 SIM 卡状态" "对方请求使用“TTY 完整”模式" "对方请求使用“TTY HCO”模式" "对方请求使用“TTY VCO”模式" @@ -298,8 +299,8 @@ "录制音频" "允许<b>%1$s</b>录音吗?" "身体活动" - "访问您的健身运动" - "允许<b>%1$s</b>访问您的健身运动吗?" + "获取您的身体活动数据" + "允许<b>%1$s</b>获取您的身体活动数据吗?" "相机" "拍摄照片和录制视频" "允许<b>%1$s</b>拍摄照片和录制视频吗?" @@ -428,8 +429,8 @@ "此应用可随时使用麦克风进行录音。" "向 SIM 卡发送命令" "允许应用向SIM卡发送命令(此权限具有很高的危险性)。" - "识别健身运动" - "此应用可以识别您的健身运动。" + "识别身体活动" + "此应用可以识别您的身体活动。" "拍摄照片和视频" "此应用可随时使用相机拍摄照片和录制视频。" "控制振动" diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml index cce909a4e031..c634c68ba954 100644 --- a/core/res/res/values-zh-rHK/strings.xml +++ b/core/res/res/values-zh-rHK/strings.xml @@ -95,6 +95,7 @@ "留言訊息" "Wi-Fi 通話" "SIM 卡狀態" + "重要 SIM 卡狀態" "對方曾要求 TTY 完整模式" "對方曾要求 TTY 模式 (HCO)" "對方曾要求 TTY 模式 (VCO)" diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml index da7bc7fc2347..483d42fb4327 100644 --- a/core/res/res/values-zh-rTW/strings.xml +++ b/core/res/res/values-zh-rTW/strings.xml @@ -95,6 +95,7 @@ "語音留言" "Wi-Fi 通話" "SIM 卡狀態" + "高優先順序 SIM 卡狀態" "通訊對象要求使用 TTY 的 FULL 模式" "通訊對象要求使用 TTY 的 HCO 模式" "通訊對象要求使用 TTY 的 VCO 模式" diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml index 2af33203bb62..9d19775f9af6 100644 --- a/core/res/res/values-zu/strings.xml +++ b/core/res/res/values-zu/strings.xml @@ -95,6 +95,7 @@ "Imilayezo yevoyisimeyili" "Ukushaya kwe-Wi-Fi" "Isimo se-SIM" + "Isimo se-SIM esiphezulu kakhulu" "Umngani ucele imodi ye-TTY ephelele" "Umngani ucele imodi ye-TTY HCO" "Umngani ucele imodi ye-TTY VCO" -- cgit v1.2.3-59-g8ed1b From c44717af8c9f732a651d2a1f8dce84c365b9ca9b Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Tue, 6 Aug 2019 14:39:18 -0700 Subject: Import translations. DO NOT MERGE Auto-generated-cl: translation import Bug: 64712476 Change-Id: I71d6c831bd5934480845f70ac7797d293bf9d917 --- packages/MtpDocumentsProvider/res/values-hi/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/MtpDocumentsProvider/res/values-hi/strings.xml b/packages/MtpDocumentsProvider/res/values-hi/strings.xml index bbd0ae711faf..e469fc0ee1a6 100644 --- a/packages/MtpDocumentsProvider/res/values-hi/strings.xml +++ b/packages/MtpDocumentsProvider/res/values-hi/strings.xml @@ -19,7 +19,7 @@ "MTP होस्ट" "डाउनलोड" "%1$s %2$s" - "%1$s से फ़ाइलें एक्सेस कर रहा है" + "%1$s से फ़ाइलें ऐक्सेस कर रहा है" "दूसरा डिवाइस व्यस्त है. आप उसके उपलब्ध हो जाने तक फ़ाइलें ट्रांसफ़र नहीं कर सकते." "कोई फ़ाइल नहीं मिली. हो सकता है कि दूसरा डिवाइस लॉक हो. अगर ऐसा है, तो उसे अनलॉक करें और दोबारा कोशिश करें." -- cgit v1.2.3-59-g8ed1b From 65ac2ba3e0ec1f5786e6b983186f2f3261c03894 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Thu, 8 Aug 2019 11:01:50 -0700 Subject: Import translations. DO NOT MERGE Auto-generated-cl: translation import Bug: 64712476 Change-Id: I91bddf1b362e146ce0491890a3dc236483625384 --- packages/PrintSpooler/res/values-or/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/PrintSpooler/res/values-or/strings.xml b/packages/PrintSpooler/res/values-or/strings.xml index 7eeac8771032..f385391c8d78 100644 --- a/packages/PrintSpooler/res/values-or/strings.xml +++ b/packages/PrintSpooler/res/values-or/strings.xml @@ -72,7 +72,7 @@ "ପ୍ରିଣ୍ଟର ଯୋଡ଼ିବାକୁ ଚୟନ କରନ୍ତୁ" "ସକ୍ଷମ କରିବା ପାଇଁ ଚୟନ କରନ୍ତୁ" "ସକ୍ଷମ କରାଯାଇଥିବା ସର୍ଭିସ୍‌" - "ସୁପାରିସ କରାଯାଇଥିବା ସର୍ଭିସ୍‌" + "ସୁପାରିଶ କରାଯାଇଥିବା ସର୍ଭିସ୍‌" "ଅକ୍ଷମ କରାଯାଇଥିବା ସର୍ଭିସ୍‌" "ସମସ୍ତ ସର୍ଭିସ୍‌" -- cgit v1.2.3-59-g8ed1b From 22ea4ced9f10eab98d10e2be1395c37c2d98ff12 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Fri, 9 Aug 2019 03:26:49 -0700 Subject: Import translations. DO NOT MERGE Auto-generated-cl: translation import Bug: 64712476 Change-Id: I7a882afc87d49594f5a81189a2b972057e75d646 --- packages/SystemUI/res-keyguard/values-de/strings.xml | 2 +- packages/SystemUI/res/values-de/strings.xml | 2 +- packages/SystemUI/res/values-es-rUS/strings.xml | 4 ++-- packages/SystemUI/res/values-hi/strings.xml | 8 ++++---- packages/SystemUI/res/values-mr/strings.xml | 2 +- packages/SystemUI/res/values-sq/strings.xml | 2 +- packages/SystemUI/res/values-sw/strings.xml | 2 +- packages/SystemUI/res/values-ta/strings.xml | 2 +- packages/SystemUI/res/values-vi/strings.xml | 4 ++-- 9 files changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/SystemUI/res-keyguard/values-de/strings.xml b/packages/SystemUI/res-keyguard/values-de/strings.xml index 7f39a194202a..d44bfbc670a1 100644 --- a/packages/SystemUI/res-keyguard/values-de/strings.xml +++ b/packages/SystemUI/res-keyguard/values-de/strings.xml @@ -152,6 +152,6 @@ Die SIM-Karte ist jetzt deaktiviert. Gib den PUK-Code ein, um fortzufahren. Du hast noch %d Versuch, bevor die SIM-Karte endgültig gesperrt wird. Weitere Informationen erhältst du von deinem Mobilfunkanbieter. "Standard" - "Blase" + "Bubble" "Analog" diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml index 408254f7c9e6..9b3974b423ba 100644 --- a/packages/SystemUI/res/values-de/strings.xml +++ b/packages/SystemUI/res/values-de/strings.xml @@ -656,7 +656,7 @@ "Lautlos" "Benachrichtigen" "Benachrichtigungen werden ohne Ton oder Vibration angekündigt, um deine Konzentration nicht zu stören." - "Benachrichtigungen werden mit einem Ton oder einer Vibration angekündigt, um dich auf sie aufmerksam zu machen." + "Benachrichtigungen werden mit einem Ton oder einer Vibration angekündigt." "Diese Benachrichtigungen können nicht geändert werden." "Die Benachrichtigungsgruppe kann hier nicht konfiguriert werden" "Weitergeleitete Benachrichtigung" diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml index 37aae55d2b8b..d6c8d090b97b 100644 --- a/packages/SystemUI/res/values-es-rUS/strings.xml +++ b/packages/SystemUI/res/values-es-rUS/strings.xml @@ -553,7 +553,7 @@ "Ocultar" "Llamada" "Sistema" - "Hacer sonar" + "Timbre" "Multimedia" "Alarma" "Notificación" @@ -561,7 +561,7 @@ "Multifrecuencia de tono doble" "Accesibilidad" "Llamadas" - "Hacer sonar" + "Timbre" "Vibrar" "Silenciar" "Teléfono en vibración" diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml index 17ee04e10304..3fa2a48188c9 100644 --- a/packages/SystemUI/res/values-hi/strings.xml +++ b/packages/SystemUI/res/values-hi/strings.xml @@ -46,8 +46,8 @@ "ब्लूटूथ टीदर किया गया" "इनपुट का तरीका सेट करें" "सामान्य कीबोर्ड" - "%1$s को %2$s के एक्सेस की अनुमति दें?" - "%1$s को %2$s के एक्सेस की अनुमति दें?" + "%1$s को %2$s के ऐक्सेस की अनुमति दें?" + "%1$s को %2$s के ऐक्सेस की अनुमति दें?" "%2$s के लिए %1$s खोलें?" "%2$s के लिए %1$s खोलें?" "इस USB सहायक डिवाइस के साथ कोई भी इंस्टॉल ऐप्स काम नहीं करता. इस सहायक डिवाइस के बारे में यहां ज़्यादा जानें: %1$s" @@ -452,8 +452,8 @@ "बैटरी सेवर चालू है" "निष्‍पादन और पृष्ठभूमि डेटा को कम करता है" "बैटरी सेवर बंद करें" - "रिकॉर्ड या कास्ट करते समय, %s आपकी स्क्रीन पर दिखाई जा रही या आपके डिवाइस पर चलाई जा रही संवेदनशील जानकारी एक्सेस कर सकता है. इस जानकारी में ऑडियो, पासवर्ड, भुगतान की जानकारी, फ़ोटो और मैसेज शामिल हैं." - "रिकॉर्ड या कास्ट करते समय, यह सेवा देने वाला ऐप्लिकेशन आपकी स्क्रीन पर दिखाई जा रही या आपके डिवाइस पर चलाई जा रही संवेदनशील जानकारी एक्सेस कर सकता है. इस जानकारी में ऑडियो, पासवर्ड, भुगतान की जानकारी, फ़ोटो और मैसेज शामिल हैं." + "रिकॉर्ड या कास्ट करते समय, %s आपकी स्क्रीन पर दिखाई जा रही या आपके डिवाइस पर चलाई जा रही संवेदनशील जानकारी ऐक्सेस कर सकता है. इस जानकारी में ऑडियो, पासवर्ड, भुगतान की जानकारी, फ़ोटो और मैसेज शामिल हैं." + "रिकॉर्ड या कास्ट करते समय, यह सेवा देने वाला ऐप्लिकेशन आपकी स्क्रीन पर दिखाई जा रही या आपके डिवाइस पर चलाई जा रही संवेदनशील जानकारी ऐक्सेस कर सकता है. इस जानकारी में ऑडियो, पासवर्ड, भुगतान की जानकारी, फ़ोटो और मैसेज शामिल हैं." "कास्ट करने/रिकॉर्ड करने के दौरान संवेदनशील जानकारी का सबके सामने आ जाना" "फिर से न दिखाएं" "सभी को हटाएं" diff --git a/packages/SystemUI/res/values-mr/strings.xml b/packages/SystemUI/res/values-mr/strings.xml index 20f638d04077..676208bb02f7 100644 --- a/packages/SystemUI/res/values-mr/strings.xml +++ b/packages/SystemUI/res/values-mr/strings.xml @@ -747,7 +747,7 @@ "डेटा सेव्हर" "डेटा सेव्हर चालू आहे" "डेटा सेव्हर बंद आहे" - "चालू" + "सुरू" "बंद" "नॅव्हिगेशन बार" "लेआउट" diff --git a/packages/SystemUI/res/values-sq/strings.xml b/packages/SystemUI/res/values-sq/strings.xml index 83a7aaa684c3..1f75490ebe5d 100644 --- a/packages/SystemUI/res/values-sq/strings.xml +++ b/packages/SystemUI/res/values-sq/strings.xml @@ -544,7 +544,7 @@ "Kjo e ruan në pamje deri sa ta heqësh nga gozhdimi. Prek dhe mbaj të shtypur \"Kreu\" për ta hequr nga gozhdimi." "Për të hequr gozhdimin e këtij ekrani, prek dhe mbaj butonat \"Prapa\" dhe \"Përmbledhja\"." "Për të hequr gozhdimin e këtij ekrani, prek dhe mbaj butonat \"Prapa\" dhe \"Kreu\"." - "E kuptova!" + "E kuptova" "Jo, faleminderit!" "Ekrani u gozhdua" "Ekrani u hoq nga gozhdimi" diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml index 182caa4c09de..640bbda0d2a3 100644 --- a/packages/SystemUI/res/values-sw/strings.xml +++ b/packages/SystemUI/res/values-sw/strings.xml @@ -416,7 +416,7 @@ "%2$s • Inachaji bila kutumia waya (imebakisha %1$s ili ijae)" "%2$s • Inachaji (Imebakisha %1$s ili ijae)" "%2$s • Inachaji kwa kasi (Imebakisha %1$s ili ijae)" - "%2$s • Inachaji pole pole (Imebakisha %1$s ili ijae)" + "%2$s • Inachaji pole pole (Imebakisha %1$s ijae)" "Badili mtumiaji" "Badili mtumiaji, mtumiaji wa sasa %s" "Mtumiaji wa sasa %s" diff --git a/packages/SystemUI/res/values-ta/strings.xml b/packages/SystemUI/res/values-ta/strings.xml index 9f8f45e44ebf..6e8b0974087a 100644 --- a/packages/SystemUI/res/values-ta/strings.xml +++ b/packages/SystemUI/res/values-ta/strings.xml @@ -761,7 +761,7 @@ "ஏதுமில்லை" - "இயல்பானது" + "சராசரி" "சுருக்கமானது" "இடப்புறம் சாய்ந்தது" "வலப்புறம் சாய்ந்தது" diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml index affca3d05f05..025efacee582 100644 --- a/packages/SystemUI/res/values-vi/strings.xml +++ b/packages/SystemUI/res/values-vi/strings.xml @@ -741,7 +741,7 @@ "Pin" "Đồng hồ" "Tai nghe" - "Mở cài đặt" + "Mở phần cài đặt" "Đã kết nối tai nghe" "Đã kết nối tai nghe" "Trình tiết kiệm dữ liệu" @@ -817,7 +817,7 @@ "Ứng dụng không hỗ trợ chia đôi màn hình." "Ứng dụng có thể không hoạt động trên màn hình phụ." "Ứng dụng không hỗ trợ khởi chạy trên màn hình phụ." - "Mở cài đặt." + "Mở phần cài đặt." "Mở cài đặt nhanh." "Đóng cài đặt nhanh." "Đã đặt báo thức." -- cgit v1.2.3-59-g8ed1b From 037d9fcd95b90ae65e75784fb74990e93dcc7fdf Mon Sep 17 00:00:00 2001 From: Dave Mankoff Date: Fri, 9 Aug 2019 11:08:52 -0400 Subject: Initialize Dependency with the Application when Dagger starts. Dependency is no longer a subclass of SystemUI. It gets initialized directly as part of the application, just like the rest of Dagger. It was an awkward implementation of SystemUI anyways. Bug: 137324767 Change-Id: Icf49e9262e8c0710210a8bc0231c4d16396ffdf3 Test: atest SystemUITests --- packages/SystemUI/res/values/config.xml | 2 - .../src/com/android/systemui/Dependency.java | 63 +++++++++------------- .../android/systemui/ForegroundServicesDialog.java | 2 +- .../com/android/systemui/SystemUIApplication.java | 18 +++++-- .../src/com/android/systemui/SystemUIFactory.java | 6 ++- .../systemui/SystemUISecondaryUserService.java | 21 +------- .../src/com/android/systemui/SystemUIService.java | 11 +++- .../com/android/systemui/tuner/TunerActivity.java | 3 +- .../src/com/android/systemui/DependencyTest.java | 2 +- .../com/android/systemui/TestableDependency.java | 4 -- .../phone/StatusBarRemoteInputCallbackTest.java | 2 +- 11 files changed, 63 insertions(+), 71 deletions(-) diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml index 340cb3ad7358..84b472b8f006 100644 --- a/packages/SystemUI/res/values/config.xml +++ b/packages/SystemUI/res/values/config.xml @@ -276,7 +276,6 @@ - com.android.systemui.Dependency$DependencyCreator com.android.systemui.util.NotificationChannels com.android.systemui.statusbar.CommandQueue$CommandQueueStart com.android.systemui.keyguard.KeyguardViewMediator @@ -307,7 +306,6 @@ - com.android.systemui.Dependency$DependencyCreator com.android.systemui.util.NotificationChannels diff --git a/packages/SystemUI/src/com/android/systemui/Dependency.java b/packages/SystemUI/src/com/android/systemui/Dependency.java index 6c36bc98996b..15bea2484d7f 100644 --- a/packages/SystemUI/src/com/android/systemui/Dependency.java +++ b/packages/SystemUI/src/com/android/systemui/Dependency.java @@ -16,7 +16,6 @@ package com.android.systemui; import android.annotation.Nullable; import android.app.INotificationManager; -import android.content.Context; import android.content.res.Configuration; import android.hardware.SensorPrivacyManager; import android.hardware.display.NightDisplayListener; @@ -114,7 +113,6 @@ import com.android.systemui.util.leak.LeakReporter; import java.io.FileDescriptor; import java.io.PrintWriter; -import java.util.HashMap; import java.util.function.Consumer; import javax.inject.Inject; @@ -138,9 +136,7 @@ import dagger.Subcomponent; * they have no clients they should not have any registered resources like bound * services, registered receivers, etc. */ -public class Dependency extends SystemUI { - private static final String TAG = "Dependency"; - +public class Dependency { /** * Key for getting a background Looper for background work. */ @@ -305,8 +301,20 @@ public class Dependency extends SystemUI { public Dependency() { } - @Override - public void start() { + + /** + * Initialize Depenency. + */ + public static void initDependencies(SystemUIRootComponent rootComponent) { + if (sDependency != null) { + return; + } + sDependency = new Dependency(); + rootComponent.createDependency().createSystemUI(sDependency); + sDependency.start(); + } + + protected void start() { // TODO: Think about ways to push these creation rules out of Dependency to cut down // on imports. mProviders.put(TIME_TICK_HANDLER, mTimeTickHandler::get); @@ -486,10 +494,14 @@ public class Dependency extends SystemUI { sDependency = this; } - @Override - public synchronized void dump(FileDescriptor fd, PrintWriter pw, String[] args) { - super.dump(fd, pw, args); + static void staticDump(FileDescriptor fd, PrintWriter pw, String[] args) { + sDependency.dump(fd, pw, args); + } + /** + * {@see SystemUI.dump} + */ + public synchronized void dump(FileDescriptor fd, PrintWriter pw, String[] args) { // Make sure that the DumpController gets added to mDependencies, as they are only added // with Dependency#get. getDependency(DumpController.class); @@ -509,9 +521,11 @@ public class Dependency extends SystemUI { .forEach(o -> ((Dumpable) o).dump(fd, pw, args)); } - @Override + protected static void staticOnConfigurationChanged(Configuration newConfig) { + sDependency.onConfigurationChanged(newConfig); + } + protected synchronized void onConfigurationChanged(Configuration newConfig) { - super.onConfigurationChanged(newConfig); mDependencies.values().stream().filter(obj -> obj instanceof ConfigurationChangedReceiver) .forEach(o -> ((ConfigurationChangedReceiver) o).onConfigurationChanged(newConfig)); } @@ -564,20 +578,6 @@ public class Dependency extends SystemUI { } } - /** - * Used in separate processes (like tuner settings) to init the dependencies. - */ - public static void initDependencies(Context context) { - if (sDependency != null) return; - Dependency d = new Dependency(); - SystemUIFactory.getInstance().getRootComponent() - .createDependency() - .createSystemUI(d); - d.mContext = context; - d.mComponents = new HashMap<>(); - d.start(); - } - /** * Used in separate process teardown to ensure the context isn't leaked. * @@ -629,15 +629,4 @@ public class Dependency extends SystemUI { public interface DependencyInjector { void createSystemUI(Dependency dependency); } - - public static class DependencyCreator implements Injector { - @Override - public SystemUI apply(Context context) { - Dependency dependency = new Dependency(); - SystemUIFactory.getInstance().getRootComponent() - .createDependency() - .createSystemUI(dependency); - return dependency; - } - } } diff --git a/packages/SystemUI/src/com/android/systemui/ForegroundServicesDialog.java b/packages/SystemUI/src/com/android/systemui/ForegroundServicesDialog.java index cb9523fcaed1..6fec92c84fec 100644 --- a/packages/SystemUI/src/com/android/systemui/ForegroundServicesDialog.java +++ b/packages/SystemUI/src/com/android/systemui/ForegroundServicesDialog.java @@ -75,7 +75,7 @@ public final class ForegroundServicesDialog extends AlertActivity implements @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - Dependency.initDependencies(getApplicationContext()); + Dependency.initDependencies(SystemUIFactory.getInstance().getRootComponent()); mMetricsLogger = Dependency.get(MetricsLogger.class); diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java b/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java index f8449add6dce..48127a75b86e 100644 --- a/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java +++ b/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java @@ -62,19 +62,28 @@ public class SystemUIApplication extends Application implements SysUiServiceProv private final Map, Object> mComponents = new HashMap<>(); private ContextAvailableCallback mContextAvailableCallback; + public SystemUIApplication() { + super(); + Log.v(TAG, "SystemUIApplication constructed."); + } + @Override public void onCreate() { super.onCreate(); + Log.v(TAG, "SystemUIApplication created."); // This line is used to setup Dagger's dependency injection and should be kept at the // top of this method. + TimingsTraceLog log = new TimingsTraceLog("SystemUIBootTiming", + Trace.TRACE_TAG_APP); + log.traceBegin("DependencyInjection"); mContextAvailableCallback.onContextAvailable(this); + log.traceEnd(); // Set the application theme that is inherited by all services. Note that setting the // application theme in the manifest does only work for activities. Keep this in sync with // the theme set there. setTheme(R.style.Theme_SystemUI); - if (Process.myUserHandle().equals(UserHandle.SYSTEM)) { IntentFilter bootCompletedFilter = new IntentFilter(Intent.ACTION_BOOT_COMPLETED); bootCompletedFilter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); @@ -138,7 +147,7 @@ public class SystemUIApplication extends Application implements SysUiServiceProv /** * Ensures that all the Secondary user SystemUI services are running. If they are already - * running, this is a no-op. This is needed to conditinally start all the services, as we only + * running, this is a no-op. This is needed to conditionally start all the services, as we only * need to have it in the main process. *

This method must only be called from the main thread.

*/ @@ -159,7 +168,9 @@ public class SystemUIApplication extends Application implements SysUiServiceProv // see ActivityManagerService.finishBooting() if ("1".equals(SystemProperties.get("sys.boot_completed"))) { mBootCompleted = true; - if (DEBUG) Log.v(TAG, "BOOT_COMPLETED was already sent"); + if (DEBUG) { + Log.v(TAG, "BOOT_COMPLETED was already sent"); + } } } @@ -273,6 +284,7 @@ public class SystemUIApplication extends Application implements SysUiServiceProv @Override public void onConfigurationChanged(Configuration newConfig) { if (mServicesStarted) { + Dependency.staticOnConfigurationChanged(newConfig); int len = mServices.length; for (int i = 0; i < len; i++) { if (mServices[i] != null) { diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java index 2cdc81fcf695..c7f4c389fb3f 100644 --- a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java +++ b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java @@ -115,6 +115,10 @@ public class SystemUIFactory { .dependencyProvider(new com.android.systemui.DependencyProvider()) .contextHolder(new ContextHolder(context)) .build(); + + // Every other part of our codebase currently relies on Dependency, so we + // really need to ensure the Dependency gets initialized early on. + Dependency.initDependencies(mRootComponent); } public SystemUIRootComponent getRootComponent() { @@ -127,7 +131,7 @@ public class SystemUIFactory { } public KeyguardBouncer createKeyguardBouncer(Context context, ViewMediatorCallback callback, - LockPatternUtils lockPatternUtils, ViewGroup container, + LockPatternUtils lockPatternUtils, ViewGroup container, DismissCallbackRegistry dismissCallbackRegistry, KeyguardBouncer.BouncerExpansionCallback expansionCallback) { return new KeyguardBouncer(context, callback, lockPatternUtils, container, diff --git a/packages/SystemUI/src/com/android/systemui/SystemUISecondaryUserService.java b/packages/SystemUI/src/com/android/systemui/SystemUISecondaryUserService.java index c8a2e1758ad1..2d2d91db4fe1 100644 --- a/packages/SystemUI/src/com/android/systemui/SystemUISecondaryUserService.java +++ b/packages/SystemUI/src/com/android/systemui/SystemUISecondaryUserService.java @@ -38,25 +38,8 @@ public class SystemUISecondaryUserService extends Service { @Override protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) { - SystemUI[] services = ((SystemUIApplication) getApplication()).getServices(); - if (args == null || args.length == 0) { - for (SystemUI ui: services) { - if (ui != null) { - pw.println("dumping service: " + ui.getClass().getName()); - ui.dump(fd, pw, args); - } - } - } else { - String svc = args[0]; - for (SystemUI ui: services) { - if (ui != null) { - String name = ui.getClass().getName(); - if (name.endsWith(svc)) { - ui.dump(fd, pw, args); - } - } - } - } + SystemUIService.dumpServices( + ((SystemUIApplication) getApplication()).getServices(), fd, pw, args); } } diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIService.java b/packages/SystemUI/src/com/android/systemui/SystemUIService.java index dc1218d33498..1c5e80005d84 100644 --- a/packages/SystemUI/src/com/android/systemui/SystemUIService.java +++ b/packages/SystemUI/src/com/android/systemui/SystemUIService.java @@ -66,8 +66,14 @@ public class SystemUIService extends Service { @Override protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) { - SystemUI[] services = ((SystemUIApplication) getApplication()).getServices(); + dumpServices(((SystemUIApplication) getApplication()).getServices(), fd, pw, args); + } + + static void dumpServices( + SystemUI[] services, FileDescriptor fd, PrintWriter pw, String[] args) { if (args == null || args.length == 0) { + pw.println("dumping service: " + Dependency.class.getName()); + Dependency.staticDump(fd, pw, args); for (SystemUI ui: services) { pw.println("dumping service: " + ui.getClass().getName()); ui.dump(fd, pw, args); @@ -78,6 +84,9 @@ public class SystemUIService extends Service { } } else { String svc = args[0].toLowerCase(); + if (Dependency.class.getName().endsWith(svc)) { + Dependency.staticDump(fd, pw, args); + } for (SystemUI ui: services) { String name = ui.getClass().getName().toLowerCase(); if (name.endsWith(svc)) { diff --git a/packages/SystemUI/src/com/android/systemui/tuner/TunerActivity.java b/packages/SystemUI/src/com/android/systemui/tuner/TunerActivity.java index 1d4f9b33b0bc..97507900e269 100644 --- a/packages/SystemUI/src/com/android/systemui/tuner/TunerActivity.java +++ b/packages/SystemUI/src/com/android/systemui/tuner/TunerActivity.java @@ -31,6 +31,7 @@ import androidx.preference.PreferenceScreen; import com.android.systemui.Dependency; import com.android.systemui.R; +import com.android.systemui.SystemUIFactory; import com.android.systemui.fragments.FragmentService; public class TunerActivity extends Activity implements @@ -50,7 +51,7 @@ public class TunerActivity extends Activity implements setActionBar(toolbar); } - Dependency.initDependencies(this); + Dependency.initDependencies(SystemUIFactory.getInstance().getRootComponent()); if (getFragmentManager().findFragmentByTag(TAG_TUNER) == null) { final String action = getIntent().getAction(); diff --git a/packages/SystemUI/tests/src/com/android/systemui/DependencyTest.java b/packages/SystemUI/tests/src/com/android/systemui/DependencyTest.java index b1ca169eac0c..b9d09ce91c1a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/DependencyTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/DependencyTest.java @@ -74,6 +74,6 @@ public class DependencyTest extends SysuiTestCase { @Test public void testInitDependency() { Dependency.clearDependencies(); - Dependency.initDependencies(mContext); + Dependency.initDependencies(SystemUIFactory.getInstance().getRootComponent()); } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/TestableDependency.java b/packages/SystemUI/tests/src/com/android/systemui/TestableDependency.java index 18bf75e3cfb1..0c53b03de4d2 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/TestableDependency.java +++ b/packages/SystemUI/tests/src/com/android/systemui/TestableDependency.java @@ -25,10 +25,6 @@ public class TestableDependency extends Dependency { private final ArraySet mInstantiatedObjects = new ArraySet<>(); public TestableDependency(Context context) { - if (context instanceof SysuiTestableContext) { - mComponents = ((SysuiTestableContext) context).getComponents(); - } - mContext = context; SystemUIFactory.createFromConfig(context); SystemUIFactory.getInstance().getRootComponent() .createDependency() diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallbackTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallbackTest.java index a97832f94924..4b6ca56fc8e3 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallbackTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallbackTest.java @@ -68,7 +68,7 @@ public class StatusBarRemoteInputCallbackTest extends SysuiTestCase { mDependency.injectTestDependency(ShadeController.class, mShadeController); mDependency.injectTestDependency(NotificationLockscreenUserManager.class, mNotificationLockscreenUserManager); - mDependency.putComponent(CommandQueue.class, mock(CommandQueue.class)); + mContext.putComponent(CommandQueue.class, mock(CommandQueue.class)); mRemoteInputCallback = spy(new StatusBarRemoteInputCallback(mContext, mock(NotificationGroupManager.class))); -- cgit v1.2.3-59-g8ed1b From 3630f247289b4414481e5a7f726066eba01daea6 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Fri, 9 Aug 2019 15:37:35 -0700 Subject: Import translations. DO NOT MERGE Auto-generated-cl: translation import Bug: 64712476 Change-Id: I024a8208106222e0f40e2c099532a4c2b3298dbf --- packages/VpnDialogs/res/values-hi/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/VpnDialogs/res/values-hi/strings.xml b/packages/VpnDialogs/res/values-hi/strings.xml index 34b79cb4100a..eed0858787d9 100644 --- a/packages/VpnDialogs/res/values-hi/strings.xml +++ b/packages/VpnDialogs/res/values-hi/strings.xml @@ -22,7 +22,7 @@ "सत्र:" "अवधि:" "भेजे गए:" - "प्राप्त:" + "पाया:" "%1$s बाइट / %2$s पैकेट" "हमेशा चालू रहने वाले VPN से नहीं जुड़ पा रहा है" "%1$s को हर समय जुड़े रहने के लिए सेट अप किया गया है, लेकिन वह इस समय नहीं जुड़ पा रहा है. जब तक आपका फ़ोन %1$s से नहीं जुड़ जाता, तब तक वह सार्वजनिक नेटवर्क का इस्तेमाल करेगा." -- cgit v1.2.3-59-g8ed1b From 40c043ac2b757b5c8fa109036e8ae7f6f4530e11 Mon Sep 17 00:00:00 2001 From: Govinda Wasserman Date: Mon, 12 Aug 2019 12:22:13 -0400 Subject: Allow assistant handles to be requested by the assistant Test: Tested locally BUG:131615462 Change-Id: I428086d6d500ee8838c856bc867cbb40d3d2a581 --- .../android/systemui/assist/AssistHandleBehaviorController.java | 7 +++++++ .../android/systemui/assist/AssistHandleReminderExpBehavior.java | 7 +++++++ .../SystemUI/src/com/android/systemui/assist/AssistManager.java | 9 +++++++++ 3 files changed, 23 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/assist/AssistHandleBehaviorController.java b/packages/SystemUI/src/com/android/systemui/assist/AssistHandleBehaviorController.java index 6da3818c5d05..25d16455a164 100644 --- a/packages/SystemUI/src/com/android/systemui/assist/AssistHandleBehaviorController.java +++ b/packages/SystemUI/src/com/android/systemui/assist/AssistHandleBehaviorController.java @@ -177,6 +177,12 @@ public final class AssistHandleBehaviorController implements AssistHandleCallbac mBehaviorMap.get(mCurrentBehavior).onAssistantGesturePerformed(); } + void onAssistHandlesRequested() { + if (mInGesturalMode) { + mBehaviorMap.get(mCurrentBehavior).onAssistHandlesRequested(); + } + } + void setBehavior(AssistHandleBehavior behavior) { if (mCurrentBehavior == behavior) { return; @@ -316,6 +322,7 @@ public final class AssistHandleBehaviorController implements AssistHandleCallbac void onModeActivated(Context context, AssistHandleCallbacks callbacks); default void onModeDeactivated() {} default void onAssistantGesturePerformed() {} + default void onAssistHandlesRequested() {} default void dump(PrintWriter pw, String prefix) {} } } diff --git a/packages/SystemUI/src/com/android/systemui/assist/AssistHandleReminderExpBehavior.java b/packages/SystemUI/src/com/android/systemui/assist/AssistHandleReminderExpBehavior.java index f9ddeaef3e86..c5064b7e0422 100644 --- a/packages/SystemUI/src/com/android/systemui/assist/AssistHandleReminderExpBehavior.java +++ b/packages/SystemUI/src/com/android/systemui/assist/AssistHandleReminderExpBehavior.java @@ -211,6 +211,13 @@ final class AssistHandleReminderExpBehavior implements BehaviorController { mContext.getContentResolver(), LEARNING_EVENT_COUNT_KEY, ++mLearningCount); } + @Override + public void onAssistHandlesRequested() { + if (mAssistHandleCallbacks != null && !mIsDozing && !mIsNavBarHidden && !mOnLockscreen) { + mAssistHandleCallbacks.showAndGo(); + } + } + private static boolean isNavBarHidden(int sysuiStateFlags) { return (sysuiStateFlags & QuickStepContract.SYSUI_STATE_NAV_BAR_HIDDEN) != 0; } diff --git a/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java b/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java index 4a4feada3c65..df1269e44461 100644 --- a/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java +++ b/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java @@ -97,6 +97,8 @@ public class AssistManager implements ConfigurationChangedReceiver { private static final String INVOCATION_TIME_MS_KEY = "invocation_time_ms"; private static final String INVOCATION_PHONE_STATE_KEY = "invocation_phone_state"; public static final String INVOCATION_TYPE_KEY = "invocation_type"; + protected static final String ACTION_KEY = "action"; + protected static final String SHOW_ASSIST_HANDLES_ACTION = "show_assist_handles"; public static final int INVOCATION_TYPE_GESTURE = 1; public static final int INVOCATION_TYPE_ACTIVE_EDGE = 2; @@ -204,6 +206,9 @@ public class AssistManager implements ConfigurationChangedReceiver { if (VERBOSE) { Log.v(TAG, "UI hints received"); } + if (SHOW_ASSIST_HANDLES_ACTION.equals(hints.getString(ACTION_KEY))) { + requestAssistHandles(); + } } }); } @@ -277,6 +282,10 @@ public class AssistManager implements ConfigurationChangedReceiver { mUiController.onGestureCompletion(velocity); } + protected void requestAssistHandles() { + mHandleController.onAssistHandlesRequested(); + } + public void hideAssist() { mAssistUtils.hideCurrentSession(); } -- cgit v1.2.3-59-g8ed1b From 2339f59b81fb78c0d7efb85f56cbc7afef26ec44 Mon Sep 17 00:00:00 2001 From: Dave Mankoff Date: Fri, 28 Jun 2019 16:33:25 -0400 Subject: Pass FalsingManager down through more classes. The CP's http://ag/c/8269205, with some minor modifications. This removes FalsingManagerFactory, replacing it with calls to Depedency.get() and pushes those calls further up the stack in hopes that the FalsingManager can be directly injected where it's needed in the future. Contains a few random lint cleanups. Bug: 136279712 Test: atest SystemUITests Change-Id: Idd66e40d3bb9ebe9ca583166d5e961cc70ea51b8 Merged-In: Ie24acd33b0d81ae2112aead0c0d5a8658e04994e --- .../systemui/statusbar/car/CarStatusBar.java | 4 +- .../systemui/recents/views/TaskStackView.java | 11 +- .../recents/views/TaskStackViewTouchHandler.java | 5 +- .../src/com/android/systemui/SwipeHelper.java | 6 +- .../src/com/android/systemui/SystemUIFactory.java | 7 +- .../systemui/classifier/FalsingManagerFactory.java | 44 ---- .../systemui/classifier/FalsingManagerFake.java | 246 +++++++++++++++++++++ .../src/com/android/systemui/doze/DozeFactory.java | 6 +- .../src/com/android/systemui/doze/DozeService.java | 4 +- .../systemui/keyguard/KeyguardViewMediator.java | 9 +- .../android/systemui/statusbar/DragDownHelper.java | 6 +- .../systemui/statusbar/PulseExpansionHandler.kt | 4 +- .../row/ActivatableNotificationView.java | 6 +- .../row/ExpandableNotificationRow.java | 3 +- .../stack/NotificationStackScrollLayout.java | 8 +- .../stack/NotificationSwipeHelper.java | 9 +- .../statusbar/phone/KeyguardAffordanceHelper.java | 7 +- .../statusbar/phone/NotificationPanelView.java | 8 +- .../systemui/statusbar/phone/PanelView.java | 5 +- .../systemui/statusbar/phone/StatusBar.java | 7 +- .../phone/StatusBarKeyguardViewManager.java | 5 +- .../statusbar/phone/StatusBarWindowView.java | 5 +- .../stack/NotificationStackScrollLayoutTest.java | 5 +- .../stack/NotificationSwipeHelperTest.java | 4 +- .../statusbar/phone/NotificationPanelViewTest.java | 6 +- .../phone/StatusBarKeyguardViewManagerTest.java | 11 +- 26 files changed, 330 insertions(+), 111 deletions(-) delete mode 100644 packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerFactory.java create mode 100644 packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerFake.java diff --git a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java index 2874ce60bf16..146bfe02498b 100644 --- a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java +++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java @@ -61,9 +61,9 @@ import com.android.systemui.Prefs; import com.android.systemui.R; import com.android.systemui.SystemUIFactory; import com.android.systemui.classifier.FalsingLog; -import com.android.systemui.classifier.FalsingManagerFactory; import com.android.systemui.fragments.FragmentHostManager; import com.android.systemui.keyguard.ScreenLifecycle; +import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.qs.QS; import com.android.systemui.qs.car.CarQSFragment; import com.android.systemui.shared.system.ActivityManagerWrapper; @@ -877,7 +877,7 @@ public class CarStatusBar extends StatusBar implements KeyguardUpdateMonitor.getInstance(mContext).dump(fd, pw, args); } - FalsingManagerFactory.getInstance(mContext).dump(pw); + Dependency.get(FalsingManager.class).dump(pw); FalsingLog.dump(pw); pw.println("SharedPreferences:"); diff --git a/packages/SystemUI/legacy/recents/src/com/android/systemui/recents/views/TaskStackView.java b/packages/SystemUI/legacy/recents/src/com/android/systemui/recents/views/TaskStackView.java index 14fd149d22f4..b89218c81a91 100644 --- a/packages/SystemUI/legacy/recents/src/com/android/systemui/recents/views/TaskStackView.java +++ b/packages/SystemUI/legacy/recents/src/com/android/systemui/recents/views/TaskStackView.java @@ -41,8 +41,10 @@ import android.widget.ScrollView; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; +import com.android.systemui.Dependency; import com.android.systemui.Interpolators; import com.android.systemui.R; +import com.android.systemui.plugins.FalsingManager; import com.android.systemui.recents.LegacyRecentsImpl; import com.android.systemui.recents.RecentsActivity; import com.android.systemui.recents.RecentsActivityLaunchState; @@ -86,15 +88,15 @@ import com.android.systemui.recents.events.ui.focus.NavigateTaskViewEvent; import com.android.systemui.recents.misc.DozeTrigger; import com.android.systemui.recents.misc.ReferenceCountedTrigger; import com.android.systemui.recents.misc.SystemServicesProxy; +import com.android.systemui.recents.model.TaskStack; import com.android.systemui.recents.utilities.AnimationProps; import com.android.systemui.recents.utilities.Utilities; -import com.android.systemui.shared.recents.model.Task; -import com.android.systemui.recents.model.TaskStack; import com.android.systemui.recents.views.grid.GridTaskView; import com.android.systemui.recents.views.grid.TaskGridLayoutAlgorithm; import com.android.systemui.recents.views.grid.TaskViewFocusFrame; - +import com.android.systemui.shared.recents.model.Task; import com.android.systemui.shared.system.ActivityManagerWrapper; + import java.io.PrintWriter; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -256,7 +258,8 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal mLayoutAlgorithm = new TaskStackLayoutAlgorithm(context, this); mStableLayoutAlgorithm = new TaskStackLayoutAlgorithm(context, null); mStackScroller = new TaskStackViewScroller(context, this, mLayoutAlgorithm); - mTouchHandler = new TaskStackViewTouchHandler(context, this, mStackScroller); + mTouchHandler = new TaskStackViewTouchHandler( + context, this, mStackScroller, Dependency.get(FalsingManager.class)); mAnimationHelper = new TaskStackAnimationHelper(context, this); mTaskCornerRadiusPx = LegacyRecentsImpl.getConfiguration().isGridEnabled ? res.getDimensionPixelSize(R.dimen.recents_grid_task_view_rounded_corners_radius) : diff --git a/packages/SystemUI/legacy/recents/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java b/packages/SystemUI/legacy/recents/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java index dd6926c848b4..a7fb4fae09ec 100644 --- a/packages/SystemUI/legacy/recents/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java +++ b/packages/SystemUI/legacy/recents/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java @@ -37,6 +37,7 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.systemui.Interpolators; import com.android.systemui.R; import com.android.systemui.SwipeHelper; +import com.android.systemui.plugins.FalsingManager; import com.android.systemui.recents.Constants; import com.android.systemui.recents.LegacyRecentsImpl; import com.android.systemui.recents.events.EventBus; @@ -107,7 +108,7 @@ class TaskStackViewTouchHandler implements SwipeHelper.Callback { boolean mInterceptedBySwipeHelper; public TaskStackViewTouchHandler(Context context, TaskStackView sv, - TaskStackViewScroller scroller) { + TaskStackViewScroller scroller, FalsingManager falsingManager) { Resources res = context.getResources(); ViewConfiguration configuration = ViewConfiguration.get(context); mContext = context; @@ -119,7 +120,7 @@ class TaskStackViewTouchHandler implements SwipeHelper.Callback { mWindowTouchSlop = configuration.getScaledWindowTouchSlop(); mFlingAnimUtils = new FlingAnimationUtils(context, 0.2f); mOverscrollSize = res.getDimensionPixelSize(R.dimen.recents_fling_overscroll_distance); - mSwipeHelper = new SwipeHelper(SwipeHelper.X, this, context) { + mSwipeHelper = new SwipeHelper(SwipeHelper.X, this, context, falsingManager) { @Override protected float getSize(View v) { return getScaledDismissSize(); diff --git a/packages/SystemUI/src/com/android/systemui/SwipeHelper.java b/packages/SystemUI/src/com/android/systemui/SwipeHelper.java index 84e0238fdd3a..58c52a1fc50e 100644 --- a/packages/SystemUI/src/com/android/systemui/SwipeHelper.java +++ b/packages/SystemUI/src/com/android/systemui/SwipeHelper.java @@ -34,7 +34,6 @@ import android.view.View; import android.view.ViewConfiguration; import android.view.accessibility.AccessibilityEvent; -import com.android.systemui.classifier.FalsingManagerFactory; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin; import com.android.systemui.statusbar.FlingAnimationUtils; @@ -98,7 +97,8 @@ public class SwipeHelper implements Gefingerpoken { private final ArrayMap mDismissPendingMap = new ArrayMap<>(); - public SwipeHelper(int swipeDirection, Callback callback, Context context) { + public SwipeHelper( + int swipeDirection, Callback callback, Context context, FalsingManager falsingManager) { mContext = context; mCallback = callback; mHandler = new Handler(); @@ -113,7 +113,7 @@ public class SwipeHelper implements Gefingerpoken { mDensityScale = res.getDisplayMetrics().density; mFalsingThreshold = res.getDimensionPixelSize(R.dimen.swipe_helper_falsing_threshold); mFadeDependingOnAmountSwiped = res.getBoolean(R.bool.config_fadeDependingOnAmountSwiped); - mFalsingManager = FalsingManagerFactory.getInstance(context); + mFalsingManager = falsingManager; mFlingAnimationUtils = new FlingAnimationUtils(context, getMaxEscapeAnimDuration() / 1000f); } diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java index c7f4c389fb3f..e361e988070e 100644 --- a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java +++ b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java @@ -34,9 +34,9 @@ import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.assist.AssistManager; -import com.android.systemui.classifier.FalsingManagerFactory; import com.android.systemui.dock.DockManager; import com.android.systemui.keyguard.DismissCallbackRegistry; +import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.power.EnhancedEstimates; import com.android.systemui.power.EnhancedEstimatesImpl; @@ -133,9 +133,10 @@ public class SystemUIFactory { public KeyguardBouncer createKeyguardBouncer(Context context, ViewMediatorCallback callback, LockPatternUtils lockPatternUtils, ViewGroup container, DismissCallbackRegistry dismissCallbackRegistry, - KeyguardBouncer.BouncerExpansionCallback expansionCallback) { + KeyguardBouncer.BouncerExpansionCallback expansionCallback, + FalsingManager falsingManager) { return new KeyguardBouncer(context, callback, lockPatternUtils, container, - dismissCallbackRegistry, FalsingManagerFactory.getInstance(context), + dismissCallbackRegistry, falsingManager, expansionCallback, UnlockMethodCache.getInstance(context), KeyguardUpdateMonitor.getInstance(context), new Handler(Looper.getMainLooper())); } diff --git a/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerFactory.java b/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerFactory.java deleted file mode 100644 index 01921f0d9a60..000000000000 --- a/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerFactory.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2015 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.systemui.classifier; - -import android.content.Context; - -import com.android.systemui.Dependency; -import com.android.systemui.plugins.FalsingManager; - -/** - * When the phone is locked, listens to touch, sensor and phone events and sends them to - * DataCollector and HumanInteractionClassifier. - * - * It does not collect touch events when the bouncer shows up. - * - * TODO: FalsingManager supports dependency injection. Use it. - */ -public class FalsingManagerFactory { - private static FalsingManager sInstance = null; - - private FalsingManagerFactory() {} - - public static FalsingManager getInstance(Context context) { - if (sInstance == null) { - sInstance = Dependency.get(FalsingManager.class); - } - return sInstance; - } - -} diff --git a/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerFake.java b/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerFake.java new file mode 100644 index 000000000000..ea175edf0be1 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerFake.java @@ -0,0 +1,246 @@ +/* + * Copyright (C) 2019 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.systemui.classifier; + +import android.net.Uri; +import android.view.MotionEvent; + +import com.android.internal.annotations.VisibleForTesting; +import com.android.systemui.plugins.FalsingManager; + +import java.io.PrintWriter; + +/** + * Simple Fake for testing where {@link FalsingManager} is required. + */ +public class FalsingManagerFake implements FalsingManager { + private boolean mIsFalseTouch; + private boolean mIsUnlockingDisabled; + private boolean mIsClassiferEnabled; + private boolean mShouldEnforceBouncer; + private boolean mIsReportingEnabled; + + @Override + public void onSucccessfulUnlock() { + + } + + @Override + public void onNotificationActive() { + + } + + @Override + public void setShowingAod(boolean showingAod) { + + } + + @Override + public void onNotificatonStartDraggingDown() { + + } + + @VisibleForTesting + public void setIsUnlockingDisabled(boolean isUnlockingDisabled) { + mIsUnlockingDisabled = isUnlockingDisabled; + } + + @Override + public boolean isUnlockingDisabled() { + return mIsUnlockingDisabled; + } + + @VisibleForTesting + public void setIsFalseTouch(boolean isFalseTouch) { + mIsFalseTouch = isFalseTouch; + } + + @Override + public boolean isFalseTouch() { + return mIsFalseTouch; + } + + @Override + public void onNotificatonStopDraggingDown() { + + } + + @Override + public void setNotificationExpanded() { + + } + + @VisibleForTesting + public void setIsClassiferEnabled(boolean isClassiferEnabled) { + mIsClassiferEnabled = isClassiferEnabled; + } + + @Override + public boolean isClassiferEnabled() { + return mIsClassiferEnabled; + } + + @Override + public void onQsDown() { + + } + + @Override + public void setQsExpanded(boolean expanded) { + + } + + @VisibleForTesting + public void setShouldEnforceBouncer(boolean shouldEnforceBouncer) { + mShouldEnforceBouncer = shouldEnforceBouncer; + } + + @Override + public boolean shouldEnforceBouncer() { + return mShouldEnforceBouncer; + } + + @Override + public void onTrackingStarted(boolean secure) { + + } + + @Override + public void onTrackingStopped() { + + } + + @Override + public void onLeftAffordanceOn() { + + } + + @Override + public void onCameraOn() { + + } + + @Override + public void onAffordanceSwipingStarted(boolean rightCorner) { + + } + + @Override + public void onAffordanceSwipingAborted() { + + } + + @Override + public void onStartExpandingFromPulse() { + + } + + @Override + public void onExpansionFromPulseStopped() { + + } + + @Override + public Uri reportRejectedTouch() { + return null; + } + + @Override + public void onScreenOnFromTouch() { + + } + + + @VisibleForTesting + public void setIsReportingEnabled(boolean isReportingEnabled) { + mIsReportingEnabled = isReportingEnabled; + } + + @Override + public boolean isReportingEnabled() { + return mIsReportingEnabled; + } + + @Override + public void onUnlockHintStarted() { + + } + + @Override + public void onCameraHintStarted() { + + } + + @Override + public void onLeftAffordanceHintStarted() { + + } + + @Override + public void onScreenTurningOn() { + + } + + @Override + public void onScreenOff() { + + } + + @Override + public void onNotificatonStopDismissing() { + + } + + @Override + public void onNotificationDismissed() { + + } + + @Override + public void onNotificatonStartDismissing() { + + } + + @Override + public void onNotificationDoubleTap(boolean accepted, float dx, float dy) { + + } + + @Override + public void onBouncerShown() { + + } + + @Override + public void onBouncerHidden() { + + } + + @Override + public void onTouchEvent(MotionEvent ev, int width, int height) { + + } + + @Override + public void dump(PrintWriter pw) { + + } + + @Override + public void cleanup() { + } +} diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java b/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java index d22d2c3fd47f..1bc7e635f9ed 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java @@ -28,8 +28,8 @@ import com.android.keyguard.KeyguardUpdateMonitor; import com.android.systemui.Dependency; import com.android.systemui.R; import com.android.systemui.SystemUIApplication; -import com.android.systemui.classifier.FalsingManagerFactory; import com.android.systemui.dock.DockManager; +import com.android.systemui.plugins.FalsingManager; import com.android.systemui.statusbar.phone.BiometricUnlockController; import com.android.systemui.statusbar.phone.DozeParameters; import com.android.systemui.util.AsyncSensorManager; @@ -42,7 +42,7 @@ public class DozeFactory { } /** Creates a DozeMachine with its parts for {@code dozeService}. */ - public DozeMachine assembleMachine(DozeService dozeService) { + public DozeMachine assembleMachine(DozeService dozeService, FalsingManager falsingManager) { Context context = dozeService; SensorManager sensorManager = Dependency.get(AsyncSensorManager.class); AlarmManager alarmManager = context.getSystemService(AlarmManager.class); @@ -64,7 +64,7 @@ public class DozeFactory { DozeMachine machine = new DozeMachine(wrappedService, config, wakeLock); machine.setParts(new DozeMachine.Part[]{ new DozePauser(handler, machine, alarmManager, params.getPolicy()), - new DozeFalsingManagerAdapter(FalsingManagerFactory.getInstance(context)), + new DozeFalsingManagerAdapter(falsingManager), createDozeTriggers(context, sensorManager, host, alarmManager, config, params, handler, wakeLock, machine, dockManager), createDozeUi(context, host, wakeLock, machine, handler, alarmManager, params), diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java index 83b6db7948b7..9e1514c31ab1 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java @@ -25,6 +25,7 @@ import android.util.Log; import com.android.systemui.Dependency; import com.android.systemui.plugins.DozeServicePlugin; import com.android.systemui.plugins.DozeServicePlugin.RequestDoze; +import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.PluginListener; import com.android.systemui.shared.plugins.PluginManager; @@ -59,7 +60,8 @@ public class DozeService extends DreamService } mPluginManager = Dependency.get(PluginManager.class); mPluginManager.addPluginListener(this, DozeServicePlugin.class, false /* allowMultiple */); - mDozeMachine = new DozeFactory().assembleMachine(this); + mDozeMachine = new DozeFactory().assembleMachine( + this, Dependency.get(FalsingManager.class)); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java index e9f99acd8d46..36c3cc68be85 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java @@ -84,7 +84,7 @@ import com.android.systemui.Dependency; import com.android.systemui.SystemUI; import com.android.systemui.SystemUIFactory; import com.android.systemui.UiOffloadThread; -import com.android.systemui.classifier.FalsingManagerFactory; +import com.android.systemui.plugins.FalsingManager; import com.android.systemui.statusbar.phone.BiometricUnlockController; import com.android.systemui.statusbar.phone.KeyguardBypassController; import com.android.systemui.statusbar.phone.NotificationPanelView; @@ -1599,7 +1599,7 @@ public class KeyguardViewMediator extends SystemUI { Trace.beginSection("KeyguardViewMediator#handleMessage START_KEYGUARD_EXIT_ANIM"); StartKeyguardExitAnimParams params = (StartKeyguardExitAnimParams) msg.obj; handleStartKeyguardExitAnimation(params.startTime, params.fadeoutDuration); - FalsingManagerFactory.getInstance(mContext).onSucccessfulUnlock(); + Dependency.get(FalsingManager.class).onSucccessfulUnlock(); Trace.endSection(); break; case KEYGUARD_DONE_PENDING_TIMEOUT: @@ -2071,10 +2071,11 @@ public class KeyguardViewMediator extends SystemUI { public StatusBarKeyguardViewManager registerStatusBar(StatusBar statusBar, ViewGroup container, NotificationPanelView panelView, BiometricUnlockController biometricUnlockController, ViewGroup lockIconContainer, - View notificationContainer, KeyguardBypassController bypassController) { + View notificationContainer, KeyguardBypassController bypassController, + FalsingManager falsingManager) { mStatusBarKeyguardViewManager.registerStatusBar(statusBar, container, panelView, biometricUnlockController, mDismissCallbackRegistry, lockIconContainer, - notificationContainer, bypassController); + notificationContainer, bypassController, falsingManager); return mStatusBarKeyguardViewManager; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/DragDownHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/DragDownHelper.java index 8385c8e00392..5adee40613e6 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/DragDownHelper.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/DragDownHelper.java @@ -29,7 +29,6 @@ import com.android.systemui.ExpandHelper; import com.android.systemui.Gefingerpoken; import com.android.systemui.Interpolators; import com.android.systemui.R; -import com.android.systemui.classifier.FalsingManagerFactory; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.statusbar.notification.row.ExpandableView; @@ -59,14 +58,15 @@ public class DragDownHelper implements Gefingerpoken { private FalsingManager mFalsingManager; public DragDownHelper(Context context, View host, ExpandHelper.Callback callback, - DragDownCallback dragDownCallback) { + DragDownCallback dragDownCallback, + FalsingManager falsingManager) { mMinDragDistance = context.getResources().getDimensionPixelSize( R.dimen.keyguard_drag_down_min_distance); mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); mCallback = callback; mDragDownCallback = dragDownCallback; mHost = host; - mFalsingManager = FalsingManagerFactory.getInstance(context); + mFalsingManager = falsingManager; } @Override diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/PulseExpansionHandler.kt b/packages/SystemUI/src/com/android/systemui/statusbar/PulseExpansionHandler.kt index 986486ac14d4..48d6de964b08 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/PulseExpansionHandler.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/PulseExpansionHandler.kt @@ -27,11 +27,11 @@ import android.os.SystemClock import android.view.MotionEvent import android.view.VelocityTracker import android.view.ViewConfiguration +import com.android.systemui.Dependency import com.android.systemui.Gefingerpoken import com.android.systemui.Interpolators import com.android.systemui.R -import com.android.systemui.classifier.FalsingManagerFactory import com.android.systemui.plugins.FalsingManager import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow @@ -115,7 +115,7 @@ constructor(context: Context, mMinDragDistance = context.resources.getDimensionPixelSize( R.dimen.keyguard_drag_down_min_distance) mTouchSlop = ViewConfiguration.get(context).scaledTouchSlop.toFloat() - mFalsingManager = FalsingManagerFactory.getInstance(context) + mFalsingManager = Dependency.get(FalsingManager::class.java) mPowerManager = context.getSystemService(PowerManager::class.java) } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ActivatableNotificationView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ActivatableNotificationView.java index dca152fbe37a..8d7325118139 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ActivatableNotificationView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ActivatableNotificationView.java @@ -33,9 +33,9 @@ import android.view.accessibility.AccessibilityManager; import android.view.animation.Interpolator; import android.view.animation.PathInterpolator; +import com.android.systemui.Dependency; import com.android.systemui.Interpolators; import com.android.systemui.R; -import com.android.systemui.classifier.FalsingManagerFactory; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.statusbar.NotificationShelf; import com.android.systemui.statusbar.notification.FakeShadowView; @@ -130,7 +130,7 @@ public abstract class ActivatableNotificationView extends ExpandableOutlineView private boolean mLastInSection; private boolean mFirstInSection; private boolean mIsBelowSpeedBump; - private FalsingManager mFalsingManager; + private final FalsingManager mFalsingManager; private float mNormalBackgroundVisibilityAmount; private float mDimmedBackgroundFadeInAmount = -1; @@ -164,10 +164,10 @@ public abstract class ActivatableNotificationView extends ExpandableOutlineView super(context, attrs); mSlowOutFastInInterpolator = new PathInterpolator(0.8f, 0.0f, 0.6f, 1.0f); mSlowOutLinearInInterpolator = new PathInterpolator(0.8f, 0.0f, 1.0f, 1.0f); + mFalsingManager = Dependency.get(FalsingManager.class); // TODO: inject into a controller. setClipChildren(false); setClipToPadding(false); updateColors(); - mFalsingManager = FalsingManagerFactory.getInstance(context); mAccessibilityManager = AccessibilityManager.getInstance(mContext); mDoubleTapHelper = new DoubleTapHelper(this, (active) -> { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java index d6aeb4ff2c23..65e744b9e047 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java @@ -74,7 +74,6 @@ import com.android.internal.widget.CachingIconView; import com.android.systemui.Dependency; import com.android.systemui.Interpolators; import com.android.systemui.R; -import com.android.systemui.classifier.FalsingManagerFactory; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.PluginListener; import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin; @@ -1637,7 +1636,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView public ExpandableNotificationRow(Context context, AttributeSet attrs) { super(context, attrs); - mFalsingManager = FalsingManagerFactory.getInstance(context); + mFalsingManager = Dependency.get(FalsingManager.class); // TODO: inject into a controller. mNotificationInflater = new NotificationContentInflater(this); mMenuRow = new NotificationMenuRow(mContext); mImageResolver = new NotificationInlineImageResolver(context, diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java index f50790f3013b..688e8eb8f2e3 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java @@ -86,7 +86,6 @@ import com.android.systemui.ExpandHelper; import com.android.systemui.Interpolators; import com.android.systemui.R; import com.android.systemui.SwipeHelper; -import com.android.systemui.classifier.FalsingManagerFactory; import com.android.systemui.colorextraction.SysuiColorExtractor; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.FalsingManager; @@ -516,7 +515,8 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd ActivityStarter activityStarter, StatusBarStateController statusBarStateController, HeadsUpManagerPhone headsUpManager, - KeyguardBypassController keyguardBypassController) { + KeyguardBypassController keyguardBypassController, + FalsingManager falsingManager) { super(context, attrs, 0, 0); Resources res = getResources(); @@ -531,6 +531,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd mHeadsUpManager.addListener(mRoundnessManager); mHeadsUpManager.setAnimationStateHandler(this::setHeadsUpGoingAwayAnimationsAllowed); mKeyguardBypassController = keyguardBypassController; + mFalsingManager = falsingManager; mSectionsManager = new NotificationSectionsManager( @@ -555,10 +556,9 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd mExpandHelper.setEventSource(this); mExpandHelper.setScrollAdapter(this); mSwipeHelper = new NotificationSwipeHelper(SwipeHelper.X, mNotificationCallback, - getContext(), mMenuEventListener); + getContext(), mMenuEventListener, mFalsingManager); mStackScrollAlgorithm = createStackScrollAlgorithm(context); initView(context); - mFalsingManager = FalsingManagerFactory.getInstance(context); mShouldDrawNotificationBackground = res.getBoolean(R.bool.config_drawNotificationBackground); mFadeNotificationsOnDismiss = diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSwipeHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSwipeHelper.java index 4dfc343df283..0968674d31cc 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSwipeHelper.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSwipeHelper.java @@ -28,6 +28,7 @@ import android.view.View; import com.android.internal.annotations.VisibleForTesting; import com.android.systemui.SwipeHelper; +import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin; import com.android.systemui.plugins.statusbar.NotificationSwipeActionHelper; import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow; @@ -50,9 +51,11 @@ class NotificationSwipeHelper extends SwipeHelper private boolean mIsExpanded; private boolean mPulsing; - public NotificationSwipeHelper(int swipeDirection, NotificationCallback callback, - Context context, NotificationMenuRowPlugin.OnMenuEventListener menuListener) { - super(swipeDirection, callback, context); + NotificationSwipeHelper( + int swipeDirection, NotificationCallback callback, Context context, + NotificationMenuRowPlugin.OnMenuEventListener menuListener, + FalsingManager falsingManager) { + super(swipeDirection, callback, context, falsingManager); mMenuListener = menuListener; mCallback = callback; mFalsingCheck = new Runnable() { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardAffordanceHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardAffordanceHelper.java index 4691a31fad21..66b1dd8db123 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardAffordanceHelper.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardAffordanceHelper.java @@ -27,7 +27,6 @@ import android.view.ViewConfiguration; import com.android.systemui.Interpolators; import com.android.systemui.R; -import com.android.systemui.classifier.FalsingManagerFactory; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.statusbar.FlingAnimationUtils; import com.android.systemui.statusbar.KeyguardAffordanceView; @@ -59,7 +58,7 @@ public class KeyguardAffordanceHelper { private KeyguardAffordanceView mLeftIcon; private KeyguardAffordanceView mRightIcon; private Animator mSwipeAnimator; - private FalsingManager mFalsingManager; + private final FalsingManager mFalsingManager; private int mMinBackgroundRadius; private boolean mMotionCancelled; private int mTouchTargetSize; @@ -80,12 +79,13 @@ public class KeyguardAffordanceHelper { } }; - KeyguardAffordanceHelper(Callback callback, Context context) { + KeyguardAffordanceHelper(Callback callback, Context context, FalsingManager falsingManager) { mContext = context; mCallback = callback; initIcons(); updateIcon(mLeftIcon, 0.0f, mLeftIcon.getRestingAlpha(), false, false, true, false); updateIcon(mRightIcon, 0.0f, mRightIcon.getRestingAlpha(), false, false, true, false); + mFalsingManager = falsingManager; initDimens(); } @@ -102,7 +102,6 @@ public class KeyguardAffordanceHelper { mHintGrowAmount = mContext.getResources().getDimensionPixelSize(R.dimen.hint_grow_amount_sideways); mFlingAnimationUtils = new FlingAnimationUtils(mContext, 0.4f); - mFalsingManager = FalsingManagerFactory.getInstance(mContext); } private void initIcons() { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java index a0847b62eddb..d0626ed780e2 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -63,7 +63,6 @@ import com.android.systemui.DejankUtils; import com.android.systemui.Dependency; import com.android.systemui.Interpolators; import com.android.systemui.R; -import com.android.systemui.classifier.FalsingManagerFactory; import com.android.systemui.fragments.FragmentHostManager; import com.android.systemui.fragments.FragmentHostManager.FragmentListener; import com.android.systemui.plugins.FalsingManager; @@ -391,11 +390,12 @@ public class NotificationPanelView extends PanelView implements NotificationWakeUpCoordinator coordinator, PulseExpansionHandler pulseExpansionHandler, DynamicPrivacyController dynamicPrivacyController, - KeyguardBypassController bypassController) { + KeyguardBypassController bypassController, + FalsingManager falsingManager) { super(context, attrs); setWillNotDraw(!DEBUG); mInjectionInflationController = injectionInflationController; - mFalsingManager = FalsingManagerFactory.getInstance(context); + mFalsingManager = falsingManager; mPowerManager = context.getSystemService(PowerManager.class); mWakeUpCoordinator = coordinator; mAccessibilityManager = context.getSystemService(AccessibilityManager.class); @@ -625,7 +625,7 @@ public class NotificationPanelView extends PanelView implements } private void initBottomArea() { - mAffordanceHelper = new KeyguardAffordanceHelper(this, getContext()); + mAffordanceHelper = new KeyguardAffordanceHelper(this, getContext(), mFalsingManager); mKeyguardBottomArea.setAffordanceHelper(mAffordanceHelper); mKeyguardBottomArea.setStatusBar(mStatusBar); mKeyguardBottomArea.setUserSetupComplete(mUserSetupComplete); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java index f8e1093e210b..31600e391f34 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java @@ -42,7 +42,6 @@ import com.android.systemui.DejankUtils; import com.android.systemui.Dependency; import com.android.systemui.Interpolators; import com.android.systemui.R; -import com.android.systemui.classifier.FalsingManagerFactory; import com.android.systemui.doze.DozeLog; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.statusbar.StatusBarStateController; @@ -111,7 +110,7 @@ public abstract class PanelView extends FrameLayout { private FlingAnimationUtils mFlingAnimationUtils; private FlingAnimationUtils mFlingAnimationUtilsClosing; private FlingAnimationUtils mFlingAnimationUtilsDismissing; - private FalsingManager mFalsingManager; + private final FalsingManager mFalsingManager; private final VibratorHelper mVibratorHelper; /** @@ -214,7 +213,7 @@ public abstract class PanelView extends FrameLayout { 0.5f /* maxLengthSeconds */, 0.2f /* speedUpFactor */, 0.6f /* x2 */, 0.84f /* y2 */); mBounceInterpolator = new BounceInterpolator(); - mFalsingManager = FalsingManagerFactory.getInstance(context); + mFalsingManager = Dependency.get(FalsingManager.class); // TODO: inject into a controller. mNotificationsDragEnabled = getResources().getBoolean(R.bool.config_enableNotificationShadeDrag); mVibratorHelper = Dependency.get(VibratorHelper.class); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index c943a04c0f2a..51bdefc6a66c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -147,7 +147,6 @@ import com.android.systemui.assist.AssistManager; import com.android.systemui.bubbles.BubbleController; import com.android.systemui.charging.WirelessChargingAnimation; import com.android.systemui.classifier.FalsingLog; -import com.android.systemui.classifier.FalsingManagerFactory; import com.android.systemui.colorextraction.SysuiColorExtractor; import com.android.systemui.doze.DozeHost; import com.android.systemui.doze.DozeLog; @@ -701,6 +700,7 @@ public class StatusBar extends SystemUI implements DemoMode, mRecents = getComponent(Recents.class); mKeyguardManager = (KeyguardManager) mContext.getSystemService(Context.KEYGUARD_SERVICE); + mFalsingManager = Dependency.get(FalsingManager.class); // Connect in to the status bar manager service mCommandQueue = getComponent(CommandQueue.class); @@ -776,7 +776,6 @@ public class StatusBar extends SystemUI implements DemoMode, putComponent(DozeHost.class, mDozeServiceHost); mScreenPinningRequest = new ScreenPinningRequest(mContext); - mFalsingManager = FalsingManagerFactory.getInstance(mContext); Dependency.get(ActivityStarterDelegate.class).setActivityStarterImpl(this); @@ -1242,7 +1241,7 @@ public class StatusBar extends SystemUI implements DemoMode, mStatusBarKeyguardViewManager = keyguardViewMediator.registerStatusBar(this, getBouncerContainer(), mNotificationPanel, mBiometricUnlockController, mStatusBarWindow.findViewById(R.id.lock_icon_container), mStackScroller, - mKeyguardBypassController); + mKeyguardBypassController, mFalsingManager); mKeyguardIndicationController .setStatusBarKeyguardViewManager(mStatusBarKeyguardViewManager); mBiometricUnlockController.setStatusBarKeyguardViewManager(mStatusBarKeyguardViewManager); @@ -2414,7 +2413,7 @@ public class StatusBar extends SystemUI implements DemoMode, mKeyguardUpdateMonitor.dump(fd, pw, args); } - FalsingManagerFactory.getInstance(mContext).dump(pw); + Dependency.get(FalsingManager.class).dump(pw); FalsingLog.dump(pw); pw.println("SharedPreferences:"); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java index 4d85a422d9b9..d47adbe180c8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java @@ -44,6 +44,7 @@ import com.android.systemui.Dependency; import com.android.systemui.SystemUIFactory; import com.android.systemui.dock.DockManager; import com.android.systemui.keyguard.DismissCallbackRegistry; +import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.shared.system.QuickStepContract; import com.android.systemui.statusbar.CommandQueue; @@ -210,7 +211,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb BiometricUnlockController biometricUnlockController, DismissCallbackRegistry dismissCallbackRegistry, ViewGroup lockIconContainer, View notificationContainer, - KeyguardBypassController bypassController) { + KeyguardBypassController bypassController, FalsingManager falsingManager) { mStatusBar = statusBar; mContainer = container; mLockIconContainer = lockIconContainer; @@ -220,7 +221,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb mBiometricUnlockController = biometricUnlockController; mBouncer = SystemUIFactory.getInstance().createKeyguardBouncer(mContext, mViewMediatorCallback, mLockPatternUtils, container, dismissCallbackRegistry, - mExpansionCallback); + mExpansionCallback, falsingManager); mNotificationPanelView = notificationPanelView; notificationPanelView.addExpansionListener(this); mBypassController = bypassController; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java index 1081bad9bf1c..6789930ab76e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java @@ -62,7 +62,6 @@ import com.android.internal.widget.FloatingToolbar; import com.android.systemui.Dependency; import com.android.systemui.ExpandHelper; import com.android.systemui.R; -import com.android.systemui.classifier.FalsingManagerFactory; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.DragDownHelper; @@ -157,7 +156,7 @@ public class StatusBarWindowView extends FrameLayout { setMotionEventSplittingEnabled(false); mTransparentSrcPaint.setColor(0); mTransparentSrcPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC)); - mFalsingManager = FalsingManagerFactory.getInstance(context); + mFalsingManager = Dependency.get(FalsingManager.class); // TODO: inject into a controller. mGestureDetector = new GestureDetector(context, mGestureListener); mStatusBarStateController = Dependency.get(StatusBarStateController.class); Dependency.get(TunerService.class).addTunable(mTunable, @@ -291,7 +290,7 @@ public class StatusBarWindowView extends FrameLayout { ExpandHelper.Callback expandHelperCallback = stackScrollLayout.getExpandHelperCallback(); DragDownHelper.DragDownCallback dragDownCallback = stackScrollLayout.getDragDownCallback(); setDragDownHelper(new DragDownHelper(getContext(), this, expandHelperCallback, - dragDownCallback)); + dragDownCallback, mFalsingManager)); } @VisibleForTesting diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java index c851c915d655..31054260eb15 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java @@ -53,6 +53,7 @@ import com.android.systemui.ExpandHelper; import com.android.systemui.InitController; import com.android.systemui.R; import com.android.systemui.SysuiTestCase; +import com.android.systemui.classifier.FalsingManagerFake; import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.EmptyShadeView; @@ -80,7 +81,6 @@ import com.android.systemui.statusbar.phone.StatusBarTest.TestableNotificationEn import com.android.systemui.statusbar.policy.ConfigurationController; import org.junit.After; -import org.junit.Assert; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -165,7 +165,8 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase { mock(ActivityStarterDelegate.class), mock(SysuiStatusBarStateController.class), mHeadsUpManager, - mKeyguardBypassController); + mKeyguardBypassController, + new FalsingManagerFake()); mStackScroller = spy(mStackScrollerInternal); mStackScroller.setShelf(notificationShelf); mStackScroller.setStatusBar(mBar); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationSwipeHelperTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationSwipeHelperTest.java index b24c3ddc1199..06a2eecd208c 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationSwipeHelperTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationSwipeHelperTest.java @@ -40,6 +40,7 @@ import androidx.test.filters.SmallTest; import com.android.systemui.SwipeHelper; import com.android.systemui.SysuiTestCase; +import com.android.systemui.classifier.FalsingManagerFake; import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin; import com.android.systemui.plugins.statusbar.NotificationSwipeActionHelper.SnoozeOption; import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow; @@ -76,7 +77,8 @@ public class NotificationSwipeHelperTest extends SysuiTestCase { public void setUp() throws Exception { mCallback = mock(NotificationSwipeHelper.NotificationCallback.class); mListener = mock(NotificationMenuRowPlugin.OnMenuEventListener.class); - mSwipeHelper = spy(new NotificationSwipeHelper(SwipeHelper.X, mCallback, mContext, mListener)); + mSwipeHelper = spy(new NotificationSwipeHelper( + SwipeHelper.X, mCallback, mContext, mListener, new FalsingManagerFake())); mView = mock(View.class); mEvent = mock(MotionEvent.class); mMenuRow = mock(NotificationMenuRowPlugin.class); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewTest.java index d14b460d8c63..a96efd7d2fc2 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewTest.java @@ -36,6 +36,7 @@ import androidx.test.filters.SmallTest; import com.android.keyguard.KeyguardStatusView; import com.android.systemui.SystemUIFactory; import com.android.systemui.SysuiTestCase; +import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.KeyguardAffordanceView; import com.android.systemui.statusbar.NotificationLockscreenUserManager; @@ -98,6 +99,8 @@ public class NotificationPanelViewTest extends SysuiTestCase { private PanelBar mPanelBar; @Mock private KeyguardAffordanceHelper mAffordanceHelper; + @Mock + private FalsingManager mFalsingManager; private NotificationPanelView mNotificationPanelView; @Before @@ -191,7 +194,8 @@ public class NotificationPanelViewTest extends SysuiTestCase { new InjectionInflationController( SystemUIFactory.getInstance().getRootComponent()), coordinator, expansionHandler, mock(DynamicPrivacyController.class), - bypassController); + bypassController, + mFalsingManager); mNotificationStackScroller = mNotificationStackScrollLayout; mKeyguardStatusView = NotificationPanelViewTest.this.mKeyguardStatusView; mKeyguardStatusBar = NotificationPanelViewTest.this.mKeyguardStatusBar; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java index da2e8dc90854..63f653b0b303 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java @@ -39,8 +39,10 @@ import androidx.test.filters.SmallTest; import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.SysuiTestCase; +import com.android.systemui.classifier.FalsingManagerFake; import com.android.systemui.keyguard.DismissCallbackRegistry; import com.android.systemui.plugins.ActivityStarter.OnDismissAction; +import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.SysuiStatusBarStateController; @@ -93,7 +95,8 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase { mViewMediatorCallback, mLockPatternUtils); mStatusBarKeyguardViewManager.registerStatusBar(mStatusBar, mContainer, mNotificationPanelView, mBiometrucUnlockController, mDismissCallbackRegistry, - mLockIconContainer, mNotificationContainer, mBypassController); + mLockIconContainer, mNotificationContainer, mBypassController, + new FalsingManagerFake()); mStatusBarKeyguardViewManager.show(null); } @@ -232,11 +235,11 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase { BiometricUnlockController fingerprintUnlockController, DismissCallbackRegistry dismissCallbackRegistry, ViewGroup lockIconContainer, View notificationContainer, - KeyguardBypassController bypassController) { + KeyguardBypassController bypassController, FalsingManager falsingManager) { super.registerStatusBar(statusBar, container, notificationPanelView, fingerprintUnlockController, dismissCallbackRegistry, lockIconContainer, - notificationContainer, bypassController); + notificationContainer, bypassController, falsingManager); mBouncer = StatusBarKeyguardViewManagerTest.this.mBouncer; } } -} \ No newline at end of file +} -- cgit v1.2.3-59-g8ed1b From 3e7ce55b520f94a97ba120e958a333935371bb87 Mon Sep 17 00:00:00 2001 From: Govinda Wasserman Date: Tue, 13 Aug 2019 11:35:44 -0400 Subject: Refactor SysUI to allow daggerization of implementations Test: Tested locally Change-Id: I7ccbc2aff1d911e255183c5468f10d4dd016dd86 --- .../android/systemui/SystemUIDefaultModule.java | 77 +++++++++++++ .../src/com/android/systemui/SystemUIFactory.java | 128 ++------------------- .../src/com/android/systemui/SystemUIModule.java | 60 ++++++++++ .../android/systemui/SystemUIRootComponent.java | 18 ++- .../com/android/systemui/assist/AssistManager.java | 5 + .../com/android/systemui/dock/DockManagerImpl.java | 41 +++++++ .../systemui/power/EnhancedEstimatesImpl.java | 8 ++ .../systemui/statusbar/NotificationListener.java | 5 + .../NotificationLockscreenUserManagerImpl.java | 5 + .../notification/NotificationEntryManager.java | 5 + .../NotificationInterruptionStateProvider.java | 5 + .../statusbar/phone/KeyguardEnvironmentImpl.java | 5 + .../systemui/statusbar/phone/StatusBar.java | 7 +- 13 files changed, 249 insertions(+), 120 deletions(-) create mode 100644 packages/SystemUI/src/com/android/systemui/SystemUIDefaultModule.java create mode 100644 packages/SystemUI/src/com/android/systemui/SystemUIModule.java create mode 100644 packages/SystemUI/src/com/android/systemui/dock/DockManagerImpl.java diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIDefaultModule.java b/packages/SystemUI/src/com/android/systemui/SystemUIDefaultModule.java new file mode 100644 index 000000000000..7f3159131f96 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/SystemUIDefaultModule.java @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2019 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.systemui; + +import static com.android.systemui.Dependency.LEAK_REPORT_EMAIL_NAME; + +import android.content.Context; + +import androidx.annotation.Nullable; + +import com.android.systemui.dock.DockManager; +import com.android.systemui.dock.DockManagerImpl; +import com.android.systemui.power.EnhancedEstimates; +import com.android.systemui.power.EnhancedEstimatesImpl; +import com.android.systemui.statusbar.NotificationLockscreenUserManager; +import com.android.systemui.statusbar.NotificationLockscreenUserManagerImpl; +import com.android.systemui.statusbar.notification.collection.NotificationData; +import com.android.systemui.statusbar.phone.KeyguardEnvironmentImpl; +import com.android.systemui.statusbar.phone.ShadeController; +import com.android.systemui.statusbar.phone.StatusBar; + +import javax.inject.Named; +import javax.inject.Singleton; + +import dagger.Binds; +import dagger.Module; +import dagger.Provides; + +/** + * A dagger module for injecting default implementations of components of System UI that may be + * overridden by the System UI implementation. + */ +@Module +abstract class SystemUIDefaultModule { + + @Singleton + @Provides + @Named(LEAK_REPORT_EMAIL_NAME) + @Nullable + static String provideLeakReportEmail() { + return null; + } + + @Binds + abstract EnhancedEstimates bindEnhancedEstimates(EnhancedEstimatesImpl enhancedEstimates); + + @Binds + abstract NotificationLockscreenUserManager bindNotificationLockscreenUserManager( + NotificationLockscreenUserManagerImpl notificationLockscreenUserManager); + + @Binds + abstract DockManager bindDockManager(DockManagerImpl dockManager); + + @Binds + abstract NotificationData.KeyguardEnvironment bindKeyguardEnvironment( + KeyguardEnvironmentImpl keyguardEnvironment); + + @Singleton + @Provides + static ShadeController provideShadeController(Context context) { + return SysUiServiceProvider.getComponent(context, StatusBar.class); + } +} diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java index e22a7e098f0a..674eba73fde3 100644 --- a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java +++ b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java @@ -16,13 +16,8 @@ package com.android.systemui; -import static com.android.systemui.Dependency.ALLOW_NOTIFICATION_LONG_PRESS_NAME; -import static com.android.systemui.Dependency.LEAK_REPORT_EMAIL_NAME; - -import android.annotation.Nullable; import android.app.AlarmManager; import android.content.Context; -import android.content.pm.PackageManager; import android.os.Handler; import android.os.Looper; import android.util.Log; @@ -33,59 +28,40 @@ import com.android.internal.util.function.TriConsumer; import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.ViewMediatorCallback; -import com.android.systemui.assist.AssistManager; -import com.android.systemui.dock.DockManager; import com.android.systemui.keyguard.DismissCallbackRegistry; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.statusbar.StatusBarStateController; -import com.android.systemui.power.EnhancedEstimates; -import com.android.systemui.power.EnhancedEstimatesImpl; import com.android.systemui.statusbar.KeyguardIndicationController; -import com.android.systemui.statusbar.NotificationListener; -import com.android.systemui.statusbar.NotificationLockscreenUserManager; -import com.android.systemui.statusbar.NotificationLockscreenUserManagerImpl; import com.android.systemui.statusbar.NotificationMediaManager; import com.android.systemui.statusbar.ScrimView; -import com.android.systemui.statusbar.notification.NotificationEntryManager; -import com.android.systemui.statusbar.notification.NotificationInterruptionStateProvider; import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator; -import com.android.systemui.statusbar.notification.collection.NotificationData; import com.android.systemui.statusbar.phone.DozeParameters; import com.android.systemui.statusbar.phone.KeyguardBouncer; import com.android.systemui.statusbar.phone.KeyguardBypassController; -import com.android.systemui.statusbar.phone.KeyguardEnvironmentImpl; -import com.android.systemui.statusbar.phone.KeyguardLiftController; import com.android.systemui.statusbar.phone.LockIcon; import com.android.systemui.statusbar.phone.LockscreenWallpaper; import com.android.systemui.statusbar.phone.NotificationIconAreaController; import com.android.systemui.statusbar.phone.ScrimController; import com.android.systemui.statusbar.phone.ScrimState; -import com.android.systemui.statusbar.phone.ShadeController; import com.android.systemui.statusbar.phone.StatusBar; import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; import com.android.systemui.statusbar.phone.UnlockMethodCache; -import com.android.systemui.statusbar.policy.DeviceProvisionedController; import com.android.systemui.statusbar.policy.KeyguardMonitor; -import com.android.systemui.util.AsyncSensorManager; import com.android.systemui.volume.VolumeDialogComponent; import java.util.function.Consumer; -import javax.inject.Named; -import javax.inject.Singleton; - import dagger.Module; import dagger.Provides; /** * Class factory to provide customizable SystemUI components. */ -@Module public class SystemUIFactory { private static final String TAG = "SystemUIFactory"; static SystemUIFactory mFactory; - private SystemUIRootComponent mRootComponent; + protected SystemUIRootComponent mRootComponent; public static T getInstance() { return (T) mFactory; @@ -110,18 +86,21 @@ public class SystemUIFactory { public SystemUIFactory() {} - protected void init(Context context) { - mRootComponent = DaggerSystemUIRootComponent.builder() - .systemUIFactory(this) - .dependencyProvider(new com.android.systemui.DependencyProvider()) - .contextHolder(new ContextHolder(context)) - .build(); + private void init(Context context) { + mRootComponent = buildSystemUIRootComponent(context); // Every other part of our codebase currently relies on Dependency, so we // really need to ensure the Dependency gets initialized early on. Dependency.initDependencies(mRootComponent); } + protected SystemUIRootComponent buildSystemUIRootComponent(Context context) { + return DaggerSystemUIRootComponent.builder() + .dependencyProvider(new com.android.systemui.DependencyProvider()) + .contextHolder(new ContextHolder(context)) + .build(); + } + public SystemUIRootComponent getRootComponent() { return mRootComponent; } @@ -170,93 +149,8 @@ public class SystemUIFactory { return new VolumeDialogComponent(systemUi, context); } - @Singleton - @Provides - public NotificationData.KeyguardEnvironment provideKeyguardEnvironment(Context context) { - return new KeyguardEnvironmentImpl(); - } - - @Singleton - @Provides - public NotificationLockscreenUserManager provideNotificationLockscreenUserManager( - Context context) { - return new NotificationLockscreenUserManagerImpl(context); - } - - @Singleton - @Provides - public AssistManager provideAssistManager(DeviceProvisionedController controller, - Context context) { - return new AssistManager(controller, context); - } - - @Singleton - @Provides - @Nullable - public DockManager provideDockManager(Context context) { - return null; - } - - @Singleton - @Provides - public NotificationEntryManager provideNotificationEntryManager(Context context) { - return new NotificationEntryManager(context); - } - - @Singleton - @Provides - public EnhancedEstimates provideEnhancedEstimates(Context context) { - return new EnhancedEstimatesImpl(); - } - - @Singleton - @Provides - @Named(LEAK_REPORT_EMAIL_NAME) - @Nullable - public String provideLeakReportEmail() { - return null; - } - - @Singleton - @Provides - @Nullable - public KeyguardLiftController provideKeyguardLiftController(Context context, - StatusBarStateController statusBarStateController, - AsyncSensorManager asyncSensorManager) { - if (!context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_FACE)) { - return null; - } - return new KeyguardLiftController(context, statusBarStateController, asyncSensorManager); - } - - @Singleton - @Provides - public NotificationListener provideNotificationListener(Context context) { - return new NotificationListener(context); - } - - @Singleton - @Provides - public NotificationInterruptionStateProvider provideNotificationInterruptionStateProvider( - Context context) { - return new NotificationInterruptionStateProvider(context); - } - - @Singleton - @Provides - @Named(ALLOW_NOTIFICATION_LONG_PRESS_NAME) - public boolean provideAllowNotificationLongPress() { - return true; - } - - @Singleton - @Provides - public ShadeController provideShadeController(Context context) { - return SysUiServiceProvider.getComponent(context, StatusBar.class); - } - @Module - protected static class ContextHolder { + public static class ContextHolder { private Context mContext; public ContextHolder(Context context) { diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIModule.java b/packages/SystemUI/src/com/android/systemui/SystemUIModule.java new file mode 100644 index 000000000000..e1baf9fcf9bc --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/SystemUIModule.java @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2019 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.systemui; + +import static com.android.systemui.Dependency.ALLOW_NOTIFICATION_LONG_PRESS_NAME; + +import android.annotation.Nullable; +import android.content.Context; +import android.content.pm.PackageManager; + +import com.android.systemui.plugins.statusbar.StatusBarStateController; +import com.android.systemui.statusbar.phone.KeyguardLiftController; +import com.android.systemui.util.AsyncSensorManager; + +import javax.inject.Named; +import javax.inject.Singleton; + +import dagger.Module; +import dagger.Provides; + +/** + * A dagger module for injecting components of System UI that are not overridden by the System UI + * implementation. + */ +@Module +public abstract class SystemUIModule { + + @Singleton + @Provides + @Nullable + static KeyguardLiftController provideKeyguardLiftController(Context context, + StatusBarStateController statusBarStateController, + AsyncSensorManager asyncSensorManager) { + if (!context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_FACE)) { + return null; + } + return new KeyguardLiftController(context, statusBarStateController, asyncSensorManager); + } + + @Singleton + @Provides + @Named(ALLOW_NOTIFICATION_LONG_PRESS_NAME) + static boolean provideAllowNotificationLongPress() { + return true; + } +} diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIRootComponent.java b/packages/SystemUI/src/com/android/systemui/SystemUIRootComponent.java index c732df3fdb9f..f18c8b2c3da6 100644 --- a/packages/SystemUI/src/com/android/systemui/SystemUIRootComponent.java +++ b/packages/SystemUI/src/com/android/systemui/SystemUIRootComponent.java @@ -16,11 +16,14 @@ package com.android.systemui; +import static com.android.systemui.Dependency.ALLOW_NOTIFICATION_LONG_PRESS_NAME; + import com.android.systemui.fragments.FragmentService; import com.android.systemui.statusbar.phone.StatusBar; import com.android.systemui.util.InjectionInflationController; import com.android.systemui.util.leak.GarbageMonitor; +import javax.inject.Named; import javax.inject.Singleton; import dagger.Component; @@ -29,8 +32,13 @@ import dagger.Component; * Root component for Dagger injection. */ @Singleton -@Component(modules = {SystemUIFactory.class, DependencyProvider.class, DependencyBinder.class, - ServiceBinder.class, SystemUIFactory.ContextHolder.class}) +@Component(modules = { + DependencyProvider.class, + DependencyBinder.class, + ServiceBinder.class, + SystemUIFactory.ContextHolder.class, + SystemUIModule.class, + SystemUIDefaultModule.class}) public interface SystemUIRootComponent { /** * Main dependency providing module. @@ -61,6 +69,12 @@ public interface SystemUIRootComponent { @Singleton GarbageMonitor createGarbageMonitor(); + /** + * Whether notification long press is allowed. + */ + @Named(ALLOW_NOTIFICATION_LONG_PRESS_NAME) + boolean allowNotificationLongPressName(); + /** * Injects into the supplied argument. */ diff --git a/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java b/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java index df1269e44461..aafffe2fe9d3 100644 --- a/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java +++ b/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java @@ -48,9 +48,13 @@ import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.policy.DeviceProvisionedController; +import javax.inject.Inject; +import javax.inject.Singleton; + /** * Class to manage everything related to assist in SystemUI. */ +@Singleton public class AssistManager implements ConfigurationChangedReceiver { /** @@ -149,6 +153,7 @@ public class AssistManager implements ConfigurationChangedReceiver { } }; + @Inject public AssistManager(DeviceProvisionedController controller, Context context) { mContext = context; mDeviceProvisionedController = controller; diff --git a/packages/SystemUI/src/com/android/systemui/dock/DockManagerImpl.java b/packages/SystemUI/src/com/android/systemui/dock/DockManagerImpl.java new file mode 100644 index 000000000000..fa7f5032ca16 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/dock/DockManagerImpl.java @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2019 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.systemui.dock; + +import javax.inject.Inject; +import javax.inject.Singleton; + +@Singleton +public class DockManagerImpl implements DockManager { + + @Inject + public DockManagerImpl() { + } + + @Override + public void addListener(DockEventListener callback) { + } + + @Override + public void removeListener(DockEventListener callback) { + } + + @Override + public boolean isDocked() { + return false; + } +} diff --git a/packages/SystemUI/src/com/android/systemui/power/EnhancedEstimatesImpl.java b/packages/SystemUI/src/com/android/systemui/power/EnhancedEstimatesImpl.java index 9b1f23aa0d0c..78f53501d100 100644 --- a/packages/SystemUI/src/com/android/systemui/power/EnhancedEstimatesImpl.java +++ b/packages/SystemUI/src/com/android/systemui/power/EnhancedEstimatesImpl.java @@ -2,8 +2,16 @@ package com.android.systemui.power; import com.android.settingslib.fuelgauge.Estimate; +import javax.inject.Inject; +import javax.inject.Singleton; + +@Singleton public class EnhancedEstimatesImpl implements EnhancedEstimates { + @Inject + public EnhancedEstimatesImpl() { + } + @Override public boolean isHybridNotificationEnabled() { return false; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationListener.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationListener.java index c375574f023d..14009214bdc5 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationListener.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationListener.java @@ -37,11 +37,15 @@ import com.android.systemui.statusbar.phone.NotificationListenerWithPlugins; import java.util.ArrayList; +import javax.inject.Inject; +import javax.inject.Singleton; + /** * This class handles listening to notification updates and passing them along to * NotificationPresenter to be displayed to the user. */ @SuppressLint("OverrideAbstract") +@Singleton public class NotificationListener extends NotificationListenerWithPlugins { private static final String TAG = "NotificationListener"; @@ -56,6 +60,7 @@ public class NotificationListener extends NotificationListenerWithPlugins { private final ArrayList mSettingsListeners = new ArrayList<>(); private final Context mContext; + @Inject public NotificationListener(Context context) { mContext = context; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java index e08a5ae07bd8..802a7d29a7a5 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java @@ -58,10 +58,14 @@ import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; +import javax.inject.Inject; +import javax.inject.Singleton; + /** * Handles keeping track of the current user, profiles, and various things related to hiding * contents, redacting notifications, and the lockscreen. */ +@Singleton public class NotificationLockscreenUserManagerImpl implements Dumpable, NotificationLockscreenUserManager, StateListener { private static final String TAG = "LockscreenUserManager"; @@ -171,6 +175,7 @@ public class NotificationLockscreenUserManagerImpl implements return mEntryManager; } + @Inject public NotificationLockscreenUserManagerImpl(Context context) { mContext = context; mDevicePolicyManager = (DevicePolicyManager) mContext.getSystemService( diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java index 879a8dfa2875..f8fef7d4778c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java @@ -54,11 +54,15 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.inject.Inject; +import javax.inject.Singleton; + /** * NotificationEntryManager is responsible for the adding, removing, and updating of notifications. * It also handles tasks such as their inflation and their interaction with other * Notification.*Manager objects. */ +@Singleton public class NotificationEntryManager implements Dumpable, NotificationContentInflater.InflationCallback, @@ -118,6 +122,7 @@ public class NotificationEntryManager implements } } + @Inject public NotificationEntryManager(Context context) { mNotificationData = new NotificationData(); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationInterruptionStateProvider.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationInterruptionStateProvider.java index 4fc646119261..68d95463bd3a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationInterruptionStateProvider.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationInterruptionStateProvider.java @@ -42,9 +42,13 @@ import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.phone.ShadeController; import com.android.systemui.statusbar.policy.HeadsUpManager; +import javax.inject.Inject; +import javax.inject.Singleton; + /** * Provides heads-up and pulsing state for notification entries. */ +@Singleton public class NotificationInterruptionStateProvider { private static final String TAG = "InterruptionStateProvider"; @@ -72,6 +76,7 @@ public class NotificationInterruptionStateProvider { protected boolean mUseHeadsUp = false; private boolean mDisableNotificationAlerts; + @Inject public NotificationInterruptionStateProvider(Context context) { this(context, (PowerManager) context.getSystemService(Context.POWER_SERVICE), diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardEnvironmentImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardEnvironmentImpl.java index 925a19d6f5eb..2c931ae1c8ef 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardEnvironmentImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardEnvironmentImpl.java @@ -25,6 +25,10 @@ import com.android.systemui.statusbar.NotificationLockscreenUserManager; import com.android.systemui.statusbar.notification.collection.NotificationData.KeyguardEnvironment; import com.android.systemui.statusbar.policy.DeviceProvisionedController; +import javax.inject.Inject; +import javax.inject.Singleton; + +@Singleton public class KeyguardEnvironmentImpl implements KeyguardEnvironment { private static final String TAG = "KeyguardEnvironmentImpl"; @@ -34,6 +38,7 @@ public class KeyguardEnvironmentImpl implements KeyguardEnvironment { private final DeviceProvisionedController mDeviceProvisionedController = Dependency.get(DeviceProvisionedController.class); + @Inject public KeyguardEnvironmentImpl() { } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index 97f069274f78..5d5cbe984859 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -25,6 +25,7 @@ import static android.app.StatusBarManager.WindowVisibleState; import static android.app.StatusBarManager.windowStateToString; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN_OR_SPLIT_SCREEN_SECONDARY; +import static com.android.systemui.Dependency.ALLOW_NOTIFICATION_LONG_PRESS_NAME; import static com.android.systemui.Dependency.BG_HANDLER; import static com.android.systemui.Dependency.MAIN_HANDLER; import static com.android.systemui.keyguard.WakefulnessLifecycle.WAKEFULNESS_ASLEEP; @@ -238,6 +239,7 @@ import java.util.ArrayList; import java.util.Map; import javax.inject.Inject; +import javax.inject.Named; import dagger.Subcomponent; @@ -382,6 +384,9 @@ public class StatusBar extends SystemUI implements DemoMode, @Nullable @Inject protected KeyguardLiftController mKeyguardLiftController; + @Inject + @Named(ALLOW_NOTIFICATION_LONG_PRESS_NAME) + boolean mAllowNotificationLongPress; // expanded notifications protected NotificationPanelView mNotificationPanel; // the sliding/resizing panel within the notification window @@ -1064,7 +1069,7 @@ public class StatusBar extends SystemUI implements DemoMode, final NotificationRowBinderImpl rowBinder = new NotificationRowBinderImpl( mContext, - SystemUIFactory.getInstance().provideAllowNotificationLongPress(), + mAllowNotificationLongPress, mKeyguardBypassController, mStatusBarStateController); -- cgit v1.2.3-59-g8ed1b From 87fccf07208189eaa0df1fb25c8d8141516eaced Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Tue, 13 Aug 2019 17:39:10 -0700 Subject: Removing unnecessary R.java declaration for subpackages, to make gradle setup simpler Removed: com.android.settingslib.restrictedlockutils com.android.settingslib.helputils com.android.keyguard Moving sysui settings to use sysui settings resource package name Test: Everything compiles / presubmit Bug: 130289146 Change-Id: I5d760fa2f04439d24b455839f7bdd5cc499e840f --- packages/SettingsLib/HelpUtils/AndroidManifest.xml | 2 +- .../HelpUtils/src/com/android/settingslib/HelpUtils.java | 4 ++-- .../SettingsLib/RestrictedLockUtils/AndroidManifest.xml | 2 +- packages/SystemUI/Android.bp | 14 +------------- .../SystemUI/src/com/android/keyguard/CarrierText.java | 2 ++ .../src/com/android/keyguard/CarrierTextController.java | 1 + .../src/com/android/keyguard/EmergencyCarrierArea.java | 2 ++ .../src/com/android/keyguard/KeyguardAbsKeyInputView.java | 1 + .../keyguard/KeyguardClockAccessibilityDelegate.java | 2 ++ .../src/com/android/keyguard/KeyguardClockSwitch.java | 1 + .../src/com/android/keyguard/KeyguardDisplayManager.java | 1 + .../src/com/android/keyguard/KeyguardEsimArea.java | 2 ++ .../src/com/android/keyguard/KeyguardHostView.java | 1 + .../src/com/android/keyguard/KeyguardMessageArea.java | 1 + .../SystemUI/src/com/android/keyguard/KeyguardPINView.java | 1 + .../src/com/android/keyguard/KeyguardPasswordView.java | 1 + .../src/com/android/keyguard/KeyguardPatternView.java | 1 + .../com/android/keyguard/KeyguardPinBasedInputView.java | 2 ++ .../com/android/keyguard/KeyguardSecurityContainer.java | 1 + .../com/android/keyguard/KeyguardSecurityViewFlipper.java | 1 + .../src/com/android/keyguard/KeyguardSimPinView.java | 1 + .../src/com/android/keyguard/KeyguardSimPukView.java | 1 + .../src/com/android/keyguard/KeyguardStatusView.java | 1 + .../src/com/android/keyguard/KeyguardUpdateMonitor.java | 1 + packages/SystemUI/src/com/android/keyguard/NumPadKey.java | 1 + .../src/com/android/keyguard/PasswordTextView.java | 2 ++ .../com/android/keyguard/clock/AnalogClockController.java | 2 +- .../com/android/keyguard/clock/BubbleClockController.java | 2 +- .../src/com/android/keyguard/clock/ClockLayout.java | 2 +- .../com/android/keyguard/clock/DefaultClockController.java | 2 +- .../src/com/android/keyguard/clock/ImageClock.java | 2 +- .../src/com/android/keyguard/clock/SmallClockPosition.java | 9 +++++---- .../android/systemui/keyguard/KeyguardViewMediator.java | 4 ++-- .../android/systemui/statusbar/phone/KeyguardBouncer.java | 2 +- .../statusbar/phone/StatusBarWindowController.java | 2 +- packages/SystemUI/tests/Android.mk | 2 +- .../com/android/keyguard/CarrierTextControllerTest.java | 1 + .../keyguard/KeyguardClockAccessibilityDelegateTest.java | 1 + .../src/com/android/keyguard/KeyguardClockSwitchTest.java | 1 + .../src/com/android/keyguard/KeyguardPatternViewTest.kt | 1 + .../android/keyguard/KeyguardPinBasedInputViewTest.java | 1 + .../android/keyguard/KeyguardSecurityContainerTest.java | 1 + .../src/com/android/keyguard/KeyguardSliceViewTest.java | 1 + .../src/com/android/keyguard/KeyguardStatusViewTest.java | 1 + .../src/com/android/systemui/IconPackOverlayTest.java | 1 + .../com/android/systemui/bubbles/BubblesTestActivity.java | 2 +- .../systemui/screenshot/ScreenshotStubActivity.java | 4 ++-- .../android/systemui/statusbar/NotificationTestHelper.java | 3 +-- .../notification/MediaNotificationProcessorTest.java | 2 +- .../notification/row/NotificationContentInflaterTest.java | 3 +-- .../row/wrapper/NotificationCustomViewWrapperTest.java | 2 +- .../statusbar/policy/NetworkControllerWifiTest.java | 14 +++++++------- .../src/android/testing/DexmakerShareClassLoaderRule.java | 8 +++++++- 53 files changed, 78 insertions(+), 48 deletions(-) diff --git a/packages/SettingsLib/HelpUtils/AndroidManifest.xml b/packages/SettingsLib/HelpUtils/AndroidManifest.xml index 5240ce44c9d9..ccad6e49ff8c 100644 --- a/packages/SettingsLib/HelpUtils/AndroidManifest.xml +++ b/packages/SettingsLib/HelpUtils/AndroidManifest.xml @@ -16,6 +16,6 @@ --> + package="com.android.settingslib.widget"> diff --git a/packages/SettingsLib/HelpUtils/src/com/android/settingslib/HelpUtils.java b/packages/SettingsLib/HelpUtils/src/com/android/settingslib/HelpUtils.java index e407d7239546..2d13b73d3d1f 100644 --- a/packages/SettingsLib/HelpUtils/src/com/android/settingslib/HelpUtils.java +++ b/packages/SettingsLib/HelpUtils/src/com/android/settingslib/HelpUtils.java @@ -33,11 +33,11 @@ import android.view.Menu; import android.view.MenuItem; import android.view.MenuItem.OnMenuItemClickListener; +import com.android.settingslib.widget.R; + import java.net.URISyntaxException; import java.util.Locale; -import com.android.settingslib.helputils.R; - /** * Functions to easily prepare contextual help menu option items with an intent that opens up the * browser to a particular URL, while taking into account the preferred language and app version. diff --git a/packages/SettingsLib/RestrictedLockUtils/AndroidManifest.xml b/packages/SettingsLib/RestrictedLockUtils/AndroidManifest.xml index d19a02238628..09756400b736 100644 --- a/packages/SettingsLib/RestrictedLockUtils/AndroidManifest.xml +++ b/packages/SettingsLib/RestrictedLockUtils/AndroidManifest.xml @@ -16,6 +16,6 @@ --> + package="com.android.settingslib.widget"> \ No newline at end of file diff --git a/packages/SystemUI/Android.bp b/packages/SystemUI/Android.bp index 4c52b1324781..636b90af80a2 100644 --- a/packages/SystemUI/Android.bp +++ b/packages/SystemUI/Android.bp @@ -71,10 +71,6 @@ android_library { "telephony-common", ], - aaptflags: [ - "--extra-packages", - "com.android.keyguard", - ], kotlincflags: ["-Xjvm-default=enable"], plugins: ["dagger2-compiler-2.19"], @@ -132,7 +128,7 @@ android_library { kotlincflags: ["-Xjvm-default=enable"], aaptflags: [ "--extra-packages", - "com.android.keyguard:com.android.systemui", + "com.android.systemui", ], plugins: ["dagger2-compiler-2.19"], } @@ -160,10 +156,6 @@ android_app { kotlincflags: ["-Xjvm-default=enable"], dxflags: ["--multi-dex"], - aaptflags: [ - "--extra-packages", - "com.android.keyguard", - ], required: ["privapp_whitelist_com.android.systemui"], } @@ -180,10 +172,6 @@ android_app { privileged: true, dxflags: ["--multi-dex"], - aaptflags: [ - "--extra-packages", - "com.android.keyguard", - ], optimize: { proguard_flags_files: ["proguard.flags", "legacy/recents/proguard.flags"], }, diff --git a/packages/SystemUI/src/com/android/keyguard/CarrierText.java b/packages/SystemUI/src/com/android/keyguard/CarrierText.java index adcb7a125e80..b70d8341799a 100644 --- a/packages/SystemUI/src/com/android/keyguard/CarrierText.java +++ b/packages/SystemUI/src/com/android/keyguard/CarrierText.java @@ -24,6 +24,8 @@ import android.util.AttributeSet; import android.view.View; import android.widget.TextView; +import com.android.systemui.R; + import java.util.Locale; public class CarrierText extends TextView { diff --git a/packages/SystemUI/src/com/android/keyguard/CarrierTextController.java b/packages/SystemUI/src/com/android/keyguard/CarrierTextController.java index 10d132ad2763..2b8e3ee0dfc0 100644 --- a/packages/SystemUI/src/com/android/keyguard/CarrierTextController.java +++ b/packages/SystemUI/src/com/android/keyguard/CarrierTextController.java @@ -44,6 +44,7 @@ import com.android.internal.telephony.TelephonyIntents; import com.android.internal.telephony.TelephonyProperties; import com.android.settingslib.WirelessUtils; import com.android.systemui.Dependency; +import com.android.systemui.R; import com.android.systemui.keyguard.WakefulnessLifecycle; import java.util.ArrayList; diff --git a/packages/SystemUI/src/com/android/keyguard/EmergencyCarrierArea.java b/packages/SystemUI/src/com/android/keyguard/EmergencyCarrierArea.java index e98ef0607951..225bebe57128 100644 --- a/packages/SystemUI/src/com/android/keyguard/EmergencyCarrierArea.java +++ b/packages/SystemUI/src/com/android/keyguard/EmergencyCarrierArea.java @@ -21,6 +21,8 @@ import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; +import com.android.systemui.R; + public class EmergencyCarrierArea extends AlphaOptimizedLinearLayout { private CarrierText mCarrierText; diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardAbsKeyInputView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardAbsKeyInputView.java index 517abac671b5..d45603fd23ff 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardAbsKeyInputView.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardAbsKeyInputView.java @@ -33,6 +33,7 @@ import android.widget.LinearLayout; import com.android.internal.util.LatencyTracker; import com.android.internal.widget.LockPatternChecker; import com.android.internal.widget.LockPatternUtils; +import com.android.systemui.R; import java.util.Arrays; diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardClockAccessibilityDelegate.java b/packages/SystemUI/src/com/android/keyguard/KeyguardClockAccessibilityDelegate.java index 6a83c719b38f..a78c293a65ac 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardClockAccessibilityDelegate.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardClockAccessibilityDelegate.java @@ -23,6 +23,8 @@ import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; import android.widget.TextView; +import com.android.systemui.R; + /** * Replaces fancy colons with regular colons. Only works on TextViews. */ diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitch.java b/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitch.java index 5097216a7405..df0dc467f87e 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitch.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitch.java @@ -30,6 +30,7 @@ import com.android.internal.colorextraction.ColorExtractor; import com.android.internal.colorextraction.ColorExtractor.OnColorsChangedListener; import com.android.keyguard.clock.ClockManager; import com.android.systemui.Interpolators; +import com.android.systemui.R; import com.android.systemui.colorextraction.SysuiColorExtractor; import com.android.systemui.plugins.ClockPlugin; import com.android.systemui.plugins.statusbar.StatusBarStateController; diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardDisplayManager.java b/packages/SystemUI/src/com/android/keyguard/KeyguardDisplayManager.java index 0ec60e5dff7d..9380eb4b03f0 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardDisplayManager.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardDisplayManager.java @@ -35,6 +35,7 @@ import android.view.WindowManager; import com.android.internal.annotations.VisibleForTesting; import com.android.systemui.Dependency; +import com.android.systemui.R; import com.android.systemui.statusbar.NavigationBarController; import com.android.systemui.statusbar.phone.NavigationBarView; import com.android.systemui.util.InjectionInflationController; diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardEsimArea.java b/packages/SystemUI/src/com/android/keyguard/KeyguardEsimArea.java index c2bbfbf73bb6..fe641427cb31 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardEsimArea.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardEsimArea.java @@ -32,6 +32,8 @@ import android.view.View; import android.view.WindowManager; import android.widget.Button; +import com.android.systemui.R; + /*** * This button is used by the device with embedded SIM card to disable current carrier to unlock * the device with no cellular service. diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardHostView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardHostView.java index 14ead0427478..8e1f6d384d1d 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardHostView.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardHostView.java @@ -35,6 +35,7 @@ import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.KeyguardSecurityContainer.SecurityCallback; import com.android.keyguard.KeyguardSecurityModel.SecurityMode; import com.android.settingslib.Utils; +import com.android.systemui.R; import com.android.systemui.plugins.ActivityStarter.OnDismissAction; import java.io.File; diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardMessageArea.java b/packages/SystemUI/src/com/android/keyguard/KeyguardMessageArea.java index 037a8d3146d2..1ff98ddf2267 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardMessageArea.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardMessageArea.java @@ -31,6 +31,7 @@ import android.util.TypedValue; import android.view.View; import android.widget.TextView; +import com.android.systemui.R; import com.android.systemui.statusbar.policy.ConfigurationController; import java.lang.ref.WeakReference; diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardPINView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardPINView.java index 6808c0f73998..15d2ea7c3280 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardPINView.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardPINView.java @@ -24,6 +24,7 @@ import android.view.animation.AnimationUtils; import com.android.settingslib.animation.AppearAnimationUtils; import com.android.settingslib.animation.DisappearAnimationUtils; +import com.android.systemui.R; /** * Displays a PIN pad for unlocking. diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardPasswordView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardPasswordView.java index 963921561f67..eaaa3ed78654 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardPasswordView.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardPasswordView.java @@ -37,6 +37,7 @@ import android.widget.TextView; import android.widget.TextView.OnEditorActionListener; import com.android.internal.widget.TextViewInputDisabler; +import com.android.systemui.R; import java.util.List; /** diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardPatternView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardPatternView.java index 56b38f7382fa..34c15e64ff54 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardPatternView.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardPatternView.java @@ -42,6 +42,7 @@ import com.android.internal.widget.LockPatternView; import com.android.settingslib.animation.AppearAnimationCreator; import com.android.settingslib.animation.AppearAnimationUtils; import com.android.settingslib.animation.DisappearAnimationUtils; +import com.android.systemui.R; import java.util.List; diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardPinBasedInputView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardPinBasedInputView.java index ecafc3408224..274f739d8c29 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardPinBasedInputView.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardPinBasedInputView.java @@ -23,6 +23,8 @@ import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; +import com.android.systemui.R; + /** * A Pin based Keyguard input view */ diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java index 169c97b1ce22..ca7cd0d666ad 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java @@ -45,6 +45,7 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.KeyguardSecurityModel.SecurityMode; import com.android.systemui.Dependency; +import com.android.systemui.R; import com.android.systemui.SystemUIFactory; import com.android.systemui.statusbar.phone.UnlockMethodCache; import com.android.systemui.util.InjectionInflationController; diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityViewFlipper.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityViewFlipper.java index e6a02506b4a3..24da3ad46f23 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityViewFlipper.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityViewFlipper.java @@ -32,6 +32,7 @@ import android.widget.FrameLayout; import android.widget.ViewFlipper; import com.android.internal.widget.LockPatternUtils; +import com.android.systemui.R; /** * Subclass of the current view flipper that allows us to overload dispatchTouchEvent() so diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java index 69da990a0a73..367a7bd4aed7 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java @@ -41,6 +41,7 @@ import com.android.internal.telephony.ITelephony; import com.android.internal.telephony.IccCardConstants; import com.android.internal.telephony.IccCardConstants.State; import com.android.internal.telephony.PhoneConstants; +import com.android.systemui.R; /** * Displays a PIN pad for unlocking. diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSimPukView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSimPukView.java index 27f71d1ae2be..81f8c67605fe 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardSimPukView.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSimPukView.java @@ -40,6 +40,7 @@ import com.android.internal.telephony.ITelephony; import com.android.internal.telephony.IccCardConstants; import com.android.internal.telephony.IccCardConstants.State; import com.android.internal.telephony.PhoneConstants; +import com.android.systemui.R; /** diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java index 37e89c095575..1dfc5f25955b 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java @@ -40,6 +40,7 @@ import androidx.core.graphics.ColorUtils; import com.android.internal.widget.LockPatternUtils; import com.android.systemui.Dependency; +import com.android.systemui.R; import com.android.systemui.statusbar.policy.ConfigurationController; import java.io.FileDescriptor; diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java index 72ad99378eb0..ebcabdb6e144 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java @@ -94,6 +94,7 @@ import com.android.internal.telephony.TelephonyIntents; import com.android.internal.util.Preconditions; import com.android.internal.widget.LockPatternUtils; import com.android.settingslib.WirelessUtils; +import com.android.systemui.R; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.TaskStackChangeListener; import com.android.systemui.statusbar.phone.KeyguardBypassController; diff --git a/packages/SystemUI/src/com/android/keyguard/NumPadKey.java b/packages/SystemUI/src/com/android/keyguard/NumPadKey.java index 08691ec10d6a..ebdd8c653dce 100644 --- a/packages/SystemUI/src/com/android/keyguard/NumPadKey.java +++ b/packages/SystemUI/src/com/android/keyguard/NumPadKey.java @@ -29,6 +29,7 @@ import android.view.ViewGroup; import android.widget.TextView; import com.android.internal.widget.LockPatternUtils; +import com.android.systemui.R; public class NumPadKey extends ViewGroup { // list of "ABC", etc per digit, starting with '0' diff --git a/packages/SystemUI/src/com/android/keyguard/PasswordTextView.java b/packages/SystemUI/src/com/android/keyguard/PasswordTextView.java index b21bcc98ae68..409ae3f3c7d6 100644 --- a/packages/SystemUI/src/com/android/keyguard/PasswordTextView.java +++ b/packages/SystemUI/src/com/android/keyguard/PasswordTextView.java @@ -42,6 +42,8 @@ import android.view.animation.AnimationUtils; import android.view.animation.Interpolator; import android.widget.EditText; +import com.android.systemui.R; + import java.util.ArrayList; import java.util.Stack; diff --git a/packages/SystemUI/src/com/android/keyguard/clock/AnalogClockController.java b/packages/SystemUI/src/com/android/keyguard/clock/AnalogClockController.java index 9c5242ce1a3e..eba24004e387 100644 --- a/packages/SystemUI/src/com/android/keyguard/clock/AnalogClockController.java +++ b/packages/SystemUI/src/com/android/keyguard/clock/AnalogClockController.java @@ -26,7 +26,7 @@ import android.view.View; import android.widget.TextClock; import com.android.internal.colorextraction.ColorExtractor; -import com.android.keyguard.R; +import com.android.systemui.R; import com.android.systemui.colorextraction.SysuiColorExtractor; import com.android.systemui.plugins.ClockPlugin; diff --git a/packages/SystemUI/src/com/android/keyguard/clock/BubbleClockController.java b/packages/SystemUI/src/com/android/keyguard/clock/BubbleClockController.java index 8e81327a9325..3a2fbe5a9653 100644 --- a/packages/SystemUI/src/com/android/keyguard/clock/BubbleClockController.java +++ b/packages/SystemUI/src/com/android/keyguard/clock/BubbleClockController.java @@ -26,7 +26,7 @@ import android.view.View; import android.widget.TextClock; import com.android.internal.colorextraction.ColorExtractor; -import com.android.keyguard.R; +import com.android.systemui.R; import com.android.systemui.colorextraction.SysuiColorExtractor; import com.android.systemui.plugins.ClockPlugin; diff --git a/packages/SystemUI/src/com/android/keyguard/clock/ClockLayout.java b/packages/SystemUI/src/com/android/keyguard/clock/ClockLayout.java index 7485d336174c..d44d89e63e8f 100644 --- a/packages/SystemUI/src/com/android/keyguard/clock/ClockLayout.java +++ b/packages/SystemUI/src/com/android/keyguard/clock/ClockLayout.java @@ -24,7 +24,7 @@ import android.util.MathUtils; import android.view.View; import android.widget.FrameLayout; -import com.android.keyguard.R; +import com.android.systemui.R; /** * Positions clock faces (analog, digital, typographic) and handles pixel shifting diff --git a/packages/SystemUI/src/com/android/keyguard/clock/DefaultClockController.java b/packages/SystemUI/src/com/android/keyguard/clock/DefaultClockController.java index 98679ade1022..c81935a15a15 100644 --- a/packages/SystemUI/src/com/android/keyguard/clock/DefaultClockController.java +++ b/packages/SystemUI/src/com/android/keyguard/clock/DefaultClockController.java @@ -26,7 +26,7 @@ import android.view.View; import android.widget.TextView; import com.android.internal.colorextraction.ColorExtractor; -import com.android.keyguard.R; +import com.android.systemui.R; import com.android.systemui.colorextraction.SysuiColorExtractor; import com.android.systemui.plugins.ClockPlugin; diff --git a/packages/SystemUI/src/com/android/keyguard/clock/ImageClock.java b/packages/SystemUI/src/com/android/keyguard/clock/ImageClock.java index 95f100433137..34c041bbb2dc 100644 --- a/packages/SystemUI/src/com/android/keyguard/clock/ImageClock.java +++ b/packages/SystemUI/src/com/android/keyguard/clock/ImageClock.java @@ -21,7 +21,7 @@ import android.util.AttributeSet; import android.widget.FrameLayout; import android.widget.ImageView; -import com.android.keyguard.R; +import com.android.systemui.R; import java.text.SimpleDateFormat; import java.util.Calendar; diff --git a/packages/SystemUI/src/com/android/keyguard/clock/SmallClockPosition.java b/packages/SystemUI/src/com/android/keyguard/clock/SmallClockPosition.java index 60ca945278f6..b3040744ce7a 100644 --- a/packages/SystemUI/src/com/android/keyguard/clock/SmallClockPosition.java +++ b/packages/SystemUI/src/com/android/keyguard/clock/SmallClockPosition.java @@ -20,6 +20,7 @@ import android.content.res.Resources; import android.util.MathUtils; import com.android.internal.annotations.VisibleForTesting; +import com.android.systemui.R; /** * Computes preferred position of clock by considering height of status bar and lock icon. @@ -40,10 +41,10 @@ class SmallClockPosition { private float mDarkAmount; SmallClockPosition(Resources res) { - this(res.getDimensionPixelSize(com.android.keyguard.R.dimen.status_bar_height), - res.getDimensionPixelSize(com.android.keyguard.R.dimen.keyguard_lock_padding), - res.getDimensionPixelSize(com.android.keyguard.R.dimen.keyguard_lock_height), - res.getDimensionPixelSize(com.android.keyguard.R.dimen.burn_in_prevention_offset_y) + this(res.getDimensionPixelSize(R.dimen.status_bar_height), + res.getDimensionPixelSize(R.dimen.keyguard_lock_padding), + res.getDimensionPixelSize(R.dimen.keyguard_lock_height), + res.getDimensionPixelSize(R.dimen.burn_in_prevention_offset_y) ); } diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java index 36c3cc68be85..f424a8e5d71f 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java @@ -81,6 +81,7 @@ import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.Dependency; +import com.android.systemui.R; import com.android.systemui.SystemUI; import com.android.systemui.SystemUIFactory; import com.android.systemui.UiOffloadThread; @@ -713,8 +714,7 @@ public class KeyguardViewMediator extends SystemUI { // Assume keyguard is showing (unless it's disabled) until we know for sure, unless Keyguard // is disabled. - if (mContext.getResources().getBoolean( - com.android.keyguard.R.bool.config_enableKeyguardService)) { + if (mContext.getResources().getBoolean(R.bool.config_enableKeyguardService)) { setShowingLocked(!shouldWaitForProvisioning() && !mLockPatternUtils.isLockScreenDisabled( KeyguardUpdateMonitor.getCurrentUser()), true /* forceCallbacks */); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java index c4d346ccaefb..66ddeb403fde 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java @@ -40,9 +40,9 @@ import com.android.keyguard.KeyguardHostView; import com.android.keyguard.KeyguardSecurityView; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.KeyguardUpdateMonitorCallback; -import com.android.keyguard.R; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.DejankUtils; +import com.android.systemui.R; import com.android.systemui.keyguard.DismissCallbackRegistry; import com.android.systemui.plugins.FalsingManager; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowController.java index 0ef981bdb3de..946fe0b3a2f8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowController.java @@ -39,9 +39,9 @@ import android.view.WindowManager; import android.view.WindowManager.LayoutParams; import com.android.internal.annotations.VisibleForTesting; -import com.android.keyguard.R; import com.android.systemui.Dependency; import com.android.systemui.Dumpable; +import com.android.systemui.R; import com.android.systemui.colorextraction.SysuiColorExtractor; import com.android.systemui.keyguard.KeyguardViewMediator; import com.android.systemui.plugins.statusbar.StatusBarStateController; diff --git a/packages/SystemUI/tests/Android.mk b/packages/SystemUI/tests/Android.mk index 5412cde0df55..81e2c22d5c4f 100644 --- a/packages/SystemUI/tests/Android.mk +++ b/packages/SystemUI/tests/Android.mk @@ -39,7 +39,7 @@ LOCAL_JAVA_LIBRARIES := \ telephony-common \ android.test.base \ -LOCAL_AAPT_FLAGS := --extra-packages com.android.systemui:com.android.keyguard +LOCAL_AAPT_FLAGS := --extra-packages com.android.systemui # sign this with platform cert, so this test is allowed to inject key events into # UI it doesn't own. This is necessary to allow screenshots to be taken diff --git a/packages/SystemUI/tests/src/com/android/keyguard/CarrierTextControllerTest.java b/packages/SystemUI/tests/src/com/android/keyguard/CarrierTextControllerTest.java index 0044ca7c0409..1421b06be621 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/CarrierTextControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/CarrierTextControllerTest.java @@ -46,6 +46,7 @@ import android.testing.TestableLooper; import com.android.internal.telephony.IccCardConstants; import com.android.systemui.Dependency; +import com.android.systemui.R; import com.android.systemui.SysuiTestCase; import com.android.systemui.keyguard.WakefulnessLifecycle; diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockAccessibilityDelegateTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockAccessibilityDelegateTest.java index dcafa7203ce9..00f88bfa2abb 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockAccessibilityDelegateTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockAccessibilityDelegateTest.java @@ -27,6 +27,7 @@ import android.widget.TextView; import androidx.test.filters.SmallTest; +import com.android.systemui.R; import com.android.systemui.SysuiTestCase; import org.junit.Before; diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockSwitchTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockSwitchTest.java index f01c0b421ef7..de7664c769e6 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockSwitchTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockSwitchTest.java @@ -39,6 +39,7 @@ import android.widget.FrameLayout; import android.widget.TextClock; import com.android.keyguard.clock.ClockManager; +import com.android.systemui.R; import com.android.systemui.SystemUIFactory; import com.android.systemui.SysuiTestCase; import com.android.systemui.plugins.ClockPlugin; diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPatternViewTest.kt b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPatternViewTest.kt index 5f03bdba40b4..42a89509975d 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPatternViewTest.kt +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPatternViewTest.kt @@ -21,6 +21,7 @@ import android.testing.AndroidTestingRunner import android.testing.TestableLooper import android.view.LayoutInflater +import com.android.systemui.R import com.android.systemui.SysuiTestCase import com.android.systemui.statusbar.policy.ConfigurationController import com.google.common.truth.Truth.assertThat diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPinBasedInputViewTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPinBasedInputViewTest.java index eadb1b63df90..202fbd71a0c4 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPinBasedInputViewTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPinBasedInputViewTest.java @@ -28,6 +28,7 @@ import android.view.LayoutInflater; import androidx.test.filters.SmallTest; +import com.android.systemui.R; import com.android.systemui.SysuiTestCase; import org.junit.Before; diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerTest.java index 8db195a23a15..d47fceea9724 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerTest.java @@ -23,6 +23,7 @@ import android.view.LayoutInflater; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; +import com.android.systemui.R; import com.android.systemui.SysuiTestCase; import org.junit.Test; diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSliceViewTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSliceViewTest.java index b3accbc3b4bb..116f8fc7d3eb 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSliceViewTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSliceViewTest.java @@ -27,6 +27,7 @@ import androidx.slice.SliceProvider; import androidx.slice.SliceSpecs; import androidx.slice.builders.ListBuilder; +import com.android.systemui.R; import com.android.systemui.SystemUIFactory; import com.android.systemui.SysuiTestCase; import com.android.systemui.keyguard.KeyguardSliceProvider; diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardStatusViewTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardStatusViewTest.java index 31ea39cedf3b..87f2ef5a9636 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardStatusViewTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardStatusViewTest.java @@ -24,6 +24,7 @@ import android.testing.TestableLooper; import android.testing.TestableLooper.RunWithLooper; import android.view.LayoutInflater; +import com.android.systemui.R; import com.android.systemui.SystemUIFactory; import com.android.systemui.SysuiTestCase; import com.android.systemui.util.Assert; diff --git a/packages/SystemUI/tests/src/com/android/systemui/IconPackOverlayTest.java b/packages/SystemUI/tests/src/com/android/systemui/IconPackOverlayTest.java index ccc9afcd4296..0fa7443da394 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/IconPackOverlayTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/IconPackOverlayTest.java @@ -32,6 +32,7 @@ import androidx.test.filters.MediumTest; import androidx.test.runner.AndroidJUnit4; import com.android.internal.util.XmlUtils; +import com.android.systemui.tests.R; import org.junit.After; import org.junit.Before; diff --git a/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubblesTestActivity.java b/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubblesTestActivity.java index 43d2ad1dfe0a..8bc2e2bc77b6 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubblesTestActivity.java +++ b/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubblesTestActivity.java @@ -20,7 +20,7 @@ import android.app.Activity; import android.content.Intent; import android.os.Bundle; -import com.android.systemui.R; +import com.android.systemui.tests.R; /** * Referenced by NotificationTestHelper#makeBubbleMetadata diff --git a/packages/SystemUI/tests/src/com/android/systemui/screenshot/ScreenshotStubActivity.java b/packages/SystemUI/tests/src/com/android/systemui/screenshot/ScreenshotStubActivity.java index 784d0352c679..0b871e433f5b 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/screenshot/ScreenshotStubActivity.java +++ b/packages/SystemUI/tests/src/com/android/systemui/screenshot/ScreenshotStubActivity.java @@ -15,11 +15,11 @@ */ package com.android.systemui.screenshot; -import com.android.systemui.R; - import android.app.Activity; import android.os.Bundle; +import com.android.systemui.tests.R; + /** * A stub activity used in {@link ScreenshotTest}. */ diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationTestHelper.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationTestHelper.java index 7063ddf3e653..ab207f83a709 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationTestHelper.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationTestHelper.java @@ -40,7 +40,6 @@ import android.widget.RemoteViews; import androidx.test.InstrumentationRegistry; -import com.android.systemui.R; import com.android.systemui.bubbles.BubblesTestActivity; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.notification.collection.NotificationEntry; @@ -50,7 +49,7 @@ import com.android.systemui.statusbar.notification.row.NotificationContentInflat import com.android.systemui.statusbar.phone.HeadsUpManagerPhone; import com.android.systemui.statusbar.phone.KeyguardBypassController; import com.android.systemui.statusbar.phone.NotificationGroupManager; -import com.android.systemui.statusbar.policy.HeadsUpManager; +import com.android.systemui.tests.R; /** * A helper class to create {@link ExpandableNotificationRow} (for both individual and group diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/MediaNotificationProcessorTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/MediaNotificationProcessorTest.java index 7eeae67c9fdf..e6287e7063d3 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/MediaNotificationProcessorTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/MediaNotificationProcessorTest.java @@ -38,8 +38,8 @@ import android.widget.RemoteViews; import androidx.palette.graphics.Palette; import androidx.test.runner.AndroidJUnit4; -import com.android.systemui.R; import com.android.systemui.SysuiTestCase; +import com.android.systemui.tests.R; import org.junit.After; import org.junit.Before; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationContentInflaterTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationContentInflaterTest.java index 2ec125e8a43b..ccadcc35f37a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationContentInflaterTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationContentInflaterTest.java @@ -23,7 +23,6 @@ import static com.android.systemui.statusbar.notification.row.NotificationConten import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; @@ -44,12 +43,12 @@ import android.widget.RemoteViews; import androidx.test.filters.SmallTest; -import com.android.systemui.R; import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.InflationTask; import com.android.systemui.statusbar.NotificationTestHelper; import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.notification.row.NotificationContentInflater.InflationCallback; +import com.android.systemui.tests.R; import org.junit.Assert; import org.junit.Before; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationCustomViewWrapperTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationCustomViewWrapperTest.java index 63e18ce722c3..49a64101eb84 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationCustomViewWrapperTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationCustomViewWrapperTest.java @@ -24,10 +24,10 @@ import android.widget.RemoteViews; import androidx.test.filters.SmallTest; -import com.android.systemui.R; import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.NotificationTestHelper; import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow; +import com.android.systemui.tests.R; import org.junit.Assert; import org.junit.Before; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java index 6e3d9067f63c..34511831247e 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java @@ -1,5 +1,12 @@ package com.android.systemui.statusbar.policy; +import static junit.framework.Assert.assertEquals; + +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyBoolean; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + import android.content.Intent; import android.net.NetworkCapabilities; import android.net.NetworkInfo; @@ -16,13 +23,6 @@ import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Mockito; -import static junit.framework.Assert.assertEquals; - -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.anyBoolean; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - @SmallTest @RunWith(AndroidTestingRunner.class) @RunWithLooper diff --git a/tests/testables/src/android/testing/DexmakerShareClassLoaderRule.java b/tests/testables/src/android/testing/DexmakerShareClassLoaderRule.java index 1b8e58c3050d..7057a90c7672 100644 --- a/tests/testables/src/android/testing/DexmakerShareClassLoaderRule.java +++ b/tests/testables/src/android/testing/DexmakerShareClassLoaderRule.java @@ -20,6 +20,8 @@ import android.util.Log; import com.android.internal.annotations.VisibleForTesting; +import libcore.util.SneakyThrow; + import org.junit.rules.TestRule; import org.junit.runner.Description; import org.junit.runners.model.Statement; @@ -55,7 +57,11 @@ public class DexmakerShareClassLoaderRule implements TestRule { * WARNING: This is absolutely incompatible with running tests in parallel! */ public static void runWithDexmakerShareClassLoader(Runnable r) { - apply(r::run).run(); + try { + apply(r::run).run(); + } catch (Throwable t) { + SneakyThrow.sneakyThrow(t); + } } /** -- cgit v1.2.3-59-g8ed1b From d969b7622420482a4836378a8ad5d61b38e6755c Mon Sep 17 00:00:00 2001 From: Lucas Dupin Date: Thu, 15 Aug 2019 11:41:52 -0700 Subject: Only delay bouncer if bypass is off Test: pull up bouncer with bypass on and off Test: atest KeyguardBouncerTest Fixes: 137563419 Change-Id: I5ca00ebacda2c893bf62d5c882fe0a244b77f4fc --- .../src/com/android/systemui/SystemUIFactory.java | 5 +++-- .../android/systemui/statusbar/phone/KeyguardBouncer.java | 8 ++++++-- .../statusbar/phone/StatusBarKeyguardViewManager.java | 2 +- .../systemui/statusbar/phone/KeyguardBouncerTest.java | 15 ++++++++++++++- 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java index 674eba73fde3..0899d955a1ac 100644 --- a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java +++ b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java @@ -114,11 +114,12 @@ public class SystemUIFactory { LockPatternUtils lockPatternUtils, ViewGroup container, DismissCallbackRegistry dismissCallbackRegistry, KeyguardBouncer.BouncerExpansionCallback expansionCallback, - FalsingManager falsingManager) { + FalsingManager falsingManager, KeyguardBypassController bypassController) { return new KeyguardBouncer(context, callback, lockPatternUtils, container, dismissCallbackRegistry, falsingManager, expansionCallback, UnlockMethodCache.getInstance(context), - KeyguardUpdateMonitor.getInstance(context), new Handler(Looper.getMainLooper())); + KeyguardUpdateMonitor.getInstance(context), bypassController, + new Handler(Looper.getMainLooper())); } public ScrimController createScrimController(ScrimView scrimBehind, ScrimView scrimInFront, diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java index 66ddeb403fde..0854e84a6888 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java @@ -77,6 +77,7 @@ public class KeyguardBouncer { } }; private final Runnable mRemoveViewRunnable = this::removeView; + private final KeyguardBypassController mKeyguardBypassController; protected KeyguardHostView mKeyguardView; private final Runnable mResetRunnable = ()-> { if (mKeyguardView != null) { @@ -97,7 +98,8 @@ public class KeyguardBouncer { LockPatternUtils lockPatternUtils, ViewGroup container, DismissCallbackRegistry dismissCallbackRegistry, FalsingManager falsingManager, BouncerExpansionCallback expansionCallback, UnlockMethodCache unlockMethodCache, - KeyguardUpdateMonitor keyguardUpdateMonitor, Handler handler) { + KeyguardUpdateMonitor keyguardUpdateMonitor, + KeyguardBypassController keyguardBypassController, Handler handler) { mContext = context; mCallback = callback; mLockPatternUtils = lockPatternUtils; @@ -109,6 +111,7 @@ public class KeyguardBouncer { mHandler = handler; mUnlockMethodCache = unlockMethodCache; mKeyguardUpdateMonitor.registerCallback(mUpdateMonitorCallback); + mKeyguardBypassController = keyguardBypassController; } public void show(boolean resetSecuritySelection) { @@ -171,7 +174,8 @@ public class KeyguardBouncer { // Split up the work over multiple frames. DejankUtils.removeCallbacks(mResetRunnable); if (mUnlockMethodCache.isFaceAuthEnabled() && !needsFullscreenBouncer() - && !mKeyguardUpdateMonitor.userNeedsStrongAuth()) { + && !mKeyguardUpdateMonitor.userNeedsStrongAuth() + && !mKeyguardBypassController.getBypassEnabled()) { mHandler.postDelayed(mShowRunnable, BOUNCER_FACE_DELAY); } else { DejankUtils.postAfterTraversal(mShowRunnable); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java index d47adbe180c8..0c47d1468a7f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java @@ -221,7 +221,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb mBiometricUnlockController = biometricUnlockController; mBouncer = SystemUIFactory.getInstance().createKeyguardBouncer(mContext, mViewMediatorCallback, mLockPatternUtils, container, dismissCallbackRegistry, - mExpansionCallback, falsingManager); + mExpansionCallback, falsingManager, bypassController); mNotificationPanelView = notificationPanelView; notificationPanelView.addExpansionListener(this); mBypassController = bypassController; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java index 907e695f2513..cd60e47eef50 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java @@ -21,6 +21,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyFloat; import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.never; @@ -84,6 +85,8 @@ public class KeyguardBouncerTest extends SysuiTestCase { @Mock private UnlockMethodCache mUnlockMethodCache; @Mock + private KeyguardBypassController mKeyguardBypassController; + @Mock private Handler mHandler; private KeyguardBouncer mBouncer; @@ -98,7 +101,8 @@ public class KeyguardBouncerTest extends SysuiTestCase { when(mKeyguardHostView.getHeight()).thenReturn(500); mBouncer = new KeyguardBouncer(getContext(), mViewMediatorCallback, mLockPatternUtils, container, mDismissCallbackRegistry, mFalsingManager, - mExpansionCallback, mUnlockMethodCache, mKeyguardUpdateMonitor, mHandler) { + mExpansionCallback, mUnlockMethodCache, mKeyguardUpdateMonitor, + mKeyguardBypassController, mHandler) { @Override protected void inflateView() { super.inflateView(); @@ -390,6 +394,15 @@ public class KeyguardBouncerTest extends SysuiTestCase { verify(mHandler).removeCallbacks(eq(showRunnable.getValue())); } + @Test + public void testShow_delaysIfFaceAuthIsRunning_unlessBypass() { + when(mUnlockMethodCache.isFaceAuthEnabled()).thenReturn(true); + when(mKeyguardBypassController.getBypassEnabled()).thenReturn(true); + mBouncer.show(true /* reset */); + + verify(mHandler, never()).postDelayed(any(), anyLong()); + } + @Test public void testRegisterUpdateMonitorCallback() { verify(mKeyguardUpdateMonitor).registerCallback(any()); -- cgit v1.2.3-59-g8ed1b From a269cf11da49b3a1e04a8d90361079bf84405cc7 Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Mon, 12 Aug 2019 17:47:39 +0200 Subject: API: Explicitly track incompatibilities with previous API versions Bug: 139128921 Test: make checkapi Change-Id: I1f17b57705e2f7350b55ab278e06fc4e988771ff Merged-In: I1f17b57705e2f7350b55ab278e06fc4e988771ff (cherry picked from commit 369246b4cc3143a42eb176057d168473783d3d6b) --- Android.bp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Android.bp b/Android.bp index 16abdbf79de0..e3fa19c48f90 100644 --- a/Android.bp +++ b/Android.bp @@ -1756,6 +1756,7 @@ droidstubs { last_released: { api_file: ":last-released-public-api", removed_api_file: "api/removed.txt", + baseline_file: ":public-api-incompatibilities-with-last-released", }, }, jdiff_enabled: true, @@ -1781,6 +1782,7 @@ droidstubs { last_released: { api_file: ":last-released-system-api", removed_api_file: "api/system-removed.txt", + baseline_file: ":system-api-incompatibilities-with-last-released" }, }, jdiff_enabled: true, -- cgit v1.2.3-59-g8ed1b