Closed Bug 1031872 Opened 10 years ago Closed 10 years ago

Kindle Fire: activity and fragment transitions are obtrusive and uncomfortable

Categories

(Firefox for Android Graveyard :: Theme and Visual Design, defect)

All
Android
defect
Not set
normal

Tracking

(firefox32 ?, firefox33 verified, fennec34+)

VERIFIED FIXED
Firefox 33
Tracking Status
firefox32 --- ?
firefox33 --- verified
fennec 34+ ---

People

(Reporter: rnewman, Assigned: rnewman, NeedInfo)

References

Details

Attachments

(1 file, 1 obsolete file)

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
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
This also happens transitioning to FxA setup.
tracking-fennec: --- → ?
(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+
(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.
Attached patch Patch for discussion. v1 (obsolete) — Splinter Review
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: nobody → rnewman
Status: NEW → ASSIGNED
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)
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)
(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.
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)
Attachment #8453924 - Attachment is obsolete: true
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+
(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
Closed: 10 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
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: