[android-developers] New Open Source Library for Android Developers

2016-09-24 Thread Kofi Gyan
We just made one of our libraries open to the Android Developer Community. 
We hope you all find it useful. Your reviews and contributions are welcomed.

 Library - StateProgressBar ( https://github.com/kofigyan/StateProgressBar )
 About Library -  Add clarity and context to your app. Indicate the 
steps(states) and transitions in your app with StateProgressBar Library.
Display progress through a sequence by breaking it up into multiple logical 
and numbered steps.

Some Usage Scenarios :

1) Payment Processing Steps for Checkouts 
2) Account verification and creation 
3) Survey Apps and Form fill-up driven apps (Highly Recommended) 
4) Any Accomplishment apps and Task driven apps. 
5) And more

Your reviews and contributions are welcomed.

GitHub - https://github.com/kofigyan/StateProgressBar



-- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to android-developers+unsubscr...@googlegroups.com.
To post to this group, send email to android-developers@googlegroups.com.
Visit this group at https://groups.google.com/group/android-developers.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/android-developers/3cbb508d-ef5e-42c0-8ac7-9277e456e483%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[android-developers] StateProgressBar Library

2016-09-21 Thread Kofi Gyan
Improve your app ui. Add states,transitions and context to your android 
apps and games using StateProgressBar Library.
https://github.com/kofigyan/StateProgressBar

-- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to android-developers+unsubscr...@googlegroups.com.
To post to this group, send email to android-developers@googlegroups.com.
Visit this group at https://groups.google.com/group/android-developers.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/android-developers/66b4113f-d577-4357-8c3f-83558b9549bf%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [android-developers] Resource linking / imports

2010-06-23 Thread Gyan
Making the usage of .9png images compulsory!

Probably there is a smart way of installing only the required drawables on a
particular hardware, so that at least the installed application isn't
bloated!

A perfectly discerning!
-Gyan

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] Re: Poor roaming performance ! Is it an Android bug ?

2010-06-23 Thread Gyan
@David this WAS and IS a present problem with Android. The cache doesn't
clear all the time!

Hope Google has something to say!

Gyan

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] Using SyncAdapter for syncing application data

2010-06-23 Thread Gyan
Nice thought. But do you really think you need an adapter to answer this.
This is just a data sync functionality! If its tightly tied to UI
re-drawing/customization then you might go with writing SyncAdapter
otherwise you can, very well, stick with an interface!

Thanks
Gyan

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] Display a Dialog in non-Activity (simple Java) Class By passing Parameters

2010-06-23 Thread Gyan
make the activity variable static and don't use this try
getApplicationContext or an instance created with new keyword

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] Service unable to call Java Class Methods

2010-06-22 Thread Gyan
Can you paste the logcat trace?

Some hints
1. Have u imported the class(logger)
2. Debugging the service - sysouts
3. Creating ur own - not advisable(might hamper responsiveness) - use the
existing Logger - just in case!

Gyan

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] Poor roaming performance ! Is it an Android bug ?

2010-06-22 Thread Gyan
This is a little off topic, but yet, if you might have noticed(just that
I've noticed) there is a DNS cache error in all of google's products that
connects to the internet!

Not sure of Chrome - but Android sure has a problem - Dont have the issue
number here but yeah, it is STILL there.

What version does your phone run?

Gyan

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] Re: Poor roaming performance ! Is it an Android bug ?

2010-06-22 Thread Gyan
DNS cache might not be the actual problem too!

Try clearing browser cache from the applications' menu!

Gyan

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] Re: Service unable to call Java Class Methods

2010-06-22 Thread Gyan
Try giving the entire context path all the time.

myprojects.android.loggingModule.Logger.Log()

Or try using reflections API built in Android!!

Gyan

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] Re: notifyDataSetChanged() not updating listview after orientation change

2010-06-22 Thread Gyan
Classic problem!

Use a static variable rather than onRetainConfigurationChange() lot of state
data to be saved  doesn't work all the time!!

Gyan

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] Re: Poor roaming performance ! Is it an Android bug ?

