Add project files.
|
@ -0,0 +1,115 @@
|
||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 16
|
||||||
|
VisualStudioVersion = 16.0.31129.286
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "iElection", "iElection\iElection\iElection.csproj", "{A14AC0C3-7B68-4CDA-9F5E-A77B93A0C42C}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "iElection.Android", "iElection\iElection.Android\iElection.Android.csproj", "{A29A128B-7377-4DF0-B9AF-E28269D32266}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "iElection.iOS", "iElection\iElection.iOS\iElection.iOS.csproj", "{50058001-61AA-4956-9130-DAD49CB15858}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
|
||||||
|
Ad-Hoc|iPhone = Ad-Hoc|iPhone
|
||||||
|
Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator
|
||||||
|
AppStore|Any CPU = AppStore|Any CPU
|
||||||
|
AppStore|iPhone = AppStore|iPhone
|
||||||
|
AppStore|iPhoneSimulator = AppStore|iPhoneSimulator
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Debug|iPhone = Debug|iPhone
|
||||||
|
Debug|iPhoneSimulator = Debug|iPhoneSimulator
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
Release|iPhone = Release|iPhone
|
||||||
|
Release|iPhoneSimulator = Release|iPhoneSimulator
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{A14AC0C3-7B68-4CDA-9F5E-A77B93A0C42C}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{A14AC0C3-7B68-4CDA-9F5E-A77B93A0C42C}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{A14AC0C3-7B68-4CDA-9F5E-A77B93A0C42C}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{A14AC0C3-7B68-4CDA-9F5E-A77B93A0C42C}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{A14AC0C3-7B68-4CDA-9F5E-A77B93A0C42C}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{A14AC0C3-7B68-4CDA-9F5E-A77B93A0C42C}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{A14AC0C3-7B68-4CDA-9F5E-A77B93A0C42C}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{A14AC0C3-7B68-4CDA-9F5E-A77B93A0C42C}.AppStore|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{A14AC0C3-7B68-4CDA-9F5E-A77B93A0C42C}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{A14AC0C3-7B68-4CDA-9F5E-A77B93A0C42C}.AppStore|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{A14AC0C3-7B68-4CDA-9F5E-A77B93A0C42C}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{A14AC0C3-7B68-4CDA-9F5E-A77B93A0C42C}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{A14AC0C3-7B68-4CDA-9F5E-A77B93A0C42C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{A14AC0C3-7B68-4CDA-9F5E-A77B93A0C42C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{A14AC0C3-7B68-4CDA-9F5E-A77B93A0C42C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{A14AC0C3-7B68-4CDA-9F5E-A77B93A0C42C}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{A14AC0C3-7B68-4CDA-9F5E-A77B93A0C42C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{A14AC0C3-7B68-4CDA-9F5E-A77B93A0C42C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{A14AC0C3-7B68-4CDA-9F5E-A77B93A0C42C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{A14AC0C3-7B68-4CDA-9F5E-A77B93A0C42C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{A14AC0C3-7B68-4CDA-9F5E-A77B93A0C42C}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{A14AC0C3-7B68-4CDA-9F5E-A77B93A0C42C}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{A14AC0C3-7B68-4CDA-9F5E-A77B93A0C42C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{A14AC0C3-7B68-4CDA-9F5E-A77B93A0C42C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Ad-Hoc|Any CPU.Deploy.0 = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Ad-Hoc|iPhone.Deploy.0 = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.AppStore|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.AppStore|Any CPU.Deploy.0 = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.AppStore|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.AppStore|iPhone.Deploy.0 = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.AppStore|iPhoneSimulator.Deploy.0 = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Debug|iPhone.Deploy.0 = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Release|iPhone.Deploy.0 = Release|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{A29A128B-7377-4DF0-B9AF-E28269D32266}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
|
||||||
|
{50058001-61AA-4956-9130-DAD49CB15858}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhoneSimulator
|
||||||
|
{50058001-61AA-4956-9130-DAD49CB15858}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone
|
||||||
|
{50058001-61AA-4956-9130-DAD49CB15858}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone
|
||||||
|
{50058001-61AA-4956-9130-DAD49CB15858}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator
|
||||||
|
{50058001-61AA-4956-9130-DAD49CB15858}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator
|
||||||
|
{50058001-61AA-4956-9130-DAD49CB15858}.AppStore|Any CPU.ActiveCfg = AppStore|iPhoneSimulator
|
||||||
|
{50058001-61AA-4956-9130-DAD49CB15858}.AppStore|iPhone.ActiveCfg = AppStore|iPhone
|
||||||
|
{50058001-61AA-4956-9130-DAD49CB15858}.AppStore|iPhone.Build.0 = AppStore|iPhone
|
||||||
|
{50058001-61AA-4956-9130-DAD49CB15858}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator
|
||||||
|
{50058001-61AA-4956-9130-DAD49CB15858}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator
|
||||||
|
{50058001-61AA-4956-9130-DAD49CB15858}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
|
||||||
|
{50058001-61AA-4956-9130-DAD49CB15858}.Debug|iPhone.ActiveCfg = Debug|iPhone
|
||||||
|
{50058001-61AA-4956-9130-DAD49CB15858}.Debug|iPhone.Build.0 = Debug|iPhone
|
||||||
|
{50058001-61AA-4956-9130-DAD49CB15858}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
|
||||||
|
{50058001-61AA-4956-9130-DAD49CB15858}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
|
||||||
|
{50058001-61AA-4956-9130-DAD49CB15858}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
|
||||||
|
{50058001-61AA-4956-9130-DAD49CB15858}.Release|iPhone.ActiveCfg = Release|iPhone
|
||||||
|
{50058001-61AA-4956-9130-DAD49CB15858}.Release|iPhone.Build.0 = Release|iPhone
|
||||||
|
{50058001-61AA-4956-9130-DAD49CB15858}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
|
||||||
|
{50058001-61AA-4956-9130-DAD49CB15858}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {3B582D5D-57A9-4374-BA66-30E8BA8FDCAF}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
|
@ -0,0 +1,2 @@
|
||||||
|
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||||
|
<s:Boolean x:Key="/Default/CodeInspection/CodeAnnotations/NamespacesWithAnnotations/=iElection_002EAnnotations/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
|
|
@ -0,0 +1,50 @@
|
||||||
|
# Suppress: EC112
|
||||||
|
# top-most EditorConfig file
|
||||||
|
root = true
|
||||||
|
|
||||||
|
# Don't use tabs for indentation.
|
||||||
|
[*]
|
||||||
|
indent_style = space
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
# (Please don't specify an indent_size here; that has too many unintended consequences.)
|
||||||
|
|
||||||
|
[*.yml]
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
# Code files
|
||||||
|
[*.{cs,csx,vb,vbx}]
|
||||||
|
indent_size = 4
|
||||||
|
|
||||||
|
# Code files
|
||||||
|
[*.sln]
|
||||||
|
indent_size = 4
|
||||||
|
|
||||||
|
# Xml project files
|
||||||
|
[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}]
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
# Xml config files
|
||||||
|
[*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}]
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
# XAML files
|
||||||
|
[*.xaml]
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
# JSON files
|
||||||
|
[*.json]
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
# XML files
|
||||||
|
[*.xml]
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
# PList Files
|
||||||
|
[*.plist]
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
# YAML files
|
||||||
|
[*.{yaml,yml}]
|
||||||
|
indent_size = 2
|
|
@ -0,0 +1,71 @@
|
||||||
|
using Android.App;
|
||||||
|
using Android.Content;
|
||||||
|
using Android.OS;
|
||||||
|
using Android.Runtime;
|
||||||
|
using Android.Views;
|
||||||
|
using Android.Widget;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using Android.Graphics;
|
||||||
|
|
||||||
|
namespace iElection.Droid
|
||||||
|
{
|
||||||
|
|
||||||
|
public class AndroidBug5497WorkaroundForXamarinAndroid
|
||||||
|
{
|
||||||
|
|
||||||
|
// For more information, see https://code.google.com/p/android/issues/detail?id=5497
|
||||||
|
// To use this class, simply invoke assistActivity() on an Activity that already has its content view set.
|
||||||
|
|
||||||
|
// CREDIT TO Joseph Johnson (http://stackoverflow.com/users/341631/joseph-johnson) for publishing the original Android solution on stackoverflow.com
|
||||||
|
|
||||||
|
public static void assistActivity(Activity activity)
|
||||||
|
{
|
||||||
|
new AndroidBug5497WorkaroundForXamarinAndroid(activity);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Android.Views.View mChildOfContent;
|
||||||
|
private int usableHeightPrevious;
|
||||||
|
private FrameLayout.LayoutParams frameLayoutParams;
|
||||||
|
private int statusBarHeight;
|
||||||
|
private AndroidBug5497WorkaroundForXamarinAndroid(Activity activity)
|
||||||
|
{
|
||||||
|
int resourceId = activity.Resources.GetIdentifier("status_bar_height", "dimen", "android");
|
||||||
|
if (resourceId > 0)
|
||||||
|
{
|
||||||
|
statusBarHeight = activity.Resources.GetDimensionPixelSize(resourceId);
|
||||||
|
}
|
||||||
|
FrameLayout content = (FrameLayout)activity.FindViewById(Android.Resource.Id.Content);
|
||||||
|
mChildOfContent = content.GetChildAt(0);
|
||||||
|
ViewTreeObserver vto = mChildOfContent.ViewTreeObserver;
|
||||||
|
vto.GlobalLayout += (object sender, EventArgs e) => {
|
||||||
|
possiblyResizeChildOfContent();
|
||||||
|
};
|
||||||
|
frameLayoutParams = (FrameLayout.LayoutParams)mChildOfContent.LayoutParameters;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void possiblyResizeChildOfContent()
|
||||||
|
{
|
||||||
|
int usableHeightNow = computeUsableHeight();
|
||||||
|
if (usableHeightNow != usableHeightPrevious)
|
||||||
|
{
|
||||||
|
int usableHeightSansKeyboard = mChildOfContent.RootView.Height;
|
||||||
|
int heightDifference = usableHeightSansKeyboard - usableHeightNow;
|
||||||
|
|
||||||
|
frameLayoutParams.Height = usableHeightSansKeyboard - heightDifference;
|
||||||
|
|
||||||
|
mChildOfContent.RequestLayout();
|
||||||
|
usableHeightPrevious = usableHeightNow;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private int computeUsableHeight()
|
||||||
|
{
|
||||||
|
Rect r = new Rect();
|
||||||
|
mChildOfContent.GetWindowVisibleDisplayFrame(r);
|
||||||
|
return (r.Bottom - r.Top) + statusBarHeight;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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 you 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");
|
|
@ -0,0 +1,40 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<linker>
|
||||||
|
<!--
|
||||||
|
For more information see the docs on creating custom Linker Settings
|
||||||
|
https://docs.microsoft.com/en-us/xamarin/cross-platform/deploy-test/linker
|
||||||
|
-->
|
||||||
|
<assembly fullname="Essential.Interfaces">
|
||||||
|
<type fullname="Xamarin.Essentials.Implementation.AppInfoImplementation">
|
||||||
|
<method name=".ctor" />
|
||||||
|
</type>
|
||||||
|
</assembly>
|
||||||
|
|
||||||
|
<assembly fullname="iElection" />
|
||||||
|
<assembly fullname="Prism" />
|
||||||
|
<assembly fullname="Prism.Forms" />
|
||||||
|
<assembly fullname="Prism.Unity.Forms" />
|
||||||
|
<assembly fullname="Prism.Unity.Forms" />
|
||||||
|
<assembly fullname="Unity.Abstractions" />
|
||||||
|
<assembly fullname="Unity.Container"/>
|
||||||
|
|
||||||
|
|
||||||
|
<assembly fullname="System.Core"/>
|
||||||
|
<assembly fullname="Rg.Plugins.Popup">
|
||||||
|
<type fullname="*" />
|
||||||
|
</assembly>
|
||||||
|
<assembly fullname="Refit">
|
||||||
|
<type fullname="*" />
|
||||||
|
</assembly>
|
||||||
|
<assembly fullname="mscorlib">
|
||||||
|
<type fullname="System.DateTime">
|
||||||
|
<method name="AddYears"></method>
|
||||||
|
<method name="AddMonths"></method>
|
||||||
|
<method name="AddDays"></method>
|
||||||
|
<method name="AddHours"></method>
|
||||||
|
<method name="AddMinutes"></method>
|
||||||
|
<method name="AddSeconds"></method>
|
||||||
|
</type>
|
||||||
|
</assembly>
|
||||||
|
|
||||||
|
</linker>
|
|
@ -0,0 +1,74 @@
|
||||||
|
using System.Reflection;
|
||||||
|
using Android.App;
|
||||||
|
using Android.Content.PM;
|
||||||
|
using Android.OS;
|
||||||
|
using Android.Views;
|
||||||
|
using Prism;
|
||||||
|
using Prism.Ioc;
|
||||||
|
using Xamarin.Forms.Platform.Android;
|
||||||
|
using Xamarin.Forms.PlatformConfiguration.AndroidSpecific;
|
||||||
|
|
||||||
|
namespace iElection.Droid
|
||||||
|
{
|
||||||
|
[Activity(Theme = "@style/MainTheme",
|
||||||
|
ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize)]
|
||||||
|
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
|
||||||
|
{
|
||||||
|
protected override void OnCreate(Bundle savedInstanceState)
|
||||||
|
{
|
||||||
|
TabLayoutResource = Resource.Layout.Tabbar;
|
||||||
|
ToolbarResource = Resource.Layout.Toolbar;
|
||||||
|
base.OnCreate(savedInstanceState);
|
||||||
|
|
||||||
|
Xamarin.Forms.Forms.SetFlags(new string[] { "CarouselView_Experimental", "SwipeView_Experimental", "IndicatorView_Experimental" });
|
||||||
|
FFImageLoading.Forms.Platform.CachedImageRenderer.Init(true);
|
||||||
|
Rg.Plugins.Popup.Popup.Init(this);
|
||||||
|
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
|
||||||
|
|
||||||
|
|
||||||
|
//AndroidBug5497WorkaroundForXamarinAndroid.assistActivity(this);
|
||||||
|
//if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop)
|
||||||
|
//{
|
||||||
|
// Window.DecorView.SystemUiVisibility = StatusBarVisibility.Hidden;
|
||||||
|
// var statusBarHeightInfo = typeof(FormsAppCompatActivity).GetField("_statusBarHeight",
|
||||||
|
// BindingFlags.Instance | BindingFlags.NonPublic);
|
||||||
|
// statusBarHeightInfo?.SetValue(this, 0);
|
||||||
|
// Xamarin.Forms.Application.Current.On<Xamarin.Forms.PlatformConfiguration.Android>()
|
||||||
|
// .UseWindowSoftInputModeAdjust(WindowSoftInputModeAdjust.Resize);
|
||||||
|
//}
|
||||||
|
|
||||||
|
|
||||||
|
LoadApplication(new App(new AndroidInitializer()));
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Android.Content.PM.Permission[] grantResults)
|
||||||
|
{
|
||||||
|
Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
|
|
||||||
|
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
|
}
|
||||||
|
public override void OnBackPressed()
|
||||||
|
{
|
||||||
|
if (Rg.Plugins.Popup.Popup.SendBackPressed(base.OnBackPressed))
|
||||||
|
{
|
||||||
|
// Do something if there are some pages in the `PopupStack`
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Do something if there are not any pages in the `PopupStack`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AndroidInitializer : IPlatformInitializer
|
||||||
|
{
|
||||||
|
public void RegisterTypes(IContainerRegistry containerRegistry)
|
||||||
|
{
|
||||||
|
// Register any platform specific implementations
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
using System;
|
||||||
|
using Android.App;
|
||||||
|
using Android.Runtime;
|
||||||
|
|
||||||
|
namespace iElection.Droid
|
||||||
|
{
|
||||||
|
[Application(
|
||||||
|
Theme = "@style/MainTheme"
|
||||||
|
)]
|
||||||
|
public class MainApplication : Application
|
||||||
|
{
|
||||||
|
public MainApplication(IntPtr javaReference, JniHandleOwnership transfer)
|
||||||
|
: base(javaReference, transfer)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnCreate()
|
||||||
|
{
|
||||||
|
base.OnCreate();
|
||||||
|
Xamarin.Essentials.Platform.Init(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="2" android:versionName="1.1" package="com.viranasirfanavar.ielection" android:installLocation="auto">
|
||||||
|
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="29" />
|
||||||
|
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
||||||
|
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
|
||||||
|
<application android:label="شورای شهر" android:icon="@mipmap/ic_ielection"></application>
|
||||||
|
</manifest>
|
|
@ -0,0 +1,34 @@
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using Android.App;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("iElection.Android")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("iElection.Android")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © YourCompany 2020")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
|
// by using the '*' as shown below:
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||||
|
|
||||||
|
// Add some common permissions, these can be removed if not needed
|
||||||
|
[assembly: UsesPermission(Android.Manifest.Permission.Internet)]
|
||||||
|
[assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)]
|
|
@ -0,0 +1,50 @@
|
||||||
|
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.xml),
|
||||||
|
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-hdpi/
|
||||||
|
icon.png
|
||||||
|
|
||||||
|
drawable-ldpi/
|
||||||
|
icon.png
|
||||||
|
|
||||||
|
drawable-mdpi/
|
||||||
|
icon.png
|
||||||
|
|
||||||
|
layout/
|
||||||
|
main.xml
|
||||||
|
|
||||||
|
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
|
||||||
|
"Resource" that contains the tokens for each one of the resources included. For example,
|
||||||
|
for the above Resources layout, this is what the Resource class would expose:
|
||||||
|
|
||||||
|
public class Resource {
|
||||||
|
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 Resource.layout.main
|
||||||
|
to reference the layout/main.xml file, or Resource.strings.first_string to reference the first
|
||||||
|
string in the dictionary file values/strings.xml.
|
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 59 KiB |
After Width: | Height: | Size: 74 KiB |
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:drawable="@color/launcher_background"/>
|
||||||
|
<item>
|
||||||
|
<bitmap android:gravity="center"
|
||||||
|
android:src="@drawable/icon" />
|
||||||
|
</item>
|
||||||
|
</layer-list>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<com.google.android.material.tabs.TabLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:id="@+id/sliding_tabs"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="?attr/colorPrimary"
|
||||||
|
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
|
||||||
|
app:tabIndicatorColor="@android:color/white"
|
||||||
|
app:tabGravity="fill"
|
||||||
|
app:tabMode="fixed" />
|
|
@ -0,0 +1,9 @@
|
||||||
|
<androidx.appcompat.widget.Toolbar
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:id="@+id/toolbar"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="?attr/colorPrimary"
|
||||||
|
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
|
||||||
|
android:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<background android:drawable="@color/launcher_background" />
|
||||||
|
<foreground android:drawable="@mipmap/launcher_foreground" />
|
||||||
|
</adaptive-icon>
|
|
@ -0,0 +1,5 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<background android:drawable="@color/launcher_background" />
|
||||||
|
<foreground android:drawable="@mipmap/launcher_foreground" />
|
||||||
|
</adaptive-icon>
|
After Width: | Height: | Size: 8.7 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 7.7 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 7.5 KiB |
After Width: | Height: | Size: 17 KiB |
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<color name="launcher_background">#FFFFFF</color>
|
||||||
|
<color name="colorPrimary">#7E7D81</color>
|
||||||
|
<color name="colorPrimaryDark">#5f5f61</color>
|
||||||
|
<color name="colorAccent">#00A5F2</color>
|
||||||
|
</resources>
|
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<string name="app_name">iElection.Droid</string>
|
||||||
|
</resources>
|
|
@ -0,0 +1,38 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<resources>
|
||||||
|
|
||||||
|
<style name="MainTheme" parent="MainTheme.Base">
|
||||||
|
</style>
|
||||||
|
<!-- Base theme applied no matter what API -->
|
||||||
|
<style name="MainTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
|
||||||
|
<!--If you are using revision 22.1 please use just windowNoTitle. Without android:-->
|
||||||
|
<item name="windowNoTitle">true</item>
|
||||||
|
<!--We will be using the toolbar so no need to show ActionBar-->
|
||||||
|
<item name="windowActionBar">false</item>
|
||||||
|
<!-- Set theme colors from https://aka.ms/material-colors -->
|
||||||
|
<!-- colorPrimary is used for the default action bar background -->
|
||||||
|
<item name="colorPrimary">#182339</item>
|
||||||
|
<!-- colorPrimaryDark is used for the status bar -->
|
||||||
|
<item name="colorPrimaryDark">#182339</item>
|
||||||
|
<!-- colorAccent is used as the default value for colorControlActivated
|
||||||
|
which is used to tint widgets -->
|
||||||
|
<item name="colorAccent">#FF4081</item>
|
||||||
|
<!-- You can also set colorControlNormal, colorControlActivated
|
||||||
|
colorControlHighlight and colorSwitchThumbNormal. -->
|
||||||
|
<item name="windowActionModeOverlay">true</item>
|
||||||
|
|
||||||
|
<item name="android:datePickerDialogTheme">@style/AppCompatDialogStyle</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="AppCompatDialogStyle" parent="Theme.AppCompat.Light.Dialog">
|
||||||
|
<item name="colorAccent">#FF4081</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="MainTheme.Splash" parent="Theme.AppCompat.Light.NoActionBar">
|
||||||
|
<item name="android:windowBackground">@drawable/splash_screen</item>
|
||||||
|
<item name="android:windowNoTitle">true</item>
|
||||||
|
<item name="android:windowFullscreen">true</item>
|
||||||
|
<item name="android:windowContentOverlay">@null</item>
|
||||||
|
<item name="android:windowActionBar">true</item>
|
||||||
|
</style>
|
||||||
|
</resources>
|
|
@ -0,0 +1,19 @@
|
||||||
|
using Android.App;
|
||||||
|
using Android.Content;
|
||||||
|
using AndroidX.AppCompat.App;
|
||||||
|
|
||||||
|
namespace iElection.Droid
|
||||||
|
{
|
||||||
|
[Activity(Theme = "@style/MainTheme.Splash",
|
||||||
|
MainLauncher = true,
|
||||||
|
NoHistory = true)]
|
||||||
|
public class SplashActivity : AppCompatActivity
|
||||||
|
{
|
||||||
|
// Launches the startup task
|
||||||
|
protected override void OnResume()
|
||||||
|
{
|
||||||
|
base.OnResume();
|
||||||
|
StartActivity(new Intent(Application.Context, typeof(MainActivity)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,168 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProductVersion>8.0.30703</ProductVersion>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectGuid>{A29A128B-7377-4DF0-B9AF-E28269D32266}</ProjectGuid>
|
||||||
|
<ProjectTypeGuids>{EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>iElection.Droid</RootNamespace>
|
||||||
|
<AssemblyName>iElection.Android</AssemblyName>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<TargetFrameworkVersion>v10.0</TargetFrameworkVersion>
|
||||||
|
<AndroidApplication>True</AndroidApplication>
|
||||||
|
<AndroidUseIntermediateDesignerFile>true</AndroidUseIntermediateDesignerFile>
|
||||||
|
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
|
||||||
|
<AndroidResgenClass>Resource</AndroidResgenClass>
|
||||||
|
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
|
||||||
|
<MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix>
|
||||||
|
<MonoAndroidAssetsPrefix>Assets</MonoAndroidAssetsPrefix>
|
||||||
|
<AndroidStoreUncompressedFileExtensions />
|
||||||
|
<MandroidI18n />
|
||||||
|
<JavaMaximumHeapSize />
|
||||||
|
<JavaOptions />
|
||||||
|
<NuGetPackageImportStamp>
|
||||||
|
</NuGetPackageImportStamp>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<AndroidLinkMode>None</AndroidLinkMode>
|
||||||
|
<AndroidEnableSGenConcurrent>true</AndroidEnableSGenConcurrent>
|
||||||
|
<AndroidDexTool>d8</AndroidDexTool>
|
||||||
|
<AndroidUseAapt2>true</AndroidUseAapt2>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release</OutputPath>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<AndroidManagedSymbols>true</AndroidManagedSymbols>
|
||||||
|
<AndroidUseSharedRuntime>false</AndroidUseSharedRuntime>
|
||||||
|
<AndroidDexTool>d8</AndroidDexTool>
|
||||||
|
<AndroidEnableSGenConcurrent>true</AndroidEnableSGenConcurrent>
|
||||||
|
<AndroidUseAapt2>true</AndroidUseAapt2>
|
||||||
|
<AndroidLinkTool>r8</AndroidLinkTool>
|
||||||
|
<AndroidEnableMultiDex>true</AndroidEnableMultiDex>
|
||||||
|
<AndroidCreatePackagePerAbi>true</AndroidCreatePackagePerAbi>
|
||||||
|
<BundleAssemblies>true</BundleAssemblies>
|
||||||
|
<EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
|
||||||
|
<AndroidLinkMode>Full</AndroidLinkMode>
|
||||||
|
<AndroidSupportedAbis />
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="Mono.Android" />
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Prism.Unity.Forms">
|
||||||
|
<Version>8.0.0.1909</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Rg.Plugins.Popup">
|
||||||
|
<Version>2.0.0.11</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Sharpnado.MaterialFrame">
|
||||||
|
<Version>1.1.4</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Syncfusion.Xamarin.SfAutoComplete">
|
||||||
|
<Version>19.1.0.63</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Syncfusion.Xamarin.SfComboBox">
|
||||||
|
<Version>19.1.0.63</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Xamarin.CommunityToolkit">
|
||||||
|
<Version>1.1.0</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Xamarin.FFImageLoading.Forms">
|
||||||
|
<Version>2.4.11.982</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2012" />
|
||||||
|
<PackageReference Include="Xamarin.Essentials.Interfaces" Version="1.6.1" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="AndroidBug5497WorkaroundForXamarinAndroid.cs" />
|
||||||
|
<Compile Include="MainApplication.cs" />
|
||||||
|
<Compile Include="MainActivity.cs" />
|
||||||
|
<Compile Include="SplashActivity.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<LinkDescription Include="LinkerSettings.xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidAsset Include="Assets\fa-regular-400.ttf" />
|
||||||
|
<AndroidAsset Include="Assets\IranSansBlack.ttf" />
|
||||||
|
<AndroidAsset Include="Assets\IranSansBold.ttf" />
|
||||||
|
<AndroidAsset Include="Assets\IranSansMedium.ttf" />
|
||||||
|
<AndroidAsset Include="Assets\IranSansULight.ttf" />
|
||||||
|
<AndroidAsset Include="Assets\materialdesignicons-webfont.ttf" />
|
||||||
|
<AndroidAsset Include="Assets\Roboto-Medium.ttf" />
|
||||||
|
<AndroidAsset Include="Assets\Shabnam.ttf" />
|
||||||
|
<AndroidAsset Include="Assets\Shabnam-Bold.ttf" />
|
||||||
|
<None Include="Resources\AboutResources.txt" />
|
||||||
|
<None Include="Assets\AboutAssets.txt" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidResource Include="Resources\mipmap-anydpi-v26\icon.xml" />
|
||||||
|
<AndroidResource Include="Resources\mipmap-anydpi-v26\icon_round.xml" />
|
||||||
|
<AndroidResource Include="Resources\mipmap-hdpi\icon.png" />
|
||||||
|
<AndroidResource Include="Resources\mipmap-hdpi\launcher_foreground.png" />
|
||||||
|
<AndroidResource Include="Resources\mipmap-mdpi\icon.png" />
|
||||||
|
<AndroidResource Include="Resources\mipmap-mdpi\launcher_foreground.png" />
|
||||||
|
<AndroidResource Include="Resources\mipmap-xhdpi\icon.png" />
|
||||||
|
<AndroidResource Include="Resources\mipmap-xhdpi\launcher_foreground.png" />
|
||||||
|
<AndroidResource Include="Resources\mipmap-xxhdpi\icon.png" />
|
||||||
|
<AndroidResource Include="Resources\mipmap-xxhdpi\launcher_foreground.png" />
|
||||||
|
<AndroidResource Include="Resources\mipmap-xxxhdpi\icon.png" />
|
||||||
|
<AndroidResource Include="Resources\mipmap-xxxhdpi\launcher_foreground.png" />
|
||||||
|
<AndroidResource Include="Resources\drawable-hdpi\icon.png" />
|
||||||
|
<AndroidResource Include="Resources\drawable-mdpi\icon.png" />
|
||||||
|
<AndroidResource Include="Resources\drawable-xhdpi\icon.png" />
|
||||||
|
<AndroidResource Include="Resources\drawable-xxxhdpi\icon.png" />
|
||||||
|
<AndroidResource Include="Resources\drawable-xxhdpi\icon.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Properties\AndroidManifest.xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidResource Include="Resources\drawable\splash_screen.xml" />
|
||||||
|
<AndroidResource Include="Resources\layout\Tabbar.xml" />
|
||||||
|
<AndroidResource Include="Resources\layout\Toolbar.xml" />
|
||||||
|
<AndroidResource Include="Resources\values\styles.xml" />
|
||||||
|
<AndroidResource Include="Resources\values\colors.xml" />
|
||||||
|
<AndroidResource Include="Resources\values\strings.xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\iElection\iElection.csproj">
|
||||||
|
<Project>{A682884C-CB44-4A89-B752-27BB634E0ABE}</Project>
|
||||||
|
<Name>iElection</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidResource Include="Resources\mipmap-hdpi\ic_ielection.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidResource Include="Resources\mipmap-mdpi\ic_ielection.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidResource Include="Resources\mipmap-xhdpi\ic_ielection.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidResource Include="Resources\mipmap-xxhdpi\ic_ielection.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidResource Include="Resources\mipmap-xxxhdpi\ic_ielection.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
|
||||||
|
</Project>
|
|
@ -0,0 +1,38 @@
|
||||||
|
using Foundation;
|
||||||
|
using Prism;
|
||||||
|
using Prism.Ioc;
|
||||||
|
using UIKit;
|
||||||
|
|
||||||
|
|
||||||
|
namespace iElection.iOS
|
||||||
|
{
|
||||||
|
// The UIApplicationDelegate for the application. This class is responsible for launching the
|
||||||
|
// User Interface of the application, as well as listening (and optionally responding) to
|
||||||
|
// application events from iOS.
|
||||||
|
[Register("AppDelegate")]
|
||||||
|
public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// This method is invoked when the application has loaded and is ready to run. In this
|
||||||
|
// method you should instantiate the window, load the UI into it and then make the window
|
||||||
|
// visible.
|
||||||
|
//
|
||||||
|
// You have 17 seconds to return from this method, or iOS will terminate your application.
|
||||||
|
//
|
||||||
|
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
|
||||||
|
{
|
||||||
|
global::Xamarin.Forms.Forms.Init();
|
||||||
|
LoadApplication(new App(new iOSInitializer()));
|
||||||
|
|
||||||
|
return base.FinishedLaunching(app, options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class iOSInitializer : IPlatformInitializer
|
||||||
|
{
|
||||||
|
public void RegisterTypes(IContainerRegistry containerRegistry)
|
||||||
|
{
|
||||||
|
// Register any platform specific implementations
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,182 @@
|
||||||
|
{
|
||||||
|
"images":[
|
||||||
|
{
|
||||||
|
"idiom":"iphone",
|
||||||
|
"size":"20x20",
|
||||||
|
"scale":"2x",
|
||||||
|
"filename":"Icon-App-20x20@2x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom":"iphone",
|
||||||
|
"size":"20x20",
|
||||||
|
"scale":"3x",
|
||||||
|
"filename":"Icon-App-20x20@3x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom":"iphone",
|
||||||
|
"size":"29x29",
|
||||||
|
"scale":"1x",
|
||||||
|
"filename":"Icon-App-29x29@1x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom":"iphone",
|
||||||
|
"size":"29x29",
|
||||||
|
"scale":"2x",
|
||||||
|
"filename":"Icon-App-29x29@2x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom":"iphone",
|
||||||
|
"size":"29x29",
|
||||||
|
"scale":"3x",
|
||||||
|
"filename":"Icon-App-29x29@3x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom":"iphone",
|
||||||
|
"size":"40x40",
|
||||||
|
"scale":"1x",
|
||||||
|
"filename":"Icon-App-40x40@1x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom":"iphone",
|
||||||
|
"size":"40x40",
|
||||||
|
"scale":"2x",
|
||||||
|
"filename":"Icon-App-40x40@2x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom":"iphone",
|
||||||
|
"size":"40x40",
|
||||||
|
"scale":"3x",
|
||||||
|
"filename":"Icon-App-40x40@3x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom":"iphone",
|
||||||
|
"size":"57x57",
|
||||||
|
"scale":"1x",
|
||||||
|
"filename":"Icon-App-57x57@1x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom":"iphone",
|
||||||
|
"size":"57x57",
|
||||||
|
"scale":"2x",
|
||||||
|
"filename":"Icon-App-57x57@2x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom":"iphone",
|
||||||
|
"size":"60x60",
|
||||||
|
"scale":"1x",
|
||||||
|
"filename":"Icon-App-60x60@1x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom":"iphone",
|
||||||
|
"size":"60x60",
|
||||||
|
"scale":"2x",
|
||||||
|
"filename":"Icon-App-60x60@2x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom":"iphone",
|
||||||
|
"size":"60x60",
|
||||||
|
"scale":"3x",
|
||||||
|
"filename":"Icon-App-60x60@3x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom":"iphone",
|
||||||
|
"size":"76x76",
|
||||||
|
"scale":"1x",
|
||||||
|
"filename":"Icon-App-76x76@1x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom":"ipad",
|
||||||
|
"size":"20x20",
|
||||||
|
"scale":"1x",
|
||||||
|
"filename":"Icon-App-20x20@1x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom":"ipad",
|
||||||
|
"size":"20x20",
|
||||||
|
"scale":"2x",
|
||||||
|
"filename":"Icon-App-20x20@2x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom":"ipad",
|
||||||
|
"size":"29x29",
|
||||||
|
"scale":"1x",
|
||||||
|
"filename":"Icon-App-29x29@1x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom":"ipad",
|
||||||
|
"size":"29x29",
|
||||||
|
"scale":"2x",
|
||||||
|
"filename":"Icon-App-29x29@2x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom":"ipad",
|
||||||
|
"size":"40x40",
|
||||||
|
"scale":"1x",
|
||||||
|
"filename":"Icon-App-40x40@1x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom":"ipad",
|
||||||
|
"size":"40x40",
|
||||||
|
"scale":"2x",
|
||||||
|
"filename":"Icon-App-40x40@2x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"size" : "50x50",
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"filename" : "Icon-Small-50x50@1x.png",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"size" : "50x50",
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"filename" : "Icon-Small-50x50@2x.png",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom":"ipad",
|
||||||
|
"size":"72x72",
|
||||||
|
"scale":"1x",
|
||||||
|
"filename":"Icon-App-72x72@1x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom":"ipad",
|
||||||
|
"size":"72x72",
|
||||||
|
"scale":"2x",
|
||||||
|
"filename":"Icon-App-72x72@2x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom":"ipad",
|
||||||
|
"size":"76x76",
|
||||||
|
"scale":"1x",
|
||||||
|
"filename":"Icon-App-76x76@1x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom":"ipad",
|
||||||
|
"size":"76x76",
|
||||||
|
"scale":"2x",
|
||||||
|
"filename":"Icon-App-76x76@2x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom":"ipad",
|
||||||
|
"size":"76x76",
|
||||||
|
"scale":"3x",
|
||||||
|
"filename":"Icon-App-76x76@3x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom":"ipad",
|
||||||
|
"size":"83.5x83.5",
|
||||||
|
"scale":"2x",
|
||||||
|
"filename":"Icon-App-83.5x83.5@2x.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"size" : "1024x1024",
|
||||||
|
"idiom" : "ios-marketing",
|
||||||
|
"filename" : "ItunesArtwork@2x.png",
|
||||||
|
"scale" : "1x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info":{
|
||||||
|
"version":1,
|
||||||
|
"author":"makeappicon"
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 1003 B |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 3.6 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 3.6 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 9.2 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 6.9 KiB |
After Width: | Height: | Size: 9.6 KiB |
After Width: | Height: | Size: 8.0 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 90 KiB |
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"info" : {
|
||||||
|
"version" : 1,
|
||||||
|
"author" : "xcode"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>UIDeviceFamily</key>
|
||||||
|
<array>
|
||||||
|
<integer>1</integer>
|
||||||
|
<integer>2</integer>
|
||||||
|
</array>
|
||||||
|
<key>UISupportedInterfaceOrientations</key>
|
||||||
|
<array>
|
||||||
|
<string>UIInterfaceOrientationPortrait</string>
|
||||||
|
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||||
|
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||||
|
</array>
|
||||||
|
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||||
|
<array>
|
||||||
|
<string>UIInterfaceOrientationPortrait</string>
|
||||||
|
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||||
|
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||||
|
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||||
|
</array>
|
||||||
|
<key>MinimumOSVersion</key>
|
||||||
|
<string>10.0</string>
|
||||||
|
<key>UILaunchStoryboardName</key>
|
||||||
|
<string>LaunchScreen</string>
|
||||||
|
<key>XSAppIconAssets</key>
|
||||||
|
<string>Assets.xcassets/AppIcon.appiconset</string>
|
||||||
|
<key>CFBundleDisplayName</key>
|
||||||
|
<string>iElection</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>iElection</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>com.companyname.appname</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>1.0</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>1</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
|
@ -0,0 +1,18 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<linker>
|
||||||
|
<!--
|
||||||
|
For more information see the docs on creating custom Linker Settings
|
||||||
|
https://docs.microsoft.com/en-us/xamarin/cross-platform/deploy-test/linker
|
||||||
|
-->
|
||||||
|
<assembly fullname="Essential.Interfaces">
|
||||||
|
<type fullname="Xamarin.Essentials.Implementation.AppInfoImplementation">
|
||||||
|
<method name=".ctor" />
|
||||||
|
</type>
|
||||||
|
</assembly>
|
||||||
|
|
||||||
|
<assembly fullname="Prism" />
|
||||||
|
<assembly fullname="Prism.Forms" />
|
||||||
|
<assembly fullname="Prism.DryIoc.Forms" />
|
||||||
|
<assembly fullname="DryIoc" />
|
||||||
|
|
||||||
|
</linker>
|
|
@ -0,0 +1,20 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
using Foundation;
|
||||||
|
using UIKit;
|
||||||
|
|
||||||
|
namespace iElection.iOS
|
||||||
|
{
|
||||||
|
public class Application
|
||||||
|
{
|
||||||
|
// This is the main entry point of the application.
|
||||||
|
static void Main(string[] args)
|
||||||
|
{
|
||||||
|
// if you want to use a different Application Delegate class from "AppDelegate"
|
||||||
|
// you can specify it here.
|
||||||
|
UIApplication.Main(args, null, "AppDelegate");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("iElection.iOS")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("iElection.iOS")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2014")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("72bdc44f-c588-44f3-b6df-9aace7daafdd")]
|
||||||
|
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
|
// by using the '*' as shown below:
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
After Width: | Height: | Size: 8.7 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 34 KiB |
After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 8.2 KiB |
|
@ -0,0 +1,39 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="6245" systemVersion="13F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="X5k-f2-b5h">
|
||||||
|
<dependencies>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6238"/>
|
||||||
|
</dependencies>
|
||||||
|
<scenes>
|
||||||
|
<!--View Controller-->
|
||||||
|
<scene sceneID="gAE-YM-kbH">
|
||||||
|
<objects>
|
||||||
|
<viewController id="X5k-f2-b5h" sceneMemberID="viewController">
|
||||||
|
<layoutGuides>
|
||||||
|
<viewControllerLayoutGuide type="top" id="Y8P-hJ-Z43"/>
|
||||||
|
<viewControllerLayoutGuide type="bottom" id="9ZL-r4-8FZ"/>
|
||||||
|
</layoutGuides>
|
||||||
|
<view key="view" contentMode="scaleToFill" id="yd7-JS-zBw">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" misplaced="YES" image="Icon-60.png" translatesAutoresizingMaskIntoConstraints="NO" id="23">
|
||||||
|
<rect key="frame" x="270" y="270" width="60" height="60"/>
|
||||||
|
<rect key="contentStretch" x="0.0" y="0.0" width="0.0" height="0.0"/>
|
||||||
|
</imageView>
|
||||||
|
</subviews>
|
||||||
|
<color key="backgroundColor" red="0.20392156862745098" green="0.59607843137254901" blue="0.85882352941176465" alpha="1" colorSpace="calibratedRGB"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="23" firstAttribute="centerY" secondItem="yd7-JS-zBw" secondAttribute="centerY" priority="1" id="39"/>
|
||||||
|
<constraint firstItem="23" firstAttribute="centerX" secondItem="yd7-JS-zBw" secondAttribute="centerX" priority="1" id="41"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
|
</viewController>
|
||||||
|
<placeholder placeholderIdentifier="IBFirstResponder" id="XAI-xm-WK6" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||||
|
</objects>
|
||||||
|
<point key="canvasLocation" x="349" y="339"/>
|
||||||
|
</scene>
|
||||||
|
</scenes>
|
||||||
|
<resources>
|
||||||
|
<image name="Icon-60.png" width="180" height="180"/>
|
||||||
|
</resources>
|
||||||
|
</document>
|
|
@ -0,0 +1,232 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform>
|
||||||
|
<ProductVersion>8.0.30703</ProductVersion>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectGuid>{50058001-61AA-4956-9130-DAD49CB15858}</ProjectGuid>
|
||||||
|
<ProjectTypeGuids>{FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||||
|
<OutputType>Exe</OutputType>
|
||||||
|
<RootNamespace>iElection.iOS</RootNamespace>
|
||||||
|
<IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
|
||||||
|
<AssemblyName>iElection.iOS</AssemblyName>
|
||||||
|
<NuGetPackageImportStamp>
|
||||||
|
</NuGetPackageImportStamp>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\iPhoneSimulator\Debug</OutputPath>
|
||||||
|
<DefineConstants>DEBUG</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<ConsolePause>false</ConsolePause>
|
||||||
|
<MtouchArch>i386, x86_64</MtouchArch>
|
||||||
|
<MtouchLink>None</MtouchLink>
|
||||||
|
<MtouchDebug>true</MtouchDebug>
|
||||||
|
<MtouchEnableSGenConc>true</MtouchEnableSGenConc>
|
||||||
|
<MtouchNoSymbolStrip>true</MtouchNoSymbolStrip>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
|
||||||
|
<DebugType>none</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\iPhoneSimulator\Release</OutputPath>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<MtouchLink>None</MtouchLink>
|
||||||
|
<MtouchArch>i386, x86_64</MtouchArch>
|
||||||
|
<ConsolePause>false</ConsolePause>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\iPhone\Debug</OutputPath>
|
||||||
|
<DefineConstants>DEBUG</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<ConsolePause>false</ConsolePause>
|
||||||
|
<MtouchArch>ARM64</MtouchArch>
|
||||||
|
<CodesignKey>iPhone Developer</CodesignKey>
|
||||||
|
<MtouchDebug>true</MtouchDebug>
|
||||||
|
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
|
||||||
|
<MtouchEnableSGenConc>true</MtouchEnableSGenConc>
|
||||||
|
<MtouchInterpreter>-all</MtouchInterpreter>
|
||||||
|
<MtouchLink>None</MtouchLink>
|
||||||
|
<MtouchNoSymbolStrip>true</MtouchNoSymbolStrip>
|
||||||
|
<IOSDebugOverWiFi>true</IOSDebugOverWiFi>
|
||||||
|
<MtouchProfiling>true</MtouchProfiling>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
|
||||||
|
<DebugType>none</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\iPhone\Release</OutputPath>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<MtouchArch>ARM64</MtouchArch>
|
||||||
|
<ConsolePause>false</ConsolePause>
|
||||||
|
<CodesignKey>iPhone Developer</CodesignKey>
|
||||||
|
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
|
||||||
|
<MtouchEnableSGenConc>true</MtouchEnableSGenConc>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Ad-Hoc|iPhone' ">
|
||||||
|
<DebugType>none</DebugType>
|
||||||
|
<Optimize>True</Optimize>
|
||||||
|
<OutputPath>bin\iPhone\Ad-Hoc</OutputPath>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<ConsolePause>False</ConsolePause>
|
||||||
|
<MtouchArch>ARM64</MtouchArch>
|
||||||
|
<BuildIpa>True</BuildIpa>
|
||||||
|
<CodesignProvision>Automatic:AdHoc</CodesignProvision>
|
||||||
|
<CodesignKey>iPhone Distribution</CodesignKey>
|
||||||
|
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
|
||||||
|
<MtouchEnableSGenConc>true</MtouchEnableSGenConc>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'AppStore|iPhone' ">
|
||||||
|
<DebugType>none</DebugType>
|
||||||
|
<Optimize>True</Optimize>
|
||||||
|
<OutputPath>bin\iPhone\AppStore</OutputPath>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<ConsolePause>False</ConsolePause>
|
||||||
|
<MtouchArch>ARM64</MtouchArch>
|
||||||
|
<CodesignProvision>Automatic:AppStore</CodesignProvision>
|
||||||
|
<CodesignKey>iPhone Distribution</CodesignKey>
|
||||||
|
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
|
||||||
|
<MtouchEnableSGenConc>true</MtouchEnableSGenConc>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Main.cs" />
|
||||||
|
<Compile Include="AppDelegate.cs" />
|
||||||
|
<None Include="Entitlements.plist" />
|
||||||
|
<None Include="Info.plist" />
|
||||||
|
<LinkDescription Include="LinkerSettings.xml" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ImageAsset Include="Assets.xcassets\Contents.json">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Contents.json">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-20x20@1x.png">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-20x20@2x.png">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-20x20@3x.png">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-29x29@1x.png">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-29x29@2x.png">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-29x29@3x.png">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-40x40@1x.png">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-40x40@2x.png">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-40x40@3x.png">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-57x57@1x.png">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-57x57@2x.png">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-60x60@1x.png">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-60x60@2x.png">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-60x60@3x.png">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-72x72@1x.png">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-72x72@2x.png">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-76x76@1x.png">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-76x76@2x.png">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-76x76@3x.png">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-App-83.5x83.5@2x.png">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Small-50x50@1x.png">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-Small-50x50@2x.png">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\ItunesArtwork@2x.png">
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</ImageAsset>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<BundleResource Include="Resources\Default-568h@2x.png" />
|
||||||
|
<BundleResource Include="Resources\Default-Portrait.png" />
|
||||||
|
<BundleResource Include="Resources\Default-Portrait@2x.png" />
|
||||||
|
<BundleResource Include="Resources\Default.png" />
|
||||||
|
<BundleResource Include="Resources\Default@2x.png" />
|
||||||
|
<InterfaceDefinition Include="Resources\LaunchScreen.storyboard" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="Xamarin.iOS" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Prism.Unity.Forms">
|
||||||
|
<Version>8.0.0.1909</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Rg.Plugins.Popup">
|
||||||
|
<Version>2.0.0.11</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Sharpnado.MaterialFrame">
|
||||||
|
<Version>1.1.4</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Syncfusion.Xamarin.SfAutoComplete">
|
||||||
|
<Version>19.1.0.63</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Syncfusion.Xamarin.SfComboBox">
|
||||||
|
<Version>19.1.0.63</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Xamarin.CommunityToolkit">
|
||||||
|
<Version>1.1.0</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Xamarin.FFImageLoading.Forms">
|
||||||
|
<Version>2.4.11.982</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2012" />
|
||||||
|
<PackageReference Include="Xamarin.Essentials.Interfaces" Version="1.6.1" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\iElection\iElection.csproj">
|
||||||
|
<Project>{A682884C-CB44-4A89-B752-27BB634E0ABE}</Project>
|
||||||
|
<Name>iElection</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
|
||||||
|
</Project>
|
|
@ -0,0 +1,41 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<prism:PrismApplication
|
||||||
|
x:Class="iElection.App"
|
||||||
|
xmlns="http://xamarin.com/schemas/2014/forms"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||||
|
xmlns:materialFrame="http://sharpnado.com"
|
||||||
|
xmlns:prism="http://prismlibrary.com"
|
||||||
|
xmlns:themes="clr-namespace:iElection.Views.Themes;assembly=iElection">
|
||||||
|
<Application.Resources>
|
||||||
|
<ResourceDictionary>
|
||||||
|
|
||||||
|
|
||||||
|
<ResourceDictionary.MergedDictionaries>
|
||||||
|
<themes:LightTheme />
|
||||||
|
</ResourceDictionary.MergedDictionaries>
|
||||||
|
|
||||||
|
<x:Array x:Key="Datas" Type="{x:Type x:String}">
|
||||||
|
<x:String>amir</x:String>
|
||||||
|
<x:String>amir</x:String>
|
||||||
|
<x:String>amir</x:String>
|
||||||
|
<x:String>amir</x:String>
|
||||||
|
<x:String>amir</x:String>
|
||||||
|
<x:String>amir</x:String>
|
||||||
|
</x:Array>
|
||||||
|
<OnPlatform
|
||||||
|
x:Key="fontSize"
|
||||||
|
x:TypeArguments="x:Double"
|
||||||
|
Android="11"
|
||||||
|
WinPhone="12"
|
||||||
|
iOS="10" />
|
||||||
|
|
||||||
|
<Style TargetType="materialFrame:MaterialFrame">
|
||||||
|
<Setter Property="MaterialTheme" Value="Acrylic" />
|
||||||
|
<Setter Property="Padding" Value="8,4" />
|
||||||
|
<Setter Property="CornerRadius" Value="10" />
|
||||||
|
<Setter Property="LightThemeBackgroundColor" Value="#F1F1F1" />
|
||||||
|
</Style>
|
||||||
|
</ResourceDictionary>
|
||||||
|
|
||||||
|
</Application.Resources>
|
||||||
|
</prism:PrismApplication>
|
|
@ -0,0 +1,55 @@
|
||||||
|
using System;
|
||||||
|
using iElection.Services;
|
||||||
|
using iElection.Services.Contracts;
|
||||||
|
using iElection.Utilities;
|
||||||
|
using iElection.ViewModels;
|
||||||
|
using iElection.Views;
|
||||||
|
using Prism;
|
||||||
|
using Prism.Ioc;
|
||||||
|
using Sharpnado.MaterialFrame;
|
||||||
|
using Xamarin.Essentials.Implementation;
|
||||||
|
using Xamarin.Essentials.Interfaces;
|
||||||
|
using Xamarin.Forms;
|
||||||
|
|
||||||
|
namespace iElection
|
||||||
|
{
|
||||||
|
public partial class App
|
||||||
|
{
|
||||||
|
public App(IPlatformInitializer initializer)
|
||||||
|
: base(initializer)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override async void OnInitialized()
|
||||||
|
{
|
||||||
|
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("Mzk5NEAzMTM5MmUzMTJlMzBTRzBTYllmTDM4d1J5QktZZXMwWi9lM3ZZWS9XTlpQcHhXcDFYdldaY2g4PQ==");
|
||||||
|
InitializeComponent();
|
||||||
|
Sharpnado.MaterialFrame.Initializer.Initialize(false,false);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
|
||||||
|
if (UtilitiesWrapper.Instance.UserUtilities.IsAuthorized)
|
||||||
|
await NavigationService.NavigateAsync("NavigationPage/MainPage");
|
||||||
|
else
|
||||||
|
await NavigationService.NavigateAsync("NavigationPage/SignUpPage");
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void RegisterTypes(IContainerRegistry containerRegistry)
|
||||||
|
{
|
||||||
|
containerRegistry.Register<IRestWrapper, RestWrapper>();
|
||||||
|
containerRegistry.RegisterSingleton<IAppInfo, AppInfoImplementation>();
|
||||||
|
|
||||||
|
containerRegistry.RegisterForNavigation<NavigationPage>();
|
||||||
|
containerRegistry.RegisterForNavigation<MainPage, MainPageViewModel>();
|
||||||
|
containerRegistry.RegisterForNavigation<LoginPage, LoginPageViewModel>();
|
||||||
|
containerRegistry.RegisterForNavigation<SignUpPage, SignUpPageViewModel>();
|
||||||
|
|
||||||
|
containerRegistry.RegisterForNavigation<AddContactPage, AddContactPageViewModel>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,90 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// 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.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace iElection {
|
||||||
|
using System;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||||
|
/// </summary>
|
||||||
|
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||||
|
// class via a tool like ResGen or Visual Studio.
|
||||||
|
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||||
|
// with the /str option, or rebuild your VS project.
|
||||||
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
|
internal class AppResource {
|
||||||
|
|
||||||
|
private static global::System.Resources.ResourceManager resourceMan;
|
||||||
|
|
||||||
|
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||||
|
|
||||||
|
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||||
|
internal AppResource() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns the cached ResourceManager instance used by this class.
|
||||||
|
/// </summary>
|
||||||
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
|
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||||
|
get {
|
||||||
|
if (object.ReferenceEquals(resourceMan, null)) {
|
||||||
|
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("iElection.AppResource", typeof(AppResource).Assembly);
|
||||||
|
resourceMan = temp;
|
||||||
|
}
|
||||||
|
return resourceMan;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Overrides the current thread's CurrentUICulture property for all
|
||||||
|
/// resource lookups using this strongly typed resource class.
|
||||||
|
/// </summary>
|
||||||
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
|
internal static global::System.Globalization.CultureInfo Culture {
|
||||||
|
get {
|
||||||
|
return resourceCulture;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
resourceCulture = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to شما به سرور اپلیکیشن متصل نیستید.
|
||||||
|
/// </summary>
|
||||||
|
internal static string BadGetway {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("BadGetway", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to لطفا از اتصال اینترنت خود اطمینان حاصل نمایید (404).
|
||||||
|
/// </summary>
|
||||||
|
internal static string NotFoundError {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("NotFoundError", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to لطفا مجددا وارد حساب کاربری خود شوید.
|
||||||
|
/// </summary>
|
||||||
|
internal static string UnAuthorizeError {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("UnAuthorizeError", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,129 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="BadGetway" xml:space="preserve">
|
||||||
|
<value>شما به سرور اپلیکیشن متصل نیستید</value>
|
||||||
|
</data>
|
||||||
|
<data name="NotFoundError" xml:space="preserve">
|
||||||
|
<value>لطفا از اتصال اینترنت خود اطمینان حاصل نمایید (404)</value>
|
||||||
|
</data>
|
||||||
|
<data name="UnAuthorizeError" xml:space="preserve">
|
||||||
|
<value>لطفا مجددا وارد حساب کاربری خود شوید</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,3 @@
|
||||||
|
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
|
||||||
|
<PropertyChanged />
|
||||||
|
</Weavers>
|
|
@ -0,0 +1,17 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Net.Http;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace iElection.Models
|
||||||
|
{
|
||||||
|
public static class Address
|
||||||
|
{
|
||||||
|
public static string BaseAddress { get; } = "http://94.183.8.213";
|
||||||
|
public static string BaseController { get; } = $"{BaseAddress}/api/v1/";
|
||||||
|
public static string AccountController { get; } = $"{BaseController}Account";
|
||||||
|
public static string NotificationController { get; } = $"{BaseController}Notification";
|
||||||
|
public static string ContactController { get; } = $"{BaseController}Contact";
|
||||||
|
public static string PageController { get; } = $"{BaseController}Page";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace iElection.Models.Api
|
||||||
|
{
|
||||||
|
public class LoginRequest
|
||||||
|
{
|
||||||
|
public string Phone { get; set; }
|
||||||
|
public string Password { get; set; }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace iElection.Models.Api
|
||||||
|
{
|
||||||
|
public class LoginRespond
|
||||||
|
{
|
||||||
|
public string jwt { get; set; }
|
||||||
|
public string fullName { get; set; }
|
||||||
|
public string token_type { get; set; }
|
||||||
|
public int expires_in { get; set; }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace iElection.Models.Config
|
||||||
|
{
|
||||||
|
public class ApiResult
|
||||||
|
{
|
||||||
|
public bool IsSuccess { get; set; }
|
||||||
|
public int StatusCode { get; set; }
|
||||||
|
public string Message { get; set; }
|
||||||
|
}
|
||||||
|
public class ApiResult<T>
|
||||||
|
{
|
||||||
|
public T Data { get; set; }
|
||||||
|
public bool IsSuccess { get; set; }
|
||||||
|
public int StatusCode { get; set; }
|
||||||
|
public string Message { get; set; }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace iElection.Models.Config
|
||||||
|
{
|
||||||
|
public static class Settings
|
||||||
|
{
|
||||||
|
public static string UserToken { get; set; } = "UserToken";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace iElection.Models.Dto
|
||||||
|
{
|
||||||
|
public class CvPageDto
|
||||||
|
{
|
||||||
|
public string Text { get; set; }
|
||||||
|
public List<string> Images { get; set; }
|
||||||
|
public string Title { get; set; }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,50 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Text;
|
||||||
|
using iElection.Annotations;
|
||||||
|
using iElection.Models.Entities;
|
||||||
|
|
||||||
|
namespace iElection.Models.Dto
|
||||||
|
{
|
||||||
|
public class InviteContactDto : INotifyPropertyChanged
|
||||||
|
{
|
||||||
|
public string FirstName { get; set; }
|
||||||
|
public string LastName { get; set; }
|
||||||
|
public int Age { get; set; }
|
||||||
|
public GenderType Gender { get; set; }
|
||||||
|
|
||||||
|
public string GenderName
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (Gender == GenderType.Male)
|
||||||
|
return "مرد";
|
||||||
|
else
|
||||||
|
return "زن";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Phone { get; set; }
|
||||||
|
public int JobId { get; set; }
|
||||||
|
public int DistrictId { get; set; }
|
||||||
|
public string District { get; set; }
|
||||||
|
public string Job { get; set; }
|
||||||
|
public string FullName
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return FirstName + " " + LastName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public event PropertyChangedEventHandler PropertyChanged;
|
||||||
|
|
||||||
|
[NotifyPropertyChangedInvocator]
|
||||||
|
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
|
||||||
|
{
|
||||||
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|