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));
|
||||
}
|
||||
}
|
||||
}
|