Skip to content

Commit 1d62265

Browse files
committed
[ADD] Added sample that uses published package to test that it is valid.
1 parent 8adc12f commit 1d62265

30 files changed

+6381
-0
lines changed
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
namespace AndroidIconicsSample.Adapter
2+
{
3+
using System.Collections.Generic;
4+
using Android.Support.V7.Widget;
5+
using Android.Views;
6+
using Android.Widget;
7+
using Com.Mikepenz.Iconics.View;
8+
9+
public class IconAdapter : RecyclerView.Adapter
10+
{
11+
private List<string> icons;
12+
private int rowLayout;
13+
14+
public IconAdapter(List<string> icons, int rowLayout)
15+
{
16+
this.icons = icons;
17+
this.rowLayout = rowLayout;
18+
}
19+
20+
public void setIcons(List<string> icons)
21+
{
22+
this.icons.AddRange(icons);
23+
this.NotifyItemRangeChanged(0, icons.Count - 1);
24+
}
25+
26+
public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
27+
{
28+
var icon = this.icons[position];
29+
var viewHolder = holder as CustomViewHolder;
30+
31+
viewHolder.Image.SetIcon(icon);
32+
viewHolder.Name.Text = icon;
33+
}
34+
35+
public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
36+
{
37+
View v = LayoutInflater.From(parent.Context).Inflate(this.rowLayout, parent, false);
38+
return new CustomViewHolder(v);
39+
}
40+
41+
public override int ItemCount
42+
{
43+
get
44+
{
45+
return this.icons.Count;
46+
}
47+
}
48+
}
49+
50+
public class CustomViewHolder : RecyclerView.ViewHolder
51+
{
52+
public TextView Name;
53+
public IconicsImageView Image;
54+
55+
public CustomViewHolder(View itemView)
56+
: base(itemView)
57+
{
58+
this.Name = itemView.FindViewById<TextView>(Resource.Id.name);
59+
this.Image = itemView.FindViewById<IconicsImageView>(Resource.Id.icon);
60+
}
61+
62+
}
63+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio 2012
4+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AndroidIconicsSample-Nuget", "AndroidIconicsSample-Nuget.csproj", "{5F7BBEC6-975D-4695-B111-783DD34D56D3}"
5+
EndProject
6+
Global
7+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
8+
Debug|Any CPU = Debug|Any CPU
9+
Release|Any CPU = Release|Any CPU
10+
EndGlobalSection
11+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
12+
{5F7BBEC6-975D-4695-B111-783DD34D56D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
13+
{5F7BBEC6-975D-4695-B111-783DD34D56D3}.Debug|Any CPU.Build.0 = Debug|Any CPU
14+
{5F7BBEC6-975D-4695-B111-783DD34D56D3}.Release|Any CPU.ActiveCfg = Release|Any CPU
15+
{5F7BBEC6-975D-4695-B111-783DD34D56D3}.Release|Any CPU.Build.0 = Release|Any CPU
16+
EndGlobalSection
17+
EndGlobal
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<PropertyGroup>
4+
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
5+
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
6+
<ProjectTypeGuids>{EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
7+
<ProjectGuid>{5F7BBEC6-975D-4695-B111-783DD34D56D3}</ProjectGuid>
8+
<OutputType>Library</OutputType>
9+
<RootNamespace>AndroidIconicsSample</RootNamespace>
10+
<AndroidApplication>True</AndroidApplication>
11+
<AndroidResgenFile>Resources\Resource.designer.cs</AndroidResgenFile>
12+
<AndroidResgenClass>Resource</AndroidResgenClass>
13+
<MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix>
14+
<MonoAndroidAssetsPrefix>Assets</MonoAndroidAssetsPrefix>
15+
<AndroidUseLatestPlatformSdk>True</AndroidUseLatestPlatformSdk>
16+
<AssemblyName>AndroidIconicsSample</AssemblyName>
17+
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
18+
<TargetFrameworkVersion>v5.0</TargetFrameworkVersion>
19+
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
20+
<RestorePackages>true</RestorePackages>
21+
<AndroidUseSharedRuntime>false</AndroidUseSharedRuntime>
22+
</PropertyGroup>
23+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
24+
<DebugSymbols>true</DebugSymbols>
25+
<DebugType>full</DebugType>
26+
<Optimize>false</Optimize>
27+
<OutputPath>bin\Debug</OutputPath>
28+
<DefineConstants>DEBUG;</DefineConstants>
29+
<ErrorReport>prompt</ErrorReport>
30+
<WarningLevel>4</WarningLevel>
31+
<ConsolePause>false</ConsolePause>
32+
<AndroidLinkMode>None</AndroidLinkMode>
33+
<EmbedAssembliesIntoApk>True</EmbedAssembliesIntoApk>
34+
<AndroidSupportedAbis>armeabi;armeabi-v7a;x86;arm64-v8a;x86_64</AndroidSupportedAbis>
35+
</PropertyGroup>
36+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
37+
<DebugType>full</DebugType>
38+
<Optimize>true</Optimize>
39+
<OutputPath>bin\Release</OutputPath>
40+
<ErrorReport>prompt</ErrorReport>
41+
<WarningLevel>4</WarningLevel>
42+
<ConsolePause>false</ConsolePause>
43+
<AndroidSupportedAbis>armeabi;armeabi-v7a;x86;arm64-v8a;x86_64</AndroidSupportedAbis>
44+
</PropertyGroup>
45+
<ItemGroup>
46+
<Reference Include="System" />
47+
<Reference Include="System.Xml" />
48+
<Reference Include="System.Core" />
49+
<Reference Include="Mono.Android" />
50+
<Reference Include="material-drawer-3.0.3">
51+
<HintPath>Libs\material-drawer-3.0.3.dll</HintPath>
52+
</Reference>
53+
<Reference Include="Xamarin.Android.Support.v4">
54+
<HintPath>..\..\packages\Xamarin.Android.Support.v4.22.1.1.1\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll</HintPath>
55+
</Reference>
56+
<Reference Include="Xamarin.Android.Support.v7.AppCompat">
57+
<HintPath>..\..\packages\Xamarin.Android.Support.v7.AppCompat.22.1.1.1\lib\MonoAndroid403\Xamarin.Android.Support.v7.AppCompat.dll</HintPath>
58+
</Reference>
59+
<Reference Include="Xamarin.Android.Support.v7.CardView">
60+
<HintPath>..\..\packages\Xamarin.Android.Support.v7.CardView.22.1.1.1\lib\MonoAndroid403\Xamarin.Android.Support.v7.CardView.dll</HintPath>
61+
</Reference>
62+
<Reference Include="Xamarin.Android.Support.v7.RecyclerView">
63+
<HintPath>..\..\packages\Xamarin.Android.Support.v7.RecyclerView.22.1.1.1\lib\MonoAndroid403\Xamarin.Android.Support.v7.RecyclerView.dll</HintPath>
64+
</Reference>
65+
<Reference Include="android-iconics-1.0.2">
66+
<HintPath>packages\Mikepenz.Android.Iconics.Xamarin.Binding.1.0.2\lib\MonoAndroid\android-iconics-1.0.2.dll</HintPath>
67+
</Reference>
68+
</ItemGroup>
69+
<ItemGroup>
70+
<Compile Include="Properties\AssemblyInfo.cs" />
71+
<Compile Include="MainActivity.cs" />
72+
<Compile Include="Adapter\IconAdapter.cs" />
73+
<Compile Include="Resources\Resource.designer.cs" />
74+
<Compile Include="Typeface\CustomFont.cs" />
75+
</ItemGroup>
76+
<ItemGroup>
77+
<None Include="Properties\AndroidManifest.xml">
78+
<SubType>Designer</SubType>
79+
</None>
80+
<AndroidResource Include="Resources\drawable-v21\button_rect_list_normal.xml">
81+
<SubType>Designer</SubType>
82+
</AndroidResource>
83+
<AndroidResource Include="Resources\drawable\button_rect_list_normal.xml" />
84+
<AndroidResource Include="Resources\values\colors.xml" />
85+
<AndroidResource Include="Resources\menu\menu_main.xml">
86+
<SubType>Designer</SubType>
87+
</AndroidResource>
88+
<AndroidResource Include="Resources\values-v21\styles.xml" />
89+
<AndroidResource Include="Resources\values-w820dp\dimens.xml" />
90+
<AndroidResource Include="Resources\drawable-hdpi\ic_launcher.png" />
91+
<AndroidResource Include="Resources\drawable-xhdpi\ic_launcher.png" />
92+
<AndroidResource Include="Resources\drawable-xxhdpi\ic_launcher.png" />
93+
<AndroidResource Include="Resources\drawable-xxxhdpi\ic_launcher.png" />
94+
<AndroidResource Include="Resources\layout\activity_main.xml" />
95+
<AndroidResource Include="Resources\layout\activity_playground.xml">
96+
<SubType>Designer</SubType>
97+
</AndroidResource>
98+
<AndroidResource Include="Resources\layout\icons_fragment.xml" />
99+
<AndroidResource Include="Resources\layout\row_icon.xml" />
100+
<AndroidResource Include="Resources\values\dimens.xml" />
101+
<AndroidResource Include="Resources\values\styles.xml" />
102+
<Compile Include="PlaygroundActivity.cs" />
103+
<Compile Include="CustomApplication.cs" />
104+
<AndroidResource Include="Resources\values\strings.xml">
105+
<SubType>Designer</SubType>
106+
</AndroidResource>
107+
<None Include="Libs\material-drawer-3.0.3.dll" />
108+
<None Include="packages.config" />
109+
</ItemGroup>
110+
<Import Project="$(MSBuildExtensionsPath)\Novell\Novell.MonoDroid.CSharp.targets" />
111+
<ItemGroup>
112+
<Folder Include="Resources\drawable-mdpi\" />
113+
<Folder Include="Assets\fonts\" />
114+
</ItemGroup>
115+
<ItemGroup>
116+
<Compile Include="IconsFragment.cs" />
117+
</ItemGroup>
118+
<ItemGroup>
119+
<AndroidAsset Include="Assets\fonts\fontawesome-webfont-4.3.0.ttf" />
120+
<AndroidAsset Include="Assets\fonts\google_material_design.ttf" />
121+
<AndroidAsset Include="Assets\fonts\materialdesignicons-webfont.ttf" />
122+
<AndroidAsset Include="Assets\fonts\meteocons.ttf" />
123+
<AndroidAsset Include="Assets\fonts\octicons.ttf" />
124+
<AndroidAsset Include="Assets\fonts\fontello.ttf" />
125+
</ItemGroup>
126+
</Project>
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
namespace AndroidIconicsSample
2+
{
3+
using System;
4+
using Android.App;
5+
using Android.Runtime;
6+
using AndroidIconicsSample.Typeface;
7+
using Com.Mikepenz.Iconics;
8+
using Com.Mikepenz.Community_material_typeface_library;
9+
using Com.Mikepenz.Meteocons_typeface_library;
10+
using Com.Mikepenz.Octicons_typeface_library;
11+
12+
[Application(Theme = "@style/AppTheme")]
13+
public class CustomApplication : Application
14+
{
15+
public CustomApplication(IntPtr handle, JniHandleOwnership ownerShip)
16+
: base(handle, ownerShip)
17+
{
18+
Iconics.RegisterFont(new Meteoconcs());
19+
Iconics.RegisterFont(new Octicons());
20+
Iconics.RegisterFont(new CommunityMaterial());
21+
Iconics.RegisterFont(new CustomFont());
22+
}
23+
24+
public override void OnCreate()
25+
{
26+
base.OnCreate();
27+
}
28+
}
29+
}
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
namespace AndroidIconicsSample
2+
{
3+
using System.Collections.Generic;
4+
using Android.OS;
5+
using Android.Support.V4.App;
6+
using Android.Support.V7.Widget;
7+
using Android.Views;
8+
using AndroidIconicsSample.Adapter;
9+
using Com.Mikepenz.Iconics;
10+
11+
public class IconsFragment : Fragment
12+
{
13+
const string FontName = "FONT_NAME";
14+
readonly List<string> icons = new List<string>();
15+
16+
public static IconsFragment NewInstance(string fontName)
17+
{
18+
Bundle bundle = new Bundle();
19+
20+
IconsFragment fragment = new IconsFragment();
21+
bundle.PutString(FontName, fontName);
22+
23+
fragment.Arguments = bundle;
24+
25+
return fragment;
26+
}
27+
28+
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
29+
{
30+
return inflater.Inflate(Resource.Layout.icons_fragment, null, false);
31+
}
32+
33+
public override void OnViewCreated(View view, Bundle savedInstanceState)
34+
{
35+
base.OnViewCreated(view, savedInstanceState);
36+
37+
RecyclerView mRecyclerView = view.FindViewById<RecyclerView>(Resource.Id.list);
38+
mRecyclerView.SetLayoutManager(new GridLayoutManager(this.Activity, 2));
39+
//animator not yet working
40+
// mRecyclerView.SetItemAnimator(new SlideInLeftAnimator()); TODO:
41+
IconAdapter adapter = new IconAdapter(new List<string>(), Resource.Layout.row_icon);
42+
mRecyclerView.SetAdapter(adapter);
43+
44+
if (this.Arguments != null)
45+
{
46+
var fontName = this.Arguments.GetString(FontName);
47+
48+
foreach (var iTypeface in Iconics.RegisteredFonts)
49+
{
50+
if (iTypeface.FontName.Equals(fontName))
51+
{
52+
if (iTypeface.Icons != null)
53+
{
54+
foreach (var icon in iTypeface.Icons)
55+
{
56+
this.icons.Add(icon);
57+
}
58+
adapter.setIcons(this.icons);
59+
break;
60+
}
61+
}
62+
}
63+
}
64+
}
65+
}
66+
}
Binary file not shown.

0 commit comments

Comments
 (0)