Custom Notifications when app is in background or killed

Hi,
I'd like to implement custom notification styles when app is in background or is killed. Is there a Firebase broadcast receiver class one could extend to implement the same? Would be very helpful. Thanks.

@ckarthikv could you clarify this question a little bit?  Are you trying to show different notification styles when your app is in the background versus when your app is running in the foreground?

Hi,
When i tried to implement this notification i get error like
Error:(28, 0) Plugin with id 'com.google.gms.google-services' not found.

@samtstern - Yes, we wanted to implement custom notification styles like Big Picture style, etc, when the app is in background or when the app is killed. I believe the notifications would be working through a broadcast receiver?
Would be great if you could point me in the right direction so that one could intercept all kinds of messages (probably by extending the FirebaseBroadcastReceiver class) - whether the app is in background or killed, so that we could customize every aspect of the notification styles immaterial of the app state.

Same problem. The icon being used is not what I want.
It is using the launcher icon while but the new guidelines require that we use a white on transparent icon. Also, the color is wrong.
I can't seem to find any way to customize this looking at the available methods.
Any help?

@ckarthikv you can see this example of FirebaseMessagingService which is where your app can receive FCM messages and react.  This is a good place to create notifications.
Telling if your Activity is in the foreground (and reacting differently) can be a little tricky.  My favorite way is to register a local BroadcastReceiver in the Activity and then do a sendBroadcast from the service.  You will get true from that method if your receiver is running (meaning your app is in the foreground), and false otherwise.
You can see an example of this (using GCM, but the logic is the same for FCM) here.

@frostymarvelous when you send a notification from the Firebase console is uses your app icon by default, and the Android system will turn that icon solid white when in the notification bar.
If you are unhappy with that result you should implement FirebaseMessagingService and create the notifications manually when you receive a message.  We are working on a way to improve this but for now that's the only way.

@samtstern Both comments are incorrect.
Custom messaging service is only called when the app is in the foreground.
Android does not turn the icon white. It keeps its color.
I've already implemented FirebaseMessagingService for my app when it's in the foreground.
What we are asking for is how to handle it when it's in the background.
I don't understand why the notification is created automatically when FCM is meant to replace GCM. It is totally incompatible with the current flow.

@frostymarvelous the behavior you are seeing sounds like a bug, in my apps the FirebaseMessagingService is definitely called when the app is in the background.
As far as the icon color, on recent versions of Android the system applies a white mask to the icon.  What sort of device do you have and what version of Android is it running?

An S6 running 5.1.1.
I think your behavior is the bug.
From the docs
"When your app is in the background on a user's device, notifications are
delivered to the system tray. When a user clicks on the notification, the
app launcher opens your app. If you want, you can also add client message
handling to receive notifications in your app when it is already in the
foreground on the user's device."
On Fri, May 20, 2016, 7:29 PM Sam Stern<EMAIL_ADDRESS>wrote:

@frostymarvelous https://github.com/frostymarvelous the behavior you
are seeing sounds like a bug, in my apps the FirebaseMessagingService is
definitely called when the app is in the background.
As far as the icon color, on recent versions of Android the system applies
a white mask to the icon. What sort of device do you have and what version
of Android is it running?
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/firebase/quickstart-android/issues/4#issuecomment-220697618

Sorry @frostymarvelous I misunderstood your situation, you are correct.  When you send a notification from the Firebase console and your app is in the background it cannot be customized.
If you want custom background notifications you should use the FCM API to send data messages to your app and handle them in the FirebaseMessagingService where you can decide how the notification should look.

If that works, then I'm good.
I thought it behaved the same across.
Thanks a lot for your help.
If you're part of the team, then thanks for your hard work as well.
On Fri, May 20, 2016, 8:30 PM Sam Stern<EMAIL_ADDRESS>wrote:

Sorry @frostymarvelous https://github.com/frostymarvelous I
misunderstood your situation, you are correct. When you send a notification from
the Firebase console and your app is in the background it cannot be
customized.
If you want custom background notifications you should use the FCM API to
send data messages to your app and handle them in the
FirebaseMessagingService where you can decide how the notification should
look.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/firebase/quickstart-android/issues/4#issuecomment-220710992

@frostymarvelous ok thanks for your patience while I figured out what was going on.
Please feel free to open issues if you try this approach and have questions.  Good luck!

@samtstern I can't find an example of FCM API and how to manage the custom icon.
Do you have an example of this? I'm new to cloud messaging and I only find that there is a parameter icon, but no details how to implement it in my app
Thank you!

Here is the documentation for sending Notification messages.
The icon parameter can be used to specify a drawable within your app.  If you want to use R.drawable.foo, just pass foo.

@samtstern thank you for the doc link, really helpfull.
Console has custom params when sending a message,
must the custom icon work there too? ( In my test this is still the app icon, but I can do something wrong)

It will only work if your app is in the foreground. Otherwise, you have to
use the the api.
On Tue, May 24, 2016, 7:48 PM Artem Osipov<EMAIL_ADDRESS>wrote:

@samtstern https://github.com/samtstern thank you for the doc link,
really helpfull.
Console has custom params when sending a message,
must the custom icon work there too? ( In my test this is still the app
icon, but I can do something wrong)
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/firebase/quickstart-android/issues/4#issuecomment-221375176

As far as I am aware it is not possible to customize the icon through the
console right now, but that is a high-priority feature for us going forward.
On Tue, May 24, 2016 at 12:48 PM Artem Osipov<EMAIL_ADDRESS>wrote:

@samtstern https://github.com/samtstern thank you for the doc link,
really helpfull.
Console has custom params when sending a message,
must the custom icon work there too? ( In my test this is still the app
icon, but I can do something wrong)
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/firebase/quickstart-android/issues/4#issuecomment-221375176

The key value pairs currently available in the Firebase composer are for data message values only.

Do we need to customize it through console? Can't we just add it as a
config parameter? Thanks would be better
Don't forget the colors as well please?
Once again, thanks for the great job you all are doing!
On Tue, May 24, 2016, 8:47 PM Sam Stern<EMAIL_ADDRESS>wrote:

As far as I am aware it is not possible to customize the icon through the
console right now, but that is a high-priority feature for us going
forward.
On Tue, May 24, 2016 at 12:48 PM Artem Osipov<EMAIL_ADDRESS>wrote:

@samtstern https://github.com/samtstern thank you for the doc link,
really helpfull.
Console has custom params when sending a message,
must the custom icon work there too? ( In my test this is still the app
icon, but I can do something wrong)
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
<
https://github.com/firebase/quickstart-android/issues/4#issuecomment-221375176

—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/firebase/quickstart-android/issues/4#issuecomment-221385340

It would have to be through the console since the client side handler does not reference any of your specified remote config parameters.

Well, I thought  that would work through the Configuration in the
Application class. I wonder how that would work since we can't tell the
value of whatever R.drawable.foo will be.
On Tue, May 24, 2016, 9:51 PM Arthur Thompson<EMAIL_ADDRESS>wrote:

It would have to be through the console since the client side handler does
not reference any of your specified remote config parameters.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/firebase/quickstart-android/issues/4#issuecomment-221410342

I'm having a similar issue getting the notifications customized. I'm not using the console at all - only making API calls. When app is in foreground notifications get handled by my custom FirebaseMessagingService, but when in app is in the background notification displays solid white icon and ignores any specified payload support parameters (icon, color etc).
Please advise whether this is expected as the behaviour appears to contradict comments made in this thread as well as https://github.com/firebase/quickstart-android/issues/8

@despisedIcon I have the similar problem, but I set it in the data section and it must be in the notification.
Like this:
'to' => '_PHONE_ID_',    "notification"=>array(         'title'=>"Test",         'body'=>"Test2",         "icon"=>"ic_stat_ic_notification"  // R.drawable.ic_stat_ic_notification     )

@Svoka Thanks for the tip. I've moved the icon parameter into the notification and now I'm getting the message

W/FirebaseMessaging: Icon resource icon ic_stat_logo not found. Notification will use app icon.

This same icon (R.drawable.ic_stat_logo) is being used for foreground notification builder without any issues.
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
				.setSmallIcon(R.drawable.ic_stat_logo)
				.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher))

Any idea why Firebase cannot resolve the icon for background notification?

@despisedIcon could you add your request here?

@kroikie You were right. I've tracked down this issue to malformed notification data in the request. Icon and color working correctly now. Thanks

@Svoka thats work form me... but only for small icon... any idea for large icon?

@sir-gon if you don't specify the custom icon, FCM will use the app icon.
I'm agree, if we can just set the default icon in some settings file, it'd be more convenient.

I'd prefer we simply got the opportunity to handle all notifications if
possible like we did with GCM.
It can be a configuration item as well.
I'm currently not using FCM to push notifications due to it being
unpredictable atm.
On Fri, May 27, 2016 at 9:24 AM, Artem Osipov<EMAIL_ADDRESS>wrote:

@sir-gon https://github.com/sir-gon if you don't specify the custom
icon, FCM will use the app icon.
I'm agree, if we can just set the default icon in some settings file, it'd
be more convenient.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/firebase/quickstart-android/issues/4#issuecomment-222101230,
or mute the thread
https://github.com/notifications/unsubscribe/AA4XZcaeLgZSGWEWC7nuNovN3nQiTZswks5qFrhWgaJpZM4IiXTl
.

--
Regards,
Stefan Froelich.

