mQsPanelCallback.onScanStateChanged(false);
}
sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
+
+ animateDetailVisibleDiff(x, y, visibleDiff, listener);
+ }
+
+ protected void animateDetailVisibleDiff(int x, int y, boolean visibleDiff, AnimatorListener listener) {
if (visibleDiff) {
- mAnimating = true;
- mAnimatingOpen = adapter != null;
++ mAnimatingOpen = mDetailAdapter != null;
if (mFullyExpanded || mDetailAdapter != null) {
setAlpha(1);
mClipper.animateCircularClip(x, y, mDetailAdapter != null, listener);
}
}
- handleToggleStateChanged(toggleState);
+ protected void setupDetailFooter(DetailAdapter adapter) {
+ final Intent settingsIntent = adapter.getSettingsIntent();
+ mDetailSettingsButton.setVisibility(settingsIntent != null ? VISIBLE : GONE);
+ mDetailSettingsButton.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ mHost.startActivityDismissingKeyguard(settingsIntent);
+ }
+ });
+ }
+
+ protected void setupDetailHeader(final DetailAdapter adapter) {
+ mQsDetailHeaderTitle.setText(adapter.getTitle());
+ final Boolean toggleState = adapter.getToggleState();
+ if (toggleState == null) {
+ mQsDetailHeaderSwitch.setVisibility(INVISIBLE);
+ mQsDetailHeader.setClickable(false);
+ } else {
+ mQsDetailHeaderSwitch.setVisibility(VISIBLE);
- private void handleToggleStateChanged(boolean state) {
++ handleToggleStateChanged(toggleState, adapter.getToggleEnabled());
+ mQsDetailHeader.setClickable(true);
+ mQsDetailHeader.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ boolean checked = !mQsDetailHeaderSwitch.isChecked();
+ mQsDetailHeaderSwitch.setChecked(checked);
+ adapter.setToggleState(checked);
+ }
+ });
+ }
+ }
+
+ private void handleToggleStateChanged(boolean state, boolean toggleEnabled) {
mSwitchState = state;
- if (mAnimating) {
+ if (mAnimatingOpen) {
return;
}
mQsDetailHeaderSwitch.setChecked(state);
}
private void checkPendingAnimations() {
- handleToggleStateChanged(mSwitchState);
+ handleToggleStateChanged(mSwitchState,
+ mDetailAdapter != null && mDetailAdapter.getToggleEnabled());
}
- private final QSPanel.Callback mQsPanelCallback = new QSPanel.Callback() {
+ protected QSPanel.Callback mQsPanelCallback = new QSPanel.Callback() {
@Override
public void onToggleStateChanged(final boolean state) {
post(new Runnable() {