OsIndependentString* TextSecurePreferences::GetGcmRegistrationId(OsIndependentContext* context)
{
  int storedRegistrationIdVersion = GetIntegerPreference(context, (OsIndependentString*)GCM_REGISTRATION_ID_VERSION_PREF, 0);
  if (storedRegistrationIdVersion != Util::GetCurrentApkReleaseVersion(context))
  {
    return nullptr;
  }
  else {
    return GetStringPreference(context, (OsIndependentString*)GCM_REGISTRATION_ID_PREF, nullptr);
  }
}
int TextSecurePreferences::GetPassphraseTimeoutInterval(OsIndependentContext* context)
{
  return GetIntegerPreference(context, (OsIndependentString*)PASSPHRASE_TIMEOUT_INTERVAL_PREF, 5 * 60);
}
int TextSecurePreferences::GetLastVersionCode(OsIndependentContext* context)
{
  return GetIntegerPreference(context, (OsIndependentString*)LAST_VERSION_CODE_PREF, 0);
}
int TextSecurePreferences::GetLocalRegistrationId(OsIndependentContext* context)
{
  return GetIntegerPreference(context, (OsIndependentString*)LOCAL_REGISTRATION_ID_PREF, 0);
}
示例#5
0
#include <fstream>
#include <stdlib.h>
#include <string>
#include <time.h>
#include "CvsIgnore.h"
#include <Utils/PathUtils.h>
#include <Utils/TortoiseRegistry.h>
#include <Utils/TortoiseUtils.h>
#include <Utils/TortoiseDebug.h>
#include <Utils/SyncUtils.h>
#include <Utils/Preference.h>


static DWORD defIgnoreListTimeStamp = 0;
static std::vector<std::string> defIgnoredList;
static DWORD dwUpdateIgnoredListInterval = GetIntegerPreference("IgnoredList update interval");
static CriticalSection myCriticalSection;
static FileChangeParams fcpCvsignore;


// 8-bit safe isspace()
bool myisspace(char c)
{
    return (c == ' ') || (c == '\t') || (c == '\n') || (c == '\r');
}


