Loading core/java/android/app/IActivityTaskManager.aidl +2 −1 Original line number Diff line number Diff line Loading @@ -348,6 +348,7 @@ interface IActivityTaskManager { /** * Prepare the back navigation in the server. This setups the leashed for sysui to animate * the back gesture and returns the data needed for the animation. * @param requestAnimation true if the caller wishes to animate the back navigation */ android.window.BackNavigationInfo startBackNavigation(); android.window.BackNavigationInfo startBackNavigation(in boolean requestAnimation); } core/java/android/app/WindowConfiguration.java +8 −0 Original line number Diff line number Diff line Loading @@ -345,6 +345,14 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu mAlwaysOnTop = alwaysOnTop ? ALWAYS_ON_TOP_ON : ALWAYS_ON_TOP_OFF; } /** * Unsets always-on-top to undefined. * @hide */ public void unsetAlwaysOnTop() { mAlwaysOnTop = ALWAYS_ON_TOP_UNDEFINED; } private void setAlwaysOnTop(@AlwaysOnTop int alwaysOnTop) { mAlwaysOnTop = alwaysOnTop; } Loading core/java/android/service/appprediction/AppPredictionService.java +20 −11 Original line number Diff line number Diff line Loading @@ -224,17 +224,16 @@ public abstract class AppPredictionService extends Service { } final CallbackWrapper wrapper = findCallbackWrapper(callbacks, callback); if (wrapper != null) { removeCallbackWrapper(callbacks, wrapper); } } private void removeCallbackWrapper( ArrayList<CallbackWrapper> callbacks, CallbackWrapper wrapper) { if (callbacks == null) { private void removeCallbackWrapper(@Nullable ArrayList<CallbackWrapper> callbacks, @Nullable CallbackWrapper wrapper) { if (callbacks == null || wrapper == null) { return; } callbacks.remove(wrapper); wrapper.destroy(); if (callbacks.isEmpty()) { onStopPredictionUpdates(); } Loading Loading @@ -264,7 +263,8 @@ public abstract class AppPredictionService extends Service { public abstract void onRequestPredictionUpdate(@NonNull AppPredictionSessionId sessionId); private void doDestroyPredictionSession(@NonNull AppPredictionSessionId sessionId) { mSessionCallbacks.remove(sessionId); final ArrayList<CallbackWrapper> callbacks = mSessionCallbacks.remove(sessionId); if (callbacks != null) callbacks.forEach(CallbackWrapper::destroy); onDestroyPredictionSession(sessionId); } Loading Loading @@ -314,12 +314,14 @@ public abstract class AppPredictionService extends Service { @Nullable Consumer<CallbackWrapper> onBinderDied) { mCallback = callback; mOnBinderDied = onBinderDied; if (mOnBinderDied != null) { try { mCallback.asBinder().linkToDeath(this, 0); } catch (RemoteException e) { Slog.e(TAG, "Failed to link to death: " + e); } } } public boolean isCallback(@NonNull IPredictionCallback callback) { if (mCallback == null) { Loading @@ -329,6 +331,12 @@ public abstract class AppPredictionService extends Service { return mCallback.equals(callback); } public void destroy() { if (mCallback != null && mOnBinderDied != null) { mCallback.asBinder().unlinkToDeath(this, 0); } } @Override public void accept(List<AppTarget> ts) { try { Loading @@ -342,6 +350,7 @@ public abstract class AppPredictionService extends Service { @Override public void binderDied() { destroy(); mCallback = null; if (mOnBinderDied != null) { mOnBinderDied.accept(this); Loading core/java/android/service/smartspace/SmartspaceService.java +21 −12 Original line number Diff line number Diff line Loading @@ -202,10 +202,8 @@ public abstract class SmartspaceService extends Service { } final CallbackWrapper wrapper = findCallbackWrapper(callbacks, callback); if (wrapper != null) { removeCallbackWrapper(callbacks, wrapper); } } private void doRequestPredictionUpdate(@NonNull SmartspaceSessionId sessionId) { if (DEBUG) { Loading @@ -231,12 +229,13 @@ public abstract class SmartspaceService extends Service { return null; } private void removeCallbackWrapper( ArrayList<CallbackWrapper> callbacks, CallbackWrapper wrapper) { if (callbacks == null) { private void removeCallbackWrapper(@Nullable ArrayList<CallbackWrapper> callbacks, @Nullable CallbackWrapper wrapper) { if (callbacks == null || wrapper == null) { return; } callbacks.remove(wrapper); wrapper.destroy(); } /** Loading @@ -249,7 +248,9 @@ public abstract class SmartspaceService extends Service { Log.d(TAG, "doDestroy mSessionCallbacks: " + mSessionCallbacks); } super.onDestroy(); mSessionCallbacks.remove(sessionId); final ArrayList<CallbackWrapper> callbacks = mSessionCallbacks.remove(sessionId); if (callbacks != null) callbacks.forEach(CallbackWrapper::destroy); onDestroySmartspaceSession(sessionId); } Loading Loading @@ -287,12 +288,14 @@ public abstract class SmartspaceService extends Service { @Nullable Consumer<CallbackWrapper> onBinderDied) { mCallback = callback; mOnBinderDied = onBinderDied; if (mOnBinderDied != null) { try { mCallback.asBinder().linkToDeath(this, 0); } catch (RemoteException e) { Slog.e(TAG, "Failed to link to death: " + e); } } } public boolean isCallback(@NonNull ISmartspaceCallback callback) { if (mCallback == null) { Loading @@ -317,9 +320,15 @@ public abstract class SmartspaceService extends Service { } } public void destroy() { if (mCallback != null && mOnBinderDied != null) { mCallback.asBinder().unlinkToDeath(this, 0); } } @Override public void binderDied() { mCallback.asBinder().unlinkToDeath(this, 0); destroy(); mCallback = null; if (mOnBinderDied != null) { mOnBinderDied.accept(this); Loading core/res/res/layout/autofill_fill_dialog.xml +15 −9 Original line number Diff line number Diff line Loading @@ -62,6 +62,13 @@ android:layout_marginEnd="24dp" android:background="@drawable/autofill_dataset_picker_background"/> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginStart="24dp" android:layout_marginEnd="24dp" android:theme="@style/Theme.DeviceDefault.AutofillHalfScreenDialogList" android:orientation="vertical"> <ListView android:id="@+id/autofill_dialog_list" android:layout_weight="1" Loading @@ -69,11 +76,10 @@ android:layout_height="0dp" android:drawSelectorOnTop="true" android:clickable="true" android:divider="?android:attr/listDivider" android:layout_marginStart="24dp" android:layout_marginEnd="24dp" android:divider="@drawable/list_divider_material" android:background="@drawable/autofill_dataset_picker_background" android:visibility="gone"/> </LinearLayout> <com.android.internal.widget.ButtonBarLayout android:layout_width="match_parent" Loading Loading
core/java/android/app/IActivityTaskManager.aidl +2 −1 Original line number Diff line number Diff line Loading @@ -348,6 +348,7 @@ interface IActivityTaskManager { /** * Prepare the back navigation in the server. This setups the leashed for sysui to animate * the back gesture and returns the data needed for the animation. * @param requestAnimation true if the caller wishes to animate the back navigation */ android.window.BackNavigationInfo startBackNavigation(); android.window.BackNavigationInfo startBackNavigation(in boolean requestAnimation); }
core/java/android/app/WindowConfiguration.java +8 −0 Original line number Diff line number Diff line Loading @@ -345,6 +345,14 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu mAlwaysOnTop = alwaysOnTop ? ALWAYS_ON_TOP_ON : ALWAYS_ON_TOP_OFF; } /** * Unsets always-on-top to undefined. * @hide */ public void unsetAlwaysOnTop() { mAlwaysOnTop = ALWAYS_ON_TOP_UNDEFINED; } private void setAlwaysOnTop(@AlwaysOnTop int alwaysOnTop) { mAlwaysOnTop = alwaysOnTop; } Loading
core/java/android/service/appprediction/AppPredictionService.java +20 −11 Original line number Diff line number Diff line Loading @@ -224,17 +224,16 @@ public abstract class AppPredictionService extends Service { } final CallbackWrapper wrapper = findCallbackWrapper(callbacks, callback); if (wrapper != null) { removeCallbackWrapper(callbacks, wrapper); } } private void removeCallbackWrapper( ArrayList<CallbackWrapper> callbacks, CallbackWrapper wrapper) { if (callbacks == null) { private void removeCallbackWrapper(@Nullable ArrayList<CallbackWrapper> callbacks, @Nullable CallbackWrapper wrapper) { if (callbacks == null || wrapper == null) { return; } callbacks.remove(wrapper); wrapper.destroy(); if (callbacks.isEmpty()) { onStopPredictionUpdates(); } Loading Loading @@ -264,7 +263,8 @@ public abstract class AppPredictionService extends Service { public abstract void onRequestPredictionUpdate(@NonNull AppPredictionSessionId sessionId); private void doDestroyPredictionSession(@NonNull AppPredictionSessionId sessionId) { mSessionCallbacks.remove(sessionId); final ArrayList<CallbackWrapper> callbacks = mSessionCallbacks.remove(sessionId); if (callbacks != null) callbacks.forEach(CallbackWrapper::destroy); onDestroyPredictionSession(sessionId); } Loading Loading @@ -314,12 +314,14 @@ public abstract class AppPredictionService extends Service { @Nullable Consumer<CallbackWrapper> onBinderDied) { mCallback = callback; mOnBinderDied = onBinderDied; if (mOnBinderDied != null) { try { mCallback.asBinder().linkToDeath(this, 0); } catch (RemoteException e) { Slog.e(TAG, "Failed to link to death: " + e); } } } public boolean isCallback(@NonNull IPredictionCallback callback) { if (mCallback == null) { Loading @@ -329,6 +331,12 @@ public abstract class AppPredictionService extends Service { return mCallback.equals(callback); } public void destroy() { if (mCallback != null && mOnBinderDied != null) { mCallback.asBinder().unlinkToDeath(this, 0); } } @Override public void accept(List<AppTarget> ts) { try { Loading @@ -342,6 +350,7 @@ public abstract class AppPredictionService extends Service { @Override public void binderDied() { destroy(); mCallback = null; if (mOnBinderDied != null) { mOnBinderDied.accept(this); Loading
core/java/android/service/smartspace/SmartspaceService.java +21 −12 Original line number Diff line number Diff line Loading @@ -202,10 +202,8 @@ public abstract class SmartspaceService extends Service { } final CallbackWrapper wrapper = findCallbackWrapper(callbacks, callback); if (wrapper != null) { removeCallbackWrapper(callbacks, wrapper); } } private void doRequestPredictionUpdate(@NonNull SmartspaceSessionId sessionId) { if (DEBUG) { Loading @@ -231,12 +229,13 @@ public abstract class SmartspaceService extends Service { return null; } private void removeCallbackWrapper( ArrayList<CallbackWrapper> callbacks, CallbackWrapper wrapper) { if (callbacks == null) { private void removeCallbackWrapper(@Nullable ArrayList<CallbackWrapper> callbacks, @Nullable CallbackWrapper wrapper) { if (callbacks == null || wrapper == null) { return; } callbacks.remove(wrapper); wrapper.destroy(); } /** Loading @@ -249,7 +248,9 @@ public abstract class SmartspaceService extends Service { Log.d(TAG, "doDestroy mSessionCallbacks: " + mSessionCallbacks); } super.onDestroy(); mSessionCallbacks.remove(sessionId); final ArrayList<CallbackWrapper> callbacks = mSessionCallbacks.remove(sessionId); if (callbacks != null) callbacks.forEach(CallbackWrapper::destroy); onDestroySmartspaceSession(sessionId); } Loading Loading @@ -287,12 +288,14 @@ public abstract class SmartspaceService extends Service { @Nullable Consumer<CallbackWrapper> onBinderDied) { mCallback = callback; mOnBinderDied = onBinderDied; if (mOnBinderDied != null) { try { mCallback.asBinder().linkToDeath(this, 0); } catch (RemoteException e) { Slog.e(TAG, "Failed to link to death: " + e); } } } public boolean isCallback(@NonNull ISmartspaceCallback callback) { if (mCallback == null) { Loading @@ -317,9 +320,15 @@ public abstract class SmartspaceService extends Service { } } public void destroy() { if (mCallback != null && mOnBinderDied != null) { mCallback.asBinder().unlinkToDeath(this, 0); } } @Override public void binderDied() { mCallback.asBinder().unlinkToDeath(this, 0); destroy(); mCallback = null; if (mOnBinderDied != null) { mOnBinderDied.accept(this); Loading
core/res/res/layout/autofill_fill_dialog.xml +15 −9 Original line number Diff line number Diff line Loading @@ -62,6 +62,13 @@ android:layout_marginEnd="24dp" android:background="@drawable/autofill_dataset_picker_background"/> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginStart="24dp" android:layout_marginEnd="24dp" android:theme="@style/Theme.DeviceDefault.AutofillHalfScreenDialogList" android:orientation="vertical"> <ListView android:id="@+id/autofill_dialog_list" android:layout_weight="1" Loading @@ -69,11 +76,10 @@ android:layout_height="0dp" android:drawSelectorOnTop="true" android:clickable="true" android:divider="?android:attr/listDivider" android:layout_marginStart="24dp" android:layout_marginEnd="24dp" android:divider="@drawable/list_divider_material" android:background="@drawable/autofill_dataset_picker_background" android:visibility="gone"/> </LinearLayout> <com.android.internal.widget.ButtonBarLayout android:layout_width="match_parent" Loading