Search Unity

[RELEASED] UTNotifications - Professional Cross Platform Push Notifications and More

Discussion in 'Assets and Asset Store' started by Yuriy-Ivanov, Jun 12, 2015.

  1. Yuriy-Ivanov

    Yuriy-Ivanov

    Joined:
    Jun 12, 2015
    Posts:
    495
    Hi hattori,

    Please update your UTNotifications version: the update 1.5.4 was released to solve this exact issue.
    Feel free to ask for any further support, I'll be happy to help.

    Best regards,
    Yuriy, Universal Tools team.
     
    hattori likes this.
  2. hattori

    hattori

    Joined:
    Oct 18, 2014
    Posts:
    21
    Hi Yuriy-lvanov,

    Thanks a lot ! It worked well after upgrading.

    Thanks.
     
  3. Grinchi

    Grinchi

    Joined:
    Apr 19, 2014
    Posts:
    130
    Have anybody problem with Android 6+ getting different time every time you call push message for local one ?
    i have like 10 seconds after that i want to get push and nothing happens
     
  4. Yuriy-Ivanov

    Yuriy-Ivanov

    Joined:
    Jun 12, 2015
    Posts:
    495
    Hi StormBringerStudios,

    Could you please describe your problem in details, step-by-step. What are you trying to achieve? What calls do you do and in each order (including values of all the methods arguments)? What result do you expect? What does really happen? It will help me to find a solution for you ASAP.

    Best regards,
    Yuriy, Universal Tools team.
     
  5. Grinchi

    Grinchi

    Joined:
    Apr 19, 2014
    Posts:
    130
    I have set push OnApplicationPause() to repeat every 10 sec. when i close app its been called but notification is received randomly some times 30 sec. sometimes 1 min. maybe you can test it on device that runs Android 6.0+
     
  6. Yuriy-Ivanov

    Yuriy-Ivanov

    Joined:
    Jun 12, 2015
    Posts:
    495
    Hi StormBringerStudios,

    Unfortunately Android doesn't guarantee the exact notification appearance time. It's done by Google on purpose to save system resources and, first of all, a battery. Please also see my answer to a similar question here and here. Please read a post at the second link to find a way to enforce exact notification appearance time (if the described restrictions are suitable for you).

    Best regards,
    Yuriy, Universal Tools team.
     
  7. Grinchi

    Grinchi

    Joined:
    Apr 19, 2014
    Posts:
    130
  8. amanpu

    amanpu

    Joined:
    Feb 12, 2015
    Posts:
    8
    Hi @Yuriy-Ivanov,
    I am facing issue on Android i.e. it is showing notification twice in notification bar.
    Following is php script I am using for testing:
    1. // API access key from Google API's Console
    2. define( 'API_ACCESS_KEY', 'AIzaSyCGHf1bfZe8wtyn9JsunRrHDZYwUT3owxg' );


    3. $registrationIds = array("APA91bGLjMiuFz2WAJyhaFST61LOjDlvesbRHvUnXEZqPqBIWVAVZfxR_VAA9lDJ2mQL2XvHD3AACaWT-3NMdju7Doycs8uWfeu8-5-hbei6t-cUx5wpdinhhdoJaj6ad6kjv_KVU9NZJVBFBU7shRF3SG-vpSPGog" );

    4. // prep the bundle
    5. $msg = array
    6. (
    7. 'title' => 'This is title',
    8. 'text' => 'This is text',
    9. 'message' => 'here is a message. message',
    10. 'subtitle' => 'This is a subtitle. subtitle',
    11. 'tickerText' => 'Ticker text here...Ticker text here...Ticker text here',
    12. 'vibrate' => 1,
    13. 'sound' => 1
    14. );

    15. $fields = array
    16. (
    17. 'registration_ids' => $registrationIds,
    18. 'data' => $msg
    19. );

    20. $headers = array
    21. (
    22. 'Authorization: key=' . API_ACCESS_KEY,
    23. 'Content-Type: application/json'
    24. );

    25. $ch = curl_init();
    26. curl_setopt( $ch,CURLOPT_URL, 'https://android.googleapis.com/gcm/send' );
    27. curl_setopt( $ch,CURLOPT_POST, true );
    28. curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers );
    29. curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );
    30. curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, false );
    31. curl_setopt( $ch,CURLOPT_POSTFIELDS, json_encode( $fields ) );
    32. $result = curl_exec($ch );
    33. curl_close( $ch );

    34. echo $result;
    35. ?>
     
  9. Yuriy-Ivanov

    Yuriy-Ivanov

    Joined:
    Jun 12, 2015
    Posts:
    495
    Hi amanpu,

    First of all, thank you for using UTNotifications.

    Your PHP code looks alright. In most cases this issue happens when the same device is registered twice, f.e. it can happen in the following scenario:

    1. Application is installed.
    2. It's started. It registers with GCM and gets registrationId = <ID1>
    3. <ID1> is registered on a server
    4. Application is reinstalled
    5. It's started again. It registers with GCM and gets registrationId = <ID2>
    6. <ID2> is registered on a server
    7. Server sends a push notification to each of the registered devices, i.e. to both <ID1> and <ID2>.
    8. GCM successfully delivers the notification to the same application by both ids, so applications receives it twice.

    In order to solve it, I advise you pairing any registrationIds sent to a server with a unique device id, which doesn't change its value when an app is reinstalled. Then server can check if there is already a registrationId associated with the same unique device id, then there is no need to add a second registrationId - it will just update the stored registrationId value with a new one. This approach is shown in the DemoServer code.

    Please inform me if it's not your case, so I'll ask you for some more details and will try to help you then.

    Best regards,
    Yuriy, Universal Tools team.
     
  10. amanpu

    amanpu

    Joined:
    Feb 12, 2015
    Posts:
    8
    Hi Yuriy-Ivanov,

    Thank you very much for the speedy reply and detailed info. But unfortunately this is not true not in my case.
    At server end, I have single registration ID for each user. In fact, I am not receiving notification twice, it is just showing it twice. Also if I installed application on device first time, and use other notifications services like http://apns-gcm.bryantan.info/ to send notification, even then it shows two times. From this I am guessing this is not server side issue.

    Screen Shot 2016-08-09 at 12.41.30 PM.png
    Moreover, In my OnNotificationsReceived event, call is coming just once and paramater (IList<ReceivedNotification> receivedNotifications) has also count one.

    If I am not wrong ,in case you just explained, OnNotificationsReceived method will also receive call two times?

    Also if I set ShowNotifications to WHEN_CLOSED_OR_IN_BACKGROUND, in this case if app is in background or closed , notification is showing two times. However, if app is running it still shows notification one time (I guess in this case it should not show any notification in Notification bar ?)
    If I set ShowNotifications to ALWAYS, then it shows notification in bar two times, no matter app is closed, in background or running.

    regards,
    Aman



     
  11. Treganz

    Treganz

    Joined:
    Feb 2, 2015
    Posts:
    12
    Hey, so I've had to work on some other stuff for a bit, but now I'm back working on notifications in our application, and I'm using ScheduleNotification to schedule a notification for the next day. To test it, I just set the device time forward to the moment the notification should be fired, but it doesn't (This is on Android btw).

    So I went searching in the source code, and in Manager.java -> scheduleNotificationCommon I see that you're using AlarmManager.ELAPSED_REALTIME instead of AlarmManager.RTC_WAKEUP. In most situations, AlarmManager.ELAPSED_REALTIME is the preferred option, but in my case our application is calendar-based, so we need to fire notifications on a specific time based on the device time.

    Any idea if I can patch this myself and rebuild the .jar, or is there a high risk that I break other stuff?

    My suggestion: give the user a choice if they want to use elapsed time or system clock. It could just be a setting in UTNotificationsSettings :D
     
  12. Yuriy-Ivanov

    Yuriy-Ivanov

    Joined:
    Jun 12, 2015
    Posts:
    495
    Hi Aman,

    Thank you for the detailed description. It looks like UTNotifications handles the notification only once, so second appearance of it is done either by Android itself or by other plugin in your application. Please send (here or to universal.tools.contact@gmail.com) your Assets/Plugins/AndroidManifest.xml so I'll be able to say what's wrong in your case.

    Best regards,
    Yuriy, Universal Tools team.
     
  13. Yuriy-Ivanov

    Yuriy-Ivanov

    Joined:
    Jun 12, 2015
    Posts:
    495
    Hi Treganz,

    A good point! I added a task to add that option in one of future updates into our internal issue tracking system.
    Also, I sent you a patched version of the native library using RTC_WAKEUP in private messages (with a source code, so you can see what I've changed). You can always build the native plugin yourself, it just was easy for me to do the modifications you requested.

    Best regards,
    Yuriy, Universal Tools team.
     
  14. Treganz

    Treganz

    Joined:
    Feb 2, 2015
    Posts:
    12
    Hey @Yuriy-Ivanov,

    Awesome, got it! Thanks for the quick reply :)

    -Edit-
    Works great!
     
    Last edited: Aug 10, 2016
  15. amanpu

    amanpu

    Joined:
    Feb 12, 2015
    Posts:
    8
    Hi Yuriy-Ivanov,

    I got a hint from your reply. Yes there was issue in Android Manifest file. Actually following lines were duplicated in Manifest file:

    <receiver android:name="com.androidnative.gcm.GcmBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND">

    <intent-filter>
    <action android:name="com.google.android.c2dm.intent.RECEIVE" />
    <category android:name="com.frimustechnologies.bluffmaster" />
    </intent-filter>
    </receiver>
    <service android:name="com.androidnative.gcm.GcmIntentService" />

    By deleting these lines my problem is fixed.

    Thanks for you support.
     
  16. Kafar

    Kafar

    Joined:
    Nov 29, 2012
    Posts:
    220

    Hi,

    About this case I tried first to send push from OneSignal via REST API passing alert as additional content and put into it the text value but the result is the same, in second I modified the method in the class you indicated and I'm trying to recompile the java project but Eclipse not build for some missing files I can't find in the source.

    Then, if you can't help me on this last trial how long I must wait for the next UT release on store with the alert value checked?

    Thanks
     
  17. Yuriy-Ivanov

    Yuriy-Ivanov

    Joined:
    Jun 12, 2015
    Posts:
    495
    Hi Kafar,

    To build the native Android plugin, having just Eclipse is not enough: Eclipse ADT is required. But don't worry, I created a special version of the plugin using "alert" as a key for the notification text and sent it to you in personal messages.

    Best regards,
    Yuriy, Universal Tools team.
     
  18. shane_sg

    shane_sg

    Joined:
    May 31, 2016
    Posts:
    5
    Hi,

    I've managed to setup scheduled notifications but I've noticed that once received on iOS the app badge isn't being set. Is it possible to set the app badge on scheduled local notifications when they are displayed on the device?

    Many thanks,
     
  19. Yuriy-Ivanov

    Yuriy-Ivanov

    Joined:
    Jun 12, 2015
    Posts:
    495
    Hi shane_sg,

    First of all, thank you for using UTNotifications.

    This functionality is not yet available in the current version (1.5.4), but is already implemented and will be released soon with UTNotifications 1.6. Do you need it urgently (so we'll spend some time to implement it as a patch for a version 1.5.4) or is it OK for you to wait a little bit while the new version is being prepared for a release?

    Best regards,
    Yuriy, Universal Tools team.
     
  20. shane_sg

    shane_sg

    Joined:
    May 31, 2016
    Posts:
    5
    Hi Yuriy,

    Thanks for the quick response! I'm loving the plugin - very easy to integrate. How far away is 1.6 from a release? It is something I'd like to get working asap so if 1.6 is still some time away a patch to add this would be most appreciated.
     
  21. Yuriy-Ivanov

    Yuriy-Ivanov

    Joined:
    Jun 12, 2015
    Posts:
    495
    Hi shane_sg,

    All the features are already implemented (and they are quite many). We're currently completing the docs updates and a code for migration from 1.5.4. So it should be available soon.

    Best regards,
    Yuriy, Universal Tools team.
     
  22. Treganz

    Treganz

    Joined:
    Feb 2, 2015
    Posts:
    12
    Hey @Yuriy-Ivanov,

    So, I'm currently working on implementing push notifications using PushWoosh (our server admin wanted to use an external service instead of running the demoserver), and it's working well, except for Windows Phone ("the cloud service is not authorized to send a notification to this url even though they are authenticated"). Well, so be it, so I continued working on Android/iOS.

    The users in our app have to login before we register the device for push notifications (We want to be able to send push notifications based on their user info), but the users can also use the app offline. They can also logout while no internet connection is available, and here's where I'm stuck a bit.

    If a user has an internet connection available and logs out, we can just send an /unregisterDevice request to PushWoosh (http://docs.pushwoosh.com/docs/unregisterdevice) and then that device won't receive push notifications anymore. However, this ofcourse doesn't work when there is no internet connection available. On iOS, we can just call 'UnityEngine.iOS.NotificationServices.UnregisterForRemoteNotifications();' when the user logs out while being offline, but Android doesn't have that, because the notification is created by Manager.postPushNotification() once the background service receives a message. So the next time the internet connection becomes available again, but the user is logged out, the device will still receive push notifications..

    So I guess what I would like to see added is some kind of 'uninitialize' method so that it's either possible to stop the background services or to stop the push notifications from showing up.

    Thanks for your support so far, really appreciate it!

    Yours,
    Bas
     
  23. Yuriy-Ivanov

    Yuriy-Ivanov

    Joined:
    Jun 12, 2015
    Posts:
    495
    Hi Bas,

    It's a very good point. We'll add such method in the upcoming update (1.6) as it can be quite critical for some projects.
    Regarding Windows Store, you could start with asking the PushWoosh guys for support about that url related issue - is it something to be changed on a client side or is there any other way to solve it? If there is something we can help you with on that (based on their answers), please let me know.

    Best regards,
    Yuriy, Universal Tools team.
     
    Last edited: Aug 16, 2016
  24. Treganz

    Treganz

    Joined:
    Feb 2, 2015
    Posts:
    12
    Hey again @Yuriy-Ivanov ,

    I noticed that after testing a bit, clicking on a notification wouldn't start the activity anymore. Did some digging around in logcat and found a message that looked like this: "Permission Denial: Accessing service ComponentInfo{<service here>} from pid=<pid>, uid=<uid1>that is not exported from uid <uid2>".

    Well, according to https://code.google.com/p/android/issues/detail?id=61850 , this can happen when you reinstall the application. The solution is to change FLAG_UPDATE_CURRENT to FLAG_CANCEL_CURRENT in Manager.getPendingIntentForScheduledNotification(...). I changed it myself and that seems to fix it, so if it's not in 1.6 yet you may want to test and apply the fix :).

    P.s. the last post in the topic linked above says that this has been fixed in Android 4.4.3. I had the issue on one of our test devices running 4.4.2.

    Yours,
    Bas
     
  25. Yuriy-Ivanov

    Yuriy-Ivanov

    Joined:
    Jun 12, 2015
    Posts:
    495
    Hi Bas,

    Unfortunately this issue has never happened with any of our test devices, and there are strong reasons to use FLAG_UPDATE_CURRENT (see more here).
    Could you please tell me steps to reproduce the issue? Does it happen on any device or only on a single model? If last, which device is that? Otherwise, could you please create and send me a little sample project reproducing the issue?
    So if we could reproduce the issue, we'd be probably able to find another (better) way to solving it without getting rid of FLAG_UPDATE_CURRENT.

    Best regards,
    Yuriy, Universal Tools team.
     
  26. Treganz

    Treganz

    Joined:
    Feb 2, 2015
    Posts:
    12
    I'm at home right now, so I'll try to reproduce it myself tomorrow, but by looking at the topic i posted before and my own experience I think it goes like this (Note that Android version should be below 4.4.3 according to the topic)
    1) Start the background service (So call Manager.Initialize)
    2) Uninstall the app
    3) Reinstall the app
    4) Start the background service again
    6) Notification is received -> Click on the notification -> Check logcat and see the permission denied error
    7) App won't open when you click on the notification

    I haven't tested on another device yet, but this happened on our low-end LG Optimus L40.

    Yours,
    Bas
     
    Last edited: Aug 17, 2016
  27. Treganz

    Treganz

    Joined:
    Feb 2, 2015
    Posts:
    12
    Just tested it using the demo scene of the plugin on the same phone as yesterday and a Samsung Note II (also running Android 4.4.2). New, clean project with only UTNotifications imported.

    1) Initialize plugin using 127.0.0.1 as ip, demoserver isn't running
    2) Click "Create Scheduled Notifications"
    3) Minimize app
    4) Wait for notification, click on one, app opens fine
    5) Uninstall and reinstall the app
    6) Repeat steps 1-3
    7) Wait for notification, click on one, app doesn't open

    I hope this helps :) This should also occur on emulators running Android 4.4.2.

    Yours,
    Bas
     
  28. Yuriy-Ivanov

    Yuriy-Ivanov

    Joined:
    Jun 12, 2015
    Posts:
    495
    Hi Treganz,

    Thank for a very detailed description. Unfortunately, following those steps, I was not able to reproduce it with Android 4.4.2 emulator.
    We're going to keep using FLAG_UPDATE_CURRENT in the future, because FLAG_CANCEL_CURRENT causes much more critical issue on Samsung devices. If you like, you can replace it on your own for your application, if this reinstalling related issue on Android 4 devices is more critical in your case (f.e. it can make sense if you don't create many scheduled notifications).

    We'll try to reproduce the issue and find another (safe) solution later, but it won't be the highest priority for us right now.

    Best regards,
    Yuriy, Universal Tools team.
     
  29. Treganz

    Treganz

    Joined:
    Feb 2, 2015
    Posts:
    12
    Heyo,

    I really wanted to find a solution for everyone, because not using FLAG_UPDATE_CURRENT on Samsung devices isn't really an option, but since Android 4.4 is the most-used version of Android at the moment and reinstalls can occur quite often, that permission bug really needs to be fixed as well.

    So I kept trying some stuff, and I think I found a solution :)
    In AndroidManifestManager, line 78, change

    Code (CSharp):
    1. XmlUtils.UpdateOrCreateElement(xmlDocument, applicationNode, "service", "name", ns, "universal.tools.notifications.NotificationIntentService");
    to

    Code (CSharp):
    1. XmlElement serviceElement = XmlUtils.UpdateOrCreateElement(xmlDocument, applicationNode, "service", "name", ns, "universal.tools.notifications.NotificationIntentService");
    2. serviceElement.SetAttribute("exported", ns, "true");
    This will add the android:exported="true" attribute to the service, see https://developer.android.com/guide/topics/manifest/service-element.html . This will make the service accessible even after a reinstall. You may want to take a look at the android:permission attribute as well, just to lock access to the service down a bit.

    Yours,
    Tregan
     
  30. Yuriy-Ivanov

    Yuriy-Ivanov

    Joined:
    Jun 12, 2015
    Posts:
    495
    Hi Tregan,

    Thank you a lot for that research you did! Can you, please, confirm that exporting the universal.tools.notifications.NotificationIntentService solves the issue (as I'm, as mentioned, unable to reproduce the issue on emulator to validate it myself)?

    Thank you in advance,

    Best regards,
    Yuriy, Universal Tools team.
     
  31. Treganz

    Treganz

    Joined:
    Feb 2, 2015
    Posts:
    12
    Yep it works :)

    Yours,
    Bas
     
  32. Yuriy-Ivanov

    Yuriy-Ivanov

    Joined:
    Jun 12, 2015
    Posts:
    495
    Great, we'll add it to the very next update!

    Once more, thank you.

    Best regards,
    Yuriy, Universal Tools team.
     
  33. Yuriy-Ivanov

    Yuriy-Ivanov

    Joined:
    Jun 12, 2015
    Posts:
    495
    Hi all,

    Good news: we finally submitted UTNotifications version 1.6. The update is currently pending to be reviewed and approved by Unity team, but if you eager to get it ASAP, you may send us a request to universal.tools.contact@gmail.com (and don't forget to attach your purchase receipt).

    List of changes:
    - Badges support on some of most popular Android devices and custom shells
    - Image notifications on Android
    - Switching to .aar Android libraries and automated dependency resolution (to avoid inter-plugin conflicts)
    - Multi-line notifications on Android
    - Using GCM 9 on Android
    - GET_ACCOUNTS permission is not required on Android
    - Custom push notifications payload formats support (GCM, ADM, WNS)
    - Native OneSignal messages format support (all platforms)
    - Android 4.4 Compatibility Mode option is removed (not supported by Android 6+)
    - Default notification profile for Android
    - Seamlessly compatible with Facebook SDK & Google Play Services SDK
    - Specifying ids of push notifications (all platforms)
    - Unregistering from push notifications (all platforms)
    - Lots of fixes (all platforms)
    - Performance improvements (all platforms)

    See also the updated manual and API Reference.

    Best regards,
    Yuriy, Universal Tools team.
     
    Last edited: Aug 28, 2016
  34. Treganz

    Treganz

    Joined:
    Feb 2, 2015
    Posts:
    12
    Hey Yuriy,

    First of all thanks for the quick email reply, implementing 1.6 as we speak :)
    I have a couple of things:

    1) (Android) Notifications aren't enabled in initialize when the app is first launched, resulting in
    Code (CSharp):
    1. static void onRegistered(String providerName, String id)
    not calling
    Code (CSharp):
    1. UnityPlayer.UnitySendMessage("UTNotificationsManager", "_OnAndroidIdReceived", json.toString());
    , because notificationsEnabled(context) in pushNotificationsEnabled() is false. I fixed this locally by adding
    Code (CSharp):
    1. editor.putBoolean(NOTIFICATIONS_ENABLED, notificationsEnabled(context));
    2. editor.putBoolean(PUSH_NOTIFICATIONS_ENABLED, pushNotificationsEnabled(context));
    before
    Code (CSharp):
    1. editor.commit();
    in Manager.java -> initialize, but maybe you know a better solution?

    2) (Android) I keep getting this exception:
    3) The Push Payload Format options are a great idea, but it would be even better if you could make it so that the data/ isn't required. For instance, Pushwoosh sends notifications in the following format:
    so the way I'd need to format is this:
     
    Last edited: Aug 29, 2016
  35. Yuriy-Ivanov

    Yuriy-Ivanov

    Joined:
    Jun 12, 2015
    Posts:
    495
    Hi Traganz,

    Thank you a lot for all this information. We've just updated the package (you can download it at the same URL as previously) in order to fix the issues you describe:

    > 1) (Android) Notifications aren't enabled in initialize when the app is first launched, resulting in
    This is very weird, I tried but couldn't reproduce your issue (as both "enabled" options should be true by default, and they always are in my case). Despite of this, I removed an extra check there (it was, indeed, not required), it could help. Please let me know if not, then getting steps to reproduce would be great.

    > 2) (Android) I keep getting this exception:

    Fixed in the updated version

    3) The Push Payload Format options are a great idea, but it would be even better if you could make it so that the data/ isn't required
    GCM doesn't allow putting any data right under the root node: see https://developers.google.com/cloud-messaging/concept-options#payload. There are two supported ways of putting any payload in GCM json messages: under the "data" node or under the "notification" node. But the second option is too restrictive for us, that's why only data/* formats are supported. Could you please make sure that the json you provided above is indeed sent as is and not added as a value of the "data" node? Most likely it really goes under the "data".

    Best regards,
    Yuriy, Universal Tools team.
     
  36. Treganz

    Treganz

    Joined:
    Feb 2, 2015
    Posts:
    12
    1) Yep sorry, that was my mistake. I disabled the notifications manually before calling initialize, sorry about that :p

    2) Alright thanks, fixed indeed

    3) I attached the Android Studio debugger to the app, then minimized the app and sent a push notification. You can see in the image below that the variable "data" is a bundle that contains some JSON, but no "data" key. However, despite of the bundle missing a "data" key, setting "data/header" etc in the settings seem to work fine. Looked in the code as to why that would be, and it's because the "data/" prefix is removed when the settings are saved. So, nothing is wrong, it's just a bit unclear that the prefix isn't taken into account!
    upload_2016-8-30_9-15-27.png
     
  37. NicoL3AS

    NicoL3AS

    Joined:
    Oct 7, 2015
    Posts:
    18
    Thx for the update!
     
  38. lucaslm

    lucaslm

    Joined:
    Aug 31, 2016
    Posts:
    5
    Hey there,

    The team I work on purchased this asset on friday, and ever since monday I am trying to make it work on android.
    I am not that experienced with unity, and even less with native android.

    Oddly, PostLocalNotification worked (after initializing the manager singleton, of course), but ScheduleNotification didn't. I tried passing as first argument both an integer and a DateTime, with no success.

    After reading this thread, I also tried to replace the jar file with the aar, as suggests this post, but again, no success.

    A few hours later I saw there was the UTNotification release 1.6.0, and though that if I updated it on my project, I might make it work then. Unfortunately it didn't happen, and worst, now the following error pops in the console:


    ResolutionException: Cannot find candidate artifact for com.android.support:support-v4:24.2.0+
    Google.JarResolver.PlayServicesSupport.DependOn (System.String group, System.String artifact, System.String version)
    UTNotifications.UTNotificationsDependencies..cctor () (at Assets/UTNotifications/Editor/Android/UTNotificationsDependencies.cs:20)
    UnityEngine.Debug:LogException(Exception)
    UTNotifications.UTNotificationsDependencies:.cctor() (at Assets/UTNotifications/Editor/Android/UTNotificationsDependencies.cs:28)
    UnityEditor.EditorAssemblies:SetLoadedEditorAssemblies(Assembly[])

    Furthermore, the deployed app does not show any notification at all (not even with PostLocalNotification).

    Bellow is the code I wrote (as a component of a game object in a scene). Maybe I am missing something, some sort of configuration or some detail in a manifest. I am using unity 5.4.0 and testing on samsumg devices with androids 4.3 and 5.0.1.

    Code (csharp):
    1. using UnityEngine;
    2. using System;
    3. using System.Collections;
    4. using System.Collections.Generic;
    5.  
    6. public enum NOTIFICATIONS_IDS {
    7.     RATE_REMINDER,
    8.     WEEKLY_REMINDER,
    9.     LATEST_USE
    10. }
    11.  
    12. public class InitNotifications : MonoBehaviour {
    13.  
    14.     void Awake()
    15.     {
    16.         UTNotifications.Manager.Instance.Initialize(false);
    17.  
    18.         // For testing, should be removed later
    19.         UTNotifications.Manager.Instance.PostLocalNotification("foo", "bar", 10);
    20.  
    21.         UTNotifications.Manager.Instance.ScheduleNotification(
    22.             DateTime.Now.AddMinutes(5),
    23.             "Title",
    24.             "Did you like our app? Rate us at the store!",
    25.             (int)NOTIFICATIONS_IDS.RATE_REMINDER
    26.         );
    27.     }
    28.  
    29. }
    PS: The enumeration as an id is not an issue, for I tested it and the type casting yields me 0, 1, 2 and so on.
     
    Last edited: Sep 1, 2016
    Menion-Leah likes this.
  39. _Radagan

    _Radagan

    Joined:
    May 16, 2014
    Posts:
    38
    I have a problem with a released app on the iTunes store. Both dev and production certs are valid.

    Some reason my app on iOS is no longer getting OnSendRegistrationId calls in the latest version.

    I’m using Unity Pro 5.4.0 and XCode 7.3.1 with UTNotifications 1.5.4

    The debugger in XCode shows that initialization is successful:

    Code (csharp):
    1.  
    2. (Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)
    3.  
    4. UTNotifications Initialize: True
    5. BuildingPulse.SceneController:Start()
    6.  
    7. (Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)
    8.  
    Here is the relevant code…

    Code (CSharp):
    1. void Start()
    2. {
    3. #if UNITY_IOS
    4.     Manager notificationsManager = Manager.Instance;
    5.     notificationsManager.OnSendRegistrationId += OnSendRegistrationId;
    6.     notificationsManager.OnNotificationClicked += OnNotificationClicked;
    7.     notificationsManager.OnNotificationsReceived += OnNotificationsReceived;
    8.     bool result = notificationsManager.Initialize(false, 0, true);
    9.  
    10.     Debug.Log("UTNotifications Initialize: " + result);
    11.     notificationsEnabled = notificationsManager.NotificationsEnabled();
    12.     if (notificationsManager.GetBadge() > 0) notificationsManager.SetBadge(0);
    13. #endif
    14. ...
    15. }
    16. ...
    17. protected void OnSendRegistrationId(string providerName, string registrationId)
    18. {
    19.      Debug.Log("OnSendRegistrationId("+providerName+", "+registrationId+")");
    20.      this.providerName = providerName;
    21.      this.registrationId = registrationId;
    22.      updatedNDR = true;
    23. }
    Any idea what could be going on? This code used to work. Are there project settings I need to enable now in XCode? I did turn on Apple Push notifications entitlement, but it didn’t change anything.

    I wrote support, but was pretty much brushed off, which was surprising considering UTNotifications' reputation. Since this is an app in production with active customer base, it's a big deal for us. We only noticed the issue because the app isn't receiving new registrations. The devices already registered are receiving notifications without a problem.
     
  40. _Radagan

    _Radagan

    Joined:
    May 16, 2014
    Posts:
    38
    Updated to new UTNotifications 1.6.0, but still not getting OnSendRegistrationId calls.
     
  41. _Radagan

    _Radagan

    Joined:
    May 16, 2014
    Posts:
    38
    I found the problem! It turns out that updating UTNotifications at some point changed it's default settings. The old defaults worked, but the new ones don't enable iOS notifications by default. Since I hadn't made any changes to my notification code, I didn't check it like I should have.
     
  42. Yuriy-Ivanov

    Yuriy-Ivanov

    Joined:
    Jun 12, 2015
    Posts:
    495
    Hi lucaslm,

    Your code is fine. Schedule notifications issue is most likely caused by a problem in AndroidManifest.xml - UTNotifications register its BroadcastReceiver there, it could happen that some of your assets updated AndroidManifest, deleting our entries. In order to fix it change anything in the UTNotifications settings (f.e. disable-enable GCM Push Notifications, so AndroidManifest.xml will be patched automatically).

    > ResolutionException: Cannot find candidate artifact for com.android.support:support-v4:24.2.0+
    Please update your Android SDK to download the latest version of Android Support Library.

    If any of that doesn't help, please send us to universal.tools.contact@gmail.com your Assets/Plugins/Android/AndroidManifest.xml and a list of all files in your Assets/Plugins/Android/ folder.

    Best regards,
    Yuriy, Universal Tools team.
     
  43. Yuriy-Ivanov

    Yuriy-Ivanov

    Joined:
    Jun 12, 2015
    Posts:
    495
    Hi _Radagan,

    I'm glad that you figured it out, and sorry for a late response.

    Best regards,
    Yuriy, Universal Tools team.
     
  44. lucaslm

    lucaslm

    Joined:
    Aug 31, 2016
    Posts:
    5
    Hey Yuriy, thanks for the reply,

    It turns out I had the package "Android Support Repository" missing from my SDK. After installing it the error changed to "Failed to re-package resources. See the Console for details." whenever I try to build the app (even after changing some project preferences). The console points to an error in the AndroidManifest.xml, and now unity won't even build the app.
    I guess there is no other way but to learn the specs of this xml and try to figure the error, and hope it will work by then.
    If I manage to make it work, I'll post the solution here, to spare any other poor soul from this.

    Bellow is the full text from the console (quite lenghty)

    Code (csharp):
    1. CommandInvokationFailure: Failed to re-package resources.
    2. C:\Program Files (x86)\Android\android-sdk\build-tools\24.0.2\aapt.exe package --auto-add-overlay -v -f -m -J gen -M AndroidManifest.xml -S "res" -I "C:\Program Files (x86)\Android\android-sdk\platforms\android-23\android.jar" -F bin/resources.ap_ --extra-packages com.google.android.gms:com.InterIllusion.I2Localization:com.google.android.gms.base:com.google.android.gms:com.google.android.gms.gcm:com.google.android.gms.iid:com.google.android.gms.tasks:me.leolin.shortcutbadger:android.support.compat:android.support.coreui:android.support.coreutils:android.support.fragment:android.support.mediacompat:android.support.v4:universal.tools.notifications -S "C:\Users\SAMSUNG\Documents\<ProjectName>\Temp\StagingArea\android-libraries\google-play-services_lib\res" -S "C:\Users\SAMSUNG\Documents\<ProjectName>\Temp\StagingArea\android-libraries\I2Localization\res" -S "C:\Users\SAMSUNG\Documents\<ProjectName>\Temp\StagingArea\android-libraries\play-services-base-9.4.0\res" -S "C:\Users\SAMSUNG\Documents\<ProjectName>\Temp\StagingArea\android-libraries\play-services-basement-9.4.0\res" -S "C:\Users\SAMSUNG\Documents\<ProjectName>\Temp\StagingArea\android-libraries\play-services-gcm-9.4.0\res" -S "C:\Users\SAMSUNG\Documents\<ProjectName>\Temp\StagingArea\android-libraries\play-services-iid-9.4.0\res" -S "C:\Users\SAMSUNG\Documents\<ProjectName>\Temp\StagingArea\android-libraries\play-services-tasks-9.4.0\res" -S "C:\Users\SAMSUNG\Documents\<ProjectName>\Temp\StagingArea\android-libraries\ShortcutBadger-1.1.5\res" -S "C:\Users\SAMSUNG\Documents\<ProjectName>\Temp\StagingArea\android-libraries\support-compat-24.2.0\res" -S "C:\Users\SAMSUNG\Documents\<ProjectName>\Temp\StagingArea\android-libraries\support-core-ui-24.2.0\res" -S "C:\Users\SAMSUNG\Documents\<ProjectName>\Temp\StagingArea\android-libraries\support-core-utils-24.2.0\res" -S "C:\Users\SAMSUNG\Documents\<ProjectName>\Temp\StagingArea\android-libraries\support-fragment-24.2.0\res" -S "C:\Users\SAMSUNG\Documents\<ProjectName>\Temp\StagingArea\android-libraries\support-media-compat-24.2.0\res" -S "C:\Users\SAMSUNG\Documents\<ProjectName>\Temp\StagingArea\android-libraries\support-v4-24.2.0\res" -S "C:\Users\SAMSUNG\Documents\<ProjectName>\Temp\StagingArea\android-libraries\utnotifications\res"
    3.  
    4. stderr[
    5. C:\Users\SAMSUNG\Documents\<ProjectName>\Temp\StagingArea\android-libraries\google-play-services_lib\res\values\common_attrs.xml:13: error: Attribute "imageAspectRatioAdjust"
    And here is the content of Assets/Plugins/Android/AndroidManifest.xml

    Code (csharp):
    1. <?xml version="1.0" encoding="utf-8"?>
    2. <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.unity3d.player" android:installLocation="preferExternal" android:versionCode="1" android:versionName="1.0" xmlns:amazon="http://schemas.amazon.com/apk/res/android">
    3.   <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" />
    4.   <application android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:icon="@drawable/app_icon" android:label="@string/app_name" android:debuggable="true">
    5.     <activity android:name="com.unity3d.player.UnityPlayerActivity" android:label="@string/app_name">
    6.       <intent-filter>
    7.         <action android:name="android.intent.action.MAIN" />
    8.         <category android:name="android.intent.category.LAUNCHER" />
    9.       </intent-filter>
    10.       <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
    11.     </activity>
    12.     <!-- UTNotifications common -->
    13.     <receiver android:name="universal.tools.notifications.AlarmBroadcastReceiver" />
    14.     <service android:name="universal.tools.notifications.NotificationIntentService" android:exported="true" />
    15.     <!-- Restore Scheduled Notifications On Reboot -->
    16.     <receiver android:name="universal.tools.notifications.ScheduledNotificationsRestorer">
    17.       <intent-filter>
    18.         <action android:name="android.intent.action.BOOT_COMPLETED" />
    19.       </intent-filter>
    20.     </receiver>
    21.   </application>
    22.   <uses-permission android:name="android.permission.VIBRATE" />
    23.   <uses-permission android:name="android.permission.WAKE_LOCK" />
    24.   <!-- Restore Scheduled Notifications On Reboot -->
    25.   <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    26.   <uses-permission android:name="android.permission.INTERNET" />
    27. </manifest>
    And lastly, this is a listing of all the files in the directory ssets/Plugins/Android/

    Code (csharp):
    1. ¦   AndroidManifest.xml
    2. ¦   AndroidManifest.xml.meta
    3. ¦   google-play-services_lib.meta
    4. ¦   I2Localization.meta
    5. ¦   play-services-base-9.4.0.aar
    6. ¦   play-services-base-9.4.0.aar.meta
    7. ¦   play-services-basement-9.4.0.aar
    8. ¦   play-services-basement-9.4.0.aar.meta
    9. ¦   play-services-gcm-9.4.0.aar
    10. ¦   play-services-gcm-9.4.0.aar.meta
    11. ¦   play-services-iid-9.4.0.aar
    12. ¦   play-services-iid-9.4.0.aar.meta
    13. ¦   play-services-tasks-9.4.0.aar
    14. ¦   play-services-tasks-9.4.0.aar.meta
    15. ¦   ShortcutBadger-1.1.5.aar
    16. ¦   ShortcutBadger-1.1.5.aar.meta
    17. ¦   support-annotations-24.2.0.jar
    18. ¦   support-annotations-24.2.0.jar.meta
    19. ¦   support-compat-24.2.0.aar
    20. ¦   support-compat-24.2.0.aar.meta
    21. ¦   support-core-ui-24.2.0.aar
    22. ¦   support-core-ui-24.2.0.aar.meta
    23. ¦   support-core-utils-24.2.0.aar
    24. ¦   support-core-utils-24.2.0.aar.meta
    25. ¦   support-fragment-24.2.0.aar
    26. ¦   support-fragment-24.2.0.aar.meta
    27. ¦   support-media-compat-24.2.0.aar
    28. ¦   support-media-compat-24.2.0.aar.meta
    29. ¦   support-v4-24.2.0.aar
    30. ¦   support-v4-24.2.0.aar.meta
    31. ¦   utnotifications.aar
    32. ¦   utnotifications.aar.meta
    33. ¦  
    34. +---google-play-services_lib
    35. ¦   ¦   .classpath
    36. ¦   ¦   .project
    37. ¦   ¦   AndroidManifest.xml
    38. ¦   ¦   AndroidManifest.xml.meta
    39. ¦   ¦   bin.meta
    40. ¦   ¦   eclipse_adt.classpath
    41. ¦   ¦   eclipse_adt.classpath.meta
    42. ¦   ¦   eclipse_adt.project
    43. ¦   ¦   eclipse_adt.project.meta
    44. ¦   ¦   libs.meta
    45. ¦   ¦   proguard.txt
    46. ¦   ¦   proguard.txt.meta
    47. ¦   ¦   project.properties
    48. ¦   ¦   project.properties.meta
    49. ¦   ¦   README.txt
    50. ¦   ¦   README.txt.meta
    51. ¦   ¦   res.meta
    52. ¦   ¦   src.meta
    53. ¦   ¦  
    54. ¦   +---bin
    55. ¦   ¦   ¦   AndroidManifest.xml
    56. ¦   ¦   ¦   AndroidManifest.xml.meta
    57. ¦   ¦   ¦   google-play-services_lib.jar
    58. ¦   ¦   ¦   google-play-services_lib.jar.meta
    59. ¦   ¦   ¦   R.txt
    60. ¦   ¦   ¦   R.txt.meta
    61. ¦   ¦   ¦   res.meta
    62. ¦   ¦   ¦  
    63. ¦   ¦   +---res
    64. ¦   ¦       ¦   crunch.meta
    65. ¦   ¦       ¦  
    66. ¦   ¦       +---crunch
    67. ¦   ¦           ¦   drawable-hdpi.meta
    68. ¦   ¦           ¦   drawable-mdpi.meta
    69. ¦   ¦           ¦   drawable-tvdpi.meta
    70. ¦   ¦           ¦   drawable-xhdpi.meta
    71. ¦   ¦           ¦   drawable-xxhdpi.meta
    72. ¦   ¦           ¦  
    73. ¦   ¦           +---drawable-hdpi
    74. ¦   ¦           ¦       common_full_open_on_phone.png
    75. ¦   ¦           ¦       common_full_open_on_phone.png.meta
    76. ¦   ¦           ¦       common_ic_googleplayservices.png
    77. ¦   ¦           ¦       common_ic_googleplayservices.png.meta
    78. ¦   ¦           ¦       common_signin_btn_icon_disabled_dark.9.png
    79. ¦   ¦           ¦       common_signin_btn_icon_disabled_dark.9.png.meta
    80. ¦   ¦           ¦       common_signin_btn_icon_disabled_focus_dark.9.png
    81. ¦   ¦           ¦       common_signin_btn_icon_disabled_focus_dark.9.png.meta
    82. ¦   ¦           ¦       common_signin_btn_icon_disabled_focus_light.9.png
    83. ¦   ¦           ¦       common_signin_btn_icon_disabled_focus_light.9.png.meta
    84. ¦   ¦           ¦       common_signin_btn_icon_disabled_light.9.png
    85. ¦   ¦           ¦       common_signin_btn_icon_disabled_light.9.png.meta
    86. ¦   ¦           ¦       common_signin_btn_icon_focus_dark.9.png
    87. ¦   ¦           ¦       common_signin_btn_icon_focus_dark.9.png.meta
    88. ¦   ¦           ¦       common_signin_btn_icon_focus_light.9.png
    89. ¦   ¦           ¦       common_signin_btn_icon_focus_light.9.png.meta
    90. ¦   ¦           ¦       common_signin_btn_icon_normal_dark.9.png
    91. ¦   ¦           ¦       common_signin_btn_icon_normal_dark.9.png.meta
    92. ¦   ¦           ¦       common_signin_btn_icon_normal_light.9.png
    93. ¦   ¦           ¦       common_signin_btn_icon_normal_light.9.png.meta
    94. ¦   ¦           ¦       common_signin_btn_icon_pressed_dark.9.png
    95. ¦   ¦           ¦       common_signin_btn_icon_pressed_dark.9.png.meta
    96. ¦   ¦           ¦       common_signin_btn_icon_pressed_light.9.png
    97. ¦   ¦           ¦       common_signin_btn_icon_pressed_light.9.png.meta
    98. ¦   ¦           ¦       common_signin_btn_text_disabled_dark.9.png
    99. ¦   ¦           ¦       common_signin_btn_text_disabled_dark.9.png.meta
    100. ¦   ¦           ¦       common_signin_btn_text_disabled_focus_dark.9.png
    101. ¦   ¦           ¦       common_signin_btn_text_disabled_focus_dark.9.png.meta
    102. ¦   ¦           ¦       common_signin_btn_text_disabled_focus_light.9.png
    103. ¦   ¦           ¦       common_signin_btn_text_disabled_focus_light.9.png.meta
    104. ¦   ¦           ¦       common_signin_btn_text_disabled_light.9.png
    105. ¦   ¦           ¦       common_signin_btn_text_disabled_light.9.png.meta
    106. ¦   ¦           ¦       common_signin_btn_text_focus_dark.9.png
    107. ¦   ¦           ¦       common_signin_btn_text_focus_dark.9.png.meta
    108. ¦   ¦           ¦       common_signin_btn_text_focus_light.9.png
    109. ¦   ¦           ¦       common_signin_btn_text_focus_light.9.png.meta
    110. ¦   ¦           ¦       common_signin_btn_text_normal_dark.9.png
    111. ¦   ¦           ¦       common_signin_btn_text_normal_dark.9.png.meta
    112. ¦   ¦           ¦       common_signin_btn_text_normal_light.9.png
    113. ¦   ¦           ¦       common_signin_btn_text_normal_light.9.png.meta
    114. ¦   ¦           ¦       common_signin_btn_text_pressed_dark.9.png
    115. ¦   ¦           ¦       common_signin_btn_text_pressed_dark.9.png.meta
    116. ¦   ¦           ¦       common_signin_btn_text_pressed_light.9.png
    117. ¦   ¦           ¦       common_signin_btn_text_pressed_light.9.png.meta
    118. ¦   ¦           ¦       ic_plusone_medium_off_client.png
    119. ¦   ¦           ¦       ic_plusone_medium_off_client.png.meta
    120. ¦   ¦           ¦       ic_plusone_small_off_client.png
    121. ¦   ¦           ¦       ic_plusone_small_off_client.png.meta
    122. ¦   ¦           ¦       ic_plusone_standard_off_client.png
    123. ¦   ¦           ¦       ic_plusone_standard_off_client.png.meta
    124. ¦   ¦           ¦       ic_plusone_tall_off_client.png
    125. ¦   ¦           ¦       ic_plusone_tall_off_client.png.meta
    126. ¦   ¦           ¦       powered_by_google_dark.png
    127. ¦   ¦           ¦       powered_by_google_dark.png.meta
    128. ¦   ¦           ¦       powered_by_google_light.png
    129. ¦   ¦           ¦       powered_by_google_light.png.meta
    130. ¦   ¦           ¦      
    131. ¦   ¦           +---drawable-mdpi
    132. ¦   ¦           ¦       common_signin_btn_icon_disabled_dark.9.png
    133. ¦   ¦           ¦       common_signin_btn_icon_disabled_dark.9.png.meta
    134. ¦   ¦           ¦       common_signin_btn_icon_disabled_focus_dark.9.png
    135. ¦   ¦           ¦       common_signin_btn_icon_disabled_focus_dark.9.png.meta
    136. ¦   ¦           ¦       common_signin_btn_icon_disabled_focus_light.9.png
    137. ¦   ¦           ¦       common_signin_btn_icon_disabled_focus_light.9.png.meta
    138. ¦   ¦           ¦       common_signin_btn_icon_disabled_light.9.png
    139. ¦   ¦           ¦       common_signin_btn_icon_disabled_light.9.png.meta
    140. ¦   ¦           ¦       common_signin_btn_icon_focus_dark.9.png
    141. ¦   ¦           ¦       common_signin_btn_icon_focus_dark.9.png.meta
    142. ¦   ¦           ¦       common_signin_btn_icon_focus_light.9.png
    143. ¦   ¦           ¦       common_signin_btn_icon_focus_light.9.png.meta
    144. ¦   ¦           ¦       common_signin_btn_icon_normal_dark.9.png
    145. ¦   ¦           ¦       common_signin_btn_icon_normal_dark.9.png.meta
    146. ¦   ¦           ¦       common_signin_btn_icon_normal_light.9.png
    147. ¦   ¦           ¦       common_signin_btn_icon_normal_light.9.png.meta
    148. ¦   ¦           ¦       common_signin_btn_icon_pressed_dark.9.png
    149. ¦   ¦           ¦       common_signin_btn_icon_pressed_dark.9.png.meta
    150. ¦   ¦           ¦       common_signin_btn_icon_pressed_light.9.png
    151. ¦   ¦           ¦       common_signin_btn_icon_pressed_light.9.png.meta
    152. ¦   ¦           ¦       common_signin_btn_text_disabled_dark.9.png
    153. ¦   ¦           ¦       common_signin_btn_text_disabled_dark.9.png.meta
    154. ¦   ¦           ¦       common_signin_btn_text_disabled_focus_dark.9.png
    155. ¦   ¦           ¦       common_signin_btn_text_disabled_focus_dark.9.png.meta
    156. ¦   ¦           ¦       common_signin_btn_text_disabled_focus_light.9.png
    157. ¦   ¦           ¦       common_signin_btn_text_disabled_focus_light.9.png.meta
    158. ¦   ¦           ¦       common_signin_btn_text_disabled_light.9.png
    159. ¦   ¦           ¦       common_signin_btn_text_disabled_light.9.png.meta
    160. ¦   ¦           ¦       common_signin_btn_text_focus_dark.9.png
    161. ¦   ¦           ¦       common_signin_btn_text_focus_dark.9.png.meta
    162. ¦   ¦           ¦       common_signin_btn_text_focus_light.9.png
    163. ¦   ¦           ¦       common_signin_btn_text_focus_light.9.png.meta
    164. ¦   ¦           ¦       common_signin_btn_text_normal_dark.9.png
    165. ¦   ¦           ¦       common_signin_btn_text_normal_dark.9.png.meta
    166. ¦   ¦           ¦       common_signin_btn_text_normal_light.9.png
    167. ¦   ¦           ¦       common_signin_btn_text_normal_light.9.png.meta
    168. ¦   ¦           ¦       common_signin_btn_text_pressed_dark.9.png
    169. ¦   ¦           ¦       common_signin_btn_text_pressed_dark.9.png.meta
    170. ¦   ¦           ¦       common_signin_btn_text_pressed_light.9.png
    171. ¦   ¦           ¦       common_signin_btn_text_pressed_light.9.png.meta
    172. ¦   ¦           ¦       ic_plusone_medium_off_client.png
    173. ¦   ¦           ¦       ic_plusone_medium_off_client.png.meta
    174. ¦   ¦           ¦       ic_plusone_small_off_client.png
    175. ¦   ¦           ¦       ic_plusone_small_off_client.png.meta
    176. ¦   ¦           ¦       ic_plusone_standard_off_client.png
    177. ¦   ¦           ¦       ic_plusone_standard_off_client.png.meta
    178. ¦   ¦           ¦       ic_plusone_tall_off_client.png
    179. ¦   ¦           ¦       ic_plusone_tall_off_client.png.meta
    180. ¦   ¦           ¦       powered_by_google_dark.png
    181. ¦   ¦           ¦       powered_by_google_dark.png.meta
    182. ¦   ¦           ¦       powered_by_google_light.png
    183. ¦   ¦           ¦       powered_by_google_light.png.meta
    184. ¦   ¦           ¦      
    185. ¦   ¦           +---drawable-tvdpi
    186. ¦   ¦           ¦       ic_plusone_medium_off_client.png
    187. ¦   ¦           ¦       ic_plusone_medium_off_client.png.meta
    188. ¦   ¦           ¦       ic_plusone_small_off_client.png
    189. ¦   ¦           ¦       ic_plusone_small_off_client.png.meta
    190. ¦   ¦           ¦       ic_plusone_standard_off_client.png
    191. ¦   ¦           ¦       ic_plusone_standard_off_client.png.meta
    192. ¦   ¦           ¦       ic_plusone_tall_off_client.png
    193. ¦   ¦           ¦       ic_plusone_tall_off_client.png.meta
    194. ¦   ¦           ¦      
    195. ¦   ¦           +---drawable-xhdpi
    196. ¦   ¦           ¦       common_signin_btn_icon_disabled_dark.9.png
    197. ¦   ¦           ¦       common_signin_btn_icon_disabled_dark.9.png.meta
    198. ¦   ¦           ¦       common_signin_btn_icon_disabled_focus_dark.9.png
    199. ¦   ¦           ¦       common_signin_btn_icon_disabled_focus_dark.9.png.meta
    200. ¦   ¦           ¦       common_signin_btn_icon_disabled_focus_light.9.png
    201. ¦   ¦           ¦       common_signin_btn_icon_disabled_focus_light.9.png.meta
    202. ¦   ¦           ¦       common_signin_btn_icon_disabled_light.9.png
    203. ¦   ¦           ¦       common_signin_btn_icon_disabled_light.9.png.meta
    204. ¦   ¦           ¦       common_signin_btn_icon_focus_dark.9.png
    205. ¦   ¦           ¦       common_signin_btn_icon_focus_dark.9.png.meta
    206. ¦   ¦           ¦       common_signin_btn_icon_focus_light.9.png
    207. ¦   ¦           ¦       common_signin_btn_icon_focus_light.9.png.meta
    208. ¦   ¦           ¦       common_signin_btn_icon_normal_dark.9.png
    209. ¦   ¦           ¦       common_signin_btn_icon_normal_dark.9.png.meta
    210. ¦   ¦           ¦       common_signin_btn_icon_normal_light.9.png
    211. ¦   ¦           ¦       common_signin_btn_icon_normal_light.9.png.meta
    212. ¦   ¦           ¦       common_signin_btn_icon_pressed_dark.9.png
    213. ¦   ¦           ¦       common_signin_btn_icon_pressed_dark.9.png.meta
    214. ¦   ¦           ¦       common_signin_btn_icon_pressed_light.9.png
    215. ¦   ¦           ¦       common_signin_btn_icon_pressed_light.9.png.meta
    216. ¦   ¦           ¦       common_signin_btn_text_disabled_dark.9.png
    217. ¦   ¦           ¦       common_signin_btn_text_disabled_dark.9.png.meta
    218. ¦   ¦           ¦       common_signin_btn_text_disabled_focus_dark.9.png
    219. ¦   ¦           ¦       common_signin_btn_text_disabled_focus_dark.9.png.meta
    220. ¦   ¦           ¦       common_signin_btn_text_disabled_focus_light.9.png
    221. ¦   ¦           ¦       common_signin_btn_text_disabled_focus_light.9.png.meta
    222. ¦   ¦           ¦       common_signin_btn_text_disabled_light.9.png
    223. ¦   ¦           ¦       common_signin_btn_text_disabled_light.9.png.meta
    224. ¦   ¦           ¦       common_signin_btn_text_focus_dark.9.png
    225. ¦   ¦           ¦       common_signin_btn_text_focus_dark.9.png.meta
    226. ¦   ¦           ¦       common_signin_btn_text_focus_light.9.png
    227. ¦   ¦           ¦       common_signin_btn_text_focus_light.9.png.meta
    228. ¦   ¦           ¦       common_signin_btn_text_normal_dark.9.png
    229. ¦   ¦           ¦       common_signin_btn_text_normal_dark.9.png.meta
    230. ¦   ¦           ¦       common_signin_btn_text_normal_light.9.png
    231. ¦   ¦           ¦       common_signin_btn_text_normal_light.9.png.meta
    232. ¦   ¦           ¦       common_signin_btn_text_pressed_dark.9.png
    233. ¦   ¦           ¦       common_signin_btn_text_pressed_dark.9.png.meta
    234. ¦   ¦           ¦       common_signin_btn_text_pressed_light.9.png
    235. ¦   ¦           ¦       common_signin_btn_text_pressed_light.9.png.meta
    236. ¦   ¦           ¦       ic_plusone_medium_off_client.png
    237. ¦   ¦           ¦       ic_plusone_medium_off_client.png.meta
    238. ¦   ¦           ¦       ic_plusone_small_off_client.png
    239. ¦   ¦           ¦       ic_plusone_small_off_client.png.meta
    240. ¦   ¦           ¦       ic_plusone_standard_off_client.png
    241. ¦   ¦           ¦       ic_plusone_standard_off_client.png.meta
    242. ¦   ¦           ¦       ic_plusone_tall_off_client.png
    243. ¦   ¦           ¦       ic_plusone_tall_off_client.png.meta
    244. ¦   ¦           ¦       powered_by_google_dark.png
    245. ¦   ¦           ¦       powered_by_google_dark.png.meta
    246. ¦   ¦           ¦       powered_by_google_light.png
    247. ¦   ¦           ¦       powered_by_google_light.png.meta
    248. ¦   ¦           ¦      
    249. ¦   ¦           +---drawable-xxhdpi
    250. ¦   ¦                   common_signin_btn_icon_disabled_dark.9.png
    251. ¦   ¦                   common_signin_btn_icon_disabled_dark.9.png.meta
    252. ¦   ¦                   common_signin_btn_icon_disabled_focus_dark.9.png
    253. ¦   ¦                   common_signin_btn_icon_disabled_focus_dark.9.png.meta
    254. ¦   ¦                   common_signin_btn_icon_disabled_focus_light.9.png
    255. ¦   ¦                   common_signin_btn_icon_disabled_focus_light.9.png.meta
    256. ¦   ¦                   common_signin_btn_icon_disabled_light.9.png
    257. ¦   ¦                   common_signin_btn_icon_disabled_light.9.png.meta
    258. ¦   ¦                   common_signin_btn_icon_focus_dark.9.png
    259. ¦   ¦                   common_signin_btn_icon_focus_dark.9.png.meta
    260. ¦   ¦                   common_signin_btn_icon_focus_light.9.png
    261. ¦   ¦                   common_signin_btn_icon_focus_light.9.png.meta
    262. ¦   ¦                   common_signin_btn_icon_normal_dark.9.png
    263. ¦   ¦                   common_signin_btn_icon_normal_dark.9.png.meta
    264. ¦   ¦                   common_signin_btn_icon_normal_light.9.png
    265. ¦   ¦                   common_signin_btn_icon_normal_light.9.png.meta
    266. ¦   ¦                   common_signin_btn_icon_pressed_dark.9.png
    267. ¦   ¦                   common_signin_btn_icon_pressed_dark.9.png.meta
    268. ¦   ¦                   common_signin_btn_icon_pressed_light.9.png
    269. ¦   ¦                   common_signin_btn_icon_pressed_light.9.png.meta
    270. ¦   ¦                   common_signin_btn_text_disabled_dark.9.png
    271. ¦   ¦                   common_signin_btn_text_disabled_dark.9.png.meta
    272. ¦   ¦                   common_signin_btn_text_disabled_focus_dark.9.png
    273. ¦   ¦                   common_signin_btn_text_disabled_focus_dark.9.png.meta
    274. ¦   ¦                   common_signin_btn_text_disabled_focus_light.9.png
    275. ¦   ¦                   common_signin_btn_text_disabled_focus_light.9.png.meta
    276. ¦   ¦                   common_signin_btn_text_disabled_light.9.png
    277. ¦   ¦                   common_signin_btn_text_disabled_light.9.png.meta
    278. ¦   ¦                   common_signin_btn_text_focus_dark.9.png
    279. ¦   ¦                   common_signin_btn_text_focus_dark.9.png.meta
    280. ¦   ¦                   common_signin_btn_text_focus_light.9.png
    281. ¦   ¦                   common_signin_btn_text_focus_light.9.png.meta
    282. ¦   ¦                   common_signin_btn_text_normal_dark.9.png
    283. ¦   ¦                   common_signin_btn_text_normal_dark.9.png.meta
    284. ¦   ¦                   common_signin_btn_text_normal_light.9.png
    285. ¦   ¦                   common_signin_btn_text_normal_light.9.png.meta
    286. ¦   ¦                   common_signin_btn_text_pressed_dark.9.png
    287. ¦   ¦                   common_signin_btn_text_pressed_dark.9.png.meta
    288. ¦   ¦                   common_signin_btn_text_pressed_light.9.png
    289. ¦   ¦                   common_signin_btn_text_pressed_light.9.png.meta
    290. ¦   ¦                   ic_plusone_medium_off_client.png
    291. ¦   ¦                   ic_plusone_medium_off_client.png.meta
    292. ¦   ¦                   ic_plusone_small_off_client.png
    293. ¦   ¦                   ic_plusone_small_off_client.png.meta
    294. ¦   ¦                   ic_plusone_standard_off_client.png
    295. ¦   ¦                   ic_plusone_standard_off_client.png.meta
    296. ¦   ¦                   ic_plusone_tall_off_client.png
    297. ¦   ¦                   ic_plusone_tall_off_client.png.meta
    298. ¦   ¦                   powered_by_google_dark.png
    299. ¦   ¦                   powered_by_google_dark.png.meta
    300. ¦   ¦                   powered_by_google_light.png
    301. ¦   ¦                   powered_by_google_light.png.meta
    302. ¦   ¦                  
    303. ¦   +---libs
    304. ¦   ¦       google-play-services.jar
    305. ¦   ¦       google-play-services.jar.meta
    306. ¦   ¦       google-play-services.jar.properties
    307. ¦   ¦       google-play-services.jar.properties.meta
    308. ¦   ¦      
    309. ¦   +---res
    310. ¦   ¦   ¦   color.meta
    311. ¦   ¦   ¦   drawable-hdpi.meta
    312. ¦   ¦   ¦   drawable-mdpi.meta
    313. ¦   ¦   ¦   drawable-tvdpi.meta
    314. ¦   ¦   ¦   drawable-xhdpi.meta
    315. ¦   ¦   ¦   drawable-xxhdpi.meta
    316. ¦   ¦   ¦   drawable.meta
    317. ¦   ¦   ¦   raw.meta
    318. ¦   ¦   ¦   values-af.meta
    319. ¦   ¦   ¦   values-am.meta
    320. ¦   ¦   ¦   values-ar.meta
    321. ¦   ¦   ¦   values-bg.meta
    322. ¦   ¦   ¦   values-bn-rBD.meta
    323. ¦   ¦   ¦   values-ca.meta
    324. ¦   ¦   ¦   values-cs.meta
    325. ¦   ¦   ¦   values-da.meta
    326. ¦   ¦   ¦   values-de.meta
    327. ¦   ¦   ¦   values-el.meta
    328. ¦   ¦   ¦   values-en-rGB.meta
    329. ¦   ¦   ¦   values-en-rIN.meta
    330. ¦   ¦   ¦   values-es-rUS.meta
    331. ¦   ¦   ¦   values-es.meta
    332. ¦   ¦   ¦   values-et-rEE.meta
    333. ¦   ¦   ¦   values-eu-rES.meta
    334. ¦   ¦   ¦   values-fa.meta
    335. ¦   ¦   ¦   values-fi.meta
    336. ¦   ¦   ¦   values-fr-rCA.meta
    337. ¦   ¦   ¦   values-fr.meta
    338. ¦   ¦   ¦   values-gl-rES.meta
    339. ¦   ¦   ¦   values-hi.meta
    340. ¦   ¦   ¦   values-hr.meta
    341. ¦   ¦   ¦   values-hu.meta
    342. ¦   ¦   ¦   values-hy-rAM.meta
    343. ¦   ¦   ¦   values-in.meta
    344. ¦   ¦   ¦   values-is-rIS.meta
    345. ¦   ¦   ¦   values-it.meta
    346. ¦   ¦   ¦   values-iw.meta
    347. ¦   ¦   ¦   values-ja.meta
    348. ¦   ¦   ¦   values-ka-rGE.meta
    349. ¦   ¦   ¦   values-kk-rKZ.meta
    350. ¦   ¦   ¦   values-km-rKH.meta
    351. ¦   ¦   ¦   values-kn-rIN.meta
    352. ¦   ¦   ¦   values-ko.meta
    353. ¦   ¦   ¦   values-ky-rKG.meta
    354. ¦   ¦   ¦   values-lo-rLA.meta
    355. ¦   ¦   ¦   values-lt.meta
    356. ¦   ¦   ¦   values-lv.meta
    357. ¦   ¦   ¦   values-mk-rMK.meta
    358. ¦   ¦   ¦   values-ml-rIN.meta
    359. ¦   ¦   ¦   values-mn-rMN.meta
    360. ¦   ¦   ¦   values-mr-rIN.meta
    361. ¦   ¦   ¦   values-ms-rMY.meta
    362. ¦   ¦   ¦   values-my-rMM.meta
    363. ¦   ¦   ¦   values-nb.meta
    364. ¦   ¦   ¦   values-ne-rNP.meta
    365. ¦   ¦   ¦   values-nl.meta
    366. ¦   ¦   ¦   values-pl.meta
    367. ¦   ¦   ¦   values-pt-rBR.meta
    368. ¦   ¦   ¦   values-pt-rPT.meta
    369. ¦   ¦   ¦   values-pt.meta
    370. ¦   ¦   ¦   values-ro.meta
    371. ¦   ¦   ¦   values-ru.meta
    372. ¦   ¦   ¦   values-si-rLK.meta
    373. ¦   ¦   ¦   values-sk.meta
    374. ¦   ¦   ¦   values-sl.meta
    375. ¦   ¦   ¦   values-sr.meta
    376. ¦   ¦   ¦   values-sv.meta
    377. ¦   ¦   ¦   values-sw.meta
    378. ¦   ¦   ¦   values-ta-rIN.meta
    379. ¦   ¦   ¦   values-te-rIN.meta
    380. ¦   ¦   ¦   values-th.meta
    381. ¦   ¦   ¦   values-tl.meta
    382. ¦   ¦   ¦   values-tr.meta
    383. ¦   ¦   ¦   values-uk.meta
    384. ¦   ¦   ¦   values-ur-rPK.meta
    385. ¦   ¦   ¦   values-uz-rUZ.meta
    386. ¦   ¦   ¦   values-vi.meta
    387. ¦   ¦   ¦   values-zh-rCN.meta
    388. ¦   ¦   ¦   values-zh-rHK.meta
    389. ¦   ¦   ¦   values-zh-rTW.meta
    390. ¦   ¦   ¦   values-zu.meta
    391. ¦   ¦   ¦   values.meta
    392. ¦   ¦   ¦  
    393. ¦   ¦   +---color
    394. ¦   ¦   ¦       common_signin_btn_text_dark.xml
    395. ¦   ¦   ¦       common_signin_btn_text_dark.xml.meta
    396. ¦   ¦   ¦       common_signin_btn_text_light.xml
    397. ¦   ¦   ¦       common_signin_btn_text_light.xml.meta
    398. ¦   ¦   ¦       wallet_primary_text_holo_light.xml
    399. ¦   ¦   ¦       wallet_primary_text_holo_light.xml.meta
    400. ¦   ¦   ¦       wallet_secondary_text_holo_dark.xml
    401. ¦   ¦   ¦       wallet_secondary_text_holo_dark.xml.meta
    402. ¦   ¦   ¦      
    403. ¦   ¦   +---drawable
    404. ¦   ¦   ¦       common_signin_btn_icon_dark.xml
    405. ¦   ¦   ¦       common_signin_btn_icon_dark.xml.meta
    406. ¦   ¦   ¦       common_signin_btn_icon_light.xml
    407. ¦   ¦   ¦       common_signin_btn_icon_light.xml.meta
    408. ¦   ¦   ¦       common_signin_btn_text_dark.xml
    409. ¦   ¦   ¦       common_signin_btn_text_dark.xml.meta
    410. ¦   ¦   ¦       common_signin_btn_text_light.xml
    411. ¦   ¦   ¦       common_signin_btn_text_light.xml.meta
    412. ¦   ¦   ¦      
    413. ¦   ¦   +---drawable-hdpi
    414. ¦   ¦   ¦       common_full_open_on_phone.png
    415. ¦   ¦   ¦       common_full_open_on_phone.png.meta
    416. ¦   ¦   ¦       common_ic_googleplayservices.png
    417. ¦   ¦   ¦       common_ic_googleplayservices.png.meta
    418. ¦   ¦   ¦       common_signin_btn_icon_disabled_dark.9.png
    419. ¦   ¦   ¦       common_signin_btn_icon_disabled_dark.9.png.meta
    420. ¦   ¦   ¦       common_signin_btn_icon_disabled_focus_dark.9.png
    421. ¦   ¦   ¦       common_signin_btn_icon_disabled_focus_dark.9.png.meta
    422. ¦   ¦   ¦       common_signin_btn_icon_disabled_focus_light.9.png
    423. ¦   ¦   ¦       common_signin_btn_icon_disabled_focus_light.9.png.meta
    424. ¦   ¦   ¦       common_signin_btn_icon_disabled_light.9.png
    425. ¦   ¦   ¦       common_signin_btn_icon_disabled_light.9.png.meta
    426. ¦   ¦   ¦       common_signin_btn_icon_focus_dark.9.png
    427. ¦   ¦   ¦       common_signin_btn_icon_focus_dark.9.png.meta
    428. ¦   ¦   ¦       common_signin_btn_icon_focus_light.9.png
    429. ¦   ¦   ¦       common_signin_btn_icon_focus_light.9.png.meta
    430. ¦   ¦   ¦       common_signin_btn_icon_normal_dark.9.png
    431. ¦   ¦   ¦       common_signin_btn_icon_normal_dark.9.png.meta
    432. ¦   ¦   ¦       common_signin_btn_icon_normal_light.9.png
    433. ¦   ¦   ¦       common_signin_btn_icon_normal_light.9.png.meta
    434. ¦   ¦   ¦       common_signin_btn_icon_pressed_dark.9.png
    435. ¦   ¦   ¦       common_signin_btn_icon_pressed_dark.9.png.meta
    436. ¦   ¦   ¦       common_signin_btn_icon_pressed_light.9.png
    437. ¦   ¦   ¦       common_signin_btn_icon_pressed_light.9.png.meta
    438. ¦   ¦   ¦       common_signin_btn_text_disabled_dark.9.png
    439. ¦   ¦   ¦       common_signin_btn_text_disabled_dark.9.png.meta
    440. ¦   ¦   ¦       common_signin_btn_text_disabled_focus_dark.9.png
    441. ¦   ¦   ¦       common_signin_btn_text_disabled_focus_dark.9.png.meta
    442. ¦   ¦   ¦       common_signin_btn_text_disabled_focus_light.9.png
    443. ¦   ¦   ¦       common_signin_btn_text_disabled_focus_light.9.png.meta
    444. ¦   ¦   ¦       common_signin_btn_text_disabled_light.9.png
    445. ¦   ¦   ¦       common_signin_btn_text_disabled_light.9.png.meta
    446. ¦   ¦   ¦       common_signin_btn_text_focus_dark.9.png
    447. ¦   ¦   ¦       common_signin_btn_text_focus_dark.9.png.meta
    448. ¦   ¦   ¦       common_signin_btn_text_focus_light.9.png
    449. ¦   ¦   ¦       common_signin_btn_text_focus_light.9.png.meta
    450. ¦   ¦   ¦       common_signin_btn_text_normal_dark.9.png
    451. ¦   ¦   ¦       common_signin_btn_text_normal_dark.9.png.meta
    452. ¦   ¦   ¦       common_signin_btn_text_normal_light.9.png
    453. ¦   ¦   ¦       common_signin_btn_text_normal_light.9.png.meta
    454. ¦   ¦   ¦       common_signin_btn_text_pressed_dark.9.png
    455. ¦   ¦   ¦       common_signin_btn_text_pressed_dark.9.png.meta
    456. ¦   ¦   ¦       common_signin_btn_text_pressed_light.9.png
    457. ¦   ¦   ¦       common_signin_btn_text_pressed_light.9.png.meta
    458. ¦   ¦   ¦       ic_plusone_medium_off_client.png
    459. ¦   ¦   ¦       ic_plusone_medium_off_client.png.meta
    460. ¦   ¦   ¦       ic_plusone_small_off_client.png
    461. ¦   ¦   ¦       ic_plusone_small_off_client.png.meta
    462. ¦   ¦   ¦       ic_plusone_standard_off_client.png
    463. ¦   ¦   ¦       ic_plusone_standard_off_client.png.meta
    464. ¦   ¦   ¦       ic_plusone_tall_off_client.png
    465. ¦   ¦   ¦       ic_plusone_tall_off_client.png.meta
    466. ¦   ¦   ¦       powered_by_google_dark.png
    467. ¦   ¦   ¦       powered_by_google_dark.png.meta
    468. ¦   ¦   ¦       powered_by_google_light.png
    469. ¦   ¦   ¦       powered_by_google_light.png.meta
    470. ¦   ¦   ¦      
    471. ¦   ¦   +---drawable-mdpi
    472. ¦   ¦   ¦       common_signin_btn_icon_disabled_dark.9.png
    473. ¦   ¦   ¦       common_signin_btn_icon_disabled_dark.9.png.meta
    474. ¦   ¦   ¦       common_signin_btn_icon_disabled_focus_dark.9.png
    475. ¦   ¦   ¦       common_signin_btn_icon_disabled_focus_dark.9.png.meta
    476. ¦   ¦   ¦       common_signin_btn_icon_disabled_focus_light.9.png
    477. ¦   ¦   ¦       common_signin_btn_icon_disabled_focus_light.9.png.meta
    478. ¦   ¦   ¦       common_signin_btn_icon_disabled_light.9.png
    479. ¦   ¦   ¦       common_signin_btn_icon_disabled_light.9.png.meta
    480. ¦   ¦   ¦       common_signin_btn_icon_focus_dark.9.png
    481. ¦   ¦   ¦       common_signin_btn_icon_focus_dark.9.png.meta
    482. ¦   ¦   ¦       common_signin_btn_icon_focus_light.9.png
    483. ¦   ¦   ¦       common_signin_btn_icon_focus_light.9.png.meta
    484. ¦   ¦   ¦       common_signin_btn_icon_normal_dark.9.png
    485. ¦   ¦   ¦       common_signin_btn_icon_normal_dark.9.png.meta
    486. ¦   ¦   ¦       common_signin_btn_icon_normal_light.9.png
    487. ¦   ¦   ¦       common_signin_btn_icon_normal_light.9.png.meta
    488. ¦   ¦   ¦       common_signin_btn_icon_pressed_dark.9.png
    489. ¦   ¦   ¦       common_signin_btn_icon_pressed_dark.9.png.meta
    490. ¦   ¦   ¦       common_signin_btn_icon_pressed_light.9.png
    491. ¦   ¦   ¦       common_signin_btn_icon_pressed_light.9.png.meta
    492. ¦   ¦   ¦       common_signin_btn_text_disabled_dark.9.png
    493. ¦   ¦   ¦       common_signin_btn_text_disabled_dark.9.png.meta
    494. ¦   ¦   ¦       common_signin_btn_text_disabled_focus_dark.9.png
    495. ¦   ¦   ¦       common_signin_btn_text_disabled_focus_dark.9.png.meta
    496. ¦   ¦   ¦       common_signin_btn_text_disabled_focus_light.9.png
    497. ¦   ¦   ¦       common_signin_btn_text_disabled_focus_light.9.png.meta
    498. ¦   ¦   ¦       common_signin_btn_text_disabled_light.9.png
    499. ¦   ¦   ¦       common_signin_btn_text_disabled_light.9.png.meta
    500. ¦   ¦   ¦       common_signin_btn_text_focus_dark.9.png
    501. ¦   ¦   ¦       common_signin_btn_text_focus_dark.9.png.meta
    502. ¦   ¦   ¦       common_signin_btn_text_focus_light.9.png
    503. ¦   ¦   ¦       common_signin_btn_text_focus_light.9.png.meta
    504. ¦   ¦   ¦       common_signin_btn_text_normal_dark.9.png
    505. ¦   ¦   ¦       common_signin_btn_text_normal_dark.9.png.meta
    506. ¦   ¦   ¦       common_signin_btn_text_normal_light.9.png
    507. ¦   ¦   ¦       common_signin_btn_text_normal_light.9.png.meta
    508. ¦   ¦   ¦       common_signin_btn_text_pressed_dark.9.png
    509. ¦   ¦   ¦       common_signin_btn_text_pressed_dark.9.png.meta
    510. ¦   ¦   ¦       common_signin_btn_text_pressed_light.9.png
    511. ¦   ¦   ¦       common_signin_btn_text_pressed_light.9.png.meta
    512. ¦   ¦   ¦       ic_plusone_medium_off_client.png
    513. ¦   ¦   ¦       ic_plusone_medium_off_client.png.meta
    514. ¦   ¦   ¦       ic_plusone_small_off_client.png
    515. ¦   ¦   ¦       ic_plusone_small_off_client.png.meta
    516. ¦   ¦   ¦       ic_plusone_standard_off_client.png
    517. ¦   ¦   ¦       ic_plusone_standard_off_client.png.meta
    518. ¦   ¦   ¦       ic_plusone_tall_off_client.png
    519. ¦   ¦   ¦       ic_plusone_tall_off_client.png.meta
    520. ¦   ¦   ¦       powered_by_google_dark.png
    521. ¦   ¦   ¦       powered_by_google_dark.png.meta
    522. ¦   ¦   ¦       powered_by_google_light.png
    523. ¦   ¦   ¦       powered_by_google_light.png.meta
    524. ¦   ¦   ¦      
    525. ¦   ¦   +---drawable-tvdpi
    526. ¦   ¦   ¦       ic_plusone_medium_off_client.png
    527. ¦   ¦   ¦       ic_plusone_medium_off_client.png.meta
    528. ¦   ¦   ¦       ic_plusone_small_off_client.png
    529. ¦   ¦   ¦       ic_plusone_small_off_client.png.meta
    530. ¦   ¦   ¦       ic_plusone_standard_off_client.png
    531. ¦   ¦   ¦       ic_plusone_standard_off_client.png.meta
    532. ¦   ¦   ¦       ic_plusone_tall_off_client.png
    533. ¦   ¦   ¦       ic_plusone_tall_off_client.png.meta
    534. ¦   ¦   ¦      
    535. ¦   ¦   +---drawable-xhdpi
    536. ¦   ¦   ¦       common_signin_btn_icon_disabled_dark.9.png
    537. ¦   ¦   ¦       common_signin_btn_icon_disabled_dark.9.png.meta
    538. ¦   ¦   ¦       common_signin_btn_icon_disabled_focus_dark.9.png
    539. ¦   ¦   ¦       common_signin_btn_icon_disabled_focus_dark.9.png.meta
    540. ¦   ¦   ¦       common_signin_btn_icon_disabled_focus_light.9.png
    541. ¦   ¦   ¦       common_signin_btn_icon_disabled_focus_light.9.png.meta
    542. ¦   ¦   ¦       common_signin_btn_icon_disabled_light.9.png
    543. ¦   ¦   ¦       common_signin_btn_icon_disabled_light.9.png.meta
    544. ¦   ¦   ¦       common_signin_btn_icon_focus_dark.9.png
    545. ¦   ¦   ¦       common_signin_btn_icon_focus_dark.9.png.meta
    546. ¦   ¦   ¦       common_signin_btn_icon_focus_light.9.png
    547. ¦   ¦   ¦       common_signin_btn_icon_focus_light.9.png.meta
    548. ¦   ¦   ¦       common_signin_btn_icon_normal_dark.9.png
    549. ¦   ¦   ¦       common_signin_btn_icon_normal_dark.9.png.meta
    550. ¦   ¦   ¦       common_signin_btn_icon_normal_light.9.png
    551. ¦   ¦   ¦       common_signin_btn_icon_normal_light.9.png.meta
    552. ¦   ¦   ¦       common_signin_btn_icon_pressed_dark.9.png
    553. ¦   ¦   ¦       common_signin_btn_icon_pressed_dark.9.png.meta
    554. ¦   ¦   ¦       common_signin_btn_icon_pressed_light.9.png
    555. ¦   ¦   ¦       common_signin_btn_icon_pressed_light.9.png.meta
    556. ¦   ¦   ¦       common_signin_btn_text_disabled_dark.9.png
    557. ¦   ¦   ¦       common_signin_btn_text_disabled_dark.9.png.meta
    558. ¦   ¦   ¦       common_signin_btn_text_disabled_focus_dark.9.png
    559. ¦   ¦   ¦       common_signin_btn_text_disabled_focus_dark.9.png.meta
    560. ¦   ¦   ¦       common_signin_btn_text_disabled_focus_light.9.png
    561. ¦   ¦   ¦       common_signin_btn_text_disabled_focus_light.9.png.meta
    562. ¦   ¦   ¦       common_signin_btn_text_disabled_light.9.png
    563. ¦   ¦   ¦       common_signin_btn_text_disabled_light.9.png.meta
    564. ¦   ¦   ¦       common_signin_btn_text_focus_dark.9.png
    565. ¦   ¦   ¦       common_signin_btn_text_focus_dark.9.png.meta
    566. ¦   ¦   ¦       common_signin_btn_text_focus_light.9.png
    567. ¦   ¦   ¦       common_signin_btn_text_focus_light.9.png.meta
    568. ¦   ¦   ¦       common_signin_btn_text_normal_dark.9.png
    569. ¦   ¦   ¦       common_signin_btn_text_normal_dark.9.png.meta
    570. ¦   ¦   ¦       common_signin_btn_text_normal_light.9.png
    571. ¦   ¦   ¦       common_signin_btn_text_normal_light.9.png.meta
    572. ¦   ¦   ¦       common_signin_btn_text_pressed_dark.9.png
    573. ¦   ¦   ¦       common_signin_btn_text_pressed_dark.9.png.meta
    574. ¦   ¦   ¦       common_signin_btn_text_pressed_light.9.png
    575. ¦   ¦   ¦       common_signin_btn_text_pressed_light.9.png.meta
    576. ¦   ¦   ¦       ic_plusone_medium_off_client.png
    577. ¦   ¦   ¦       ic_plusone_medium_off_client.png.meta
    578. ¦   ¦   ¦       ic_plusone_small_off_client.png
    579. ¦   ¦   ¦       ic_plusone_small_off_client.png.meta
    580. ¦   ¦   ¦       ic_plusone_standard_off_client.png
    581. ¦   ¦   ¦       ic_plusone_standard_off_client.png.meta
    582. ¦   ¦   ¦       ic_plusone_tall_off_client.png
    583. ¦   ¦   ¦       ic_plusone_tall_off_client.png.meta
    584. ¦   ¦   ¦       powered_by_google_dark.png
    585. ¦   ¦   ¦       powered_by_google_dark.png.meta
    586. ¦   ¦   ¦       powered_by_google_light.png
    587. ¦   ¦   ¦       powered_by_google_light.png.meta
    588. ¦   ¦   ¦      
    589. ¦   ¦   +---drawable-xxhdpi
    590. ¦   ¦   ¦       common_signin_btn_icon_disabled_dark.9.png
    591. ¦   ¦   ¦       common_signin_btn_icon_disabled_dark.9.png.meta
    592. ¦   ¦   ¦       common_signin_btn_icon_disabled_focus_dark.9.png
    593. ¦   ¦   ¦       common_signin_btn_icon_disabled_focus_dark.9.png.meta
    594. ¦   ¦   ¦       common_signin_btn_icon_disabled_focus_light.9.png
    595. ¦   ¦   ¦       common_signin_btn_icon_disabled_focus_light.9.png.meta
    596. ¦   ¦   ¦       common_signin_btn_icon_disabled_light.9.png
    597. ¦   ¦   ¦       common_signin_btn_icon_disabled_light.9.png.meta
    598. ¦   ¦   ¦       common_signin_btn_icon_focus_dark.9.png
    599. ¦   ¦   ¦       common_signin_btn_icon_focus_dark.9.png.meta
    600. ¦   ¦   ¦       common_signin_btn_icon_focus_light.9.png
    601. ¦   ¦   ¦       common_signin_btn_icon_focus_light.9.png.meta
    602. ¦   ¦   ¦       common_signin_btn_icon_normal_dark.9.png
    603. ¦   ¦   ¦       common_signin_btn_icon_normal_dark.9.png.meta
    604. ¦   ¦   ¦       common_signin_btn_icon_normal_light.9.png
    605. ¦   ¦   ¦       common_signin_btn_icon_normal_light.9.png.meta
    606. ¦   ¦   ¦       common_signin_btn_icon_pressed_dark.9.png
    607. ¦   ¦   ¦       common_signin_btn_icon_pressed_dark.9.png.meta
    608. ¦   ¦   ¦       common_signin_btn_icon_pressed_light.9.png
    609. ¦   ¦   ¦       common_signin_btn_icon_pressed_light.9.png.meta
    610. ¦   ¦   ¦       common_signin_btn_text_disabled_dark.9.png
    611. ¦   ¦   ¦       common_signin_btn_text_disabled_dark.9.png.meta
    612. ¦   ¦   ¦       common_signin_btn_text_disabled_focus_dark.9.png
    613. ¦   ¦   ¦       common_signin_btn_text_disabled_focus_dark.9.png.meta
    614. ¦   ¦   ¦       common_signin_btn_text_disabled_focus_light.9.png
    615. ¦   ¦   ¦       common_signin_btn_text_disabled_focus_light.9.png.meta
    616. ¦   ¦   ¦       common_signin_btn_text_disabled_light.9.png
    617. ¦   ¦   ¦       common_signin_btn_text_disabled_light.9.png.meta
    618. ¦   ¦   ¦       common_signin_btn_text_focus_dark.9.png
    619. ¦   ¦   ¦       common_signin_btn_text_focus_dark.9.png.meta
    620. ¦   ¦   ¦       common_signin_btn_text_focus_light.9.png
    621. ¦   ¦   ¦       common_signin_btn_text_focus_light.9.png.meta
    622. ¦   ¦   ¦       common_signin_btn_text_normal_dark.9.png
    623. ¦   ¦   ¦       common_signin_btn_text_normal_dark.9.png.meta
    624. ¦   ¦   ¦       common_signin_btn_text_normal_light.9.png
    625. ¦   ¦   ¦       common_signin_btn_text_normal_light.9.png.meta
    626. ¦   ¦   ¦       common_signin_btn_text_pressed_dark.9.png
    627. ¦   ¦   ¦       common_signin_btn_text_pressed_dark.9.png.meta
    628. ¦   ¦   ¦       common_signin_btn_text_pressed_light.9.png
    629. ¦   ¦   ¦       common_signin_btn_text_pressed_light.9.png.meta
    630. ¦   ¦   ¦       ic_plusone_medium_off_client.png
    631. ¦   ¦   ¦       ic_plusone_medium_off_client.png.meta
    632. ¦   ¦   ¦       ic_plusone_small_off_client.png
    633. ¦   ¦   ¦       ic_plusone_small_off_client.png.meta
    634. ¦   ¦   ¦       ic_plusone_standard_off_client.png
    635. ¦   ¦   ¦       ic_plusone_standard_off_client.png.meta
    636. ¦   ¦   ¦       ic_plusone_tall_off_client.png
    637. ¦   ¦   ¦       ic_plusone_tall_off_client.png.meta
    638. ¦   ¦   ¦       powered_by_google_dark.png
    639. ¦   ¦   ¦       powered_by_google_dark.png.meta
    640. ¦   ¦   ¦       powered_by_google_light.png
    641. ¦   ¦   ¦       powered_by_google_light.png.meta
    642. ¦   ¦   ¦      
    643. ¦   ¦   +---raw
    644. ¦   ¦   ¦       gtm_analytics
    645. ¦   ¦   ¦       gtm_analytics.meta
    646. ¦   ¦   ¦      
    647. ¦   ¦   +---values
    648. ¦   ¦   ¦       admob_ads_attrs.xml
    649. ¦   ¦   ¦       admob_ads_attrs.xml.meta
    650. ¦   ¦   ¦       admob_iap_style.xml
    651. ¦   ¦   ¦       admob_iap_style.xml.meta
    652. ¦   ¦   ¦       admob_strings.xml
    653. ¦   ¦   ¦       admob_strings.xml.meta
    654. ¦   ¦   ¦       common_attrs.xml
    655. ¦   ¦   ¦       common_attrs.xml.meta
    656. ¦   ¦   ¦       common_colors.xml
    657. ¦   ¦   ¦       common_colors.xml.meta
    658. ¦   ¦   ¦       common_strings.xml
    659. ¦   ¦   ¦       common_strings.xml.meta
    660. ¦   ¦   ¦       maps_attrs.xml
    661. ¦   ¦   ¦       maps_attrs.xml.meta
    662. ¦   ¦   ¦       version.xml
    663. ¦   ¦   ¦       version.xml.meta
    664. ¦   ¦   ¦       wallet_attrs.xml
    665. ¦   ¦   ¦       wallet_attrs.xml.meta
    666. ¦   ¦   ¦       wallet_colors.xml
    667. ¦   ¦   ¦       wallet_colors.xml.meta
    668. ¦   ¦   ¦       wallet_strings.xml
    669. ¦   ¦   ¦       wallet_strings.xml.meta
    670. ¦   ¦   ¦       wallet_styles.xml
    671. ¦   ¦   ¦       wallet_styles.xml.meta
    672. ¦   ¦   ¦      
    673. ¦   ¦   +---values-af
    674. ¦   ¦   ¦       common_strings.xml
    675. ¦   ¦   ¦       common_strings.xml.meta
    676. ¦   ¦   ¦      
    677. ¦   ¦   +---values-am
    678. ¦   ¦   ¦       common_strings.xml
    679. ¦   ¦   ¦       common_strings.xml.meta
    680. ¦   ¦   ¦      
    681. ¦   ¦   +---values-ar
    682. ¦   ¦   ¦       common_strings.xml
    683. ¦   ¦   ¦       common_strings.xml.meta
    684. ¦   ¦   ¦      
    685. ¦   ¦   +---values-bg
    686. ¦   ¦   ¦       common_strings.xml
    687. ¦   ¦   ¦       common_strings.xml.meta
    688. ¦   ¦   ¦      
    689. ¦   ¦   +---values-bn-rBD
    690. ¦   ¦   ¦       common_strings.xml
    691. ¦   ¦   ¦       common_strings.xml.meta
    692. ¦   ¦   ¦      
    693. ¦   ¦   +---values-ca
    694. ¦   ¦   ¦       common_strings.xml
    695. ¦   ¦   ¦       common_strings.xml.meta
    696. ¦   ¦   ¦      
    697. ¦   ¦   +---values-cs
    698. ¦   ¦   ¦       common_strings.xml
    699. ¦   ¦   ¦       common_strings.xml.meta
    700. ¦   ¦   ¦      
    701. ¦   ¦   +---values-da
    702. ¦   ¦   ¦       common_strings.xml
    703. ¦   ¦   ¦       common_strings.xml.meta
    704. ¦   ¦   ¦      
    705. ¦   ¦   +---values-de
    706. ¦   ¦   ¦       common_strings.xml
    707. ¦   ¦   ¦       common_strings.xml.meta
    708. ¦   ¦   ¦      
    709. ¦   ¦   +---values-el
    710. ¦   ¦   ¦       common_strings.xml
    711. ¦   ¦   ¦       common_strings.xml.meta
    712. ¦   ¦   ¦      
    713. ¦   ¦   +---values-en-rGB
    714. ¦   ¦   ¦       common_strings.xml
    715. ¦   ¦   ¦       common_strings.xml.meta
    716. ¦   ¦   ¦      
    717. ¦   ¦   +---values-en-rIN
    718. ¦   ¦   ¦       common_strings.xml
    719. ¦   ¦   ¦       common_strings.xml.meta
    720. ¦   ¦   ¦      
    721. ¦   ¦   +---values-es
    722. ¦   ¦   ¦       common_strings.xml
    723. ¦   ¦   ¦       common_strings.xml.meta
    724. ¦   ¦   ¦       wallet_strings.xml
    725. ¦   ¦   ¦       wallet_strings.xml.meta
    726. ¦   ¦   ¦      
    727. ¦   ¦   +---values-es-rUS
    728. ¦   ¦   ¦       common_strings.xml
    729. ¦   ¦   ¦       common_strings.xml.meta
    730. ¦   ¦   ¦      
    731. ¦   ¦   +---values-et-rEE
    732. ¦   ¦   ¦       common_strings.xml
    733. ¦   ¦   ¦       common_strings.xml.meta
    734. ¦   ¦   ¦      
    735. ¦   ¦   +---values-eu-rES
    736. ¦   ¦   ¦       common_strings.xml
    737. ¦   ¦   ¦       common_strings.xml.meta
    738. ¦   ¦   ¦      
    739. ¦   ¦   +---values-fa
    740. ¦   ¦   ¦       common_strings.xml
    741. ¦   ¦   ¦       common_strings.xml.meta
    742. ¦   ¦   ¦      
    743. ¦   ¦   +---values-fi
    744. ¦   ¦   ¦       common_strings.xml
    745. ¦   ¦   ¦       common_strings.xml.meta
    746. ¦   ¦   ¦      
    747. ¦   ¦   +---values-fr
    748. ¦   ¦   ¦       common_strings.xml
    749. ¦   ¦   ¦       common_strings.xml.meta
    750. ¦   ¦   ¦      
    751. ¦   ¦   +---values-fr-rCA
    752. ¦   ¦   ¦       common_strings.xml
    753. ¦   ¦   ¦       common_strings.xml.meta
    754. ¦   ¦   ¦      
    755. ¦   ¦   +---values-gl-rES
    756. ¦   ¦   ¦       common_strings.xml
    757. ¦   ¦   ¦       common_strings.xml.meta
    758. ¦   ¦   ¦      
    759. ¦   ¦   +---values-hi
    760. ¦   ¦   ¦       common_strings.xml
    761. ¦   ¦   ¦       common_strings.xml.meta
    762. ¦   ¦   ¦      
    763. ¦   ¦   +---values-hr
    764. ¦   ¦   ¦       common_strings.xml
    765. ¦   ¦   ¦       common_strings.xml.meta
    766. ¦   ¦   ¦      
    767. ¦   ¦   +---values-hu
    768. ¦   ¦   ¦       common_strings.xml
    769. ¦   ¦   ¦       common_strings.xml.meta
    770. ¦   ¦   ¦      
    771. ¦   ¦   +---values-hy-rAM
    772. ¦   ¦   ¦       common_strings.xml
    773. ¦   ¦   ¦       common_strings.xml.meta
    774. ¦   ¦   ¦      
    775. ¦   ¦   +---values-in
    776. ¦   ¦   ¦       common_strings.xml
    777. ¦   ¦   ¦       common_strings.xml.meta
    778. ¦   ¦   ¦      
    779. ¦   ¦   +---values-is-rIS
    780. ¦   ¦   ¦       common_strings.xml
    781. ¦   ¦   ¦       common_strings.xml.meta
    782. ¦   ¦   ¦      
    783. ¦   ¦   +---values-it
    784. ¦   ¦   ¦       common_strings.xml
    785. ¦   ¦   ¦       common_strings.xml.meta
    786. ¦   ¦   ¦      
    787. ¦   ¦   +---values-iw
    788. ¦   ¦   ¦       common_strings.xml
    789. ¦   ¦   ¦       common_strings.xml.meta
    790. ¦   ¦   ¦      
    791. ¦   ¦   +---values-ja
    792. ¦   ¦   ¦       common_strings.xml
    793. ¦   ¦   ¦       common_strings.xml.meta
    794. ¦   ¦   ¦      
    795. ¦   ¦   +---values-ka-rGE
    796. ¦   ¦   ¦       common_strings.xml
    797. ¦   ¦   ¦       common_strings.xml.meta
    798. ¦   ¦   ¦      
    799. ¦   ¦   +---values-kk-rKZ
    800. ¦   ¦   ¦       common_strings.xml
    801. ¦   ¦   ¦       common_strings.xml.meta
    802. ¦   ¦   ¦      
    803. ¦   ¦   +---values-km-rKH
    804. ¦   ¦   ¦       common_strings.xml
    805. ¦   ¦   ¦       common_strings.xml.meta
    806. ¦   ¦   ¦      
    807. ¦   ¦   +---values-kn-rIN
    808. ¦   ¦   ¦       common_strings.xml
    809. ¦   ¦   ¦       common_strings.xml.meta
    810. ¦   ¦   ¦      
    811. ¦   ¦   +---values-ko
    812. ¦   ¦   ¦       common_strings.xml
    813. ¦   ¦   ¦       common_strings.xml.meta
    814. ¦   ¦   ¦      
    815. ¦   ¦   +---values-ky-rKG
    816. ¦   ¦   ¦       common_strings.xml
    817. ¦   ¦   ¦       common_strings.xml.meta
    818. ¦   ¦   ¦      
    819. ¦   ¦   +---values-lo-rLA
    820. ¦   ¦   ¦       common_strings.xml
    821. ¦   ¦   ¦       common_strings.xml.meta
    822. ¦   ¦   ¦      
    823. ¦   ¦   +---values-lt
    824. ¦   ¦   ¦       common_strings.xml
    825. ¦   ¦   ¦       common_strings.xml.meta
    826. ¦   ¦   ¦      
    827. ¦   ¦   +---values-lv
    828. ¦   ¦   ¦       common_strings.xml
    829. ¦   ¦   ¦       common_strings.xml.meta
    830. ¦   ¦   ¦      
    831. ¦   ¦   +---values-mk-rMK
    832. ¦   ¦   ¦       common_strings.xml
    833. ¦   ¦   ¦       common_strings.xml.meta
    834. ¦   ¦   ¦      
    835. ¦   ¦   +---values-ml-rIN
    836. ¦   ¦   ¦       common_strings.xml
    837. ¦   ¦   ¦       common_strings.xml.meta
    838. ¦   ¦   ¦      
    839. ¦   ¦   +---values-mn-rMN
    840. ¦   ¦   ¦       common_strings.xml
    841. ¦   ¦   ¦       common_strings.xml.meta
    842. ¦   ¦   ¦      
    843. ¦   ¦   +---values-mr-rIN
    844. ¦   ¦   ¦       common_strings.xml
    845. ¦   ¦   ¦       common_strings.xml.meta
    846. ¦   ¦   ¦      
    847. ¦   ¦   +---values-ms-rMY
    848. ¦   ¦   ¦       common_strings.xml
    849. ¦   ¦   ¦       common_strings.xml.meta
    850. ¦   ¦   ¦      
    851. ¦   ¦   +---values-my-rMM
    852. ¦   ¦   ¦       common_strings.xml
    853. ¦   ¦   ¦       common_strings.xml.meta
    854. ¦   ¦   ¦      
    855. ¦   ¦   +---values-nb
    856. ¦   ¦   ¦       common_strings.xml
    857. ¦   ¦   ¦       common_strings.xml.meta
    858. ¦   ¦   ¦      
    859. ¦   ¦   +---values-ne-rNP
    860. ¦   ¦   ¦       common_strings.xml
    861. ¦   ¦   ¦       common_strings.xml.meta
    862. ¦   ¦   ¦      
    863. ¦   ¦   +---values-nl
    864. ¦   ¦   ¦       common_strings.xml
    865. ¦   ¦   ¦       common_strings.xml.meta
    866. ¦   ¦   ¦      
    867. ¦   ¦   +---values-pl
    868. ¦   ¦   ¦       common_strings.xml
    869. ¦   ¦   ¦       common_strings.xml.meta
    870. ¦   ¦   ¦      
    871. ¦   ¦   +---values-pt
    872. ¦   ¦   ¦       common_strings.xml
    873. ¦   ¦   ¦       common_strings.xml.meta
    874. ¦   ¦   ¦      
    875. ¦   ¦   +---values-pt-rBR
    876. ¦   ¦   ¦       common_strings.xml
    877. ¦   ¦   ¦       common_strings.xml.meta
    878. ¦   ¦   ¦      
    879. ¦   ¦   +---values-pt-rPT
    880. ¦   ¦   ¦       common_strings.xml
    881. ¦   ¦   ¦       common_strings.xml.meta
    882. ¦   ¦   ¦      
    883. ¦   ¦   +---values-ro
    884. ¦   ¦   ¦       common_strings.xml
    885. ¦   ¦   ¦       common_strings.xml.meta
    886. ¦   ¦   ¦      
    887. ¦   ¦   +---values-ru
    888. ¦   ¦   ¦       common_strings.xml
    889. ¦   ¦   ¦       common_strings.xml.meta
    890. ¦   ¦   ¦      
    891. ¦   ¦   +---values-si-rLK
    892. ¦   ¦   ¦       common_strings.xml
    893. ¦   ¦   ¦       common_strings.xml.meta
    894. ¦   ¦   ¦      
    895. ¦   ¦   +---values-sk
    896. ¦   ¦   ¦       common_strings.xml
    897. ¦   ¦   ¦       common_strings.xml.meta
    898. ¦   ¦   ¦      
    899. ¦   ¦   +---values-sl
    900. ¦   ¦   ¦       common_strings.xml
    901. ¦   ¦   ¦       common_strings.xml.meta
    902. ¦   ¦   ¦      
    903. ¦   ¦   +---values-sr
    904. ¦   ¦   ¦       common_strings.xml
    905. ¦   ¦   ¦       common_strings.xml.meta
    906. ¦   ¦   ¦      
    907. ¦   ¦   +---values-sv
    908. ¦   ¦   ¦       common_strings.xml
    909. ¦   ¦   ¦       common_strings.xml.meta
    910. ¦   ¦   ¦      
    911. ¦   ¦   +---values-sw
    912. ¦   ¦   ¦       common_strings.xml
    913. ¦   ¦   ¦       common_strings.xml.meta
    914. ¦   ¦   ¦      
    915. ¦   ¦   +---values-ta-rIN
    916. ¦   ¦   ¦       common_strings.xml
    917. ¦   ¦   ¦       common_strings.xml.meta
    918. ¦   ¦   ¦      
    919. ¦   ¦   +---values-te-rIN
    920. ¦   ¦   ¦       common_strings.xml
    921. ¦   ¦   ¦       common_strings.xml.meta
    922. ¦   ¦   ¦      
    923. ¦   ¦   +---values-th
    924. ¦   ¦   ¦       common_strings.xml
    925. ¦   ¦   ¦       common_strings.xml.meta
    926. ¦   ¦   ¦      
    927. ¦   ¦   +---values-tl
    928. ¦   ¦   ¦       common_strings.xml
    929. ¦   ¦   ¦       common_strings.xml.meta
    930. ¦   ¦   ¦      
    931. ¦   ¦   +---values-tr
    932. ¦   ¦   ¦       common_strings.xml
    933. ¦   ¦   ¦       common_strings.xml.meta
    934. ¦   ¦   ¦      
    935. ¦   ¦   +---values-uk
    936. ¦   ¦   ¦       common_strings.xml
    937. ¦   ¦   ¦       common_strings.xml.meta
    938. ¦   ¦   ¦      
    939. ¦   ¦   +---values-ur-rPK
    940. ¦   ¦   ¦       common_strings.xml
    941. ¦   ¦   ¦       common_strings.xml.meta
    942. ¦   ¦   ¦      
    943. ¦   ¦   +---values-uz-rUZ
    944. ¦   ¦   ¦       common_strings.xml
    945. ¦   ¦   ¦       common_strings.xml.meta
    946. ¦   ¦   ¦      
    947. ¦   ¦   +---values-vi
    948. ¦   ¦   ¦       common_strings.xml
    949. ¦   ¦   ¦       common_strings.xml.meta
    950. ¦   ¦   ¦      
    951. ¦   ¦   +---values-zh-rCN
    952. ¦   ¦   ¦       common_strings.xml
    953. ¦   ¦   ¦       common_strings.xml.meta
    954. ¦   ¦   ¦      
    955. ¦   ¦   +---values-zh-rHK
    956. ¦   ¦   ¦       common_strings.xml
    957. ¦   ¦   ¦       common_strings.xml.meta
    958. ¦   ¦   ¦      
    959. ¦   ¦   +---values-zh-rTW
    960. ¦   ¦   ¦       common_strings.xml
    961. ¦   ¦   ¦       common_strings.xml.meta
    962. ¦   ¦   ¦      
    963. ¦   ¦   +---values-zu
    964. ¦   ¦           common_strings.xml
    965. ¦   ¦           common_strings.xml.meta
    966. ¦   ¦          
    967. ¦   +---src
    968. ¦       ¦   android.meta
    969. ¦       ¦  
    970. ¦       +---android
    971. ¦               UnusedStub.java
    972. ¦               UnusedStub.java.meta
    973. ¦              
    974. +---I2Localization
    975.     ¦   AndroidManifest.xml
    976.     ¦   AndroidManifest.xml.meta
    977.     ¦   project.properties
    978.     ¦   project.properties.meta
    979.     ¦   res.meta
    980.     ¦  
    981.     +---res
    982.         ¦   values-bg.meta
    983.         ¦   values-de.meta
    984.         ¦   values-en.meta
    985.         ¦   values-es.meta
    986.         ¦   values-it.meta
    987.         ¦   values-pt-rBR.meta
    988.         ¦   values.meta
    989.         ¦  
    990.         +---values
    991.         ¦       strings.xml
    992.         ¦       strings.xml.meta
    993.         ¦      
    994.         +---values-bg
    995.         ¦       strings.xml
    996.         ¦       strings.xml.meta
    997.         ¦      
    998.         +---values-de
    999.         ¦       strings.xml
    1000.         ¦       strings.xml.meta
    1001.         ¦      
    1002.         +---values-en
    1003.         ¦       strings.xml
    1004.         ¦       strings.xml.meta
    1005.         ¦      
    1006.         +---values-es
    1007.         ¦       strings.xml
    1008.         ¦       strings.xml.meta
    1009.         ¦      
    1010.         +---values-it
    1011.         ¦       strings.xml
    1012.         ¦       strings.xml.meta
    1013.         ¦      
    1014.         +---values-pt-rBR
    1015.                 strings.xml
    1016.                 strings.xml.meta
    Best Regards to all
     
    Last edited: Sep 2, 2016
  45. Yuriy-Ivanov

    Yuriy-Ivanov

    Joined:
    Jun 12, 2015
    Posts:
    495
    Hi lucaslm,

    Thanks for the detailed log. In your case, by some reason, Google Play Services Resolver Library was unable to delete the old version of google play services lib (the whole folder google-play-services_lib). Please delete it manually. It should help.

    Please let me know if not.

    Best regards,
    Yuriy, Universal Tools team.
     
  46. lucaslm

    lucaslm

    Joined:
    Aug 31, 2016
    Posts:
    5
    Hi Yuriy,

    I just deleted google-play-services_lib and was able to build it. And now the plugin is working as it should (at least on the devices I mentioned). Thanks for your support, couldn't have done it this quick without your help.
     
    Last edited: Sep 2, 2016
  47. jhnissin

    jhnissin

    Joined:
    Sep 7, 2015
    Posts:
    27
    Hey,

    I will also post this here as I am unsure what is the correct support channel. I already emailed universal.tools.contact@gmail.com regarding the same issue though.

    I am using UTNotifications version 1.6 in my project with Unity 5.4.0. I am having a problem with the OnSendRegistrationId not launching at least with GCM. Do you have any suggestions as to what might be the cause of this? I have checked that Google Cloud Messaging is enabled in the plugin settings and have logging setup so I know when the OnSendRegistrationId occurs.

    I continued investigating the problem and with Android version 4.4.2 when I try to call Manager.Instance.SetPushNotificationsEnabled and Manager.Instance.PushNotificationsEnabled I get the following error during the start up of my application:

    --
    I/Unity ( 6053): AndroidJavaException: java.lang.NoSuchMethodError: no non-static method with name='googlePlayPushNotificationsEnabled' signature='()Z' in class Ljava.lang.Object;
    I/Unity ( 6053): java.lang.NoSuchMethodError: no non-static method with name='googlePlayPushNotificationsEnabled' signature='()Z' in class Ljava.lang.Object;
    I/Unity ( 6053): at com.unity3d.player.ReflectionHelper.getMethodID(Unknown Source)
    I/Unity ( 6053): at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
    I/Unity ( 6053): at com.unity3d.player.UnityPlayer.a(Unknown Source)
    I/Unity ( 6053): at com.unity3d.player.UnityPlayer$b$1.handleMessage(Unknown Source)
    I/Unity ( 6053): at android.os.Handler.dispatchMessage(Handler.java:98)
    I/Unity ( 6053): at android.os.Looper.loop(Looper.java:136)
    I/Unity ( 6053): at com.unity3d.player.UnityPlayer$b.run(Unknown Source)
    I/Unity ( 6053): at UnityEngine.AndroidJNISafe.CheckException () [0x00000] in <filename unknown>:0
    I/Unity ( 6053): at UnityEngine.AndroidJNISafe.CallStaticObjectMethod (IntPtr clazz, IntPtr methodID, UnityEngine.jvalue[] args) [0x00000] in <filename unknown>:0
    I/Unity ( 6053): at UnityEngine.AndroidReflection.GetMethodMember (IntPtr jclass, System.S
    I/Unity ( 6053): PushNotificationManager Init: Notifications enabled: True, push notifications enabled: False
    --

    Here is the startup C# code:

    Code (CSharp):
    1. Here is the startup C# code:
    2.  
    3.     private void Init ()
    4.     {
    5.         // Do not re-initialize in order to keep the IsRegistered reactive property
    6.         // etc. the same
    7.         if (_initialized)
    8.         {
    9.             return;
    10.         }
    11.  
    12.         _status = NotificationServiceStatus.Load ();
    13.         IsRegistered = new ReactiveProperty<bool> (!string.IsNullOrEmpty (_status.EndpointArn));
    14.  
    15.         if (!Application.isEditor)
    16.         {
    17.             Debug.Log ("PushNotificationManager Init: Initializing");
    18.  
    19.             _utNotificationsManager = Manager.Instance;
    20.             _utNotificationsManager.OnSendRegistrationId += SendRegistrationId;
    21.             _utNotificationsManager.OnNotificationClicked += UtNotificationsManager_OnNotificationClicked;
    22.             _utNotificationsManager.OnNotificationsReceived += UtNotificationsManager_OnNotificationsReceived;
    23.  
    24.             _utNotificationsManager.SetNotificationsEnabled (true);
    25.             _utNotificationsManager.SetPushNotificationsEnabled (true);
    26.  
    27.             #if UNITY_IOS
    28.             _utNotificationsManager.SetBadge (0);
    29.             #endif
    30.             _utNotificationsManager.Initialize (true);
    31.  
    32.             Debug.LogFormat ("PushNotificationManager Init: Notifications enabled: {0}, push notifications enabled: {1}",
    33.                 _utNotificationsManager.NotificationsEnabled (),
    34.                 _utNotificationsManager.PushNotificationsEnabled ());
    35.         }
    36.  
    37.         _initialized = true;
    38.     }
     
  48. Kujo87

    Kujo87

    Joined:
    Sep 16, 2013
    Posts:
    168
    Hi Yuriy,

    I have just updated to 1.6 and really good to see its been switched to the .aar files now, caused me some problems in the past.

    It seems now though that my devices aren't registering. I don't seem to be getting specific errors, but looking in logcat on a development build, I got an error about a signature error from GCM, and after that, there is a constant output of messages like this:

    Code (csharp):
    1.  
    2. getMethodID("universal.tools.notifications.Manager", "getReceivedNotificationsPacked", "()Ljava/lang/String;", static)
    3. 09-06 11:12:12.562 2172-2200/com.motionlab.darts2 D/Unity: ! String Manager.getReceivedNotificationsPacked();
    4. 09-06 11:12:12.563 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_ExceptionOccurred()
    5. 09-06 11:12:12.563 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_DeleteLocalRef()
    6. 09-06 11:12:12.563 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_DeleteLocalRef()
    7. 09-06 11:12:12.563 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_FromReflectedMethod()
    8. 09-06 11:12:12.564 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_ExceptionOccurred()
    9. 09-06 11:12:12.565 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_DeleteLocalRef()
    10. 09-06 11:12:12.566 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_CallStaticStringMethod(00201026, 73caee80)
    11. 09-06 11:12:12.566 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_ExceptionOccurred()
    12. 09-06 11:12:12.567 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_DeleteGlobalRef()
    13. 09-06 11:12:13.040 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_NewStringUTF()
    14. 09-06 11:12:13.040 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_ExceptionOccurred()
    15. 09-06 11:12:13.040 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_NewStringUTF()
    16. 09-06 11:12:13.040 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_ExceptionOccurred()
    17. 09-06 11:12:13.040 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_CallStaticObjectMethod(00000c4e, 73bb0420
    18. 09-06 11:12:13.040 2172-2200/com.motionlab.darts2 D/Unity: >            , 00200c52
    19. 09-06 11:12:13.040 2172-2200/com.motionlab.darts2 D/Unity: >            , 00100001
    20. 09-06 11:12:13.040 2172-2200/com.motionlab.darts2 D/Unity: >            , 00000005
    21. 09-06 11:12:13.040 2172-2200/com.motionlab.darts2 D/Unity: >            , 00000001
    22. 09-06 11:12:13.040 2172-2200/com.motionlab.darts2 D/Unity: >            )
    23. 09-06 11:12:13.040 2172-2200/com.motionlab.darts2 D/Unity: ? getMethodID("java.lang.Class", "forName", "(Ljava/lang/String;)Ljava/lang/Object;""universal.tools.notifications.Manager", "getClickedNotificationPacked", "()Ljava/lang/String;", static)
    24. 09-06 11:12:13.050 2172-2200/com.motionlab.darts2 D/Unity: ! String Manager.getClickedNotificationPacked();
    25. 09-06 11:12:13.050 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_ExceptionOccurred()
    26. 09-06 11:12:13.050 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_DeleteLocalRef()
    27. 09-06 11:12:13.050 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_DeleteLocalRef()
    28. 09-06 11:12:13.050 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_FromReflectedMethod()
    29. 09-06 11:12:13.050 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_ExceptionOccurred()
    30. 09-06 11:12:13.050 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_DeleteLocalRef()
    31. 09-06 11:12:13.051 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_CallStaticStringMethod(00001026, 73caed68)
    32. 09-06 11:12:13.051 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_ExceptionOccurred()
    33. 09-06 11:12:13.051 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_DeleteGlobalRef()
    34. 09-06 11:12:13.051 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_NewStringUTF()
    35. 09-06 11:12:13.051 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_ExceptionOccurred()
    36. 09-06 11:12:13.051 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_NewStringUTF()
    37. 09-06 11:12:13.051 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_ExceptionOccurred()
    38. 09-06 11:12:13.051 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_CallStaticObjectMethod(00000c4e, 73bb0420
    39. 09-06 11:12:13.051 2172-2200/com.motionlab.darts2 D/Unity: >            , 00200c52
    40. 09-06 11:12:13.051 2172-2200/com.motionlab.darts2 D/Unity: >            , 00100001
    41. 09-06 11:12:13.051 2172-2200/com.motionlab.darts2 D/Unity: >            , 00200005
    42. 09-06 11:12:13.051 2172-2200/com.motionlab.darts2 D/Unity: >            , 00000001
    43. 09-06 11:12:13.051 2172-2200/com.motionlab.darts2 D/Unity: >            )
    44. 09-06 11:12:13.051 2172-2200/com.motionlab.darts2 D/Unity: ? getMethodID("java.lang.Class", "forName", "(Ljava/lang/String;)Ljava/lang/Object;""universal.tools.notifications.Manager", "getReceivedNotificationsPacked", "()Ljava/lang/String;", static)
    45. 09-06 11:12:13.067 2172-2200/com.motionlab.darts2 D/Unity: ! String Manager.getReceivedNotificationsPacked();
    46. 09-06 11:12:13.068 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_ExceptionOccurred()
    47. 09-06 11:12:13.069 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_DeleteLocalRef()
    48. 09-06 11:12:13.069 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_DeleteLocalRef()
    49. 09-06 11:12:13.069 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_FromReflectedMethod()
    50. 09-06 11:12:13.069 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_ExceptionOccurred()
    51. 09-06 11:12:13.070 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_DeleteLocalRef()
    52. 09-06 11:12:13.070 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_CallStaticStringMethod(00201026, 73caee80)
    53. 09-06 11:12:13.070 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_ExceptionOccurred()
    54. 09-06 11:12:13.071 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_DeleteGlobalRef()
    55. 09-06 11:12:13.562 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_NewStringUTF()
    56. 09-06 11:12:13.563 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_ExceptionOccurred()
    57. 09-06 11:12:13.563 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_NewStringUTF()
    58. 09-06 11:12:13.563 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_ExceptionOccurred()
    59. 09-06 11:12:13.564 2172-2200/com.motionlab.darts2 D/Unity: > AndroidJNI_CUSTOM_INTERNAL_CALL_CallStaticObjectMethod(00000c4e, 73bb0420
    60. 09-06 11:12:13.565 2172-2200/com.motionlab.darts2 D/Unity: >            , 00200c52
    61. 09-06 11:12:13.565 2172-2200/com.motionlab.darts2 D/Unity: >            , 00200001
    62. 09-06 11:12:13.565 2172-2200/com.motionlab.darts2 D/Unity: >            , 00100005
    63. 09-06 11:12:13.566 2172-2200/com.motionlab.darts2 D/Unity: >            , 00000001
    64. 09-06 11:12:13.566 2172-2200/com.motionlab.darts2 D/Unity: >            )

    Now, I've never run the game in developer mode and so don't know if this is normal output in logcat, but its definitely not calling the register callback any more.

    Weirdly though, I always seem to get a blank notification on start up.

    Any ideas why this might be happening, or where would be a good place to track any issues that may be happening?

    Thanks,

    Alan
     
  49. Yuriy-Ivanov

    Yuriy-Ivanov

    Joined:
    Jun 12, 2015
    Posts:
    495
    Hi jhnissin,

    Unity forum not always informs me about new posts in the topic, so email is the main contact channel. Already answered you there.

    Best regards,
    Yuriy, Universal Tools team.
     
  50. Yuriy-Ivanov

    Yuriy-Ivanov

    Joined:
    Jun 12, 2015
    Posts:
    495
    Hi Alan,

    It's absolutely fine: in development build mode Unity logs any native plugin calls, so it's just a normal log.
    Most likely your AndroidManifest.xml was not properly updated after updating your UTNotifications version. Try turning off and on again Google Cloud Messaging Push Notifications toggle in UTNotifications settings (it will force UTNotifications to update your AndroidManifest.xml). Most likely it will help.

    This is indeed weird. Please try updating the Android Manifest as described and check if the issue remains. If remains, try reinstalling the app.

    Please inform me about results.

    Best regards,
    Yuriy, Universal Tools team.