/* Parse a line of space-separated wildcards and add them to the list. */
/* mostly duplicated from cvs/src/ignore.c */
static void ign_add(const char* ign, std::vector<std::string>& ignlist)
{
EditorListDialog::EditorListDialog(wxWindow* parent, 
                                   EditorListDialog::EditedFileList& editors)
   : ExtDialog(parent, -1, _("TortoiseCVS - List Editors"),
               wxDefaultPosition, wxDefaultSize,
               wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxRESIZE_BORDER | 
               wxDEFAULT_DIALOG_STYLE | wxCLIP_CHILDREN),
     mySortCol(SORT_FILE),
     mySortAscending(true)   
{
   TDEBUG_ENTER("EditorListDialog::EditorListDialog");
   SetIcon(wxIcon(wxT("A_TORTOISE"), wxBITMAP_TYPE_ICO_RESOURCE));

   myEditedFiles = &editors;
   
   std::vector<std::string> tmp;
   EditedFileList::iterator it;

   // Add editors
   it = editors.begin();
   while (it != editors.end())
   {
      std::string s(it->myFilename);
      FindAndReplace<std::string>(s, "/", "\\");
      it->myFilename = s;
      tmp.push_back(s);
      it++;
   }

   // Trim paths to sensible length
   ShortenPaths(tmp, myStub);

   // Maybe use dedicated colour later
   myEditColour = ColorRefToWxColour(GetIntegerPreference("Colour Updated Files"));

   FilenameText* label1 = new FilenameText(this, -1, _("Folder: %s"), wxText(RemoveTrailingDelimiter(myStub)));
   label1->SetWindowStyle(label1->GetWindowStyle() | wxST_NO_AUTORESIZE);
   myEditors = new EditorListListCtrl(this, this, EDITORLISTDLG_ID_EDITORS, myEditColour);
   myEditors->SetSortIndicator(mySortCol, mySortAscending);
   AddEditors(tmp, editors);
   myEditors->SetBestColumnWidth(0);
   myEditors->SetBestColumnWidth(1);
   myEditors->SetBestSize(wxDLG_UNIT(this, wxSize(150, 150)), wxDefaultSize);

   // OK button
   wxBoxSizer* sizerConfirm = new wxBoxSizer(wxHORIZONTAL);
   myOK = new wxButton(this, wxID_OK, _("Close"));
   myOK->SetDefault();
   sizerConfirm->Add(myOK, 0, wxGROW | wxALL, 5);

   // Status bar
   myStatusBar = new wxStatusBar(this, -1);
   myStatusBar->SetStatusText(Printf(_("%d edited file(s)"), editors.size()).c_str());

   // Main box with everything in it
   wxBoxSizer* sizerTop = new wxBoxSizer(wxVERTICAL);
   sizerTop->Add(label1, 0, wxGROW | wxALL, 3);
   sizerTop->Add(myEditors, 2, wxGROW | wxALL, 3);
   sizerTop->Add(sizerConfirm, 0, wxALIGN_CENTER | wxLEFT | wxRIGHT, 10);
   sizerTop->Add(myStatusBar, 0, wxGROW | wxALL, 0);

   // Overall dialog layout settings
   SetAutoLayout(TRUE);
   SetSizer(sizerTop);
   sizerTop->SetSizeHints(this);
   sizerTop->Fit(this);

   RestoreTortoiseDialogSize(this, "ListEditors");
   SetTortoiseDialogPos(this, GetRemoteHandle());
   RestoreTortoiseDialogState(this, "ListEditors");
}
ConflictListDialog::ConflictListDialog(wxWindow* parent, 
                                       const std::vector<std::string>& files)
   : ExtDialog(parent, -1, _("TortoiseCVS - Resolve Conflicts"),
               wxDefaultPosition, wxDefaultSize,
               wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxRESIZE_BORDER | 
               wxDEFAULT_DIALOG_STYLE | wxCLIP_CHILDREN)

{
   TDEBUG_ENTER("ConflictListDialog::ConflictListDialog");
   SetIcon(wxIcon(wxT("A_TORTOISE"), wxBITMAP_TYPE_ICO_RESOURCE));

   std::vector<ItemData*> itemData;
   std::vector<std::string> tmp;
   std::vector<std::string>::const_iterator it;

   // Add files
   it = files.begin();
   while (it != files.end())
   {
      ItemData *data = new ItemData();
      data->m_Filename = *it;
      data->m_Status = CVSStatus::STATUS_CONFLICT;
      itemData.push_back(data);
      tmp.push_back(*it);
      it++;
   }


   // Trim paths to sensible length
   ShortenPaths(tmp, myStub);

   wxStaticText* label2 = new ExtStaticText(this, -1, _(
"CVS encountered conflicts when trying to merge your changes in the files below. Please merge your changes manually."),
                                            wxDefaultPosition, 
                                            wxDLG_UNIT(this, wxSize(60, 15)));
   
   FilenameText* label1 = new FilenameText(this, -1, _("Folder: %s"), wxText(RemoveTrailingDelimiter(myStub)));
   label1->SetWindowStyle(label1->GetWindowStyle() | wxST_NO_AUTORESIZE);
   myFiles = new ExtListCtrl(this, CONFLICTLISTDLG_ID_FILES, wxDefaultPosition, wxDefaultSize, 
                             wxLC_REPORT | wxLC_ALIGN_LEFT);
   myFiles->PushEventHandler(new ListCtrlEventHandler(this));
   myFiles->InsertColumn(0, _("Filename"), wxLIST_FORMAT_LEFT, 0);
   myFiles->InsertColumn(1, _("Format"), wxLIST_FORMAT_LEFT, 0);
   myFiles->InsertColumn(2, _("Status"), wxLIST_FORMAT_LEFT, 0);
   AddFiles(tmp, itemData);
   myFiles->SetBestColumnWidth(0);
   myFiles->SetBestColumnWidth(1);
   myFiles->SetBestColumnWidth(2);
   myFiles->SetBestSize(wxDLG_UNIT(this, wxSize(150, 150)), wxDefaultSize);

   wxStaticText* tip = new wxStaticText(this, -1,
                                        _("To resolve the conflicts, double or right click on the files above."));
   tip->SetForegroundColour(SetForegroundColour(ColorRefToWxColour(GetIntegerPreference("Colour Tip Text"))));

   // OK/Cancel button
   wxBoxSizer* sizerConfirm = new wxBoxSizer(wxHORIZONTAL);
   myOK = new wxButton(this, wxID_OK, _("Close"));
   myOK->SetDefault();
   sizerConfirm->Add(myOK, 0, wxGROW | wxALL, 5);

   // Status bar
   myStatusBar = new wxStatusBar(this, -1);
   myStatusBar->SetStatusText(Printf(_("%d file(s)"), files.size()).c_str());

   // Main box with everything in it
   wxBoxSizer* sizerTop = new wxBoxSizer(wxVERTICAL);
   sizerTop->Add(label2, 0, wxGROW | wxALL, 3);
   sizerTop->Add(label1, 0, wxGROW | wxALL, 3);
   sizerTop->Add(myFiles, 2, wxGROW | wxALL, 3);
   sizerTop->Add(tip, 0, wxALIGN_LEFT | wxALL, 3);
   sizerTop->Add(sizerConfirm, 0, wxALIGN_CENTER | wxLEFT | wxRIGHT, 10);
   sizerTop->Add(myStatusBar, 0, wxGROW | wxALL, 0);

   // Overall dialog layout settings
   SetAutoLayout(TRUE);
   SetSizer(sizerTop);
   sizerTop->SetSizeHints(this);
   sizerTop->Fit(this);

   RestoreTortoiseDialogSize(this, "Conflict");
   SetTortoiseDialogPos(this, GetRemoteHandle());
   RestoreTortoiseDialogState(this, "Conflict");
}