updateSubscription and try to re-select the last choice.

This commit is contained in:
JaredDC 2021-06-29 23:01:52 +08:00
parent 672eb4b365
commit a52092b363
3 changed files with 51 additions and 4 deletions

View file

@ -1313,12 +1313,54 @@ namespace v2rayN.Forms
RefreshServers();
}
}
/// <summary>
/// Reset to the previous selected.
/// </summary>
private int FindIndexByRemarks(string remarks)
{
for (int k = 0; k < config.vmess.Count; k++)
{
VmessItem item = config.vmess[k];
if (item.remarks.Equals(remarks))
{
return k;
}
}
for (int k = 0; k < config.vmess.Count; k++)
{
VmessItem item = config.vmess[k];
if (item.remarks.Contains(remarks.Substring(0, 2)))
{
// 汉字也是占一个, 台湾 CHT [06]
return k;
}
}
return 0;
}
private void tsbSubUpdate_Click(object sender, EventArgs e)
{
UpdateSubscriptionProcess();
VmessItem item = config.vmess[config.index];
var remarks = item.remarks;
var handle = new UpdateHandle();
void _updateUIAndReselect(bool success, string msg)
{
AppendText(false, msg);
if (success)
{
RefreshServers();
}
if (handle.updateSubscriptionProcessCompleted)
{
// wait for above fxcking async program to complete
int index = FindIndexByRemarks(remarks);
SetDefaultServer(index);
AppendText(false, $"{UIRes.I18N("MsgUpdateSubscriptionEndReslectLast")}");
RefreshServers();
handle.updateSubscriptionProcessCompleted = false;
}
};
handle.UpdateSubscriptionProcess(config, _updateUIAndReselect);
}
/// <summary>
/// the subscription update process
/// </summary>

View file

@ -14,7 +14,7 @@ namespace v2rayN.Handler
{
Action<bool, string> _updateFunc;
private Config _config;
public bool updateSubscriptionProcessCompleted = false;
public event EventHandler<ResultEventArgs> AbsoluteCompleted;
public class ResultEventArgs : EventArgs
@ -212,6 +212,7 @@ namespace v2rayN.Handler
{
_updateFunc(false, $"{hashCode}{UIRes.I18N("MsgFailedImportSubscription")}");
}
updateSubscriptionProcessCompleted = true;
_updateFunc(true, $"{hashCode}{UIRes.I18N("MsgUpdateSubscriptionEnd")}");
}
else

View file

@ -498,6 +498,10 @@ del $(TargetDir)*.xml $(TargetDir)*.so $(TargetDir)*.dylib
if not "$(ConfigurationName)" == "Debug" del $(TargetDir)*.pdb</PostBuildEvent>
</PropertyGroup>
<Import Project="..\packages\Grpc.Core.2.23.0\build\net45\Grpc.Core.targets" Condition="Exists('..\packages\Grpc.Core.2.23.0\build\net45\Grpc.Core.targets')" />
<PropertyGroup>
<PreBuildEvent>TASKKILL /F /IM v2rayN.exe /T
set errolevel=0</PreBuildEvent>
</PropertyGroup>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">