@frostymarvelous but when app in background GCM also send it to notification tray, not in app.

@frostymarvelous to be clear @Svoka is correct, FCM handles messages in the exact same way as GCM. Notification messages have always been handled in this way. If you always want to handle all notifications then you should send data only messages and handle the creation and display of notifications yourself. Note however that messages from the Firebase console are notification messages.

Thanks for clarifying that. Again.
I will give it another spin this weekend!

The problem of using data notification instead of notification message is that it is not compatible with iOS. For exemple, if you want to send a message to a topic to both iOS and Android it's hard to find way to be compatible to the both platforms :
Send only data payloads -> message is not sent to iOS,
Send notification payloads (with or without data payloads) -> white icon on android.
The tip of @Svoka solves the bug for now, but it's quite a hack!...

@antoineF thanks for the feedback however:

Data only payloads can be sent to iOS, see the content_available field in the reference docs. Also when the iOS app is connected to FCM (in the foreground) data messages are sent through the FCM connection and through APNs otherwise.

The white icon on Android is a known issue, the FCM team is working on a fix.

Sending notifications from console is really powerful feature thanks for that, but since it is not possible to customize notifications when application is in background, as @frostymarvelous said would it be possible to create a configuration item or something like that and handle it in FCM? And maybe we could have previews of notification how would it be seen on devices.
Setting a bigImage, defining action buttons, small icon, and even wear optimisations... by this configuration item.
Then it would be an amazing feature to use, but right now it forces not to use :(
(Because you know customer NEVER gets enough with default behaviours and they ALWAYS need custom stuff :))

Thanks for the feedback @yayaa it is noted!

Couldn't have said it better myself.
The dashboard is a really powerful tool and I'm currently not even attempting to use it.

@kroikie Can you please clarify when we can expect a fix? Sending notifications through the Firebase console was the main reason for us to jump on the Firebase train.
Also, I want to point out that I'm not able to fully customize a notification inside onMessageReceived callback. What I do is simple: build a notification with NotificationCompat with title, body and a small icon from my drawables. When the notification gets shown, the icon is transparent. If I use the launcher icon instead it shows up as expected.

I am developing movie review app where I need to push a message with movie title and movie poster so for that I need to implement NotificationCompat.BigPictureStyle regardless of app state(Foreground /Background) BUT i found that this could not happen when app is in the background with firebase cloud messaging.
There must be some mechanism like this:
public void onMessageReceived(RemoteMessage remoteMessage) {
// Determine app state (foreground/background)
// if(foreground){
// use notification style 1
//}
//else(){
// use notification style 2
// }
}
After  reading entire page I have decided NOT to use firebase as of now, I will implement GCM again. I hope this gets resolved as soon as possible.I am big fan of firebase.

I'm still such a noob, but via Raspberry Pi, Node-red and Firebase I now receive a notification on my phone when someone presses my doorbell. Helped by this page, even when the notification sample app is in the background, I get vibs or a tone. What I prefer though is, when the app is in the background and someone presses my doorbell I get a continuing ringtone, just like when someone would call me. This would be 'easy' when the app is in the foreground, but how to do it when it's in the background? From reading above I believe this cant be done yet, right?

@AndreasZeiser While I'm not able to give you a date for the fix to the icon issue, I can say that this is a high priority for the FCM team, and a solution will be released ASAP. I'm not sure why your notification icon is coming up transparent, once you receive the onMessageReceived callback you should be able to create and show notifications in the standard way, using NotificationCompat like you are.
@pinkeshdarji It may be worth noting that FCM and GCM receive notification messages the same way. So the foreground/background logic (which only applies to notification messages) will apply whether you are using FCM or GCM. I think that using FCM with data only messages will accomplish what you want since data only messages result in onMessageReceived being called whether the app is in the foreground or the background. The app being in the foreground or the background is only an issue when sending/receiving notification messages.
@NL-Splinter In cases when you want to have a callback to onMessageReceived whether the app is in the foreground or background then you should send data only messages.

