Kindle Fire: activity and fragment transitions are obtrusive and uncomfortable

VERIFIED FIXED in Firefox 33
(NeedInfo from)

Status

()

Firefox for Android
Theme and Visual Design
VERIFIED FIXED
4 years ago
4 years ago

People

(Reporter: rnewman, Assigned: rnewman, NeedInfo)

Tracking

(Blocks: 1 bug)

Trunk
Firefox 33
All
Android
Points:
---

Firefox Tracking Flags

(firefox32 ?, firefox33 verified, fennec34+)

Details

Attachments

(1 attachment, 1 obsolete attachment)

(Assignee)

Description

4 years ago
Testing on my 7" Fire, transitions between settings pages involves a flicker to black then back to the new page.

This is different to the transition on my HTC One, which is a fade in from the settings fragment background color.

The transition via black is very unpleasant; it gave me a headache very quickly.

Here's a video in slo-mo:

https://vimeo.com/99443780
(Assignee)

Comment 1

4 years ago
This also happens for transitioning between BrowserApp and GeckoPreferences -- i.e., Menu > Settings.
Component: Settings and Preferences → Theme and Visual Design
Summary: Kindle Fire: settings fragment transitions are obtrusive and uncomfortable → Kindle Fire: activity and fragment transitions are obtrusive and uncomfortable
(Assignee)

Comment 2

