├── .gitignore ├── Components ├── GCMClient-1.0.info ├── GCMClient-1.0.png └── GCMClient-1.0 │ ├── component │ ├── Details.md │ ├── GettingStarted.md │ ├── License.md │ ├── Manifest.xml │ └── icons │ │ ├── GCMClient_128x128.png │ │ └── GCMClient_512x512.png │ ├── lib │ └── android │ │ └── GCM.Client.dll │ └── samples │ └── Sample │ ├── Assets │ └── AboutAssets.txt │ ├── GcmService.cs │ ├── MainActivity.cs │ ├── Properties │ ├── AndroidManifest.xml │ └── AssemblyInfo.cs │ ├── Resources │ ├── AboutResources.txt │ ├── Resource.designer.cs │ ├── drawable │ │ └── Icon.png │ ├── layout │ │ └── Main.axml │ └── values │ │ └── Strings.xml │ ├── Sample.csproj │ └── Sample.sln ├── README.md ├── Resources ├── Screenshots │ ├── about.png │ ├── challenge_result.png │ ├── leaderboard.png │ ├── league_details.png │ ├── league_list.png │ ├── welcome_alias.png │ ├── welcome_auth.png │ └── welcome_push.png ├── XamarinSportIcon_Android.pxm └── XamarinSportIcon_iOS.pxm ├── Sport.Mobile.Droid ├── Assets │ └── AboutAssets.txt ├── LaunchActivity.cs ├── MainActivity.cs ├── Properties │ ├── AndroidManifest.xml │ └── AssemblyInfo.cs ├── Providers │ ├── HUDProvider.cs │ ├── PushNotifications.cs │ ├── SportEntryRenderer.cs │ ├── StatusBarManager.cs │ └── ToastNotifier.cs ├── Renderers │ └── SportEntryRenderer.cs ├── Resources │ ├── AboutResources.txt │ ├── Resource.designer.cs │ ├── Security │ │ └── androiddebugkey.keystore │ ├── drawable-hdpi │ │ ├── Icon.png │ │ ├── ic_add_white.png │ │ ├── ic_fencing_white.png │ │ ├── ic_menu_white.png │ │ ├── ic_missing_photo_white.png │ │ ├── ic_more_vert_white.png │ │ ├── ic_notifications_active_white.png │ │ ├── ic_people_gray.png │ │ ├── ic_person_add_white.png │ │ ├── ic_refresh_white.png │ │ ├── ic_send_white.png │ │ ├── ic_thumb_down_white.png │ │ ├── ic_thumb_up_white.png │ │ ├── ic_time_gray.png │ │ ├── ic_trending_up_white.png │ │ ├── ic_trophy_gray.png │ │ ├── ic_trophy_white.png │ │ └── icon_transparent.png │ ├── drawable-xhdpi │ │ ├── Icon.png │ │ ├── gradient_launch.jpg │ │ ├── ic_add_white.png │ │ ├── ic_fencing_white.png │ │ ├── ic_menu_white.png │ │ ├── ic_missing_photo_white.png │ │ ├── ic_more_vert_white.png │ │ ├── ic_notifications_active_white.png │ │ ├── ic_people_gray.png │ │ ├── ic_person_add_white.png │ │ ├── ic_refresh_white.png │ │ ├── ic_send_white.png │ │ ├── ic_thumb_down_white.png │ │ ├── ic_thumb_up_white.png │ │ ├── ic_time_gray.png │ │ ├── ic_trending_up_white.png │ │ ├── ic_trophy_gray.png │ │ ├── ic_trophy_white.png │ │ └── icon_transparent.png │ ├── drawable-xxhdpi │ │ ├── Icon.png │ │ ├── gradient_launch.jpg │ │ ├── ic_add_white.png │ │ ├── ic_fencing_white.png │ │ ├── ic_menu_white.png │ │ ├── ic_missing_photo_white.png │ │ ├── ic_more_vert_white.png │ │ ├── ic_notifications_active_white.png │ │ ├── ic_people_gray.png │ │ ├── ic_person_add_white.png │ │ ├── ic_refresh_white.png │ │ ├── ic_send_white.png │ │ ├── ic_thumb_down_white.png │ │ ├── ic_thumb_up_white.png │ │ ├── ic_time_gray.png │ │ ├── ic_trending_up_white_24dp.png │ │ ├── ic_trophy_gray.png │ │ ├── ic_trophy_white.png │ │ └── icon_transparent.png │ ├── drawable │ │ ├── LaunchView.axml │ │ ├── action_bar_background.xml │ │ ├── icon.png │ │ ├── icon_transparent.png │ │ ├── logos.png │ │ ├── no_pic.png │ │ └── transparent.png │ ├── layout │ │ ├── Tabbar.axml │ │ └── Toolbar.axml │ ├── values-v21 │ │ └── styles.xml │ └── values │ │ ├── colors.xml │ │ └── style.xml ├── Sport.Mobile.Droid.csproj ├── app.config └── packages.config ├── Sport.Mobile.Shared ├── App.xaml ├── App.xaml.cs ├── Converters.cs ├── Helpers │ ├── Constants.cs │ ├── Extensions.cs │ ├── Settings.cs │ ├── SharedExtensions.cs │ ├── TaskRunner.cs │ └── Theming.cs ├── Interfaces │ ├── IHUDProvider.cs │ ├── IPushNotifications.cs │ ├── IStatusBarManager.cs │ ├── IToastNotifier.cs │ └── IUserProfile.cs ├── Keys.cs ├── Models │ ├── Athlete.cs │ ├── BaseModel.cs │ ├── BaseNotify.cs │ ├── Challenge.cs │ ├── ColorTheme.cs │ ├── FlikrResult.cs │ ├── GameResult.cs │ ├── IDirty.cs │ ├── League.cs │ ├── Membership.cs │ └── UserProfile.cs ├── Pages │ ├── AboutPage.xaml │ ├── AboutPage.xaml.cs │ ├── AthleteLeaguesPage.xaml │ ├── AthleteLeaguesPage.xaml.cs │ ├── AthleteProfilePage.xaml │ ├── AthleteProfilePage.xaml.cs │ ├── AuthenticationPage.xaml │ ├── AuthenticationPage.xaml.cs │ ├── AvailableLeaguesPage.xaml │ ├── AvailableLeaguesPage.xaml.cs │ ├── BaseContentPage.cs │ ├── ChallengeDatePage.xaml │ ├── ChallengeDatePage.xaml.cs │ ├── ChallengeDetailsPage.xaml │ ├── ChallengeDetailsPage.xaml.cs │ ├── ChallengeHistoryPage.xaml │ ├── ChallengeHistoryPage.xaml.cs │ ├── LeaderboardPage.xaml │ ├── LeaderboardPage.xaml.cs │ ├── LeagueDetailsPage.xaml │ ├── LeagueDetailsPage.xaml.cs │ ├── MatchResultsFormPage.xaml │ ├── MatchResultsFormPage.xaml.cs │ ├── MembershipDetailsPage.xaml │ ├── MembershipDetailsPage.xaml.cs │ └── WelcomeAuthentication │ │ ├── EnablePushPage.xaml │ │ ├── EnablePushPage.xaml.cs │ │ ├── SetAliasPage.xaml │ │ ├── SetAliasPage.xaml.cs │ │ ├── WelcomeStartPage.xaml │ │ └── WelcomeStartPage.xaml.cs ├── Properties │ └── AssemblyInfo.cs ├── Renderers │ ├── SportEntryRenderer.cs │ └── ThememedNavigationPageRenderer.cs ├── Services │ ├── AzureService.cs │ └── Managers │ │ ├── AthleteManager.cs │ │ ├── BaseManager.cs │ │ ├── ChallengeManager.cs │ │ ├── GameResultManager.cs │ │ ├── LeagueManager.cs │ │ └── MembershipManager.cs ├── Sport.Mobile.Shared.csproj ├── UserControls │ ├── ChallengeCardView.xaml │ ├── ChallengeCardView.xaml.cs │ ├── ChallengeProfileStripView.xaml │ ├── ChallengeProfileStripView.xaml.cs │ ├── CircleView.cs │ ├── GameResultFormView.xaml │ ├── GameResultFormView.xaml.cs │ ├── ImageButton.xaml │ ├── ImageButton.xaml.cs │ ├── LeagueListView.xaml │ ├── LeagueListView.xaml.cs │ ├── ProfileStripView.xaml │ ├── ProfileStripView.xaml.cs │ ├── RankStripView.xaml │ ├── RankStripView.xaml.cs │ ├── RoundedRectangleView.cs │ └── SportButton.cs ├── ViewModels │ ├── AthleteLeaguesViewModel.cs │ ├── AthleteProfileViewModel.cs │ ├── AthleteViewModel.cs │ ├── AuthenticationViewModel.cs │ ├── AvailableLeaguesViewModel.cs │ ├── BaseViewModel.cs │ ├── ChallengeDateViewModel.cs │ ├── ChallengeDetailsViewModel.cs │ ├── ChallengeHistoryViewModel.cs │ ├── ChallengeViewModel.cs │ ├── LeaderboardViewModel.cs │ ├── LeagueDetailsViewModel.cs │ ├── LeagueViewModel.cs │ ├── MatchResultFormViewModel.cs │ ├── MembershipDetailsViewModel.cs │ └── MembershipViewModel.cs └── packages.config ├── Sport.Mobile.Tests ├── AppInitializer.cs ├── Extensions.cs ├── Keys.cs ├── Sport.Mobile.Tests.csproj ├── Tests.cs ├── app.config └── packages.config ├── Sport.Mobile.iOS ├── AppDelegate.cs ├── Assets.xcassets │ ├── AppIcons.appiconset │ │ ├── Contents.json │ │ ├── icon_120.png │ │ ├── icon_167.png │ │ └── icon_180.png │ └── Contents.json ├── Entitlements.plist ├── Info.plist ├── LaunchScreen.storyboard ├── Main.cs ├── Providers │ ├── HUDProvider.cs │ ├── PushNotifications.cs │ └── ToastNotifier.cs ├── Renderers │ ├── SportEntryRenderer.cs │ └── ThemedNavigationRenderer.cs ├── Resources │ ├── APNS │ │ ├── Certificates.p12 │ │ └── aps_development.cer │ ├── gradient_launch.jpg │ ├── ic_add_white@2x.png │ ├── ic_add_white@3x.png │ ├── ic_control_point_white@2x.png │ ├── ic_control_point_white@3x.png │ ├── ic_fencing_white@2x.png │ ├── ic_fencing_white@3x.png │ ├── ic_menu_white@2x.png │ ├── ic_menu_white@3x.png │ ├── ic_missing_photo_white@2x.png │ ├── ic_missing_photo_white@3x.png │ ├── ic_more_vert_white@2x.png │ ├── ic_more_vert_white@3x.png │ ├── ic_notifications_active_white@2x.png │ ├── ic_notifications_active_white@3x.png │ ├── ic_people_gray@2x.png │ ├── ic_people_gray@3x.png │ ├── ic_person_add_white@2x.png │ ├── ic_person_add_white@3x.png │ ├── ic_refresh_white@2x.png │ ├── ic_refresh_white@3x.png │ ├── ic_send_white@2x.png │ ├── ic_send_white@3x.png │ ├── ic_thumb_down_white@2x.png │ ├── ic_thumb_down_white@3x.png │ ├── ic_thumb_up_white@2x.png │ ├── ic_thumb_up_white@3x.png │ ├── ic_time_gray@2x.png │ ├── ic_time_gray@3x.png │ ├── ic_trending_up_white@2x.png │ ├── ic_trending_up_white@3x.png │ ├── ic_trophy_gray@2x.png │ ├── ic_trophy_gray@3x.png │ ├── ic_trophy_white@2x.png │ ├── ic_trophy_white@3x.png │ ├── icon_300.png │ ├── logos.png │ ├── no_pic.png │ ├── transparent@2x.png │ └── transparent@3x.png ├── Sport.Mobile.iOS.csproj ├── app.config ├── linker.xml └── packages.config ├── Sport.Mobile.sln ├── Sport.Service.sln ├── Sport.Service ├── App_Start │ └── Startup.MobileApp.cs ├── Constants.cs ├── Controllers │ ├── AthleteController.cs │ ├── AuthenticationController.cs │ ├── ChallengeController.cs │ ├── GameResultController.cs │ ├── LeagueController.cs │ ├── MembershipController.cs │ └── NotificationController.cs ├── DataObjects │ ├── DataObjects │ │ ├── Athlete.cs │ │ ├── Challenge.cs │ │ ├── GameResult.cs │ │ ├── League.cs │ │ └── Membership.cs │ └── DataTransferObjects │ │ ├── AthleteDto.cs │ │ ├── ChallengeDto.cs │ │ ├── GameResultDto.cs │ │ ├── LeagueDto.cs │ │ └── MembershipDto.cs ├── Extensions.cs ├── Models │ └── MobileServiceContext.cs ├── Properties │ └── AssemblyInfo.cs ├── SharedExtensions.cs ├── Sport.Service.csproj ├── Startup.cs ├── Web.Debug.config ├── Web.Release.config ├── Web.config └── packages.config └── SupportingProjects └── iOS └── MessageBarLib ├── MessageBarLib.csproj ├── MessageBarLib.sln ├── MessageBarManager.cs ├── MessageBarMessageType.cs ├── MessageBarStyleSheet.cs ├── MessageBarViewController.cs ├── MessageView.cs └── MessageWindow.cs /Components/GCMClient-1.0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xamarin/Sport/538228054382f47467e6f7322027829fdeccbfb3/Components/GCMClient-1.0.png -------------------------------------------------------------------------------- /Components/GCMClient-1.0/component/Details.md: -------------------------------------------------------------------------------- 1 | Google Cloud Messaging Client 2 | ============================= 3 | 4 | GCM (Google Cloud Messaging) is a component that makes getting your Xamarin.Android app setup to receive Push Notifications quickly and easily! 5 | 6 | 7 | 8 | Registering for GCM Push Notifications 9 | -------------------------------------- 10 | 11 | ```csharp 12 | //Check to see that GCM is supported and that the manifest has the correct information 13 | GcmClient.CheckDevice(this); 14 | GcmClient.CheckManifest(this); 15 | 16 | //Call to Register the device for Push Notifications 17 | GcmClient.Register(this, GcmBroadcastReceiver.SENDER_IDS); 18 | ``` 19 | 20 | Service Implementation 21 | ---------------------- 22 | Add these classes to your own project, and be sure to update the SENDER_IDS with your own Sender ID(s) from your Google API Console Project(s): 23 | 24 | ```csharp 25 | [BroadcastReceiver(Permission=Constants.PERMISSION_GCM_INTENTS)] 26 | [IntentFilter(new string[] { Constants.INTENT_FROM_GCM_MESSAGE }, 27 | Categories = new string[] { "@PACKAGE_NAME@" })] 28 | [IntentFilter(new string[] { Constants.INTENT_FROM_GCM_REGISTRATION_CALLBACK }, 29 | Categories = new string[] { "@PACKAGE_NAME@" })] 30 | [IntentFilter(new string[] { Constants.INTENT_FROM_GCM_LIBRARY_RETRY }, 31 | Categories = new string[] { "@PACKAGE_NAME@" })] 32 | public class GcmBroadcastReceiver : GcmBroadcastReceiverBase 33 | { 34 | //IMPORTANT: Change this to your own Sender ID! 35 | //The SENDER_ID is your Google API Console App Project Number 36 | public static string[] SENDER_IDS = new string[] {"697360970929"}; 37 | } 38 | 39 | [Service] //Must use the service tag 40 | public class GcmService : GcmServiceBase 41 | { 42 | public GcmService() : base(GcmBroadcastReceiver.SENDER_IDS) { } 43 | 44 | protected override void OnRegistered (Context context, string registrationId) 45 | { 46 | //Receive registration Id for sending GCM Push Notifications to 47 | } 48 | 49 | protected override void OnUnRegistered (Context context, string registrationId) 50 | { 51 | //Receive notice that the app no longer wants notifications 52 | } 53 | 54 | protected override void OnMessage (Context context, Intent intent) 55 | { 56 | //Push Notification arrived - print out the keys/values 57 | if (intent == null || intent.Extras == null) 58 | foreach (var key in intent.Extras.KeySet()) 59 | Console.WriteLine("Key: {0}, Value: {1}"); 60 | } 61 | 62 | protected override bool OnRecoverableError (Context context, string errorId) 63 | { 64 | //Some recoverable error happened 65 | } 66 | 67 | protected override void OnError (Context context, string errorId) 68 | { 69 | //Some more serious error happened 70 | } 71 | } 72 | ``` 73 | 74 | Changes 75 | ------- 76 | v1.0 77 | - First release 78 | 79 | -------------------------------------------------------------------------------- /Components/GCMClient-1.0/component/GettingStarted.md: -------------------------------------------------------------------------------- 1 | Google Cloud Messaging Client 2 | ============================= 3 | 4 | GCM (Google Cloud Messaging) is a component that makes getting your Xamarin.Android app setup to receive Push Notifications quickly and easily! 5 | 6 | 7 | Registering for GCM Push Notifications 8 | -------------------------------------- 9 | 10 | ```csharp 11 | //Check to see that GCM is supported and that the manifest has the correct information 12 | GcmClient.CheckDevice(this); 13 | GcmClient.CheckManifest(this); 14 | 15 | //Call to Register the device for Push Notifications 16 | GcmClient.Register(this, GcmBroadcastReceiver.SENDER_IDS); 17 | ``` 18 | 19 | Service Implementation 20 | ---------------------- 21 | Add these classes to your own project, and be sure to update the SENDER_IDS with your own Sender ID(s) from your Google API Console Project(s): 22 | 23 | ```csharp 24 | [BroadcastReceiver(Permission=Constants.PERMISSION_GCM_INTENTS)] 25 | [IntentFilter(new string[] { Constants.INTENT_FROM_GCM_MESSAGE }, 26 | Categories = new string[] { "@PACKAGE_NAME@" })] 27 | [IntentFilter(new string[] { Constants.INTENT_FROM_GCM_REGISTRATION_CALLBACK }, 28 | Categories = new string[] { "@PACKAGE_NAME@" })] 29 | [IntentFilter(new string[] { Constants.INTENT_FROM_GCM_LIBRARY_RETRY }, 30 | Categories = new string[] { "@PACKAGE_NAME@" })] 31 | public class GcmBroadcastReceiver : GcmBroadcastReceiverBase 32 | { 33 | //IMPORTANT: Change this to your own Sender ID! 34 | //The SENDER_ID is your Google API Console App Project Number 35 | public static string[] SENDER_IDS = new string[] {"697360970929"}; 36 | } 37 | 38 | [Service] //Must use the service tag 39 | public class GcmService : GcmServiceBase 40 | { 41 | public GcmService() : base(GcmBroadcastReceiver.SENDER_IDS) { } 42 | 43 | protected override void OnRegistered (Context context, string registrationId) 44 | { 45 | //Receive registration Id for sending GCM Push Notifications to 46 | } 47 | 48 | protected override void OnUnRegistered (Context context, string registrationId) 49 | { 50 | //Receive notice that the app no longer wants notifications 51 | } 52 | 53 | protected override void OnMessage (Context context, Intent intent) 54 | { 55 | //Push Notification arrived - print out the keys/values 56 | if (intent == null || intent.Extras == null) 57 | foreach (var key in intent.Extras.KeySet()) 58 | Console.WriteLine("Key: {0}, Value: {1}"); 59 | } 60 | 61 | protected override bool OnRecoverableError (Context context, string errorId) 62 | { 63 | //Some recoverable error happened 64 | } 65 | 66 | protected override void OnError (Context context, string errorId) 67 | { 68 | //Some more serious error happened 69 | } 70 | } 71 | ``` -------------------------------------------------------------------------------- /Components/GCMClient-1.0/component/Manifest.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | Google Cloud Messaging Client 4 | Redth 5 | https://github.com/Redth/GCM.Client 6 | https://github.com/Redth/GCM.Client 7 | https://github.com/Redth/GCM.Client 8 | 1.0 9 | Add Google Cloud Messaging to your Xamarin.Android application 10 | 11 | 12 | GCM Client Android Sample. 13 | Demonstrates how to implement the Google Cloud Messaging Client in an Android application 14 | 15 | 16 | -------------------------------------------------------------------------------- /Components/GCMClient-1.0/component/icons/GCMClient_128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xamarin/Sport/538228054382f47467e6f7322027829fdeccbfb3/Components/GCMClient-1.0/component/icons/GCMClient_128x128.png -------------------------------------------------------------------------------- /Components/GCMClient-1.0/component/icons/GCMClient_512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xamarin/Sport/538228054382f47467e6f7322027829fdeccbfb3/Components/GCMClient-1.0/component/icons/GCMClient_512x512.png -------------------------------------------------------------------------------- /Components/GCMClient-1.0/lib/android/GCM.Client.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xamarin/Sport/538228054382f47467e6f7322027829fdeccbfb3/Components/GCMClient-1.0/lib/android/GCM.Client.dll -------------------------------------------------------------------------------- /Components/GCMClient-1.0/samples/Sample/Assets/AboutAssets.txt: -------------------------------------------------------------------------------- 1 | Any raw assets you want to be deployed with your application can be placed in 2 | this directory (and child directories) and given a Build Action of "AndroidAsset". 3 | 4 | These files will be deployed with your package and will be accessible using Android's 5 | AssetManager, like this: 6 | 7 | public class ReadAsset : Activity 8 | { 9 | protected override void OnCreate (Bundle bundle) 10 | { 11 | base.OnCreate (bundle); 12 | 13 | InputStream input = Assets.Open ("my_asset.txt"); 14 | } 15 | } 16 | 17 | Additionally, some Android functions will automatically load asset files: 18 | 19 | Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf"); 20 | -------------------------------------------------------------------------------- /Components/GCMClient-1.0/samples/Sample/Properties/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Components/GCMClient-1.0/samples/Sample/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using Android.App; 4 | 5 | // Information about this assembly is defined by the following attributes. 6 | // Change them to the values specific to your project. 7 | [assembly: AssemblyTitle ("Sample")] 8 | [assembly: AssemblyDescription ("")] 9 | [assembly: AssemblyConfiguration ("")] 10 | [assembly: AssemblyCompany ("")] 11 | [assembly: AssemblyProduct ("")] 12 | [assembly: AssemblyCopyright ("jonathan")] 13 | [assembly: AssemblyTrademark ("")] 14 | [assembly: AssemblyCulture ("")] 15 | // The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". 16 | // The form "{Major}.{Minor}.*" will automatically update the build and revision, 17 | // and "{Major}.{Minor}.{Build}.*" will update just the revision. 18 | [assembly: AssemblyVersion ("1.0.0")] 19 | // The following attributes are used to specify the signing key for the assembly, 20 | // if desired. See the Mono documentation for more information about signing. 21 | //[assembly: AssemblyDelaySign(false)] 22 | //[assembly: AssemblyKeyFile("")] 23 | 24 | -------------------------------------------------------------------------------- /Components/GCMClient-1.0/samples/Sample/Resources/AboutResources.txt: -------------------------------------------------------------------------------- 1 | Images, layout descriptions, binary blobs and string dictionaries can be included 2 | in your application as resource files. Various Android APIs are designed to 3 | operate on the resource IDs instead of dealing with images, strings or binary blobs 4 | directly. 5 | 6 | For example, a sample Android app that contains a user interface layout (main.axml), 7 | an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png) 8 | would keep its resources in the "Resources" directory of the application: 9 | 10 | Resources/ 11 | drawable/ 12 | icon.png 13 | 14 | layout/ 15 | main.axml 16 | 17 | values/ 18 | strings.xml 19 | 20 | In order to get the build system to recognize Android resources, set the build action to 21 | "AndroidResource". The native Android APIs do not operate directly with filenames, but 22 | instead operate on resource IDs. When you compile an Android application that uses resources, 23 | the build system will package the resources for distribution and generate a class called "R" 24 | (this is an Android convention) that contains the tokens for each one of the resources 25 | included. For example, for the above Resources layout, this is what the R class would expose: 26 | 27 | public class R { 28 | public class drawable { 29 | public const int icon = 0x123; 30 | } 31 | 32 | public class layout { 33 | public const int main = 0x456; 34 | } 35 | 36 | public class strings { 37 | public const int first_string = 0xabc; 38 | public const int second_string = 0xbcd; 39 | } 40 | } 41 | 42 | You would then use R.drawable.icon to reference the drawable/icon.png file, or R.layout.main 43 | to reference the layout/main.axml file, or R.strings.first_string to reference the first 44 | string in the dictionary file values/strings.xml. 45 | -------------------------------------------------------------------------------- /Components/GCMClient-1.0/samples/Sample/Resources/drawable/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xamarin/Sport/538228054382f47467e6f7322027829fdeccbfb3/Components/GCMClient-1.0/samples/Sample/Resources/drawable/Icon.png -------------------------------------------------------------------------------- /Components/GCMClient-1.0/samples/Sample/Resources/layout/Main.axml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 12 | 18 | 23 |