6 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
\r
7 Dialogs, ComCtrls, StdCtrls, GnokiiAPI;
\r
10 TBackupThread = class(TThread)
\r
12 procedure Execute; override;
\r
16 TBackupProgressForm = class(TForm)
\r
17 GroupBox1: TGroupBox;
\r
20 ProgressBar1: TProgressBar;
\r
21 ProgressBar2: TProgressBar;
\r
24 ProgressBar3: TProgressBar;
\r
29 procedure FormActivate(Sender: TObject);
\r
30 procedure Button1Click(Sender: TObject);
\r
31 procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
\r
33 { Private declarations }
\r
35 { Public declarations }
\r
39 BackupProgressForm: TBackupProgressForm;
\r
40 BackupThread: TBackupThread;
\r
44 uses MainUnit, backup;
\r
48 procedure TBackupThread.Execute;
\r
50 pbkstatus:GSM_MemoryStatus;
\r
52 pbkentry:GSM_PhonebookEntry;
\r
55 if PhoneBackupAvailable then //backup
\r
57 if backupform.checkbox3.checked then
\r
59 PhoneBackup.CallerAvailable:=1;
\r
62 bitmap.type2:=GSM_CallerLogo;
\r
64 GSM_GetBitmap(@bitmap);
\r
65 PhoneBackup.CallerGroups[i]:=bitmap;
\r
66 backupprogressform.ProgressBar3.StepIt;
\r
67 if Terminated then exit;
\r
70 if backupform.checkbox4.checked then
\r
72 bitmap.type2:=GSM_7110OperatorLogo;
\r
73 if (GSM_GetBitmap(@bitmap)<>0) then
\r
75 if Terminated then exit;
\r
76 bitmap.type2:=GSM_OperatorLogo;
\r
77 if (GSM_GetBitmap(@bitmap)=0) then
\r
79 PhoneBackup.OperatorLogoAvailable:=1;
\r
81 end else PhoneBackup.OperatorLogoAvailable:=1;
\r
82 if Terminated then exit;
\r
83 if PhoneBackup.OperatorLogoAvailable=1 then
\r
85 PhoneBackup.OperatorLogo:=Bitmap;
\r
86 BackupProgressForm.Label5.Caption:='Done';
\r
89 BackupProgressForm.Label5.Caption:='Failed';
\r
92 if backupform.checkbox2.checked then
\r
94 pbkstatus.MemoryType:=GMT_ME;
\r
95 GSM_GetMemoryStatus(@pbkstatus);
\r
96 if Terminated then exit;
\r
97 backupprogressform.ProgressBar1.Max:=pbkstatus.Used;
\r
98 PhoneBackup.PhonePhonebookSize:=pbkstatus.Used+pbkstatus.Free;
\r
100 while (i<>pbkstatus.Used+pbkstatus.Free) do
\r
102 pbkentry.MemoryType:=GMT_ME;
\r
103 pbkentry.Location:=i;
\r
104 GSM_GetMemoryLocation(@pbkentry);
\r
105 if Terminated then exit;
\r
106 if (pbkentry.Name[1]<>chr(0)) then
\r
108 PhoneBackup.PhonePhonebookUsed:=PhoneBackup.PhonePhonebookUsed+1;
\r
109 PhoneBackup.PhonePhonebook[PhoneBackup.PhonePhonebookUsed]:=pbkentry;
\r
110 backupprogressform.ProgressBar1.StepIt;
\r
113 if j=pbkstatus.Used then break;
\r
117 if backupform.checkbox1.checked then
\r
119 pbkstatus.MemoryType:=GMT_SM;
\r
120 GSM_GetMemoryStatus(@pbkstatus);
\r
121 if Terminated then exit;
\r
122 backupprogressform.ProgressBar2.Max:=pbkstatus.Used;
\r
123 PhoneBackup.SIMPhonebookSize:=pbkstatus.Used+pbkstatus.Free;
\r
125 while (i<>pbkstatus.Used+pbkstatus.Free) do
\r
127 pbkentry.MemoryType:=GMT_SM;
\r
128 pbkentry.Location:=i;
\r
129 GSM_GetMemoryLocation(@pbkentry);
\r
130 if Terminated then exit;
\r
131 if (pbkentry.Name[1]<>chr(0)) then
\r
133 PhoneBackup.SIMPhonebookUsed:=PhoneBackup.SIMPhonebookUsed+1;
\r
134 PhoneBackup.SIMPhonebook[PhoneBackup.SIMPhonebookUsed]:=pbkentry;
\r
135 backupprogressform.ProgressBar2.StepIt;
\r
138 if j=pbkstatus.Used then break;
\r
142 if backupform.checkbox5.checked then
\r
144 case GSM_GetModelFeature(FN_STARTUP) of
\r
145 F_STANIM :PhoneBackup.StartupLogo.type2:=GSM_StartupLogo;
\r
146 F_STA :PhoneBackup.StartupLogo.type2:=GSM_StartupLogo;
\r
147 F_STA62 :PhoneBackup.StartupLogo.type2:=GSM_6210StartupLogo;
\r
148 F_STA71 :PhoneBackup.StartupLogo.type2:=GSM_7110StartupLogo;
\r
150 if GSM_GetModelFeature(FN_STARTUP)<>0 then
\r
152 PhoneBackup.StartupLogoAvailable:=1;
\r
153 GSM_GetBitmap(@PhoneBackup.StartupLogo);
\r
154 if Terminated then exit;
\r
156 PhoneBackup.StartupText.type2:=GSM_WelcomeNoteText;
\r
157 GSM_GetBitmap(@PhoneBackup.StartupText);
\r
158 BackupProgressForm.Label7.Caption:='Done';
\r
159 if Terminated then exit;
\r
161 if not Terminated then
\r
163 if MainForm.SaveDialog1.Execute then
\r
165 GSM_SaveBackupFile(PChar(MainForm.SaveDialog1.FileName),@phonebackup);
\r
167 BackupProgressForm.Close;
\r
171 if backupform.checkbox3.checked then
\r
175 GSM_SetBitmap(@PhoneBackup.CallerGroups[i]);
\r
176 backupprogressform.ProgressBar3.StepIt;
\r
177 if Terminated then exit;
\r
180 if backupform.checkbox4.checked then
\r
182 GSM_SetBitmap(@PhoneBackup.OperatorLogo);
\r
183 if Terminated then exit;
\r
184 BackupProgressForm.Label5.Caption:='Done';
\r
186 if backupform.checkbox2.checked then
\r
188 pbkstatus.MemoryType:=GMT_ME;
\r
189 GSM_GetMemoryStatus(@pbkstatus);
\r
190 if Terminated then exit;
\r
191 backupprogressform.ProgressBar1.Max:=pbkstatus.Used+pbkstatus.Free;
\r
193 while (i<>pbkstatus.Used+pbkstatus.Free) do
\r
195 pbkentry.MemoryType:=GMT_ME;
\r
196 pbkentry.Location:=i;
\r
197 pbkentry.Name[1]:=chr(0);
\r
198 pbkentry.Number[1]:=chr(0);
\r
199 pbkentry.SubEntriesCount:=0;
\r
200 if j<=PhoneBackup.PhonePhonebookUsed then
\r
202 if PhoneBackup.PhonePhonebook[j].Location=pbkentry.Location then
\r
204 pbkentry:=PhoneBackup.PhonePhonebook[j];
\r
208 GSM_WritePhonebookLocation(@pbkentry);
\r
209 if Terminated then exit;
\r
210 backupprogressform.ProgressBar1.StepIt;
\r
214 if backupform.checkbox1.checked then
\r
216 pbkstatus.MemoryType:=GMT_SM;
\r
217 GSM_GetMemoryStatus(@pbkstatus);
\r
218 if Terminated then exit;
\r
219 backupprogressform.ProgressBar2.Max:=pbkstatus.Used+pbkstatus.Free;
\r
221 while (i<>pbkstatus.Used+pbkstatus.Free) do
\r
223 pbkentry.MemoryType:=GMT_SM;
\r
224 pbkentry.Location:=i;
\r
225 pbkentry.Name[1]:=chr(0);
\r
226 pbkentry.Number[1]:=chr(0);
\r
227 pbkentry.SubEntriesCount:=0;
\r
228 if j<=PhoneBackup.SIMPhonebookUsed then
\r
230 if PhoneBackup.SIMPhonebook[j].Location=pbkentry.Location then
\r
232 pbkentry:=PhoneBackup.SIMPhonebook[j];
\r
236 GSM_WritePhonebookLocation(@pbkentry);
\r
237 if Terminated then exit;
\r
238 backupprogressform.ProgressBar2.StepIt;
\r
242 if backupform.checkbox5.checked then
\r
244 if GSM_GetModelFeature(FN_STARTUP)<>0 then
\r
246 if PhoneBackup.StartupLogoAvailable<>0 then
\r
248 GSM_SetBitmap(@PhoneBackup.StartupLogo);
\r
249 if Terminated then exit;
\r
252 GSM_SetBitmap(@PhoneBackup.StartupText);
\r
254 if not Terminated then
\r
256 BackupProgressForm.Close;
\r
261 procedure TBackupProgressForm.FormActivate(Sender: TObject);
\r
263 MainForm.Timer2.Enabled:=false;
\r
265 BackupProgressForm.Label5.Caption:='';
\r
266 BackupProgressForm.Label7.Caption:='';
\r
268 ProgressBar1.Position:=0;
\r
269 ProgressBar2.Position:=0;
\r
270 ProgressBar3.Position:=0;
\r
272 Label3.Enabled:=backupform.checkbox3.checked;
\r
273 Label4.Enabled:=backupform.checkbox4.checked;
\r
274 Label1.Enabled:=backupform.checkbox2.checked;
\r
275 Label2.Enabled:=backupform.checkbox1.checked;
\r
276 Label6.Enabled:=backupform.checkbox5.checked;
\r
278 BackupThread:=TBackupThread.Create(false);
\r
281 procedure TBackupProgressForm.Button1Click(Sender: TObject);
\r
283 BackupProgressForm.Close;
\r
286 procedure TBackupProgressForm.FormCloseQuery(Sender: TObject;
\r
287 var CanClose: Boolean);
\r
289 BackupThread.Terminate();
\r
290 BackupProgressForm.Close;
\r
291 MainForm.Timer2.Enabled:=true;
\r