2010-06-22 Thread Gyan
Correct - if the browser behaves so clear the browser cache
As browser is like any other app, you can clear whichever applications'
cache and it might work!

Else restarting ur phone works all the time!

Gyan

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] Re: Disable Bluetooth discoverable mode

2010-06-14 Thread Gyan
U cant make the device discoverable for more than 300 seconds using any
means.

Based on the constants mentioned in the above link, u basically define whats
ur service using the bluetooth capability for!

If u use to stream audio, you can define the BluetoothClass constant as
Audio.

NDK is also another way to go about. You can achieve performance there,
albeit I've not used the NDK for BlueTooth

Gyan

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] Re: Disable Bluetooth discoverable mode

2010-06-11 Thread Gyan
Two answers:

1. Call the intended service instead of using the DISCOVERABLE option.
Because every 300 seconds there will be a dialog box asking you make the
device discoverable. If you make a service call, the device need not be
discoverable to use the service.

2. There is an issue in the issue tracker regarding this. STAR it, so that
in the future other developers might not experience this problem.

Thanks
Gyan
twitter.com/gyandroid

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] Image viewer widget with zooming capability

2010-05-12 Thread Gyan
Thats a good idea!! I don't think there is any API that could allow you to
do it directly!! You need to use the RemoteIntent to do actions that change
the widget appearence!

But a good thought!


Gyan

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] string-array max size?

2010-05-12 Thread Gyan
Try not to load it in an activity, but in the adapter. Try extending the
array adapter and load your static values there!!!

Gyan

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] Gallery elasticity at the ends

2010-05-12 Thread Gyan
How about applying animation on the layout that shows this gallery view!!

I think you get the animation co-ords from the net for the inertial
scroll

Gyan

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] Re: Getting contact photos from Facebook only contacts

2010-05-12 Thread Gyan
Not sure if google exposes this... but you can very well use ur facebook
account and implement this urself and expose the name/photo/other data as a
content and use it... wont be any different; just that you will be using
your own sqlite DB for this and entropy will be less as its the contact book
contacts only

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] Re: How to get selected items in a ListView (multi selection check boxes)? - URGENT PLZ

2010-05-12 Thread Gyan
Have experienced this myself. implement a ListAdapter for the same and
handle ur items from there...

Additionally u can use onDataSetChanged to check for the multiple check and
uncheck options.i mean to say you can actually debug this at this
overridden method!

Gyan

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] Re: Gallery elasticity at the ends

2010-05-12 Thread Gyan
Hey Nik... I got what you are trying to implement. If I'm not wrong its
called inertial scrolling. You can see google scoreboard app in the
market which has this already not exactly though. When that app came out
first I tried implementing the feel through layout animation.

The page contained empty space on either ends of the list as list items
without the ListSeperator which onLoad  scrolls back to the top or bottom
of the list - smooth and quick - as you let go of the touch. I had
implemented that through layout animation I bet there would be other
ways of doing it...

Gyan

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] Finishing Browser

2010-05-12 Thread Gyan
I think back button would work depends on how you launch the intent.
must be part of the current task... FLAG_ACTIVITY_CLEAR_TOP

would do the trick I hope... If not, check on other flags, I'm not sure
about the flag - but I'm pretty sure you can make use of back button to come
back to ur app from the browser

Gyan

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] Re: WCF complex types with android

2010-05-11 Thread Gyan
ReST+JSON works best In other case, use need to have the classes in the
client side as a separate Jar with a separate java project meant for the
service consumption

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

[android-developers] Photo ACTION_PICK intent returning data not set in setType

2009-10-23 Thread Gyan
Hey All,

I'm using the setType to return me images mentioned only of the specific
type.

Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType(image/gif);
photoPickerIntent.setType(image/jpeg);
photoPickerIntent.setType(image/tiff);
photoPickerIntent.setType(image/png);
photoPickerIntent.setType(image/bmp);

startActivityForResult(photoPickerIntent, RESULT_IMAGE_RETURNED);



But this piece of code returns me images of other types too... say .wbmp
Is there any other way to exclude the unwanted results from the Intent.

Thanks in advance !!!

