OSDN Git Service

resolve merge conflicts of 10357a7 to master
authorJason Monk <jmonk@google.com>
Tue, 26 Jul 2016 13:22:18 +0000 (09:22 -0400)
committerJason Monk <jmonk@google.com>
Tue, 26 Jul 2016 14:00:39 +0000 (10:00 -0400)
Change-Id: I2c185ee5949ff5a67175c08b86026a060b69dc06

1  2 
packages/SystemUI/src/com/android/systemui/qs/QSDetail.java

@@@ -208,13 -229,8 +208,13 @@@ public class QSDetail extends LinearLay
              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() {