cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bryan Higgins <br...@bryanhiggins.net>
Subject Re: cordova launcher icon support https://github.com/apache/cordova-cli/pull/126
Date Wed, 02 Apr 2014 20:21:09 GMT
config.xml already supports a platform element for platform specific config

Is the proposal to also add an attribute cdv:platform which serves the same
purpose?


On Wed, Apr 2, 2014 at 4:09 PM, Sergey Grebnov (Akvelon) <
v-segreb@microsoft.com> wrote:

> Hi,
>
> Have we agreed to proceed with explicit icons definition via config.xml
> similar to PG Build[1]? -  If so I'm going to add iOS support and update
> our docs. So we will have support of iOS, Android,  FxOS, WP8 and Windows8.
> Adding icons to a new platform will be easy, similar to [2]
>
> Some my thoughts: Adding explicit icon references to config.xml looks
> redundant since in most cases developers will still use default icon names
> following platform guides so we can just proceed with predefined folder
> ('res' as an example) and documenting folder structure and icon names for
> different platforms. - Sort of 'merges' where we replace app resources
> using some special logic. But it could be useful if we share same image
> between platforms or reference the same image for different needs inside
> single platform.
>
> [1]
> http://docs.build.phonegap.com/en_US/3.3.0/configuring_icons_and_splash.md.html#Icons%20and%20Splash%20Screens
> [2]
> https://github.com/apache/cordova-cli/pull/126/files#diff-45a2a0f22289a5eb91348499a5053cd8R170
>
> Thx!
> Sergey
> -----Original Message-----
> From: Axel Nennker [mailto:ignisvulpis@gmail.com]
> Sent: Thursday, March 13, 2014 5:05 PM
> To: dev
> Subject: RE: cordova launcher icon support
> https://github.com/apache/cordova-cli/pull/126
>
> Please fork https://github.com/AxelNennker/cordova-cli and send a PR for
> wp.
> Thanks
> Axel
>  Am 13.03.2014 13:18 schrieb "Sergey Grebnov (Akvelon)" <
> v-segreb@microsoft.com>:
>
> > Hi
> > 1.  It seems pull request does not contain related changes for
> > windows8 and wp8. I may help here if nobody has already started
> > working in this direction.
> > 2. I also can't replace default splash screen image following
> > instructions below. It seems to be PhoneGap Build specific, isn't it?
> > Do we support changing splash screen as part of cordova-cli?
> >
> > http://cordova.apache.org/docs/en/3.4.0/config_ref_images.md.html#Icon
> > s%20and%20Splash%20Screens
> >
> > Thx!
> > Sergey
> > -----Original Message-----
> > From: Axel Nennker [mailto:ignisvulpis@gmail.com]
> > Sent: Saturday, February 22, 2014 1:44 AM
> > To: dev
> > Subject: Re: cordova launcher icon support
> > https://github.com/apache/cordova-cli/pull/126
> >
> > there is a pull request that implements this gap: prefix and phonegap
> > namespace stuff but this is Cordova and we have cdv: as prefix and
> > another
> > namespace: xmlns:cdv="http://cordova.apache.org/ns/1.0"
> > Looks like config.json adapted by both projects is a way out.
> >
> >
> > 2014-02-21 21:36 GMT+01:00 Don Coleman <don.coleman@gmail.com>:
> >
> > > Icons are a drag. Explicit configuration sucks, but is the way to go.
> > >
> > > It would be nice if the Cordova solution was compatible with
> > > PhoneGap Build icons<
> > > http://docs.build.phonegap.com/en_US/3.1.0/configuring_icons_and_spl
> > > as h.md.html#Icons%20and%20Splash%20Screens
> > > >
> > > .
> > >
> > >
> > >
> > >
> > > On Fri, Feb 21, 2014 at 11:24 AM, Axel Nennker
> > > <ignisvulpis@gmail.com
> > > >wrote:
> > >
> > > > What is your favorite explicit configuration?
> > > > Am 21.02.2014 16:49 schrieb "Brian LeRoux" <b@brian.io>:
> > > >
> > > > > As much as I'd like a single icon source I do not think it is
> > > > > the right path. To do this right I think we need to audit all
> > > > > possible icons for
> > > > each
> > > > > platform and create a map to analyze what could be distilled
> > > > > across platforms.
> > > > >
> > > > > Ideally we'd accept a vector format (SVG) and generate all these
> > > > ridiculous
> > > > > sizes but designers will not like this. Pixel perfection,
> > > > > especially
> > > for
> > > > a
> > > > > springboard icon, is paramount. The only way we're getting there
> > > > > safely
> > > > is
> > > > > zero magic and explicit configuration.
> > > > >
> > > > > Lame, I know.
> > > > >
> > > > >
> > > > > On Thu, Feb 20, 2014 at 1:07 AM, Axel Nennker
> > > > > <ignisvulpis@gmail.com>
> > > > > wrote:
> > > > >
> > > > > > How about this strategy:
> > > > > >
> > > > > > project_dir/config.xml
> > > > > > - no new elements in config.xml like cdv:icon
> > > > > > - no new attributes in icon element in config.xml like
> > > > > > cdv:platform
> > > or
> > > > > > gap:platform
> > > > > > - do not invent stuff we have to support for the rest of our
> life.
> > > > > >
> > > > > > On all platforms:
> > > > > > - if config.xml contains a <icon src="whatever.png"/>
without
> > > > > > any attributes like width and heigth, then copy that src to
to
> > > > > > all
> > > platform
> > > > > > specific  locations where that platform expects launcher icons
> > > > > > and
> > > > update
> > > > > > config files like manifest.webapp on FirefoxOS if there isn't
> > > > > > a
> > > > specific
> > > > > > icon element for that location (see later).
> > > > > > - no downscaling of icons to lower sizes
> > > > > > - no upscaling of icons to higher sizes
> > > > > > - do not add dependencies to new node modules (e.g. to parse
> > > > > > icon
> > > > files)
> > > > > >
> > > > > > On Android:
> > > > > > I) if there is a specific  <icon src="icon.png" width="48"
/>
> > > > > > then
> > > copy
> > > > > > that icon.png to res/drawable-mdpi (height is ignored if width
> > > > > > is
> > > > > present,
> > > > > > no check for non-sqare icons)
> > > > > > II) Other sizes are handled according to this list from:
> > > > > > http://developer.android.com/guide/practices/screens_support.h
> > > > > > tm
> > > > > > l
> > > > > >
> > > > > >    - 36x36 for low-density
> > > > > >    - 48x48 for medium-density
> > > > > >    - 72x72 for high-density
> > > > > >    - 96x96 for extra high-density
> > > > > >
> > > > > > Directories not matching this algorithm that have names
> > > > > > starting with res/drawable get the biggest icon if no default
> > > > > > icon is available
> > > (I).
> > > > > > III) icons with width or height other than the ones mentioned
> > > > > > here
> > > are
> > > > > > ignored.
> > > > > >
> > > > > > On FirefoxOS:
> > > > > > See
> > > https://developer.mozilla.org/en-US/Apps/Developing/Manifest#icons
> > > > > >
> > > > > > For Firefox OS, icons should follow the app icon guidelines<
> > > > > > https://www.mozilla.org/en-US/styleguide/products/firefox-os/i
> > > > > > co
> > > > > > ns/
> > > >,
> > > > > > they should not have a drop shadow, and they should be in the
> > > following
> > > > > > sizes:
> > > > > >  128 x 128 For display on the Firefox Marketplace 60 x 60 For
> > > > > > the
> > > > actual
> > > > > > on-device icon; only the 128px icon is mandatory, but it is
> > > recommended
> > > > > to
> > > > > > include this size as well for optimal device icon display
> > > > > > https://www.mozilla.org/en-US/styleguide/products/firefox-os/i
> > > > > > co
> > > > > > ns/
> > > > > >
> > > > > > I) ignore icon elements in config.xml without width or height
> > > > attributes
> > > > > > II) copy all icons mentioned in config.xml with width  or
> > > > > > height
> > > equal
> > > > to
> > > > > > 60 or 128 to the app's root and create an icon section in
> > > > manifest.webapp
> > > > > > that matches these icons.
> > > > > > III) if no icon is specified for width/height 60 or 128 then
> > > > > > copy
> > > each
> > > > > icon
> > > > > > mentioned in config.xml that has width or height specified.
> > > > > >
> > > > > > On other platforms:
> > > > > > some strategy matching the ones for Android and FirefoxOS. If
> > > > > > a size
> > > is
> > > > > > there that is typical for that platform (72,144 for ios) then
> > > > > > us only
> > > > > those
> > > > > > matching icons. Try to help developers.
> > > > > >
> > > > > > -Axel
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > 2014-02-13 9:56 GMT+01:00 Axel Nennker <ignisvulpis@gmail.com>:
> > > > > >
> > > > > > > The topic is reaching politics status...
> > > > > > >
> > > > > > > I think it is worth some effort to keep phonegap and cordova
> > > aligned.
> > > > > > > What is "Adobe"'s position on W3C widget and xml vs json?
> > > > > > >
> > > > > > > -Axel
> > > > > > >
> > > > > > > Regarding which PR to accept: I want support for launcher
> > > > > > > icons
> > > and I
> > > > > do
> > > > > > > not care whether my PR is accepted or the other one.
> > > > > > > Actually I do not understand why CB-2606 is open for so
long.
> > > > > > > https://issues.apache.org/jira/browse/CB-2606
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > 2014-02-12 23:33 GMT+01:00 Jesse <purplecabbage@gmail.com>:
> > > > > > >
> > > > > > > Part of what you are seeing is the phonegap namespace
> > > > > > > extensions
> > > that
> > > > > are
> > > > > > >> added for build.phonegap.com and the online tools.
[1] [2]
> > > > > > >>
> > > > > > >>
> > > > > > >> [1]
> > > > > > >>
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > > http://docs.build.phonegap.com/en_US/3.1.0/configuring_basics.md.htm
> > > l#
> > > The%20Basics
> > > > > > >> [2]
> > > > > >
> > > https://github.com/phonegap/phonegap-start/blob/master/www/config.xm
> > > l
> > > > > > >>
> > > > > > >>
> > > > > > >> @purplecabbage
> > > > > > >> risingj.com
> > > > > > >>
> > > > > > >>
> > > > > > >> On Wed, Feb 12, 2014 at 2:03 PM, Andrew Grieve <
> > > > agrieve@chromium.org>
> > > > > > >> wrote:
> > > > > > >>
> > > > > > >> > Just started a new thread to propose removing
the namespace.
> > > > > > >> >
> > > > > > >> > Don't the we should use "gap:density", since that's
> > > > > > >> > pretty
> > > > > PhoneGap-y
> > > > > > as
> > > > > > >> > opposed to Cordova-y.
> > > > > > >> >
> > > > > > >> > How about we have "size" and "density" attributes
that
> > > > > > >> > are just
> > > > > > >> synonyms?
> > > > > > >> >
> > > > > > >> > Off for the day.
> > > > > > >> >
> > > > > > >> >
> > > > > > >> >
> > > > > > >> > On Wed, Feb 12, 2014 at 4:57 PM, Axel Nennker
<
> > > > > ignisvulpis@gmail.com>
> > > > > > >> > wrote:
> > > > > > >> >
> > > > > > >> > > Hm. I guess the id test is historical stuff.
It is
> > > > > > >> > > legal XML
> > > and
> > > > > the
> > > > > > >> > parser
> > > > > > >> > > ignores it.
> > > > > > >> > >
> > > > > > >> > > Regarding the NS prefix: cdv vs gap I am
quite sure I
> > > > > > >> > > did not invent cdv myself.
> > > > > > >> > >
> > > > > > >> > > Regarding the w3c widget standard: I am OK
with ditching
> it.
> > > > > Should
> > > > > > >> there
> > > > > > >> > > be a poll or how do you handle such things?
> > > > > > >> > > All app templates should remove namespaces
then, right?
> > > > > > >> > >
> > > > > > >> > > Isn't there another thread around namespaces
breaking
> > > > > > >> > > the wp
> > > > > > platform?
> > > > > > >> > >
> > > > > > >> > > Anyway, I think we should follow the phonegap
 way with