Hi Arthur,
Thanks to your comment I now understand how to send a data only message, and the example app is indeed responding accordingly.
The only thing I don’t understand is:
the data payload is delivered in the extras of the intent of your launcher Activity
This kind of language is beyond my current Android skills :(
And  this is not the way right? (I’m getting null as a msg)
private void sendNotification(String messageBody) {
Intent intent = new Intent(this, MainActivity.class);
Log.d(TAG, "Msg: " + intent.getStringExtra("score"));
…
In other words: where and how do I pick up the (key/)value pair sent via the data?
I’m guessing it’s just 1 line of code, which I hope isn’t too much asked.
Thanks anyway for your help sofar!!
Regards, Jan
Van: Arthur Thompson<EMAIL_ADDRESS>Verzonden: woensdag 1 juni 2016 22:26
Aan: firebase/quickstart-android<EMAIL_ADDRESS>CC: NL-Splinter<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Onderwerp: Re: [firebase/quickstart-android] Custom Notifications when app is in background or killed (#4)
@AndreasZeiser https://github.com/AndreasZeiser  While I'm not able to give you a date for the fix to the icon issue, I can say that this is a high priority for the FCM team, and a solution will be released ASAP. I'm not sure why your notification icon is coming up transparent, once you receive the onMessageReceived callback you should be able to create and show notifications in the standard way, using NotificationCompat like you are.
@pinkeshdarji https://github.com/pinkeshdarji  It may be worth noting that FCM and GCM receive notification messages the same way. So the foreground/background logic (which only applies to notification messages) will apply whether you are using FCM or GCM. I think that using FCM with data only messages will accomplish what you want since data only messages result in onMessageReceived being called whether the app is in the foreground or the background. The app being in the foreground or the background is only an issue when sending/receiving notification messages.
@NL-Splinter https://github.com/NL-Splinter  In cases when you want to have a callback to onMessageReceived whether the app is in the foreground or background then you should send data only messages.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/firebase/quickstart-android/issues/4#issuecomment-223113956 , or mute the thread https://github.com/notifications/unsubscribe/AFqfSgm0rzEqP2kVtNeYCpKbQHR05yc-ks5qHeregaJpZM4IiXTl .

Thanks @kroikie,
onMessageReceived being called whether the app is in the foreground or the background by just passing data only messages as you suggested.
Now I can handle data like this-
public void onMessageReceived(RemoteMessage remoteMessage) {
String topic = remoteMessage.getFrom();
String movieId = remoteMessage.getData().get("movieId");
String title = remoteMessage.getData().get("title");
String details = remoteMessage.getData().get("details");
String movieUrl = remoteMessage.getData().get("movieUrl");
    sendNotification(movieId,title,details,movieUrl);

}
In sendNotification I can create custom notification.
Thanks Once again.

Super, helped me a lot!

Does data only message means the message text on the top has to remain empty and only key value pairs in advanced options are to be filled? I am still getting a totally white color icon on lollipop and above.

@swatijiet you can't send data-only messages from Console at the moment. You need to use API

Hi, does the click_action work from the console when app is in background? Or the APIs need to be used for that also? It works perfectly in foreground case, but not able to get it work in background. Is it a bug or behavior?

I have same problem. I tried to use different android service that only get fcm message body string to create custom notification but the same behavior appeared. My notification icon turned to white icon at the background.
Please fix the issue asap. :)

I had the same issue (the blank icon).
So I tried to use a POST request to https://fcm.googleapis.com/fcm/send through cURL in this way:
curl -i -H "Authorization: key=MY_SERVER_KEY" -H "Content-Type: application/json" -d @nt.json https://fcm.googleapis.com/fcm/send
Now I want to send the notification to all the devices, without specifying the token of each user. However if I don't specify the "to" element in the JSON file, I got error 400.
How can I send my data to  all users without specifying their token?

Hi, I wish to get the data payload information from the message sent from Server API I created. Anyone can provide me a guide or a link? I believe its just a several line of code but I just couldn't find it. I tried using getIntent() in sendNotification() as the doc mentioned this :
On Android, the data payload can be retrieved in the Intent used to launch your activity.
but it shows that it can't be resolved.
Also, I have included "onclick" in the data payload which successfully redirect users to the another activity that I used to show notification details but I couldn't get the data to be displayed.

I have the same problem. I need to store notification in db for late use and also change the notification style and couple of more works on the received notification which is not possible. Please fix this issue as soon as possible.

Can any1 guild me how to send multiple push notification via push API???

Hello ,
some time ago published in
http://stackoverflow.com/questions/38020348/send-a-notification-background-firebase-android
a problem that I have with the push notification in foreground and backgrand FCM after you read the link sugueris me to look at my app android?
backgrand foreground and take different style.
Regards,

Can anyone please provide some example how can i use the api to send data only messages (php), currently i am using console to send notification and data, but it acts differently when app is in background or foreground..

I have the same question. Is there any simple way to send the data only messages?

@xainbutt it's really simple, you can adapt the following code:
`$toWhom = '';
$serverKey = '';
$serverFrom = '';
// The data to send to the API
$postData = array(
'to' => $toWhom,
"notification"=>array(
'title'=>"Test",
'body'=>"Test2",
"icon"=>"ic_stat_ic_notification"
)
);
// Setup cURL
$ch = curl_init('https://fcm.googleapis.com/fcm/send');
curl_setopt_array($ch, array(
CURLOPT_POST => TRUE,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_SSL_VERIFYPEER=>false,
CURLOPT_HTTPHEADER => array(
'Authorization:key='.$serverKey,
'Content-Type: application/json'
),
CURLOPT_POSTFIELDS => json_encode($postData)
));
// Send the request
$response = curl_exec($ch);
// Check for errors
if($response === FALSE){
die(curl_error($ch));
}
print '' . print_r($response, true) . '';`

Just want to leave my feedback about the notification framework:
We as developers should have full control of the notifications. I never wanted FCM to auto-notify my system bar for me and i should ALWAYS receive the "onMessageReceived" callback, doesn't matter in foreground or background.
Pehaps we could have a checkbox on the Firebase Notification console indicating "Auto-notify". If unchecked, we get the "onMessageReceived" callback. Otherwise, it notifies the system bar.

Agreed
On Thu, Jul 14, 2016, 18:43 shinayser<EMAIL_ADDRESS>wrote:

Just want to leave my feedback about the notification framework:
We as developers should have full control of the notifications. I never
wanted FCM to auto-notify my system bar for me and i should ALWAYS receive
the "onMessageReceived" callback, doesn't matter in foreground or
background.
Pehaps we could have a checkbox on the Firebase Notification console
indicating "Auto-notify". If unchecked, we get the "onMessageReceived"
callback. Otherwise, it notifies the system bar.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/firebase/quickstart-android/issues/4#issuecomment-232704454,
or mute the thread
https://github.com/notifications/unsubscribe/ACtEJrpZWE717XEPnLr1NxigCL6Mly-cks5qVlk9gaJpZM4IiXTl
.

--
Have a nice day
Yishai Levenglick
Android developer
+972-54-520-9569

@shinayser I think you just misunderstood how android notifications is working.
This is the CORRECT behavior

@Svoka No, I did not. When in background, the Firebase Notifications (in Console) doesn't have data-only notifications. So, we can't customize it when app is in background.

@shinayser Why don't just use CURL or something instead? They'll be done with the console and data notifications soon.

@Svoka  you used "notification" as the key, wouldn't it be "data..??
I got this from docs..
https://fcm.googleapis.com/fcm/send
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA
{ "data": {
"score": "5x1",
"time": "15:10"
},
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."
}

@xainbutt yes, you're right. This code needs to to do a little modification if you want to send data-messages.

I wonder if we don't face a very recent problem on Android about the ability to receive data-messages while the application is in background.
It worked, for sure as I currently have a published application built 07/08/16 which perfectly receives data-message sent via API even if it's in background.
But I currently realize that the same project I rebuild now after some updates asked by Google within Studio, cause my application to not receive any data-message anymore while in background.
And that's very new. Could anyone confirm it or not?

@Svoka thanks for your code.
But I get the error under below:
Unauthorized
Error 401
And I search for this error, this may be the problem of server key,
But I used the api_key in google-services.json, i should be work, right?
Do anyone have some idea?

I am still looking for a way to Customize the notification message , specifically changing the style to BigTextStyle when the app is in the background. I have a relatively large message which gets ellipsized and more often than not the app is in the background when the user receives a notification from our server.

@2ndGAB Using Firebase 9.2.1 and Play services 9.2.1 notifications arrive in background.
@hossein-85 use the notification fields inside the data field for notifying Android users and then you can make your custom notifications (if you use the notification field you won't get the background notification in your declared Messaging service on Android). Unfortunately this does not work for iOS users, so you have to send separate requests to the Firebase messaging service.

 Android developer unable to make customization in Notification message. It's difficult to show something like (5 new messages from somebody) unless the app server do the calculation which is NOT a good way. Is there any better way other than sending (Data only message to Android & Notification message to iOS)?

@howyongjun if you want full control of the notification on Android then you should send a data-message and since data messages cannot be received while an iOS app is in the background then you would not have a choice but to send two different notifications to each platform.
I understand the desire to send the same message to both iOS and Android as you would not have to keep track of the platforms, thanks for the feedback on this.

@kroikie I got some question about the collapsible. The problem I'm having is I sent 4 different notification message with 4 different collapse_key while the device is offline, then i reconnect to Internet & ONLY receive the last notification message. Is this an issue or i misunderstood the meaning of collapsible?

Using Firebase 9.2.1 and Play services 9.2.1 notifications arrive in background.
@Gloix Do you mean data-only messages or are notifications created from Console working for you? Tested latest Firebase on Android and my app doesn't seem to receive notifications while in background.

@howyongjun what platform are you checking? collapse_key will not work if you are sending messages to iOS FCM does not hold on to messages sent to iOS devices.

@kroikie i'm using collapse_key for Android only. It seems that some of the behaviour are not the same as what mentioned in the document. For instance,  disconnect device from Internet connection --> send different messages with different collapse_key --> reconnect device with Internet connection --> receive only the last message sent. Any idea on this behaviour?

@Gloix did you very recently build a project to verify it still work because It worked for me until begining of july but it don't work anymore for me after recent development environment updates.

Since i am not able to create a custom notification -as talked above- we decided to implement data-only messages via FCM API, and not use console -even though how powerful it is.
But just out of curiosity is there a way that FCM console messages displayed by using colorPrimary | colorAccent or any of resources? And also if the notification gets icon from R.mipmap.ic_launcher or it gets icon from application's icon?
Because i can't know how that automated notification is built, i just wanted to know if there is any resources that build configuration is currently getting data from? So that i may try a work around on those values to get a good look in case of we consider send notification from console in future.
(Right now we do not even mention about it, because it displays a notification with gray background and a white square icon)

@2ndGAB @tiagoshibata I'm sorry for the delayed response. I just tested with Firebase library 9.2.1 through the Firebase console and I received the notification in background.

@Gloix That's a good news.
Can you tell me which Android Studio version do you use?

@2ndGAB Android Studio 2.1.2. Maybe I should also mention that I included a title, a message and that the target was a single user.

@Gloix ok so no data payload message

@2ndGAB Exactly. No data message. I actually didn't include any additional fields in the Firebase console form. Only title, message (I included a message tag as well (the second field in the form) ) and the single target user. App was in background (closed, not open in background), but phone screen turned on.

halo i have same problem , my icon not show on background notifcation just show white background in bar and not popup like foreground notification
i tested on lollipop device
here is my http request

{
"collapse_key" : "demo",
"priority" : "high",
"data": {
"id" : 123,
"message": "kirim data pakan Kolam Siapapuns",
"title": "Log Pakan",
"type": "feed_log",
"content":
{
"pond_id": 5,
"pond_name": "Kolam Siapapun"
},
},
"notification" : {
"title" : "Title"
"body" : "Haloooooo",
"icon" : "myicon",
"sound" : "default",
"click_action" : "FISH_LOGS"
},
"to" : "el4ol2TYUyg:APA91bG6YrtvgAdNHxLxxxXX"
}

whats wrong with my request ?

@abdymalikmulky Are you supposed to receive your data message in onMessageReceive()?

@2ndGAB  i have created my onMessageReceive() , that method just call when app in foreground
this is my screenshoot

foreground notification (notification that i want)

background notification

Just show the white background icon (even though my color parameter is works)
not showing notification like in foreground
photo264167697778059620](https://cloud.githubusercontent.com/assets/1695466/17166326/7267a31e-5400-11e6-9d95-808b526ab13d.jpg)

i just confuse of FCM behavior , Would be very helpful. Thanks.

@abdymalikmulky ok so if I understand well, when the application is in background, the Notification is received by the system tray and not your application.
I never tried it so I cannot help you about the problem you have with your icon. I'm really sorry.
I'm not so experienced with FCM but the basics are the following.
When your application is in foreground, the notification and the data payload is received by onMessageReceive() as you do.
When the applicaton is in background, there are 2 situations:

You send a Notification only message and it's received in the system tray and displayed as you observe but your application is not informed about it.
You send a Notification with a data payload like you do and the behavior is the one explained just above except that the data payload is passed to your application via the Intent you receive in your main activity when the user tap the notification which cause your app to be started.

But if you have time, I would be very interested that you try to create your notification in your application, based on data message only.
That suppose to send the message from
Then you receive the data payload in onMessageReceive() as you certainly do already and you generate your notification from onMessageReceive() as you may do already but in case and just for a very simple test:
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {

    Log.d(TAG, "From: " + remoteMessage.getFrom());
    Log.d(TAG, "Notification Message Body: " + remoteMessage.getData());

    sendNotification("FCM message received");

}

private void sendNotification(String messageBody) {
    Intent intent = new Intent(this, MainActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent,
            PendingIntent.FLAG_ONE_SHOT);

    Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
            .setSmallIcon(R.drawable.ic_stat_ic_notification)
            .setContentTitle("FCM Message")
            .setContentText(messageBody)
            .setAutoCancel(true)
            .setSound(defaultSoundUri)
            .setContentIntent(pendingIntent);

    NotificationManager notificationManager =
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

    notificationManager.notify(0, notificationBuilder.build());
}

I would be very interested to know if a notification is created when you send the message while the application is in background.

ic_stat_ic_notification is attached.

Is it possible to use GCM receiver and FirebaseMessagingService's onMessageReceived(RemoteMessage remoteMessage){..} both at the same time.
It appears to me that when I send notification from Firbase console and app is in background... in my code both GCM receiver and FCM notification is showed.

first, is the notification showing icon app, sound and other same as property that you set in  onMessageReceived() ?
second , how if the app was killed ? the notification still show "normally" ?

@abdymalikmulky yes... When App is in background firebase shows default notification as per documentaion.
In my code I have kept both GCM receiver and FirebaseMessagingService. My problem is when I send message from firebase console it invokes GCM receiver as well as Firebase notification.

thank you @KishorAndroid  , i will try it

@abdymalikmulky  I have same issue ...When you can solved then please Tell Us!!
and How to set BigPictureStyle() in FCM notification when app is in background or Destroyed!!

Why is this issue closed? Since the main issue was about "Custom Notifications when app is in background or killed" and not solved yet? Does this mean we should not wait for a fix to this? I was really hoping Firebase team to be working on this.

@yayaa I think you need to read all the thread first. It's definitely not a bug and everything is working as planned

I know it is as planned, but i thought at least this would be considered as feature demand. Most of the applications icon's somehow a background, and when firebase applies white tint on it to display as notification icon, it is mostly white squared empty icon or some non-sense icon there. At least, customisation on icon - color and so on. I see on notification message documentation there are some fields like that and i thought maybe it's already done and i missed that, but when i try to send that from console as additional params in advance section, i saw no changes. That's why i actually said no improvements on this topic.

@yayaa oh, I think I get it now. In my case I don't need console at all, because we have server with this logic. So we send data-only messages. (Console still can't do this, I guess)
By the way, you can provide icon from console:
it's R.drawable.#_ICON_STRING#

I know with data messages you can do anything. But we talked about having notification messages sent from console would also be customizable. And then i saw that issue was closed... :(

@yayaa I guess we need to create separate issue for that :)
In context of possibility to show icon this issue is closed.
Create new issue https://github.com/firebase/quickstart-android/issues/139

@Svoka Can you confrm that you build your application with Android Studio 2 to receive data only messages?

@yayaa I don't think if I undertsand you well but if your are talking about icon appearing on status bar when you receive a notification, they are mandatory white on transparent background since Marshmallow.

Yes, i am aware of that @2ndGAB . But the problem here is when you have an icon with some graph on a solid background, and when firebase automatically creates your notification icon by tinting your application icon as white, it ends up like @abdymalikmulky screenshot.
Anyway since this issue is closed, i will just stop watching until i need to use Firebase again, and just hope them to fix it by then.

@yayaa That's very strange, here is how I create my notification from a data only message, received in onMessageReceived()
        Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.launcher_icon);

        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
                .setSmallIcon(R.drawable.ic_logo_notif)
                .setLargeIcon(bm)
                .setContentTitle(title)
                .setSound(ringURI)
                .setStyle(new NotificationCompat.BigTextStyle().bigText(msg).setSummaryText(this.getString(R.string.label_service)))
                .setContentText(msg)
                .setContentIntent(contentIntent)
                .addAction(R.drawable.ic_action_place, null, geoPendingIntent)
                .addAction(R.drawable.ic_action_web_site, null, webPendingIntent)
                ;

And here is the result: first the
And here is when you open
You can see that if you provide a valid little icon with setSmallIcon(), you won't have a white square in the status bar, same if you provide a valid large icon with setLargeIcon().
I usually build my icons with

I want to send a image in push message using firebase consol how can i send image in push message any solution.and also i want to custom look of notification..?

I want to send a image in push message using firebase consol how can i send image in push message any solution.and also i want to custom look of notification..?

I want to send a image in push message using firebase consol how can i send image in push message any solution.and also i want to custom look of notification..?

I want to send a image in push message using firebase consol how can i send image in push message any solution.and also i want to custom look of notification..?

I want to send a image in push message using firebase consol how can i send image in push message any solution.and also i want to custom look of notification..?

I want to send a image in push message using firebase consol how can i send image in push message any solution.and also i want to custom look of notification..?

I want to send a image in push message using firebase consol how can i send image in push message any solution.and also i want to custom look of notification..?

I want to send a image in push message using firebase consol how can i send image in push message any solution.and also i want to custom look of notification..?

I want to send a image in push message using firebase consol how can i send image in push message any solution.and also i want to custom look of notification..?

I want to send a image in push message using firebase consol how can i send image in push message any solution.and also i want to custom look of notification..?

I want to send a image in push message using firebase consol how can i send image in push message any solution.and also i want to custom look of notification..?

I want to send a image in push message using firebase consol how can i send image in push message any solution.and also i want to custom look of notification..?

I want to send a image in push message using firebase consol how can i send image in push message any solution.and also i want to custom look of notification..?

I want to send a image in push message using firebase consol how can i send image in push message any solution.and also i want to custom look of notification..?

I want to send a image in push message using firebase consol how can i send image in push message any solution.and also i want to custom look of notification..?

I want to send a image in push message using firebase consol how can i send image in push message any solution.and also i want to custom look of notification..?

I want to send a image in push message using firebase consol how can i send image in push message any solution.and also i want to custom look of notification..?

I want to send a image in push message using firebase consol how can i send image in push message any solution.and also i want to custom look of notification..?

I send User segment push notification but All user don't get push notification Why all did not get? From console.firebase.google.com I found monthly active user 4100 but when i send notification It shows 2100 send. and every time i got notification in 7 to 10 phones out of 12 different phones. That mean 50% user found notification. then what would be be others.

A notification is sent but does not reach all devices. 70% - 80%.
$url = 'https://fcm.googleapis.com/fcm/send';
$fields = array(
    'registration_ids' => $registatoin_ids,
    'priority' => 'high',
    'data' => array("notification" => true),
);

@jaydip5500 data message payload is 4 KB only. Difficult to send an image.
Maybe you could send an URL used by your application to get the image from your server.

@tariqul000 @yerca Do you respect the limit of 1000 notifiactions sent at a time, then the exponential delay between 2 successive requests?

@2ndGAB Yes I do. I send 500 notifications every 1 minute, to not load my server.
an example of response.
{"multicast_id":xxxxxxxxxxxxxxxx,"success":500,"failure":0,"....

Ok good, no more idea.... sorry

@yerca Have you linked FCM with the Play Store console? You can check the FCM Statistics to see if there were errors sending to devices. Maybe the messages were queued/stored?

@2ndGAB @efung Thanks. I've looked. Many messages are in state accepted but not confirmed.

I have solved this problem.
In some devices, when the app is in background or killed,it really has this problem,but some devices not,maybe it has some relation with the android version or google play services version.
If you use the GCM api to send the notification ,the ic_launcher icon can be showed well.
If you use the Firebase Console to send the notification, your ic_launcher need to make some modification, the background must be transparent, just like the picture below.
Firebase will give a better solution and coming up very soon.

@abdymalikmulky modify your ic_launcher just like what I do

sorry... but imho, modify icon/logo design just for bug in library is a unacceptable workaround...
I could tolerate an alternative default file name instead ic_launcher

Update the version to the least ,current is 9.8.0,  than follow the solution below,
https://firebase.google.com/docs/cloud-messaging/android/receive

finnaly ! thanks @chenyucheng97

@JulienDev @chenyucheng97 please tell the version you used for resolving this issue.

hi,i have the same problem. When app is killed,my app can not receive notification?i want to know why  and how to solve that?

Hi!
I'm having the same issue... However, Is it possible to show the notification when the App is launched?
Thanks in advance

@PaoloApplingua yes its possible, you can try create and call notification manager notify same as you call notification from FCM

Couldn't agree more. One year passed and it's still not possible to control background notification and/or send data messages via the console unfortunately.
Meanwhile, people seem to get around the issue with hacky workarounds overwriting undocumented functions in FirebaseMessagingService like so:
https://stackoverflow.com/questions/37325051/notification-icon-with-the-new-firebase-cloud-messaging-system
Only thing that seems to work so far, but I'd rather refrain from that. Otherwise, why wouldn't it be mentioned in the docs.

shinayser commented on Jul 14, 2016
Just want to leave my feedback about the notification framework:We as developers should have full control of the notifications. I never wanted FCM to auto-notify my system bar for me and i should ALWAYS receive the "onMessageReceived" callback, doesn't matter in foreground or background.
Pehaps we could have a checkbox on the Firebase Notification console indicating "Auto-notify". If unchecked, we get the "onMessageReceived" callback. Otherwise, it notifies the system bar.

I have the same problem.
Application mode background or killed at that time FCM not call "onMessageReceived".
public class MyFirebaseMessagingService extends FirebaseMessagingService {

    private static final String TAG = "MyFirebaseMsgService";

    /**
     * Called when message is received.
     *
     * @param remoteMessage Object representing the message received from Firebase Cloud Messaging.
     */
    // [START receive_message]
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
Log.d(TAG, "Message data payload: " + remoteMessage.getData());
}}

I have really weird and frustrated problem, and I have no idea why it is happening. I have application signed and published as closed beta release on Google Play store. I have installed it on my phone and sending push message with data payload from my Digital Ocean droplet, works on my Huawei P9 Lite Android 7 even when application is killed, onMessageRecieved is always activated, but on the other phone Huawei P8 Lite, no notification is received, only when application is in foreground and in background (not killed)
So I have created this application to try and figure out what is happening: https://github.com/clzola/firebase-test (you will find php directory in which you can find scripts I use to send messages)
So here are the steps:

Run application
Copy token
Kill application
$ php notification.php

on my phone, notification is shown in tray (Huawei P9 Lite, Android OS 7)
On the other phone (Huawei P8 Lite, Android OS 6), same steps reproduced, no notification in tray
I have tried to send only data payload, same scenario on p9 lite works, on p8 lite does not work, also tried with sending both payloads, notification and data payload, same thing, on p9 lite works on p8 lite does not.
When application is running on p8 lite (app is in foreground) sending messages with notification payload only, data payload only and both payloads works, also if I click back button and application goes to background also works all three type of messages. Now I swipe off application (killing it), none of the above messages are received on p8 lite. I have also tried to sign apk, send it to my email, detach phone from lap top (Android Studio), restart phone, and then installed signed apk, opened application, read the token, kill application and send notification payload only message and there is no notification in tray...
As I understand, Google Play Service should receive this notification message payload and show it in tray when application is not running ....
I noticed this message in logcat, it is printed out each time I send message to my phone when application is not running:
08-18 19:17:41.602 4565-4565/? W/GCM-DMM: broadcast intent callback: result=CANCELLED forIntent { act=com.google.android.c2dm.intent.RECEIVE flg=0x10000000 pkg=clzola.com.firebasetest (has extras) }

I couldn't believe that this was not possible. It is not clear from the docs that you can only modify the notification when the app is in foreground and it also is not logical. I understand that there is a possibility to let Firebase handle this, but you should be able to override this. The "data message" is not a good solution because iOS will not show the notification anymore.
I like the way I can handle the notification when the app is in the foreground, so if that would also be possible in the background, that would be great and also way more logical.
In the meantime is there anything I can do to make this work on iOS and Android? On Android I want to show my own custom notification (which can open in different activities, have a different priority, different styles and different notification tags). This custom notification currently only works in the foreground. Also I want iOS to stay the same (show the notification when push message is received and when opened same custom tasks like on Android). Currently the only possible solution I see is to send a "data message" to all Android users on a specific topic and the "notification message" to all iOS users on a specific topic.
Please tell me there is another way to do this. Because this is just horrible...

It's been trending topics about Firebase Cloud Messaging that Data Payload message is not fired onMessageReceived() method for some lower end device. And it's true. Here is the result.

App is killed scenario

**Devices got payload:: 1. Nexus 5s : OS 7.1
Device not get payload:: 1. Xiomi MI 4c: OS 5.1 2. Huawei LUA -U22 :OS 5.1**
Ensure that i'm not sending notification key from server / postman.
I am looking for the solution, i got data payload from firebase including all types of devices and Android OS & obviously From API level 15. My postman details are as follows.
 {
    "registration_ids": ["fC5uxGSRCsg:APA91bHh9fMXQ41LpX6tjjSsBKGrKTWYpzKimLDzvBGSHDPo2pq87JHqogUp2kqrmJi06siG_p6DfgRCim23iFzlBQAIrgtMDqRW4s39zUqv9CzyPqzxVl5PtnHPRDs4OagTuTePNyDI"],
    "data": {
        "title" : "my_custom_value",
        "message" : "tekksdasdasdsa",
         "isBackground" : "",
          "payload" : {

          },
           "timestamp" : "",
            "imageUrl" : "",
     }

}

the only way to resolve this issue is to use the handleIntent method. This function will always get called. or we can go back to GCM
    @Override
    public void handleIntent(Intent intent) {
//        super.handleIntent(intent);
        Logger.d(intent);
        Logger.d(intent.getExtras().getString("key"));
        Logger.d(intent.getExtras().getString("gcm.notification.body"));
        Logger.d(intent.getExtras().getString("stuff"));
}

In FCM, you can no more send silent/Custom push notification to the apps running in Background by using console. You have to use POST request to send them.
The details can be found out here https://firebase.google.com/docs/cloud-messaging/server#implementing-http-connection-server-protocol
PS: Make sure for sending custom push notification, you are having just 2 keys in body - data and to

What about showing image from url ? I want to add imageUrl when sending notification from Firebase Functions. Something like:
const payload = {
                                notification: {
                                    title: `xx`,
                                    body: 'xx,
                                    icon: 'imageURL',
                                },
                            };

Notification is received when app is in background.

how about my solution
https://stackoverflow.com/questions/48897883/how-to-handle-notifications-with-fcm-when-app-is-in-either-foreground-or-backgro/48899186#48899186

Agree with @jemshit. It was really convenient to specify a link for icon in notification push. Are there any plans to add this?
Thank you.

@pavelshackih @jemshit thanks for that feedback, the team is looking into this type of feature.

I'm still having issues with firebase push notification.
It only customizes my push notification when the app is in the foreground.

Hi!
I need to somehow remove extras from an intent that was delivered by FCM.

App is closed
I send push notification from the fcm
When a user clicks on notification tray icon app starts and retrieves data from intent's extra
Then I want to clear these extras to prevent unexpected behavior in the future (I use intent.removeExtras())
After that, I click the back button (an app is closed), then through task manager I choose my app
An app is started and intent still has extras from fcm in it.

Question: how I can completely remove given extras?

@BulatMukhutdinov pressing the back button does not close the app. Your activity might be resumed with the same intent as the previous one. Maybe if you swipe your app away from the recents screen then you would have your app launch with an intent with empty extras. I would suggest having some type of check to see if the extras have already been handled so you can ignore them if so.

@kroikie  yes, an app doesn't close, but the activity is recreated. Although I remove extras, the recreated activity still receives these extras. Is it intended behavior? How can I completely remove extras?
Sure, I can store somewhere if I have already handled extras but it seems to me as a workaround

@BulatMukhutdinov this is working as intended. I believe the recents menu reuses the intent last used by the activity. As you have seen, I don't think removing the extras from the intent in the activity has an effect on the intent used to create the activity from recents menu.
Maybe in a future release we could add controls that will allow the developer to define how the launched activity is handled by the recents menu but for now you will have to handle those intent extras yourself.

Why does not SDK call onMessageReceived in background? I can not find a reasonable reason.

Two years passed and we still dont have solution for this ?
My app built using ionic 3, and it can receive the notification message just fine through FCM when the app is closed/killed,
But it can't show the data message received. Mean i can't customise the notification style. I can't show the picture, can't show the button, and can't give user custom action.
Currently, user need to tap the notification in the tray, which will open the app, then only the second notification, containing the data message, appear.
Is there really no way to directly push the notification with data messages when the app is killed ?

Why this issue is closed?!

i has know how to handle this issue.
Mehdi Dehghani<EMAIL_ADDRESS>于2019年6月12日周三 下午2:24写道：

Why this issue is closed?!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/firebase/quickstart-android/issues/4?email_source=notifications&email_token=ABMS2DPHR7OWLM63HJ5A5DLP2CJCTA5CNFSM4CEJOTS2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXPMBVI#issuecomment-501137621,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABMS2DOCUA2KGYXUYGOOSCDP2CJCTANCNFSM4CEJOTSQ
.

@flyme2012 thank you, actually I found the solution. of course after posting my prev comment.

I'm not sure if anyone has mentioned it, but of course it's possible to have custom notification! The only thing is that you should do it yourself! From the server, you only send the message payload (data message) in your push notification. Then in your phone side, like Android, you create the notification manually by using the information you receive in the push notification message payload. For example, this is a snippet that can work on your server, in Python:
from pyfcm import FCMNotification

api_key = "YOUR SERVER KEY"
registration_id = "Your user FCM registration token"
data_message = {
    "title": "ntf title",
    "body": "ntf body",
    "style": "a string that represent what you want, you will use it on the phone side."
}
push_service = FCMNotification(api_key=api_key)

result = push_service.notify_single_device(registration_id=registration_id, data_message=data_message)

print (result)

Then on Android side, you need to write your code for handling push notification. Basically what you can do is creating a notification, with title and body. Then for the style of the notification, you will decide according to style that you receive from FCM. It's completely up to you what to do, how to create the notification and its style.
Android example by Firebase, open the link to see the whole section.
Getting message Payload example
https://github.com/firebase/quickstart-android/blob/375c1ae5ec9000ee71b93cee409086e27d774bdb/messaging/app/src/main/java/com/google/firebase/quickstart/fcm/kotlin/MyFirebaseMessagingService.kt#L43
Creating notification function (open the link to see sendNotification function)
https://github.com/firebase/quickstart-android/blob/375c1ae5ec9000ee71b93cee409086e27d774bdb/messaging/app/src/main/java/com/google/firebase/quickstart/fcm/kotlin/MyFirebaseMessagingService.kt#L114

hey @ckarthikv
actually i am facing a issue in IOS when the app is in background.
#608 Can you please have look into it,.

Gi

@samtstern @kroikie pardon the tags but I have been neck-deep in GitHub issues and StackOverflow posts for weeks now trying to understand how to fit a square peg into a round hole with FCM and I keep arriving at "what I want to do is impossible, and is also considered by-design according to Firebase". I have read every post in both this issue and #368 while trying to draw blood from a stone.
I have a body of "legacy" existing notification payloads that get sent to both iOS and Android. For Android clients they were GCM originally, migrated to FCM, and on FCM they include a notification payload - so from an FCM standpoint, they are "notification messages with a data payload".
Naturally - as discussed in this very thread - that means the Firebase SDK handles them when the app is backgrounded and my app has no opportunity to customize the rendering.  Historically these were using bare bones notification features - just a title/body - and now I want to start to "enhance" them with images, inline actions, etc. However, due to this service notification template choice made years ago in my organization, all of Android's "rich notification" features are locked off from me, except when the app is foregrounded.
The advice seems to be "just use a data message", but that's a breaking change to these notifications. I can't just delete the notification payload. All existing app versions "in the wild" would stop displaying these messages as-is if I changed the service payload to data-only. The only path forward I have today is to effectively create an entirely duplicative, "new version" of notification (in my service ecosystem), have new clients register for that data-only message and not the existing notification message. I can do it, it's just code + dev time, but it's code + dev time that's caused by a seemingly arbitrary choice in the Firebase SDK. ☹
All so I can customize the rendered notification when the app is backgrounded.
To echo @najeira's comment form a couple years ago - I just sort of why to know why? I understand the docs and all the comments saying "this is how it is", but for the life of me I can't figure out what the intent is of this design choice. There used to be hacky workarounds, apparently - see https://stackoverflow.com/a/48899186/244184 - but these have been broken (presumably on purpose) by Firebase SDK updates.
There is clearly a developer desire to allow an app to opt-in to customizing these payloads. I would love love love some way using the Firebase SDK on Android to say "hey do your default system tray notification thing, but please wake up a Service so I can override the default behavior for specific notifications, pretty please, just let me intercept and customize the payload before you do your magic" - the exact same way a Notification Service Extension works on iOS. If the SDK is going to do magic that the app can't interfere with, then please give the app a last second chance to modify the notification body before the SDK handles it, because the only alternative is disruptive changes to the services that are generating the existing payloads.
Given all the issues that get opened on this topic both here and throughout the web this is clearly a contentious design choice in the SDK :(
At this point, since this topic has been going for 6 years, I am not expecting a Firebase SDK issue to magically solve this issue, so I'll pursue the necessary service changes to enable this for my customers, but I am very frustrated. This has been the one time where an Android SDK has completely and utterly failed me compared to iOS platform functionality with literally no viable client workarounds. I'm at a loss.

A bit late, but in my case I can get data-only notifications to work in foreground and background, but not when the app is closed (swiped away) in Android.
I tried defining the priority to high in the payload, and I also changed the settings for the app not be battery optimized (just in case that was avoiding the background code that receives and processes the data notification from running). Nothing worked.
Is there a way to make it work when the app is closed? Otherwise I would need to make a notification + data message, but that would cause this issue when the app is closed and in background, that is, the icon would have a bad style, the messages won't be grouped, it would have no summary, etc...

Hi,
I'd like to implement custom notification styles when app is in background or is killed. Is there a Firebase broadcast receiver class one could extend to implement the same? Would be very helpful. Thanks.

I'm not sure if anyone has mentioned it, but of course it's possible to have custom notification! The only thing is that you should do it yourself! From the server, you only send the message payload (data message) in your push notification. Then in your phone side, like Android, you create the notification manually by using the information you receive in the push notification message payload. For example, this is a snippet that can work on your server, in Python:
from pyfcm import FCMNotification

api_key = "YOUR SERVER KEY"
registration_id = "Your user FCM registration token"
data_message = {
    "title": "ntf title",
    "body": "ntf body",
    "style": "a string that represent what you want, you will use it on the phone side."
}
push_service = FCMNotification(api_key=api_key)

result = push_service.notify_single_device(registration_id=registration_id, data_message=data_message)

print (result)

Then on Android side, you need to write your code for handling push notification. Basically what you can do is creating a notification, with title and body. Then for the style of the notification, you will decide according to style that you receive from FCM. It's completely up to you what to do, how to create the notification and its style.
Android example by Firebase, open the link to see the whole section.
Getting message Payload example
https://github.com/firebase/quickstart-android/blob/375c1ae5ec9000ee71b93cee409086e27d774bdb/messaging/app/src/main/java/com/google/firebase/quickstart/fcm/kotlin/MyFirebaseMessagingService.kt#L43
Creating notification function (open the link to see sendNotification function)
https://github.com/firebase/quickstart-android/blob/375c1ae5ec9000ee71b93cee409086e27d774bdb/messaging/app/src/main/java/com/google/firebase/quickstart/fcm/kotlin/MyFirebaseMessagingService.kt#L114

This will only work when app is foreground , when app is killed or in background it will not work

@flyme2012 thank you, actually I found the solution. of course after posting my prev comment.

Solution Please


Cache paginator iterator

When we use paginated data in several places (through events for instance), queries are re-issued every time we iterate on DataEvent::getData().
It would be nice if the iterators were cached.

:+1:
Ping @sroze @theofidry

Aside from the null thing (it's really nitpicking) :+1:

LGTM :+1:

Fixed the null thing !

Thank you @jchampion

@theofidry don't forget to merge it in master too.


Email Form

Hello!
I'm using your theme and it is great.  However, I've run into one final poblem with the email form.  I get the error "Sorry , it seems that my mail server is not responding. Please try again later!"  I am not sure where the problem is coming from... I've tried changing the email in the _config.yml  and contact_me.php, to no avail.  I'm new to this, so perhaps there is something wrong with my setup.  Any thoughts?

Hi,
First of all, thanks for using the theme!
Your issue is actually expected, as github pages only serves static content

ie. mail/contact_me.php doesn't work when hosted on github pages.  It is
not too hard to fix however:

First, you will need to sign up for a mail sending service like SendGrid or
Mandrill, which allows you to send email via a Javascript API.
Then, you can modify the ajax request in the 'submitSuccess' method
(line20) in /js/contact_me.js - you will have to replace the url field with
the appropriate API endpoint, and pass the appropriate parameters according
to your mail service provider.
Those are the high-level instructions I will leave you with - if you have
any more questions about implementing it, just let me know.  I may be able
to give you some more hands-on help if you are not that familiar with JS
and API's.
Best,
Rick
On Sat, May 30, 2015 at 5:40 AM, allochory<EMAIL_ADDRESS>wrote:

Hello!
I'm using your theme and it is great. However, I've run into one final
poblem with the email form. I get the error "Sorry , it seems that my mail
server is not responding. Please try again later!" I am not sure where the
problem is coming from... I've tried changing the email in the _config.yml
and contact_me.php, to no avail. I'm new to this, so perhaps there is
something wrong with my setup. Any thoughts?
—
Reply to this email directly or view it on GitHub
https://github.com/y7kim/agency-jekyll-theme/issues/14.

Rick,
Thanks!  This is great.  I am not familiar, as this is only my second
website, but I'll dive in and see how things go.  I appreciate your help
and if I get completely stuck I might take you up on your offer!
Tyler
2015-05-30 18:27 GMT+02:00 Rick K<EMAIL_ADDRESS>
Hi,
First of all, thanks for using the theme!
Your issue is actually expected, as github pages only serves static content

ie. mail/contact_me.php doesn't work when hosted on github pages. It is
not too hard to fix however:

First, you will need to sign up for a mail sending service like SendGrid or
Mandrill, which allows you to send email via a Javascript API.
Then, you can modify the ajax request in the 'submitSuccess' method
(line20) in /js/contact_me.js - you will have to replace the url field with
the appropriate API endpoint, and pass the appropriate parameters according
to your mail service provider.
Those are the high-level instructions I will leave you with - if you have
any more questions about implementing it, just let me know. I may be able
to give you some more hands-on help if you are not that familiar with JS
and API's.
Best,
Rick
On Sat, May 30, 2015 at 5:40 AM, allochory<EMAIL_ADDRESS>wrote:

Hello!
I'm using your theme and it is great. However, I've run into one final
poblem with the email form. I get the error "Sorry , it seems that my
mail
server is not responding. Please try again later!" I am not sure where
the
problem is coming from... I've tried changing the email in the
_config.yml
and contact_me.php, to no avail. I'm new to this, so perhaps there is
something wrong with my setup. Any thoughts?
—
Reply to this email directly or view it on GitHub
https://github.com/y7kim/agency-jekyll-theme/issues/14.

—
Reply to this email directly or view it on GitHub
https://github.com/y7kim/agency-jekyll-theme/issues/14#issuecomment-107059592
.

@allochory: Take a look at my version for an email form that works on github pages: https://github.com/zbeekman/zbeekman.github.io

very nice solution zbeekman, thanks.

Hello, I have a similar problem, my form doesn't validate information, just sends the message (

okay I get it now, it seems that input wrap required a proper class

@Tamxaun can you please elaborate on the fix?

it works when the wrap of input have a class .control-group, here is the example:
<fieldset class="control-group">
    <input id="email" type="email" data-validation-required-message="Please enter your email" required>

</fieldset>

The email form issue still seems persistent even after this fix #33. I was wondering what else I was missing to make it work :cry:

Thanks Mr. zbeekman
It's awesome... works perfectly on my blog

Also wanted to add my thanks to @zbeekman for the static email solution. I updated the URL on line 23 in  /assets/js/contact_me.js (as suggested by @y7kim ) to<EMAIL_ADDRESS>and after confirmation, it just works.
Thanks for sharing your hard work!

@thinkjrs Thank you very much. You gave a concrete solution of @y7kim 's answer.

Boa Tarde, estou como o mesmo problema alguém poderia me ajudar ?

Rick,
Thanks! This is great. I am not familiar, as this is only my second
website, but I'll dive in and see how things go. I appreciate your help
and if I get completely stuck I might take you up on your offer!
Tyler
2015-05-30 18:27 GMT+02:00 Rick K<EMAIL_ADDRESS>
Hi,
First of all, thanks for using the theme!
Your issue is actually expected, as github pages only serves static content

ie. mail/contact_me.php doesn't work when hosted on github pages. It is
not too hard to fix however:

First, you will need to sign up for a mail sending service like SendGrid or
Mandrill, which allows you to send email via a Javascript API.
Then, you can modify the ajax request in the 'submitSuccess' method
(line20) in /js/contact_me.js - you will have to replace the url field with
the appropriate API endpoint, and pass the appropriate parameters according
to your mail service provider.
Those are the high-level instructions I will leave you with - if you have
any more questions about implementing it, just let me know. I may be able
to give you some more hands-on help if you are not that familiar with JS
and API's.
Best,
Rick
On Sat, May 30, 2015 at 5:40 AM, allochory<EMAIL_ADDRESS>wrote:

Hello!
I'm using your theme and it is great. However, I've run into one final
poblem with the email form. I get the error "Sorry , it seems that my
mail
server is not responding. Please try again later!" I am not sure where
the
problem is coming from... I've tried changing the email in the
_config.yml
and contact_me.php, to no avail. I'm new to this, so perhaps there is
something wrong with my setup. Any thoughts?
—
Reply to this email directly or view it on GitHub
#14.

—
Reply to this email directly or view it on GitHub
#14 (comment)
.

good morning. i am not familiar to APS so can i ask where i can get API to replace


Accepting the certificate when invoking a GraphQL Subscription is not mentioned under the "Create and Publish a GraphQL API" topic in API Management Tutorials Section

Description:
Here [1], we have the below troubleshooting note.

However, it has been missed in [2]. We need to add the same above troubleshooting note to [2] as well.
This should be fixed in 3.2.0, 4.1.0 and 4.2.0 doc spaces.
Affected Product Version:
APIM 3.2.0
APIM 4.1.0
APIM 4.2.0-Pre-Alpha
Related Issues:

https://github.com/wso2/api-manager/issues/1118

[1] https://apim.docs.wso2.com/en/latest/consume/invoke-apis/invoke-apis-using-tools/invoke-an-graphql-api-using-the-integrated-graphql-console/#invoke-a-graphql-subscription-operation
[2]https://apim.docs.wso2.com/en/latest/tutorials/create-and-publish-a-graphql-api/#step-52-optionally-try-out-a-subscription-operation

Fix for 4.2.0 https://github.com/wso2/docs-apim/pull/6790


Reinstall NPM modules in Angular application to fix dependency issue

Due to a change in GitHub response headers, build deploys in Netlify failed due to a conditional check in the jspm-github packgage. This package is used to access GitHub and download other dependencies required by the Angular application.

Screenshot from Netlify deploy attempts on 11 February 2011
Other users reported build issues with jspm-github along with workarounds and the creator issued an updated packaged - see https://github.com/jspm/github/issues/129 for more information.
To ensure that we can build and deploy on Netlify, we need to update our yarn.lock file with the yarn-install command, which will pull in<EMAIL_ADDRESS>

Ticket closed as work completed and merged into 3.21.0 release


Key Vault - Sovereign Clouds

Key vault funcs expects a key vault uri in the form of https://myvault.vault.azure.net (like here) Does this mean it will not work as is in sovereign clouds (German, China, gov etc..?) or is the user expected to pass the correct vault Uri?

Hello @khenidak !
Yes, it is expected to pass the vault URI. Example https://myvault.vault.microsoftazure.de
You can find the suffixes for each cloud here and here.


Context does not apply in IE11

Issue report
Expected Behavior

Buttons respond to the context property in IE11.
Current Behavior

Buttons do not respond to the context property in IE11.
Possible Solution

IE11 does not support CSS unset, so width: unset may be causing issues.
Steps to Reproduce (for bugs)

Run the element locally using the Polymer CLI
Navigate to http://<IP_ADDRESS>:8000/demo/ in IE11
Note that all button types behave as if context was set to true

Your Environment

Version used: 1.0.521026034
Browser Name and version: IE11
Operating System and version (desktop or mobile): Windows 7
Link to your project: n/a

Closed with https://github.com/AlaskaAirlines/OrionStatelessComponents__ods-button/commit/205cacfeba670a09c2727a93efe00f7f7099ed33

oops!

There's still one more!
https://github.com/AlaskaAirlines/OrionStatelessComponents__ods-button/blob/71cfaabf356cf2819812cd8c5f1878b50717daf3/src/shape.json#L56-L59
Used here:
https://github.com/AlaskaAirlines/OrionStatelessComponents__ods-button/blob/71cfaabf356cf2819812cd8c5f1878b50717daf3/src/style.scss#L159-L161


Expiration time for workers

If cache ttl  times out while php worker executing, it would be great to update feature flag value.

Nice Idea. But i think we should also consider the cache hash keys for the expiration time and not set the value for all entries once

@mKnoop What is your reasoning behind this?


Unit tests, e2e test reorg

OK @stuartwdouglas I got far enough along today to

move the e2e test files out of the source tree into a separate sub directory structure (basically standard operator procedure with k8s based golang projects)
started on the unit tests in the reconcilers; I'll be continuing on these tomorrow, but I wanted to post a bit of what they look like prior to the Tuesday workshop.

I included your current PR's commit in here just to try to work off of as much of your "latest code" as possible. I can drop / rebase once that PR merges.

Lets get this in, and we can iterate on top of it


Split sstatus.CRG into CRGS/CRGU

Fixes https://github.com/riscv/riscv-cheri/issues/490
@jonwoodruff @nwf @jamie-melling @tomaird

To provide a bit of context, this was prompted by questions from @buxtonpaul about how to use the PTE bits, which involved setting up a null configuration for kernel-privileged pages.  This then made obvious that the kernel pages were guarded by the same generation as user pages, and so sstatus would need to be swapped on kernel entry, which we believe is not the case currently.  A better solution is to have a dedicated bit for the supervisor generation.

I misinterpreted the linked issue as being about kernel revocation and adding extra PTE bits, not about ensuring the kernel can actually load from kernel pages regardless of userspace's generation for userspace pages. Do we think that having sstatus.SCRG would form part of the story for kernel revocation? If there's a risk it's not what we'd want then it might be better to leave the sstatus bit (and PTE bit) reserved and say that there are no generation checks for S-mode pages. But probably it's something we'll need...

@jrtc27 Has the right of it: kernel access to user memory should generally be gated, for revocation purposes, as if it were performed by the user program.  The existing implementation bypasses the PTE bits and their load barrier effect by using the "direct map" region of the address space, manually translating virtual addresses to (offset) physical ones.
There is a proposal for a privileged "as user capability load, bypassing the CRG fault" instruction that would let us simplify much of that logic down to allowing pages to be swept directly in virtual address space (and possibly even concurrently with address space manipulation, currently emphatically prohibited due to the direct access to physical memory involved), but that's still a lot of engineering and measurement to make sure it's a good idea to be done.
All of that to say, I'm not sure a "CRGS" bit is the right idea.  Until someone cracks kernel sweeping revocation, a much more challenging problem than for userspace memory, the kernel's own access to virtual memory will be to pages that are almost surely parked in some capability-permissive but CRG-less PTE configuration, assuming we have one of those.  If we don't, it's probably simpler to just not raise CRG faults on PTEs with their U bit clear?


"Null expectation context - missing withExpectations?" w/ ScalaTest FunSpec

Hi, I'm currently trying to create a basic test suite using ScalaTest and wanted to try my hand at mocking too (I'm quite new to Scala so am just wanting to get used to a few things and pin down which libraries I can use to perform common tasks like testing, and mocking etc).
I'm encountering a strange exception when I run my tests, one test succeeds, then all of the following tests fail. I've tried to change how this works a few times to restructured when things are created, and if they're only created once, but I still just get exceptions.
Here's my tests:

Here's the output:

I've just encountered this as well with FunSuite.
It seems to happen when you mock stuff in before/beforeEach.
A temporary workaround is to define whatever in before in a method and calling it at the beginning of each test (in other words, behave like there's no "before" feature).

+1

+1

+1

minimal failing example:
class CatTest extends FunSuite with BeforeAndAfter with MockFactory {
  var cat: Cat = _

  trait Cat {
    def meow(): String
  }

  before {
    cat = stub[Cat]
    (cat.meow _).when().returns("meow")
  }

  test("meows") {
    cat.meow() === "meow"
  }

  test("meows again") {
    cat.meow() === "meow"
  }
}

working example:
class CatTest extends FunSuite with BeforeAndAfter with MockFactory {
  var cat: Cat = _

  trait Cat {
    def meow(): String
  }

  before {
    withExpectations {
      cat = stub[Cat]
      (cat.meow _).when().returns("meow")
    }
  }

  test("meows") {
    cat.meow() === "meow"
  }

  test("meows again") {
    cat.meow() === "meow"
  }
}

The example above only works because there is no assertion on the ===. This code with added asserts looks like this:
class CatTest extends FunSuite with BeforeAndAfter with MockFactory {
  var cat: Cat = _

  trait Cat {
    def meow(): String
  }

  before {
    withExpectations {
      cat = stub[Cat]
      (cat.meow _).when().returns("meow")
    }
  }

  test("meows") {
    assert(cat.meow() === "meow")
  }

  test("meows again") {
    assert(cat.meow() === "meow")
  }
}

Which fails the assertions with cat.meow() being equal to null. The problem seems to occur whenever the mock is done within before{}. The only way I have been able to get around this is using OneInstancePerTest instead of BeforeAndAfter and implementing similarly.

@barkhorn can you confirm why this bug was closed? It seems to be confirmed but not fixed?

Hi, I can't see where the bug is here, so this should remain closed.
To share mocks within a suite, i'd recommend reading up on this page: http://scalamock.org/user-guide/sharing-scalatest/
Using the OneInstancePerTest is the correct way of sharing mocks (or a Fixture, whatever style you like better).
You could kind of use withExpectations too, but not in a before call. A higher order function wrapping around it might work for you.
See here for the implementation, maybe that helps. I would suggest using a Fixture though. https://github.com/paulbutcher/ScalaMock/blob/5fd4e563143d752b9638d32e05defcd8ddb8bb82/shared/src/main/scala/org/scalamock/MockFactoryBase.scala#L47


Beta: signed in user not detected

I broke something switching over to loopback middleware phases, now when signed in the app does not detect that a user is not signed in. To sleepy to tackle this at the moment.
@benmcmahon100 let me know if you can figure this out before I wake up. If not I'll take a look first thing.

Hmmm interesting. On a possibly related note my own personal copy of FCC doesn't have working sign ins either. Its sounds like the same issue

I can't sign into the Beta at all with the email address I used to sign up to FCC. Oh well...

Potential fix for this and #1507 here https://github.com/FreeCodeCamp/freecodecamp/commit/fc0ccf3aeafcb66b5747858ecd5020db33c904d6

fixed.


⚠ Quirk Club Argentina (API endpoint) has degraded performance

In 55c89e7, Quirk Club Argentina (API endpoint) (https://us-central1-quirkclub-dev.cloudfunctions.net/api/check/api) experienced degraded performance:

HTTP code: 200
Response time: 6417 ms

Resolved: Quirk Club Argentina (API endpoint) performance has improved in 696f1c8.


Add additional data to graphql queries

Hi @imranq2,
Could you please provide a summary of the changes in this PR?

So we're closing this PR as this goes against the spirit and idea of what we have here. This repo was never designed or intended to be used as a production ready version of anything. The sole purpose was to demonstrate how to leverage our https://github.com/Asymmetrik/node-fhir-server-core to get started with FHIR and begin building your own. Something like this would be better off being forked and maintained in your own organizations repo so the community can keep this as a reference repo for getting a project off the ground and running.


How can we sequence the animation indefinite.

If .then(){....} is used for the sequencing how can I make the entire animation repeat indefinitely?

.then({...
onComplete(){
timeline.replay()
}

here is the almost infinite version:
const timeline = new mojs.Timeline({
repeat: Number.MAX_VALUE,
});

or you can try this infinite version:
const timeline = new mojs.Timeline({
repeat: Number.POSITIVE_INFINITY
});

@thewolf  & @brudoku I tried it's not working.

@DeshpandeBoy that's stragne because it works for me:
https://codepen.io/thewolf/pen/dVemPy
Timeline extends Tween which have the repeat property: https://github.com/legomushroom/mojs/blob/master/js/tween/timeline.babel.js
https://github.com/legomushroom/mojs/blob/master/api/tweens/tween.md
anyway, I am glad you found a solution


Set up mitie_sklearn on Windows

How do I set up miti_sklearn backend on Windows 10?

You need to setup both, mitie and the spaCy + scikit-learn dependencies described here https://rasa-nlu.readthedocs.io/en/latest/backends.html.
We should add that to the documentation.

I have tried setting up MITIE in virtual environment of Anaconda where spacy+scikit-learn is already set up but failed. Please check the screenshot.

mitie can be a real pain on windows, I gave up a long time ago. so many dependencies are needed.

@abubakarsohail I think you should talk to the guys from MITIE, they are probably able to help you with these setup issues as this is not related to rasa NLU. But if there is some helpful hint they provide, feel free to let me know or add it to the documentation yourself


More specific roles

author_display - default value "creator", more specific label may appear in marc_relator_display
related_name_json_1display - hash of roles to values, default value "Related name" (map over to contributor?)
Here is the mapping of relator codes to label: https://github.com/pulibrary/marc_liberation/blob/development/translation_maps/relators.rb
Some relator labels are outside of that above controlled list (catalogers sometimes encode the relator label directly instead of code) so we might want to filter those custom labels out.

Closed with #94


Documentation on how to write a plugin

Is your feature request related to a problem? Please describe.
Am a flutter dev and I would like to write a plugin for this editor.
Describe the solution you'd like
I cant find any docs relating to how to write plugin for this editor, A good docs on it will be great.

duplicate of #123


Get latest tweet from users using scraper.tweets in reverse chronological order with guest session

Hi,

I was wondering whether scraper.tweets(['rest_id1', 'rest_id2', ....]) without authentication (login with username and password, cookies, or previous logged in session) can sort the latest tweets in reverse chronological order (latest first).

scraper.tweets with a guest session seems to sample tweets based on likes or some other metric.

Is there a query or keyword argument that I can pass to scraper.tweets to get the results sorted reverse chronologically so that I can get the latest tweets with out logging in?

Thanks for such as amazing application.

Solved this using some custom code.

how did you solve this problem?


We need a new role / user type called Host Organization, that can be assigned (added to) submissions from funds/fellows, that can submit reviews and refine submission like an applicant

People in this role will be assigned to specific submissions, they won't have access to all submissions within a specific round/fund.
Managers need the ability to assign them regardless of submission status, unlike AC members.
They need the ability to both submit reviews and edit the submission
For two-stage application funds, this would apply to the second-stage application (the proposal)
It would be nice if this could also apply to the first-stage application as well where person's access/permissions carry over to the second-stage application
Ideally, the manager can invite users and associate them to a fund like we do for AC members, so that when assigning them to submissions, there is a short list to choose from

Bumping this... we need this before the coming ICFP deadline closes (or nearly after), this months end.

Noting that it would be much better if this functionality includes "the first-stage application as well where person's access/permissions carry over to the second-stage application" at the outset.


DITA-OT plugin

Currently it is not possible to process files using XSLT-Conref directly with DITA-OT. It is planned to create a plugin for DITA-OT to resolve the XSLT-Conref elements in the preprocess stage.

solved with release v01.1.0beta


cube CMakeLists.txt could get glslangvalidator from VulkanSDK rather than install from github

VulkanSDK contains glslangvalidator. So cube could get glslangvalidator from VulkanSDK rather than installing glslangvalidator from github.

So unbeknownst to you, there is a bigger issue with getting glslang from github, namely that the version gotten was rather old. On windows, it would require the MSVC 2013 CRT library which caused cryptic linker errors if they were missing.
Originally, this repo built glslang. Since that is a massive dependency, a while ago we moved to just downloading the built binaries directly. This now is felt to be even more code than necessary, as we can simply check in the SPIR-V code and use that.
I have created a PR to do just that #859
It removes the 'fetch_glslangValidator.py' script, and instead finds glslang through CMake's find_program functionality, with some hints to use the VULKAN_SDK if its present. But this is put behind a build option, since the SPIR-V files are checked in, glslang is not a build requirement. It is only needed if a user wishes to modify the source .vert or .frag files and recompile the shaders themselves.

With the PR merged, I'll close the issue.


winsw restart messes up the service account credentials.

I installed a service
winsw install   Granted service account credentials manually.
winsw restart
This throws Error 1069: The service did not start due to a logon failure.

What is the problem exactly? Are you sure that account credentials were correct?

Closing since there is no response from the requester. Feel free to reopen


feat: initial attempt at environments list and environment tabs

List view (button is disabled as it is aspirational):

And populated tabs (empty for now):

etc.
Lots of todos still outstanding:

[ ] environment activity is pending / todo, need more info on what that means
[ ] operations are pretty wrong (last retrieved is not really sorted properly), similarly statuses are wrong
[ ] not sure what create environment means in our current world (probably other tickets?)
[ ] there is some debate/discussion as to what should be shown but I'm unsure if it should be db/app/etc counts, or statuses (or whatever is meaningful)
[ ] not 100% sure what those options entail, will try to match (but need some info):

We can make those • • • Action buttons smaller too

Current state after changes requested / being closer to Figma (some minor spacing/centering issues still outstanding):

I had an item in my bullet list we should just discuss when you get a min, but i think we need to hydrate the operations list somewhere (i don't seem to have them all in redux). original operations are pretty wrong (last retrieved is not really sorted properly), similarly statuses are wrong in todos for this pr


Improve README

Just two minor changes.

Codecov Report

Merging #12 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #12   +/-   ##
=======================================
  Coverage   67.26%   67.26%
=======================================
  Files          20       20
  Lines        1326     1326
=======================================
  Hits          892      892
  Misses        434      434

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 38fb9e2...6d4cead. Read the comment docs.


Don't output the data array in toString in Frame.

The toString method of io.fotoapparat.preview.Frame returns the content of the image byte array. This results in the return value of the toString method to be enormous. This is slowing down my debugger to the point that it's unusable, because it has to download megabytes of string data. That, and I don't think there's any reason to actually output this data in toString.
What are you trying to achieve or the steps to reproduce?
I'm debugging some code that has variable of type Frame. As a result, the debugger calls toString on the frame to show it in the debugger screen, and the debugger is slowed down.
Context:

FA version: 1.3.0
Devices/APIs affected: N/A
any other relevant information: N/A

We don't have a particular reason for returning the data the way we do, so we can fix the issue for you.

That is done. Will be a part of the next release (which you can expect until the end of this week).
If you need the fix right now, you can use develop-SNAPSHOT as a version name - that would give you the latest state we have in develop.