Gyan

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~--~~~~--~~--~--~---



[android-developers] Re: Photo ACTION_PICK intent returning data not set in setType

2009-10-23 Thread Gyan
Thanks much that was very precise!

On Fri, Oct 23, 2009 at 2:12 PM, Miguel Paraz mpa...@gmail.com wrote:


 Hi,

 On Oct 23, 3:08 pm, Gyan gnanesh@gmail.com wrote:
  I'm using the setType to return me images mentioned only of the specific
  type.
 
  Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
  photoPickerIntent.setType(image/gif);
  photoPickerIntent.setType(image/jpeg);
  photoPickerIntent.setType(image/tiff);
  photoPickerIntent.setType(image/png);
  photoPickerIntent.setType(image/bmp);

 only the last setType() is used, they don't add up.

  startActivityForResult(photoPickerIntent, RESULT_IMAGE_RETURNED);
 
  But this piece of code returns me images of other types too... say
 .wbmp
  Is there any other way to exclude the unwanted results from the Intent.

 The Camera app, which provides the Gallery, doesn't seem to support
 the type from the Intent. I think this behavior isn't guaranteed.


 


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~--~~~~--~~--~--~---



[android-developers] Re: Transfer Messages without Service Provider

2009-10-23 Thread Gyan
You can do it in the emulator though... U can link 2 emulators and implement
a SMS reciever and achieve this.

On Fri, Oct 23, 2009 at 3:03 PM, ragavendran s sraghav.ra...@gmail.comwrote:



 How to transfer Messages from Android phone to another android phone
 without Service Provider...

 Is this Possible or Notif Yes Means pls let me know the
 Concept...


 Thanks in Advance..

 with regards,
 Raghav.S

 


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~--~~~~--~~--~--~---



[android-developers] Text getting cut-off in a list view

2009-05-06 Thread Gyan
I have a list of text views in my screen. The text in one of the list item
gets cut-off on the right side. There is no padding attached in the layout
and there are no over-lapping layouts. But when i focus that particular list
item the text view is re-drawn and re-positioned to give me uncut text. This
happens inconsistently.

Is this an existing issue with the framework??

Thanks
Gyan

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~--~~~~--~~--~--~---



[android-developers] Bug while selecting from a list of multi-select items whilst using filterable

2009-02-23 Thread Gyan
I'm displaying the contacts in a Multi-select Ok, Cancel dialog box. I've
implemented Filterable for the adapter that displays the contacts in the
dialog. The problem is, once i try and select(check) a contact while i'm
using a type ahead, the check box in that particular position is checked and
not the contact.

The initial screen goes like





After type-ahead,






When I hit backspace, the screen appears as,




This is my activity.

   Cursor c =
getContentResolver().query(People.CONTENT_URI, PROJECTION,

 null, null,
Contacts.People.DEFAULT_SORT_ORDER);

startManagingCursor(c);

ListAdapter adapter1 = new
ContactListAdapter(this, c);

LayoutInflater inflater = (LayoutInflater)
this


.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

View view = (View)
inflater.inflate(R.layout.list_view, null);

 listView = (ListView)
view.findViewById(R.id.contactlist);

 listView.setTextFilterEnabled(true);


listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

 listView.setAdapter(adapter1);


listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

 listView.setOnItemSelectedListener(this);

 alertDialog.setView(view);

The adapter goes like,