> > > > > > >> > > e.g
> > > > > > >> gap:density
> > > > > > >> > for
> > > > > > >> > > now. And ditch namespaces later.
> > > > > > >> > >
> > > > > > >> > > Axel
> > > > > > >> > > Am 12.02.2014 22:38 schrieb "Andrew Grieve"
<
> > > > agrieve@chromium.org
> > > > > >:
> > > > > > >> > >
> > > > > > >> > > > On Tue, Feb 11, 2014 at 3:43 PM, Brian
LeRoux
> > > > > > >> > > > <b@brian.io>
> > > > > wrote:
> > > > > > >> > > >
> > > > > > >> > > > > Given we are the only 'widget spec'
impl in use
> > > > > > >> > > > > today I'm
> > > ok
> > > > > > with
> > > > > > >> > > > diverging
> > > > > > >> > > > > and not adding namespace confusion.
Def want config
> > > > > > >> > > > > to be
> > > > > > explicit
> > > > > > >> > and
> > > > > > >> > > > not
> > > > > > >> > > > > have magical implicit mappings.
> > > > > > >> > > > >
> > > > > > >> > > > >
> > > > > > >> > > > > On Tue, Feb 11, 2014 at 12:24 PM,
Axel Nennker <
> > > > > > >> > ignisvulpis@gmail.com
> > > > > > >> > > > > >wrote:
> > > > > > >> > > > >
> > > > > > >> > > > > > - My implementation does not
use "id". Don't know
> > > > > > >> > > > > > what
> > > > this
> > > > > or
> > > > > > >> > might
> > > > > > >> > > > > mean.
> > > > > > >> > > > >
> > > > > > >> > > > Found it from your test in spec/test-config.xml
> > > > > > >> > > >
> > > > > > >> > > >
> > > > > > >> > > > >  > - I do not want to discuss
the sense of xml
> > > > > > >> > > > > namespaces
> > > in
> > > > > > this
> > > > > > >> > issue
> > > > > > >> > > > if
> > > > > > >> > > > > we
> > > > > > >> > > > > > can avoid it. The current
template config.xml
> > > > > > >> > > > > > defines
> > > two
> > > > > > >> > namespaces
> > > > > > >> > > > and
> > > > > > >> > > > > > for this issue's implementation
I do not want to
> > > > > > >> > > > > > change
> > > > > that.
> > > > > > >> So I
> > > > > > >> > > > would
> > > > > > >> > > > > > not drop the widget namespace
and would not
> > > > > > >> > > > > > support "platform"-without-prefix.
> > > > > > >> > > > >
> > > > > > >> > > >
> > > > > > >> > > > Having gap:platform there makes the
property seem
> > > > > > >> > > > like an
> > > > > > >> second-class
> > > > > > >> > > > maybe-not-supposed-to-be-there kind
of attribute to me.
> > > > > > >> > > > I'd be happy to change the default template
to not
> > > > > > >> > > > reference
> > > > the
> > > > > > >> widget
> > > > > > >> > > > spec and to make cordova's the default
namespace if
> > > > > > >> > > > that
> > > will
> > > > > make
> > > > > > >> your
> > > > > > >> > > > inner XML validator rest at-ease, but
I really feel
> > > > > > >> > > > strongly
> > > > > > against
> > > > > > >> > > having
> > > > > > >> > > > XML namespaces creep in. I don't think
that most devs
> > > > > > >> > > > know
> > > > what
> > > > > > they
> > > > > > >> > do,
> > > > > > >> > > > and our tools wouldn't support you changing
the gap:
> > > namespace
> > > > > > >> prefix.
> > > > > > >> > > >
> > > > > > >> > > >
> > > > > > >> > > >
> > > > > > >> > > > > > - I would follow the phonegap
example
> > > > > > >> > > > > >
> > > > > > >> > > > > >
> > > > > > >> > > > >
> > > > > > >> > > >
> > > > > > >> > >
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > > http://docs.build.phonegap.com/en_US/3.1.0/configuring_icons_and_spl
> > > as h.md.html#Icons%20and%20Splash%20Screens
> > > > > > >> > > > > > that defines e.g. "
> > > > > > >> > > > > >
> > > > > > >> > > > > > <icon src="icons/android/ldpi.png"
> > > gap:platform="android"
> > > > > > >> > > > > > gap:density="ldpi" />
> > > > > > >> > > > > >
> > > > > > >> > > > > > " and I would like to don't
parse the icon file
> > > > > > >> > > > > > to infer
> > > > > > >> > parameters.
> > > > > > >> > > > > > Developers want need icons
for their app on all
> > > platforms
> > > > > they
> > > > > > >> > > support.
> > > > > > >> > > > > So
> > > > > > >> > > > > > they will create all of them
in all polished
> > > > > > >> > > > > > sizes and
> > > > > > >> densities.
> > > > > > >> > > > > > My Android implementation
puts icons without
> > > > > > >> > > > > > cdv:density
> > > > > into
> > > > > > >> > > > > > "drawable/icon.png" regardless
of width/height.
> > > > > > >> > > > > > What behaviour would you suggest
when both lines
> > > > > > >> > > > > > are
> > > > present
> > > > > > in
> > > > > > >> one
> > > > > > >> > > > > > config.xml
> > > > > > >> > > > > > <icon src="icon48.png"
width="48"
> > cdv:platform="android"
> > > > />
> > > > > //
> > > > > > >> > would
> > > > > > >> > > > end
> > > > > > >> > > > > up
> > > > > > >> > > > > > in drawable-mdpi by your suggestion
<icon
> > > > > > >> > > > > > src="icon-mdpi.png" cdv:density="mdpi"
> > > > > > >> cdv:platform="android"
> > > > > > >> > > />
> > > > > > >> > > > //
> > > > > > >> > > > > > would end up in drawable-mdpi
too
> > > > > > >> > > > >
> > > > > > >> > > >
> > > > > > >> > > > My thinking here was that density says
the same thing
> > > > > > >> > > > as
> > > size,
> > > > > so
> > > > > > I
> > > > > > >> > would
> > > > > > >> > > > just not support density (or make size="mdpi"
an
> > > > > > >> > > > alias for
> > > > > > >> size="48").
> > > > > > >> > > >
> > > > > > >> > > >
> > > > > > >> > > >
> > > > > > >> > > > > >
> > > > > > >> > > > > > I think that developers know
what is the
> > "platform-way"
> > > > for
> > > > > > each
> > > > > > >> > > > > platform.
> > > > > > >> > > > > > On Android the usual way is
to specify densities.
> > > > > > >> > > > > >
> > > > > > >> > > > > > - I would not use "size" because
that is not w3c
> > > > > > >> > > > > > widget
> > > > > style.
> > > > > > >> > > > > >
> > > > > > >> > > > > > -- Axel
> > > > > > >> > > > > >
> > > > > > >> > > > > >
> > > > > > >> > > > > >
> > > > > > >> > > > > > 2014-02-11 20:22 GMT+01:00
Andrew Grieve <
> > > > > > agrieve@chromium.org
> > > > > > >> >:
> > > > > > >> > > > > >
> > > > > > >> > > > > > > Would love to move this
along. Would like to
> > > > > > >> > > > > > > get
> > > buy-in
> > > > > from
> > > > > > >> > others
> > > > > > >> > > > > > > first though.
> > > > > > >> > > > > > >
> > > > > > >> > > > > > > The proposal in this
PR is to add tags like:
> > > > > > >> > > > > > >
> > > > > > >> > > > > > >     <icon id="icon"
src="icon.png" />
> > > > > > >> > > > > > >     <icon id="logo"
src="logo.png" width="255"
> > > > > height="255"
> > > > > > />
> > > > > > >> > > > > > >     <icon src="logo-android.png"
width="255"
> > > > height="255"
> > > > > > >> > > > > > > cdv:platform="android"
cdv:density="mdpi" />
> > > > > > >> > > > > > >
> > > > > > >> > > > > > > My feedback:
> > > > > > >> > > > > > > - What is "id" for?
> > > > > > >> > > > > > > - Supporting "cdv:platform"
is fine, but we
> > > > > > >> > > > > > > should
> > > also
> > > > > > >> support
> > > > > > >> > > just
> > > > > > >> > > > > > > "platform=". I'd be fine
to drop xmlns="
> > > > > > >> > > http://www.w3.org/ns/widgets
> > > > > > >> > > > "
> > > > > > >> > > > > > > from the file.
> > > > > > >> > > > > > > - I don't think there
are any platforms that
> > > > > > >> > > > > > > support
> > > > > > >> non-square
> > > > > > >> > > > icons.
> > > > > > >> > > > > > > I think size="###" would
be better than width=
> > > > > > >> > > > > > > &&
> > > > height=
> > > > > > >> > > > > > > - What happens if you
don't specify a size? Do
> > > > > > >> > > > > > > we
> > > sniff
> > > > it
> > > > > > >> from
> > > > > > >> > the
> > > > > > >> > > > > > > png header? This might
be nice as a follow-up,
> > > > > > >> > > > > > > but I'd
> > > > > lean
> > > > > > >> > towards
> > > > > > >> > > > > > > making it required for
the first cut.
> > > > > > >> > > > > > > - cdv:density seems redundant
with respect to
> size.
> > > > Icons
> > > > > on
> > > > > > >> > > android
> > > > > > >> > > > > > > are 46px at mdpi, so
the size can be used to
> > > > > > >> > > > > > > derive
> > > the
> > > > > > >> density.
> > > > > > >> > > > > > >
> > > > > > >> > > > > > >
> > > > > > >> > > > > > > On Mon, Feb 10, 2014
at 10:55 AM, Andrew Grieve
> > > > > > >> > > > > > > <
> > > > > > >> > > > agrieve@chromium.org>
> > > > > > >> > > > > > > wrote:
> > > > > > >> > > > > > > > He Axel, thanks
for spearheading this. Will
> > > > > > >> > > > > > > > have a
> > > > look
> > > > > > >> > shortly.
> > > > > > >> > > > > > > >
> > > > > > >> > > > > > > >
> > > > > > >> > > > > > > > On Mon, Feb 10,
2014 at 9:07 AM, Axel Nennker
> > > > > > >> > > > > > > > <
> > > > > > >> > > > ignisvulpis@gmail.com
> > > > > > >> > > > > >
> > > > > > >> > > > > > > wrote:
> > > > > > >> > > > > > > >>
> > > > > > >> > > > > > > >> Andrew,
> > > > > > >> > > > > > > >>
> > > > > > >> > > > > > > >> any comments
to the current implementation?
> > > > > > >> > > > > > > >> https://github.com/apache/cordova-cli/pull/1
> > > > > > >> > > > > > > >> 26
> > > > > > >> > > > > > > >>
> > > > > > >> > > > > > > >> Joe commented
that the new class in
> > > config_parser.js
> > > > > > named
> > > > > > >> > > "icon"
> > > > > > >> > > > > > should
> > > > > > >> > > > > > > >> be named "Icon"
but I left it as is because
> > > > > > >> > > > > > > >> the
> > > other
> > > > > > >> classes
> > > > > > >> > > are
> > > > > > >> > > > > > > lowercase
> > > > > > >> > > > > > > >> too.
> > > > > > >> > > > > > > >> There was another
comment that namespaces in
> > > > config.xml
> > > > > > >> > > attributes
> > > > > > >> > > > > are
> > > > > > >> > > > > > > >> SchnickSchnack/chatter.
> > > > > > >> > > > > > > >> I think that
we should use the cordava
> > > > > > >> > > > > > > >> namespace if
> > > > > > >> config.xml
> > > > > > >> > > > > > deviates
> > > > > > >> > > > > > > >> from the W3C
widget definition.
> > > > > > >> > > > > > > >> These two are
the only comments I got.
> > > > > > >> > > > > > > >>
> > > > > > >> > > > > > > >> I tested this
on Android and FirefoxOS.
> > > > > > >> > > > > > > >>
> > > > > > >> > > > > > > >> Any chance to
accept the request (at least
> > > > > > >> > > > > > > >> the
> > > > Android
> > > > > > >> part)?
> > > > > > >> > > > > > > >>
> > > > > > >> > > > > > > >> -Axel
> > > > > > >> > > > > > > >>
> > > > > > >> > > > > > > >
> > > > > > >> > > > > > >
> > > > > > >> > > > > >
> > > > > > >> > > > >
> > > > > > >> > > >
> > > > > > >> > >
> > > > > > >> >
> > > > > > >>
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message