From 7ca132879637c2207aa2fb8344ec0155fa3cfb3a Mon Sep 17 00:00:00 2001 From: fuse314 Date: Sat, 20 Jul 2019 14:14:40 +0200 Subject: [PATCH] created app, add Intent-Filter for default main launcher --- README.md | 5 +- dashboard.sln | 43 ++++++++ dashboard/Assets/AboutAssets.txt | 19 ++++ dashboard/MainActivity.cs | 28 +++++ dashboard/Properties/AndroidManifest.xml | 6 ++ dashboard/Properties/AssemblyInfo.cs | 27 +++++ dashboard/Resources/AboutResources.txt | 44 ++++++++ dashboard/Resources/Resource.designer.cs | 109 ++++++++++++++++++++ dashboard/Resources/layout/Main.axml | 4 + dashboard/Resources/mipmap-hdpi/Icon.png | Bin 0 -> 3702 bytes dashboard/Resources/mipmap-mdpi/Icon.png | Bin 0 -> 2366 bytes dashboard/Resources/mipmap-xhdpi/Icon.png | Bin 0 -> 4827 bytes dashboard/Resources/mipmap-xxhdpi/Icon.png | Bin 0 -> 8420 bytes dashboard/Resources/mipmap-xxxhdpi/Icon.png | Bin 0 -> 11483 bytes dashboard/Resources/values/Strings.xml | 4 + dashboard/dashboard.csproj | 73 +++++++++++++ 16 files changed, 360 insertions(+), 2 deletions(-) create mode 100644 dashboard.sln create mode 100644 dashboard/Assets/AboutAssets.txt create mode 100644 dashboard/MainActivity.cs create mode 100644 dashboard/Properties/AndroidManifest.xml create mode 100644 dashboard/Properties/AssemblyInfo.cs create mode 100644 dashboard/Resources/AboutResources.txt create mode 100644 dashboard/Resources/Resource.designer.cs create mode 100644 dashboard/Resources/layout/Main.axml create mode 100644 dashboard/Resources/mipmap-hdpi/Icon.png create mode 100644 dashboard/Resources/mipmap-mdpi/Icon.png create mode 100644 dashboard/Resources/mipmap-xhdpi/Icon.png create mode 100644 dashboard/Resources/mipmap-xxhdpi/Icon.png create mode 100644 dashboard/Resources/mipmap-xxxhdpi/Icon.png create mode 100644 dashboard/Resources/values/Strings.xml create mode 100644 dashboard/dashboard.csproj diff --git a/README.md b/README.md index 2582fde..9996c29 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ -# dashboard-android-app +# Mayer dashboard -xamarin.android app for tolino \ No newline at end of file +Android App for displaying the dashboard from mayer.life +App created for the tolino e-book reader \ No newline at end of file diff --git a/dashboard.sln b/dashboard.sln new file mode 100644 index 0000000..d35a527 --- /dev/null +++ b/dashboard.sln @@ -0,0 +1,43 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "dashboard", "dashboard\dashboard.csproj", "{5FCA6C48-A707-4298-A32E-45E47EC31451}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {5FCA6C48-A707-4298-A32E-45E47EC31451}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5FCA6C48-A707-4298-A32E-45E47EC31451}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5FCA6C48-A707-4298-A32E-45E47EC31451}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5FCA6C48-A707-4298-A32E-45E47EC31451}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(MonoDevelopProperties) = preSolution + Policies = $0 + $0.DotNetNamingPolicy = $1 + $1.DirectoryNamespaceAssociation = PrefixedHierarchical + $0.TextStylePolicy = $2 + $2.inheritsSet = null + $2.scope = text/x-csharp + $0.CSharpFormattingPolicy = $3 + $3.scope = text/x-csharp + $0.TextStylePolicy = $4 + $4.FileWidth = 80 + $4.TabsToSpaces = True + $4.scope = text/plain + $0.TextStylePolicy = $5 + $5.inheritsSet = null + $5.scope = application/xml + $0.XmlFormattingPolicy = $6 + $6.scope = application/xml + $0.TextStylePolicy = $7 + $7.inheritsSet = null + $7.scope = application/android+xml + $0.XmlFormattingPolicy = $8 + $8.inheritsSet = null + $8.scope = application/android+xml + $0.VersionControlPolicy = $9 + EndGlobalSection +EndGlobal diff --git a/dashboard/Assets/AboutAssets.txt b/dashboard/Assets/AboutAssets.txt new file mode 100644 index 0000000..a9b0638 --- /dev/null +++ b/dashboard/Assets/AboutAssets.txt @@ -0,0 +1,19 @@ +Any raw assets you want to be deployed with your application can be placed in +this directory (and child directories) and given a Build Action of "AndroidAsset". + +These files will be deployed with your package and will be accessible using Android's +AssetManager, like this: + +public class ReadAsset : Activity +{ + protected override void OnCreate (Bundle bundle) + { + base.OnCreate (bundle); + + InputStream input = Assets.Open ("my_asset.txt"); + } +} + +Additionally, some Android functions will automatically load asset files: + +Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf"); diff --git a/dashboard/MainActivity.cs b/dashboard/MainActivity.cs new file mode 100644 index 0000000..45f5abf --- /dev/null +++ b/dashboard/MainActivity.cs @@ -0,0 +1,28 @@ +using Android.App; +using Android.OS; +using Android.Webkit; + +namespace dashboard +{ + [Activity(Label = "Mayer Dashboard", MainLauncher = true, Icon = "@mipmap/icon", Theme = "@android:style/Theme.Black.NoTitleBar.Fullscreen", LaunchMode = Android.Content.PM.LaunchMode.SingleTask)] + [IntentFilter(new[] { "android.intent.action.MAIN" }, Categories = new[] { "android.intent.category.HOME", "android.intent.category.DEFAULT" })] + public class MainActivity : Activity + { + protected override void OnCreate(Bundle savedInstanceState) + { + base.OnCreate(savedInstanceState); + SetContentView(Resource.Layout.Main); + + var webView = FindViewById(Resource.Id.webView); + webView.Settings.JavaScriptEnabled = true; + + // Use subclassed WebViewClient to hide default chrome (url bar and stuff) + webView.SetWebViewClient(new HybridWebViewClient()); + + webView.LoadUrl("https://mayer.life/dashboard/"); + } + + private class HybridWebViewClient : WebViewClient { } + } +} + diff --git a/dashboard/Properties/AndroidManifest.xml b/dashboard/Properties/AndroidManifest.xml new file mode 100644 index 0000000..e7dd192 --- /dev/null +++ b/dashboard/Properties/AndroidManifest.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/dashboard/Properties/AssemblyInfo.cs b/dashboard/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..e4bb019 --- /dev/null +++ b/dashboard/Properties/AssemblyInfo.cs @@ -0,0 +1,27 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using Android.App; + +// Information about this assembly is defined by the following attributes. +// Change them to the values specific to your project. + +[assembly: AssemblyTitle("dashboard")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". +// The form "{Major}.{Minor}.*" will automatically update the build and revision, +// and "{Major}.{Minor}.{Build}.*" will update just the revision. + +[assembly: AssemblyVersion("1.0.0")] + +// The following attributes are used to specify the signing key for the assembly, +// if desired. See the Mono documentation for more information about signing. + +//[assembly: AssemblyDelaySign(false)] +//[assembly: AssemblyKeyFile("")] diff --git a/dashboard/Resources/AboutResources.txt b/dashboard/Resources/AboutResources.txt new file mode 100644 index 0000000..10f52d4 --- /dev/null +++ b/dashboard/Resources/AboutResources.txt @@ -0,0 +1,44 @@ +Images, layout descriptions, binary blobs and string dictionaries can be included +in your application as resource files. Various Android APIs are designed to +operate on the resource IDs instead of dealing with images, strings or binary blobs +directly. + +For example, a sample Android app that contains a user interface layout (main.axml), +an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png) +would keep its resources in the "Resources" directory of the application: + +Resources/ + drawable/ + icon.png + + layout/ + main.axml + + values/ + strings.xml + +In order to get the build system to recognize Android resources, set the build action to +"AndroidResource". The native Android APIs do not operate directly with filenames, but +instead operate on resource IDs. When you compile an Android application that uses resources, +the build system will package the resources for distribution and generate a class called "R" +(this is an Android convention) that contains the tokens for each one of the resources +included. For example, for the above Resources layout, this is what the R class would expose: + +public class R { + public class drawable { + public const int icon = 0x123; + } + + public class layout { + public const int main = 0x456; + } + + public class strings { + public const int first_string = 0xabc; + public const int second_string = 0xbcd; + } +} + +You would then use R.drawable.icon to reference the drawable/icon.png file, or R.layout.main +to reference the layout/main.axml file, or R.strings.first_string to reference the first +string in the dictionary file values/strings.xml. diff --git a/dashboard/Resources/Resource.designer.cs b/dashboard/Resources/Resource.designer.cs new file mode 100644 index 0000000..3d7798b --- /dev/null +++ b/dashboard/Resources/Resource.designer.cs @@ -0,0 +1,109 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +[assembly: global::Android.Runtime.ResourceDesignerAttribute("dashboard.Resource", IsApplication=true)] + +namespace dashboard +{ + + + [System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")] + public partial class Resource + { + + static Resource() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + public static void UpdateIdValues() + { + } + + public partial class Attribute + { + + static Attribute() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Attribute() + { + } + } + + public partial class Id + { + + // aapt resource value: 0x7f050000 + public const int webView = 2131034112; + + static Id() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Id() + { + } + } + + public partial class Layout + { + + // aapt resource value: 0x7f030000 + public const int Main = 2130903040; + + static Layout() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Layout() + { + } + } + + public partial class Mipmap + { + + // aapt resource value: 0x7f020000 + public const int Icon = 2130837504; + + static Mipmap() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Mipmap() + { + } + } + + public partial class String + { + + // aapt resource value: 0x7f040000 + public const int app_name = 2130968576; + + static String() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private String() + { + } + } + } +} +#pragma warning restore 1591 diff --git a/dashboard/Resources/layout/Main.axml b/dashboard/Resources/layout/Main.axml new file mode 100644 index 0000000..6295dba --- /dev/null +++ b/dashboard/Resources/layout/Main.axml @@ -0,0 +1,4 @@ + + + + diff --git a/dashboard/Resources/mipmap-hdpi/Icon.png b/dashboard/Resources/mipmap-hdpi/Icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2a4cce8f960eb545960eaecfb4539956965ef05a GIT binary patch literal 3702 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 literal 0 HcmV?d00001 diff --git a/dashboard/Resources/values/Strings.xml b/dashboard/Resources/values/Strings.xml new file mode 100644 index 0000000..0432fab --- /dev/null +++ b/dashboard/Resources/values/Strings.xml @@ -0,0 +1,4 @@ + + + Mayer Dashboard + diff --git a/dashboard/dashboard.csproj b/dashboard/dashboard.csproj new file mode 100644 index 0000000..90d567f --- /dev/null +++ b/dashboard/dashboard.csproj @@ -0,0 +1,73 @@ + + + + Debug + AnyCPU + {5FCA6C48-A707-4298-A32E-45E47EC31451} + {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + dashboard + dashboard + v9.0 + True + Resources\Resource.designer.cs + Resource + Properties\AndroidManifest.xml + Resources + Assets + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + None + + + true + pdbonly + true + bin\Release + prompt + 4 + true + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file