Loading packages/SystemUI/src/com/android/systemui/qs/QSFragment.java +11 −7 Original line number Diff line number Diff line Loading @@ -101,12 +101,7 @@ public class QSFragment extends Fragment implements QS, CommandQueue.Callbacks { if (savedInstanceState != null) { setExpanded(savedInstanceState.getBoolean(EXTRA_EXPANDED)); setListening(savedInstanceState.getBoolean(EXTRA_LISTENING)); int[] loc = new int[2]; View edit = view.findViewById(android.R.id.edit); edit.getLocationInWindow(loc); int x = loc[0] + edit.getWidth() / 2; int y = loc[1] + edit.getHeight() / 2; mQSCustomizer.setEditLocation(x, y); setEditLocation(view); mQSCustomizer.restoreInstanceState(savedInstanceState); } SysUiServiceProvider.getComponent(getContext(), CommandQueue.class).addCallbacks(this); Loading Loading @@ -161,15 +156,24 @@ public class QSFragment extends Fragment implements QS, CommandQueue.Callbacks { @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); setEditLocation(getView()); if (newConfig.getLayoutDirection() != mLayoutDirection) { mLayoutDirection = newConfig.getLayoutDirection(); if (mQSAnimator != null) { mQSAnimator.onRtlChanged(); } } } private void setEditLocation(View view) { Log.w(TAG, "I'm changing the location of the button!!!"); View edit = view.findViewById(android.R.id.edit); int[] loc = edit.getLocationOnScreen(); int x = loc[0] + edit.getWidth() / 2; int y = loc[1] + edit.getHeight() / 2; mQSCustomizer.setEditLocation(x, y); } @Override public void setContainer(ViewGroup container) { if (container instanceof NotificationsQuickSettingsContainer) { Loading packages/SystemUI/src/com/android/systemui/qs/QSPanel.java +6 −4 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import android.os.Handler; import android.os.Message; import android.service.quicksettings.Tile; import android.util.AttributeSet; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.LinearLayout; Loading Loading @@ -60,6 +61,8 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne public static final String QS_SHOW_BRIGHTNESS = "qs_show_brightness"; public static final String QS_SHOW_HEADER = "qs_show_header"; private static final String TAG = "QSPanel"; protected final Context mContext; protected final ArrayList<TileRecord> mRecords = new ArrayList<>(); protected final View mBrightnessView; Loading Loading @@ -313,7 +316,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne public void onCollapse() { if (mCustomizePanel != null && mCustomizePanel.isShown()) { mCustomizePanel.hide(mCustomizePanel.getWidth() / 2, mCustomizePanel.getHeight() / 2); mCustomizePanel.hide(); } } Loading Loading @@ -480,8 +483,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne public void run() { if (mCustomizePanel != null) { if (!mCustomizePanel.isCustomizing()) { int[] loc = new int[2]; v.getLocationInWindow(loc); int[] loc = v.getLocationOnScreen(); int x = loc[0] + v.getWidth() / 2; int y = loc[1] + v.getHeight() / 2; mCustomizePanel.show(x, y); Loading @@ -495,7 +497,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne public void closeDetail() { if (mCustomizePanel != null && mCustomizePanel.isShown()) { // Treat this as a detail panel for now, to make things easy. mCustomizePanel.hide(mCustomizePanel.getWidth() / 2, mCustomizePanel.getHeight() / 2); mCustomizePanel.hide(); return; } showDetail(false, mDetailRecord); Loading packages/SystemUI/src/com/android/systemui/qs/customize/QSCustomizer.java +17 −9 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import androidx.recyclerview.widget.DefaultItemAnimator; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; import android.util.AttributeSet; import android.util.Log; import android.util.TypedValue; import android.view.ContextThemeWrapper; import android.view.LayoutInflater; Loading Loading @@ -63,6 +64,7 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene private static final int MENU_RESET = Menu.FIRST; private static final String EXTRA_QS_CUSTOMIZING = "qs_customizing"; private static final String TAG = "QSCustomizer"; private final QSDetailClipper mClipper; private final LightBarController mLightBarController; Loading Loading @@ -94,7 +96,7 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene mToolbar.setNavigationOnClickListener(new OnClickListener() { @Override public void onClick(View v) { hide((int) v.getX() + v.getWidth() / 2, (int) v.getY() + v.getHeight() / 2); hide(); } }); mToolbar.setOnMenuItemClickListener(this); Loading Loading @@ -154,16 +156,20 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene mQs = qs; } /** Animate and show QSCustomizer panel. * @param x,y Location on screen of {@code edit} button to determine center of animation. */ public void show(int x, int y) { if (!isShown) { mX = x; mY = y; int containerLocation[] = findViewById(R.id.customize_container).getLocationOnScreen(); mX = x - containerLocation[0]; mY = y - containerLocation[1]; MetricsLogger.visible(getContext(), MetricsProto.MetricsEvent.QS_EDIT); isShown = true; mOpening = true; setTileSpecs(); setVisibility(View.VISIBLE); mClipper.animateCircularClip(x, y, true, mExpandAnimationListener); mClipper.animateCircularClip(mX, mY, true, mExpandAnimationListener); queryTiles(); mNotifQsContainer.setCustomizerAnimating(true); mNotifQsContainer.setCustomizerShowing(true); Loading Loading @@ -192,7 +198,7 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene mTileQueryHelper.queryTiles(mHost); } public void hide(int x, int y) { public void hide() { if (isShown) { MetricsLogger.hidden(getContext(), MetricsProto.MetricsEvent.QS_EDIT); isShown = false; Loading Loading @@ -278,16 +284,18 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene }); } } /** @param x,y Location on screen of animation center. */ public void setEditLocation(int x, int y) { mX = x; mY = y; int containerLocation[] = findViewById(R.id.customize_container).getLocationOnScreen(); mX = x - containerLocation[0]; mY = y - containerLocation[1]; } private final Callback mKeyguardCallback = () -> { if (!isAttachedToWindow()) return; if (Dependency.get(KeyguardMonitor.class).isShowing() && !mOpening) { hide(0, 0); hide(); } }; Loading Loading
packages/SystemUI/src/com/android/systemui/qs/QSFragment.java +11 −7 Original line number Diff line number Diff line Loading @@ -101,12 +101,7 @@ public class QSFragment extends Fragment implements QS, CommandQueue.Callbacks { if (savedInstanceState != null) { setExpanded(savedInstanceState.getBoolean(EXTRA_EXPANDED)); setListening(savedInstanceState.getBoolean(EXTRA_LISTENING)); int[] loc = new int[2]; View edit = view.findViewById(android.R.id.edit); edit.getLocationInWindow(loc); int x = loc[0] + edit.getWidth() / 2; int y = loc[1] + edit.getHeight() / 2; mQSCustomizer.setEditLocation(x, y); setEditLocation(view); mQSCustomizer.restoreInstanceState(savedInstanceState); } SysUiServiceProvider.getComponent(getContext(), CommandQueue.class).addCallbacks(this); Loading Loading @@ -161,15 +156,24 @@ public class QSFragment extends Fragment implements QS, CommandQueue.Callbacks { @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); setEditLocation(getView()); if (newConfig.getLayoutDirection() != mLayoutDirection) { mLayoutDirection = newConfig.getLayoutDirection(); if (mQSAnimator != null) { mQSAnimator.onRtlChanged(); } } } private void setEditLocation(View view) { Log.w(TAG, "I'm changing the location of the button!!!"); View edit = view.findViewById(android.R.id.edit); int[] loc = edit.getLocationOnScreen(); int x = loc[0] + edit.getWidth() / 2; int y = loc[1] + edit.getHeight() / 2; mQSCustomizer.setEditLocation(x, y); } @Override public void setContainer(ViewGroup container) { if (container instanceof NotificationsQuickSettingsContainer) { Loading
packages/SystemUI/src/com/android/systemui/qs/QSPanel.java +6 −4 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import android.os.Handler; import android.os.Message; import android.service.quicksettings.Tile; import android.util.AttributeSet; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.LinearLayout; Loading Loading @@ -60,6 +61,8 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne public static final String QS_SHOW_BRIGHTNESS = "qs_show_brightness"; public static final String QS_SHOW_HEADER = "qs_show_header"; private static final String TAG = "QSPanel"; protected final Context mContext; protected final ArrayList<TileRecord> mRecords = new ArrayList<>(); protected final View mBrightnessView; Loading Loading @@ -313,7 +316,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne public void onCollapse() { if (mCustomizePanel != null && mCustomizePanel.isShown()) { mCustomizePanel.hide(mCustomizePanel.getWidth() / 2, mCustomizePanel.getHeight() / 2); mCustomizePanel.hide(); } } Loading Loading @@ -480,8 +483,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne public void run() { if (mCustomizePanel != null) { if (!mCustomizePanel.isCustomizing()) { int[] loc = new int[2]; v.getLocationInWindow(loc); int[] loc = v.getLocationOnScreen(); int x = loc[0] + v.getWidth() / 2; int y = loc[1] + v.getHeight() / 2; mCustomizePanel.show(x, y); Loading @@ -495,7 +497,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne public void closeDetail() { if (mCustomizePanel != null && mCustomizePanel.isShown()) { // Treat this as a detail panel for now, to make things easy. mCustomizePanel.hide(mCustomizePanel.getWidth() / 2, mCustomizePanel.getHeight() / 2); mCustomizePanel.hide(); return; } showDetail(false, mDetailRecord); Loading
packages/SystemUI/src/com/android/systemui/qs/customize/QSCustomizer.java +17 −9 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import androidx.recyclerview.widget.DefaultItemAnimator; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; import android.util.AttributeSet; import android.util.Log; import android.util.TypedValue; import android.view.ContextThemeWrapper; import android.view.LayoutInflater; Loading Loading @@ -63,6 +64,7 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene private static final int MENU_RESET = Menu.FIRST; private static final String EXTRA_QS_CUSTOMIZING = "qs_customizing"; private static final String TAG = "QSCustomizer"; private final QSDetailClipper mClipper; private final LightBarController mLightBarController; Loading Loading @@ -94,7 +96,7 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene mToolbar.setNavigationOnClickListener(new OnClickListener() { @Override public void onClick(View v) { hide((int) v.getX() + v.getWidth() / 2, (int) v.getY() + v.getHeight() / 2); hide(); } }); mToolbar.setOnMenuItemClickListener(this); Loading Loading @@ -154,16 +156,20 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene mQs = qs; } /** Animate and show QSCustomizer panel. * @param x,y Location on screen of {@code edit} button to determine center of animation. */ public void show(int x, int y) { if (!isShown) { mX = x; mY = y; int containerLocation[] = findViewById(R.id.customize_container).getLocationOnScreen(); mX = x - containerLocation[0]; mY = y - containerLocation[1]; MetricsLogger.visible(getContext(), MetricsProto.MetricsEvent.QS_EDIT); isShown = true; mOpening = true; setTileSpecs(); setVisibility(View.VISIBLE); mClipper.animateCircularClip(x, y, true, mExpandAnimationListener); mClipper.animateCircularClip(mX, mY, true, mExpandAnimationListener); queryTiles(); mNotifQsContainer.setCustomizerAnimating(true); mNotifQsContainer.setCustomizerShowing(true); Loading Loading @@ -192,7 +198,7 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene mTileQueryHelper.queryTiles(mHost); } public void hide(int x, int y) { public void hide() { if (isShown) { MetricsLogger.hidden(getContext(), MetricsProto.MetricsEvent.QS_EDIT); isShown = false; Loading Loading @@ -278,16 +284,18 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene }); } } /** @param x,y Location on screen of animation center. */ public void setEditLocation(int x, int y) { mX = x; mY = y; int containerLocation[] = findViewById(R.id.customize_container).getLocationOnScreen(); mX = x - containerLocation[0]; mY = y - containerLocation[1]; } private final Callback mKeyguardCallback = () -> { if (!isAttachedToWindow()) return; if (Dependency.get(KeyguardMonitor.class).isShowing() && !mOpening) { hide(0, 0); hide(); } }; Loading