using System;
using Android.Content;
using Com.Widget.Jlcountrycode;
using Com.Widget.Jlcountrycode.Sortselect;
using System.Collections.Generic;
using Java.Util;
namespace JLCountrycode
{
public class CountryCodeView
{
///
/// 接口类的返回信息
///
private static CountryCodeView m_Current = null;
///
/// 接口类的返回信息
///
public static CountryCodeView Current
{
get
{
if (m_Current == null)
{
m_Current = new CountryCodeView();
}
return m_Current;
}
}
///
/// 国家区号选择
///
///
public void Show(Action action)
{
JLCountryCodeActivity.OnCountryCodeCallback = new OnCountryCodeCallback(action);
Shared.Application.Activity.StartActivity(new Intent(Shared.Application.Activity, typeof(JLCountryCodeActivity)));
}
///
/// 自定义传入字典数据 选择
///
///
///
///
public void ShowSortSelection(string titleStr, Dictionary> dic, Action action)
{
try
{
SortSelectionUtils.Instance.OnSortSelectCallback = new OnSSCallback(action);
SortSelectionUtils.Instance.SortSelectTitle = titleStr;
SortSelectionUtils.Instance.MSortSelectList = ConvertToHashMap(dic);
Shared.Application.Activity.StartActivity(new Intent(Shared.Application.Activity, typeof(JLSortSelectionActivity)));
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
///
/// Dictionary 转 Android HashMap
///
///
///
Dictionary ConvertToHashMap(Dictionary> dict)
{
Dictionary newDictionary = new Dictionary();
try
{
foreach (string key in dict.Keys)
{
var value = dict[key];
var arrayList = new ArrayList();
arrayList.AddAll(value.ToArray());
newDictionary.Add(key, arrayList);
}
}
catch (Exception Ex)
{
//Logger.LogException(Ex);
}
return newDictionary;
}
}
///
/// OnCountryCodeCallback
///
public class OnCountryCodeCallback : Java.Lang.Object, Com.Widget.Jlcountrycode.Contact.IOnCountryCodeCallback
{
Action mAction;
public OnCountryCodeCallback(Action action)
{
mAction = action;
}
public void OnSelectCountryCallback(string countryName, string code)
{
mAction?.Invoke(countryName, code);
}
}
///
/// OnSortSelectCallback
///
public class OnSSCallback : Java.Lang.Object, IOnSortSelectCallback
{
Action mAction;
public OnSSCallback(Action action)
{
mAction = action;
}
public void OnSortSelectCallback(string countryName)
{
mAction?.Invoke(countryName);
}
}
}