diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/SyncState/SyncStateDialog.Designer.cs b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/SyncState/SyncStateDialog.Designer.cs
index ea558fa..ead5216 100644
--- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/SyncState/SyncStateDialog.Designer.cs
+++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/SyncState/SyncStateDialog.Designer.cs
@@ -155,7 +155,8 @@
resources.GetString("comboTimeFrame.Items4"),
resources.GetString("comboTimeFrame.Items5"),
resources.GetString("comboTimeFrame.Items6"),
- resources.GetString("comboTimeFrame.Items7")});
+ resources.GetString("comboTimeFrame.Items7"),
+ resources.GetString("comboTimeFrame.Items101")}); // custom time frame value
this.comboTimeFrame.Name = "comboTimeFrame";
this.comboTimeFrame.SelectedIndexChanged += new System.EventHandler(this.comboTimeFrame_SelectedIndexChanged);
//
diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/SyncState/SyncStateDialog.cs b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/SyncState/SyncStateDialog.cs
index bccaa5e..a6bf911 100644
--- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/SyncState/SyncStateDialog.cs
+++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/SyncState/SyncStateDialog.cs
@@ -36,6 +36,8 @@ namespace Acacia.Features.SyncState
private readonly Button[] _syncButtons;
+ private readonly System.ComponentModel.ComponentResourceManager resources;
+
private ZPushAccount SelectedAccount
{
get
@@ -48,6 +50,9 @@ namespace Acacia.Features.SyncState
{
InitializeComponent();
+ // Used for handling custom time frame values.
+ resources = new System.ComponentModel.ComponentResourceManager(typeof(SyncStateDialog));
+
// Ensure these are in sync with ResyncOption
_syncButtons = new Button[]
{
@@ -81,6 +86,9 @@ namespace Acacia.Features.SyncState
if (SelectedAccount == null)
comboTimeFrame.SelectedIndex = 0;
+ // Custom values handling. Custom values will be appended into comboTimeFrame after the last standard value (7)
+ else if (SelectedAccount.SyncTimeFrame == (SyncTimeFrame)(int)SyncTimeFrame.YEAR_1) // 1 year
+ comboTimeFrame.SelectedIndex = comboTimeFrame.Items.IndexOf(resources.GetString("comboTimeFrame.Items101"));
else
comboTimeFrame.SelectedIndex = (int)SelectedAccount.SyncTimeFrame;
@@ -97,8 +105,17 @@ namespace Acacia.Features.SyncState
if (SelectedAccount != null)
{
SyncTimeFrame timeFrame = (SyncTimeFrame)comboTimeFrame.SelectedIndex;
- bool isDirty = timeFrame != SelectedAccount.SyncTimeFrame;
- buttonApplyTimeFrame.Enabled = buttonResetTimeFrame.Enabled = isDirty;
+ // Handle custom values
+ if ((int)timeFrame == comboTimeFrame.Items.IndexOf(resources.GetString("comboTimeFrame.Items101")))
+ {
+ bool isDirty = SelectedAccount.SyncTimeFrame != (SyncTimeFrame)(int)SyncTimeFrame.YEAR_1;
+ buttonApplyTimeFrame.Enabled = buttonResetTimeFrame.Enabled = isDirty;
+ }
+ else
+ {
+ bool isDirty = timeFrame != SelectedAccount.SyncTimeFrame;
+ buttonApplyTimeFrame.Enabled = buttonResetTimeFrame.Enabled = isDirty;
+ }
}
else
{
@@ -118,8 +135,16 @@ namespace Acacia.Features.SyncState
{
Busy = true;
- // TODO: do this in the background
- _feature.SetDeviceOptions(SelectedAccount, (SyncTimeFrame)comboTimeFrame.SelectedIndex);
+ // Custom values handling. Custom values will be appended into comboTimeFrame after the last standard value (7)
+ if (comboTimeFrame.SelectedItem.Equals(resources.GetString("comboTimeFrame.Items101")))
+ {
+ _feature.SetDeviceOptions(SelectedAccount, (SyncTimeFrame)(int)SyncTimeFrame.YEAR_1);
+ }
+ else
+ {
+ // TODO: do this in the background
+ _feature.SetDeviceOptions(SelectedAccount, (SyncTimeFrame)comboTimeFrame.SelectedIndex);
+ }
CheckTimeFrameDirty();
}
}
diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/SyncState/SyncStateDialog.resx b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/SyncState/SyncStateDialog.resx
index d3b1824..c7427bd 100644
--- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/SyncState/SyncStateDialog.resx
+++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/SyncState/SyncStateDialog.resx
@@ -444,6 +444,9 @@
6 months
+
+ 1 year
+
4, 5
diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Properties/Resources.Designer.cs b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Properties/Resources.Designer.cs
index 6f2014a..a0200be 100644
--- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Properties/Resources.Designer.cs
+++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Properties/Resources.Designer.cs
@@ -1438,7 +1438,18 @@ namespace Acacia.Properties {
return ResourceManager.GetString("SyncTimeFrame_WEEK_2", resourceCulture);
}
}
-
+
+ ///
+ /// Looks up a localized string similar to 1 year.
+ ///
+ internal static string SyncTimeFrame_YEAR_1
+ {
+ get
+ {
+ return ResourceManager.GetString("SyncTimeFrame_YEAR_1", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Kopano.
///
diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Properties/Resources.resx b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Properties/Resources.resx
index f026e3e..07f8f4e 100644
--- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Properties/Resources.resx
+++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Properties/Resources.resx
@@ -578,6 +578,9 @@ New sync window: {1}
6 months
+
+ 1 year
+
1 week
diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/ZPush/ZPushTypes.cs b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/ZPush/ZPushTypes.cs
index 9e9de9e..8306e65 100644
--- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/ZPush/ZPushTypes.cs
+++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/ZPush/ZPushTypes.cs
@@ -161,7 +161,8 @@ namespace Acacia.ZPush
WEEK_2,
MONTH_1,
MONTH_3,
- MONTH_6
+ MONTH_6,
+ YEAR_1 = 101 // Custom value
}
public static class SyncTimeFrameMethods