OSDN Git Service

Eleven: Visualizer: Add back landscape mode
authorLinus Lee <llee@cyngn.com>
Wed, 12 Aug 2015 00:53:14 +0000 (17:53 -0700)
committerUtkarsh Gupta <utkarsh.eminem@gmail.com>
Thu, 13 Aug 2015 03:16:24 +0000 (08:46 +0530)
- Disable visualizer when queue panel is on top

- For some reason, the layout size isn't picked up by its
  parent, so for now force it to be square in onMeasure

Change-Id: I71d3489def08a1ea347801211d92cd113b9cbd5f

res/layout/main_album_flow.xml
src/com/cyanogenmod/eleven/ui/activities/SlidingPanelActivity.java
src/com/cyanogenmod/eleven/widgets/VisualizerView.java

index aa14181..5d5d543 100644 (file)
@@ -38,8 +38,6 @@
         android:layout_gravity="bottom"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:clipChildren="false"
-        android:clipToPadding="false"
         android:visibility="visible" />
 
     <TextView
index b0bedf1..c7b72a3 100644 (file)
@@ -132,13 +132,11 @@ public abstract class SlidingPanelActivity extends BaseActivity {
             @Override
             public void onPanelExpanded(View panel) {
                 checkTargetNavigation();
-                getAudioPlayerFragment().setVisualizerVisible(true);
             }
 
             @Override
             public void onPanelCollapsed(View panel) {
                 checkTargetNavigation();
-                getAudioPlayerFragment().setVisualizerVisible(false);
             }
         });
     }
@@ -254,6 +252,8 @@ public abstract class SlidingPanelActivity extends BaseActivity {
         if (mTargetNavigatePanel == getCurrentPanel()) {
             mTargetNavigatePanel = Panel.None;
         }
+
+        getAudioPlayerFragment().setVisualizerVisible(getCurrentPanel() == Panel.MusicPlayer);
     }
 
     public Panel getCurrentPanel() {
index 0c8a979..034d229 100644 (file)
@@ -107,21 +107,25 @@ public class VisualizerView extends View {
     }
 
     @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+
+        final int size = Math.min(getMeasuredWidth(), getMeasuredHeight());
+        setMeasuredDimension(size, size);
+    }
+
+    @Override
     protected void onSizeChanged(int w, int h, int oldw, int oldh) {
         super.onSizeChanged(w, h, oldw, oldh);
 
-        if (h > w) {
-            float barUnit = w / 32f;
-            float barWidth = barUnit * 8f / 9f;
-            barUnit = barWidth + (barUnit - barWidth) * 32f / 31f;
-            mPaint.setStrokeWidth(barWidth);
+        float barUnit = w / 32f;
+        float barWidth = barUnit * 8f / 9f;
+        barUnit = barWidth + (barUnit - barWidth) * 32f / 31f;
+        mPaint.setStrokeWidth(barWidth);
 
-            for (int i = 0; i < 32; i++) {
-                mFFTPoints[i * 4] = mFFTPoints[i * 4 + 2] = i * barUnit + (barWidth / 2);
-                mFFTPoints[i * 4 + 3] = h;
-            }
-        } else {
-            setVisible(false);
+        for (int i = 0; i < 32; i++) {
+            mFFTPoints[i * 4] = mFFTPoints[i * 4 + 2] = i * barUnit + (barWidth / 2);
+            mFFTPoints[i * 4 + 3] = h;
         }
     }