4 years ago
This also happens transitioning to FxA setup.
tracking-fennec: --- → ?
status-firefox32: --- → ?
status-firefox33: --- → affected
(In reply to Richard Newman [:rnewman] from comment #1)
> This also happens for transitioning between BrowserApp and GeckoPreferences
> -- i.e., Menu > Settings.

Does this annoying transition only happen in Fennec's settings? What about other apps' preferences? It seems like the default activity/fragment transition on Kindle needs some tweaking.

Here's a simple hack you can try: Add a overridePendingTransition(0, 0) call after all startActivity*() calls in GeckoPreferences. This will disable any activity transitions in our settings UI.
tracking-fennec: ? → 34+
(Assignee)

Comment 4

4 years ago
(In reply to Lucas Rocha (:lucasr) from comment #3)

> Does this annoying transition only happen in Fennec's settings? What about
> other apps' preferences? It seems like the default activity/fragment
> transition on Kindle needs some tweaking.

It looks like the transition in other apps is the same. The default Kindle theme is dark, so it fits, and it's not bothersome in the long transition between two activities, light -> dark or vice versa.

Our prefs and activities are light (e.g., white about:home -> FxA setup, white prefs -> prefs), and Settings has fast fragment transitions, so it doesn't fit.

I haven't found another app that does transitions light->light, so I haven't been able to 100% 'repro'. (If you know one, let me know!)


> Here's a simple hack you can try: Add a overridePendingTransition(0, 0) call
> after all startActivity*() calls in GeckoPreferences. This will disable any
> activity transitions in our settings UI.

Will try that.

Attempts to override the transition background color -- by bashing the heck out of our themes (windowBackground etc.), attaching themes to the App instead of the Activity, etc. -- were not fruitful, but I was hoping to avoid code changes. Alas.
(Assignee)

Comment 5

4 years ago
Created attachment 8453924 [details] [diff] [review]
Patch for discussion. v1

This attempts to squash transitions for both forward and backward in Settings. My personal feeling is that this behavior is tidier than our very fast fade, making the browser feel snappier, and thus I'd be happy shipping this behavior for all devices.

An APK is here:

http://people.mozilla.org/~rnewman/fennec/notrans.apk

Lucas, UX folks, others: give this a shot and opine?
(Assignee)

Updated

4 years ago
Assignee: nobody → rnewman
Status: NEW → ASSIGNED
(Assignee)

Updated

4 years ago
Flags: needinfo?(yuan)
Flags: needinfo?(lucasr.at.mozilla)
Flags: needinfo?(ibarlow)
Flags: needinfo?(alam)
I've been looking at improving those button hit states overall. I agree that we can improve those transitions and capitalize on those moments by rewarding the user's action accordingly. But that being said, I don't have an Amazon device so I can't reproduce this but I'll definitely try to get one and keep this in the back of my head.
Flags: needinfo?(alam)
Heh, that video. It's like they're trying to recreate the experience of e-ink on an lcd display :)

This build is definitely snappier. I'm on the fence about rolling it out everywhere though... 

(In reply to Richard Newman [:rnewman] from comment #4)

> I haven't found another app that does transitions light->light, so I haven't
> been able to 100% 'repro'. (If you know one, let me know!)

Heh that would have been my next question :)
Flags: needinfo?(ibarlow)
(Assignee)

Comment 8

4 years ago
I found another mostly-white app. Yeah, it looks like e-ink. I'm waiting for Vimeo to chew on the video, then I'll post it here.
I'd prefer a solution that only applies to Kindle devices. Is there a sane way to do this? Maybe we need a HardwareUtils.isKindle()?
Flags: needinfo?(lucasr.at.mozilla)
(Assignee)

Comment 11

4 years ago
(In reply to Lucas Rocha (:lucasr) from comment #10)
> I'd prefer a solution that only applies to Kindle devices. Is there a sane
> way to do this? Maybe we need a HardwareUtils.isKindle()?

I was thinking that myself (though probably wrapped with hasDarkTransitions or something more meaningful and generalizable).

It's straightforward to do.
(Assignee)

Comment 12

4 years ago
Created attachment 8454811 [details] [diff] [review]
Don't use transitions for GeckoPreferences on Kindle Fire. v1

The Kindle always uses a black background for transitions. On all-white screens
like our Settings panes, this looks awful. This patch skips transitions on
those devices.
Attachment #8454811 - Flags: review?(lucasr.at.mozilla)
(Assignee)

Updated

4 years ago
Attachment #8453924 - Attachment is obsolete: true
(Assignee)

Updated

4 years ago
Attachment #8454811 - Flags: feedback?(mark.finkle)
Comment on attachment 8454811 [details] [diff] [review]
Don't use transitions for GeckoPreferences on Kindle Fire. v1

* NO_WHITE_TRANSITIONS could probably be simplified to NO_TRANSITIONS (maybe)
* Do we need more than IS_AMAZON_DEVICE? Seems like a bit more than we'd need.
* xxxChoosingTransition is oddly named but I don't have a better version
Attachment #8454811 - Flags: feedback?(mark.finkle) → feedback+
(Assignee)

Comment 15

4 years ago
(In reply to Mark Finkle (:mfinkle) from comment #14)

Thanks for the quick feedback!

> * NO_WHITE_TRANSITIONS could probably be simplified to NO_TRANSITIONS (maybe)

Maybe. I wanted to capture the sense that we're only turning off transitions for activities with white backgrounds, lest someone thinks this applies everywhere.

I used NO_TRANSITIONS as the local name in GeckoPreferences, because that name is more closely scoped: GP 'knows' that it's white.


> * Do we need more than IS_AMAZON_DEVICE? Seems like a bit more than we'd
> need.

They're private for now, labeled for clarity; ProGuard will inline the constants. And I'd rather have to broaden the set of applicable devices later if necessary (e.g., if the Fire Phone doesn't report itself as a KF*).


> * xxxChoosingTransition is oddly named but I don't have a better version

Yeah, it sucks. My initial placeholder name was "Gently"!

There's no good way to describe this kind of operation. I could override `finish` and `startActivityForResult`, but that leaves some call sites undecorated and others not, so my opinion there isn't firm. This is an unpleasant business.
Comment on attachment 8454811 [details] [diff] [review]
Don't use transitions for GeckoPreferences on Kindle Fire. v1

Review of attachment 8454811 [details] [diff] [review]:
-----------------------------------------------------------------

NO_WHITE_TRANSITIONS sounds a bit too vague to me. Maybe DARK_UI_DEVICE is a bit clearer? I almost feel we should just use IS_KINDLE_DEVICE directly for clarity. No strong feelings about it though. Up to you.
Attachment #8454811 - Flags: review?(lucasr.at.mozilla) → review+
https://hg.mozilla.org/mozilla-central/rev/a9dd41dffb2b
Status: ASSIGNED → RESOLVED
Last Resolved: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 33
Verified as fixed in:
Builds:
Firefox for Android 34.0a1 (2014-08-11)
Firefox for Android 33.0a2 (2014-08-11)

Device: Kindle Fire HD 7"
Status: RESOLVED → VERIFIED
status-firefox33: affected → verified
You need to log in before you can comment on or make changes to this bug.