am 303e5c41: am b9a73d2c: Merge "Stopping chronometers now when the shade is closed" into mnc-dr-dev
* commit '303e5c410c17b2be84051b3692635e6e24e37530': Stopping chronometers now when the shade is closed
This commit is contained in:
@@ -32,6 +32,7 @@ import android.view.View;
|
|||||||
import android.view.ViewStub;
|
import android.view.ViewStub;
|
||||||
import android.view.accessibility.AccessibilityEvent;
|
import android.view.accessibility.AccessibilityEvent;
|
||||||
import android.view.animation.LinearInterpolator;
|
import android.view.animation.LinearInterpolator;
|
||||||
|
import android.widget.Chronometer;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
|
|
||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
@@ -88,6 +89,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView {
|
|||||||
private NotificationGuts mGuts;
|
private NotificationGuts mGuts;
|
||||||
private StatusBarNotification mStatusBarNotification;
|
private StatusBarNotification mStatusBarNotification;
|
||||||
private boolean mIsHeadsUp;
|
private boolean mIsHeadsUp;
|
||||||
|
private boolean mLastChronometerRunning = true;
|
||||||
private View mExpandButton;
|
private View mExpandButton;
|
||||||
private View mExpandButtonDivider;
|
private View mExpandButtonDivider;
|
||||||
private ViewStub mExpandButtonStub;
|
private ViewStub mExpandButtonStub;
|
||||||
@@ -294,6 +296,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView {
|
|||||||
*/
|
*/
|
||||||
public void setPinned(boolean pinned) {
|
public void setPinned(boolean pinned) {
|
||||||
mIsPinned = pinned;
|
mIsPinned = pinned;
|
||||||
|
setChronometerRunning(mLastChronometerRunning);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isPinned() {
|
public boolean isPinned() {
|
||||||
@@ -319,6 +322,41 @@ public class ExpandableNotificationRow extends ActivatableNotificationView {
|
|||||||
return mJustClicked;
|
return mJustClicked;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setChronometerRunning(boolean running) {
|
||||||
|
mLastChronometerRunning = running;
|
||||||
|
setChronometerRunning(running, mPrivateLayout);
|
||||||
|
setChronometerRunning(running, mPublicLayout);
|
||||||
|
if (mChildrenContainer != null) {
|
||||||
|
List<ExpandableNotificationRow> notificationChildren =
|
||||||
|
mChildrenContainer.getNotificationChildren();
|
||||||
|
for (int i = 0; i < notificationChildren.size(); i++) {
|
||||||
|
ExpandableNotificationRow child = notificationChildren.get(i);
|
||||||
|
child.setChronometerRunning(running);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setChronometerRunning(boolean running, NotificationContentView layout) {
|
||||||
|
if (layout != null) {
|
||||||
|
running = running || isPinned();
|
||||||
|
View contractedChild = layout.getContractedChild();
|
||||||
|
View expandedChild = layout.getExpandedChild();
|
||||||
|
View headsUpChild = layout.getHeadsUpChild();
|
||||||
|
setChronometerRunningForChild(running, contractedChild);
|
||||||
|
setChronometerRunningForChild(running, expandedChild);
|
||||||
|
setChronometerRunningForChild(running, headsUpChild);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setChronometerRunningForChild(boolean running, View child) {
|
||||||
|
if (child != null) {
|
||||||
|
View chronometer = child.findViewById(com.android.internal.R.id.chronometer);
|
||||||
|
if (chronometer instanceof Chronometer) {
|
||||||
|
((Chronometer) chronometer).setStarted(running);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public interface ExpansionLogger {
|
public interface ExpansionLogger {
|
||||||
public void logNotificationExpansion(String key, boolean userAction, boolean expanded);
|
public void logNotificationExpansion(String key, boolean userAction, boolean expanded);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1778,6 +1778,7 @@ public class NotificationStackScrollLayout extends ViewGroup
|
|||||||
((ExpandableView) child).setOnHeightChangedListener(this);
|
((ExpandableView) child).setOnHeightChangedListener(this);
|
||||||
generateAddAnimation(child, false /* fromMoreCard */);
|
generateAddAnimation(child, false /* fromMoreCard */);
|
||||||
updateAnimationState(child);
|
updateAnimationState(child);
|
||||||
|
updateChronometerForChild(child);
|
||||||
if (canChildBeDismissed(child)) {
|
if (canChildBeDismissed(child)) {
|
||||||
// Make sure the dismissButton is visible and not in the animated state.
|
// Make sure the dismissButton is visible and not in the animated state.
|
||||||
// We need to do this to avoid a race where a clearable notification is added after the
|
// We need to do this to avoid a race where a clearable notification is added after the
|
||||||
@@ -2287,6 +2288,21 @@ public class NotificationStackScrollLayout extends ViewGroup
|
|||||||
mStackScrollAlgorithm.setIsExpanded(isExpanded);
|
mStackScrollAlgorithm.setIsExpanded(isExpanded);
|
||||||
if (changed) {
|
if (changed) {
|
||||||
updateNotificationAnimationStates();
|
updateNotificationAnimationStates();
|
||||||
|
updateChronometers();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateChronometers() {
|
||||||
|
int childCount = getChildCount();
|
||||||
|
for (int i = 0; i < childCount; i++) {
|
||||||
|
updateChronometerForChild(getChildAt(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateChronometerForChild(View child) {
|
||||||
|
if (child instanceof ExpandableNotificationRow) {
|
||||||
|
ExpandableNotificationRow row = (ExpandableNotificationRow) child;
|
||||||
|
row.setChronometerRunning(mIsExpanded);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2309,6 +2325,7 @@ public class NotificationStackScrollLayout extends ViewGroup
|
|||||||
}
|
}
|
||||||
mStackScrollAlgorithm.onReset(view);
|
mStackScrollAlgorithm.onReset(view);
|
||||||
updateAnimationState(view);
|
updateAnimationState(view);
|
||||||
|
updateChronometerForChild(view);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateScrollPositionOnExpandInBottom(ExpandableView view) {
|
private void updateScrollPositionOnExpandInBottom(ExpandableView view) {
|
||||||
|
|||||||
Reference in New Issue
Block a user