public class ContactListAdapter extends CursorAdapter implements Filterable
{

public static final String[] PEOPLE_PROJECTION = new String[] { People._ID,

People.NAME, People.NUMBER };

public ContactListAdapter(Context context, Cursor c) {

super(context, c);

mContent = context.getContentResolver();

}

@Override

public View newView(Context context, Cursor cursor, ViewGroup parent) {

final LayoutInflater inflater = LayoutInflater.from(context);

final TextView view = (TextView) inflater.inflate(

android.R.layout.simple_list_item_multiple_choice, parent, false);

view.setText(cursor.getString(1));

return view;

}

@Override

public void bindView(View view, Context context, Cursor cursor) {

((TextView) view).setTag(cursor.getLong(0));

((TextView) view).setText(cursor.getString(1));

}

@Override

public String convertToString(Cursor cursor) {

return cursor.getString(1);

}

@Override

public Cursor runQueryOnBackgroundThread(CharSequence constraint) {

if (getFilterQueryProvider() != null) {

return getFilterQueryProvider().runQuery(constraint);

}

StringBuilder buffer = null;

String[] args = null;

if (constraint != null) {

buffer = new StringBuilder();

buffer.append(UPPER();

buffer.append(Contacts.ContactMethods.NAME);

buffer.append() GLOB ?);

args = new String[] { constraint.toString().toUpperCase() + * };

}

return mContent.query(Contacts.People.CONTENT_URI, PEOPLE_PROJECTION,

buffer == null ? null : buffer.toString(), args,

Contacts.People.DEFAULT_SORT_ORDER);

}

private ContentResolver mContent;

}





Any help in this is welcome.

Gyan.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~--~~~~--~~--~--~---



[android-developers] Bug while selecting from a list of multi-select items whilst using filterable

2009-02-23 Thread Gyan
I'm displaying the contacts in a Multi-select Ok, Cancel dialog box. I've
implemented Filterable for the adapter that displays the contacts in the
dialog. The problem is, once i try and select(check) a contact while i'm
using a type ahead, the check box in that particular position is checked and
not the contact.

The initial screen goes like





After type-ahead,







When I hit backspace, the screen appears as,



This is my activity.

   Cursor c =
getContentResolver().query(People.CONTENT_URI, PROJECTION,

 null, null,
Contacts.People.DEFAULT_SORT_ORDER);

startManagingCursor(c);

ListAdapter adapter1 = new
ContactListAdapter(this, c);

LayoutInflater inflater = (LayoutInflater)
this


.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

View view = (View)
inflater.inflate(R.layout.list_view, null);

 listView = (ListView)
view.findViewById(R.id.contactlist);

 listView.setTextFilterEnabled(true);


listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

 listView.setAdapter(adapter1);


listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

 listView.setOnItemSelectedListener(this);

 alertDialog.setView(view);

The adapter goes like,

public class ContactListAdapter extends CursorAdapter implements Filterable
{

public static final String[] PEOPLE_PROJECTION = new String[] { People._ID,

People.NAME, People.NUMBER };

public ContactListAdapter(Context context, Cursor c) {

super(context, c);

mContent = context.getContentResolver();

}

@Override

public View newView(Context context, Cursor cursor, ViewGroup parent) {

final LayoutInflater inflater = LayoutInflater.from(context);

final TextView view = (TextView) inflater.inflate(

android.R.layout.simple_list_item_multiple_choice, parent, false);

view.setText(cursor.getString(1));

return view;

}

@Override

public void bindView(View view, Context context, Cursor cursor) {

((TextView) view).setTag(cursor.getLong(0));

((TextView) view).setText(cursor.getString(1));

}

@Override

public String convertToString(Cursor cursor) {

return cursor.getString(1);

}

@Override

public Cursor runQueryOnBackgroundThread(CharSequence constraint) {

if (getFilterQueryProvider() != null) {

return getFilterQueryProvider().runQuery(constraint);

}

StringBuilder buffer = null;

String[] args = null;

if (constraint != null) {

buffer = new StringBuilder();

buffer.append(UPPER();

buffer.append(Contacts.ContactMethods.NAMEhttp://contacts.contactmethods.name/
);

buffer.append() GLOB ?);

args = new String[] { constraint.toString().toUpperCase() + * };

}

return mContent.query(Contacts.People.CONTENT_URI, PEOPLE_PROJECTION,

buffer == null ? null : buffer.toString(), args,

Contacts.People.DEFAULT_SORT_ORDER);

}

private ContentResolver mContent;

}





Any help in this is welcome.

Gyan.



CONFIDENTIALITY NOTICE: This communication may contain privileged or
other confidential information.
If you have received it in error, please advise the sender by reply
email and immediately delete the message and any attachments without
copying or disclosing the contents.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~--~~~~--~~--~--~---

inline: image003.pnginline: image002.pnginline: image001.png