diff --git a/.gitignore b/.gitignore index ec4e4d19..15afed1a 100644 --- a/.gitignore +++ b/.gitignore @@ -282,3 +282,5 @@ Thumbs.db /src/java/MasterKee /src/PluginSdkBinding/obj/ReleaseNoNet +/src/MasterKeeWinPlugin/bin/Release +/src/SamplePlugin diff --git a/src/AndroidFileChooserBinding/AndroidFileChooserBinding.csproj b/src/AndroidFileChooserBinding/AndroidFileChooserBinding.csproj index b30112ca..7b39d548 100644 --- a/src/AndroidFileChooserBinding/AndroidFileChooserBinding.csproj +++ b/src/AndroidFileChooserBinding/AndroidFileChooserBinding.csproj @@ -3,8 +3,6 @@ Debug AnyCPU - 8.0.30703 - 2.0 {3C0F7FE5-639F-4422-A087-8B26CF862D1B} {10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} Library @@ -22,6 +20,7 @@ DEBUG;TRACE prompt 4 + None pdbonly @@ -30,6 +29,7 @@ TRACE prompt 4 + false bin\ReleaseNoNet\ @@ -39,30 +39,30 @@ AnyCPU prompt MinimumRecommendedRules.ruleset + false + 4 + + ..\packages\Xamarin.Android.Support.v4.20.0.0.4\lib\MonoAndroid10\Xamarin.Android.Support.v4.dll + - - project.zip - + - - - + + + project.zip + + + + + 20.0.0.4 + False + + \ No newline at end of file diff --git a/src/AndroidFileChooserBinding/Jars/android-support-v4.jar b/src/AndroidFileChooserBinding/Jars/android-support-v4.jar index 428bdbc0..187bdf48 100644 Binary files a/src/AndroidFileChooserBinding/Jars/android-support-v4.jar and b/src/AndroidFileChooserBinding/Jars/android-support-v4.jar differ diff --git a/src/AndroidFileChooserBinding/Transforms/Metadata.xml b/src/AndroidFileChooserBinding/Transforms/Metadata.xml index c9cc997f..ea974e92 100644 --- a/src/AndroidFileChooserBinding/Transforms/Metadata.xml +++ b/src/AndroidFileChooserBinding/Transforms/Metadata.xml @@ -1,5 +1,8 @@ + + + + + + 19.0.0 + False + + \ No newline at end of file diff --git a/src/KP2AKdbLibraryBinding/KP2AKdbLibraryBinding.csproj b/src/KP2AKdbLibraryBinding/KP2AKdbLibraryBinding.csproj index 89a315db..2bb393b7 100644 --- a/src/KP2AKdbLibraryBinding/KP2AKdbLibraryBinding.csproj +++ b/src/KP2AKdbLibraryBinding/KP2AKdbLibraryBinding.csproj @@ -3,8 +3,6 @@ Debug AnyCPU - 8.0.30703 - 2.0 {70D3844A-D9FA-4A64-B205-A84C6A822196} {10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} Library @@ -22,6 +20,7 @@ DEBUG;TRACE prompt 4 + None pdbonly @@ -30,6 +29,7 @@ TRACE prompt 4 + false bin\ReleaseNoNet\ @@ -39,6 +39,8 @@ AnyCPU prompt MinimumRecommendedRules.ruleset + false + 4 diff --git a/src/KeePassLib2Android/KeePassLib2Android.csproj b/src/KeePassLib2Android/KeePassLib2Android.csproj index d6516bda..29752ec8 100644 --- a/src/KeePassLib2Android/KeePassLib2Android.csproj +++ b/src/KeePassLib2Android/KeePassLib2Android.csproj @@ -3,8 +3,6 @@ Debug AnyCPU - 10.0.0 - 2.0 {545B4A6B-8BBA-4FBE-92FC-4AC060122A54} {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} Library @@ -20,7 +18,7 @@ full False bin\Debug - DEBUG;EXCLUDE_TWOFISH;INCLUDE_KEYBOARD;EXCLUDE_FILECHOOSER;EXCLUDE_JAVAFILESTORAGE;EXCLUDE_KEYTRANSFORM + DEBUG;EXCLUDE_TWOFISH;EXCLUDE_KEYBOARD;INCLUDE_FILECHOOSER;_EXCLUDE_JAVAFILESTORAGE;INCLUDE_KEYTRANSFORM prompt 4 False @@ -34,7 +32,6 @@ 4 False False - SdkOnly none @@ -44,7 +41,6 @@ 4 False False - SdkOnly @@ -156,7 +152,7 @@ - {70d3844a-d9fa-4a64-b205-a84c6a822196} + {70D3844A-D9FA-4A64-B205-A84C6A822196} KP2AKdbLibraryBinding diff --git a/src/KeePassLib2Android/Keys/KcpKeyFile.cs b/src/KeePassLib2Android/Keys/KcpKeyFile.cs index edbc949d..8da75c49 100644 --- a/src/KeePassLib2Android/Keys/KcpKeyFile.cs +++ b/src/KeePassLib2Android/Keys/KcpKeyFile.cs @@ -41,15 +41,16 @@ namespace KeePassLib.Keys /// public sealed class KcpKeyFile : IUserKey { - private string m_strPath; + private IOConnectionInfo m_ioc; private ProtectedBinary m_pbKeyData; + private ProtectedBinary m_pbFileData; /// /// Path to the key file. /// public string Path { - get { return m_strPath; } + get { return m_ioc.Path; } } /// @@ -62,6 +63,16 @@ namespace KeePassLib.Keys get { return m_pbKeyData; } } + public IOConnectionInfo Ioc + { + get { return m_ioc; } + } + + public ProtectedBinary RawFileData + { + get { return m_pbFileData; } + } + public KcpKeyFile(string strKeyFile) { Construct(IOConnectionInfo.FromPath(strKeyFile), false); @@ -82,17 +93,22 @@ namespace KeePassLib.Keys Construct(iocKeyFile, bThrowIfDbFile); } - private void Construct(IOConnectionInfo iocFile, bool bThrowIfDbFile) + public KcpKeyFile(byte[] keyFileContents, IOConnectionInfo iocKeyFile, bool bThrowIfDbFile) { - byte[] pbFileData = IOConnection.ReadFile(iocFile); - if(pbFileData == null) throw new Java.IO.FileNotFoundException(); + Construct(keyFileContents, iocKeyFile, bThrowIfDbFile); + } - if(bThrowIfDbFile && (pbFileData.Length >= 8)) + private void Construct(byte[] pbFileData, IOConnectionInfo iocKeyFile, bool bThrowIfDbFile) + { + if (pbFileData == null) throw new Java.IO.FileNotFoundException(); + m_pbFileData = new ProtectedBinary(true, pbFileData); + + if (bThrowIfDbFile && (pbFileData.Length >= 8)) { uint uSig1 = MemUtil.BytesToUInt32(MemUtil.Mid(pbFileData, 0, 4)); uint uSig2 = MemUtil.BytesToUInt32(MemUtil.Mid(pbFileData, 4, 4)); - if(((uSig1 == KdbxFile.FileSignature1) && + if (((uSig1 == KdbxFile.FileSignature1) && (uSig2 == KdbxFile.FileSignature2)) || ((uSig1 == KdbxFile.FileSignaturePreRelease1) && (uSig2 == KdbxFile.FileSignaturePreRelease2)) || @@ -106,16 +122,22 @@ namespace KeePassLib.Keys } byte[] pbKey = LoadXmlKeyFile(pbFileData); - if(pbKey == null) pbKey = LoadKeyFile(pbFileData); + if (pbKey == null) pbKey = LoadKeyFile(pbFileData); - if(pbKey == null) throw new InvalidOperationException(); + if (pbKey == null) throw new InvalidOperationException(); - m_strPath = iocFile.Path; + m_ioc = iocKeyFile; m_pbKeyData = new ProtectedBinary(true, pbKey); MemUtil.ZeroByteArray(pbKey); } + private void Construct(IOConnectionInfo iocFile, bool bThrowIfDbFile) + { + byte[] pbFileData = IOConnection.ReadFile(iocFile); + Construct(pbFileData, iocFile, bThrowIfDbFile); + } + // public void Clear() // { // m_strPath = string.Empty; diff --git a/src/KeePassLib2Android/Serialization/IOConnection.cs b/src/KeePassLib2Android/Serialization/IOConnection.cs index e02452be..aff3ad2d 100644 --- a/src/KeePassLib2Android/Serialization/IOConnection.cs +++ b/src/KeePassLib2Android/Serialization/IOConnection.cs @@ -647,14 +647,17 @@ namespace KeePassLib.Serialization try { sIn = IOConnection.OpenRead(ioc); - if(sIn == null) return null; + if (sIn == null) return null; ms = new MemoryStream(); MemUtil.CopyStream(sIn, ms); return ms.ToArray(); } - catch(Exception) { } + catch (Exception e) + { + Kp2aLog.Log("error opening file: " + e); + } finally { if(sIn != null) sIn.Close(); diff --git a/src/Kp2aBusinessLogic/IKp2aApp.cs b/src/Kp2aBusinessLogic/IKp2aApp.cs index ec726578..4c930487 100644 --- a/src/Kp2aBusinessLogic/IKp2aApp.cs +++ b/src/Kp2aBusinessLogic/IKp2aApp.cs @@ -79,8 +79,17 @@ namespace keepass2android Handler UiThreadHandler { get; } IProgressDialog CreateProgressDialog(Context ctx); + + /// + /// returns the file storage for the given ioc. might be a caching file storage + /// IFileStorage GetFileStorage(IOConnectionInfo iocInfo); + /// + /// returns the file storage for the given ioc. if allowCache=false, no cached file storage is returned + /// + IFileStorage GetFileStorage(IOConnectionInfo iocInfo, bool allowCache); + void TriggerReload(Context context); /// @@ -90,5 +99,7 @@ namespace keepass2android //bool OnServerCertificateError(int certificateProblem); RemoteCertificateValidationCallback CertificateValidationCallback { get; } + + } } \ No newline at end of file diff --git a/src/Kp2aBusinessLogic/Io/AndroidContentStorage.cs b/src/Kp2aBusinessLogic/Io/AndroidContentStorage.cs new file mode 100644 index 00000000..b406542b --- /dev/null +++ b/src/Kp2aBusinessLogic/Io/AndroidContentStorage.cs @@ -0,0 +1,200 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; + +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; +using KeePassLib.Serialization; + +namespace keepass2android.Io +{ + //TODOC,TOTEST, TODO: unimplemented methods? + public class AndroidContentStorage: IFileStorage + { + private readonly Context _ctx; + + public AndroidContentStorage(Context ctx) + { + _ctx = ctx; + } + + public IEnumerable SupportedProtocols + { + get { yield return "content"; } + } + + public void Delete(IOConnectionInfo ioc) + { + throw new NotImplementedException(); + } + + public bool CheckForFileChangeFast(IOConnectionInfo ioc, string previousFileVersion) + { + return false; + } + + public string GetCurrentFileVersionFast(IOConnectionInfo ioc) + { + return null; + } + + public Stream OpenFileForRead(IOConnectionInfo ioc) + { + return _ctx.ContentResolver.OpenInputStream(Android.Net.Uri.Parse(ioc.Path)); + } + + public IWriteTransaction OpenWriteTransaction(IOConnectionInfo ioc, bool useFileTransaction) + { + return new AndroidContentWriteTransaction(ioc.Path, _ctx); + } + + public string GetFilenameWithoutPathAndExt(IOConnectionInfo ioc) + { + return ""; + } + + public bool RequiresCredentials(IOConnectionInfo ioc) + { + return false; + } + + public void CreateDirectory(IOConnectionInfo ioc, string newDirName) + { + throw new NotImplementedException(); + } + + public IEnumerable ListContents(IOConnectionInfo ioc) + { + throw new NotImplementedException(); + } + + public FileDescription GetFileDescription(IOConnectionInfo ioc) + { + throw new NotImplementedException(); + } + + public void PrepareFileUsage(Context ctx, IOConnectionInfo ioc) + { + + } + + public bool RequiresSetup(IOConnectionInfo ioConnection) + { + return false; + } + + public string IocToPath(IOConnectionInfo ioc) + { + return ioc.Path; + } + + public void StartSelectFile(IFileStorageSetupInitiatorActivity activity, bool isForSave, int requestCode, string protocolId) + { + Intent intent = new Intent(); + activity.IocToIntent(intent, new IOConnectionInfo() { Path = protocolId + "://" }); + activity.OnImmediateResult(requestCode, (int)FileStorageResults.FileChooserPrepared, intent); + } + + public void PrepareFileUsage(IFileStorageSetupInitiatorActivity activity, IOConnectionInfo ioc, int requestCode, + bool alwaysReturnSuccess) + { + Intent intent = new Intent(); + activity.IocToIntent(intent, ioc); + activity.OnImmediateResult(requestCode, (int)FileStorageResults.FileUsagePrepared, intent); + } + + public void OnCreate(IFileStorageSetupActivity activity, Bundle savedInstanceState) + { + throw new NotImplementedException(); + } + + public void OnResume(IFileStorageSetupActivity activity) + { + throw new NotImplementedException(); + } + + public void OnStart(IFileStorageSetupActivity activity) + { + throw new NotImplementedException(); + } + + public void OnActivityResult(IFileStorageSetupActivity activity, int requestCode, int resultCode, Intent data) + { + throw new NotImplementedException(); + } + + public string GetDisplayName(IOConnectionInfo ioc) + { + return ioc.Path; + } + + public string CreateFilePath(string parent, string newFilename) + { + throw new NotImplementedException(); + } + + public IOConnectionInfo GetParentPath(IOConnectionInfo ioc) + { + throw new NotImplementedException(); + } + + public IOConnectionInfo GetFilePath(IOConnectionInfo folderPath, string filename) + { + throw new NotImplementedException(); + } + + public bool IsPermanentLocation(IOConnectionInfo ioc) + { + //on pre-Kitkat devices, content:// is always temporary: + return false; + } + + public bool IsReadOnly(IOConnectionInfo ioc) + { + //on pre-Kitkat devices, we can't write content:// files + return true; + } + } + + class AndroidContentWriteTransaction : IWriteTransaction + { + private readonly string _path; + private readonly Context _ctx; + private MemoryStream _memoryStream; + + public AndroidContentWriteTransaction(string path, Context ctx) + { + _path = path; + _ctx = ctx; + } + + public void Dispose() + { + _memoryStream.Dispose(); + } + + public Stream OpenFile() + { + _memoryStream = new MemoryStream(); + return _memoryStream; + } + + public void CommitWrite() + { + using (Stream outputStream = _ctx.ContentResolver.OpenOutputStream(Android.Net.Uri.Parse(_path))) + { + outputStream.Write(_memoryStream.ToArray(), 0, (int)_memoryStream.Length); + } + + + } + } + + +} \ No newline at end of file diff --git a/src/Kp2aBusinessLogic/Io/BuiltInFileStorage.cs b/src/Kp2aBusinessLogic/Io/BuiltInFileStorage.cs index f856f4cc..edb3477a 100644 --- a/src/Kp2aBusinessLogic/Io/BuiltInFileStorage.cs +++ b/src/Kp2aBusinessLogic/Io/BuiltInFileStorage.cs @@ -4,6 +4,7 @@ using System.Globalization; using System.IO; using System.Net; using System.Net.Security; +using System.Security; using Android.Content; using Android.OS; using Java.Security.Cert; @@ -295,5 +296,67 @@ namespace keepass2android.Io res.Path += filename; return res; } + + public bool IsPermanentLocation(IOConnectionInfo ioc) + { + return true; + } + + public bool IsReadOnlyBecauseKitkatRestrictions(IOConnectionInfo ioc) + { + if (IsLocalFileFlaggedReadOnly(ioc)) + return false; //it's not read-only because of the restrictions introduced in kitkat + try + { + //test if we can open + //http://www.doubleencore.com/2014/03/android-external-storage/#comment-1294469517 + using (var writer = new Java.IO.FileOutputStream(ioc.Path, true)) + { + writer.Close(); + return false; //we can write + } + } + catch (Java.IO.IOException) + { + //seems like we can't write to that location even though it's not read-only + return true; + } + + } + + public bool IsReadOnly(IOConnectionInfo ioc) + { + if (ioc.IsLocalFile()) + { + if (IsLocalFileFlaggedReadOnly(ioc)) + return true; + if (IsReadOnlyBecauseKitkatRestrictions(ioc)) + return true; + + return false; + } + //for remote files assume they can be written: (think positive! :-) ) + return false; + } + + private bool IsLocalFileFlaggedReadOnly(IOConnectionInfo ioc) + { + try + { + return new FileInfo(ioc.Path).IsReadOnly; + } + catch (SecurityException) + { + return true; + } + catch (UnauthorizedAccessException) + { + return true; + } + catch (Exception) + { + return false; + } + } } } \ No newline at end of file diff --git a/src/Kp2aBusinessLogic/Io/CachingFileStorage.cs b/src/Kp2aBusinessLogic/Io/CachingFileStorage.cs index a1c48b8a..d20bbd56 100644 --- a/src/Kp2aBusinessLogic/Io/CachingFileStorage.cs +++ b/src/Kp2aBusinessLogic/Io/CachingFileStorage.cs @@ -488,6 +488,11 @@ namespace keepass2android.Io _cachedStorage.PrepareFileUsage(activity, ioc, requestCode, alwaysReturnSuccess || IsCached(ioc)); } + public void PrepareFileUsage(Context ctx, IOConnectionInfo ioc) + { + _cachedStorage.PrepareFileUsage(ctx, ioc); + } + public void OnCreate(IFileStorageSetupActivity activity, Bundle savedInstanceState) { _cachedStorage.OnCreate(activity, savedInstanceState); @@ -542,6 +547,19 @@ namespace keepass2android.Io } + public bool IsPermanentLocation(IOConnectionInfo ioc) + { + //even though the cache would be permanent, it's not a good idea to cache a temporary file, so return false in that case: + return _cachedStorage.IsPermanentLocation(ioc); + } + + public bool IsReadOnly(IOConnectionInfo ioc) + { + //even though the cache can always be written, the changes made in the cache could not be transferred to the cached file + //so we better treat the cache as read-only as well. + return _cachedStorage.IsReadOnly(ioc); + } + private void StoreFilePath(IOConnectionInfo folderPath, string filename, IOConnectionInfo res) { File.WriteAllText(CachedFilePath(GetPseudoIoc(folderPath, filename)) + ".filepath", res.Path); diff --git a/src/Kp2aBusinessLogic/Io/IFileStorage.cs b/src/Kp2aBusinessLogic/Io/IFileStorage.cs index 1ae092f9..a290acb2 100644 --- a/src/Kp2aBusinessLogic/Io/IFileStorage.cs +++ b/src/Kp2aBusinessLogic/Io/IFileStorage.cs @@ -157,6 +157,17 @@ namespace keepass2android.Io /// /// The method may throw FileNotFoundException or not in case the file doesn't exist. IOConnectionInfo GetFilePath(IOConnectionInfo folderPath, string filename); + + /// + /// returns true if it can be expected that this location will be available permanently (in contrast to a cache copy or temporary URI permissions in Android) + /// + /// Does not require to exist forever! + bool IsPermanentLocation(IOConnectionInfo ioc); + + /// + /// Should return true if the file cannot be written. + /// + bool IsReadOnly(IOConnectionInfo ioc); } public interface IWriteTransaction: IDisposable diff --git a/src/Kp2aBusinessLogic/Io/JavaFileStorage.cs b/src/Kp2aBusinessLogic/Io/JavaFileStorage.cs index b162b6df..63e0855d 100644 --- a/src/Kp2aBusinessLogic/Io/JavaFileStorage.cs +++ b/src/Kp2aBusinessLogic/Io/JavaFileStorage.cs @@ -283,6 +283,16 @@ namespace keepass2android.Io } + public bool IsPermanentLocation(IOConnectionInfo ioc) + { + return true; + } + + public bool IsReadOnly(IOConnectionInfo ioc) + { + return false; //TODO implement. note, however, that we MAY return false even if it's read-only + } + public void OnCreate(IFileStorageSetupActivity activity, Bundle savedInstanceState) { _jfs.OnCreate(((IJavaFileStorageFileStorageSetupActivity)activity), savedInstanceState); diff --git a/src/Kp2aBusinessLogic/Kp2aBusinessLogic.csproj b/src/Kp2aBusinessLogic/Kp2aBusinessLogic.csproj index 198d4208..0318a87d 100644 --- a/src/Kp2aBusinessLogic/Kp2aBusinessLogic.csproj +++ b/src/Kp2aBusinessLogic/Kp2aBusinessLogic.csproj @@ -3,8 +3,6 @@ Debug AnyCPU - 8.0.30703 - 2.0 {53A9CB7F-6553-4BC0-B56B-9410BB2E59AA} {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} Library @@ -20,9 +18,10 @@ full false bin\Debug\ - TRACE;DEBUG;EXCLUDE_TWOFISH;INCLUDE_KEYBOARD;EXCLUDE_FILECHOOSER;EXCLUDE_JAVAFILESTORAGE;EXCLUDE_KEYTRANSFORM + DEBUG;EXCLUDE_TWOFISH;EXCLUDE_KEYBOARD;INCLUDE_FILECHOOSER;_EXCLUDE_JAVAFILESTORAGE;INCLUDE_KEYTRANSFORM prompt 4 + None pdbonly @@ -31,6 +30,7 @@ TRACE prompt 4 + false bin\ReleaseNoNet\ @@ -38,9 +38,10 @@ true pdbonly AnyCPU - Off prompt MinimumRecommendedRules.ruleset + false + 4 @@ -64,6 +65,7 @@ + @@ -79,6 +81,7 @@ + @@ -113,19 +116,19 @@ - {48574278-4779-4b3a-a9e4-9cf1bc285d0b} + {48574278-4779-4B3A-A9E4-9CF1BC285D0B} JavaFileStorageBindings - {545b4a6b-8bba-4fbe-92fc-4ac060122a54} + {545B4A6B-8BBA-4FBE-92FC-4AC060122A54} KeePassLib2Android - {70d3844a-d9fa-4a64-b205-a84c6a822196} + {70D3844A-D9FA-4A64-B205-A84C6A822196} KP2AKdbLibraryBinding - {5cf675a5-9bee-4720-bed9-d5bf14a2ebf9} + {5CF675A5-9BEE-4720-BED9-D5BF14A2EBF9} TwofishCipher diff --git a/src/Kp2aBusinessLogic/SelectStorageLocationActivityBase.cs b/src/Kp2aBusinessLogic/SelectStorageLocationActivityBase.cs new file mode 100644 index 00000000..7e242332 --- /dev/null +++ b/src/Kp2aBusinessLogic/SelectStorageLocationActivityBase.cs @@ -0,0 +1,318 @@ +using System; +using Android.App; +using Android.Content; +using Android.Widget; +using Java.Net; +using KeePassLib.Serialization; +using keepass2android.Io; + +namespace keepass2android +{ + /// + /// base class for SelectStorageLocationActivity containing testable (non-UI) code + /// + public abstract class SelectStorageLocationActivityBase: Activity + { + public enum WritableRequirements + { + ReadOnly = 0, + WriteDesired = 1, + WriteDemanded = 2 + } + + protected const int RequestCodeFileStorageSelectionForPrimarySelect = 983713; + private const int RequestCodeFileStorageSelectionForCopyToWritableLocation = 983714; + private const int RequestCodeFileFileBrowseForWritableLocation = 983715; + private const int RequestCodeFileBrowseForOpen = 983716; + + + protected IOConnectionInfo _selectedIoc; + private IKp2aApp _app; + + public SelectStorageLocationActivityBase(IKp2aApp app) + { + _app = app; + } + + protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) + { + base.OnActivityResult(requestCode, resultCode, data); + if ((requestCode == RequestCodeFileStorageSelectionForPrimarySelect) || ((requestCode == RequestCodeFileStorageSelectionForCopyToWritableLocation))) + { + int browseRequestCode = RequestCodeFileBrowseForOpen; + if (requestCode == RequestCodeFileStorageSelectionForCopyToWritableLocation) + { + browseRequestCode = RequestCodeFileFileBrowseForWritableLocation; + } + + if (resultCode == ExitFileStorageSelectionOk) + { + + string protocolId = data.GetStringExtra("protocolId"); + + if (protocolId == "androidget") + { + ShowAndroidBrowseDialog(RequestCodeFileBrowseForOpen, false); + } + else + { + bool isForSave = (requestCode == RequestCodeFileStorageSelectionForPrimarySelect) ? + IsStorageSelectionForSave : true; + + + StartSelectFile(isForSave, browseRequestCode, protocolId); + + } + + + } + else + { + ReturnCancel(); + } + + } + + if ((requestCode == RequestCodeFileBrowseForOpen) || (requestCode == RequestCodeFileFileBrowseForWritableLocation)) + { + if (resultCode == (Result)FileStorageResults.FileChooserPrepared) + { + IOConnectionInfo ioc = new IOConnectionInfo(); + SetIoConnectionFromIntent(ioc, data); + bool isForSave = (requestCode == RequestCodeFileFileBrowseForWritableLocation) ? + true : IsStorageSelectionForSave; + + StartFileChooser(ioc.Path, requestCode, isForSave); + + return; + } + if ((resultCode == Result.Canceled) && (data != null) && (data.HasExtra("EXTRA_ERROR_MESSAGE"))) + { + ShowToast(data.GetStringExtra("EXTRA_ERROR_MESSAGE")); + } + + if (resultCode == Result.Ok) + { + string filename = IntentToFilename(data); + if (filename != null) + { + if (filename.StartsWith("file://")) + { + filename = filename.Substring(7); + filename = URLDecoder.Decode(filename); + } + + IOConnectionInfo ioc = new IOConnectionInfo + { + Path = filename + }; + + IocSelected(ioc, requestCode); + } + else + { + if (data.Data.Scheme == "content") + { + IocSelected(IOConnectionInfo.FromPath(data.DataString), requestCode); + + } + else + { + ShowInvalidSchemeMessage(data.DataString); + ReturnCancel(); + } + + } + } + else + { + ReturnCancel(); + } + + + } + + + + + } + + protected abstract void ShowToast(string text); + + protected abstract void ShowInvalidSchemeMessage(string dataString); + + protected abstract string IntentToFilename(Intent data); + + protected abstract void SetIoConnectionFromIntent(IOConnectionInfo ioc, Intent data); + + protected abstract Result ExitFileStorageSelectionOk { get; } + + /// + /// Starts the appropriate file selection process (either manual file select or prepare filechooser + filechooser) + /// + /// + /// + /// + protected abstract void StartSelectFile(bool isForSave, int browseRequestCode, string protocolId); + + protected abstract void ShowAndroidBrowseDialog(int requestCode, bool isForSave); + + protected abstract bool IsStorageSelectionForSave { get; } + + + private void IocSelected(IOConnectionInfo ioc, int requestCode) + { + if (requestCode == RequestCodeFileFileBrowseForWritableLocation) + { + IocForCopySelected(ioc); + } + else if (requestCode == RequestCodeFileBrowseForOpen) + { + PrimaryIocSelected(ioc); + } + else + { +#if DEBUG + throw new Exception("invalid request code!"); +#endif + } + + + + } + + private void IocForCopySelected(IOConnectionInfo targetIoc) + { + PerformCopy(() => + { + IOConnectionInfo sourceIoc = _selectedIoc; + + try + { + CopyFile(targetIoc, sourceIoc); + } + catch (Exception e) + { + return () => + { + ShowToast(_app.GetResourceString(UiStringKey.ErrorOcurred) + " " + e.Message); + ReturnCancel(); + }; + } + + + return () => { ReturnOk(targetIoc); }; + }); + } + + protected abstract void PerformCopy(Func copyAndReturnPostExecute); + + private void MoveToWritableLocation(IOConnectionInfo ioc) + { + _selectedIoc = ioc; + + StartFileStorageSelection(RequestCodeFileStorageSelectionForCopyToWritableLocation, false, false); + + } + + protected abstract void StartFileStorageSelection(int requestCode, + bool allowThirdPartyGet, bool allowThirdPartySend); + + protected bool OnReceivedSftpData(string filename, int requestCode, bool isForSave) + { + IOConnectionInfo ioc = new IOConnectionInfo { Path = filename }; +#if !EXCLUDE_FILECHOOSER + StartFileChooser(ioc.Path, requestCode, isForSave); +#else + IocSelected(ioc, requestCode); +#endif + return true; + } + + protected abstract void StartFileChooser(string path, int requestCode, bool isForSave); + + protected bool OnOpenButton(String fileName, int requestCode) + { + + + IOConnectionInfo ioc = new IOConnectionInfo + { + Path = fileName + }; + + IocSelected(ioc, requestCode); + + return true; + + } + + + protected virtual void CopyFile(IOConnectionInfo targetIoc, IOConnectionInfo sourceIoc) + { + IFileStorage sourceStorage = _app.GetFileStorage(sourceIoc, false); //don't cache source. file won't be used ever again + IFileStorage targetStorage = _app.GetFileStorage(targetIoc); + + using ( + var writeTransaction = targetStorage.OpenWriteTransaction(targetIoc, + _app.GetBooleanPreference( + PreferenceKey.UseFileTransactions))) + { + using (var writeStream = writeTransaction.OpenFile()) + { + sourceStorage.OpenFileForRead(sourceIoc).CopyTo(writeStream); + } + writeTransaction.CommitWrite(); + } + } + + private void PrimaryIocSelected(IOConnectionInfo ioc) + { + var filestorage = _app.GetFileStorage(ioc, false); + if (!filestorage.IsPermanentLocation(ioc)) + { + + string message = _app.GetResourceString(UiStringKey.FileIsTemporarilyAvailable) + " " + _app.GetResourceString(UiStringKey.CopyFileRequired) + " " + _app.GetResourceString(UiStringKey.ClickOkToSelectLocation); + EventHandler onOk = (sender, args) => { MoveToWritableLocation(ioc); }; + EventHandler onCancel = (sender, args) => { ReturnCancel(); }; + ShowAlertDialog(message, onOk, onCancel); + return; + } + + + if ((RequestedWritableRequirements != WritableRequirements.ReadOnly) && (filestorage.IsReadOnly(ioc))) + { + string readOnlyExplanation = _app.GetResourceString(UiStringKey.FileIsReadOnly); + BuiltInFileStorage builtInFileStorage = filestorage as BuiltInFileStorage; + if (builtInFileStorage != null) + { + if (builtInFileStorage.IsReadOnlyBecauseKitkatRestrictions(ioc)) + readOnlyExplanation = _app.GetResourceString(UiStringKey.FileIsReadOnlyOnKitkat); + } + EventHandler onOk = (sender, args) => { MoveToWritableLocation(ioc); }; + EventHandler onCancel = (sender, args) => + { + if (RequestedWritableRequirements == WritableRequirements.WriteDemanded) + ReturnCancel(); + else + ReturnOk(ioc); + }; + ShowAlertDialog(readOnlyExplanation + " " + + (RequestedWritableRequirements == WritableRequirements.WriteDemanded ? + _app.GetResourceString(UiStringKey.CopyFileRequired) + : _app.GetResourceString(UiStringKey.CopyFileRequiredForEditing)) + + " " + + _app.GetResourceString(UiStringKey.ClickOkToSelectLocation), onOk, onCancel); + return; + } + ReturnOk(ioc); + } + + protected abstract void ShowAlertDialog(string message, EventHandler onOk, EventHandler onCancel); + + protected abstract WritableRequirements RequestedWritableRequirements { get; } + + protected abstract void ReturnOk(IOConnectionInfo ioc); + + protected abstract void ReturnCancel(); + } +} \ No newline at end of file diff --git a/src/Kp2aBusinessLogic/UiStringKey.cs b/src/Kp2aBusinessLogic/UiStringKey.cs index dbd6289e..017801d6 100644 --- a/src/Kp2aBusinessLogic/UiStringKey.cs +++ b/src/Kp2aBusinessLogic/UiStringKey.cs @@ -48,6 +48,12 @@ namespace keepass2android SynchronizingOtpAuxFile, SavingOtpAuxFile, CertificateFailure, - exporting_database + exporting_database, + FileIsTemporarilyAvailable, + CopyFileRequired, + ClickOkToSelectLocation, + FileIsReadOnly, + FileIsReadOnlyOnKitkat, + CopyFileRequiredForEditing } -} \ No newline at end of file +} diff --git a/src/Kp2aBusinessLogic/database/Database.cs b/src/Kp2aBusinessLogic/database/Database.cs index d91d98bc..78960aeb 100644 --- a/src/Kp2aBusinessLogic/database/Database.cs +++ b/src/Kp2aBusinessLogic/database/Database.cs @@ -119,7 +119,7 @@ namespace keepass2android KpDatabase = pwDatabase; SearchHelper = new SearchDbHelper(app); - CanWrite = databaseLoader.CanWrite; + CanWrite = databaseLoader.CanWrite && !fileStorage.IsReadOnly(iocInfo); } /// diff --git a/src/Kp2aBusinessLogic/database/KdbDatabaseLoader.cs b/src/Kp2aBusinessLogic/database/KdbDatabaseLoader.cs index 7f5c68a0..15831a9a 100644 --- a/src/Kp2aBusinessLogic/database/KdbDatabaseLoader.cs +++ b/src/Kp2aBusinessLogic/database/KdbDatabaseLoader.cs @@ -36,25 +36,21 @@ namespace keepass2android } KcpKeyFile passwordKeyfile = (KcpKeyFile)key.GetUserKey(typeof(KcpKeyFile)); - string keyfile = ""; + MemoryStream keyfileStream = null; if (passwordKeyfile != null) { - keyfile = passwordKeyfile.Path; + keyfileStream = new MemoryStream(passwordKeyfile.RawFileData.ReadData()); } try { - var dbv3 = importer.OpenDatabase(hashingStream, password, keyfile); + var dbv3 = importer.OpenDatabase(hashingStream, password, keyfileStream); db.Name = dbv3.Name; db.RootGroup = ConvertGroup(dbv3.RootGroup); } - catch (InvalidPasswordException e) { - - return; - } catch (Java.IO.FileNotFoundException e) { throw new FileNotFoundException( diff --git a/src/Kp2aKeyboardBinding/Kp2aKeyboardBinding.csproj b/src/Kp2aKeyboardBinding/Kp2aKeyboardBinding.csproj index f3a8803c..c5585dbd 100644 --- a/src/Kp2aKeyboardBinding/Kp2aKeyboardBinding.csproj +++ b/src/Kp2aKeyboardBinding/Kp2aKeyboardBinding.csproj @@ -3,8 +3,6 @@ Debug AnyCPU - 10.0.0 - 2.0 {A8779D4D-7C49-4C2F-82BD-2CDC448391DA} {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} Library @@ -32,7 +30,6 @@ 4 False False - SdkOnly bin\ReleaseNoNet\ @@ -40,6 +37,8 @@ AnyCPU prompt MinimumRecommendedRules.ruleset + false + 4 diff --git a/src/Kp2aUnitTests/Kp2aUnitTests.csproj b/src/Kp2aUnitTests/Kp2aUnitTests.csproj index 90ff6b5d..a1b94ac4 100644 --- a/src/Kp2aUnitTests/Kp2aUnitTests.csproj +++ b/src/Kp2aUnitTests/Kp2aUnitTests.csproj @@ -3,8 +3,6 @@ Debug AnyCPU - 8.0.30703 - 2.0 {46B769B8-2C58-4138-9CC0-70E3AE3C9A3A} {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} Library @@ -16,7 +14,6 @@ Resources\Resource.Designer.cs Off Properties\AndroidManifest.xml - v4.2 armeabi,armeabi-v7a,x86 @@ -32,7 +29,6 @@ DEBUG;TRACE prompt 4 - True None @@ -43,10 +39,8 @@ prompt 4 False - SdkOnly System.Core%3b True - False bin\ReleaseNoNet\ @@ -54,9 +48,10 @@ true pdbonly AnyCPU - Off prompt MinimumRecommendedRules.ruleset + false + 4 @@ -67,6 +62,7 @@ + @@ -83,10 +79,10 @@ + - @@ -109,7 +105,7 @@ Kp2aBusinessLogic - {70d3844a-d9fa-4a64-b205-a84c6a822196} + {70D3844A-D9FA-4A64-B205-A84C6A822196} KP2AKdbLibraryBinding diff --git a/src/Kp2aUnitTests/MainActivity.cs b/src/Kp2aUnitTests/MainActivity.cs index 71c1c621..c2ca9fed 100644 --- a/src/Kp2aUnitTests/MainActivity.cs +++ b/src/Kp2aUnitTests/MainActivity.cs @@ -19,7 +19,11 @@ namespace Kp2aUnitTests TestRunner runner = new TestRunner(); // Run all tests from this assembly //runner.AddTests(Assembly.GetExecutingAssembly()); - runner.AddTests(new List { typeof(TestIntentsAndBundles) }); + //runner.AddTests(typeof(TestLoadDb).GetMethod("TestLoadKdb1WithKeyfileByDirectCall")); + //runner.AddTests(typeof(TestLoadDb).GetMethod("TestLoadKdb1WithKeyfileOnly")); + + + runner.AddTests(new List { typeof(TestSelectStorageLocation) }); //runner.AddTests(new List { typeof(TestSynchronizeCachedDatabase)}); //runner.AddTests(typeof(TestLoadDb).GetMethod("LoadErrorWithCertificateTrustFailure")); //runner.AddTests(typeof(TestLoadDb).GetMethod("LoadWithAcceptedCertificateTrustFailure")); diff --git a/src/Kp2aUnitTests/TestAndroidContentFileStorage.cs b/src/Kp2aUnitTests/TestAndroidContentFileStorage.cs new file mode 100644 index 00000000..7e53482e --- /dev/null +++ b/src/Kp2aUnitTests/TestAndroidContentFileStorage.cs @@ -0,0 +1,33 @@ +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Android.App; +using Android.Content; +using Android.OS; +using Java.IO; +using KeePassLib; +using KeePassLib.Interfaces; +using KeePassLib.Keys; +using KeePassLib.Serialization; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using keepass2android; +using keepass2android.Io; + +namespace Kp2aUnitTests +{ + [TestClass] + internal class TestBuiltInFileStorage + { + [TestMethod] + public void ReadOnlyKitKat() + { + var storage = new BuiltInFileStorage(new TestKp2aApp()); + var extFile = "/storage/sdcard1/file.txt"; + Assert.IsTrue(storage.IsReadOnly(IOConnectionInfo.FromPath(extFile))); + Assert.IsTrue(storage.IsReadOnly(IOConnectionInfo.FromPath(extFile))); + + Assert.IsFalse(storage.IsReadOnly(IOConnectionInfo.FromPath(Application.Context.GetExternalFilesDir(null).AbsolutePath+ "/file.txt"))); + } + + } +} \ No newline at end of file diff --git a/src/Kp2aUnitTests/TestFileStorage.cs b/src/Kp2aUnitTests/TestFileStorage.cs index ef67480b..4629e684 100644 --- a/src/Kp2aUnitTests/TestFileStorage.cs +++ b/src/Kp2aUnitTests/TestFileStorage.cs @@ -183,5 +183,15 @@ namespace Kp2aUnitTests { throw new NotImplementedException(); } + + public bool IsPermanentLocation(IOConnectionInfo ioc) + { + return true; + } + + public bool IsReadOnly(IOConnectionInfo ioc) + { + return false; + } } } \ No newline at end of file diff --git a/src/Kp2aUnitTests/TestKp2aApp.cs b/src/Kp2aUnitTests/TestKp2aApp.cs index 156e0464..fe20db4b 100644 --- a/src/Kp2aUnitTests/TestKp2aApp.cs +++ b/src/Kp2aUnitTests/TestKp2aApp.cs @@ -134,11 +134,18 @@ namespace Kp2aUnitTests return new ProgressDialogStub(); } - public IFileStorage GetFileStorage(IOConnectionInfo iocInfo) + public virtual IFileStorage GetFileStorage(IOConnectionInfo iocInfo) { return FileStorage; } + public virtual IFileStorage GetFileStorage(IOConnectionInfo iocInfo, bool allowCache) + { + if (FileStorage is CachingFileStorage) + throw new Exception("bad test class"); + return FileStorage; + } + public bool TriggerReloadCalled; private TestFileStorage _testFileStorage; diff --git a/src/Kp2aUnitTests/TestLoadDb.cs b/src/Kp2aUnitTests/TestLoadDb.cs index 24d800bc..ecf1553b 100644 --- a/src/Kp2aUnitTests/TestLoadDb.cs +++ b/src/Kp2aUnitTests/TestLoadDb.cs @@ -2,11 +2,15 @@ using System.IO; using System.Linq; using Android.App; +using Com.Keepassdroid.Database.Load; +using Java.IO; using KeePassLib; +using KeePassLib.Keys; using KeePassLib.Serialization; using Microsoft.VisualStudio.TestTools.UnitTesting; using keepass2android; using keepass2android.Io; +using FileNotFoundException = System.IO.FileNotFoundException; namespace Kp2aUnitTests { @@ -72,6 +76,56 @@ namespace Kp2aUnitTests Assert.IsFalse(e.Binaries.Any()); } + [TestMethod] + public void TestLoadKdb1WithKeyfileByDirectCall() + { + ImporterV3 importer = new ImporterV3(); + + try + { + FileStream dbStream = new FileStream(TestDbDirectory+"withkeyfile_nopwd.kdb", FileMode.Open); + FileStream keyfileStream = new FileStream(TestDbDirectory + "withkeyfile.key", FileMode.Open); + /* + for (int i = 0; i < 10; i++) + { + int b = keyfileStream.ReadByte(); + Kp2aLog.Log(i+": " + b); + } + keyfileStream.Close(); + Kp2aLog.Log("stream 2"); + var keyfileStream2 = new MemoryStream(new KcpKeyFile(TestDbDirectory + "withkeyfile.key").RawFileData.ReadData()); + for (int i = 0; i < 10; i++) + { + int b = keyfileStream2.ReadByte(); + Kp2aLog.Log(i + ": " + b); + }*/ + importer.OpenDatabase(dbStream, "", keyfileStream); + } + catch (Exception e) + { + Kp2aLog.Log(e.ToString()); + Assert.Fail("exception occured: " + e); + } + + } + + [TestMethod] + public void TestLoadKdb1WithKeyfile() + { + var app = PerformLoad("withkeyfile.kdb", "test", TestDbDirectory + "withkeyfile.key"); + + } + + + [TestMethod] + public void TestLoadKdb1WithKeyfileOnly() + { + var app = PerformLoad("withkeyfile_nopwd.kdb", "", TestDbDirectory + "withkeyfile.key"); + + + + } + [TestMethod] public void TestLoadWithKeyfileOnly() { diff --git a/src/Kp2aUnitTests/TestSelectStorageLocation.cs b/src/Kp2aUnitTests/TestSelectStorageLocation.cs new file mode 100644 index 00000000..2a980f77 --- /dev/null +++ b/src/Kp2aUnitTests/TestSelectStorageLocation.cs @@ -0,0 +1,790 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; + +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; +using KeePassLib.Serialization; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using keepass2android; +using keepass2android.Io; + +namespace Kp2aUnitTests +{ + + class TemporaryFileStorage: IFileStorage + { + public IEnumerable SupportedProtocols + { + get { + yield return "content"; + yield return "readonly"; + } + } + + public void Delete(IOConnectionInfo ioc) + { + + } + + public bool CheckForFileChangeFast(IOConnectionInfo ioc, string previousFileVersion) + { + return false; + } + + public string GetCurrentFileVersionFast(IOConnectionInfo ioc) + { + return null; + } + + public Stream OpenFileForRead(IOConnectionInfo ioc) + { + throw new NotImplementedException(); + } + + public IWriteTransaction OpenWriteTransaction(IOConnectionInfo ioc, bool useFileTransaction) + { + throw new NotImplementedException(); + } + + public string GetFilenameWithoutPathAndExt(IOConnectionInfo ioc) + { + throw new NotImplementedException(); + } + + public bool RequiresCredentials(IOConnectionInfo ioc) + { + throw new NotImplementedException(); + } + + public void CreateDirectory(IOConnectionInfo ioc, string newDirName) + { + throw new NotImplementedException(); + } + + public IEnumerable ListContents(IOConnectionInfo ioc) + { + throw new NotImplementedException(); + } + + public FileDescription GetFileDescription(IOConnectionInfo ioc) + { + throw new NotImplementedException(); + } + + public bool RequiresSetup(IOConnectionInfo ioConnection) + { + return false; + } + + public string IocToPath(IOConnectionInfo ioc) + { + return ioc.Path; + } + + public void StartSelectFile(IFileStorageSetupInitiatorActivity activity, bool isForSave, int requestCode, string protocolId) + { + throw new NotImplementedException(); + } + + public void PrepareFileUsage(IFileStorageSetupInitiatorActivity activity, IOConnectionInfo ioc, int requestCode, + bool alwaysReturnSuccess) + { + throw new NotImplementedException(); + } + + public void OnCreate(IFileStorageSetupActivity activity, Bundle savedInstanceState) + { + throw new NotImplementedException(); + } + + public void OnResume(IFileStorageSetupActivity activity) + { + throw new NotImplementedException(); + } + + public void OnStart(IFileStorageSetupActivity activity) + { + throw new NotImplementedException(); + } + + public void OnActivityResult(IFileStorageSetupActivity activity, int requestCode, int resultCode, Intent data) + { + throw new NotImplementedException(); + } + + public string GetDisplayName(IOConnectionInfo ioc) + { + throw new NotImplementedException(); + } + + public string CreateFilePath(string parent, string newFilename) + { + throw new NotImplementedException(); + } + + public IOConnectionInfo GetParentPath(IOConnectionInfo ioc) + { + throw new NotImplementedException(); + } + + public IOConnectionInfo GetFilePath(IOConnectionInfo folderPath, string filename) + { + throw new NotImplementedException(); + } + + public bool IsPermanentLocation(IOConnectionInfo ioc) + { + return ioc.Path.StartsWith("content") == false; + } + + public bool IsReadOnly(IOConnectionInfo ioc) + { + return true; + } + } + + class TestKp2aAppForSelectStorageLocation: TestKp2aApp + { + + + public override IFileStorage GetFileStorage(IOConnectionInfo iocInfo, bool allowCache) + { + if ((iocInfo.Path.StartsWith("content://")) || (iocInfo.Path.StartsWith("readonly://"))) + { + return new TemporaryFileStorage(); + } + return base.GetFileStorage(iocInfo); + } + } + + sealed class TestControllableSelectStorageLocationActivity: SelectStorageLocationActivityBase + { + + public List toasts = new List(); + public WritableRequirements requestedWritableRequirements; + public bool? _result; + public IOConnectionInfo _resultIoc; + public object _userAction; + private IKp2aApp _app; + + public TestControllableSelectStorageLocationActivity(IKp2aApp app) : base(app) + { + _app = app; + StartFileStorageSelection(RequestCodeFileStorageSelectionForPrimarySelect, true, false); + } + + protected override void ShowToast(string text) + { + toasts.Add(text); + } + + protected override void CopyFile(IOConnectionInfo targetIoc, IOConnectionInfo sourceIoc) + { + if (CopyFileShouldFail) + { + throw new Exception("CopyFile failed in test."); + } + } + + public bool CopyFileShouldFail { get; set; } + + protected override void ShowInvalidSchemeMessage(string dataString) + { + toasts.Add("invalid scheme: " + dataString); + } + + protected override string IntentToFilename(Intent data) + { + return data.GetStringExtra("path"); + } + + protected override void SetIoConnectionFromIntent(IOConnectionInfo ioc, Intent data) + { + ioc.Path = data.GetStringExtra("path"); + } + + protected override Result ExitFileStorageSelectionOk + { + get { return Result.FirstUser + 825; } + } + + protected override void StartSelectFile(bool isForSave, int browseRequestCode, string protocolId) + { + _userAction = new SelectFileAction(isForSave, browseRequestCode, protocolId, this); + } + + public void HandleActivityResult(int requestCode, Result resultCode, Intent data) + { + OnActivityResult(requestCode, resultCode, data); + } + + internal class SelectFileAction + { + private readonly bool _isForSave; + private readonly int _browseRequestCode; + private readonly string _protocolId; + private readonly TestControllableSelectStorageLocationActivity _testControllableSelectStorageLocationActivity; + + public SelectFileAction(bool isForSave, int browseRequestCode, string protocolId, TestControllableSelectStorageLocationActivity testControllableSelectStorageLocationActivity) + { + _isForSave = isForSave; + _browseRequestCode = browseRequestCode; + _protocolId = protocolId; + _testControllableSelectStorageLocationActivity = testControllableSelectStorageLocationActivity; + } + + public bool IsForSave { + get { return _isForSave; } + } + + public int BrowseRequestCode + { + get { return _browseRequestCode; } + } + + public string ProtocolId + { + get { return _protocolId; } + } + + + public void PerformManualFileSelect(string path) + { + _testControllableSelectStorageLocationActivity.PressOpenButton(path, _browseRequestCode); + } + + public void Cancel() + { + _testControllableSelectStorageLocationActivity.ReturnCancel(); + } + + public void PrepareFileChooser(string protocolId) + { + Intent data = new Intent(); + data.PutExtra("path", protocolId+"://"); + _testControllableSelectStorageLocationActivity.HandleActivityResult(_browseRequestCode, (Result) FileStorageResults.FileChooserPrepared, data); + + } + } + + private void PressOpenButton(string path, int browseRequestCode) + { + OnOpenButton(path, browseRequestCode); + } + + + internal class FileStorageSelectionAction + { + private readonly int _requestCode; + private readonly bool _allowThirdPartyGet; + private readonly bool _allowThirdPartySend; + private readonly TestControllableSelectStorageLocationActivity _testControllableSelectStorageLocationActivity; + + public FileStorageSelectionAction(int requestCode, bool allowThirdPartyGet, bool allowThirdPartySend, TestControllableSelectStorageLocationActivity testControllableSelectStorageLocationActivity) + { + _requestCode = requestCode; + _allowThirdPartyGet = allowThirdPartyGet; + _allowThirdPartySend = allowThirdPartySend; + _testControllableSelectStorageLocationActivity = testControllableSelectStorageLocationActivity; + } + + public int RequestCode + { + get { return _requestCode; } + } + + public bool AllowThirdPartyGet + { + get { return _allowThirdPartyGet; } + } + + public bool AllowThirdPartySend + { + get { return _allowThirdPartySend; } + } + + public void ReturnProtocol(string protocolId) + { + Intent intent = new Intent(); + intent.PutExtra("protocolId", protocolId); + _testControllableSelectStorageLocationActivity.HandleActivityResult(_requestCode, Result.FirstUser + 825 /*fs select ok*/, intent); + } + + public void Cancel() + { + _testControllableSelectStorageLocationActivity.HandleActivityResult(_requestCode, Result.Canceled, null); + } + } + + protected override void ShowAndroidBrowseDialog(int requestCode, bool isForSave) + { + _userAction = new AndroidBrowseDialogAction(requestCode, isForSave, this); + } + + internal class AndroidBrowseDialogAction + { + private readonly int _requestCode; + private readonly bool _isForSave; + private readonly TestControllableSelectStorageLocationActivity _activity; + + public AndroidBrowseDialogAction(int requestCode, bool isForSave, TestControllableSelectStorageLocationActivity activity) + { + _requestCode = requestCode; + _isForSave = isForSave; + _activity = activity; + } + + public int RequestCode + { + get { return _requestCode; } + } + + public void ReturnSelectedFile(string selectedUri) + { + Intent data = new Intent(); + data.PutExtra("path", selectedUri); + _activity.HandleActivityResult(_requestCode, Result.Ok, data); + } + + public void Cancel() + { + _activity.HandleActivityResult(_requestCode, Result.Canceled, null); + } + } + + protected override bool IsStorageSelectionForSave { get { return SelectLocationForSave; } } + + private bool SelectLocationForSave { get; set; } + + protected override void PerformCopy(Func copyAndReturnPostExecute) + { + Action postExec = copyAndReturnPostExecute(); + postExec(); + } + + protected override void StartFileStorageSelection(int requestCode, bool allowThirdPartyGet, bool allowThirdPartySend) + { + _userAction = new FileStorageSelectionAction(requestCode, allowThirdPartyGet, allowThirdPartySend, this); + } + + protected override void StartFileChooser(string path, int requestCode, bool isForSave) + { + _userAction = new FileChooserAction(path, requestCode, isForSave, this); + } + + internal class FileChooserAction + { + private readonly string _path; + private readonly int _requestCode; + private readonly bool _isForSave; + private readonly TestControllableSelectStorageLocationActivity _activity; + + public FileChooserAction(string path, int requestCode, bool isForSave, TestControllableSelectStorageLocationActivity activity) + { + _path = path; + _requestCode = requestCode; + _isForSave = isForSave; + _activity = activity; + } + + public string Path + { + get { return _path; } + } + + public int RequestCode + { + get { return _requestCode; } + } + + public bool IsForSave + { + get { return _isForSave; } + } + + public void ReturnChosenFile(string path) + { + Intent data = new Intent(); + data.PutExtra("path", path); + _activity.HandleActivityResult(_requestCode, Result.Ok, data); + } + + public void Cancel() + { + _activity.HandleActivityResult(_requestCode, Result.Canceled, null); + } + } + + protected override void ShowAlertDialog(string message, EventHandler onOk, EventHandler onCancel) + { + _userAction = new ShowAlertDialogAction(message, onOk, onCancel); + } + + internal class ShowAlertDialogAction + { + public string Message { get; set; } + public EventHandler OnOk { get; set; } + public EventHandler OnCancel { get; set; } + + public ShowAlertDialogAction(string message, EventHandler onOk, EventHandler onCancel) + { + Message = message; + OnOk = onOk; + OnCancel = onCancel; + } + + public void Cancel() + { + OnCancel(this, null); + } + + public void Ok() + { + OnOk(this, null); + } + } + + protected override WritableRequirements RequestedWritableRequirements + { + get { return requestedWritableRequirements; } + } + + public IKp2aApp App + { + get { return _app; } + } + + protected override void ReturnOk(IOConnectionInfo ioc) + { + _result = true; + _resultIoc = ioc; + } + + protected override void ReturnCancel() + { + _result = false; + } + } + + + [TestClass] + class TestSelectStorageLocation + { + [TestInitialize] + public void Init() + { + try + { + Looper.Prepare(); + } + catch (Exception) + { + + } + + } + + [TestMethod] + public void TestCancelFileStorageSelection() + { + var testee = CreateTestee(); + var action = (TestControllableSelectStorageLocationActivity.FileStorageSelectionAction)testee._userAction; + action.Cancel(); + Assert.IsFalse((bool) testee._result); + } + + [TestMethod] + public void TestSimpleManualSelect() + { + var testee = CreateTestee(); + var action = (TestControllableSelectStorageLocationActivity.FileStorageSelectionAction) testee._userAction; + action.ReturnProtocol("ftp"); + + Assert.IsNull(testee._result); //no result yet + + var action2 = (TestControllableSelectStorageLocationActivity.SelectFileAction)testee._userAction; + string path = "ftp://crocoll.net/test.kdbx"; + action2.PerformManualFileSelect(path); + + Assert.IsTrue((bool) testee._result); + Assert.AreEqual(testee._resultIoc.Path, path); + + } + + [TestMethod] + public void TestCancelManualSelect() + { + var testee = CreateTestee(); + var action = (TestControllableSelectStorageLocationActivity.FileStorageSelectionAction)testee._userAction; + action.ReturnProtocol("ftp"); + + Assert.IsNull(testee._result); //no result yet + + var action2 = (TestControllableSelectStorageLocationActivity.SelectFileAction)testee._userAction; + action2.Cancel(); + + Assert.IsFalse((bool)testee._result); + + } + + + [TestMethod] + public void TestCancelAndroidBrowseDialog() + { + var testee = CreateTestee(); + var action = (TestControllableSelectStorageLocationActivity.FileStorageSelectionAction)testee._userAction; + action.ReturnProtocol("androidget"); + + Assert.IsNull(testee._result); //no result yet + + var action2 = (TestControllableSelectStorageLocationActivity.AndroidBrowseDialogAction)testee._userAction; + action2.Cancel(); + + Assert.IsFalse((bool)testee._result); + + } + + + [TestMethod] + public void TestCancelCopyTemporaryLocation() + { + var testee = CreateTestee(); + var action = (TestControllableSelectStorageLocationActivity.FileStorageSelectionAction)testee._userAction; + action.ReturnProtocol("androidget"); + + var action2 = (TestControllableSelectStorageLocationActivity.AndroidBrowseDialogAction)testee._userAction; + action2.ReturnSelectedFile("content://abc.kdbx"); + + var action3 = (TestControllableSelectStorageLocationActivity.ShowAlertDialogAction)testee._userAction; + Assert.IsTrue(action3.Message.StartsWith(testee.App.GetResourceString(UiStringKey.FileIsTemporarilyAvailable))); + Assert.IsNull(testee._result); //no result yet + action3.Cancel(); + + Assert.IsFalse((bool)testee._result); + + } + + [TestMethod] + public void TestCopyTemporaryLocation() + { + var testee = CreateTestee(); + var action = (TestControllableSelectStorageLocationActivity.FileStorageSelectionAction)testee._userAction; + action.ReturnProtocol("androidget"); + + var action2 = (TestControllableSelectStorageLocationActivity.AndroidBrowseDialogAction)testee._userAction; + action2.ReturnSelectedFile("content://abc.kdbx"); + + var action3 = (TestControllableSelectStorageLocationActivity.ShowAlertDialogAction)testee._userAction; + Assert.IsTrue(action3.Message.StartsWith(testee.App.GetResourceString(UiStringKey.FileIsTemporarilyAvailable))); + Assert.IsNull(testee._result); //no result yet + action3.Ok(); + + + var action4 = (TestControllableSelectStorageLocationActivity.FileStorageSelectionAction)testee._userAction; + action4.ReturnProtocol("ftp"); + + Assert.IsNull(testee._result); + + var action5 = (TestControllableSelectStorageLocationActivity.SelectFileAction)testee._userAction; + Assert.IsTrue(action5.IsForSave); + string path = "ftp://crocoll.net/testtarget.kdbx"; + action5.PerformManualFileSelect(path); + + Assert.IsTrue((bool)testee._result); + Assert.AreEqual(path, testee._resultIoc.Path); + + } + + + [TestMethod] + public void TestCopyTemporaryLocationWithFileBrowser() + { + var testee = CreateTestee(); + var action = (TestControllableSelectStorageLocationActivity.FileStorageSelectionAction)testee._userAction; + action.ReturnProtocol("androidget"); + + var action2 = (TestControllableSelectStorageLocationActivity.AndroidBrowseDialogAction)testee._userAction; + action2.ReturnSelectedFile("content://abc.kdbx"); + + var action3 = (TestControllableSelectStorageLocationActivity.ShowAlertDialogAction)testee._userAction; + Assert.IsTrue(action3.Message.StartsWith(testee.App.GetResourceString(UiStringKey.FileIsTemporarilyAvailable))); + Assert.IsNull(testee._result); //no result yet + action3.Ok(); + + + var action4 = (TestControllableSelectStorageLocationActivity.FileStorageSelectionAction)testee._userAction; + action4.ReturnProtocol("file"); + + + var action5 = (TestControllableSelectStorageLocationActivity.SelectFileAction)testee._userAction; + Assert.IsTrue(action5.IsForSave); + + action5.PrepareFileChooser("file"); + + Assert.IsNull(testee._result); + + + var action6 = (TestControllableSelectStorageLocationActivity.FileChooserAction)testee._userAction; + Assert.IsTrue(action5.IsForSave); + string path = "file:///mnt/sdcard/testtarget.kdbx"; + + action6.ReturnChosenFile(path); + + string expectedpath = "/mnt/sdcard/testtarget.kdbx"; + Assert.IsTrue((bool)testee._result); + Assert.AreEqual(expectedpath, testee._resultIoc.Path); + + } + + + [TestMethod] + public void TestCopyTemporaryLocationWithCancelFileBrowser() + { + var testee = CreateTestee(); + var action = (TestControllableSelectStorageLocationActivity.FileStorageSelectionAction)testee._userAction; + action.ReturnProtocol("androidget"); + + var action2 = (TestControllableSelectStorageLocationActivity.AndroidBrowseDialogAction)testee._userAction; + action2.ReturnSelectedFile("content://abc.kdbx"); + + var action3 = (TestControllableSelectStorageLocationActivity.ShowAlertDialogAction)testee._userAction; + Assert.IsTrue(action3.Message.StartsWith(testee.App.GetResourceString(UiStringKey.FileIsTemporarilyAvailable))); + Assert.IsNull(testee._result); //no result yet + action3.Ok(); + + + var action4 = (TestControllableSelectStorageLocationActivity.FileStorageSelectionAction)testee._userAction; + action4.ReturnProtocol("file"); + + + var action5 = (TestControllableSelectStorageLocationActivity.SelectFileAction)testee._userAction; + Assert.IsTrue(action5.IsForSave); + + action5.PrepareFileChooser("file"); + + Assert.IsNull(testee._result); + + + var action6 = (TestControllableSelectStorageLocationActivity.FileChooserAction)testee._userAction; + Assert.IsTrue(action5.IsForSave); + string path = "file:///mnt/sdcard/testtarget.kdbx"; + + action6.Cancel(); + + Assert.IsFalse((bool)testee._result); + + + } + + [TestMethod] + public void TestCancelCopyReadOnlyLocation() + { + SelectStorageLocationActivityBase.WritableRequirements requestedWritableRequirements = SelectStorageLocationActivityBase.WritableRequirements.WriteDesired; + string path; + var testee = PrepareTesteeForCancelCopyReadOnly(requestedWritableRequirements, out path); + + Assert.IsTrue((bool)testee._result); + Assert.AreEqual(path, testee._resultIoc.Path); + + } + + [TestMethod] + public void TestCancelCopyReadOnlyLocationWriteRequired() + { + SelectStorageLocationActivityBase.WritableRequirements requestedWritableRequirements = SelectStorageLocationActivityBase.WritableRequirements.WriteDemanded; + string path; + var testee = PrepareTesteeForCancelCopyReadOnly(requestedWritableRequirements, out path); + + Assert.IsFalse((bool)testee._result); + + + } + + private static TestControllableSelectStorageLocationActivity PrepareTesteeForCancelCopyReadOnly( + SelectStorageLocationActivityBase.WritableRequirements requestedWritableRequirements, out string path) + { + var testee = CreateTestee(); + + testee.requestedWritableRequirements = requestedWritableRequirements; + var action = (TestControllableSelectStorageLocationActivity.FileStorageSelectionAction) testee._userAction; + action.ReturnProtocol("androidget"); + + var action2 = (TestControllableSelectStorageLocationActivity.AndroidBrowseDialogAction) testee._userAction; + path = "readonly://abc.kdbx"; + action2.ReturnSelectedFile(path); + + var action3 = (TestControllableSelectStorageLocationActivity.ShowAlertDialogAction) testee._userAction; + Assert.IsTrue(action3.Message.StartsWith(testee.App.GetResourceString(UiStringKey.FileIsReadOnly))); + Assert.IsNull(testee._result); //no result yet + action3.Cancel(); + return testee; + } + + [TestMethod] + public void TestOpenReadOnly() + { + var testee = CreateTestee(); + + testee.requestedWritableRequirements = SelectStorageLocationActivityBase.WritableRequirements.ReadOnly; + var action = (TestControllableSelectStorageLocationActivity.FileStorageSelectionAction) testee._userAction; + action.ReturnProtocol("androidget"); + + var action2 = (TestControllableSelectStorageLocationActivity.AndroidBrowseDialogAction) testee._userAction; + var path = "readonly://abc.kdbx"; + action2.ReturnSelectedFile(path); + + Assert.IsTrue((bool)testee._result); + Assert.AreEqual(path, testee._resultIoc.Path); + + } + + [TestMethod] + public void TestCopyTemporaryLocationFails() + { + var testee = CreateTestee(); + var action = (TestControllableSelectStorageLocationActivity.FileStorageSelectionAction)testee._userAction; + action.ReturnProtocol("androidget"); + + var action2 = (TestControllableSelectStorageLocationActivity.AndroidBrowseDialogAction)testee._userAction; + action2.ReturnSelectedFile("content://abc.kdbx"); + + var action3 = (TestControllableSelectStorageLocationActivity.ShowAlertDialogAction)testee._userAction; + Assert.IsTrue(action3.Message.StartsWith(testee.App.GetResourceString(UiStringKey.FileIsTemporarilyAvailable))); + Assert.IsNull(testee._result); //no result yet + action3.Ok(); + + + var action4 = (TestControllableSelectStorageLocationActivity.FileStorageSelectionAction)testee._userAction; + action4.ReturnProtocol("ftp"); + + Assert.IsNull(testee._result); + + var action5 = (TestControllableSelectStorageLocationActivity.SelectFileAction)testee._userAction; + Assert.IsTrue(action5.IsForSave); + string path = "ftp://crocoll.net/testtarget.kdbx"; + + testee.CopyFileShouldFail = true; + + action5.PerformManualFileSelect(path); + + Assert.IsFalse((bool)testee._result); + + } + + + + + + private static TestControllableSelectStorageLocationActivity CreateTestee() + { + return new TestControllableSelectStorageLocationActivity(new TestKp2aAppForSelectStorageLocation()); + } + } +} \ No newline at end of file diff --git a/src/MPTest/MPTest.csproj b/src/MPTest/MPTest.csproj index a81e31e8..14915121 100644 --- a/src/MPTest/MPTest.csproj +++ b/src/MPTest/MPTest.csproj @@ -35,10 +35,6 @@ false - - False - ..\..\..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll - @@ -46,6 +42,9 @@ + + ..\..\..\..\Program Files %28x86%29\Microsoft Visual Studio 11.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll + @@ -57,7 +56,7 @@ - {2f7cb5b4-ac2a-4790-b0f3-42e6c9a060d5} + {2F7CB5B4-AC2A-4790-B0F3-42E6C9A060D5} MasterPassword diff --git a/src/MasterKeePlugin/MasterKeePlugin.csproj b/src/MasterKeePlugin/MasterKeePlugin.csproj index e34d7dbc..032ef79b 100644 --- a/src/MasterKeePlugin/MasterKeePlugin.csproj +++ b/src/MasterKeePlugin/MasterKeePlugin.csproj @@ -3,8 +3,6 @@ Debug AnyCPU - 8.0.30703 - 2.0 {9A4C5BAA-1A8A-49B4-BBC3-60D4871FB36C} {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} Library @@ -26,7 +24,6 @@ DEBUG;TRACE prompt 4 - True None @@ -37,7 +34,6 @@ prompt 4 False - SdkOnly @@ -86,11 +82,11 @@ - {2f7cb5b4-ac2a-4790-b0f3-42e6c9a060d5} + {2F7CB5B4-AC2A-4790-B0F3-42E6C9A060D5} MasterPassword - {3da3911e-36de-465e-8f15-f1991b6437e5} + {3DA3911E-36DE-465E-8F15-F1991B6437E5} PluginSdkBinding diff --git a/src/PluginHostTest/PluginHostTest.csproj b/src/PluginHostTest/PluginHostTest.csproj index 5cf983a0..e8043a70 100644 --- a/src/PluginHostTest/PluginHostTest.csproj +++ b/src/PluginHostTest/PluginHostTest.csproj @@ -3,8 +3,6 @@ Debug AnyCPU - 8.0.30703 - 2.0 {C9F4AE81-0996-4E17-B3F2-D0F652F6AC50} {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} Library @@ -16,7 +14,6 @@ Resources\Resource.Designer.cs Off Properties\AndroidManifest.xml - v4.2 armeabi,armeabi-v7a,x86 @@ -32,7 +29,6 @@ DEBUG;TRACE prompt 4 - True None @@ -43,7 +39,6 @@ prompt 4 False - SdkOnly @@ -122,7 +117,7 @@ KeePassLib2Android - {3da3911e-36de-465e-8f15-f1991b6437e5} + {3DA3911E-36DE-465E-8F15-F1991B6437E5} PluginSdkBinding diff --git a/src/PluginSdkBinding/PluginSdkBinding.csproj b/src/PluginSdkBinding/PluginSdkBinding.csproj index c3c5c767..30b75a9c 100644 --- a/src/PluginSdkBinding/PluginSdkBinding.csproj +++ b/src/PluginSdkBinding/PluginSdkBinding.csproj @@ -3,8 +3,6 @@ Debug AnyCPU - 8.0.30703 - 2.0 {3DA3911E-36DE-465E-8F15-F1991B6437E5} {10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} Library @@ -22,6 +20,7 @@ DEBUG;TRACE prompt 4 + None pdbonly @@ -30,6 +29,7 @@ TRACE prompt 4 + false bin\ReleaseNoNet\ @@ -39,6 +39,8 @@ AnyCPU prompt MinimumRecommendedRules.ruleset + false + 4 diff --git a/src/TwofishCipher/TwofishCipher.csproj b/src/TwofishCipher/TwofishCipher.csproj index da265914..a031a7b0 100644 --- a/src/TwofishCipher/TwofishCipher.csproj +++ b/src/TwofishCipher/TwofishCipher.csproj @@ -3,8 +3,6 @@ Debug AnyCPU - 8.0.30703 - 2.0 {5CF675A5-9BEE-4720-BED9-D5BF14A2EBF9} {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} Library @@ -23,6 +21,7 @@ DEBUG;TRACE prompt 4 + None pdbonly @@ -31,6 +30,7 @@ TRACE prompt 4 + false bin\ReleaseNoNet\ @@ -38,9 +38,10 @@ true pdbonly AnyCPU - Off prompt MinimumRecommendedRules.ruleset + false + 4 @@ -66,7 +67,7 @@ - {545b4a6b-8bba-4fbe-92fc-4ac060122a54} + {545B4A6B-8BBA-4FBE-92FC-4AC060122A54} KeePassLib2Android diff --git a/src/java/InputStickAPI/AndroidManifest.xml b/src/java/InputStickAPI/AndroidManifest.xml index 0ee5fbb4..4133ae18 100644 --- a/src/java/InputStickAPI/AndroidManifest.xml +++ b/src/java/InputStickAPI/AndroidManifest.xml @@ -1,3 +1,4 @@ + InputStickAPI + Download InputStickUtility + Settings + Hello world! diff --git a/src/java/InputStickAPI/src/com/inputstick/api/AES.java b/src/java/InputStickAPI/src/com/inputstick/api/AES.java index 054dcb6b..e07cadb2 100644 --- a/src/java/InputStickAPI/src/com/inputstick/api/AES.java +++ b/src/java/InputStickAPI/src/com/inputstick/api/AES.java @@ -10,8 +10,10 @@ public class AES { private Cipher mCipherEncr; private Cipher mCipherDecr; private SecretKeySpec mKey; + private boolean ready; public AES() { + ready = false; } public static byte[] getMD5(String s) { @@ -31,10 +33,10 @@ public class AES { mCipherEncr = Cipher.getInstance("AES/CBC/NoPadding"); mCipherEncr.init(Cipher.ENCRYPT_MODE, mKey); iv = mCipherEncr.getIV(); - //System.out.println("AES IV: "); - Util.printHex(iv); + Util.printHex(iv, "AES IV: "); mCipherDecr = Cipher.getInstance("AES/CBC/NoPadding"); - mCipherDecr.init(Cipher.DECRYPT_MODE, mKey, new IvParameterSpec(iv)); + mCipherDecr.init(Cipher.DECRYPT_MODE, mKey, new IvParameterSpec(iv)); + ready = true; } catch (Exception e) { e.printStackTrace(); } @@ -49,4 +51,7 @@ public class AES { return mCipherDecr.update(data); } + public boolean isReady() { + return ready; + } } diff --git a/src/java/InputStickAPI/src/com/inputstick/api/BTConnectionManager.java b/src/java/InputStickAPI/src/com/inputstick/api/BTConnectionManager.java index 4d853bec..c3adf551 100644 --- a/src/java/InputStickAPI/src/com/inputstick/api/BTConnectionManager.java +++ b/src/java/InputStickAPI/src/com/inputstick/api/BTConnectionManager.java @@ -21,7 +21,6 @@ public class BTConnectionManager extends ConnectionManager implements InitManage private Application mApp; private BTService mBTService; private PacketManager mPacketManager; - //private PacketQueue mPacketQueue; private final BTHandler mBTHandler = new BTHandler(this); @@ -45,31 +44,12 @@ public class BTConnectionManager extends ConnectionManager implements InitManage break; case BTService.EVENT_CANCELLED: manager.onDisconnected(); - break; - case BTService.EVENT_CONNECTION_FAILED: - manager.onFailure(1); + break; + case BTService.EVENT_ERROR: + manager.onFailure(msg.arg1); break; - case BTService.EVENT_CONNECTION_LOST: - manager.onFailure(1); - break; - case BTService.EVENT_NO_BT_HW: - manager.onFailure(1); - break; - case BTService.EVENT_INVALID_MAC: - manager.onFailure(1); - break; - case BTService.EVENT_CMD_TIMEOUT: - manager.onFailure(1); - break; - case BTService.EVENT_INTERVAL_TIMEOUT: - manager.onFailure(1); - break; - case BTService.EVENT_TURN_ON_TIMEOUT: - manager.onFailure(1); - break; - case BTService.EVENT_OTHER_ERROR: - manager.onFailure(1); - break; + default: + manager.onFailure(InputStickError.ERROR_BLUETOOTH); } } } @@ -80,6 +60,7 @@ public class BTConnectionManager extends ConnectionManager implements InitManage private void onConnected() { stateNotify(ConnectionManager.STATE_CONNECTED); + //mInitManager.startTimeoutCountdown(InitManager.DEFAULT_INIT_TIMEOUT); mInitManager.onConnected(); } @@ -89,7 +70,8 @@ public class BTConnectionManager extends ConnectionManager implements InitManage private void onFailure(int code) { mErrorCode = code; - stateNotify(ConnectionManager.STATE_FAILURE); + stateNotify(ConnectionManager.STATE_FAILURE); + disconnect(); } private void onData(byte[] rawData) { @@ -97,16 +79,15 @@ public class BTConnectionManager extends ConnectionManager implements InitManage data = mPacketManager.bytesToPacket(rawData); if (data == null) { - //TODO + //TODO failure? return; } mInitManager.onData(data); - - //sendNext(); TODO + for (InputStickDataListener listener : mDataListeners) { listener.onInputStickData(data); - } + } } @@ -124,7 +105,7 @@ public class BTConnectionManager extends ConnectionManager implements InitManage public void connect(boolean reflection, int timeout) { - mErrorCode = ConnectionManager.ERROR_NONE; + mErrorCode = InputStickError.ERROR_NONE; if (mBTService == null) { mBTService = new BTService(mApp, mBTHandler); mPacketManager = new PacketManager(mBTService, mKey); @@ -143,10 +124,14 @@ public class BTConnectionManager extends ConnectionManager implements InitManage } } + public void disconnect(int failureCode) { + onFailure(failureCode); + } + @Override public void sendPacket(Packet p) { - mPacketManager.sendPacket(p); //TODO tmp; zalozmy z beda same NO_RESP ??? + mPacketManager.sendPacket(p); } @@ -162,7 +147,7 @@ public class BTConnectionManager extends ConnectionManager implements InitManage @Override public void onInitFailure(int code) { - onFailure(code); + onFailure(code); } } diff --git a/src/java/InputStickAPI/src/com/inputstick/api/ConnectionManager.java b/src/java/InputStickAPI/src/com/inputstick/api/ConnectionManager.java index d62cdcc4..a47aca63 100644 --- a/src/java/InputStickAPI/src/com/inputstick/api/ConnectionManager.java +++ b/src/java/InputStickAPI/src/com/inputstick/api/ConnectionManager.java @@ -11,13 +11,6 @@ public abstract class ConnectionManager { public static final int STATE_READY = 4; - public static final int ERROR_NONE = 0; - - public static final int ERROR_UNSUPPORTED_FIRMWARE = 10; - public static final int ERROR_PASSWORD_PROTECTED = 11; - public static final int ERROR_INVALID_KEY = 12; - - protected Vector mStateListeners = new Vector(); protected Vector mDataListeners = new Vector(); @@ -47,7 +40,9 @@ public abstract class ConnectionManager { public void addStateListener(InputStickStateListener listener) { if (listener != null) { - mStateListeners.add(listener); + if ( !mStateListeners.contains(listener)) { + mStateListeners.add(listener); + } } } @@ -59,7 +54,9 @@ public abstract class ConnectionManager { public void addDataListener(InputStickDataListener listener) { if (listener != null) { - mDataListeners.add(listener); + if ( !mDataListeners.contains(listener)) { + mDataListeners.add(listener); + } } } diff --git a/src/java/InputStickAPI/src/com/inputstick/api/HIDInfo.java b/src/java/InputStickAPI/src/com/inputstick/api/HIDInfo.java index 6b8f6c4b..b1c2c1d5 100644 --- a/src/java/InputStickAPI/src/com/inputstick/api/HIDInfo.java +++ b/src/java/InputStickAPI/src/com/inputstick/api/HIDInfo.java @@ -15,10 +15,16 @@ public class HIDInfo { private boolean mouseReady; private boolean consumerReady; + // >= 0.93 + private boolean sentToHostInfo; + private int keyboardReportsSentToHost; + private int mouseReportsSentToHost; + private int consumerReportsSentToHost; public HIDInfo() { keyboardReportProtocol = true; mouseReportProtocol = true; + sentToHostInfo = false; } public void update(byte[] data) { @@ -70,6 +76,14 @@ public class HIDInfo { } else { consumerReady = true; } + if (data.length >= 12) { + if (data[11] == (byte)0xFF) { + sentToHostInfo = true; + keyboardReportsSentToHost = data[8] & 0xFF; + mouseReportsSentToHost = data[9] & 0xFF; + consumerReportsSentToHost = data[10] & 0xFF; + } + } } public void setKeyboardBusy() { @@ -112,4 +126,24 @@ public class HIDInfo { return consumerReady; } + + + // > v0.93 firmware only + + public boolean isSentToHostInfoAvailable() { + return sentToHostInfo; + } + + public int getKeyboardReportsSentToHost() { + return keyboardReportsSentToHost; + } + + public int getMouseReportsSentToHost() { + return mouseReportsSentToHost; + } + + public int getConsumerReportsSentToHost() { + return consumerReportsSentToHost; + } + } diff --git a/src/java/InputStickAPI/src/com/inputstick/api/IPCConnectionManager.java b/src/java/InputStickAPI/src/com/inputstick/api/IPCConnectionManager.java index 5548f6f5..cac0d4d9 100644 --- a/src/java/InputStickAPI/src/com/inputstick/api/IPCConnectionManager.java +++ b/src/java/InputStickAPI/src/com/inputstick/api/IPCConnectionManager.java @@ -52,7 +52,6 @@ public class IPCConnectionManager extends ConnectionManager { } break; case SERVICE_CMD_STATE: - //System.out.println("CMD STATE: "+msg.arg1); manager.stateNotify(msg.arg1); break; } @@ -61,7 +60,6 @@ public class IPCConnectionManager extends ConnectionManager { private ServiceConnection mConnection = new ServiceConnection() { public void onServiceConnected(ComponentName className, IBinder service) { - //System.out.println("onServiceConnected!"); mService = new Messenger(service); mBound = true; sendMessage(SERVICE_CMD_CONNECT, 0, 0); @@ -69,9 +67,10 @@ public class IPCConnectionManager extends ConnectionManager { public void onServiceDisconnected(ComponentName className) { // unexpectedly disconnected from service - //System.out.println("onService DISCONNECTED!"); mService = null; mBound = false; + mErrorCode = InputStickError.ERROR_ANDROID_SERVICE_DISCONNECTED; + stateNotify(STATE_FAILURE); stateNotify(STATE_DISCONNECTED); } }; @@ -130,34 +129,32 @@ public class IPCConnectionManager extends ConnectionManager { } if (exists) { - mErrorCode = ConnectionManager.ERROR_NONE; + mErrorCode = InputStickError.ERROR_NONE; Intent intent = new Intent(); intent.setComponent(new ComponentName("com.inputstick.apps.inputstickutility","com.inputstick.apps.inputstickutility.service.InputStickService")); mCtx.startService(intent); mCtx.bindService(intent, mConnection, Context.BIND_AUTO_CREATE); if (mBound) { - //already bound? - //System.out.println("Service already Connected"); + //already bound sendMessage(SERVICE_CMD_CONNECT, 0, 0); } } else { - mErrorCode = 1; //TODO + mErrorCode = InputStickError.ERROR_ANDROID_NO_UTILITY_APP; stateNotify(STATE_FAILURE); + stateNotify(STATE_DISCONNECTED); } } @Override public void disconnect() { if (mBound) { - //System.out.println("UNBIND"); sendMessage(SERVICE_CMD_DISCONNECT, 0, 0); Intent intent = new Intent(); intent.setComponent(new ComponentName("com.inputstick.apps.inputstickutility","com.inputstick.apps.inputstickutility.service.InputStickService")); mCtx.unbindService(mConnection); - mCtx.stopService(intent); + mCtx.stopService(intent); mBound = false; - //TODO stateNotify - //service will pass notification message + //service will pass notification message (disconnected) } else { //just set state, there is nothing else to do stateNotify(STATE_DISCONNECTED); @@ -172,9 +169,8 @@ public class IPCConnectionManager extends ConnectionManager { } else { sendMessage(IPCConnectionManager.SERVICE_CMD_DATA, 0, 0, p.getBytes()); } - } + } } - } diff --git a/src/java/InputStickAPI/src/com/inputstick/api/Packet.java b/src/java/InputStickAPI/src/com/inputstick/api/Packet.java index 27e0ac93..ddb24ef5 100644 --- a/src/java/InputStickAPI/src/com/inputstick/api/Packet.java +++ b/src/java/InputStickAPI/src/com/inputstick/api/Packet.java @@ -22,6 +22,12 @@ public class Packet { public static final byte CMD_FW_INFO = 0x10; public static final byte CMD_INIT = 0x11; + public static final byte CMD_INIT_AUTH = 0x12; + public static final byte CMD_INIT_CON = 0x13; + //public static final byte CMD_SET_KEY = 0x14; + public static final byte CMD_SET_VALUE = 0x14; + public static final byte CMD_RESTORE_DEFAULTS = 0x15; + public static final byte CMD_RESTORE_STATUS = 0x16; public static final byte CMD_HID_STATUS_REPORT = 0x20; @@ -37,6 +43,7 @@ public class Packet { public static final byte RESP_OK = 0x01; + public static final byte RESP_UNKNOWN_CMD = (byte)0xFF; public static final byte[] RAW_OLD_BOOTLOADER = new byte[] {START_TAG, (byte)0x00, (byte)0x02, (byte)0x83, (byte)0x00, (byte)0xDA}; @@ -119,4 +126,8 @@ public class Packet { return mRespond; } + public void print() { + Util.printHex(mData, "PACKET DATA:"); + } + } diff --git a/src/java/InputStickAPI/src/com/inputstick/api/PacketManager.java b/src/java/InputStickAPI/src/com/inputstick/api/PacketManager.java index 78ae191f..f579c439 100644 --- a/src/java/InputStickAPI/src/com/inputstick/api/PacketManager.java +++ b/src/java/InputStickAPI/src/com/inputstick/api/PacketManager.java @@ -39,9 +39,13 @@ public class PacketManager { } } + public boolean isEncrypted() { + return mEncryption; + } + public Packet encPacket(boolean enable) { Random r = new Random(); - Packet p = new Packet(true, Packet.CMD_INIT); + Packet p = new Packet(true, Packet.CMD_INIT_AUTH); if (enable) { p.addByte((byte)1); } else { @@ -68,13 +72,13 @@ public class PacketManager { initData = mAes.encrypt(initData); p.addBytes(initData); - //Util.printHex(initData, "InitData: "); + Util.printHex(initData, "InitData: "); cmpData = new byte[16]; r.nextBytes(cmpData); p.addBytes(cmpData); - //Util.printHex(cmpData, "CmpData: "); + Util.printHex(cmpData, "CmpData: "); return p; } @@ -87,11 +91,15 @@ public class PacketManager { payload = Arrays.copyOfRange(data, 2, data.length); //remove TAG, info if ((data[1] & Packet.FLAG_ENCRYPTED) != 0) { - Util.log("DECRYPT"); - payload = mAes.decrypt(payload); + //Util.log("DECRYPT"); + if (mAes.isReady()) { + payload = mAes.decrypt(payload); + } else { + return null; + } } - Util.printHex(payload, "DATA IN: "); + //Util.printHex(payload, "DATA IN: "); //check CRC crcCompare = Util.getLong(payload[0], payload[1], payload[2], payload[3]); @@ -104,17 +112,19 @@ public class PacketManager { payload = Arrays.copyOfRange(payload, 4, payload.length); //remove CRC return payload; } else { - return null; //TODO + return null; //TODO } } public void sendRAW(byte[] data) { mBTService.write(data); - } + } public void sendPacket(Packet p) { - sendPacket(p, mEncryption); + if (p != null) { + sendPacket(p, mEncryption); + } } public void sendPacket(Packet p, boolean encrypt) { @@ -137,7 +147,7 @@ public class PacketManager { mCrc.reset(); mCrc.update(result, CRC_OFFSET, result.length - CRC_OFFSET); crcValue = mCrc.getValue(); - Util.log("CRC: "+crcValue); + //Util.log("CRC: "+crcValue); result[3] = (byte)crcValue; crcValue >>= 8; result[2] = (byte)crcValue; diff --git a/src/java/InputStickAPI/src/com/inputstick/api/Util.java b/src/java/InputStickAPI/src/com/inputstick/api/Util.java index 112e3312..57b187c5 100644 --- a/src/java/InputStickAPI/src/com/inputstick/api/Util.java +++ b/src/java/InputStickAPI/src/com/inputstick/api/Util.java @@ -1,13 +1,25 @@ package com.inputstick.api; +import java.io.UnsupportedEncodingException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + public abstract class Util { - private static final boolean debug = false; + public static boolean debug = false; public static void log(String msg) { + log(msg, false); + } + + public static void log(String msg, boolean displayTime) { if (debug) { - System.out.println("LOG: " + msg); + System.out.print("LOG: " + msg); + if (displayTime) { + System.out.print(" @ " + System.currentTimeMillis()); + } + System.out.println(); } } @@ -21,29 +33,35 @@ public abstract class Util { public static void printHex(byte[] toPrint) { if (debug) { - int cnt = 0; - String s; - byte b; - for (int i = 0; i < toPrint.length; i++) { - b = toPrint[i]; - if ((b < 10) && (b >= 0)) { - s = Integer.toHexString((int)b); - s = "0" + s; - } else { - s = Integer.toHexString((int)b); - if (s.length() > 2) { - s = s.substring(s.length() - 2); + if (toPrint != null) { + int cnt = 0; + String s; + byte b; + for (int i = 0; i < toPrint.length; i++) { + b = toPrint[i]; + //0x0..0xF = 0x00..0x0F + if ((b < 0x10) && (b >= 0)) { + s = Integer.toHexString((int)b); + s = "0" + s; + } else { + s = Integer.toHexString((int)b); + if (s.length() > 2) { + s = s.substring(s.length() - 2); + } + } + s = s.toUpperCase(); + System.out.print("0x" + s + " "); + cnt++; + if (cnt == 8) { + System.out.println(""); + cnt = 0; } - } - s = s.toUpperCase(); - System.out.print("0x" + s + " "); - cnt++; - if (cnt == 8) { - System.out.println(""); - cnt = 0; - } - } - System.out.println("\n#####"); + } + + } else { + System.out.println("null"); + } + System.out.println("\n#####"); } } @@ -79,5 +97,18 @@ public abstract class Util { return result; } + + public static byte[] getPasswordBytes(String plainText) { + try { + MessageDigest md = MessageDigest.getInstance("MD5"); + return md.digest(plainText.getBytes("UTF-8")); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + return null; + } + } diff --git a/src/java/InputStickAPI/src/com/inputstick/api/basic/InputStickHID.java b/src/java/InputStickAPI/src/com/inputstick/api/basic/InputStickHID.java index cf9adafa..5bc4d5ca 100644 --- a/src/java/InputStickAPI/src/com/inputstick/api/basic/InputStickHID.java +++ b/src/java/InputStickAPI/src/com/inputstick/api/basic/InputStickHID.java @@ -1,35 +1,54 @@ package com.inputstick.api.basic; +import java.util.Timer; +import java.util.TimerTask; import java.util.Vector; +import android.app.AlertDialog; import android.app.Application; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.net.Uri; import com.inputstick.api.BTConnectionManager; import com.inputstick.api.ConnectionManager; import com.inputstick.api.HIDInfo; import com.inputstick.api.IPCConnectionManager; import com.inputstick.api.InputStickDataListener; +import com.inputstick.api.InputStickError; import com.inputstick.api.InputStickStateListener; +import com.inputstick.api.OnEmptyBufferListener; import com.inputstick.api.Packet; +import com.inputstick.api.Util; import com.inputstick.api.hid.HIDTransaction; import com.inputstick.api.hid.HIDTransactionQueue; import com.inputstick.init.InitManager; public class InputStickHID implements InputStickStateListener, InputStickDataListener { - //private static final String mTag = "InputStickBasic"; + public static final int INTERFACE_KEYBOARD = 0; + public static final int INTERFACE_CONSUMER = 1; + public static final int INTERFACE_MOUSE = 2; + + //private static final String mTag = "InputStickBasic"; private static ConnectionManager mConnectionManager; private static Vector mStateListeners = new Vector(); + private static InputStickHID instance = new InputStickHID(); - private static HIDInfo mHIDInfo = new HIDInfo(); + private static HIDInfo mHIDInfo; private static HIDTransactionQueue keyboardQueue; private static HIDTransactionQueue mouseQueue; private static HIDTransactionQueue consumerQueue; + // >= FW 0.93 + private static Timer t1; + private static boolean constantUpdateMode; + private InputStickHID() { } @@ -38,9 +57,11 @@ public class InputStickHID implements InputStickStateListener, InputStickDataLis } private static void init() { - keyboardQueue = new HIDTransactionQueue(HIDTransactionQueue.KEYBOARD, mConnectionManager); - mouseQueue = new HIDTransactionQueue(HIDTransactionQueue.MOUSE, mConnectionManager); - consumerQueue = new HIDTransactionQueue(HIDTransactionQueue.CONSUMER, mConnectionManager); + mHIDInfo = new HIDInfo(); + constantUpdateMode = false; + keyboardQueue = new HIDTransactionQueue(INTERFACE_KEYBOARD, mConnectionManager); + mouseQueue = new HIDTransactionQueue(INTERFACE_MOUSE, mConnectionManager); + consumerQueue = new HIDTransactionQueue(INTERFACE_CONSUMER, mConnectionManager); mConnectionManager.addStateListener(instance); mConnectionManager.addDataListener(instance); @@ -55,8 +76,6 @@ public class InputStickHID implements InputStickStateListener, InputStickDataLis //direct Bluetooth connection public static void connect(Application app, String mac, byte[] key) { - //mConnectionManager = new BTConnectionManager(new BasicInitManager(key), app, mac, reflections, key); - //mConnectionManager = new BTConnectionManager(new BasicInitManager(key), app, mac, key); mConnectionManager = new BTConnectionManager(new InitManager(key), app, mac, key); init(); } @@ -80,6 +99,16 @@ public class InputStickHID implements InputStickStateListener, InputStickDataLis } } + public static int getErrorCode() { + if (mConnectionManager != null) { + return mConnectionManager.getErrorCode(); + } else { + return InputStickError.ERROR_UNKNOWN; + } + } + + + public static boolean isReady() { if (getState() == ConnectionManager.STATE_READY) { return true; @@ -90,7 +119,9 @@ public class InputStickHID implements InputStickStateListener, InputStickDataLis public static void addStateListener(InputStickStateListener listener) { if (listener != null) { - mStateListeners.add(listener); + if ( !mStateListeners.contains(listener)) { + mStateListeners.add(listener); + } } } @@ -99,6 +130,22 @@ public class InputStickHID implements InputStickStateListener, InputStickDataLis mStateListeners.remove(listener); } } + + public static void addBufferEmptyListener(OnEmptyBufferListener listener) { + if (listener != null) { + keyboardQueue.addBufferEmptyListener(listener); + mouseQueue.addBufferEmptyListener(listener); + consumerQueue.addBufferEmptyListener(listener); + } + } + + public static void removeBufferEmptyListener(OnEmptyBufferListener listener) { + if (listener != null) { + keyboardQueue.removeBufferEmptyListener(listener); + mouseQueue.removeBufferEmptyListener(listener); + consumerQueue.removeBufferEmptyListener(listener); + } + } public static void addKeyboardTransaction(HIDTransaction transaction) { keyboardQueue.addTransaction(transaction); @@ -112,6 +159,18 @@ public class InputStickHID implements InputStickStateListener, InputStickDataLis consumerQueue.addTransaction(transaction); } + public static void clearKeyboardBuffer() { + keyboardQueue.clearBuffer(); + } + + public static void clearMouseBuffer() { + mouseQueue.clearBuffer(); + } + + public static void clearConsumerBuffer() { + consumerQueue.clearBuffer(); + } + public static boolean sendPacket(Packet p) { if (mConnectionManager != null) { mConnectionManager.sendPacket(p); @@ -122,31 +181,112 @@ public class InputStickHID implements InputStickStateListener, InputStickDataLis } @Override - public void onStateChanged(int state) { + public void onStateChanged(int state) { + if ((state == ConnectionManager.STATE_DISCONNECTED) && (t1 != null)) { + t1.cancel(); + t1 = null; + } for (InputStickStateListener listener : mStateListeners) { listener.onStateChanged(state); } } + + public static boolean isKeyboardLocalBufferEmpty() { + return keyboardQueue.isLocalBufferEmpty(); + } + public static boolean isMouseLocalBufferEmpty() { + return mouseQueue.isLocalBufferEmpty(); + } + public static boolean isConsumerLocalBufferEmpty() { + return consumerQueue.isLocalBufferEmpty(); + } + + public static boolean isKeyboardRemoteBufferEmpty() { + return keyboardQueue.isRemoteBufferEmpty(); + } + public static boolean isMouseRemoteBufferEmpty() { + return mouseQueue.isRemoteBufferEmpty(); + } + public static boolean isConsumerRemoteBufferEmpty() { + return consumerQueue.isRemoteBufferEmpty(); + } @Override public void onInputStickData(byte[] data) { if (data[0] == Packet.CMD_HID_STATUS) { mHIDInfo.update(data); - - if (mHIDInfo.isKeyboardReady()) { - keyboardQueue.deviceReady(); + + if (mHIDInfo.isSentToHostInfoAvailable()) { + // >= FW 0.93 + keyboardQueue.deviceReady(mHIDInfo, mHIDInfo.getKeyboardReportsSentToHost()); + mouseQueue.deviceReady(mHIDInfo, mHIDInfo.getMouseReportsSentToHost()); + consumerQueue.deviceReady(mHIDInfo, mHIDInfo.getConsumerReportsSentToHost()); + + if ( !constantUpdateMode) { + Util.log("Constatnt update mode enabled"); + constantUpdateMode = true; + t1 = new Timer(); + t1.schedule(new TimerTask() { + @Override + public void run() { + keyboardQueue.sendToBuffer(false); + mouseQueue.sendToBuffer(false); + consumerQueue.sendToBuffer(false); + } + }, 5,5); + } + } else { + //previous FW versions + if (mHIDInfo.isKeyboardReady()) { + keyboardQueue.deviceReady(null, 0); + } + if (mHIDInfo.isMouseReady()) { + mouseQueue.deviceReady(null, 0); + } + if (mHIDInfo.isConsumerReady()) { + consumerQueue.deviceReady(null, 0); + } } - if (mHIDInfo.isMouseReady()) { - mouseQueue.deviceReady(); - } - if (mHIDInfo.isConsumerReady()) { - consumerQueue.deviceReady(); - } InputStickKeyboard.setLEDs(mHIDInfo.getNumLock(), mHIDInfo.getCapsLock(), mHIDInfo.getScrollLock()); } } + public static AlertDialog getDownloadDialog(final Context ctx) { + if (mConnectionManager.getErrorCode() == InputStickError.ERROR_ANDROID_NO_UTILITY_APP) { + AlertDialog.Builder downloadDialog = new AlertDialog.Builder(ctx); + downloadDialog.setTitle("No InputStickUtility app installed"); + downloadDialog.setMessage("InputStickUtility is required to run this application. Download now?"); + downloadDialog.setPositiveButton("Yes", + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + final String appPackageName = "com.inputstick.apps.inputstickutility"; + try { + ctx.startActivity(new Intent( + Intent.ACTION_VIEW, Uri + .parse("market://details?id=" + + appPackageName))); + } catch (android.content.ActivityNotFoundException anfe) { + ctx.startActivity(new Intent( + Intent.ACTION_VIEW, + Uri.parse("http://play.google.com/store/apps/details?id=" + + appPackageName))); + } + } + }); + downloadDialog.setNegativeButton("No", + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + } + }); + return downloadDialog.show(); + } else { + return null; + } + } + } diff --git a/src/java/InputStickAPI/src/com/inputstick/api/basic/InputStickKeyboard.java b/src/java/InputStickAPI/src/com/inputstick/api/basic/InputStickKeyboard.java index 3c902203..9bb05e67 100644 --- a/src/java/InputStickAPI/src/com/inputstick/api/basic/InputStickKeyboard.java +++ b/src/java/InputStickAPI/src/com/inputstick/api/basic/InputStickKeyboard.java @@ -2,6 +2,8 @@ package com.inputstick.api.basic; import java.util.Vector; +import android.util.SparseArray; + import com.inputstick.api.InputStickKeyboardListener; import com.inputstick.api.hid.HIDKeycodes; import com.inputstick.api.hid.HIDTransaction; @@ -13,6 +15,10 @@ public class InputStickKeyboard { private static final byte NONE = (byte)0; + private static final byte LED_NUM_LOCK = 1; + private static final byte LED_CAPS_LOCK = 2; + private static final byte LED_SCROLL_LOCK = 4; + private static boolean mReportProtocol; private static boolean mNumLock; private static boolean mCapsLock; @@ -20,12 +26,23 @@ public class InputStickKeyboard { private static Vector mKeyboardListeners = new Vector(); + private static final SparseArray ledsMap; + static + { + ledsMap = new SparseArray(); + ledsMap.put(LED_NUM_LOCK, "NumLock"); + ledsMap.put(LED_CAPS_LOCK, "CapsLock"); + ledsMap.put(LED_SCROLL_LOCK, "ScrollLock"); + } + private InputStickKeyboard() { } public static void addKeyboardListener(InputStickKeyboardListener listener) { if (listener != null) { - mKeyboardListeners.add(listener); + if ( !mKeyboardListeners.contains(listener)) { + mKeyboardListeners.add(listener); + } } } @@ -114,5 +131,25 @@ public class InputStickKeyboard { t.addReport(report); InputStickHID.addKeyboardTransaction(t); }*/ + + public static String ledsToString(byte leds) { + String result = "None"; + boolean first = true; + byte mod; + for (int i = 0; i < 8; i++) { + mod = (byte)(LED_NUM_LOCK << i); + if ((leds & mod) != 0) { + if ( !first) { + result += ", "; + } else { + result = ""; + } + first = false; + result += ledsMap.get(mod); + } + } + + return result; + } } diff --git a/src/java/InputStickAPI/src/com/inputstick/api/basic/InputStickMouse.java b/src/java/InputStickAPI/src/com/inputstick/api/basic/InputStickMouse.java index a5db55f2..19924a8f 100644 --- a/src/java/InputStickAPI/src/com/inputstick/api/basic/InputStickMouse.java +++ b/src/java/InputStickAPI/src/com/inputstick/api/basic/InputStickMouse.java @@ -1,5 +1,7 @@ package com.inputstick.api.basic; +import android.util.SparseArray; + import com.inputstick.api.hid.HIDTransaction; import com.inputstick.api.hid.MouseReport; @@ -12,6 +14,15 @@ public class InputStickMouse { public static final byte BUTTON_RIGHT = 0x02; public static final byte BUTTON_MIDDLE = 0x04; + private static final SparseArray buttonsMap; + static + { + buttonsMap = new SparseArray(); + buttonsMap.put(BUTTON_LEFT, "Left"); + buttonsMap.put(BUTTON_RIGHT, "Right"); + buttonsMap.put(BUTTON_MIDDLE, "Middle"); + } + private static boolean mReportProtocol; private InputStickMouse() { @@ -53,5 +64,25 @@ public class InputStickMouse { t.addReport(new MouseReport(buttons, x, y, wheel)); InputStickHID.addMouseTransaction(t); } + + public static String buttonsToString(byte buttons) { + String result = "None"; + boolean first = true; + byte mod; + for (int i = 0; i < 8; i++) { + mod = (byte)(BUTTON_LEFT << i); + if ((buttons & mod) != 0) { + if ( !first) { + result += ", "; + } else { + result = ""; + } + first = false; + result += buttonsMap.get(mod); + } + } + + return result; + } } diff --git a/src/java/InputStickAPI/src/com/inputstick/api/bluetooth/BTService.java b/src/java/InputStickAPI/src/com/inputstick/api/bluetooth/BTService.java index fd0098ac..54b46d30 100644 --- a/src/java/InputStickAPI/src/com/inputstick/api/bluetooth/BTService.java +++ b/src/java/InputStickAPI/src/com/inputstick/api/bluetooth/BTService.java @@ -19,6 +19,7 @@ import android.os.Message; import com.inputstick.api.Packet; import com.inputstick.api.Util; +import com.inputstick.api.InputStickError; public class BTService { @@ -28,16 +29,7 @@ public class BTService { public static final int EVENT_DATA = 1; public static final int EVENT_CONNECTED = 2; public static final int EVENT_CANCELLED = 3; - public static final int EVENT_CONNECTION_FAILED = 4; - public static final int EVENT_CONNECTION_LOST = 5; - public static final int EVENT_NO_BT_HW = 6; - public static final int EVENT_INVALID_MAC = 7; - //TODO: - public static final int EVENT_CMD_TIMEOUT = 8; - public static final int EVENT_INTERVAL_TIMEOUT = 9; - public static final int EVENT_TURN_ON_TIMEOUT = 10; - public static final int EVENT_OTHER_ERROR = 11; - + public static final int EVENT_ERROR = 4; private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); //SPP @@ -71,8 +63,7 @@ public class BTService { private final BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { - final String action = intent.getAction(); - System.out.println("ACTION: "+action); + final String action = intent.getAction(); if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) { final int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR); if ((state == BluetoothAdapter.STATE_ON) && (turnBluetoothOn)) { @@ -102,12 +93,12 @@ public class BTService { public void enableReflection(boolean enabled) { mUseReflection = enabled; } - - private synchronized void event(int event) { + + + private synchronized void event(int event, int arg1) { Util.log("event() " + mLastEvent + " -> " + event); - mLastEvent = event; - - Message msg = Message.obtain(null, mLastEvent, 0, 0); + mLastEvent = event; + Message msg = Message.obtain(null, mLastEvent, arg1, 0); mHandler.sendMessage(msg); } @@ -163,7 +154,7 @@ public class BTService { if (BluetoothAdapter.checkBluetoothAddress(mac)) { BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); if (mBluetoothAdapter == null) { - event(EVENT_NO_BT_HW); + event(EVENT_ERROR, InputStickError.ERROR_BLUETOOTH_NOT_SUPPORTED); } else { if (mBluetoothAdapter.isEnabled()) { doConnect(false); @@ -172,7 +163,7 @@ public class BTService { } } } else { - event(EVENT_INVALID_MAC); + event(EVENT_ERROR, InputStickError.ERROR_BLUETOOTH_INVALID_MAC); } } @@ -180,7 +171,7 @@ public class BTService { Util.log("disconnect"); disconnecting = true; cancelThreads(); - event(EVENT_CANCELLED); + event(EVENT_CANCELLED, 0); } @@ -226,7 +217,7 @@ public class BTService { mConnectedThread.start(); connected = true; - event(EVENT_CONNECTED); + event(EVENT_CONNECTED, 0); } @@ -239,7 +230,7 @@ public class BTService { Util.log("RETRY: "+retryCnt + " time left: " + (timeout - System.currentTimeMillis())); doConnect(true); } else { - event(EVENT_CONNECTION_FAILED); + event(EVENT_ERROR, InputStickError.ERROR_BLUETOOTH_CONNECTION_FAILED); } } } @@ -249,7 +240,7 @@ public class BTService { if (disconnecting) { disconnecting = false; } else { - event(EVENT_CONNECTION_LOST); + event(EVENT_ERROR, InputStickError.ERROR_BLUETOOTH_CONNECTION_LOST); } } @@ -356,11 +347,13 @@ public class BTService { byte[] buffer = null; int rxTmp; int lengthByte; - int length; + int length; + int wdgCnt = 0; while (true) { try { rxTmp = mmInStream.read(); if (rxTmp == Packet.START_TAG) { + wdgCnt = 0; lengthByte = mmInStream.read(); length = lengthByte; length &= 0x3F; @@ -373,8 +366,13 @@ public class BTService { } mHandler.obtainMessage(EVENT_DATA, 0, 0, buffer).sendToTarget(); } else { - System.out.println("RX: " + rxTmp); - //possible WDG reset + Util.log("Unexpected RX byte" + rxTmp); + if (rxTmp == 0xAF) { + wdgCnt++; + } + if (wdgCnt > 1024) { + //TODO + } } } catch (IOException e) { connectionLost(); @@ -388,7 +386,7 @@ public class BTService { mmOutStream.write(buffer); mmOutStream.flush(); } catch (IOException e) { - Util.log("Exception during write"); + Util.log("write() exception"); } } @@ -396,7 +394,7 @@ public class BTService { try { mmSocket.close(); } catch (IOException e) { - Util.log("close() of connect socket failed"); + Util.log("socket close() exception"); } } } diff --git a/src/java/InputStickAPI/src/com/inputstick/api/hid/HIDKeycodes.java b/src/java/InputStickAPI/src/com/inputstick/api/hid/HIDKeycodes.java index 3528bdbd..7edec591 100644 --- a/src/java/InputStickAPI/src/com/inputstick/api/hid/HIDKeycodes.java +++ b/src/java/InputStickAPI/src/com/inputstick/api/hid/HIDKeycodes.java @@ -1,5 +1,7 @@ package com.inputstick.api.hid; +import android.util.SparseArray; + public class HIDKeycodes { public static final byte NONE = 0x00; @@ -13,6 +15,7 @@ public class HIDKeycodes { public static final byte ALT_RIGHT = 0x40; public static final byte GUI_RIGHT = (byte)0x80; + public static final byte KEY_ENTER = 0x28; public static final byte KEY_ESCAPE = 0x29; public static final byte KEY_BACKSPACE = 0x2A; @@ -79,6 +82,8 @@ public class HIDKeycodes { public static final byte KEY_NUM_0 = 0x62; public static final byte KEY_NUM_DOT = 0x63; + public static final byte KEY_BACKSLASH_NON_US = 0x64; + public static final byte KEY_A = 0x04; public static final byte KEY_B = 0x05; public static final byte KEY_C = 0x06; @@ -126,6 +131,133 @@ public class HIDKeycodes { + public static final SparseArray modifiersMap; + static + { + modifiersMap = new SparseArray(); + modifiersMap.put(CTRL_LEFT, "Left Ctrl"); + modifiersMap.put(SHIFT_LEFT, "Left Shift"); + modifiersMap.put(ALT_LEFT, "Left Alt"); + modifiersMap.put(GUI_LEFT, "Left GUI"); + modifiersMap.put(CTRL_RIGHT, "Right Ctrl"); + modifiersMap.put(SHIFT_RIGHT, "Right Shift"); + modifiersMap.put(ALT_RIGHT, "Right Alt"); + modifiersMap.put(GUI_RIGHT, "Right GUI"); + } + + public static final SparseArray keyMap; + static + { + keyMap = new SparseArray(); + keyMap.put(0, "None"); + keyMap.put(KEY_ENTER, "Enter"); + keyMap.put(KEY_ESCAPE , "Esc"); + keyMap.put(KEY_BACKSPACE , "Backspace"); + keyMap.put(KEY_TAB , "Tab"); + keyMap.put(KEY_SPACEBAR , "Space"); + + keyMap.put(KEY_CAPS_LOCK , "CapsLock"); + + keyMap.put(KEY_1 , "1"); + keyMap.put(KEY_2 , "2"); + keyMap.put(KEY_3 , "3"); + keyMap.put(KEY_4 , "4"); + keyMap.put(KEY_5 , "5"); + keyMap.put(KEY_6 , "6"); + keyMap.put(KEY_7 , "7"); + keyMap.put(KEY_8 , "8"); + keyMap.put(KEY_9 , "9"); + keyMap.put(KEY_0 , "0"); + + keyMap.put(KEY_F1 , "F1"); + keyMap.put(KEY_F2 , "F2"); + keyMap.put(KEY_F3 , "F3"); + keyMap.put(KEY_F4 , "F4"); + keyMap.put(KEY_F5 , "F5"); + keyMap.put(KEY_F6 , "F6"); + keyMap.put(KEY_F7 , "F7"); + keyMap.put(KEY_F8 , "F8"); + keyMap.put(KEY_F9 , "F9"); + keyMap.put(KEY_F10 , "F10"); + keyMap.put(KEY_F11 , "F11"); + keyMap.put(KEY_F12 , "F12"); + + keyMap.put(KEY_PRINT_SCREEN , "Print Scrn"); + keyMap.put(KEY_SCROLL_LOCK , "ScrollLock"); + keyMap.put(KEY_PASUE , "Pause Break"); + keyMap.put(KEY_INSERT , "Insert"); + keyMap.put(KEY_HOME , "Home"); + keyMap.put(KEY_PAGE_UP , "PageUp"); + keyMap.put(KEY_DELETE , "Delete"); + keyMap.put(KEY_END , "End"); + keyMap.put(KEY_PAGE_DOWN , "PageDown"); + + keyMap.put(KEY_ARROW_RIGHT , "Right Arrow"); + keyMap.put(KEY_ARROW_LEFT , "Left Arrow"); + keyMap.put(KEY_ARROW_DOWN , "Down Arrow"); + keyMap.put(KEY_ARROW_UP , "Up Arrow"); + + keyMap.put(KEY_NUM_LOCK , "NumLock"); + keyMap.put(KEY_NUM_BACKSLASH , "Num /"); + keyMap.put(KEY_NUM_STAR , "Num *"); + keyMap.put(KEY_NUM_MINUS , "Num -"); + keyMap.put(KEY_NUM_PLUS , "Num +"); + keyMap.put(KEY_NUM_ENTER , "Num Enter"); + keyMap.put(KEY_NUM_1 , "Num 1"); + keyMap.put(KEY_NUM_2 , "Num 2"); + keyMap.put(KEY_NUM_3 , "Num 3"); + keyMap.put(KEY_NUM_4 , "Num 4"); + keyMap.put(KEY_NUM_5 , "Num 5"); + keyMap.put(KEY_NUM_6 , "Num 6"); + keyMap.put(KEY_NUM_7 , "Num 7"); + keyMap.put(KEY_NUM_8 , "Num 8"); + keyMap.put(KEY_NUM_9 , "Num 9"); + keyMap.put(KEY_NUM_0 , "Num 0"); + keyMap.put(KEY_NUM_DOT , "Num ."); + + keyMap.put(KEY_A , "A"); + keyMap.put(KEY_B , "B"); + keyMap.put(KEY_C , "C"); + keyMap.put(KEY_D , "D"); + keyMap.put(KEY_E , "E"); + keyMap.put(KEY_F , "F"); + keyMap.put(KEY_G , "G"); + keyMap.put(KEY_H , "H"); + keyMap.put(KEY_I , "I"); + keyMap.put(KEY_J , "J"); + keyMap.put(KEY_K , "K"); + keyMap.put(KEY_L , "L"); + keyMap.put(KEY_M , "M"); + keyMap.put(KEY_N , "N"); + keyMap.put(KEY_O , "O"); + keyMap.put(KEY_P , "P"); + keyMap.put(KEY_Q , "Q"); + keyMap.put(KEY_R , "R"); + keyMap.put(KEY_S , "S"); + keyMap.put(KEY_T , "T"); + keyMap.put(KEY_U , "U"); + keyMap.put(KEY_V , "V"); + keyMap.put(KEY_W , "W"); + keyMap.put(KEY_X , "X"); + keyMap.put(KEY_Y , "Y"); + keyMap.put(KEY_Z , "Z"); + + keyMap.put(KEY_MINUS , "-"); + keyMap.put(KEY_EQUALS , "="); + keyMap.put(KEY_LEFT_BRACKET , "["); + keyMap.put(KEY_RIGHT_BRACKET , "]"); + keyMap.put(KEY_BACKSLASH , "\\"); + //keyMap.put(KEY_GRAVE , "`"); + keyMap.put(KEY_SEMICOLON , ";"); + keyMap.put(KEY_APOSTROPHE , "'"); + keyMap.put(KEY_GRAVE , "`"); + keyMap.put(KEY_COMA , ","); + keyMap.put(KEY_DOT , "."); + keyMap.put(KEY_SLASH , "/"); + + keyMap.put(KEY_APPLICATION , "Application"); + } + public static final int[] ASCIItoHID = { 0, //000 0, //001 @@ -257,6 +389,14 @@ public class HIDKeycodes { 0 //127 just in case... }; + public static char getChar(byte keyCode) { + for (int i = 0; i < ASCIItoHID.length; i++) { + if (ASCIItoHID[i] == keyCode) { + return (char)i; + } + } + return 0; + } public static byte getKeyCode(char c) { return (byte)ASCIItoHID[c]; //TODO range @@ -266,7 +406,31 @@ public class HIDKeycodes { return ASCIItoHID[c]; //TODO range } + public static String modifiersToString(byte modifiers) { + String result = "None"; + boolean first = true; + byte mod; + for (int i = 0; i < 8; i++) { + mod = (byte)(CTRL_LEFT << i); + if ((modifiers & mod) != 0) { + if ( !first) { + result += ", "; + } else { + result = ""; + } + first = false; + result += modifiersMap.get(mod); + } + } + + return result; + } - - + public static String keyToString(byte key) { + String result = keyMap.get(key); + if (result == null) { + result = "Unknown"; + } + return result; + } } diff --git a/src/java/InputStickAPI/src/com/inputstick/api/hid/HIDTransactionQueue.java b/src/java/InputStickAPI/src/com/inputstick/api/hid/HIDTransactionQueue.java index 64b174ee..f6cb57d0 100644 --- a/src/java/InputStickAPI/src/com/inputstick/api/hid/HIDTransactionQueue.java +++ b/src/java/InputStickAPI/src/com/inputstick/api/hid/HIDTransactionQueue.java @@ -1,39 +1,71 @@ package com.inputstick.api.hid; +import java.util.Timer; +import java.util.TimerTask; import java.util.Vector; + import com.inputstick.api.ConnectionManager; +import com.inputstick.api.HIDInfo; +import com.inputstick.api.OnEmptyBufferListener; import com.inputstick.api.Packet; +import com.inputstick.api.basic.InputStickHID; public class HIDTransactionQueue { - public static final int KEYBOARD = 1; - public static final int MOUSE = 2; - public static final int CONSUMER = 3; - private static final int BUFFER_SIZE = 32; + private static final int BT_DELAY = 50; //additional delay for BT overhead + + private static final int MAX_PACKETS_PER_UPDATE = 10; + private static final int MAX_IMMEDIATE_PACKETS = 3; private final Vector queue; private final ConnectionManager mConnectionManager; private final byte cmd; private boolean ready; + private int mInterfaceType; + private boolean mustNotify; + private Vector mBufferEmptyListeners = new Vector(); + private Timer t; + private boolean timerCancelled; + private boolean sentAhead; private long lastTime; - private int lastReports; + private long minNextTime; + private int lastReports; - public HIDTransactionQueue(int type, ConnectionManager connectionManager) { + // >= FW 0.93 + private boolean bufferInitDone; + private boolean constantUpdateMode; + private int bufferFreeSpace; + private int immediatePacketsLeft; + //private int reportsSentSinceLastUpdate; + private int packetsSentSinceLastUpdate; + + + + public HIDTransactionQueue(int interfaceType, ConnectionManager connectionManager) { + constantUpdateMode = false; + bufferFreeSpace = BUFFER_SIZE; + queue = new Vector(); mConnectionManager = connectionManager; ready = false; - switch (type) { - case KEYBOARD: + sentAhead = false; + minNextTime = 0; + + mustNotify = false; + + mInterfaceType = interfaceType; + switch (interfaceType) { + case InputStickHID.INTERFACE_KEYBOARD: cmd = Packet.CMD_HID_DATA_KEYB; break; - case MOUSE: + case InputStickHID.INTERFACE_MOUSE: cmd = Packet.CMD_HID_DATA_MOUSE; break; - case CONSUMER: + case InputStickHID.INTERFACE_CONSUMER: cmd = Packet.CMD_HID_DATA_CONSUMER; break; default: @@ -41,26 +73,32 @@ public class HIDTransactionQueue { } } - private void sendNext() { - HIDTransaction transaction; - byte reports = 0; - ready = false; - Packet p = new Packet(false, cmd, reports); + private int sendNext(int maxReports) { + HIDTransaction transaction; //assume there is at least 1 element in queue transaction = queue.firstElement(); - if (transaction.getReportsCount() > BUFFER_SIZE) { - //transaction too big! split - transaction = transaction.split(BUFFER_SIZE); + if (transaction.getReportsCount() > maxReports) { + // v0.92 + if (maxReports < BUFFER_SIZE) { + //don't split transactions until there is no other way left! + return 0; + } + + //transaction too big to fit single packet! split + transaction = transaction.split(BUFFER_SIZE); } else { queue.removeElementAt(0); } + + byte reports = 0; + ready = false; + Packet p = new Packet(false, cmd, reports); while (transaction.hasNext()) { p.addBytes(transaction.getNextReport()); reports++; } - //TODO add next transactions if possible while(true) { if (queue.isEmpty()) { @@ -68,7 +106,7 @@ public class HIDTransactionQueue { } transaction = queue.firstElement(); - if (reports + transaction.getReportsCount() < BUFFER_SIZE) { + if (reports + transaction.getReportsCount() < maxReports) { queue.removeElementAt(0); while (transaction.hasNext()) { p.addBytes(transaction.getNextReport()); @@ -79,33 +117,183 @@ public class HIDTransactionQueue { } } - + //!! total number of reports must be < 32 ! (max packet limitation) p.modifyByte(1, reports); //set reports count - mConnectionManager.sendPacket(p); + mConnectionManager.sendPacket(p); lastReports = reports; lastTime = System.currentTimeMillis(); + minNextTime = lastTime + (lastReports * 4) + BT_DELAY; + + if (queue.isEmpty()) { + notifyOnLocalBufferEmpty(); + } + + return reports; } - public void addTransaction(HIDTransaction transaction) { - if (queue.isEmpty()) { - if (System.currentTimeMillis() > lastTime + (lastReports * 8 * 2/*just to be safe*/)) { - ready = true; + public void addBufferEmptyListener(OnEmptyBufferListener listener) { + if (listener != null) { + if ( !mBufferEmptyListeners.contains(listener)) { + mBufferEmptyListeners.add(listener); } - } + } + } + + public void removeBufferEmptyListener(OnEmptyBufferListener listener) { + if (listener != null) { + mBufferEmptyListeners.remove(listener); + } + } + + private void notifyOnRemoteBufferEmpty() { + for (OnEmptyBufferListener listener : mBufferEmptyListeners) { + listener.onRemoteBufferEmpty(mInterfaceType); + } + } + + private void notifyOnLocalBufferEmpty() { + for (OnEmptyBufferListener listener : mBufferEmptyListeners) { + listener.onRemoteBufferEmpty(mInterfaceType); + } + } + + public synchronized boolean isLocalBufferEmpty() { + return queue.isEmpty(); + } + + public synchronized boolean isRemoteBufferEmpty() { + if ((queue.isEmpty()) && (bufferFreeSpace == BUFFER_SIZE)) { + return true; + } + + if (queue.isEmpty() && ( !mustNotify)) { + return true; + } else { + return false; + } + } + + public synchronized void clearBuffer() { + queue.removeAllElements(); + } + + public synchronized void addTransaction(HIDTransaction transaction) { + if ( !bufferInitDone) { + queue.add(transaction); + return; + } + + + if (constantUpdateMode) { + queue.add(transaction); + sendToBuffer(true); + return; + } + + + mustNotify = true; + //using sentAhead will slow down mouse. FW0.92 will solve the problems + if ((queue.isEmpty()) && (System.currentTimeMillis() > minNextTime) /*&& ( !sentAhead)*/) { + sentAhead = true; + ready = true; + } queue.add(transaction); if (ready) { - sendNext(); + sendNext(BUFFER_SIZE); } + } + + private synchronized void timerAction() { + if ( !timerCancelled) { + if (sentAhead) { + deviceReady(null, 0); //will set sentAhead to false; + sentAhead = true; //restore value + } else { + deviceReady(null, 0); + } + } + } + + public synchronized void deviceReady(HIDInfo hidInfo, int reportsSentToHost) { + //it is possible that in the meantime some packets has been sent to IS!!! + + bufferInitDone = true; + + if (hidInfo != null) { + if (hidInfo.isSentToHostInfoAvailable()) { + constantUpdateMode = true; + // >= FW 0.93 + bufferFreeSpace += reportsSentToHost; + if ((bufferFreeSpace == BUFFER_SIZE) && (queue.isEmpty())) { + notifyOnRemoteBufferEmpty(); + } + immediatePacketsLeft = MAX_IMMEDIATE_PACKETS; + //reportsSentSinceLastUpdate = 0; + packetsSentSinceLastUpdate = 0; + sendToBuffer(false); + return; + } + } + + + + long now = System.currentTimeMillis(); + //System.out.println("v90 HID update"); + if (now < minNextTime) { + //set timer, just in case if deviceReady won't be called again + timerCancelled = false; + t = new Timer(); + t.schedule(new TimerTask() { + @Override + public void run() { + timerAction(); + } + }, (minNextTime - now + 1)); + } else { + timerCancelled = true; + sentAhead = false; + if (!queue.isEmpty()) { + sendNext(BUFFER_SIZE); + } else { + ready = true; + //queue is empty, InputStick reported that buffer is empty, data was added since last notification + if (mustNotify) { + notifyOnRemoteBufferEmpty(); + mustNotify = false; + } + } + } + } + + public synchronized void sendToBuffer(boolean justAdded) { + if ((justAdded) && (immediatePacketsLeft <= 0)) { + return; + } + + if ( !InputStickHID.isReady()) { + return; + } + + if (queue.isEmpty()) { + return; + } + if (bufferFreeSpace <= 0) { + return; + } + if (packetsSentSinceLastUpdate >= MAX_PACKETS_PER_UPDATE) { + return; + } + + int reportsSent = sendNext(bufferFreeSpace); + if (reportsSent > 0) { + if (justAdded) { + immediatePacketsLeft --; + } + bufferFreeSpace -= reportsSent; + packetsSentSinceLastUpdate ++; + } } - public void deviceReady() { - if (!queue.isEmpty()) { - sendNext(); - } else { - ready = true; - } - } - } diff --git a/src/java/InputStickAPI/src/com/inputstick/api/layout/GermanLayout.java b/src/java/InputStickAPI/src/com/inputstick/api/layout/GermanLayout.java index b5c56677..a5717d6c 100644 --- a/src/java/InputStickAPI/src/com/inputstick/api/layout/GermanLayout.java +++ b/src/java/InputStickAPI/src/com/inputstick/api/layout/GermanLayout.java @@ -110,6 +110,49 @@ public class GermanLayout extends KeyboardLayout { }; + public static final int DEADKEYS[] = { + 0x0060, 0x00b4, 0x005e + }; + + public static final int DEADKEY_LUT[][] = { + { 0x00b4 , 0x0079 , 0x00fd } , + { 0x00b4 , 0x0061 , 0x00e1 } , + { 0x00b4 , 0x0065 , 0x00e9 } , + { 0x00b4 , 0x0075 , 0x00fa } , + { 0x00b4 , 0x0069 , 0x00ed } , + { 0x00b4 , 0x006f , 0x00f3 } , + { 0x00b4 , 0x0059 , 0x00dd } , + { 0x00b4 , 0x0041 , 0x00c1 } , + { 0x00b4 , 0x0045 , 0x00c9 } , + { 0x00b4 , 0x0055 , 0x00da } , + { 0x00b4 , 0x0049 , 0x00cd } , + { 0x00b4 , 0x004f , 0x00d3 } , + { 0x00b4 , 0x0020 , 0x00b4 } , + { 0x0060 , 0x0061 , 0x00e0 } , + { 0x0060 , 0x0065 , 0x00e8 } , + { 0x0060 , 0x0075 , 0x00f9 } , + { 0x0060 , 0x0069 , 0x00ec } , + { 0x0060 , 0x006f , 0x00f2 } , + { 0x0060 , 0x0041 , 0x00c0 } , + { 0x0060 , 0x0045 , 0x00c8 } , + { 0x0060 , 0x0055 , 0x00d9 } , + { 0x0060 , 0x0049 , 0x00cc } , + { 0x0060 , 0x004f , 0x00d2 } , + { 0x0060 , 0x0020 , 0x0060 } , + { 0x005e , 0x0061 , 0x00e2 } , + { 0x005e , 0x0065 , 0x00ea } , + { 0x005e , 0x0075 , 0x00fb } , + { 0x005e , 0x0069 , 0x00ee } , + { 0x005e , 0x006f , 0x00f4 } , + { 0x005e , 0x0041 , 0x00c2 } , + { 0x005e , 0x0045 , 0x00ca } , + { 0x005e , 0x0055 , 0x00db } , + { 0x005e , 0x0049 , 0x00ce } , + { 0x005e , 0x004f , 0x00d4 } , + { 0x005e , 0x0020 , 0x005e } , + + }; + private static GermanLayout instance = new GermanLayout(); private GermanLayout() { @@ -126,9 +169,14 @@ public class GermanLayout extends KeyboardLayout { @Override public void type(String text) { - super.type(LUT, text); + super.type(LUT, DEADKEY_LUT, DEADKEYS, text, (byte)0); } + @Override + public void type(String text, byte modifiers) { + super.type(LUT, DEADKEY_LUT, DEADKEYS, text, modifiers); + } + @Override public char getChar(int scanCode, boolean capsLock, boolean shift, boolean altGr) { return super.getChar(LUT, scanCode, capsLock, shift, altGr); @@ -137,6 +185,16 @@ public class GermanLayout extends KeyboardLayout { @Override public String getLocaleName() { return LOCALE_NAME; - } + } + + @Override + public int[][] getDeadkeyLUT() { + return DEADKEY_LUT; + } + + @Override + public int[] getDeadkeys() { + return DEADKEYS; + } } diff --git a/src/java/InputStickAPI/src/com/inputstick/api/layout/KeyboardLayout.java b/src/java/InputStickAPI/src/com/inputstick/api/layout/KeyboardLayout.java index 20cbd121..c5a741bb 100644 --- a/src/java/InputStickAPI/src/com/inputstick/api/layout/KeyboardLayout.java +++ b/src/java/InputStickAPI/src/com/inputstick/api/layout/KeyboardLayout.java @@ -101,7 +101,7 @@ public abstract class KeyboardLayout { /* 0x53 */ HIDKeycodes.KEY_DELETE, /* 0x54 */ 0, /* 0x55 */ 0, - /* 0x56 */ 0, + /* 0x56 */ HIDKeycodes.KEY_BACKSLASH_NON_US, //GERMAN LAYOUT! /* 0x57 */ HIDKeycodes.KEY_F11, /* 0x58 */ HIDKeycodes.KEY_F12, /* 0x59 */ 0, @@ -117,16 +117,19 @@ public abstract class KeyboardLayout { public static final int LAYOUT_CODE = 0; public abstract int[][] getLUT(); + public abstract int[][] getDeadkeyLUT(); + public abstract int[] getDeadkeys(); public abstract String getLocaleName(); public abstract void type(String text); + public abstract void type(String text, byte modifiers); public abstract char getChar(int scanCode, boolean capsLock, boolean shift, boolean altGr); - public void type(int[][] lut, String text) { + public void type(int[][] lut, int[][] deadkeyLUT, int[] deadkeys, String text, byte modifiers) { if (InputStickHID.getState() == ConnectionManager.STATE_READY) { char[] chars = text.toCharArray(); HIDTransaction t; for (char c : chars) { - t = getHIDTransaction(lut, c); + t = getHIDTransaction(lut, deadkeyLUT, deadkeys, c, modifiers); if (t != null) { InputStickHID.addKeyboardTransaction(t); } @@ -194,7 +197,7 @@ public abstract class KeyboardLayout { } public static int getScanCode(int[][] lut, char c) { - for (int scanCode = 0; scanCode < 80; scanCode++) { + for (int scanCode = 0; scanCode < 0x60; scanCode++) { if (lut[scanCode][0] == -1) { continue; } else { @@ -233,19 +236,79 @@ public abstract class KeyboardLayout { } - public static HIDTransaction getHIDTransaction(int[][] lut, char c) { + public static boolean isDeadkey(int[] deadkeys, char c) { + if (deadkeys != null) { + for (int key : deadkeys) { + if (key == (int)c) { + return true; + } + } + } + return false; + } + + public static int searchLUT(int[][] deadkeyLUT, char c, int returnIndex) { + if (deadkeyLUT != null) { + for (int i = 0; i < deadkeyLUT.length; i++) { + if (deadkeyLUT[i][2] == (int)c) { + return deadkeyLUT[i][returnIndex]; + } + } + } + return -1; + } + + public static int findDeadKey(int[][] deadkeyLUT, char c) { + return searchLUT(deadkeyLUT, c, 0); + } + + public static int findFollowingKey(int[][] deadkeyLUT, char c) { + return searchLUT(deadkeyLUT, c, 1); + } + + public static HIDTransaction getHIDTransaction(int[][] lut, int[][] deadkeyLUT, int[] deadkeys, char c, byte additionalModifierKeys) { byte modifiers, key; int scanCode; HIDTransaction t = new HIDTransaction(); scanCode = getScanCode(lut, c); - if (scanCode > 0) { + if (scanCode > 0) { key = getKey(scanCode); modifiers = getModifiers(lut, scanCode, c); + modifiers |= additionalModifierKeys; t.addReport(new KeyboardReport(modifiers, (byte)0)); t.addReport(new KeyboardReport(modifiers, key)); t.addReport(new KeyboardReport()); + + //add space after deadkey! + if (isDeadkey(deadkeys, c)) { + t.addReport(new KeyboardReport((byte)0, HIDKeycodes.KEY_SPACEBAR)); //this won't work if modifiers are present! + t.addReport(new KeyboardReport()); + } + + } else { + //check if character can be obtained using deadkey: + int deadkey = findDeadKey(deadkeyLUT, c); + if (deadkey > 0) { + //yes it can + int following = findFollowingKey(deadkeyLUT, c); + + scanCode = getScanCode(lut, (char)deadkey); + key = getKey(scanCode); + modifiers = getModifiers(lut, scanCode, (char)deadkey); + t.addReport(new KeyboardReport(modifiers, (byte)0)); + t.addReport(new KeyboardReport(modifiers, key)); + t.addReport(new KeyboardReport()); + + scanCode = getScanCode(lut, (char)following); + key = getKey(scanCode); + modifiers = getModifiers(lut, scanCode, (char)following); + t.addReport(new KeyboardReport(modifiers, (byte)0)); + t.addReport(new KeyboardReport(modifiers, key)); + t.addReport(new KeyboardReport()); + } + } return t; } @@ -260,7 +323,22 @@ public abstract class KeyboardLayout { return RussianLayout.getInstance(); } else if (locale.equals(GermanLayout.getInstance().getLocaleName())) { return GermanLayout.getInstance(); - } + } else if (locale.equals(SlovakLayout.getInstance().getLocaleName())) { + return SlovakLayout.getInstance(); + } else if (locale.equals(PortugueseBrazilianLayout.getInstance().getLocaleName())) { + return PortugueseBrazilianLayout.getInstance(); + } else if (locale.equals(DvorakLayout.getInstance().getLocaleName())) { + return DvorakLayout.getInstance(); + } else if (locale.equals(NorwegianLayout.getInstance().getLocaleName())) { + return NorwegianLayout.getInstance(); + } else if (locale.equals(SwedishLayout.getInstance().getLocaleName())) { + return SwedishLayout.getInstance(); + } else if (locale.equals(FrenchLayout.getInstance().getLocaleName())) { + return FrenchLayout.getInstance(); + } else if (locale.equals(SpanishLayout.getInstance().getLocaleName())) { + return SpanishLayout.getInstance(); + } + } return UnitedStatesLayout.getInstance(); diff --git a/src/java/InputStickAPI/src/com/inputstick/api/layout/PolishLayout.java b/src/java/InputStickAPI/src/com/inputstick/api/layout/PolishLayout.java index e9a3ec4b..b06ec3cc 100644 --- a/src/java/InputStickAPI/src/com/inputstick/api/layout/PolishLayout.java +++ b/src/java/InputStickAPI/src/com/inputstick/api/layout/PolishLayout.java @@ -111,6 +111,32 @@ public class PolishLayout extends KeyboardLayout { }; + public static final int DEADKEYS[] = { + 0x007e + }; + + public static final int DEADKEY_LUT[][] = { + { 0x007e , 0x006e , 0x0144 } , + { 0x007e , 0x0063 , 0x0107 } , + { 0x007e , 0x0078 , 0x017a } , + { 0x007e , 0x007a , 0x017c } , + { 0x007e , 0x0061 , 0x0105 } , + { 0x007e , 0x0073 , 0x015b } , + { 0x007e , 0x006c , 0x0142 } , + { 0x007e , 0x0065 , 0x0119 } , + { 0x007e , 0x006f , 0x00f3 } , + { 0x007e , 0x004e , 0x0143 } , + { 0x007e , 0x0043 , 0x0106 } , + { 0x007e , 0x0058 , 0x0179 } , + { 0x007e , 0x005a , 0x017b } , + { 0x007e , 0x0041 , 0x0104 } , + { 0x007e , 0x0053 , 0x015a } , + { 0x007e , 0x004c , 0x0141 } , + { 0x007e , 0x0045 , 0x0118 } , + { 0x007e , 0x004f , 0x00d3 } , + { 0x007e , 0x0020 , 0x007e } , + }; + private static PolishLayout instance = new PolishLayout(); private PolishLayout() { @@ -127,7 +153,12 @@ public class PolishLayout extends KeyboardLayout { @Override public void type(String text) { - super.type(LUT, text); + super.type(LUT, DEADKEY_LUT, DEADKEYS, text, (byte)0); + } + + @Override + public void type(String text, byte modifiers) { + super.type(LUT, DEADKEY_LUT, DEADKEYS, text, modifiers); } @Override @@ -140,5 +171,14 @@ public class PolishLayout extends KeyboardLayout { return LOCALE_NAME; } + @Override + public int[][] getDeadkeyLUT() { + return DEADKEY_LUT; + } + + @Override + public int[] getDeadkeys() { + return DEADKEYS; + } } diff --git a/src/java/InputStickAPI/src/com/inputstick/api/layout/RussianLayout.java b/src/java/InputStickAPI/src/com/inputstick/api/layout/RussianLayout.java index 0000d097..f75debb1 100644 --- a/src/java/InputStickAPI/src/com/inputstick/api/layout/RussianLayout.java +++ b/src/java/InputStickAPI/src/com/inputstick/api/layout/RussianLayout.java @@ -112,6 +112,9 @@ public class RussianLayout extends KeyboardLayout { }; + public static final int DEADKEYS[] = null; + public static final int DEADKEY_LUT[][] = null; + private static RussianLayout instance = new RussianLayout(); private RussianLayout() { @@ -128,7 +131,12 @@ public class RussianLayout extends KeyboardLayout { @Override public void type(String text) { - super.type(LUT, text); + super.type(LUT, DEADKEY_LUT, DEADKEYS, text, (byte)0); + } + + @Override + public void type(String text, byte modifiers) { + super.type(LUT, DEADKEY_LUT, DEADKEYS, text, modifiers); } @Override @@ -140,5 +148,15 @@ public class RussianLayout extends KeyboardLayout { public String getLocaleName() { return LOCALE_NAME; } + + @Override + public int[][] getDeadkeyLUT() { + return DEADKEY_LUT; + } + + @Override + public int[] getDeadkeys() { + return DEADKEYS; + } } diff --git a/src/java/InputStickAPI/src/com/inputstick/api/layout/UnitedStatesLayout.java b/src/java/InputStickAPI/src/com/inputstick/api/layout/UnitedStatesLayout.java index 7f16d907..1790a11b 100644 --- a/src/java/InputStickAPI/src/com/inputstick/api/layout/UnitedStatesLayout.java +++ b/src/java/InputStickAPI/src/com/inputstick/api/layout/UnitedStatesLayout.java @@ -98,10 +98,10 @@ public class UnitedStatesLayout extends KeyboardLayout { /* 50 */ { -1 , 0 , 0 , 0 , 0 , 0 } , /* 51 */ { -1 , 0 , 0 , 0 , 0 , 0 } , /* 52 */ { -1 , 0 , 0 , 0 , 0 , 0 } , - /* 53 */ { 0 , 0x002e , 0x002e , -1 , -1 , -1 } , + /* 53 */ { 0 , 0x002e , 0x002e , -1 , -1 , -1 } , /* 54 */ { -1 , 0 , 0 , 0 , 0 , 0 } , /* 55 */ { -1 , 0 , 0 , 0 , 0 , 0 } , - /* 56 */ { 0 , 0x005c , 0x007c , 0x001c , -1 , -1 } , + /* 56 */ { 0 , 0x005c , 0x007c , 0x001c , -1 , -1 } , /* 57 */ { -1 , 0 , 0 , 0 , 0 , 0 } , /* 58 */ { -1 , 0 , 0 , 0 , 0 , 0 } , /* 59 */ { -1 , 0 , 0 , 0 , 0 , 0 } , @@ -114,6 +114,9 @@ public class UnitedStatesLayout extends KeyboardLayout { }; + public static final int DEADKEYS[] = null; + public static final int DEADKEY_LUT[][] = null; + private static UnitedStatesLayout instance = new UnitedStatesLayout(); private UnitedStatesLayout() { @@ -130,7 +133,12 @@ public class UnitedStatesLayout extends KeyboardLayout { @Override public void type(String text) { - super.type(LUT, text); + super.type(LUT, DEADKEY_LUT, DEADKEYS, text, (byte)0); + } + + @Override + public void type(String text, byte modifiers) { + super.type(LUT, DEADKEY_LUT, DEADKEYS, text, modifiers); } @Override @@ -141,6 +149,16 @@ public class UnitedStatesLayout extends KeyboardLayout { @Override public String getLocaleName() { return LOCALE_NAME; - } + } + + @Override + public int[][] getDeadkeyLUT() { + return DEADKEY_LUT; + } + + @Override + public int[] getDeadkeys() { + return DEADKEYS; + } } diff --git a/src/java/InputStickAPI/src/com/inputstick/init/BasicInitManager.java b/src/java/InputStickAPI/src/com/inputstick/init/BasicInitManager.java index 413da8e2..621b6945 100644 --- a/src/java/InputStickAPI/src/com/inputstick/init/BasicInitManager.java +++ b/src/java/InputStickAPI/src/com/inputstick/init/BasicInitManager.java @@ -3,9 +3,7 @@ package com.inputstick.init; import com.inputstick.api.Packet; -public class BasicInitManager extends InitManager { - - private boolean initDone = false; +public class BasicInitManager extends InitManager { public BasicInitManager(byte[] key) { super(key); @@ -14,48 +12,46 @@ public class BasicInitManager extends InitManager { @Override public void onConnected() { - /*Packet p = new Packet(false, Packet.RAW_OLD_BOOTLOADER); //compatibility - sendPacket(p);*/ - + /*Packet p = new Packet(false, Packet.RAW_OLD_BOOTLOADER); //compatibility with old protocol version + sendPacket(p);*/ sendPacket(new Packet(true, Packet.CMD_RUN_FW)); } - @Override public void onData(byte[] data) { byte cmd = data[0]; byte respCode = data[1]; byte param = data[1]; - if (cmd == Packet.CMD_RUN_FW) { - sendPacket(new Packet(true, Packet.CMD_GET_INFO)); - } - - if (cmd == Packet.CMD_GET_INFO) { - //store info - sendPacket(new Packet(true, Packet.CMD_INIT)); //TODO params! - } - - if (cmd == Packet.CMD_INIT) { - if (respCode == Packet.RESP_OK) { - initDone = true; - sendPacket(new Packet(false, Packet.CMD_HID_STATUS_REPORT)); - } else { - mListener.onInitFailure(respCode); - } - } - - if (cmd == Packet.CMD_HID_STATUS) { - if (initDone) { - if (param == 0x05) { - mListener.onInitReady(); + switch (cmd) { + case Packet.CMD_RUN_FW: + sendPacket(new Packet(true, Packet.CMD_FW_INFO)); + break; + case Packet.CMD_FW_INFO: + onFWInfo(data, true, true, new Packet(true, Packet.CMD_INIT)); //TODO next FW: params! + break; + case Packet.CMD_INIT: + if (respCode == Packet.RESP_OK) { + initDone = true; + sendPacket(new Packet(true, Packet.CMD_HID_STATUS_REPORT)); } else { - mListener.onInitNotReady(); - } - } + mListener.onInitFailure(respCode); + } + break; + case Packet.CMD_INIT_AUTH: + onAuth(data, true, new Packet(true, Packet.CMD_INIT)); //TODO next FW: params! + break; + case Packet.CMD_HID_STATUS: + if (initDone) { + if (param == 0x05) { + mListener.onInitReady(); + } else { + mListener.onInitNotReady(); + } + } + break; } } - } diff --git a/src/java/InputStickAPI/src/com/inputstick/init/InitManager.java b/src/java/InputStickAPI/src/com/inputstick/init/InitManager.java index 7d8907ab..0cdd0c25 100644 --- a/src/java/InputStickAPI/src/com/inputstick/init/InitManager.java +++ b/src/java/InputStickAPI/src/com/inputstick/init/InitManager.java @@ -1,33 +1,125 @@ package com.inputstick.init; +import java.util.Timer; +import java.util.TimerTask; + +import com.inputstick.api.InputStickError; import com.inputstick.api.Packet; import com.inputstick.api.PacketManager; public class InitManager { + public static final int DEFAULT_INIT_TIMEOUT = 60000; //60s init timeout + protected PacketManager mPacketManager; protected InitManagerListener mListener; protected byte[] mKey; + protected DeviceInfo mInfo; + protected boolean initDone; + + //private Timer t; public InitManager(byte[] key) { - mKey = key; + mKey = key; } - public void init(InitManagerListener listener, PacketManager packetManager) { + + public DeviceInfo getDeviceInfo() { + return mInfo; + } + + public boolean isEncrypted() { + return mPacketManager.isEncrypted(); + } + + + public void init(InitManagerListener listener, PacketManager packetManager) { mListener = listener; mPacketManager = packetManager; + + initDone = false; } + //WRONG THREAD! + /*public void startTimeoutCountdown(int timeout) { + t = new Timer(); + t.schedule(new TimerTask() { + @Override + public void run() { + if ( !initDone) { + mListener.onInitFailure(InputStickError.ERROR_INIT_TIMEDOUT); + } + } + }, timeout); + }*/ + public void onConnected() { mListener.onInitReady(); } public void onData(byte[] data) { - + //byte cmd = data[0]; + //byte param = data[1]; } public void sendPacket(Packet p) { mPacketManager.sendPacket(p); } + public void onFWInfo(byte[] data, boolean authenticate, boolean enableEncryption, Packet sendNext) { + mInfo = new DeviceInfo(data); + + if (authenticate) { + if (mInfo.isPasswordProtected()) { + if (mKey != null) { + //authenticate + sendPacket(mPacketManager.encPacket(enableEncryption)); + } else { + mListener.onInitFailure(InputStickError.ERROR_SECURITY_NO_KEY); + } + } else { + if (mKey != null) { + //possible scenarios: FW upgrade / password removed using other device/app / tampering! + mListener.onInitFailure(InputStickError.ERROR_SECURITY_NOT_PROTECTED); + } + sendPacket(sendNext); + } + } else { + sendPacket(sendNext); + } + } + + public void onAuth(byte[] data, boolean enableOutEncryption, Packet sendNext) { + byte respCode = data[1]; + + switch (respCode) { + case Packet.RESP_OK: + byte[] cmp = new byte[16]; + //TODO check length! + System.arraycopy(data, 2, cmp, 0, 16); + if (mPacketManager.setEncryption(cmp, enableOutEncryption)) { + sendPacket(sendNext); + } else { + mListener.onInitFailure(InputStickError.ERROR_SECURITY_CHALLENGE); + } + break; + + case 0x20: + mListener.onInitFailure(InputStickError.ERROR_SECURITY_INVALID_KEY); + break; + + case 0x21: + mListener.onInitFailure(InputStickError.ERROR_SECURITY_NOT_PROTECTED); + break; + + case Packet.RESP_UNKNOWN_CMD: + mListener.onInitFailure(InputStickError.ERROR_SECURITY_NOT_SUPPORTED); + break; + + default: + mListener.onInitFailure(InputStickError.ERROR_SECURITY); + } + + } + } diff --git a/src/java/JavaFileStorage/bin/javafilestorage.jar b/src/java/JavaFileStorage/bin/javafilestorage.jar index 54ae0233..378ce962 100644 Binary files a/src/java/JavaFileStorage/bin/javafilestorage.jar and b/src/java/JavaFileStorage/bin/javafilestorage.jar differ diff --git a/src/java/KP2AKdbLibrary/bin/kp2akdblibrary.jar b/src/java/KP2AKdbLibrary/bin/kp2akdblibrary.jar index 0461a369..c2aa87d8 100644 Binary files a/src/java/KP2AKdbLibrary/bin/kp2akdblibrary.jar and b/src/java/KP2AKdbLibrary/bin/kp2akdblibrary.jar differ diff --git a/src/java/KP2AKdbLibrary/src/com/keepassdroid/database/PwDatabaseV3.java b/src/java/KP2AKdbLibrary/src/com/keepassdroid/database/PwDatabaseV3.java index a6f924fd..9164352e 100644 --- a/src/java/KP2AKdbLibrary/src/com/keepassdroid/database/PwDatabaseV3.java +++ b/src/java/KP2AKdbLibrary/src/com/keepassdroid/database/PwDatabaseV3.java @@ -47,10 +47,14 @@ package com.keepassdroid.database; // Java import java.io.BufferedInputStream; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; +import java.io.InputStream; +import java.io.PushbackInputStream; import java.io.UnsupportedEncodingException; import java.security.DigestOutputStream; import java.security.MessageDigest; @@ -125,18 +129,18 @@ public class PwDatabaseV3 { - public void setMasterKey(String key, String keyFileName) + public void setMasterKey(String key, InputStream keyfileStream) throws InvalidKeyFileException, IOException { - assert( key != null && keyFileName != null ); + assert( key != null && keyfileStream != null ); - masterKey = getMasterKey(key, keyFileName); + masterKey = getMasterKey(key, keyfileStream); } - protected byte[] getCompositeKey(String key, String keyFileName) + protected byte[] getCompositeKey(String key, InputStream keyfileStream) throws InvalidKeyFileException, IOException { - assert(key != null && keyFileName != null); + assert(key != null && keyfileStream != null); - byte[] fileKey = getFileKey(keyFileName); + byte[] fileKey = getFileKey(keyfileStream); byte[] passwordKey = getPasswordKey(key); @@ -151,46 +155,40 @@ public class PwDatabaseV3 { return md.digest(fileKey); } - - protected byte[] getFileKey(String fileName) + + protected byte[] getFileKey(InputStream keyfileStream) throws InvalidKeyFileException, IOException { - assert(fileName != null); + assert(keyfileStream != null); - File keyfile = new File(fileName); - if ( ! keyfile.exists() ) { - throw new InvalidKeyFileException(); + byte[] buff = new byte[8000]; + + int bytesRead = 0; + + ByteArrayOutputStream bao = new ByteArrayOutputStream(); + + while ((bytesRead = keyfileStream.read(buff)) != -1) { + bao.write(buff, 0, bytesRead); } + + byte[] keyFileData = bao.toByteArray(); + + ByteArrayInputStream bin = new ByteArrayInputStream(keyFileData); - byte[] key = loadXmlKeyFile(fileName); - if ( key != null ) { - return key; - } - - FileInputStream fis; - try { - fis = new FileInputStream(keyfile); - } catch (FileNotFoundException e) { - throw new InvalidKeyFileException(); - } - BufferedInputStream bis = new BufferedInputStream(fis, 64); - long fileSize = keyfile.length(); - if ( fileSize == 0 ) { - throw new KeyFileEmptyException(); - } else if ( fileSize == 32 ) { + if ( keyFileData.length == 32 ) { byte[] outputKey = new byte[32]; - if ( bis.read(outputKey, 0, 32) != 32 ) { + if ( bin.read(outputKey, 0, 32) != 32 ) { throw new IOException("Error reading key."); } return outputKey; - } else if ( fileSize == 64 ) { + } else if ( keyFileData.length == 64 ) { byte[] hex = new byte[64]; - bis.mark(64); - if ( bis.read(hex, 0, 64) != 64 ) { + bin.mark(64); + if ( bin.read(hex, 0, 64) != 64 ) { throw new IOException("Error reading key."); } @@ -198,7 +196,7 @@ public class PwDatabaseV3 { return hexStringToByteArray(new String(hex)); } catch (IndexOutOfBoundsException e) { // Key is not base 64, treat it as binary data - bis.reset(); + bin.reset(); } } @@ -214,7 +212,7 @@ public class PwDatabaseV3 { try { while (true) { - int bytesRead = bis.read(buffer, 0, 2048); + bytesRead = bin.read(buffer, 0, 2048); if ( bytesRead == -1 ) break; // End of file md.update(buffer, 0, bytesRead); @@ -495,16 +493,16 @@ public class PwDatabaseV3 { return newId; } - public byte[] getMasterKey(String key, String keyFileName) + public byte[] getMasterKey(String key, InputStream keyfileStream) throws InvalidKeyFileException, IOException { - assert (key != null && keyFileName != null); + assert (key != null && keyfileStream != null); - if (key.length() > 0 && keyFileName.length() > 0) { - return getCompositeKey(key, keyFileName); + if (key.length() > 0 && keyfileStream != null) { + return getCompositeKey(key, keyfileStream); } else if (key.length() > 0) { return getPasswordKey(key); - } else if (keyFileName.length() > 0) { - return getFileKey(keyFileName); + } else if (keyfileStream != null) { + return getFileKey(keyfileStream); } else { throw new IllegalArgumentException("Key cannot be empty."); } @@ -514,11 +512,6 @@ public class PwDatabaseV3 { public byte[] getPasswordKey(String key) throws IOException { return getPasswordKey(key, "ISO-8859-1"); } - - protected byte[] loadXmlKeyFile(String fileName) { - return null; - } - public long getNumRounds() { diff --git a/src/java/KP2AKdbLibrary/src/com/keepassdroid/database/exception/InvalidDBSignatureException.java b/src/java/KP2AKdbLibrary/src/com/keepassdroid/database/exception/InvalidDBSignatureException.java index d2ac4aea..5ae3d1c3 100644 --- a/src/java/KP2AKdbLibrary/src/com/keepassdroid/database/exception/InvalidDBSignatureException.java +++ b/src/java/KP2AKdbLibrary/src/com/keepassdroid/database/exception/InvalidDBSignatureException.java @@ -26,7 +26,7 @@ public class InvalidDBSignatureException extends InvalidDBException { private static final long serialVersionUID = -5358923878743513758L; public InvalidDBSignatureException() { - super(); + super("Invalid database signature"); } } diff --git a/src/java/KP2AKdbLibrary/src/com/keepassdroid/database/exception/InvalidKeyFileException.java b/src/java/KP2AKdbLibrary/src/com/keepassdroid/database/exception/InvalidKeyFileException.java index 11cd1d8b..38bf7c2f 100644 --- a/src/java/KP2AKdbLibrary/src/com/keepassdroid/database/exception/InvalidKeyFileException.java +++ b/src/java/KP2AKdbLibrary/src/com/keepassdroid/database/exception/InvalidKeyFileException.java @@ -25,6 +25,10 @@ public class InvalidKeyFileException extends InvalidDBException { private static final long serialVersionUID = 5540694419562294464L; public InvalidKeyFileException() { - super(); + super("invalid key file!"); + } + + public InvalidKeyFileException(String msg) { + super(msg); } } diff --git a/src/java/KP2AKdbLibrary/src/com/keepassdroid/database/exception/InvalidPasswordException.java b/src/java/KP2AKdbLibrary/src/com/keepassdroid/database/exception/InvalidPasswordException.java index 69096e53..234e4da4 100644 --- a/src/java/KP2AKdbLibrary/src/com/keepassdroid/database/exception/InvalidPasswordException.java +++ b/src/java/KP2AKdbLibrary/src/com/keepassdroid/database/exception/InvalidPasswordException.java @@ -31,6 +31,6 @@ public class InvalidPasswordException extends InvalidDBException { } public InvalidPasswordException() { - super(); + super("Invalid key!"); } } diff --git a/src/java/KP2AKdbLibrary/src/com/keepassdroid/database/exception/KeyFileEmptyException.java b/src/java/KP2AKdbLibrary/src/com/keepassdroid/database/exception/KeyFileEmptyException.java index 21a7a101..502e3da0 100644 --- a/src/java/KP2AKdbLibrary/src/com/keepassdroid/database/exception/KeyFileEmptyException.java +++ b/src/java/KP2AKdbLibrary/src/com/keepassdroid/database/exception/KeyFileEmptyException.java @@ -25,6 +25,6 @@ public class KeyFileEmptyException extends InvalidKeyFileException { private static final long serialVersionUID = -1630780661204212325L; public KeyFileEmptyException() { - super(); + super("key file is empty!"); } } diff --git a/src/java/KP2AKdbLibrary/src/com/keepassdroid/database/load/ImporterV3.java b/src/java/KP2AKdbLibrary/src/com/keepassdroid/database/load/ImporterV3.java index 57d9f734..d20e45d2 100644 --- a/src/java/KP2AKdbLibrary/src/com/keepassdroid/database/load/ImporterV3.java +++ b/src/java/KP2AKdbLibrary/src/com/keepassdroid/database/load/ImporterV3.java @@ -123,13 +123,13 @@ public class ImporterV3 { * @throws InvalidAlgorithmParameterException if error decrypting main file body. * @throws ShortBufferException if error decrypting main file body. */ - public PwDatabaseV3 openDatabase( InputStream inStream, String password, String keyfile ) + public PwDatabaseV3 openDatabase( InputStream inStream, String password, InputStream keyfileStream ) throws IOException, InvalidDBException { - return openDatabase(inStream, password, keyfile, new UpdateStatus()); + return openDatabase(inStream, password, keyfileStream, new UpdateStatus()); } - public PwDatabaseV3 openDatabase( InputStream inStream, String password, String keyfile, UpdateStatus status ) + public PwDatabaseV3 openDatabase( InputStream inStream, String password, InputStream keyfileStream, UpdateStatus status ) throws IOException, InvalidDBException { PwDatabaseV3 newManager; @@ -175,7 +175,7 @@ public class ImporterV3 { } newManager = createDB(); - newManager.setMasterKey( password, keyfile ); + newManager.setMasterKey( password, keyfileStream ); // Select algorithm if( (hdr.flags & PwDbHeaderV3.FLAG_RIJNDAEL) != 0 ) { @@ -230,7 +230,7 @@ public class ImporterV3 { } catch (IllegalBlockSizeException e1) { throw new IOException("Invalid block size"); } catch (BadPaddingException e1) { - throw new InvalidPasswordException(); + throw new InvalidPasswordException("Invalid key!"); } // Copy decrypted data for testing @@ -251,7 +251,7 @@ public class ImporterV3 { if( ! Arrays.equals(hash, hdr.contentsHash) ) { Log.w("KeePassDroid","Database file did not decrypt correctly. (checksum code is broken)"); - throw new InvalidPasswordException(); + throw new InvalidPasswordException("Invalid key!"); } // Import all groups diff --git a/src/java/Keepass2AndroidPluginSDK/bin/keepass2androidpluginsdk.jar b/src/java/Keepass2AndroidPluginSDK/bin/keepass2androidpluginsdk.jar index e01d050a..65e768e1 100644 Binary files a/src/java/Keepass2AndroidPluginSDK/bin/keepass2androidpluginsdk.jar and b/src/java/Keepass2AndroidPluginSDK/bin/keepass2androidpluginsdk.jar differ diff --git a/src/java/PluginInputStick/AndroidManifest.xml b/src/java/PluginInputStick/AndroidManifest.xml index 78e5bf37..a083e28a 100644 --- a/src/java/PluginInputStick/AndroidManifest.xml +++ b/src/java/PluginInputStick/AndroidManifest.xml @@ -1,8 +1,8 @@ + android:versionCode="3" + android:versionName="1.2" > Host keyboard layout - English (United States) - en-US - German - de-DE - Polish - pl-PL - Russian - ru-RU + English (US) + German + Polish + Russian + Slovak + Portuguese (BR) + Norwegian + Swedish + French + Spanish + English (Dvorak) - en-US + en-US de-DE pl-PL ru-RU + sk-SK + pt-BR + nb-NO + sv-SE + fr-FR + es-ES + en-DV diff --git a/src/java/PluginInputStick/src/keepass2android/plugin/inputstick/ActionReceiver.java b/src/java/PluginInputStick/src/keepass2android/plugin/inputstick/ActionReceiver.java index cfd4876d..f20f5b73 100644 --- a/src/java/PluginInputStick/src/keepass2android/plugin/inputstick/ActionReceiver.java +++ b/src/java/PluginInputStick/src/keepass2android/plugin/inputstick/ActionReceiver.java @@ -34,7 +34,7 @@ public class ActionReceiver extends keepass2android.pluginsdk.PluginActionBroadc } catch (PluginAccessException e) { e.printStackTrace(); } - typeText(oe.getContext(), ""); + //typeText(oe.getContext(), ""); } @Override diff --git a/src/java/android-filechooser/code/libs/android-support-v4.jar b/src/java/android-filechooser/code/libs/android-support-v4.jar index 428bdbc0..187bdf48 100644 Binary files a/src/java/android-filechooser/code/libs/android-support-v4.jar and b/src/java/android-filechooser/code/libs/android-support-v4.jar differ diff --git a/src/java/android-filechooser/code/project.zip b/src/java/android-filechooser/code/project.zip index dae0d664..89f0cefb 100644 Binary files a/src/java/android-filechooser/code/project.zip and b/src/java/android-filechooser/code/project.zip differ diff --git a/src/keepass2android/CreateDatabaseActivity.cs b/src/keepass2android/CreateDatabaseActivity.cs index 8383d044..1a7eee87 100644 --- a/src/keepass2android/CreateDatabaseActivity.cs +++ b/src/keepass2android/CreateDatabaseActivity.cs @@ -327,9 +327,9 @@ namespace keepass2android defaultPath => { if (defaultPath.StartsWith("sftp://")) - Util.ShowSftpDialog(this, OnReceiveSftpData); + Util.ShowSftpDialog(this, OnReceiveSftpData, () => { }); else - Util.ShowFilenameDialog(this, OnCreateButton, null, false, defaultPath, GetString(Resource.String.enter_filename_details_url), + Util.ShowFilenameDialog(this, OnCreateButton, null, null, false, defaultPath, GetString(Resource.String.enter_filename_details_url), Intents.RequestCodeFileBrowseForOpen); } ), true, RequestCodeDbFilename, protocolId); diff --git a/src/keepass2android/EntryEditActivity.cs b/src/keepass2android/EntryEditActivity.cs index 52dc8bcb..a0a57357 100644 --- a/src/keepass2android/EntryEditActivity.cs +++ b/src/keepass2android/EntryEditActivity.cs @@ -1,4 +1,4 @@ -/* +/* This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file is based on Keepassdroid, Copyright Brian Pellin. Keepass2Android is free software: you can redistribute it and/or modify @@ -682,7 +682,7 @@ namespace keepass2android addBinaryButton.SetCompoundDrawablesWithIntrinsicBounds( Resources.GetDrawable(Android.Resource.Drawable.IcMenuAdd) , null, null, null); addBinaryButton.Click += (sender, e) => { - Util.ShowBrowseDialog("/mnt/sdcard", this, Intents.RequestCodeFileBrowseForBinary, false); + Util.ShowBrowseDialog(this, Intents.RequestCodeFileBrowseForBinary, false); }; binariesGroup.AddView(addBinaryButton,layoutParams); diff --git a/src/keepass2android/ExportDatabaseActivity.cs b/src/keepass2android/ExportDatabaseActivity.cs index bca5cf63..ad942c5b 100644 --- a/src/keepass2android/ExportDatabaseActivity.cs +++ b/src/keepass2android/ExportDatabaseActivity.cs @@ -61,9 +61,9 @@ namespace keepass2android defaultPath => { if (defaultPath.StartsWith("sftp://")) - Util.ShowSftpDialog(this, OnReceiveSftpData); + Util.ShowSftpDialog(this, OnReceiveSftpData, () => { }); else - Util.ShowFilenameDialog(this, OnCreateButton, null, false, defaultPath, GetString(Resource.String.enter_filename_details_url), + Util.ShowFilenameDialog(this, OnCreateButton, null, null, false, defaultPath, GetString(Resource.String.enter_filename_details_url), Intents.RequestCodeFileBrowseForOpen); } ), true, RequestCodeDbFilename, protocolId); diff --git a/src/keepass2android/FileStorageSelectionActivity.cs b/src/keepass2android/FileStorageSelectionActivity.cs index 9f5d3e95..1dc83353 100644 --- a/src/keepass2android/FileStorageSelectionActivity.cs +++ b/src/keepass2android/FileStorageSelectionActivity.cs @@ -14,7 +14,7 @@ namespace keepass2android [Activity (Label = "@string/app_name", ConfigurationChanges=ConfigChanges.Orientation|ConfigChanges.KeyboardHidden , Theme="@style/NoTitleBar")] public class FileStorageSelectionActivity : ListActivity { - private ActivityDesign _design; + private readonly ActivityDesign _design; private FileStorageAdapter _fileStorageAdapter; @@ -42,6 +42,9 @@ namespace keepass2android //put file:// to the top _protocolIds.Remove("file"); _protocolIds.Insert(0, "file"); + //remove "content" (covered by androidget) + _protocolIds.Remove("content"); + if (context.Intent.GetBooleanExtra(AllowThirdPartyAppGet, false)) _protocolIds.Add("androidget"); if (context.Intent.GetBooleanExtra(AllowThirdPartyAppSend, false)) diff --git a/src/keepass2android/PasswordActivity.cs b/src/keepass2android/PasswordActivity.cs index 0dc25e57..2dca2922 100644 --- a/src/keepass2android/PasswordActivity.cs +++ b/src/keepass2android/PasswordActivity.cs @@ -24,6 +24,7 @@ using System.Xml.Serialization; using Android.App; using Android.Content; using Android.Database; +using Android.Graphics.Drawables; using Android.OS; using Android.Runtime; using Android.Views; @@ -86,7 +87,7 @@ namespace keepass2android private const int RequestCodePrepareDbFile = 1000; private const int RequestCodePrepareOtpAuxFile = 1001; private const int RequestCodeChallengeYubikey = 1002; - + private const int RequestCodeSelectKeyfile = 1003; private Task _loadDbTask; private IOConnectionInfo _ioConnection; @@ -136,6 +137,7 @@ namespace keepass2android private ActivityDesign _design; private bool _performingLoad; + public PasswordActivity (IntPtr javaReference, JniHandleOwnership transfer) : base(javaReference, transfer) @@ -258,26 +260,20 @@ namespace keepass2android KcpKeyFile kcpKeyfile = (KcpKeyFile)App.Kp2a.GetDb().KpDatabase.MasterKey.GetUserKey(typeof(KcpKeyFile)); - SetEditText(Resource.Id.pass_keyfile, kcpKeyfile.Path); - + FindViewById(Resource.Id.label_keyfilename).Text = + App.Kp2a.GetFileStorage(kcpKeyfile.Ioc).GetDisplayName(kcpKeyfile.Ioc); + } } App.Kp2a.LockDatabase(false); break; - case Result.Ok: // Key file browse dialog OK'ed. - if (requestCode == Intents.RequestCodeFileBrowseForKeyfile) { - string filename = Util.IntentToFilename(data, this); - if (filename != null) { - if (filename.StartsWith("file://")) { - filename = filename.Substring(7); - } - - filename = URLDecoder.Decode(filename); - - EditText fn = (EditText) FindViewById(Resource.Id.pass_keyfile); - fn.Text = filename; - - } + case Result.Ok: + if (requestCode == RequestCodeSelectKeyfile) + { + IOConnectionInfo ioc = new IOConnectionInfo(); + SetIoConnectionFromIntent(ioc, data); + _keyFileOrProvider = IOConnectionInfo.SerializeToString(ioc); + UpdateKeyfileIocView(); } break; case (Result)FileStorageResults.FileUsagePrepared: @@ -354,6 +350,39 @@ namespace keepass2android } + private void UpdateKeyfileIocView() + { + //store keyfile in the view so that we can show the selected keyfile again if the user switches to another key provider and back to key file + FindViewById(Resource.Id.label_keyfilename).Tag = _keyFileOrProvider; + if (string.IsNullOrEmpty(_keyFileOrProvider)) + { + FindViewById(Resource.Id.filestorage_label).Visibility = ViewStates.Gone; + FindViewById(Resource.Id.filestorage_logo).Visibility = ViewStates.Gone; + FindViewById(Resource.Id.label_keyfilename).Text = Resources.GetString(Resource.String.no_keyfile_selected); + + return; + } + var ioc = IOConnectionInfo.UnserializeFromString(_keyFileOrProvider); + string displayPath = App.Kp2a.GetFileStorage(ioc).GetDisplayName(ioc); + int protocolSeparatorPos = displayPath.IndexOf("://", StringComparison.Ordinal); + string protocolId = protocolSeparatorPos < 0 ? + "file" : displayPath.Substring(0, protocolSeparatorPos); + Drawable drawable = App.Kp2a.GetResourceDrawable("ic_storage_" + protocolId); + FindViewById(Resource.Id.filestorage_logo).SetImageDrawable(drawable); + FindViewById(Resource.Id.filestorage_logo).Visibility = ViewStates.Visible; + + + String title = App.Kp2a.GetResourceString("filestoragename_" + protocolId); + FindViewById(Resource.Id.filestorage_label).Text = title; + FindViewById(Resource.Id.filestorage_label).Visibility = ViewStates.Visible; + + FindViewById(Resource.Id.label_keyfilename).Text = protocolSeparatorPos < 0 ? + displayPath : + displayPath.Substring(protocolSeparatorPos + 3); + + } + + private void LoadOtpFile() { new LoadingDialog(this, true, @@ -543,14 +572,11 @@ namespace keepass2android InitializeFilenameView(); if (KeyProviderType == KeyProviders.KeyFile) - SetEditText(Resource.Id.pass_keyfile, _keyFileOrProvider); + { + UpdateKeyfileIocView(); + } + - FindViewById(Resource.Id.pass_keyfile).TextChanged += - (sender, args) => - { - _keyFileOrProvider = FindViewById(Resource.Id.pass_keyfile).Text; - UpdateOkButtonState(); - }; FindViewById(Resource.Id.password).TextChanged += (sender, args) => @@ -705,20 +731,14 @@ namespace keepass2android private void InitializeKeyfileBrowseButton() { - ImageButton browse = (ImageButton) FindViewById(Resource.Id.browse_button); - browse.Click += (sender, evt) => + var browseButton = (Button)FindViewById(Resource.Id.btn_change_location); + browseButton.Click += (sender, evt) => { - string filename = null; - if (!String.IsNullOrEmpty(_ioConnection.Path)) - { - File keyfile = new File(_ioConnection.Path); - File parent = keyfile.ParentFile; - if (parent != null) - { - filename = parent.AbsolutePath; - } - } - Util.ShowBrowseDialog(filename, this, Intents.RequestCodeFileBrowseForKeyfile, false); + Intent intent = new Intent(this, typeof(SelectStorageLocationActivity)); + intent.PutExtra(FileStorageSelectionActivity.AllowThirdPartyAppGet, true); + intent.PutExtra(FileStorageSelectionActivity.AllowThirdPartyAppSend, false); + intent.PutExtra(FileStorageSetupDefs.ExtraIsForSave, false); + StartActivityForResult(intent, RequestCodeSelectKeyfile); }; } @@ -738,7 +758,7 @@ namespace keepass2android break; case 1: //don't set to "" to prevent losing the filename. (ItemSelected is also called during recreation!) - _keyFileOrProvider = FindViewById(Resource.Id.pass_keyfile).Text; + _keyFileOrProvider = (FindViewById(Resource.Id.label_keyfilename).Tag ?? "").ToString(); break; case 2: _keyFileOrProvider = KeyProviderIdOtp; @@ -779,7 +799,7 @@ namespace keepass2android _showPassword = savedInstanceState.GetBoolean(ShowpasswordKey, false); MakePasswordMaskedOrVisible(); - _keyFileOrProvider = FindViewById(Resource.Id.pass_keyfile).Text = savedInstanceState.GetString(KeyFileOrProviderKey); + _keyFileOrProvider = savedInstanceState.GetString(KeyFileOrProviderKey); _password = FindViewById(Resource.Id.password).Text = savedInstanceState.GetString(PasswordKey); _pendingOtps = new List(savedInstanceState.GetStringArrayList(PendingOtpsKey)); @@ -850,6 +870,11 @@ namespace keepass2android FindViewById(Resource.Id.keyfileLine).Visibility = KeyProviderType == KeyProviders.KeyFile ? ViewStates.Visible : ViewStates.Gone; + if (KeyProviderType == KeyProviders.KeyFile) + { + UpdateKeyfileIocView(); + } + FindViewById(Resource.Id.otpView).Visibility = KeyProviderType == KeyProviders.Otp ? ViewStates.Visible : ViewStates.Gone; @@ -876,16 +901,30 @@ namespace keepass2android //no need to check for validity of password because if this method is called, the Ok button was enabled (i.e. there was a valid password) CompositeKey compositeKey = new CompositeKey(); compositeKey.AddUserKey(new KcpPassword(_password)); - if ((KeyProviderType == KeyProviders.KeyFile) && (_keyFileOrProvider != "")) + if (KeyProviderType == KeyProviders.KeyFile) { try { - compositeKey.AddUserKey(new KcpKeyFile(_keyFileOrProvider)); + if (_keyFileOrProvider == "") + throw new System.IO.FileNotFoundException(); + var ioc = IOConnectionInfo.UnserializeFromString(_keyFileOrProvider); + using (var stream = App.Kp2a.GetFileStorage(ioc).OpenFileForRead(ioc)) + { + byte[] keyfileData = StreamToMemoryStream(stream).ToArray(); + compositeKey.AddUserKey(new KcpKeyFile(keyfileData, ioc, true)); + } + + } + catch (System.IO.FileNotFoundException e) + { + Kp2aLog.Log(e.ToString()); + Toast.MakeText(this, App.Kp2a.GetResourceString(UiStringKey.keyfile_does_not_exist), ToastLength.Long).Show(); + return; } catch (Exception e) { Kp2aLog.Log(e.ToString()); - Toast.MakeText(this, App.Kp2a.GetResourceString(UiStringKey.keyfile_does_not_exist), ToastLength.Long).Show(); + Toast.MakeText(this, e.Message, ToastLength.Long).Show(); return; } } @@ -895,11 +934,12 @@ namespace keepass2android try { var lOtps = GetOtpsFromUi(); + Kp2aLog.Log("received " + lOtps.Count + " otps."); OathHotpKeyProv.CreateOtpSecret(lOtps, _otpInfo); } - catch (Exception) + catch (Exception e) { - + Kp2aLog.Log(e.ToString()); Toast.MakeText(this, GetString(Resource.String.OtpKeyError), ToastLength.Long).Show(); return; @@ -1031,23 +1071,29 @@ namespace keepass2android var fileStorage = App.Kp2a.GetFileStorage(_ioConnection); var stream = fileStorage.OpenFileForRead(_ioConnection); + var memoryStream = StreamToMemoryStream(stream); + + Kp2aLog.Log("Pre-loading database file completed"); + + return memoryStream; + } + + private static MemoryStream StreamToMemoryStream(Stream stream) + { var memoryStream = stream as MemoryStream; if (memoryStream == null) { - // Read the file into memory + // Read the stream into memory int capacity = 4096; // Default initial capacity, if stream can't report it. if (stream.CanSeek) { - capacity = (int)stream.Length; + capacity = (int) stream.Length; } memoryStream = new MemoryStream(capacity); stream.CopyTo(memoryStream); stream.Close(); - memoryStream.Seek(0, System.IO.SeekOrigin.Begin); + memoryStream.Seek(0, SeekOrigin.Begin); } - - Kp2aLog.Log("Pre-loading database file completed"); - return memoryStream; } diff --git a/src/keepass2android/Properties/AndroidManifest_net.xml b/src/keepass2android/Properties/AndroidManifest_net.xml index 519820ab..c6b88019 100644 --- a/src/keepass2android/Properties/AndroidManifest_net.xml +++ b/src/keepass2android/Properties/AndroidManifest_net.xml @@ -18,7 +18,7 @@ - + diff --git a/src/keepass2android/Resources/Resource.designer.cs b/src/keepass2android/Resources/Resource.designer.cs index f6eff9f4..80b97de6 100644 --- a/src/keepass2android/Resources/Resource.designer.cs +++ b/src/keepass2android/Resources/Resource.designer.cs @@ -35,28 +35,46 @@ namespace keepass2android { // aapt resource value: 0x7f040000 - public const int anim_enter = 2130968576; + public const int abc_fade_in = 2130968576; // aapt resource value: 0x7f040001 - public const int anim_enter_back = 2130968577; + public const int abc_fade_out = 2130968577; // aapt resource value: 0x7f040002 - public const int anim_leave = 2130968578; + public const int abc_slide_in_bottom = 2130968578; // aapt resource value: 0x7f040003 - public const int anim_leave_back = 2130968579; + public const int abc_slide_in_top = 2130968579; // aapt resource value: 0x7f040004 - public const int key_preview_fadein = 2130968580; + public const int abc_slide_out_bottom = 2130968580; // aapt resource value: 0x7f040005 - public const int key_preview_fadeout = 2130968581; + public const int abc_slide_out_top = 2130968581; // aapt resource value: 0x7f040006 - public const int mini_keyboard_fadein = 2130968582; + public const int anim_enter = 2130968582; // aapt resource value: 0x7f040007 - public const int mini_keyboard_fadeout = 2130968583; + public const int anim_enter_back = 2130968583; + + // aapt resource value: 0x7f040008 + public const int anim_leave = 2130968584; + + // aapt resource value: 0x7f040009 + public const int anim_leave_back = 2130968585; + + // aapt resource value: 0x7f04000a + public const int key_preview_fadein = 2130968586; + + // aapt resource value: 0x7f04000b + public const int key_preview_fadeout = 2130968587; + + // aapt resource value: 0x7f04000c + public const int mini_keyboard_fadein = 2130968588; + + // aapt resource value: 0x7f04000d + public const int mini_keyboard_fadeout = 2130968589; static Animation() { @@ -71,65 +89,65 @@ namespace keepass2android public partial class Array { - // aapt resource value: 0x7f0d0013 - public const int AcceptAllServerCertificates_options = 2131558419; + // aapt resource value: 0x7f0e0013 + public const int AcceptAllServerCertificates_options = 2131623955; - // aapt resource value: 0x7f0d000c - public const int AcceptAllServerCertificates_values = 2131558412; + // aapt resource value: 0x7f0e000c + public const int AcceptAllServerCertificates_values = 2131623948; - // aapt resource value: 0x7f0d000d - public const int clipboard_timeout_options = 2131558413; + // aapt resource value: 0x7f0e000d + public const int clipboard_timeout_options = 2131623949; - // aapt resource value: 0x7f0d0009 - public const int clipboard_timeout_values = 2131558409; + // aapt resource value: 0x7f0e0009 + public const int clipboard_timeout_values = 2131623945; - // aapt resource value: 0x7f0d0011 - public const int cred_remember_modes = 2131558417; + // aapt resource value: 0x7f0e0011 + public const int cred_remember_modes = 2131623953; - // aapt resource value: 0x7f0d0010 - public const int design_options = 2131558416; + // aapt resource value: 0x7f0e0010 + public const int design_options = 2131623952; - // aapt resource value: 0x7f0d000b - public const int design_values = 2131558411; + // aapt resource value: 0x7f0e000b + public const int design_values = 2131623947; - // aapt resource value: 0x7f0d000e - public const int export_fileformat_options = 2131558414; + // aapt resource value: 0x7f0e000e + public const int export_fileformat_options = 2131623950; - // aapt resource value: 0x7f0d0007 - public const int keyboard_layout_modes = 2131558407; + // aapt resource value: 0x7f0e0007 + public const int keyboard_layout_modes = 2131623943; - // aapt resource value: 0x7f0d0008 - public const int keyboard_layout_modes_values = 2131558408; + // aapt resource value: 0x7f0e0008 + public const int keyboard_layout_modes_values = 2131623944; - // aapt resource value: 0x7f0d000f - public const int list_size_options = 2131558415; + // aapt resource value: 0x7f0e000f + public const int list_size_options = 2131623951; - // aapt resource value: 0x7f0d000a - public const int list_size_values = 2131558410; + // aapt resource value: 0x7f0e000a + public const int list_size_values = 2131623946; - // aapt resource value: 0x7f0d0012 - public const int password_modes = 2131558418; + // aapt resource value: 0x7f0e0012 + public const int password_modes = 2131623954; - // aapt resource value: 0x7f0d0002 - public const int prediction_modes = 2131558402; + // aapt resource value: 0x7f0e0002 + public const int prediction_modes = 2131623938; - // aapt resource value: 0x7f0d0003 - public const int prediction_modes_values = 2131558403; + // aapt resource value: 0x7f0e0003 + public const int prediction_modes_values = 2131623939; - // aapt resource value: 0x7f0d0001 - public const int settings_key_modes = 2131558401; + // aapt resource value: 0x7f0e0001 + public const int settings_key_modes = 2131623937; - // aapt resource value: 0x7f0d0000 - public const int settings_key_modes_values = 2131558400; + // aapt resource value: 0x7f0e0000 + public const int settings_key_modes_values = 2131623936; - // aapt resource value: 0x7f0d0004 - public const int voice_input_modes = 2131558404; + // aapt resource value: 0x7f0e0004 + public const int voice_input_modes = 2131623940; - // aapt resource value: 0x7f0d0006 - public const int voice_input_modes_summary = 2131558406; + // aapt resource value: 0x7f0e0006 + public const int voice_input_modes_summary = 2131623942; - // aapt resource value: 0x7f0d0005 - public const int voice_input_modes_values = 2131558405; + // aapt resource value: 0x7f0e0005 + public const int voice_input_modes_values = 2131623941; static Array() { @@ -144,254 +162,653 @@ namespace keepass2android public partial class Attribute { - // aapt resource value: 0x7f010043 - public const int ActionBarButtonParentStyle = 2130772035; + // aapt resource value: 0x7f0100c8 + public const int ActionBarButtonParentStyle = 2130772168; - // aapt resource value: 0x7f010049 - public const int AddFieldDrawable = 2130772041; + // aapt resource value: 0x7f0100ce + public const int AddFieldDrawable = 2130772174; - // aapt resource value: 0x7f010047 - public const int CancelDrawable = 2130772039; + // aapt resource value: 0x7f0100cc + public const int CancelDrawable = 2130772172; - // aapt resource value: 0x7f01004d - public const int CreateDbDrawable = 2130772045; + // aapt resource value: 0x7f0100d2 + public const int CreateDbDrawable = 2130772178; - // aapt resource value: 0x7f010051 - public const int NavigationAcceptDrawable = 2130772049; + // aapt resource value: 0x7f0100d6 + public const int NavigationAcceptDrawable = 2130772182; - // aapt resource value: 0x7f01004a - public const int NewEntryDrawable = 2130772042; + // aapt resource value: 0x7f0100cf + public const int NewEntryDrawable = 2130772175; - // aapt resource value: 0x7f010048 - public const int NewGroupDrawable = 2130772040; + // aapt resource value: 0x7f0100cd + public const int NewGroupDrawable = 2130772173; - // aapt resource value: 0x7f01004b - public const int OpenFileDrawable = 2130772043; + // aapt resource value: 0x7f0100d0 + public const int OpenFileDrawable = 2130772176; - // aapt resource value: 0x7f01004c - public const int OpenUrlDrawable = 2130772044; + // aapt resource value: 0x7f0100d1 + public const int OpenUrlDrawable = 2130772177; - // aapt resource value: 0x7f010044 - public const int TextColorGroup = 2130772036; + // aapt resource value: 0x7f0100c9 + public const int TextColorGroup = 2130772169; - // aapt resource value: 0x7f010045 - public const int TextColorHeader = 2130772037; + // aapt resource value: 0x7f0100ca + public const int TextColorHeader = 2130772170; - // aapt resource value: 0x7f010046 - public const int TextColorItem = 2130772038; + // aapt resource value: 0x7f0100cb + public const int TextColorItem = 2130772171; - // aapt resource value: 0x7f010042 - public const int TextViewParentStyle = 2130772034; - - // aapt resource value: 0x7f010036 - public const int afc_badge_file_provider_localfile = 2130772022; - - // aapt resource value: 0x7f01003f - public const int afc_button_bar_button_style = 2130772031; - - // aapt resource value: 0x7f01003e - public const int afc_button_bar_style = 2130772030; - - // aapt resource value: 0x7f010024 - public const int afc_button_home = 2130772004; - - // aapt resource value: 0x7f010041 - public const int afc_color_list_group_view_background = 2130772033; - - // aapt resource value: 0x7f010040 - public const int afc_color_listview_cache_hint = 2130772032; - - // aapt resource value: 0x7f01002e - public const int afc_ic_button_sort_by_date_asc = 2130772014; - - // aapt resource value: 0x7f01002f - public const int afc_ic_button_sort_by_date_desc = 2130772015; - - // aapt resource value: 0x7f010030 - public const int afc_ic_button_sort_by_name_asc = 2130772016; - - // aapt resource value: 0x7f010031 - public const int afc_ic_button_sort_by_name_desc = 2130772017; - - // aapt resource value: 0x7f010032 - public const int afc_ic_button_sort_by_size_asc = 2130772018; - - // aapt resource value: 0x7f010033 - public const int afc_ic_button_sort_by_size_desc = 2130772019; - - // aapt resource value: 0x7f010026 - public const int afc_ic_menu_gridview = 2130772006; - - // aapt resource value: 0x7f010025 - public const int afc_ic_menu_home = 2130772005; - - // aapt resource value: 0x7f010027 - public const int afc_ic_menu_listview = 2130772007; - - // aapt resource value: 0x7f010028 - public const int afc_ic_menu_sort_by_date_asc = 2130772008; - - // aapt resource value: 0x7f010029 - public const int afc_ic_menu_sort_by_date_desc = 2130772009; - - // aapt resource value: 0x7f01002a - public const int afc_ic_menu_sort_by_name_asc = 2130772010; - - // aapt resource value: 0x7f01002b - public const int afc_ic_menu_sort_by_name_desc = 2130772011; - - // aapt resource value: 0x7f01002c - public const int afc_ic_menu_sort_by_size_asc = 2130772012; - - // aapt resource value: 0x7f01002d - public const int afc_ic_menu_sort_by_size_desc = 2130772013; - - // aapt resource value: 0x7f010035 - public const int afc_ic_widget_search_view_action_clear = 2130772021; - - // aapt resource value: 0x7f010034 - public const int afc_ic_widget_search_view_action_search = 2130772020; - - // aapt resource value: 0x7f01003c - public const int afc_selector_action_navi_left_foreground = 2130772028; - - // aapt resource value: 0x7f01003d - public const int afc_selector_action_navi_right_foreground = 2130772029; - - // aapt resource value: 0x7f010038 - public const int afc_selector_button_location = 2130772024; - - // aapt resource value: 0x7f01003b - public const int afc_selector_button_ok_saveas = 2130772027; - - // aapt resource value: 0x7f010037 - public const int afc_selector_image_button = 2130772023; - - // aapt resource value: 0x7f010039 - public const int afc_selector_main_button_navi_left = 2130772025; - - // aapt resource value: 0x7f01003a - public const int afc_selector_main_button_navi_right = 2130772026; - - // aapt resource value: 0x7f010023 - public const int afc_theme_dialog = 2130772003; - - // aapt resource value: 0x7f01001b - public const int backgroundDimAmount = 2130771995; - - // aapt resource value: 0x7f010001 - public const int cameraBearing = 2130771969; - - // aapt resource value: 0x7f010002 - public const int cameraTargetLat = 2130771970; - - // aapt resource value: 0x7f010003 - public const int cameraTargetLng = 2130771971; - - // aapt resource value: 0x7f010004 - public const int cameraTilt = 2130771972; - - // aapt resource value: 0x7f010005 - public const int cameraZoom = 2130771973; - - // aapt resource value: 0x7f010020 - public const int closable = 2130772000; - - // aapt resource value: 0x7f01001e - public const int delayTimeSubmission = 2130771998; - - // aapt resource value: 0x7f010021 - public const int enabled = 2130772001; - - // aapt resource value: 0x7f010052 - public const int help_text = 2130772050; - - // aapt resource value: 0x7f010022 - public const int hint = 2130772002; - - // aapt resource value: 0x7f010050 - public const int ic_action_search_drawable = 2130772048; - - // aapt resource value: 0x7f01004f - public const int ic_launcher_folder_small = 2130772047; - - // aapt resource value: 0x7f01004e - public const int ic_menu_add_field = 2130772046; - - // aapt resource value: 0x7f01001f - public const int iconified = 2130771999; - - // aapt resource value: 0x7f01000f - public const int keyBackground = 2130771983; - - // aapt resource value: 0x7f010016 - public const int keyHysteresisDistance = 2130771990; - - // aapt resource value: 0x7f010015 - public const int keyPreviewHeight = 2130771989; - - // aapt resource value: 0x7f010013 - public const int keyPreviewLayout = 2130771987; + // aapt resource value: 0x7f0100c7 + public const int TextViewParentStyle = 2130772167; // aapt resource value: 0x7f010014 - public const int keyPreviewOffset = 2130771988; + public const int actionBarDivider = 2130771988; - // aapt resource value: 0x7f010012 - public const int keyTextColor = 2130771986; + // aapt resource value: 0x7f010015 + public const int actionBarItemBackground = 2130771989; - // aapt resource value: 0x7f010010 - public const int keyTextSize = 2130771984; - - // aapt resource value: 0x7f01001c - public const int keyTextStyle = 2130771996; - - // aapt resource value: 0x7f01000e - public const int keyboardViewStyle = 2130771982; + // aapt resource value: 0x7f010013 + public const int actionBarSize = 2130771987; // aapt resource value: 0x7f010011 - public const int labelTextSize = 2130771985; + public const int actionBarSplitStyle = 2130771985; - // aapt resource value: 0x7f010000 - public const int mapType = 2130771968; - - // aapt resource value: 0x7f010018 - public const int popupLayout = 2130771992; - - // aapt resource value: 0x7f010019 - public const int shadowColor = 2130771993; - - // aapt resource value: 0x7f01001a - public const int shadowRadius = 2130771994; - - // aapt resource value: 0x7f01001d - public const int symbolColorScheme = 2130771997; - - // aapt resource value: 0x7f010006 - public const int uiCompass = 2130771974; - - // aapt resource value: 0x7f010007 - public const int uiRotateGestures = 2130771975; - - // aapt resource value: 0x7f010008 - public const int uiScrollGestures = 2130771976; - - // aapt resource value: 0x7f010009 - public const int uiTiltGestures = 2130771977; - - // aapt resource value: 0x7f01000a - public const int uiZoomControls = 2130771978; - - // aapt resource value: 0x7f01000b - public const int uiZoomGestures = 2130771979; - - // aapt resource value: 0x7f01000c - public const int useViewLifecycle = 2130771980; - - // aapt resource value: 0x7f010017 - public const int verticalCorrection = 2130771991; + // aapt resource value: 0x7f010010 + public const int actionBarStyle = 2130771984; // aapt resource value: 0x7f01000d - public const int zOrderOnTop = 2130771981; + public const int actionBarTabBarStyle = 2130771981; + + // aapt resource value: 0x7f01000c + public const int actionBarTabStyle = 2130771980; + + // aapt resource value: 0x7f01000e + public const int actionBarTabTextStyle = 2130771982; + + // aapt resource value: 0x7f010012 + public const int actionBarWidgetTheme = 2130771986; + + // aapt resource value: 0x7f01001b + public const int actionButtonStyle = 2130771995; + + // aapt resource value: 0x7f01004c + public const int actionDropDownStyle = 2130772044; + + // aapt resource value: 0x7f010053 + public const int actionLayout = 2130772051; + + // aapt resource value: 0x7f010016 + public const int actionMenuTextAppearance = 2130771990; + + // aapt resource value: 0x7f010017 + public const int actionMenuTextColor = 2130771991; + + // aapt resource value: 0x7f010041 + public const int actionModeBackground = 2130772033; + + // aapt resource value: 0x7f010040 + public const int actionModeCloseButtonStyle = 2130772032; + + // aapt resource value: 0x7f010043 + public const int actionModeCloseDrawable = 2130772035; + + // aapt resource value: 0x7f010045 + public const int actionModeCopyDrawable = 2130772037; + + // aapt resource value: 0x7f010044 + public const int actionModeCutDrawable = 2130772036; + + // aapt resource value: 0x7f010049 + public const int actionModeFindDrawable = 2130772041; + + // aapt resource value: 0x7f010046 + public const int actionModePasteDrawable = 2130772038; + + // aapt resource value: 0x7f01004b + public const int actionModePopupWindowStyle = 2130772043; + + // aapt resource value: 0x7f010047 + public const int actionModeSelectAllDrawable = 2130772039; + + // aapt resource value: 0x7f010048 + public const int actionModeShareDrawable = 2130772040; + + // aapt resource value: 0x7f010042 + public const int actionModeSplitBackground = 2130772034; + + // aapt resource value: 0x7f01003f + public const int actionModeStyle = 2130772031; + + // aapt resource value: 0x7f01004a + public const int actionModeWebSearchDrawable = 2130772042; + + // aapt resource value: 0x7f01000f + public const int actionOverflowButtonStyle = 2130771983; + + // aapt resource value: 0x7f010055 + public const int actionProviderClass = 2130772053; + + // aapt resource value: 0x7f010054 + public const int actionViewClass = 2130772052; + + // aapt resource value: 0x7f010071 + public const int activityChooserViewStyle = 2130772081; + + // aapt resource value: 0x7f010073 + public const int adSize = 2130772083; + + // aapt resource value: 0x7f010074 + public const int adSizes = 2130772084; + + // aapt resource value: 0x7f010075 + public const int adUnitId = 2130772085; + + // aapt resource value: 0x7f0100bb + public const int afc_badge_file_provider_localfile = 2130772155; + + // aapt resource value: 0x7f0100c4 + public const int afc_button_bar_button_style = 2130772164; + + // aapt resource value: 0x7f0100c3 + public const int afc_button_bar_style = 2130772163; + + // aapt resource value: 0x7f0100a9 + public const int afc_button_home = 2130772137; + + // aapt resource value: 0x7f0100c6 + public const int afc_color_list_group_view_background = 2130772166; + + // aapt resource value: 0x7f0100c5 + public const int afc_color_listview_cache_hint = 2130772165; + + // aapt resource value: 0x7f0100b3 + public const int afc_ic_button_sort_by_date_asc = 2130772147; + + // aapt resource value: 0x7f0100b4 + public const int afc_ic_button_sort_by_date_desc = 2130772148; + + // aapt resource value: 0x7f0100b5 + public const int afc_ic_button_sort_by_name_asc = 2130772149; + + // aapt resource value: 0x7f0100b6 + public const int afc_ic_button_sort_by_name_desc = 2130772150; + + // aapt resource value: 0x7f0100b7 + public const int afc_ic_button_sort_by_size_asc = 2130772151; + + // aapt resource value: 0x7f0100b8 + public const int afc_ic_button_sort_by_size_desc = 2130772152; + + // aapt resource value: 0x7f0100ab + public const int afc_ic_menu_gridview = 2130772139; + + // aapt resource value: 0x7f0100aa + public const int afc_ic_menu_home = 2130772138; + + // aapt resource value: 0x7f0100ac + public const int afc_ic_menu_listview = 2130772140; + + // aapt resource value: 0x7f0100ad + public const int afc_ic_menu_sort_by_date_asc = 2130772141; + + // aapt resource value: 0x7f0100ae + public const int afc_ic_menu_sort_by_date_desc = 2130772142; + + // aapt resource value: 0x7f0100af + public const int afc_ic_menu_sort_by_name_asc = 2130772143; + + // aapt resource value: 0x7f0100b0 + public const int afc_ic_menu_sort_by_name_desc = 2130772144; + + // aapt resource value: 0x7f0100b1 + public const int afc_ic_menu_sort_by_size_asc = 2130772145; + + // aapt resource value: 0x7f0100b2 + public const int afc_ic_menu_sort_by_size_desc = 2130772146; + + // aapt resource value: 0x7f0100ba + public const int afc_ic_widget_search_view_action_clear = 2130772154; + + // aapt resource value: 0x7f0100b9 + public const int afc_ic_widget_search_view_action_search = 2130772153; + + // aapt resource value: 0x7f0100c1 + public const int afc_selector_action_navi_left_foreground = 2130772161; + + // aapt resource value: 0x7f0100c2 + public const int afc_selector_action_navi_right_foreground = 2130772162; + + // aapt resource value: 0x7f0100bd + public const int afc_selector_button_location = 2130772157; + + // aapt resource value: 0x7f0100c0 + public const int afc_selector_button_ok_saveas = 2130772160; + + // aapt resource value: 0x7f0100bc + public const int afc_selector_image_button = 2130772156; + + // aapt resource value: 0x7f0100be + public const int afc_selector_main_button_navi_left = 2130772158; + + // aapt resource value: 0x7f0100bf + public const int afc_selector_main_button_navi_right = 2130772159; + + // aapt resource value: 0x7f0100a8 + public const int afc_theme_dialog = 2130772136; + + // aapt resource value: 0x7f010034 + public const int background = 2130772020; + + // aapt resource value: 0x7f0100a0 + public const int backgroundDimAmount = 2130772128; + + // aapt resource value: 0x7f010036 + public const int backgroundSplit = 2130772022; + + // aapt resource value: 0x7f010035 + public const int backgroundStacked = 2130772021; + + // aapt resource value: 0x7f01001d + public const int buttonBarButtonStyle = 2130771997; + + // aapt resource value: 0x7f01001c + public const int buttonBarStyle = 2130771996; + + // aapt resource value: 0x7f01008b + public const int buyButtonAppearance = 2130772107; + + // aapt resource value: 0x7f010088 + public const int buyButtonHeight = 2130772104; + + // aapt resource value: 0x7f01008a + public const int buyButtonText = 2130772106; + + // aapt resource value: 0x7f010089 + public const int buyButtonWidth = 2130772105; + + // aapt resource value: 0x7f010077 + public const int cameraBearing = 2130772087; + + // aapt resource value: 0x7f010078 + public const int cameraTargetLat = 2130772088; + + // aapt resource value: 0x7f010079 + public const int cameraTargetLng = 2130772089; + + // aapt resource value: 0x7f01007a + public const int cameraTilt = 2130772090; + + // aapt resource value: 0x7f01007b + public const int cameraZoom = 2130772091; + + // aapt resource value: 0x7f0100a5 + public const int closable = 2130772133; + + // aapt resource value: 0x7f010037 + public const int customNavigationLayout = 2130772023; + + // aapt resource value: 0x7f0100a3 + public const int delayTimeSubmission = 2130772131; + + // aapt resource value: 0x7f010059 + public const int disableChildrenWhenDisabled = 2130772057; + + // aapt resource value: 0x7f01002d + public const int displayOptions = 2130772013; + + // aapt resource value: 0x7f010033 + public const int divider = 2130772019; + + // aapt resource value: 0x7f010020 + public const int dividerHorizontal = 2130772000; + + // aapt resource value: 0x7f01005b + public const int dividerPadding = 2130772059; + + // aapt resource value: 0x7f01001f + public const int dividerVertical = 2130771999; + + // aapt resource value: 0x7f010026 + public const int dropDownListViewStyle = 2130772006; + + // aapt resource value: 0x7f01004d + public const int dropdownListPreferredItemHeight = 2130772045; + + // aapt resource value: 0x7f0100a6 + public const int enabled = 2130772134; + + // aapt resource value: 0x7f010085 + public const int environment = 2130772101; + + // aapt resource value: 0x7f010070 + public const int expandActivityOverflowButtonDrawable = 2130772080; + + // aapt resource value: 0x7f010000 + public const int externalRouteEnabledDrawable = 2130771968; + + // aapt resource value: 0x7f010087 + public const int fragmentMode = 2130772103; + + // aapt resource value: 0x7f010086 + public const int fragmentStyle = 2130772102; + + // aapt resource value: 0x7f01002b + public const int height = 2130772011; + + // aapt resource value: 0x7f0100d7 + public const int help_text = 2130772183; + + // aapt resource value: 0x7f0100a7 + public const int hint = 2130772135; + + // aapt resource value: 0x7f010018 + public const int homeAsUpIndicator = 2130771992; + + // aapt resource value: 0x7f010038 + public const int homeLayout = 2130772024; + + // aapt resource value: 0x7f0100d5 + public const int ic_action_search_drawable = 2130772181; + + // aapt resource value: 0x7f0100d4 + public const int ic_launcher_folder_small = 2130772180; + + // aapt resource value: 0x7f0100d3 + public const int ic_menu_add_field = 2130772179; + + // aapt resource value: 0x7f010031 + public const int icon = 2130772017; + + // aapt resource value: 0x7f0100a4 + public const int iconified = 2130772132; + + // aapt resource value: 0x7f01005f + public const int iconifiedByDefault = 2130772063; + + // aapt resource value: 0x7f01003a + public const int indeterminateProgressStyle = 2130772026; + + // aapt resource value: 0x7f01006f + public const int initialActivityCount = 2130772079; + + // aapt resource value: 0x7f01005e + public const int isLightTheme = 2130772062; + + // aapt resource value: 0x7f01003c + public const int itemPadding = 2130772028; + + // aapt resource value: 0x7f010094 + public const int keyBackground = 2130772116; + + // aapt resource value: 0x7f01009b + public const int keyHysteresisDistance = 2130772123; + + // aapt resource value: 0x7f01009a + public const int keyPreviewHeight = 2130772122; + + // aapt resource value: 0x7f010098 + public const int keyPreviewLayout = 2130772120; + + // aapt resource value: 0x7f010099 + public const int keyPreviewOffset = 2130772121; + + // aapt resource value: 0x7f010097 + public const int keyTextColor = 2130772119; + + // aapt resource value: 0x7f010095 + public const int keyTextSize = 2130772117; + + // aapt resource value: 0x7f0100a1 + public const int keyTextStyle = 2130772129; + + // aapt resource value: 0x7f010093 + public const int keyboardViewStyle = 2130772115; + + // aapt resource value: 0x7f010096 + public const int labelTextSize = 2130772118; + + // aapt resource value: 0x7f010051 + public const int listChoiceBackgroundIndicator = 2130772049; + + // aapt resource value: 0x7f010027 + public const int listPopupWindowStyle = 2130772007; + + // aapt resource value: 0x7f010021 + public const int listPreferredItemHeight = 2130772001; + + // aapt resource value: 0x7f010023 + public const int listPreferredItemHeightLarge = 2130772003; + + // aapt resource value: 0x7f010022 + public const int listPreferredItemHeightSmall = 2130772002; + + // aapt resource value: 0x7f010024 + public const int listPreferredItemPaddingLeft = 2130772004; + + // aapt resource value: 0x7f010025 + public const int listPreferredItemPaddingRight = 2130772005; + + // aapt resource value: 0x7f010032 + public const int logo = 2130772018; + + // aapt resource value: 0x7f010076 + public const int mapType = 2130772086; + + // aapt resource value: 0x7f01008e + public const int maskedWalletDetailsBackground = 2130772110; + + // aapt resource value: 0x7f010090 + public const int maskedWalletDetailsButtonBackground = 2130772112; + + // aapt resource value: 0x7f01008f + public const int maskedWalletDetailsButtonTextAppearance = 2130772111; + + // aapt resource value: 0x7f01008d + public const int maskedWalletDetailsHeaderTextAppearance = 2130772109; + + // aapt resource value: 0x7f010092 + public const int maskedWalletDetailsLogoImageType = 2130772114; + + // aapt resource value: 0x7f010091 + public const int maskedWalletDetailsLogoTextColor = 2130772113; + + // aapt resource value: 0x7f01008c + public const int maskedWalletDetailsTextAppearance = 2130772108; + + // aapt resource value: 0x7f010001 + public const int mediaRouteButtonStyle = 2130771969; + + // aapt resource value: 0x7f010003 + public const int mediaRouteConnectingDrawable = 2130771971; + + // aapt resource value: 0x7f010002 + public const int mediaRouteOffDrawable = 2130771970; + + // aapt resource value: 0x7f010004 + public const int mediaRouteOnDrawable = 2130771972; + + // aapt resource value: 0x7f01002c + public const int navigationMode = 2130772012; + + // aapt resource value: 0x7f01003e + public const int paddingEnd = 2130772030; + + // aapt resource value: 0x7f01003d + public const int paddingStart = 2130772029; + + // aapt resource value: 0x7f010050 + public const int panelMenuListTheme = 2130772048; + + // aapt resource value: 0x7f01004f + public const int panelMenuListWidth = 2130772047; + + // aapt resource value: 0x7f01009d + public const int popupLayout = 2130772125; + + // aapt resource value: 0x7f01004e + public const int popupMenuStyle = 2130772046; + + // aapt resource value: 0x7f010058 + public const int popupPromptView = 2130772056; + + // aapt resource value: 0x7f01003b + public const int progressBarPadding = 2130772027; + + // aapt resource value: 0x7f010039 + public const int progressBarStyle = 2130772025; + + // aapt resource value: 0x7f010056 + public const int prompt = 2130772054; + + // aapt resource value: 0x7f010060 + public const int queryHint = 2130772064; + + // aapt resource value: 0x7f010061 + public const int searchDropdownBackground = 2130772065; + + // aapt resource value: 0x7f01006a + public const int searchResultListItemHeight = 2130772074; + + // aapt resource value: 0x7f01006e + public const int searchViewAutoCompleteTextView = 2130772078; + + // aapt resource value: 0x7f010062 + public const int searchViewCloseIcon = 2130772066; + + // aapt resource value: 0x7f010066 + public const int searchViewEditQuery = 2130772070; + + // aapt resource value: 0x7f010067 + public const int searchViewEditQueryBackground = 2130772071; + + // aapt resource value: 0x7f010063 + public const int searchViewGoIcon = 2130772067; + + // aapt resource value: 0x7f010064 + public const int searchViewSearchIcon = 2130772068; + + // aapt resource value: 0x7f010068 + public const int searchViewTextField = 2130772072; + + // aapt resource value: 0x7f010069 + public const int searchViewTextFieldRight = 2130772073; + + // aapt resource value: 0x7f010065 + public const int searchViewVoiceIcon = 2130772069; + + // aapt resource value: 0x7f01001e + public const int selectableItemBackground = 2130771998; + + // aapt resource value: 0x7f01009e + public const int shadowColor = 2130772126; + + // aapt resource value: 0x7f01009f + public const int shadowRadius = 2130772127; + + // aapt resource value: 0x7f010052 + public const int showAsAction = 2130772050; + + // aapt resource value: 0x7f01005a + public const int showDividers = 2130772058; + + // aapt resource value: 0x7f01005d + public const int spinnerDropDownItemStyle = 2130772061; + + // aapt resource value: 0x7f010057 + public const int spinnerMode = 2130772055; + + // aapt resource value: 0x7f01005c + public const int spinnerStyle = 2130772060; + + // aapt resource value: 0x7f01002e + public const int subtitle = 2130772014; + + // aapt resource value: 0x7f010030 + public const int subtitleTextStyle = 2130772016; + + // aapt resource value: 0x7f0100a2 + public const int symbolColorScheme = 2130772130; + + // aapt resource value: 0x7f010072 + public const int textAllCaps = 2130772082; + + // aapt resource value: 0x7f010019 + public const int textAppearanceLargePopupMenu = 2130771993; + + // aapt resource value: 0x7f010028 + public const int textAppearanceListItem = 2130772008; + + // aapt resource value: 0x7f010029 + public const int textAppearanceListItemSmall = 2130772009; + + // aapt resource value: 0x7f01006c + public const int textAppearanceSearchResultSubtitle = 2130772076; + + // aapt resource value: 0x7f01006b + public const int textAppearanceSearchResultTitle = 2130772075; + + // aapt resource value: 0x7f01001a + public const int textAppearanceSmallPopupMenu = 2130771994; + + // aapt resource value: 0x7f01006d + public const int textColorSearchUrl = 2130772077; + + // aapt resource value: 0x7f010084 + public const int theme = 2130772100; + + // aapt resource value: 0x7f01002a + public const int title = 2130772010; + + // aapt resource value: 0x7f01002f + public const int titleTextStyle = 2130772015; + + // aapt resource value: 0x7f01007c + public const int uiCompass = 2130772092; + + // aapt resource value: 0x7f01007d + public const int uiRotateGestures = 2130772093; + + // aapt resource value: 0x7f01007e + public const int uiScrollGestures = 2130772094; + + // aapt resource value: 0x7f01007f + public const int uiTiltGestures = 2130772095; + + // aapt resource value: 0x7f010080 + public const int uiZoomControls = 2130772096; + + // aapt resource value: 0x7f010081 + public const int uiZoomGestures = 2130772097; + + // aapt resource value: 0x7f010082 + public const int useViewLifecycle = 2130772098; + + // aapt resource value: 0x7f01009c + public const int verticalCorrection = 2130772124; + + // aapt resource value: 0x7f010005 + public const int windowActionBar = 2130771973; + + // aapt resource value: 0x7f010006 + public const int windowActionBarOverlay = 2130771974; + + // aapt resource value: 0x7f01000b + public const int windowFixedHeightMajor = 2130771979; + + // aapt resource value: 0x7f010009 + public const int windowFixedHeightMinor = 2130771977; + + // aapt resource value: 0x7f010008 + public const int windowFixedWidthMajor = 2130771976; + + // aapt resource value: 0x7f01000a + public const int windowFixedWidthMinor = 2130771978; + + // aapt resource value: 0x7f010007 + public const int windowSplitActionBar = 2130771975; + + // aapt resource value: 0x7f010083 + public const int zOrderOnTop = 2130772099; static Attribute() { @@ -406,80 +823,98 @@ namespace keepass2android public partial class Boolean { - // aapt resource value: 0x7f0a0014 - public const int CopyToClipboardNotification_default = 2131361812; + // aapt resource value: 0x7f0a001a + public const int CopyToClipboardNotification_default = 2131361818; - // aapt resource value: 0x7f0a0016 - public const int OpenKp2aKeyboardAutomatically_default = 2131361814; + // aapt resource value: 0x7f0a001c + public const int OpenKp2aKeyboardAutomatically_default = 2131361820; + + // aapt resource value: 0x7f0a001e + public const int PreloadDatabaseEnabled_default = 2131361822; + + // aapt resource value: 0x7f0a0019 + public const int RememberRecentFiles_default = 2131361817; // aapt resource value: 0x7f0a0018 - public const int PreloadDatabaseEnabled_default = 2131361816; + public const int ShowGroupnameInSearchResult_default = 2131361816; - // aapt resource value: 0x7f0a0013 - public const int RememberRecentFiles_default = 2131361811; - - // aapt resource value: 0x7f0a0012 - public const int ShowGroupnameInSearchResult_default = 2131361810; + // aapt resource value: 0x7f0a001d + public const int ShowUnlockedNotification_default = 2131361821; // aapt resource value: 0x7f0a0017 - public const int ShowUnlockedNotification_default = 2131361815; + public const int ShowUsernameInList_default = 2131361815; - // aapt resource value: 0x7f0a0011 - public const int ShowUsernameInList_default = 2131361809; + // aapt resource value: 0x7f0a0016 + public const int TanExpiresOnUse_default = 2131361814; - // aapt resource value: 0x7f0a0010 - public const int TanExpiresOnUse_default = 2131361808; - - // aapt resource value: 0x7f0a0015 - public const int UseKp2aKeyboard_default = 2131361813; - - // aapt resource value: 0x7f0a0007 - public const int afc_is_large_screen = 2131361799; - - // aapt resource value: 0x7f0a000b - public const int afc_pkey_display_remember_last_location_def = 2131361803; - - // aapt resource value: 0x7f0a000a - public const int afc_pkey_display_show_time_for_old_days_def = 2131361802; - - // aapt resource value: 0x7f0a0009 - public const int afc_pkey_display_show_time_for_old_days_this_year_def = 2131361801; - - // aapt resource value: 0x7f0a0008 - public const int afc_pkey_display_sort_ascending_def = 2131361800; - - // aapt resource value: 0x7f0a0006 - public const int config_long_press_comma_for_settings_enabled = 2131361798; - - // aapt resource value: 0x7f0a0003 - public const int config_swipeDisambiguation = 2131361795; - - // aapt resource value: 0x7f0a0004 - public const int default_popup_preview = 2131361796; - - // aapt resource value: 0x7f0a0005 - public const int default_recorrection_enabled = 2131361797; + // aapt resource value: 0x7f0a001b + public const int UseKp2aKeyboard_default = 2131361819; // aapt resource value: 0x7f0a0000 - public const int enable_autocorrect = 2131361792; + public const int abc_action_bar_embed_tabs_pre_jb = 2131361792; // aapt resource value: 0x7f0a0001 - public const int im_is_default = 2131361793; + public const int abc_action_bar_expanded_action_views_exclusive = 2131361793; - // aapt resource value: 0x7f0a000d - public const int keyfile_default = 2131361805; + // aapt resource value: 0x7f0a0005 + public const int abc_config_actionMenuItemAllCaps = 2131361797; - // aapt resource value: 0x7f0a000c - public const int maskpass_default = 2131361804; + // aapt resource value: 0x7f0a0004 + public const int abc_config_allowActionMenuItemTextWithIcon = 2131361796; - // aapt resource value: 0x7f0a000f - public const int omitbackup_default = 2131361807; - - // aapt resource value: 0x7f0a000e - public const int sort_default = 2131361806; + // aapt resource value: 0x7f0a0003 + public const int abc_config_showMenuShortcutsWhenKeyboardPresent = 2131361795; // aapt resource value: 0x7f0a0002 - public const int voice_input_default = 2131361794; + public const int abc_split_action_bar_is_narrow = 2131361794; + + // aapt resource value: 0x7f0a000d + public const int afc_is_large_screen = 2131361805; + + // aapt resource value: 0x7f0a0011 + public const int afc_pkey_display_remember_last_location_def = 2131361809; + + // aapt resource value: 0x7f0a0010 + public const int afc_pkey_display_show_time_for_old_days_def = 2131361808; + + // aapt resource value: 0x7f0a000f + public const int afc_pkey_display_show_time_for_old_days_this_year_def = 2131361807; + + // aapt resource value: 0x7f0a000e + public const int afc_pkey_display_sort_ascending_def = 2131361806; + + // aapt resource value: 0x7f0a000c + public const int config_long_press_comma_for_settings_enabled = 2131361804; + + // aapt resource value: 0x7f0a0009 + public const int config_swipeDisambiguation = 2131361801; + + // aapt resource value: 0x7f0a000a + public const int default_popup_preview = 2131361802; + + // aapt resource value: 0x7f0a000b + public const int default_recorrection_enabled = 2131361803; + + // aapt resource value: 0x7f0a0006 + public const int enable_autocorrect = 2131361798; + + // aapt resource value: 0x7f0a0007 + public const int im_is_default = 2131361799; + + // aapt resource value: 0x7f0a0013 + public const int keyfile_default = 2131361811; + + // aapt resource value: 0x7f0a0012 + public const int maskpass_default = 2131361810; + + // aapt resource value: 0x7f0a0015 + public const int omitbackup_default = 2131361813; + + // aapt resource value: 0x7f0a0014 + public const int sort_default = 2131361812; + + // aapt resource value: 0x7f0a0008 + public const int voice_input_default = 2131361800; static Boolean() { @@ -494,116 +929,173 @@ namespace keepass2android public partial class Color { - // aapt resource value: 0x7f070015 - public const int afc_border_line_dark = 2131165205; + // aapt resource value: 0x7f0b0033 + public const int abc_search_url_text_holo = 2131427379; - // aapt resource value: 0x7f070018 - public const int afc_list_group_view_background_dark = 2131165208; + // aapt resource value: 0x7f0b0000 + public const int abc_search_url_text_normal = 2131427328; - // aapt resource value: 0x7f070019 - public const int afc_list_group_view_background_light = 2131165209; + // aapt resource value: 0x7f0b0002 + public const int abc_search_url_text_pressed = 2131427330; - // aapt resource value: 0x7f070016 - public const int afc_listview_cache_hint_dark = 2131165206; + // aapt resource value: 0x7f0b0001 + public const int abc_search_url_text_selected = 2131427329; - // aapt resource value: 0x7f070017 - public const int afc_listview_cache_hint_light = 2131165207; + // aapt resource value: 0x7f0b0025 + public const int afc_border_line_dark = 2131427365; - // aapt resource value: 0x7f07001a - public const int blue_highlight = 2131165210; + // aapt resource value: 0x7f0b0028 + public const int afc_list_group_view_background_dark = 2131427368; - // aapt resource value: 0x7f07000a - public const int candidate_normal = 2131165194; + // aapt resource value: 0x7f0b0029 + public const int afc_list_group_view_background_light = 2131427369; - // aapt resource value: 0x7f07000c - public const int candidate_other = 2131165196; + // aapt resource value: 0x7f0b0026 + public const int afc_listview_cache_hint_dark = 2131427366; - // aapt resource value: 0x7f07000b - public const int candidate_recommended = 2131165195; + // aapt resource value: 0x7f0b0027 + public const int afc_listview_cache_hint_light = 2131427367; - // aapt resource value: 0x7f070009 - public const int common_action_bar_splitter = 2131165193; + // aapt resource value: 0x7f0b002a + public const int blue_highlight = 2131427370; - // aapt resource value: 0x7f070000 - public const int common_signin_btn_dark_text_default = 2131165184; + // aapt resource value: 0x7f0b001a + public const int candidate_normal = 2131427354; - // aapt resource value: 0x7f070002 - public const int common_signin_btn_dark_text_disabled = 2131165186; + // aapt resource value: 0x7f0b001c + public const int candidate_other = 2131427356; - // aapt resource value: 0x7f070003 - public const int common_signin_btn_dark_text_focused = 2131165187; + // aapt resource value: 0x7f0b001b + public const int candidate_recommended = 2131427355; - // aapt resource value: 0x7f070001 - public const int common_signin_btn_dark_text_pressed = 2131165185; + // aapt resource value: 0x7f0b000c + public const int common_action_bar_splitter = 2131427340; - // aapt resource value: 0x7f070008 - public const int common_signin_btn_default_background = 2131165192; + // aapt resource value: 0x7f0b0003 + public const int common_signin_btn_dark_text_default = 2131427331; - // aapt resource value: 0x7f070004 - public const int common_signin_btn_light_text_default = 2131165188; + // aapt resource value: 0x7f0b0005 + public const int common_signin_btn_dark_text_disabled = 2131427333; - // aapt resource value: 0x7f070006 - public const int common_signin_btn_light_text_disabled = 2131165190; + // aapt resource value: 0x7f0b0006 + public const int common_signin_btn_dark_text_focused = 2131427334; - // aapt resource value: 0x7f070007 - public const int common_signin_btn_light_text_focused = 2131165191; + // aapt resource value: 0x7f0b0004 + public const int common_signin_btn_dark_text_pressed = 2131427332; - // aapt resource value: 0x7f070005 - public const int common_signin_btn_light_text_pressed = 2131165189; + // aapt resource value: 0x7f0b000b + public const int common_signin_btn_default_background = 2131427339; - // aapt resource value: 0x7f070023 - public const int common_signin_btn_text_dark = 2131165219; + // aapt resource value: 0x7f0b0007 + public const int common_signin_btn_light_text_default = 2131427335; - // aapt resource value: 0x7f070024 - public const int common_signin_btn_text_light = 2131165220; + // aapt resource value: 0x7f0b0009 + public const int common_signin_btn_light_text_disabled = 2131427337; - // aapt resource value: 0x7f07001f - public const int dark_gray = 2131165215; + // aapt resource value: 0x7f0b000a + public const int common_signin_btn_light_text_focused = 2131427338; - // aapt resource value: 0x7f070020 - public const int element_being_moved = 2131165216; + // aapt resource value: 0x7f0b0008 + public const int common_signin_btn_light_text_pressed = 2131427336; - // aapt resource value: 0x7f070021 - public const int emphasis = 2131165217; + // aapt resource value: 0x7f0b0034 + public const int common_signin_btn_text_dark = 2131427380; - // aapt resource value: 0x7f070022 - public const int emphasis2 = 2131165218; + // aapt resource value: 0x7f0b0035 + public const int common_signin_btn_text_light = 2131427381; - // aapt resource value: 0x7f07001b - public const int group = 2131165211; + // aapt resource value: 0x7f0b002f + public const int dark_gray = 2131427375; - // aapt resource value: 0x7f07001c - public const int icon_background = 2131165212; + // aapt resource value: 0x7f0b0030 + public const int element_being_moved = 2131427376; - // aapt resource value: 0x7f07001d - public const int icon_text = 2131165213; + // aapt resource value: 0x7f0b0031 + public const int emphasis = 2131427377; - // aapt resource value: 0x7f07000f - public const int latinkeyboard_bar_language_shadow_black = 2131165199; + // aapt resource value: 0x7f0b0032 + public const int emphasis2 = 2131427378; - // aapt resource value: 0x7f07000e - public const int latinkeyboard_bar_language_shadow_white = 2131165198; + // aapt resource value: 0x7f0b002b + public const int group = 2131427371; - // aapt resource value: 0x7f070010 - public const int latinkeyboard_bar_language_text = 2131165200; + // aapt resource value: 0x7f0b002c + public const int icon_background = 2131427372; - // aapt resource value: 0x7f070011 - public const int latinkeyboard_extension_background = 2131165201; + // aapt resource value: 0x7f0b002d + public const int icon_text = 2131427373; - // aapt resource value: 0x7f070012 - public const int latinkeyboard_feedback_language_text = 2131165202; + // aapt resource value: 0x7f0b001f + public const int latinkeyboard_bar_language_shadow_black = 2131427359; - // aapt resource value: 0x7f070014 - public const int latinkeyboard_key_color_black = 2131165204; + // aapt resource value: 0x7f0b001e + public const int latinkeyboard_bar_language_shadow_white = 2131427358; - // aapt resource value: 0x7f070013 - public const int latinkeyboard_key_color_white = 2131165203; + // aapt resource value: 0x7f0b0020 + public const int latinkeyboard_bar_language_text = 2131427360; - // aapt resource value: 0x7f07000d - public const int latinkeyboard_transparent = 2131165197; + // aapt resource value: 0x7f0b0021 + public const int latinkeyboard_extension_background = 2131427361; - // aapt resource value: 0x7f07001e - public const int light_gray = 2131165214; + // aapt resource value: 0x7f0b0022 + public const int latinkeyboard_feedback_language_text = 2131427362; + + // aapt resource value: 0x7f0b0024 + public const int latinkeyboard_key_color_black = 2131427364; + + // aapt resource value: 0x7f0b0023 + public const int latinkeyboard_key_color_white = 2131427363; + + // aapt resource value: 0x7f0b001d + public const int latinkeyboard_transparent = 2131427357; + + // aapt resource value: 0x7f0b002e + public const int light_gray = 2131427374; + + // aapt resource value: 0x7f0b0012 + public const int wallet_bright_foreground_disabled_holo_light = 2131427346; + + // aapt resource value: 0x7f0b000d + public const int wallet_bright_foreground_holo_dark = 2131427341; + + // aapt resource value: 0x7f0b0013 + public const int wallet_bright_foreground_holo_light = 2131427347; + + // aapt resource value: 0x7f0b000f + public const int wallet_dim_foreground_disabled_holo_dark = 2131427343; + + // aapt resource value: 0x7f0b000e + public const int wallet_dim_foreground_holo_dark = 2131427342; + + // aapt resource value: 0x7f0b0011 + public const int wallet_dim_foreground_inverse_disabled_holo_dark = 2131427345; + + // aapt resource value: 0x7f0b0010 + public const int wallet_dim_foreground_inverse_holo_dark = 2131427344; + + // aapt resource value: 0x7f0b0017 + public const int wallet_highlighted_text_holo_dark = 2131427351; + + // aapt resource value: 0x7f0b0016 + public const int wallet_highlighted_text_holo_light = 2131427350; + + // aapt resource value: 0x7f0b0015 + public const int wallet_hint_foreground_holo_dark = 2131427349; + + // aapt resource value: 0x7f0b0014 + public const int wallet_hint_foreground_holo_light = 2131427348; + + // aapt resource value: 0x7f0b0018 + public const int wallet_holo_blue_light = 2131427352; + + // aapt resource value: 0x7f0b0019 + public const int wallet_link_text_light = 2131427353; + + // aapt resource value: 0x7f0b0036 + public const int wallet_primary_text_holo_light = 2131427382; + + // aapt resource value: 0x7f0b0037 + public const int wallet_secondary_text_holo_dark = 2131427383; static Color() { @@ -618,140 +1110,203 @@ namespace keepass2android public partial class Dimension { - // aapt resource value: 0x7f0c002b - public const int activity_horizontal_margin = 2131492907; - - // aapt resource value: 0x7f0c002c - public const int activity_vertical_margin = 2131492908; - - // aapt resource value: 0x7f0c0015 - public const int afc_10dp = 2131492885; - - // aapt resource value: 0x7f0c0018 - public const int afc_10sp = 2131492888; - - // aapt resource value: 0x7f0c0014 - public const int afc_15dp = 2131492884; - - // aapt resource value: 0x7f0c0017 - public const int afc_2dp = 2131492887; - - // aapt resource value: 0x7f0c001a - public const int afc_2sp = 2131492890; - - // aapt resource value: 0x7f0c0013 - public const int afc_30dp = 2131492883; - - // aapt resource value: 0x7f0c0016 - public const int afc_5dp = 2131492886; - - // aapt resource value: 0x7f0c0019 - public const int afc_5sp = 2131492889; - - // aapt resource value: 0x7f0c001b - public const int afc_button_location_max_width = 2131492891; - - // aapt resource value: 0x7f0c001c - public const int afc_button_location_min_width = 2131492892; - - // aapt resource value: 0x7f0c0023 - public const int afc_button_navigators_min_height = 2131492899; - - // aapt resource value: 0x7f0c0024 - public const int afc_button_ok_saveas_size = 2131492900; - - // aapt resource value: 0x7f0c001d - public const int afc_context_menu_item_padding = 2131492893; - - // aapt resource value: 0x7f0c001e - public const int afc_context_menu_item_padding_left = 2131492894; - - // aapt resource value: 0x7f0c001f - public const int afc_context_menu_width = 2131492895; - - // aapt resource value: 0x7f0c0026 - public const int afc_file_icon_size = 2131492902; - - // aapt resource value: 0x7f0c0020 - public const int afc_single_button_min_width = 2131492896; - - // aapt resource value: 0x7f0c0025 - public const int afc_thumbnail_size = 2131492901; - - // aapt resource value: 0x7f0c0021 - public const int afc_viewgroup_button_locations_bottom_divider_height = 2131492897; - - // aapt resource value: 0x7f0c0022 - public const int afc_widget_search_view_button_clear_size = 2131492898; - - // aapt resource value: 0x7f0c0029 - public const int aosp_dialog_fixed_height_major = 2131492905; - - // aapt resource value: 0x7f0c002a - public const int aosp_dialog_fixed_height_minor = 2131492906; - - // aapt resource value: 0x7f0c0027 - public const int aosp_dialog_fixed_width_major = 2131492903; - - // aapt resource value: 0x7f0c0028 - public const int aosp_dialog_fixed_width_minor = 2131492904; - - // aapt resource value: 0x7f0c0004 - public const int bubble_pointer_offset = 2131492868; - - // aapt resource value: 0x7f0c0012 - public const int candidate_min_touchable_width = 2131492882; - - // aapt resource value: 0x7f0c0006 - public const int candidate_strip_fading_edge_length = 2131492870; - - // aapt resource value: 0x7f0c0005 - public const int candidate_strip_height = 2131492869; - - // aapt resource value: 0x7f0c0001 - public const int key_bottom_gap = 2131492865; - - // aapt resource value: 0x7f0c0000 - public const int key_height = 2131492864; - - // aapt resource value: 0x7f0c0010 - public const int key_hysteresis_distance = 2131492880; - - // aapt resource value: 0x7f0c000a - public const int key_label_text_size = 2131492874; - - // aapt resource value: 0x7f0c000d - public const int key_preview_height = 2131492877; - - // aapt resource value: 0x7f0c000c - public const int key_preview_offset = 2131492876; - - // aapt resource value: 0x7f0c000b - public const int key_preview_text_size_large = 2131492875; - - // aapt resource value: 0x7f0c0009 - public const int key_text_size = 2131492873; + // aapt resource value: 0x7f0c0002 + public const int abc_action_bar_default_height = 2131492866; // aapt resource value: 0x7f0c0003 - public const int keyboard_bottom_padding = 2131492867; + public const int abc_action_bar_icon_vertical_padding = 2131492867; - // aapt resource value: 0x7f0c0011 - public const int keyboard_vertical_correction = 2131492881; + // aapt resource value: 0x7f0c000a + public const int abc_action_bar_progress_bar_size = 2131492874; - // aapt resource value: 0x7f0c0008 - public const int max_height_for_fullscreen = 2131492872; + // aapt resource value: 0x7f0c0009 + public const int abc_action_bar_stacked_max_height = 2131492873; - // aapt resource value: 0x7f0c000e - public const int mini_keyboard_slide_allowance = 2131492878; - - // aapt resource value: 0x7f0c000f - public const int mini_keyboard_vertical_correction = 2131492879; - - // aapt resource value: 0x7f0c0002 - public const int popup_key_height = 2131492866; + // aapt resource value: 0x7f0c0001 + public const int abc_action_bar_stacked_tab_max_width = 2131492865; // aapt resource value: 0x7f0c0007 - public const int spacebar_vertical_correction = 2131492871; + public const int abc_action_bar_subtitle_bottom_margin = 2131492871; + + // aapt resource value: 0x7f0c0005 + public const int abc_action_bar_subtitle_text_size = 2131492869; + + // aapt resource value: 0x7f0c0006 + public const int abc_action_bar_subtitle_top_margin = 2131492870; + + // aapt resource value: 0x7f0c0004 + public const int abc_action_bar_title_text_size = 2131492868; + + // aapt resource value: 0x7f0c0008 + public const int abc_action_button_min_width = 2131492872; + + // aapt resource value: 0x7f0c0000 + public const int abc_config_prefDialogWidth = 2131492864; + + // aapt resource value: 0x7f0c0010 + public const int abc_dropdownitem_icon_width = 2131492880; + + // aapt resource value: 0x7f0c000e + public const int abc_dropdownitem_text_padding_left = 2131492878; + + // aapt resource value: 0x7f0c000f + public const int abc_dropdownitem_text_padding_right = 2131492879; + + // aapt resource value: 0x7f0c000b + public const int abc_panel_menu_list_width = 2131492875; + + // aapt resource value: 0x7f0c000d + public const int abc_search_view_preferred_width = 2131492877; + + // aapt resource value: 0x7f0c000c + public const int abc_search_view_text_min_width = 2131492876; + + // aapt resource value: 0x7f0c0040 + public const int activity_horizontal_margin = 2131492928; + + // aapt resource value: 0x7f0c0041 + public const int activity_vertical_margin = 2131492929; + + // aapt resource value: 0x7f0c002a + public const int afc_10dp = 2131492906; + + // aapt resource value: 0x7f0c002d + public const int afc_10sp = 2131492909; + + // aapt resource value: 0x7f0c0029 + public const int afc_15dp = 2131492905; + + // aapt resource value: 0x7f0c002c + public const int afc_2dp = 2131492908; + + // aapt resource value: 0x7f0c002f + public const int afc_2sp = 2131492911; + + // aapt resource value: 0x7f0c0028 + public const int afc_30dp = 2131492904; + + // aapt resource value: 0x7f0c002b + public const int afc_5dp = 2131492907; + + // aapt resource value: 0x7f0c002e + public const int afc_5sp = 2131492910; + + // aapt resource value: 0x7f0c0030 + public const int afc_button_location_max_width = 2131492912; + + // aapt resource value: 0x7f0c0031 + public const int afc_button_location_min_width = 2131492913; + + // aapt resource value: 0x7f0c0038 + public const int afc_button_navigators_min_height = 2131492920; + + // aapt resource value: 0x7f0c0039 + public const int afc_button_ok_saveas_size = 2131492921; + + // aapt resource value: 0x7f0c0032 + public const int afc_context_menu_item_padding = 2131492914; + + // aapt resource value: 0x7f0c0033 + public const int afc_context_menu_item_padding_left = 2131492915; + + // aapt resource value: 0x7f0c0034 + public const int afc_context_menu_width = 2131492916; + + // aapt resource value: 0x7f0c003b + public const int afc_file_icon_size = 2131492923; + + // aapt resource value: 0x7f0c0035 + public const int afc_single_button_min_width = 2131492917; + + // aapt resource value: 0x7f0c003a + public const int afc_thumbnail_size = 2131492922; + + // aapt resource value: 0x7f0c0036 + public const int afc_viewgroup_button_locations_bottom_divider_height = 2131492918; + + // aapt resource value: 0x7f0c0037 + public const int afc_widget_search_view_button_clear_size = 2131492919; + + // aapt resource value: 0x7f0c003e + public const int aosp_dialog_fixed_height_major = 2131492926; + + // aapt resource value: 0x7f0c003f + public const int aosp_dialog_fixed_height_minor = 2131492927; + + // aapt resource value: 0x7f0c003c + public const int aosp_dialog_fixed_width_major = 2131492924; + + // aapt resource value: 0x7f0c003d + public const int aosp_dialog_fixed_width_minor = 2131492925; + + // aapt resource value: 0x7f0c0019 + public const int bubble_pointer_offset = 2131492889; + + // aapt resource value: 0x7f0c0027 + public const int candidate_min_touchable_width = 2131492903; + + // aapt resource value: 0x7f0c001b + public const int candidate_strip_fading_edge_length = 2131492891; + + // aapt resource value: 0x7f0c001a + public const int candidate_strip_height = 2131492890; + + // aapt resource value: 0x7f0c0013 + public const int dialog_fixed_height_major = 2131492883; + + // aapt resource value: 0x7f0c0014 + public const int dialog_fixed_height_minor = 2131492884; + + // aapt resource value: 0x7f0c0011 + public const int dialog_fixed_width_major = 2131492881; + + // aapt resource value: 0x7f0c0012 + public const int dialog_fixed_width_minor = 2131492882; + + // aapt resource value: 0x7f0c0016 + public const int key_bottom_gap = 2131492886; + + // aapt resource value: 0x7f0c0015 + public const int key_height = 2131492885; + + // aapt resource value: 0x7f0c0025 + public const int key_hysteresis_distance = 2131492901; + + // aapt resource value: 0x7f0c001f + public const int key_label_text_size = 2131492895; + + // aapt resource value: 0x7f0c0022 + public const int key_preview_height = 2131492898; + + // aapt resource value: 0x7f0c0021 + public const int key_preview_offset = 2131492897; + + // aapt resource value: 0x7f0c0020 + public const int key_preview_text_size_large = 2131492896; + + // aapt resource value: 0x7f0c001e + public const int key_text_size = 2131492894; + + // aapt resource value: 0x7f0c0018 + public const int keyboard_bottom_padding = 2131492888; + + // aapt resource value: 0x7f0c0026 + public const int keyboard_vertical_correction = 2131492902; + + // aapt resource value: 0x7f0c001d + public const int max_height_for_fullscreen = 2131492893; + + // aapt resource value: 0x7f0c0023 + public const int mini_keyboard_slide_allowance = 2131492899; + + // aapt resource value: 0x7f0c0024 + public const int mini_keyboard_vertical_correction = 2131492900; + + // aapt resource value: 0x7f0c0017 + public const int popup_key_height = 2131492887; + + // aapt resource value: 0x7f0c001c + public const int spacebar_vertical_correction = 2131492892; static Dimension() { @@ -767,1198 +1322,1528 @@ namespace keepass2android { // aapt resource value: 0x7f020000 - public const int afc_badge_file_provider_localfile_dark = 2130837504; + public const int abc_ab_bottom_solid_dark_holo = 2130837504; // aapt resource value: 0x7f020001 - public const int afc_badge_file_provider_localfile_light = 2130837505; + public const int abc_ab_bottom_solid_light_holo = 2130837505; // aapt resource value: 0x7f020002 - public const int afc_bookmarks_dark = 2130837506; + public const int abc_ab_bottom_transparent_dark_holo = 2130837506; // aapt resource value: 0x7f020003 - public const int afc_button_home_dark = 2130837507; + public const int abc_ab_bottom_transparent_light_holo = 2130837507; // aapt resource value: 0x7f020004 - public const int afc_button_home_light = 2130837508; + public const int abc_ab_share_pack_holo_dark = 2130837508; // aapt resource value: 0x7f020005 - public const int afc_button_location_dark_pressed = 2130837509; + public const int abc_ab_share_pack_holo_light = 2130837509; // aapt resource value: 0x7f020006 - public const int afc_button_location_light_pressed = 2130837510; + public const int abc_ab_solid_dark_holo = 2130837510; // aapt resource value: 0x7f020007 - public const int afc_context_menu_item_divider = 2130837511; + public const int abc_ab_solid_light_holo = 2130837511; // aapt resource value: 0x7f020008 - public const int afc_expandable_listview_group_divider = 2130837512; + public const int abc_ab_stacked_solid_dark_holo = 2130837512; // aapt resource value: 0x7f020009 - public const int afc_file = 2130837513; + public const int abc_ab_stacked_solid_light_holo = 2130837513; // aapt resource value: 0x7f02000a - public const int afc_file_apk = 2130837514; + public const int abc_ab_stacked_transparent_dark_holo = 2130837514; // aapt resource value: 0x7f02000b - public const int afc_file_audio = 2130837515; + public const int abc_ab_stacked_transparent_light_holo = 2130837515; // aapt resource value: 0x7f02000c - public const int afc_file_compressed = 2130837516; + public const int abc_ab_transparent_dark_holo = 2130837516; // aapt resource value: 0x7f02000d - public const int afc_file_image = 2130837517; + public const int abc_ab_transparent_light_holo = 2130837517; // aapt resource value: 0x7f02000e - public const int afc_file_kp2a = 2130837518; + public const int abc_cab_background_bottom_holo_dark = 2130837518; // aapt resource value: 0x7f02000f - public const int afc_file_locked_dark = 2130837519; + public const int abc_cab_background_bottom_holo_light = 2130837519; // aapt resource value: 0x7f020010 - public const int afc_file_plain_text = 2130837520; + public const int abc_cab_background_top_holo_dark = 2130837520; // aapt resource value: 0x7f020011 - public const int afc_file_video = 2130837521; + public const int abc_cab_background_top_holo_light = 2130837521; // aapt resource value: 0x7f020012 - public const int afc_folder = 2130837522; + public const int abc_ic_ab_back_holo_dark = 2130837522; // aapt resource value: 0x7f020013 - public const int afc_ic_action_clear_dark = 2130837523; + public const int abc_ic_ab_back_holo_light = 2130837523; // aapt resource value: 0x7f020014 - public const int afc_ic_action_clear_light = 2130837524; + public const int abc_ic_cab_done_holo_dark = 2130837524; // aapt resource value: 0x7f020015 - public const int afc_ic_action_navi_left_dark = 2130837525; + public const int abc_ic_cab_done_holo_light = 2130837525; // aapt resource value: 0x7f020016 - public const int afc_ic_action_navi_left_dark_disabled = 2130837526; + public const int abc_ic_clear = 2130837526; // aapt resource value: 0x7f020017 - public const int afc_ic_action_navi_left_light = 2130837527; + public const int abc_ic_clear_disabled = 2130837527; // aapt resource value: 0x7f020018 - public const int afc_ic_action_navi_left_light_disabled = 2130837528; + public const int abc_ic_clear_holo_light = 2130837528; // aapt resource value: 0x7f020019 - public const int afc_ic_action_navi_right_dark = 2130837529; + public const int abc_ic_clear_normal = 2130837529; // aapt resource value: 0x7f02001a - public const int afc_ic_action_navi_right_dark_disabled = 2130837530; + public const int abc_ic_clear_search_api_disabled_holo_light = 2130837530; // aapt resource value: 0x7f02001b - public const int afc_ic_action_navi_right_light = 2130837531; + public const int abc_ic_clear_search_api_holo_light = 2130837531; // aapt resource value: 0x7f02001c - public const int afc_ic_action_navi_right_light_disabled = 2130837532; + public const int abc_ic_commit_search_api_holo_dark = 2130837532; // aapt resource value: 0x7f02001d - public const int afc_ic_action_search_dark = 2130837533; + public const int abc_ic_commit_search_api_holo_light = 2130837533; // aapt resource value: 0x7f02001e - public const int afc_ic_action_search_light = 2130837534; + public const int abc_ic_go = 2130837534; // aapt resource value: 0x7f02001f - public const int afc_ic_button_ok_saveas_dark = 2130837535; + public const int abc_ic_go_search_api_holo_light = 2130837535; // aapt resource value: 0x7f020020 - public const int afc_ic_button_ok_saveas_dark_focused = 2130837536; + public const int abc_ic_menu_moreoverflow_normal_holo_dark = 2130837536; // aapt resource value: 0x7f020021 - public const int afc_ic_button_ok_saveas_dark_pressed = 2130837537; + public const int abc_ic_menu_moreoverflow_normal_holo_light = 2130837537; // aapt resource value: 0x7f020022 - public const int afc_ic_button_ok_saveas_light = 2130837538; + public const int abc_ic_menu_share_holo_dark = 2130837538; // aapt resource value: 0x7f020023 - public const int afc_ic_button_ok_saveas_light_focused = 2130837539; + public const int abc_ic_menu_share_holo_light = 2130837539; // aapt resource value: 0x7f020024 - public const int afc_ic_button_ok_saveas_light_pressed = 2130837540; + public const int abc_ic_search = 2130837540; // aapt resource value: 0x7f020025 - public const int afc_ic_menu_gridview = 2130837541; + public const int abc_ic_search_api_holo_light = 2130837541; // aapt resource value: 0x7f020026 - public const int afc_ic_menu_gridview_dark = 2130837542; + public const int abc_ic_voice_search = 2130837542; // aapt resource value: 0x7f020027 - public const int afc_ic_menu_gridview_light = 2130837543; + public const int abc_ic_voice_search_api_holo_light = 2130837543; // aapt resource value: 0x7f020028 - public const int afc_ic_menu_home = 2130837544; + public const int abc_item_background_holo_dark = 2130837544; // aapt resource value: 0x7f020029 - public const int afc_ic_menu_home_dark = 2130837545; + public const int abc_item_background_holo_light = 2130837545; // aapt resource value: 0x7f02002a - public const int afc_ic_menu_home_light = 2130837546; + public const int abc_list_divider_holo_dark = 2130837546; // aapt resource value: 0x7f02002b - public const int afc_ic_menu_listview = 2130837547; + public const int abc_list_divider_holo_light = 2130837547; // aapt resource value: 0x7f02002c - public const int afc_ic_menu_listview_dark = 2130837548; + public const int abc_list_focused_holo = 2130837548; // aapt resource value: 0x7f02002d - public const int afc_ic_menu_listview_light = 2130837549; + public const int abc_list_longpressed_holo = 2130837549; // aapt resource value: 0x7f02002e - public const int afc_ic_menu_sort_by_date_asc = 2130837550; + public const int abc_list_pressed_holo_dark = 2130837550; // aapt resource value: 0x7f02002f - public const int afc_ic_menu_sort_by_date_asc_dark = 2130837551; + public const int abc_list_pressed_holo_light = 2130837551; // aapt resource value: 0x7f020030 - public const int afc_ic_menu_sort_by_date_asc_light = 2130837552; + public const int abc_list_selector_background_transition_holo_dark = 2130837552; // aapt resource value: 0x7f020031 - public const int afc_ic_menu_sort_by_date_desc = 2130837553; + public const int abc_list_selector_background_transition_holo_light = 2130837553; // aapt resource value: 0x7f020032 - public const int afc_ic_menu_sort_by_date_desc_dark = 2130837554; + public const int abc_list_selector_disabled_holo_dark = 2130837554; // aapt resource value: 0x7f020033 - public const int afc_ic_menu_sort_by_date_desc_light = 2130837555; + public const int abc_list_selector_disabled_holo_light = 2130837555; // aapt resource value: 0x7f020034 - public const int afc_ic_menu_sort_by_name_asc = 2130837556; + public const int abc_list_selector_holo_dark = 2130837556; // aapt resource value: 0x7f020035 - public const int afc_ic_menu_sort_by_name_asc_dark = 2130837557; + public const int abc_list_selector_holo_light = 2130837557; // aapt resource value: 0x7f020036 - public const int afc_ic_menu_sort_by_name_asc_light = 2130837558; + public const int abc_menu_dropdown_panel_holo_dark = 2130837558; // aapt resource value: 0x7f020037 - public const int afc_ic_menu_sort_by_name_desc = 2130837559; + public const int abc_menu_dropdown_panel_holo_light = 2130837559; // aapt resource value: 0x7f020038 - public const int afc_ic_menu_sort_by_name_desc_dark = 2130837560; + public const int abc_menu_hardkey_panel_holo_dark = 2130837560; // aapt resource value: 0x7f020039 - public const int afc_ic_menu_sort_by_name_desc_light = 2130837561; + public const int abc_menu_hardkey_panel_holo_light = 2130837561; // aapt resource value: 0x7f02003a - public const int afc_ic_menu_sort_by_size_asc = 2130837562; + public const int abc_search_dropdown_dark = 2130837562; // aapt resource value: 0x7f02003b - public const int afc_ic_menu_sort_by_size_asc_dark = 2130837563; + public const int abc_search_dropdown_light = 2130837563; // aapt resource value: 0x7f02003c - public const int afc_ic_menu_sort_by_size_asc_light = 2130837564; + public const int abc_spinner_ab_default_holo_dark = 2130837564; // aapt resource value: 0x7f02003d - public const int afc_ic_menu_sort_by_size_desc = 2130837565; + public const int abc_spinner_ab_default_holo_light = 2130837565; // aapt resource value: 0x7f02003e - public const int afc_ic_menu_sort_by_size_desc_dark = 2130837566; + public const int abc_spinner_ab_disabled_holo_dark = 2130837566; // aapt resource value: 0x7f02003f - public const int afc_ic_menu_sort_by_size_desc_light = 2130837567; + public const int abc_spinner_ab_disabled_holo_light = 2130837567; // aapt resource value: 0x7f020040 - public const int afc_image_button_dark_focused = 2130837568; + public const int abc_spinner_ab_focused_holo_dark = 2130837568; // aapt resource value: 0x7f020041 - public const int afc_image_button_dark_pressed = 2130837569; + public const int abc_spinner_ab_focused_holo_light = 2130837569; // aapt resource value: 0x7f020042 - public const int afc_image_button_light_focused = 2130837570; + public const int abc_spinner_ab_holo_dark = 2130837570; // aapt resource value: 0x7f020043 - public const int afc_image_button_light_pressed = 2130837571; + public const int abc_spinner_ab_holo_light = 2130837571; // aapt resource value: 0x7f020044 - public const int afc_main_button_navi_left_dark = 2130837572; + public const int abc_spinner_ab_pressed_holo_dark = 2130837572; // aapt resource value: 0x7f020045 - public const int afc_main_button_navi_left_disabled_dark = 2130837573; + public const int abc_spinner_ab_pressed_holo_light = 2130837573; // aapt resource value: 0x7f020046 - public const int afc_main_button_navi_left_disabled_light = 2130837574; + public const int abc_tab_indicator_ab_holo = 2130837574; // aapt resource value: 0x7f020047 - public const int afc_main_button_navi_left_light = 2130837575; + public const int abc_tab_selected_focused_holo = 2130837575; // aapt resource value: 0x7f020048 - public const int afc_main_button_navi_left_pressed_dark = 2130837576; + public const int abc_tab_selected_holo = 2130837576; // aapt resource value: 0x7f020049 - public const int afc_main_button_navi_left_pressed_light = 2130837577; + public const int abc_tab_selected_pressed_holo = 2130837577; // aapt resource value: 0x7f02004a - public const int afc_main_button_navi_right_dark = 2130837578; + public const int abc_tab_unselected_pressed_holo = 2130837578; // aapt resource value: 0x7f02004b - public const int afc_main_button_navi_right_disabled_dark = 2130837579; + public const int abc_textfield_search_default_holo_dark = 2130837579; // aapt resource value: 0x7f02004c - public const int afc_main_button_navi_right_disabled_light = 2130837580; + public const int abc_textfield_search_default_holo_light = 2130837580; // aapt resource value: 0x7f02004d - public const int afc_main_button_navi_right_light = 2130837581; + public const int abc_textfield_search_right_default_holo_dark = 2130837581; // aapt resource value: 0x7f02004e - public const int afc_main_button_navi_right_pressed_dark = 2130837582; + public const int abc_textfield_search_right_default_holo_light = 2130837582; // aapt resource value: 0x7f02004f - public const int afc_main_button_navi_right_pressed_light = 2130837583; + public const int abc_textfield_search_right_selected_holo_dark = 2130837583; // aapt resource value: 0x7f020050 - public const int afc_selector_action_navi_left_dark_foreground = 2130837584; + public const int abc_textfield_search_right_selected_holo_light = 2130837584; // aapt resource value: 0x7f020051 - public const int afc_selector_action_navi_left_light_foreground = 2130837585; + public const int abc_textfield_search_selected_holo_dark = 2130837585; // aapt resource value: 0x7f020052 - public const int afc_selector_action_navi_right_dark_foreground = 2130837586; + public const int abc_textfield_search_selected_holo_light = 2130837586; // aapt resource value: 0x7f020053 - public const int afc_selector_action_navi_right_light_foreground = 2130837587; + public const int abc_textfield_searchview_holo_dark = 2130837587; // aapt resource value: 0x7f020054 - public const int afc_selector_button_location_dark = 2130837588; + public const int abc_textfield_searchview_holo_light = 2130837588; // aapt resource value: 0x7f020055 - public const int afc_selector_button_location_light = 2130837589; + public const int abc_textfield_searchview_right_holo_dark = 2130837589; // aapt resource value: 0x7f020056 - public const int afc_selector_button_ok_saveas_dark = 2130837590; + public const int abc_textfield_searchview_right_holo_light = 2130837590; // aapt resource value: 0x7f020057 - public const int afc_selector_button_ok_saveas_light = 2130837591; + public const int afc_badge_file_provider_localfile_dark = 2130837591; // aapt resource value: 0x7f020058 - public const int afc_selector_image_button_dark = 2130837592; + public const int afc_badge_file_provider_localfile_light = 2130837592; // aapt resource value: 0x7f020059 - public const int afc_selector_image_button_light = 2130837593; + public const int afc_bookmarks_dark = 2130837593; // aapt resource value: 0x7f02005a - public const int afc_selector_main_button_navi_left_dark = 2130837594; + public const int afc_button_home_dark = 2130837594; // aapt resource value: 0x7f02005b - public const int afc_selector_main_button_navi_left_light = 2130837595; + public const int afc_button_home_light = 2130837595; // aapt resource value: 0x7f02005c - public const int afc_selector_main_button_navi_right_dark = 2130837596; + public const int afc_button_location_dark_pressed = 2130837596; // aapt resource value: 0x7f02005d - public const int afc_selector_main_button_navi_right_light = 2130837597; + public const int afc_button_location_light_pressed = 2130837597; // aapt resource value: 0x7f02005e - public const int afc_view_locations_divider_dark = 2130837598; + public const int afc_context_menu_item_divider = 2130837598; // aapt resource value: 0x7f02005f - public const int aosp_background_holo_dark = 2130837599; + public const int afc_expandable_listview_group_divider = 2130837599; // aapt resource value: 0x7f020060 - public const int aosp_background_holo_light = 2130837600; + public const int afc_file = 2130837600; // aapt resource value: 0x7f020061 - public const int aosp_dialog_full_holo_dark = 2130837601; + public const int afc_file_apk = 2130837601; // aapt resource value: 0x7f020062 - public const int aosp_dialog_full_holo_light = 2130837602; + public const int afc_file_audio = 2130837602; // aapt resource value: 0x7f020063 - public const int BlueButton = 2130837603; + public const int afc_file_compressed = 2130837603; // aapt resource value: 0x7f020064 - public const int btn_keyboard_key = 2130837604; + public const int afc_file_image = 2130837604; // aapt resource value: 0x7f020065 - public const int btn_keyboard_key2 = 2130837605; + public const int afc_file_kp2a = 2130837605; // aapt resource value: 0x7f020066 - public const int btn_keyboard_key3 = 2130837606; + public const int afc_file_locked_dark = 2130837606; // aapt resource value: 0x7f020067 - public const int btn_keyboard_key_dark_normal = 2130837607; + public const int afc_file_plain_text = 2130837607; // aapt resource value: 0x7f020068 - public const int btn_keyboard_key_dark_normal_off = 2130837608; + public const int afc_file_video = 2130837608; // aapt resource value: 0x7f020069 - public const int btn_keyboard_key_dark_normal_on = 2130837609; + public const int afc_folder = 2130837609; // aapt resource value: 0x7f02006a - public const int btn_keyboard_key_dark_pressed = 2130837610; + public const int afc_ic_action_clear_dark = 2130837610; // aapt resource value: 0x7f02006b - public const int btn_keyboard_key_dark_pressed_off = 2130837611; + public const int afc_ic_action_clear_light = 2130837611; // aapt resource value: 0x7f02006c - public const int btn_keyboard_key_dark_pressed_on = 2130837612; + public const int afc_ic_action_navi_left_dark = 2130837612; // aapt resource value: 0x7f02006d - public const int btn_keyboard_key_fulltrans = 2130837613; + public const int afc_ic_action_navi_left_dark_disabled = 2130837613; // aapt resource value: 0x7f02006e - public const int btn_keyboard_key_fulltrans_normal = 2130837614; + public const int afc_ic_action_navi_left_light = 2130837614; // aapt resource value: 0x7f02006f - public const int btn_keyboard_key_fulltrans_pressed = 2130837615; + public const int afc_ic_action_navi_left_light_disabled = 2130837615; // aapt resource value: 0x7f020070 - public const int btn_keyboard_key_gingerbread = 2130837616; + public const int afc_ic_action_navi_right_dark = 2130837616; // aapt resource value: 0x7f020071 - public const int btn_keyboard_key_gingerbread_popup = 2130837617; + public const int afc_ic_action_navi_right_dark_disabled = 2130837617; // aapt resource value: 0x7f020072 - public const int btn_keyboard_key_light_normal = 2130837618; + public const int afc_ic_action_navi_right_light = 2130837618; // aapt resource value: 0x7f020073 - public const int btn_keyboard_key_light_popup_normal = 2130837619; + public const int afc_ic_action_navi_right_light_disabled = 2130837619; // aapt resource value: 0x7f020074 - public const int btn_keyboard_key_light_popup_selected = 2130837620; + public const int afc_ic_action_search_dark = 2130837620; // aapt resource value: 0x7f020075 - public const int btn_keyboard_key_light_pressed = 2130837621; + public const int afc_ic_action_search_light = 2130837621; // aapt resource value: 0x7f020076 - public const int btn_keyboard_key_normal = 2130837622; + public const int afc_ic_button_ok_saveas_dark = 2130837622; // aapt resource value: 0x7f020077 - public const int btn_keyboard_key_normal_off = 2130837623; + public const int afc_ic_button_ok_saveas_dark_focused = 2130837623; // aapt resource value: 0x7f020078 - public const int btn_keyboard_key_normal_off_stone = 2130837624; + public const int afc_ic_button_ok_saveas_dark_pressed = 2130837624; // aapt resource value: 0x7f020079 - public const int btn_keyboard_key_normal_on = 2130837625; + public const int afc_ic_button_ok_saveas_light = 2130837625; // aapt resource value: 0x7f02007a - public const int btn_keyboard_key_normal_on_stone = 2130837626; + public const int afc_ic_button_ok_saveas_light_focused = 2130837626; // aapt resource value: 0x7f02007b - public const int btn_keyboard_key_normal_stone = 2130837627; + public const int afc_ic_button_ok_saveas_light_pressed = 2130837627; // aapt resource value: 0x7f02007c - public const int btn_keyboard_key_pressed = 2130837628; + public const int afc_ic_menu_gridview = 2130837628; // aapt resource value: 0x7f02007d - public const int btn_keyboard_key_pressed_off = 2130837629; + public const int afc_ic_menu_gridview_dark = 2130837629; // aapt resource value: 0x7f02007e - public const int btn_keyboard_key_pressed_on = 2130837630; + public const int afc_ic_menu_gridview_light = 2130837630; // aapt resource value: 0x7f02007f - public const int btn_keyboard_key_stone = 2130837631; + public const int afc_ic_menu_home = 2130837631; // aapt resource value: 0x7f020080 - public const int btn_new_group = 2130837632; + public const int afc_ic_menu_home_dark = 2130837632; // aapt resource value: 0x7f020081 - public const int btn_new_group_dark = 2130837633; + public const int afc_ic_menu_home_light = 2130837633; // aapt resource value: 0x7f020082 - public const int btn_new_group_holodark = 2130837634; + public const int afc_ic_menu_listview = 2130837634; // aapt resource value: 0x7f020083 - public const int cancel = 2130837635; + public const int afc_ic_menu_listview_dark = 2130837635; // aapt resource value: 0x7f020084 - public const int candidate_feedback_background = 2130837636; + public const int afc_ic_menu_listview_light = 2130837636; // aapt resource value: 0x7f020085 - public const int caution = 2130837637; + public const int afc_ic_menu_sort_by_date_asc = 2130837637; // aapt resource value: 0x7f020086 - public const int collections_collection = 2130837638; + public const int afc_ic_menu_sort_by_date_asc_dark = 2130837638; // aapt resource value: 0x7f020087 - public const int collections_collection_holodark = 2130837639; + public const int afc_ic_menu_sort_by_date_asc_light = 2130837639; // aapt resource value: 0x7f020088 - public const int collections_new_label = 2130837640; + public const int afc_ic_menu_sort_by_date_desc = 2130837640; // aapt resource value: 0x7f020089 - public const int collections_new_label_holodark = 2130837641; + public const int afc_ic_menu_sort_by_date_desc_dark = 2130837641; // aapt resource value: 0x7f02008a - public const int common_signin_btn_icon_dark = 2130837642; + public const int afc_ic_menu_sort_by_date_desc_light = 2130837642; // aapt resource value: 0x7f02008b - public const int common_signin_btn_icon_disabled_dark = 2130837643; + public const int afc_ic_menu_sort_by_name_asc = 2130837643; // aapt resource value: 0x7f02008c - public const int common_signin_btn_icon_disabled_focus_dark = 2130837644; + public const int afc_ic_menu_sort_by_name_asc_dark = 2130837644; // aapt resource value: 0x7f02008d - public const int common_signin_btn_icon_disabled_focus_light = 2130837645; + public const int afc_ic_menu_sort_by_name_asc_light = 2130837645; // aapt resource value: 0x7f02008e - public const int common_signin_btn_icon_disabled_light = 2130837646; + public const int afc_ic_menu_sort_by_name_desc = 2130837646; // aapt resource value: 0x7f02008f - public const int common_signin_btn_icon_focus_dark = 2130837647; + public const int afc_ic_menu_sort_by_name_desc_dark = 2130837647; // aapt resource value: 0x7f020090 - public const int common_signin_btn_icon_focus_light = 2130837648; + public const int afc_ic_menu_sort_by_name_desc_light = 2130837648; // aapt resource value: 0x7f020091 - public const int common_signin_btn_icon_light = 2130837649; + public const int afc_ic_menu_sort_by_size_asc = 2130837649; // aapt resource value: 0x7f020092 - public const int common_signin_btn_icon_normal_dark = 2130837650; + public const int afc_ic_menu_sort_by_size_asc_dark = 2130837650; // aapt resource value: 0x7f020093 - public const int common_signin_btn_icon_normal_light = 2130837651; + public const int afc_ic_menu_sort_by_size_asc_light = 2130837651; // aapt resource value: 0x7f020094 - public const int common_signin_btn_icon_pressed_dark = 2130837652; + public const int afc_ic_menu_sort_by_size_desc = 2130837652; // aapt resource value: 0x7f020095 - public const int common_signin_btn_icon_pressed_light = 2130837653; + public const int afc_ic_menu_sort_by_size_desc_dark = 2130837653; // aapt resource value: 0x7f020096 - public const int common_signin_btn_text_dark = 2130837654; + public const int afc_ic_menu_sort_by_size_desc_light = 2130837654; // aapt resource value: 0x7f020097 - public const int common_signin_btn_text_disabled_dark = 2130837655; + public const int afc_image_button_dark_focused = 2130837655; // aapt resource value: 0x7f020098 - public const int common_signin_btn_text_disabled_focus_dark = 2130837656; + public const int afc_image_button_dark_pressed = 2130837656; // aapt resource value: 0x7f020099 - public const int common_signin_btn_text_disabled_focus_light = 2130837657; + public const int afc_image_button_light_focused = 2130837657; // aapt resource value: 0x7f02009a - public const int common_signin_btn_text_disabled_light = 2130837658; + public const int afc_image_button_light_pressed = 2130837658; // aapt resource value: 0x7f02009b - public const int common_signin_btn_text_focus_dark = 2130837659; + public const int afc_main_button_navi_left_dark = 2130837659; // aapt resource value: 0x7f02009c - public const int common_signin_btn_text_focus_light = 2130837660; + public const int afc_main_button_navi_left_disabled_dark = 2130837660; // aapt resource value: 0x7f02009d - public const int common_signin_btn_text_light = 2130837661; + public const int afc_main_button_navi_left_disabled_light = 2130837661; // aapt resource value: 0x7f02009e - public const int common_signin_btn_text_normal_dark = 2130837662; + public const int afc_main_button_navi_left_light = 2130837662; // aapt resource value: 0x7f02009f - public const int common_signin_btn_text_normal_light = 2130837663; + public const int afc_main_button_navi_left_pressed_dark = 2130837663; // aapt resource value: 0x7f0200a0 - public const int common_signin_btn_text_pressed_dark = 2130837664; + public const int afc_main_button_navi_left_pressed_light = 2130837664; // aapt resource value: 0x7f0200a1 - public const int common_signin_btn_text_pressed_light = 2130837665; + public const int afc_main_button_navi_right_dark = 2130837665; // aapt resource value: 0x7f0200a2 - public const int device_access_new_account = 2130837666; + public const int afc_main_button_navi_right_disabled_dark = 2130837666; // aapt resource value: 0x7f0200a3 - public const int device_access_new_account_holodark = 2130837667; + public const int afc_main_button_navi_right_disabled_light = 2130837667; // aapt resource value: 0x7f0200a4 - public const int device_access_not_secure = 2130837668; + public const int afc_main_button_navi_right_light = 2130837668; // aapt resource value: 0x7f0200a5 - public const int dialog_bubble_step02 = 2130837669; + public const int afc_main_button_navi_right_pressed_dark = 2130837669; // aapt resource value: 0x7f0200a6 - public const int dialog_bubble_step07 = 2130837670; + public const int afc_main_button_navi_right_pressed_light = 2130837670; // aapt resource value: 0x7f0200a7 - public const int donate_cake = 2130837671; + public const int afc_selector_action_navi_left_dark_foreground = 2130837671; // aapt resource value: 0x7f0200a8 - public const int EntryFieldHeaderBackground = 2130837672; + public const int afc_selector_action_navi_left_light_foreground = 2130837672; // aapt resource value: 0x7f0200a9 - public const int extra_string_header = 2130837673; + public const int afc_selector_action_navi_right_dark_foreground = 2130837673; // aapt resource value: 0x7f0200aa - public const int GreenButton = 2130837674; + public const int afc_selector_action_navi_right_light_foreground = 2130837674; // aapt resource value: 0x7f0200ab - public const int highlight_pressed = 2130837675; + public const int afc_selector_button_location_dark = 2130837675; // aapt resource value: 0x7f0200ac - public const int hint_popup = 2130837676; + public const int afc_selector_button_location_light = 2130837676; // aapt resource value: 0x7f0200ad - public const int ic00 = 2130837677; + public const int afc_selector_button_ok_saveas_dark = 2130837677; // aapt resource value: 0x7f0200ae - public const int ic01 = 2130837678; + public const int afc_selector_button_ok_saveas_light = 2130837678; // aapt resource value: 0x7f0200af - public const int ic02 = 2130837679; + public const int afc_selector_image_button_dark = 2130837679; // aapt resource value: 0x7f0200b0 - public const int ic03 = 2130837680; + public const int afc_selector_image_button_light = 2130837680; // aapt resource value: 0x7f0200b1 - public const int ic04 = 2130837681; + public const int afc_selector_main_button_navi_left_dark = 2130837681; // aapt resource value: 0x7f0200b2 - public const int ic05 = 2130837682; + public const int afc_selector_main_button_navi_left_light = 2130837682; // aapt resource value: 0x7f0200b3 - public const int ic06 = 2130837683; + public const int afc_selector_main_button_navi_right_dark = 2130837683; // aapt resource value: 0x7f0200b4 - public const int ic07 = 2130837684; + public const int afc_selector_main_button_navi_right_light = 2130837684; // aapt resource value: 0x7f0200b5 - public const int ic08 = 2130837685; + public const int afc_view_locations_divider_dark = 2130837685; // aapt resource value: 0x7f0200b6 - public const int ic09 = 2130837686; + public const int aosp_background_holo_dark = 2130837686; // aapt resource value: 0x7f0200b7 - public const int ic10 = 2130837687; + public const int aosp_background_holo_light = 2130837687; // aapt resource value: 0x7f0200b8 - public const int ic11 = 2130837688; + public const int aosp_dialog_full_holo_dark = 2130837688; // aapt resource value: 0x7f0200b9 - public const int ic12 = 2130837689; + public const int aosp_dialog_full_holo_light = 2130837689; // aapt resource value: 0x7f0200ba - public const int ic13 = 2130837690; + public const int BlueButton = 2130837690; // aapt resource value: 0x7f0200bb - public const int ic14 = 2130837691; + public const int btn_keyboard_key = 2130837691; // aapt resource value: 0x7f0200bc - public const int ic15 = 2130837692; + public const int btn_keyboard_key2 = 2130837692; // aapt resource value: 0x7f0200bd - public const int ic16 = 2130837693; + public const int btn_keyboard_key3 = 2130837693; // aapt resource value: 0x7f0200be - public const int ic17 = 2130837694; + public const int btn_keyboard_key_dark_normal = 2130837694; // aapt resource value: 0x7f0200bf - public const int ic18 = 2130837695; + public const int btn_keyboard_key_dark_normal_off = 2130837695; // aapt resource value: 0x7f0200c0 - public const int ic19 = 2130837696; + public const int btn_keyboard_key_dark_normal_on = 2130837696; // aapt resource value: 0x7f0200c1 - public const int ic20 = 2130837697; + public const int btn_keyboard_key_dark_pressed = 2130837697; // aapt resource value: 0x7f0200c2 - public const int ic21 = 2130837698; + public const int btn_keyboard_key_dark_pressed_off = 2130837698; // aapt resource value: 0x7f0200c3 - public const int ic22 = 2130837699; + public const int btn_keyboard_key_dark_pressed_on = 2130837699; // aapt resource value: 0x7f0200c4 - public const int ic23 = 2130837700; + public const int btn_keyboard_key_fulltrans = 2130837700; // aapt resource value: 0x7f0200c5 - public const int ic24 = 2130837701; + public const int btn_keyboard_key_fulltrans_normal = 2130837701; // aapt resource value: 0x7f0200c6 - public const int ic25 = 2130837702; + public const int btn_keyboard_key_fulltrans_pressed = 2130837702; // aapt resource value: 0x7f0200c7 - public const int ic26 = 2130837703; + public const int btn_keyboard_key_gingerbread = 2130837703; // aapt resource value: 0x7f0200c8 - public const int ic27 = 2130837704; + public const int btn_keyboard_key_gingerbread_popup = 2130837704; // aapt resource value: 0x7f0200c9 - public const int ic28 = 2130837705; + public const int btn_keyboard_key_light_normal = 2130837705; // aapt resource value: 0x7f0200ca - public const int ic29 = 2130837706; + public const int btn_keyboard_key_light_popup_normal = 2130837706; // aapt resource value: 0x7f0200cb - public const int ic30 = 2130837707; + public const int btn_keyboard_key_light_popup_selected = 2130837707; // aapt resource value: 0x7f0200cc - public const int ic31 = 2130837708; + public const int btn_keyboard_key_light_pressed = 2130837708; // aapt resource value: 0x7f0200cd - public const int ic32 = 2130837709; + public const int btn_keyboard_key_normal = 2130837709; // aapt resource value: 0x7f0200ce - public const int ic33 = 2130837710; + public const int btn_keyboard_key_normal_off = 2130837710; // aapt resource value: 0x7f0200cf - public const int ic34 = 2130837711; + public const int btn_keyboard_key_normal_off_stone = 2130837711; // aapt resource value: 0x7f0200d0 - public const int ic35 = 2130837712; + public const int btn_keyboard_key_normal_on = 2130837712; // aapt resource value: 0x7f0200d1 - public const int ic36 = 2130837713; + public const int btn_keyboard_key_normal_on_stone = 2130837713; // aapt resource value: 0x7f0200d2 - public const int ic37 = 2130837714; + public const int btn_keyboard_key_normal_stone = 2130837714; // aapt resource value: 0x7f0200d3 - public const int ic38 = 2130837715; + public const int btn_keyboard_key_pressed = 2130837715; // aapt resource value: 0x7f0200d4 - public const int ic39 = 2130837716; + public const int btn_keyboard_key_pressed_off = 2130837716; // aapt resource value: 0x7f0200d5 - public const int ic40 = 2130837717; + public const int btn_keyboard_key_pressed_on = 2130837717; // aapt resource value: 0x7f0200d6 - public const int ic41 = 2130837718; + public const int btn_keyboard_key_stone = 2130837718; // aapt resource value: 0x7f0200d7 - public const int ic42 = 2130837719; + public const int btn_new_group = 2130837719; // aapt resource value: 0x7f0200d8 - public const int ic43 = 2130837720; + public const int btn_new_group_dark = 2130837720; // aapt resource value: 0x7f0200d9 - public const int ic44 = 2130837721; + public const int btn_new_group_holodark = 2130837721; // aapt resource value: 0x7f0200da - public const int ic45 = 2130837722; + public const int cancel = 2130837722; // aapt resource value: 0x7f0200db - public const int ic46 = 2130837723; + public const int candidate_feedback_background = 2130837723; // aapt resource value: 0x7f0200dc - public const int ic47 = 2130837724; + public const int caution = 2130837724; // aapt resource value: 0x7f0200dd - public const int ic48 = 2130837725; + public const int collections_collection = 2130837725; // aapt resource value: 0x7f0200de - public const int ic49 = 2130837726; + public const int collections_collection_holodark = 2130837726; // aapt resource value: 0x7f0200df - public const int ic50 = 2130837727; + public const int collections_new_label = 2130837727; // aapt resource value: 0x7f0200e0 - public const int ic51 = 2130837728; + public const int collections_new_label_holodark = 2130837728; // aapt resource value: 0x7f0200e1 - public const int ic52 = 2130837729; + public const int common_signin_btn_icon_dark = 2130837729; // aapt resource value: 0x7f0200e2 - public const int ic53 = 2130837730; + public const int common_signin_btn_icon_disabled_dark = 2130837730; // aapt resource value: 0x7f0200e3 - public const int ic54 = 2130837731; + public const int common_signin_btn_icon_disabled_focus_dark = 2130837731; // aapt resource value: 0x7f0200e4 - public const int ic55 = 2130837732; + public const int common_signin_btn_icon_disabled_focus_light = 2130837732; // aapt resource value: 0x7f0200e5 - public const int ic56 = 2130837733; + public const int common_signin_btn_icon_disabled_light = 2130837733; // aapt resource value: 0x7f0200e6 - public const int ic57 = 2130837734; + public const int common_signin_btn_icon_focus_dark = 2130837734; // aapt resource value: 0x7f0200e7 - public const int ic58 = 2130837735; + public const int common_signin_btn_icon_focus_light = 2130837735; // aapt resource value: 0x7f0200e8 - public const int ic59 = 2130837736; + public const int common_signin_btn_icon_light = 2130837736; // aapt resource value: 0x7f0200e9 - public const int ic60 = 2130837737; + public const int common_signin_btn_icon_normal_dark = 2130837737; // aapt resource value: 0x7f0200ea - public const int ic61 = 2130837738; + public const int common_signin_btn_icon_normal_light = 2130837738; // aapt resource value: 0x7f0200eb - public const int ic62 = 2130837739; + public const int common_signin_btn_icon_pressed_dark = 2130837739; // aapt resource value: 0x7f0200ec - public const int ic63 = 2130837740; + public const int common_signin_btn_icon_pressed_light = 2130837740; // aapt resource value: 0x7f0200ed - public const int ic64 = 2130837741; + public const int common_signin_btn_text_dark = 2130837741; // aapt resource value: 0x7f0200ee - public const int ic65 = 2130837742; + public const int common_signin_btn_text_disabled_dark = 2130837742; // aapt resource value: 0x7f0200ef - public const int ic66 = 2130837743; + public const int common_signin_btn_text_disabled_focus_dark = 2130837743; // aapt resource value: 0x7f0200f0 - public const int ic67 = 2130837744; + public const int common_signin_btn_text_disabled_focus_light = 2130837744; // aapt resource value: 0x7f0200f1 - public const int ic68 = 2130837745; + public const int common_signin_btn_text_disabled_light = 2130837745; // aapt resource value: 0x7f0200f2 - public const int ic99_blank = 2130837746; + public const int common_signin_btn_text_focus_dark = 2130837746; // aapt resource value: 0x7f0200f3 - public const int ic_action_eye_open = 2130837747; + public const int common_signin_btn_text_focus_light = 2130837747; // aapt resource value: 0x7f0200f4 - public const int ic_action_search = 2130837748; + public const int common_signin_btn_text_light = 2130837748; // aapt resource value: 0x7f0200f5 - public const int ic_action_search_holodark = 2130837749; + public const int common_signin_btn_text_normal_dark = 2130837749; // aapt resource value: 0x7f0200f6 - public const int ic_dialog_keyboard = 2130837750; + public const int common_signin_btn_text_normal_light = 2130837750; // aapt resource value: 0x7f0200f7 - public const int ic_keepass2android = 2130837751; + public const int common_signin_btn_text_pressed_dark = 2130837751; // aapt resource value: 0x7f0200f8 - public const int ic_keepass2android_nonet = 2130837752; + public const int common_signin_btn_text_pressed_light = 2130837752; // aapt resource value: 0x7f0200f9 - public const int ic_launcher = 2130837753; + public const int device_access_new_account = 2130837753; // aapt resource value: 0x7f0200fa - public const int ic_launcher_folder_small = 2130837754; + public const int device_access_new_account_holodark = 2130837754; // aapt resource value: 0x7f0200fb - public const int ic_launcher_gray = 2130837755; + public const int device_access_not_secure = 2130837755; // aapt resource value: 0x7f0200fc - public const int ic_launcher_gray_bday = 2130837756; + public const int dialog_bubble_step02 = 2130837756; // aapt resource value: 0x7f0200fd - public const int ic_launcher_offline = 2130837757; + public const int dialog_bubble_step07 = 2130837757; // aapt resource value: 0x7f0200fe - public const int ic_launcher_red = 2130837758; + public const int donate_cake = 2130837758; // aapt resource value: 0x7f0200ff - public const int ic_menu_add_field_holo_light = 2130837759; + public const int EntryFieldHeaderBackground = 2130837759; // aapt resource value: 0x7f020100 - public const int ic_menu_add_field_holodark = 2130837760; + public const int extra_string_header = 2130837760; // aapt resource value: 0x7f020101 - public const int ic_menu_copy_holo_light = 2130837761; + public const int GreenButton = 2130837761; // aapt resource value: 0x7f020102 - public const int ic_menu_remove_field_holo_light = 2130837762; + public const int highlight_pressed = 2130837762; // aapt resource value: 0x7f020103 - public const int ic_menu_remove_field_holodark = 2130837763; + public const int hint_popup = 2130837763; // aapt resource value: 0x7f020104 - public const int ic_menu_view = 2130837764; + public const int ic00 = 2130837764; // aapt resource value: 0x7f020105 - public const int ic_mic_dialog = 2130837765; + public const int ic01 = 2130837765; // aapt resource value: 0x7f020106 - public const int ic_storage_androidget = 2130837766; + public const int ic02 = 2130837766; // aapt resource value: 0x7f020107 - public const int ic_storage_androidsend = 2130837767; + public const int ic03 = 2130837767; // aapt resource value: 0x7f020108 - public const int ic_storage_dropbox = 2130837768; + public const int ic04 = 2130837768; // aapt resource value: 0x7f020109 - public const int ic_storage_dropboxKP2A = 2130837769; + public const int ic05 = 2130837769; // aapt resource value: 0x7f02010a - public const int ic_storage_file = 2130837770; + public const int ic06 = 2130837770; // aapt resource value: 0x7f02010b - public const int ic_storage_ftp = 2130837771; + public const int ic07 = 2130837771; // aapt resource value: 0x7f02010c - public const int ic_storage_gdrive = 2130837772; + public const int ic08 = 2130837772; // aapt resource value: 0x7f02010d - public const int ic_storage_http = 2130837773; + public const int ic09 = 2130837773; // aapt resource value: 0x7f02010e - public const int ic_storage_https = 2130837774; + public const int ic10 = 2130837774; // aapt resource value: 0x7f02010f - public const int ic_storage_sftp = 2130837775; + public const int ic11 = 2130837775; // aapt resource value: 0x7f020110 - public const int ic_storage_skydrive = 2130837776; + public const int ic12 = 2130837776; // aapt resource value: 0x7f020111 - public const int ic_subtype_keyboard = 2130837777; + public const int ic13 = 2130837777; // aapt resource value: 0x7f020112 - public const int ic_subtype_mic = 2130837778; + public const int ic14 = 2130837778; // aapt resource value: 0x7f020113 - public const int ic_suggest_scroll_background = 2130837779; + public const int ic15 = 2130837779; // aapt resource value: 0x7f020114 - public const int ic_suggest_strip_microphone = 2130837780; + public const int ic16 = 2130837780; // aapt resource value: 0x7f020115 - public const int ic_suggest_strip_microphone_swipe = 2130837781; + public const int ic17 = 2130837781; // aapt resource value: 0x7f020116 - public const int ic_unlocked_gray = 2130837782; + public const int ic18 = 2130837782; // aapt resource value: 0x7f020117 - public const int keyboard_background = 2130837783; + public const int ic19 = 2130837783; // aapt resource value: 0x7f020118 - public const int keyboard_dark_background = 2130837784; + public const int ic20 = 2130837784; // aapt resource value: 0x7f020119 - public const int keyboard_hint_0 = 2130837785; + public const int ic21 = 2130837785; // aapt resource value: 0x7f02011a - public const int keyboard_hint_1 = 2130837786; + public const int ic22 = 2130837786; // aapt resource value: 0x7f02011b - public const int keyboard_hint_2 = 2130837787; + public const int ic23 = 2130837787; // aapt resource value: 0x7f02011c - public const int keyboard_hint_3 = 2130837788; + public const int ic24 = 2130837788; // aapt resource value: 0x7f02011d - public const int keyboard_hint_4 = 2130837789; + public const int ic25 = 2130837789; // aapt resource value: 0x7f02011e - public const int keyboard_hint_5 = 2130837790; + public const int ic26 = 2130837790; // aapt resource value: 0x7f02011f - public const int keyboard_hint_6 = 2130837791; + public const int ic27 = 2130837791; // aapt resource value: 0x7f020120 - public const int keyboard_hint_7 = 2130837792; + public const int ic28 = 2130837792; // aapt resource value: 0x7f020121 - public const int keyboard_hint_8 = 2130837793; + public const int ic29 = 2130837793; // aapt resource value: 0x7f020122 - public const int keyboard_hint_9 = 2130837794; + public const int ic30 = 2130837794; // aapt resource value: 0x7f020123 - public const int keyboard_key_feedback = 2130837795; + public const int ic31 = 2130837795; // aapt resource value: 0x7f020124 - public const int keyboard_key_feedback_background = 2130837796; + public const int ic32 = 2130837796; // aapt resource value: 0x7f020125 - public const int keyboard_key_feedback_more_background = 2130837797; + public const int ic33 = 2130837797; // aapt resource value: 0x7f020126 - public const int keyboard_popup_panel_background = 2130837798; + public const int ic34 = 2130837798; // aapt resource value: 0x7f020127 - public const int keyboard_suggest_strip = 2130837799; + public const int ic35 = 2130837799; // aapt resource value: 0x7f020128 - public const int keyboard_suggest_strip_divider = 2130837800; + public const int ic36 = 2130837800; // aapt resource value: 0x7f020129 - public const int list_selector_background_pressed = 2130837801; + public const int ic37 = 2130837801; // aapt resource value: 0x7f02012a - public const int location_web_site = 2130837802; + public const int ic38 = 2130837802; // aapt resource value: 0x7f02012b - public const int location_web_site_holodark = 2130837803; + public const int ic39 = 2130837803; // aapt resource value: 0x7f02012c - public const int mic_slash = 2130837804; + public const int ic40 = 2130837804; // aapt resource value: 0x7f02012d - public const int navigation_accept = 2130837805; + public const int ic41 = 2130837805; // aapt resource value: 0x7f02012e - public const int navigation_accept_dark = 2130837806; + public const int ic42 = 2130837806; // aapt resource value: 0x7f02012f - public const int navigation_cancel = 2130837807; + public const int ic43 = 2130837807; // aapt resource value: 0x7f020130 - public const int navigation_cancel_holodark = 2130837808; + public const int ic44 = 2130837808; // aapt resource value: 0x7f020131 - public const int navigation_previous_item = 2130837809; + public const int ic45 = 2130837809; // aapt resource value: 0x7f020132 - public const int navigation_previous_item_dark = 2130837810; + public const int ic46 = 2130837810; // aapt resource value: 0x7f020133 - public const int notify = 2130837811; + public const int ic47 = 2130837811; // aapt resource value: 0x7f020134 - public const int notify_keyboard = 2130837812; + public const int ic48 = 2130837812; // aapt resource value: 0x7f020135 - public const int ok_cancel = 2130837813; + public const int ic49 = 2130837813; // aapt resource value: 0x7f020136 - public const int oktoberfest = 2130837814; + public const int ic50 = 2130837814; // aapt resource value: 0x7f020137 - public const int old_ic_launcher_gray = 2130837815; + public const int ic51 = 2130837815; // aapt resource value: 0x7f020138 - public const int RedButton = 2130837816; + public const int ic52 = 2130837816; // aapt resource value: 0x7f020139 - public const int section_header = 2130837817; + public const int ic53 = 2130837817; // aapt resource value: 0x7f02013a - public const int speak_now_level0 = 2130837818; + public const int ic54 = 2130837818; // aapt resource value: 0x7f02013b - public const int speak_now_level1 = 2130837819; + public const int ic55 = 2130837819; // aapt resource value: 0x7f02013c - public const int speak_now_level2 = 2130837820; + public const int ic56 = 2130837820; // aapt resource value: 0x7f02013d - public const int speak_now_level3 = 2130837821; + public const int ic57 = 2130837821; // aapt resource value: 0x7f02013e - public const int speak_now_level4 = 2130837822; + public const int ic58 = 2130837822; // aapt resource value: 0x7f02013f - public const int speak_now_level5 = 2130837823; + public const int ic59 = 2130837823; // aapt resource value: 0x7f020140 - public const int speak_now_level6 = 2130837824; + public const int ic60 = 2130837824; // aapt resource value: 0x7f020141 - public const int sym_bkeyboard_123_mic = 2130837825; + public const int ic61 = 2130837825; // aapt resource value: 0x7f020142 - public const int sym_bkeyboard_delete = 2130837826; + public const int ic62 = 2130837826; // aapt resource value: 0x7f020143 - public const int sym_bkeyboard_done = 2130837827; + public const int ic63 = 2130837827; // aapt resource value: 0x7f020144 - public const int sym_bkeyboard_kp2a = 2130837828; + public const int ic64 = 2130837828; // aapt resource value: 0x7f020145 - public const int sym_bkeyboard_mic = 2130837829; + public const int ic65 = 2130837829; // aapt resource value: 0x7f020146 - public const int sym_bkeyboard_num0 = 2130837830; + public const int ic66 = 2130837830; // aapt resource value: 0x7f020147 - public const int sym_bkeyboard_num1 = 2130837831; + public const int ic67 = 2130837831; // aapt resource value: 0x7f020148 - public const int sym_bkeyboard_num2 = 2130837832; + public const int ic68 = 2130837832; // aapt resource value: 0x7f020149 - public const int sym_bkeyboard_num3 = 2130837833; + public const int ic99_blank = 2130837833; // aapt resource value: 0x7f02014a - public const int sym_bkeyboard_num4 = 2130837834; + public const int ic_action_eye_open = 2130837834; // aapt resource value: 0x7f02014b - public const int sym_bkeyboard_num5 = 2130837835; + public const int ic_action_search = 2130837835; // aapt resource value: 0x7f02014c - public const int sym_bkeyboard_num6 = 2130837836; + public const int ic_action_search_holodark = 2130837836; // aapt resource value: 0x7f02014d - public const int sym_bkeyboard_num7 = 2130837837; + public const int ic_dialog_keyboard = 2130837837; // aapt resource value: 0x7f02014e - public const int sym_bkeyboard_num8 = 2130837838; + public const int ic_keepass2android = 2130837838; // aapt resource value: 0x7f02014f - public const int sym_bkeyboard_num9 = 2130837839; + public const int ic_keepass2android_nonet = 2130837839; // aapt resource value: 0x7f020150 - public const int sym_bkeyboard_numalt = 2130837840; + public const int ic_launcher = 2130837840; // aapt resource value: 0x7f020151 - public const int sym_bkeyboard_numpound = 2130837841; + public const int ic_launcher_folder_small = 2130837841; // aapt resource value: 0x7f020152 - public const int sym_bkeyboard_numstar = 2130837842; + public const int ic_launcher_gray = 2130837842; // aapt resource value: 0x7f020153 - public const int sym_bkeyboard_return = 2130837843; + public const int ic_launcher_gray_bday = 2130837843; // aapt resource value: 0x7f020154 - public const int sym_bkeyboard_search = 2130837844; + public const int ic_launcher_offline = 2130837844; // aapt resource value: 0x7f020155 - public const int sym_bkeyboard_settings = 2130837845; + public const int ic_launcher_red = 2130837845; // aapt resource value: 0x7f020156 - public const int sym_bkeyboard_shift = 2130837846; + public const int ic_menu_add_field_holo_light = 2130837846; // aapt resource value: 0x7f020157 - public const int sym_bkeyboard_shift_locked = 2130837847; + public const int ic_menu_add_field_holodark = 2130837847; // aapt resource value: 0x7f020158 - public const int sym_bkeyboard_space = 2130837848; + public const int ic_menu_copy_holo_light = 2130837848; // aapt resource value: 0x7f020159 - public const int sym_bkeyboard_tab = 2130837849; + public const int ic_menu_remove_field_holo_light = 2130837849; // aapt resource value: 0x7f02015a - public const int sym_keyboard = 2130837850; + public const int ic_menu_remove_field_holodark = 2130837850; // aapt resource value: 0x7f02015b - public const int sym_keyboard_123_mic = 2130837851; + public const int ic_menu_view = 2130837851; // aapt resource value: 0x7f02015c - public const int sym_keyboard_delete = 2130837852; + public const int ic_mic_dialog = 2130837852; // aapt resource value: 0x7f02015d - public const int sym_keyboard_done = 2130837853; + public const int ic_plusone_medium_off_client = 2130837853; // aapt resource value: 0x7f02015e - public const int sym_keyboard_feedback_123_mic = 2130837854; + public const int ic_plusone_small_off_client = 2130837854; // aapt resource value: 0x7f02015f - public const int sym_keyboard_feedback_delete = 2130837855; + public const int ic_plusone_standard_off_client = 2130837855; // aapt resource value: 0x7f020160 - public const int sym_keyboard_feedback_done = 2130837856; + public const int ic_plusone_tall_off_client = 2130837856; // aapt resource value: 0x7f020161 - public const int sym_keyboard_feedback_kp2a = 2130837857; + public const int ic_storage_androidget = 2130837857; // aapt resource value: 0x7f020162 - public const int sym_keyboard_feedback_language_arrows_left = 2130837858; + public const int ic_storage_androidsend = 2130837858; // aapt resource value: 0x7f020163 - public const int sym_keyboard_feedback_language_arrows_right = 2130837859; + public const int ic_storage_dropbox = 2130837859; // aapt resource value: 0x7f020164 - public const int sym_keyboard_feedback_mic = 2130837860; + public const int ic_storage_dropboxKP2A = 2130837860; // aapt resource value: 0x7f020165 - public const int sym_keyboard_feedback_numalt = 2130837861; + public const int ic_storage_file = 2130837861; // aapt resource value: 0x7f020166 - public const int sym_keyboard_feedback_return = 2130837862; + public const int ic_storage_ftp = 2130837862; // aapt resource value: 0x7f020167 - public const int sym_keyboard_feedback_search = 2130837863; + public const int ic_storage_gdrive = 2130837863; // aapt resource value: 0x7f020168 - public const int sym_keyboard_feedback_settings = 2130837864; + public const int ic_storage_http = 2130837864; // aapt resource value: 0x7f020169 - public const int sym_keyboard_feedback_shift = 2130837865; + public const int ic_storage_https = 2130837865; // aapt resource value: 0x7f02016a - public const int sym_keyboard_feedback_shift_locked = 2130837866; + public const int ic_storage_sftp = 2130837866; // aapt resource value: 0x7f02016b - public const int sym_keyboard_feedback_space = 2130837867; + public const int ic_storage_skydrive = 2130837867; // aapt resource value: 0x7f02016c - public const int sym_keyboard_feedback_tab = 2130837868; + public const int ic_subtype_keyboard = 2130837868; // aapt resource value: 0x7f02016d - public const int sym_keyboard_kp2a = 2130837869; + public const int ic_subtype_mic = 2130837869; // aapt resource value: 0x7f02016e - public const int sym_keyboard_language_arrows_left = 2130837870; + public const int ic_suggest_scroll_background = 2130837870; // aapt resource value: 0x7f02016f - public const int sym_keyboard_language_arrows_right = 2130837871; + public const int ic_suggest_strip_microphone = 2130837871; // aapt resource value: 0x7f020170 - public const int sym_keyboard_mic = 2130837872; + public const int ic_suggest_strip_microphone_swipe = 2130837872; // aapt resource value: 0x7f020171 - public const int sym_keyboard_num0 = 2130837873; + public const int ic_unlocked_gray = 2130837873; // aapt resource value: 0x7f020172 - public const int sym_keyboard_num1 = 2130837874; + public const int keyboard_background = 2130837874; // aapt resource value: 0x7f020173 - public const int sym_keyboard_num2 = 2130837875; + public const int keyboard_dark_background = 2130837875; // aapt resource value: 0x7f020174 - public const int sym_keyboard_num3 = 2130837876; + public const int keyboard_hint_0 = 2130837876; // aapt resource value: 0x7f020175 - public const int sym_keyboard_num4 = 2130837877; + public const int keyboard_hint_1 = 2130837877; // aapt resource value: 0x7f020176 - public const int sym_keyboard_num5 = 2130837878; + public const int keyboard_hint_2 = 2130837878; // aapt resource value: 0x7f020177 - public const int sym_keyboard_num6 = 2130837879; + public const int keyboard_hint_3 = 2130837879; // aapt resource value: 0x7f020178 - public const int sym_keyboard_num7 = 2130837880; + public const int keyboard_hint_4 = 2130837880; // aapt resource value: 0x7f020179 - public const int sym_keyboard_num8 = 2130837881; + public const int keyboard_hint_5 = 2130837881; // aapt resource value: 0x7f02017a - public const int sym_keyboard_num9 = 2130837882; + public const int keyboard_hint_6 = 2130837882; // aapt resource value: 0x7f02017b - public const int sym_keyboard_numalt = 2130837883; + public const int keyboard_hint_7 = 2130837883; // aapt resource value: 0x7f02017c - public const int sym_keyboard_numpound = 2130837884; + public const int keyboard_hint_8 = 2130837884; // aapt resource value: 0x7f02017d - public const int sym_keyboard_numstar = 2130837885; + public const int keyboard_hint_9 = 2130837885; // aapt resource value: 0x7f02017e - public const int sym_keyboard_return = 2130837886; + public const int keyboard_key_feedback = 2130837886; // aapt resource value: 0x7f02017f - public const int sym_keyboard_search = 2130837887; + public const int keyboard_key_feedback_background = 2130837887; // aapt resource value: 0x7f020180 - public const int sym_keyboard_settings = 2130837888; + public const int keyboard_key_feedback_more_background = 2130837888; // aapt resource value: 0x7f020181 - public const int sym_keyboard_shift = 2130837889; + public const int keyboard_popup_panel_background = 2130837889; // aapt resource value: 0x7f020182 - public const int sym_keyboard_shift_lock = 2130837890; + public const int keyboard_suggest_strip = 2130837890; // aapt resource value: 0x7f020183 - public const int sym_keyboard_shift_locked = 2130837891; + public const int keyboard_suggest_strip_divider = 2130837891; // aapt resource value: 0x7f020184 - public const int sym_keyboard_space = 2130837892; + public const int list_selector_background_pressed = 2130837892; // aapt resource value: 0x7f020185 - public const int sym_keyboard_space_led = 2130837893; + public const int location_web_site = 2130837893; // aapt resource value: 0x7f020186 - public const int sym_keyboard_tab = 2130837894; + public const int location_web_site_holodark = 2130837894; // aapt resource value: 0x7f020187 - public const int transparent = 2130837895; + public const int mic_slash = 2130837895; // aapt resource value: 0x7f020188 - public const int vdots = 2130837896; + public const int mr_ic_audio_vol = 2130837896; // aapt resource value: 0x7f020189 - public const int vdots_holodark = 2130837897; + public const int mr_ic_media_route_connecting_holo_dark = 2130837897; // aapt resource value: 0x7f02018a - public const int voice_ime_background = 2130837898; + public const int mr_ic_media_route_connecting_holo_light = 2130837898; // aapt resource value: 0x7f02018b - public const int voice_swipe_hint = 2130837899; + public const int mr_ic_media_route_disabled_holo_dark = 2130837899; // aapt resource value: 0x7f02018c - public const int working = 2130837900; + public const int mr_ic_media_route_disabled_holo_light = 2130837900; // aapt resource value: 0x7f02018d - public const int YellowButton = 2130837901; + public const int mr_ic_media_route_holo_dark = 2130837901; + + // aapt resource value: 0x7f02018e + public const int mr_ic_media_route_holo_light = 2130837902; + + // aapt resource value: 0x7f02018f + public const int mr_ic_media_route_off_holo_dark = 2130837903; + + // aapt resource value: 0x7f020190 + public const int mr_ic_media_route_off_holo_light = 2130837904; + + // aapt resource value: 0x7f020191 + public const int mr_ic_media_route_on_0_holo_dark = 2130837905; + + // aapt resource value: 0x7f020192 + public const int mr_ic_media_route_on_0_holo_light = 2130837906; + + // aapt resource value: 0x7f020193 + public const int mr_ic_media_route_on_1_holo_dark = 2130837907; + + // aapt resource value: 0x7f020194 + public const int mr_ic_media_route_on_1_holo_light = 2130837908; + + // aapt resource value: 0x7f020195 + public const int mr_ic_media_route_on_2_holo_dark = 2130837909; + + // aapt resource value: 0x7f020196 + public const int mr_ic_media_route_on_2_holo_light = 2130837910; + + // aapt resource value: 0x7f020197 + public const int mr_ic_media_route_on_holo_dark = 2130837911; + + // aapt resource value: 0x7f020198 + public const int mr_ic_media_route_on_holo_light = 2130837912; + + // aapt resource value: 0x7f020199 + public const int navigation_accept = 2130837913; + + // aapt resource value: 0x7f02019a + public const int navigation_accept_dark = 2130837914; + + // aapt resource value: 0x7f02019b + public const int navigation_cancel = 2130837915; + + // aapt resource value: 0x7f02019c + public const int navigation_cancel_holodark = 2130837916; + + // aapt resource value: 0x7f02019d + public const int navigation_previous_item = 2130837917; + + // aapt resource value: 0x7f02019e + public const int navigation_previous_item_dark = 2130837918; + + // aapt resource value: 0x7f02019f + public const int notify = 2130837919; + + // aapt resource value: 0x7f0201a0 + public const int notify_keyboard = 2130837920; + + // aapt resource value: 0x7f0201a1 + public const int ok_cancel = 2130837921; + + // aapt resource value: 0x7f0201a2 + public const int oktoberfest = 2130837922; + + // aapt resource value: 0x7f0201a3 + public const int old_ic_launcher_gray = 2130837923; + + // aapt resource value: 0x7f0201a4 + public const int powered_by_google_dark = 2130837924; + + // aapt resource value: 0x7f0201a5 + public const int powered_by_google_light = 2130837925; + + // aapt resource value: 0x7f0201a6 + public const int RedButton = 2130837926; + + // aapt resource value: 0x7f0201a7 + public const int section_header = 2130837927; + + // aapt resource value: 0x7f0201a8 + public const int speak_now_level0 = 2130837928; + + // aapt resource value: 0x7f0201a9 + public const int speak_now_level1 = 2130837929; + + // aapt resource value: 0x7f0201aa + public const int speak_now_level2 = 2130837930; + + // aapt resource value: 0x7f0201ab + public const int speak_now_level3 = 2130837931; + + // aapt resource value: 0x7f0201ac + public const int speak_now_level4 = 2130837932; + + // aapt resource value: 0x7f0201ad + public const int speak_now_level5 = 2130837933; + + // aapt resource value: 0x7f0201ae + public const int speak_now_level6 = 2130837934; + + // aapt resource value: 0x7f0201af + public const int sym_bkeyboard_123_mic = 2130837935; + + // aapt resource value: 0x7f0201b0 + public const int sym_bkeyboard_delete = 2130837936; + + // aapt resource value: 0x7f0201b1 + public const int sym_bkeyboard_done = 2130837937; + + // aapt resource value: 0x7f0201b2 + public const int sym_bkeyboard_kp2a = 2130837938; + + // aapt resource value: 0x7f0201b3 + public const int sym_bkeyboard_mic = 2130837939; + + // aapt resource value: 0x7f0201b4 + public const int sym_bkeyboard_num0 = 2130837940; + + // aapt resource value: 0x7f0201b5 + public const int sym_bkeyboard_num1 = 2130837941; + + // aapt resource value: 0x7f0201b6 + public const int sym_bkeyboard_num2 = 2130837942; + + // aapt resource value: 0x7f0201b7 + public const int sym_bkeyboard_num3 = 2130837943; + + // aapt resource value: 0x7f0201b8 + public const int sym_bkeyboard_num4 = 2130837944; + + // aapt resource value: 0x7f0201b9 + public const int sym_bkeyboard_num5 = 2130837945; + + // aapt resource value: 0x7f0201ba + public const int sym_bkeyboard_num6 = 2130837946; + + // aapt resource value: 0x7f0201bb + public const int sym_bkeyboard_num7 = 2130837947; + + // aapt resource value: 0x7f0201bc + public const int sym_bkeyboard_num8 = 2130837948; + + // aapt resource value: 0x7f0201bd + public const int sym_bkeyboard_num9 = 2130837949; + + // aapt resource value: 0x7f0201be + public const int sym_bkeyboard_numalt = 2130837950; + + // aapt resource value: 0x7f0201bf + public const int sym_bkeyboard_numpound = 2130837951; + + // aapt resource value: 0x7f0201c0 + public const int sym_bkeyboard_numstar = 2130837952; + + // aapt resource value: 0x7f0201c1 + public const int sym_bkeyboard_return = 2130837953; + + // aapt resource value: 0x7f0201c2 + public const int sym_bkeyboard_search = 2130837954; + + // aapt resource value: 0x7f0201c3 + public const int sym_bkeyboard_settings = 2130837955; + + // aapt resource value: 0x7f0201c4 + public const int sym_bkeyboard_shift = 2130837956; + + // aapt resource value: 0x7f0201c5 + public const int sym_bkeyboard_shift_locked = 2130837957; + + // aapt resource value: 0x7f0201c6 + public const int sym_bkeyboard_space = 2130837958; + + // aapt resource value: 0x7f0201c7 + public const int sym_bkeyboard_tab = 2130837959; + + // aapt resource value: 0x7f0201c8 + public const int sym_keyboard = 2130837960; + + // aapt resource value: 0x7f0201c9 + public const int sym_keyboard_123_mic = 2130837961; + + // aapt resource value: 0x7f0201ca + public const int sym_keyboard_delete = 2130837962; + + // aapt resource value: 0x7f0201cb + public const int sym_keyboard_done = 2130837963; + + // aapt resource value: 0x7f0201cc + public const int sym_keyboard_feedback_123_mic = 2130837964; + + // aapt resource value: 0x7f0201cd + public const int sym_keyboard_feedback_delete = 2130837965; + + // aapt resource value: 0x7f0201ce + public const int sym_keyboard_feedback_done = 2130837966; + + // aapt resource value: 0x7f0201cf + public const int sym_keyboard_feedback_kp2a = 2130837967; + + // aapt resource value: 0x7f0201d0 + public const int sym_keyboard_feedback_language_arrows_left = 2130837968; + + // aapt resource value: 0x7f0201d1 + public const int sym_keyboard_feedback_language_arrows_right = 2130837969; + + // aapt resource value: 0x7f0201d2 + public const int sym_keyboard_feedback_mic = 2130837970; + + // aapt resource value: 0x7f0201d3 + public const int sym_keyboard_feedback_numalt = 2130837971; + + // aapt resource value: 0x7f0201d4 + public const int sym_keyboard_feedback_return = 2130837972; + + // aapt resource value: 0x7f0201d5 + public const int sym_keyboard_feedback_search = 2130837973; + + // aapt resource value: 0x7f0201d6 + public const int sym_keyboard_feedback_settings = 2130837974; + + // aapt resource value: 0x7f0201d7 + public const int sym_keyboard_feedback_shift = 2130837975; + + // aapt resource value: 0x7f0201d8 + public const int sym_keyboard_feedback_shift_locked = 2130837976; + + // aapt resource value: 0x7f0201d9 + public const int sym_keyboard_feedback_space = 2130837977; + + // aapt resource value: 0x7f0201da + public const int sym_keyboard_feedback_tab = 2130837978; + + // aapt resource value: 0x7f0201db + public const int sym_keyboard_kp2a = 2130837979; + + // aapt resource value: 0x7f0201dc + public const int sym_keyboard_language_arrows_left = 2130837980; + + // aapt resource value: 0x7f0201dd + public const int sym_keyboard_language_arrows_right = 2130837981; + + // aapt resource value: 0x7f0201de + public const int sym_keyboard_mic = 2130837982; + + // aapt resource value: 0x7f0201df + public const int sym_keyboard_num0 = 2130837983; + + // aapt resource value: 0x7f0201e0 + public const int sym_keyboard_num1 = 2130837984; + + // aapt resource value: 0x7f0201e1 + public const int sym_keyboard_num2 = 2130837985; + + // aapt resource value: 0x7f0201e2 + public const int sym_keyboard_num3 = 2130837986; + + // aapt resource value: 0x7f0201e3 + public const int sym_keyboard_num4 = 2130837987; + + // aapt resource value: 0x7f0201e4 + public const int sym_keyboard_num5 = 2130837988; + + // aapt resource value: 0x7f0201e5 + public const int sym_keyboard_num6 = 2130837989; + + // aapt resource value: 0x7f0201e6 + public const int sym_keyboard_num7 = 2130837990; + + // aapt resource value: 0x7f0201e7 + public const int sym_keyboard_num8 = 2130837991; + + // aapt resource value: 0x7f0201e8 + public const int sym_keyboard_num9 = 2130837992; + + // aapt resource value: 0x7f0201e9 + public const int sym_keyboard_numalt = 2130837993; + + // aapt resource value: 0x7f0201ea + public const int sym_keyboard_numpound = 2130837994; + + // aapt resource value: 0x7f0201eb + public const int sym_keyboard_numstar = 2130837995; + + // aapt resource value: 0x7f0201ec + public const int sym_keyboard_return = 2130837996; + + // aapt resource value: 0x7f0201ed + public const int sym_keyboard_search = 2130837997; + + // aapt resource value: 0x7f0201ee + public const int sym_keyboard_settings = 2130837998; + + // aapt resource value: 0x7f0201ef + public const int sym_keyboard_shift = 2130837999; + + // aapt resource value: 0x7f0201f0 + public const int sym_keyboard_shift_lock = 2130838000; + + // aapt resource value: 0x7f0201f1 + public const int sym_keyboard_shift_locked = 2130838001; + + // aapt resource value: 0x7f0201f2 + public const int sym_keyboard_space = 2130838002; + + // aapt resource value: 0x7f0201f3 + public const int sym_keyboard_space_led = 2130838003; + + // aapt resource value: 0x7f0201f4 + public const int sym_keyboard_tab = 2130838004; + + // aapt resource value: 0x7f0201f5 + public const int transparent = 2130838005; + + // aapt resource value: 0x7f0201f6 + public const int vdots = 2130838006; + + // aapt resource value: 0x7f0201f7 + public const int vdots_holodark = 2130838007; + + // aapt resource value: 0x7f0201f8 + public const int voice_ime_background = 2130838008; + + // aapt resource value: 0x7f0201f9 + public const int voice_swipe_hint = 2130838009; + + // aapt resource value: 0x7f0201fa + public const int working = 2130838010; + + // aapt resource value: 0x7f0201fb + public const int YellowButton = 2130838011; static Drawable() { @@ -1973,977 +2858,1205 @@ namespace keepass2android public partial class Id { - // aapt resource value: 0x7f08001e - public const int Credit = 2131230750; + // aapt resource value: 0x7f090067 + public const int Credit = 2131296359; - // aapt resource value: 0x7f08001f - public const int Credit2 = 2131230751; + // aapt resource value: 0x7f090068 + public const int Credit2 = 2131296360; - // aapt resource value: 0x7f0800d1 - public const int IconGridView = 2131230929; + // aapt resource value: 0x7f090118 + public const int IconGridView = 2131296536; - // aapt resource value: 0x7f0800d3 - public const int LatinKeyboardBaseView = 2131230931; + // aapt resource value: 0x7f09011a + public const int LatinKeyboardBaseView = 2131296538; - // aapt resource value: 0x7f0800d2 - public const int LatinkeyboardBaseView = 2131230930; + // aapt resource value: 0x7f090119 + public const int LatinkeyboardBaseView = 2131296537; - // aapt resource value: 0x7f0800fe - public const int QuickUnlock_button = 2131230974; + // aapt resource value: 0x7f09014b + public const int QuickUnlock_button = 2131296587; - // aapt resource value: 0x7f0800ff - public const int QuickUnlock_buttonLock = 2131230975; + // aapt resource value: 0x7f09014c + public const int QuickUnlock_buttonLock = 2131296588; - // aapt resource value: 0x7f0800fc - public const int QuickUnlock_label = 2131230972; + // aapt resource value: 0x7f090149 + public const int QuickUnlock_label = 2131296585; - // aapt resource value: 0x7f0800fd - public const int QuickUnlock_password = 2131230973; + // aapt resource value: 0x7f09014a + public const int QuickUnlock_password = 2131296586; - // aapt resource value: 0x7f0800b3 - public const int RelativeLayout = 2131230899; + // aapt resource value: 0x7f0900fb + public const int RelativeLayout = 2131296507; - // aapt resource value: 0x7f0800b2 - public const int ScrollView = 2131230898; + // aapt resource value: 0x7f0900fa + public const int ScrollView = 2131296506; - // aapt resource value: 0x7f080009 - public const int about_title = 2131230729; + // aapt resource value: 0x7f090052 + public const int about_title = 2131296338; - // aapt resource value: 0x7f0800b0 - public const int accept_button = 2131230896; + // aapt resource value: 0x7f0900f8 + public const int accept_button = 2131296504; - // aapt resource value: 0x7f080068 - public const int add_advanced = 2131230824; + // aapt resource value: 0x7f090032 + public const int action_bar = 2131296306; - // aapt resource value: 0x7f0800c5 - public const int add_entry = 2131230917; + // aapt resource value: 0x7f090015 + public const int action_bar_activity_content = 2131296277; - // aapt resource value: 0x7f0800c4 - public const int add_group = 2131230916; + // aapt resource value: 0x7f090031 + public const int action_bar_container = 2131296305; - // aapt resource value: 0x7f08011a - public const int add_url_entry = 2131231002; + // aapt resource value: 0x7f090035 + public const int action_bar_overlay_layout = 2131296309; - // aapt resource value: 0x7f080067 - public const int advanced_container = 2131230823; + // aapt resource value: 0x7f090030 + public const int action_bar_root = 2131296304; - // aapt resource value: 0x7f080028 - public const int afc_button_go_back = 2131230760; + // aapt resource value: 0x7f090039 + public const int action_bar_subtitle = 2131296313; - // aapt resource value: 0x7f080029 - public const int afc_button_go_forward = 2131230761; + // aapt resource value: 0x7f090038 + public const int action_bar_title = 2131296312; - // aapt resource value: 0x7f080037 - public const int afc_button_ok = 2131230775; + // aapt resource value: 0x7f090033 + public const int action_context_bar = 2131296307; - // aapt resource value: 0x7f08003e - public const int afc_button_sort_by_date_asc = 2131230782; + // aapt resource value: 0x7f090016 + public const int action_menu_divider = 2131296278; - // aapt resource value: 0x7f08003f - public const int afc_button_sort_by_date_desc = 2131230783; + // aapt resource value: 0x7f090017 + public const int action_menu_presenter = 2131296279; - // aapt resource value: 0x7f08003a - public const int afc_button_sort_by_name_asc = 2131230778; + // aapt resource value: 0x7f09003a + public const int action_mode_close_button = 2131296314; - // aapt resource value: 0x7f08003b - public const int afc_button_sort_by_name_desc = 2131230779; + // aapt resource value: 0x7f09003b + public const int activity_chooser_view_content = 2131296315; - // aapt resource value: 0x7f08003c - public const int afc_button_sort_by_size_asc = 2131230780; + // aapt resource value: 0x7f0900b0 + public const int add_advanced = 2131296432; - // aapt resource value: 0x7f08003d - public const int afc_button_sort_by_size_desc = 2131230781; + // aapt resource value: 0x7f09010d + public const int add_entry = 2131296525; - // aapt resource value: 0x7f080026 - public const int afc_checkbox_selection = 2131230758; + // aapt resource value: 0x7f09010c + public const int add_group = 2131296524; - // aapt resource value: 0x7f080034 - public const int afc_footer_view_divider = 2131230772; + // aapt resource value: 0x7f090165 + public const int add_url_entry = 2131296613; - // aapt resource value: 0x7f080020 - public const int afc_fragment_files = 2131230752; + // aapt resource value: 0x7f0900af + public const int advanced_container = 2131296431; - // aapt resource value: 0x7f08002d - public const int afc_header_view_divider = 2131230765; + // aapt resource value: 0x7f090071 + public const int afc_button_go_back = 2131296369; - // aapt resource value: 0x7f080022 - public const int afc_imageview_icon = 2131230754; + // aapt resource value: 0x7f090072 + public const int afc_button_go_forward = 2131296370; - // aapt resource value: 0x7f080023 - public const int afc_imageview_locked_symbol = 2131230755; + // aapt resource value: 0x7f090080 + public const int afc_button_ok = 2131296384; - // aapt resource value: 0x7f080021 - public const int afc_listview_menu = 2131230753; + // aapt resource value: 0x7f090087 + public const int afc_button_sort_by_date_asc = 2131296391; - // aapt resource value: 0x7f080136 - public const int afc_menuitem_home = 2131231030; + // aapt resource value: 0x7f090088 + public const int afc_button_sort_by_date_desc = 2131296392; - // aapt resource value: 0x7f080139 - public const int afc_menuitem_new_folder = 2131231033; + // aapt resource value: 0x7f090083 + public const int afc_button_sort_by_name_asc = 2131296387; - // aapt resource value: 0x7f080137 - public const int afc_menuitem_sort = 2131231031; + // aapt resource value: 0x7f090084 + public const int afc_button_sort_by_name_desc = 2131296388; - // aapt resource value: 0x7f080138 - public const int afc_menuitem_switch_viewmode = 2131231032; + // aapt resource value: 0x7f090085 + public const int afc_button_sort_by_size_asc = 2131296389; - // aapt resource value: 0x7f080041 - public const int afc_progress_bar = 2131230785; + // aapt resource value: 0x7f090086 + public const int afc_button_sort_by_size_desc = 2131296390; - // aapt resource value: 0x7f080040 - public const int afc_text1 = 2131230784; + // aapt resource value: 0x7f09006f + public const int afc_checkbox_selection = 2131296367; - // aapt resource value: 0x7f080042 - public const int afc_textview = 2131230786; + // aapt resource value: 0x7f09007d + public const int afc_footer_view_divider = 2131296381; - // aapt resource value: 0x7f080025 - public const int afc_textview_file_info = 2131230757; + // aapt resource value: 0x7f090069 + public const int afc_fragment_files = 2131296361; - // aapt resource value: 0x7f080024 - public const int afc_textview_filename = 2131230756; + // aapt resource value: 0x7f090076 + public const int afc_header_view_divider = 2131296374; - // aapt resource value: 0x7f08002e - public const int afc_textview_full_dir_name = 2131230766; + // aapt resource value: 0x7f09006b + public const int afc_imageview_icon = 2131296363; - // aapt resource value: 0x7f080039 - public const int afc_textview_home = 2131230777; + // aapt resource value: 0x7f09006c + public const int afc_imageview_locked_symbol = 2131296364; - // aapt resource value: 0x7f080036 - public const int afc_textview_saveas_filename = 2131230774; + // aapt resource value: 0x7f09006a + public const int afc_listview_menu = 2131296362; - // aapt resource value: 0x7f080031 - public const int afc_view_files_container = 2131230769; + // aapt resource value: 0x7f090182 + public const int afc_menuitem_home = 2131296642; - // aapt resource value: 0x7f080032 - public const int afc_view_files_footer_view = 2131230770; + // aapt resource value: 0x7f090185 + public const int afc_menuitem_new_folder = 2131296645; - // aapt resource value: 0x7f080033 - public const int afc_view_loading = 2131230771; + // aapt resource value: 0x7f090183 + public const int afc_menuitem_sort = 2131296643; - // aapt resource value: 0x7f08002c - public const int afc_view_locations = 2131230764; + // aapt resource value: 0x7f090184 + public const int afc_menuitem_switch_viewmode = 2131296644; - // aapt resource value: 0x7f08002b - public const int afc_view_locations_container = 2131230763; + // aapt resource value: 0x7f09008a + public const int afc_progress_bar = 2131296394; - // aapt resource value: 0x7f080038 - public const int afc_viewgroup_bookmarks = 2131230776; + // aapt resource value: 0x7f090089 + public const int afc_text1 = 2131296393; - // aapt resource value: 0x7f08002a - public const int afc_viewgroup_button_locations = 2131230762; + // aapt resource value: 0x7f09008b + public const int afc_textview = 2131296395; - // aapt resource value: 0x7f080030 - public const int afc_viewgroup_files = 2131230768; + // aapt resource value: 0x7f09006e + public const int afc_textview_file_info = 2131296366; - // aapt resource value: 0x7f080035 - public const int afc_viewgroup_footer = 2131230773; + // aapt resource value: 0x7f09006d + public const int afc_textview_filename = 2131296365; - // aapt resource value: 0x7f08002f - public const int afc_viewgroup_footer_container = 2131230767; + // aapt resource value: 0x7f090077 + public const int afc_textview_full_dir_name = 2131296375; - // aapt resource value: 0x7f080027 - public const int afc_viewgroup_header = 2131230759; + // aapt resource value: 0x7f090082 + public const int afc_textview_home = 2131296386; - // aapt resource value: 0x7f080045 - public const int afc_widget_search_view_button_clear = 2131230789; + // aapt resource value: 0x7f09007f + public const int afc_textview_saveas_filename = 2131296383; - // aapt resource value: 0x7f080043 - public const int afc_widget_search_view_button_search = 2131230787; + // aapt resource value: 0x7f09007a + public const int afc_view_files_container = 2131296378; - // aapt resource value: 0x7f080044 - public const int afc_widget_search_view_textview_search = 2131230788; + // aapt resource value: 0x7f09007b + public const int afc_view_files_footer_view = 2131296379; - // aapt resource value: 0x7f08001c - public const int android_filechooser_contrib = 2131230748; + // aapt resource value: 0x7f09007c + public const int afc_view_loading = 2131296380; - // aapt resource value: 0x7f080019 - public const int author = 2131230745; + // aapt resource value: 0x7f090075 + public const int afc_view_locations = 2131296373; - // aapt resource value: 0x7f08006a - public const int binaries = 2131230826; + // aapt resource value: 0x7f090074 + public const int afc_view_locations_container = 2131296372; - // aapt resource value: 0x7f080008 - public const int black = 2131230728; + // aapt resource value: 0x7f090081 + public const int afc_viewgroup_bookmarks = 2131296385; - // aapt resource value: 0x7f080005 - public const int bold = 2131230725; + // aapt resource value: 0x7f090073 + public const int afc_viewgroup_button_locations = 2131296371; - // aapt resource value: 0x7f08007c - public const int bottom_bar = 2131230844; + // aapt resource value: 0x7f090079 + public const int afc_viewgroup_files = 2131296377; - // aapt resource value: 0x7f0800aa - public const int bottom_layout = 2131230890; + // aapt resource value: 0x7f09007e + public const int afc_viewgroup_footer = 2131296382; - // aapt resource value: 0x7f0800a5 - public const int browse_button = 2131230885; + // aapt resource value: 0x7f090078 + public const int afc_viewgroup_footer_container = 2131296376; - // aapt resource value: 0x7f0800fa - public const int btnPluginsOnline = 2131230970; + // aapt resource value: 0x7f090070 + public const int afc_viewgroup_header = 2131296368; - // aapt resource value: 0x7f08004a - public const int btn_change_location = 2131230794; + // aapt resource value: 0x7f09008e + public const int afc_widget_search_view_button_clear = 2131296398; - // aapt resource value: 0x7f080053 - public const int btn_create = 2131230803; + // aapt resource value: 0x7f09008c + public const int afc_widget_search_view_button_search = 2131296396; - // aapt resource value: 0x7f0800b8 - public const int btn_length12 = 2131230904; + // aapt resource value: 0x7f09008d + public const int afc_widget_search_view_textview_search = 2131296397; - // aapt resource value: 0x7f0800b7 - public const int btn_length16 = 2131230903; + // aapt resource value: 0x7f09000b + public const int always = 2131296267; - // aapt resource value: 0x7f0800ba - public const int btn_length6 = 2131230906; + // aapt resource value: 0x7f090065 + public const int android_filechooser_contrib = 2131296357; - // aapt resource value: 0x7f0800b9 - public const int btn_length8 = 2131230905; + // aapt resource value: 0x7f090062 + public const int author = 2131296354; - // aapt resource value: 0x7f080104 - public const int button = 2131230980; + // aapt resource value: 0x7f090011 + public const int beginning = 2131296273; - // aapt resource value: 0x7f080105 - public const int button_text = 2131230981; + // aapt resource value: 0x7f0900b2 + public const int binaries = 2131296434; - // aapt resource value: 0x7f0800ca - public const int cancel = 2131230922; + // aapt resource value: 0x7f09002f + public const int black = 2131296303; - // aapt resource value: 0x7f0800b1 - public const int cancel_button = 2131230897; + // aapt resource value: 0x7f09002c + public const int bold = 2131296300; - // aapt resource value: 0x7f0800c7 - public const int cancel_insert_element = 2131230919; + // aapt resource value: 0x7f090028 + public const int book_now = 2131296296; - // aapt resource value: 0x7f080046 - public const int candidates = 2131230790; + // aapt resource value: 0x7f0900c4 + public const int bottom_bar = 2131296452; - // aapt resource value: 0x7f080117 - public const int cbCaseSensitive = 2131230999; + // aapt resource value: 0x7f0900f2 + public const int bottom_layout = 2131296498; - // aapt resource value: 0x7f080118 - public const int cbExcludeExpiredEntries = 2131231000; + // aapt resource value: 0x7f0900ed + public const int browse_button = 2131296493; - // aapt resource value: 0x7f08010d - public const int cbRegEx = 2131230989; + // aapt resource value: 0x7f090147 + public const int btnPluginsOnline = 2131296583; - // aapt resource value: 0x7f080116 - public const int cbSearchInGroupName = 2131230998; + // aapt resource value: 0x7f090093 + public const int btn_change_location = 2131296403; - // aapt resource value: 0x7f080113 - public const int cbSearchInNotes = 2131230995; + // aapt resource value: 0x7f09009c + public const int btn_create = 2131296412; - // aapt resource value: 0x7f080114 - public const int cbSearchInOtherStrings = 2131230996; + // aapt resource value: 0x7f090100 + public const int btn_length12 = 2131296512; - // aapt resource value: 0x7f080112 - public const int cbSearchInPassword = 2131230994; + // aapt resource value: 0x7f0900ff + public const int btn_length16 = 2131296511; - // aapt resource value: 0x7f080115 - public const int cbSearchInTags = 2131230997; + // aapt resource value: 0x7f090102 + public const int btn_length6 = 2131296514; - // aapt resource value: 0x7f08010f - public const int cbSearchInTitle = 2131230991; + // aapt resource value: 0x7f090101 + public const int btn_length8 = 2131296513; - // aapt resource value: 0x7f080110 - public const int cbSearchInUrl = 2131230992; + // aapt resource value: 0x7f090150 + public const int button = 2131296592; - // aapt resource value: 0x7f080111 - public const int cbSearchInUsername = 2131230993; + // aapt resource value: 0x7f090151 + public const int button_text = 2131296593; - // aapt resource value: 0x7f0800c3 - public const int cb_brackets = 2131230915; + // aapt resource value: 0x7f090022 + public const int buyButton = 2131296290; - // aapt resource value: 0x7f0800be - public const int cb_digits = 2131230910; + // aapt resource value: 0x7f090027 + public const int buy_now = 2131296295; - // aapt resource value: 0x7f0800f8 - public const int cb_enabled = 2131230968; + // aapt resource value: 0x7f090026 + public const int buy_with_google = 2131296294; - // aapt resource value: 0x7f0800bd - public const int cb_lowercase = 2131230909; + // aapt resource value: 0x7f090112 + public const int cancel = 2131296530; - // aapt resource value: 0x7f0800bf - public const int cb_minus = 2131230911; + // aapt resource value: 0x7f0900f9 + public const int cancel_button = 2131296505; - // aapt resource value: 0x7f0800c1 - public const int cb_space = 2131230913; + // aapt resource value: 0x7f09010f + public const int cancel_insert_element = 2131296527; - // aapt resource value: 0x7f0800c2 - public const int cb_specials = 2131230914; + // aapt resource value: 0x7f09008f + public const int candidates = 2131296399; - // aapt resource value: 0x7f0800c0 - public const int cb_underline = 2131230912; + // aapt resource value: 0x7f090162 + public const int cbCaseSensitive = 2131296610; - // aapt resource value: 0x7f0800bc - public const int cb_uppercase = 2131230908; + // aapt resource value: 0x7f090163 + public const int cbExcludeExpiredEntries = 2131296611; - // aapt resource value: 0x7f080018 - public const int contributors_title = 2131230744; + // aapt resource value: 0x7f090158 + public const int cbRegEx = 2131296600; - // aapt resource value: 0x7f0800a8 - public const int create = 2131230888; + // aapt resource value: 0x7f090161 + public const int cbSearchInGroupName = 2131296609; - // aapt resource value: 0x7f080128 - public const int cred_password = 2131231016; + // aapt resource value: 0x7f09015e + public const int cbSearchInNotes = 2131296606; - // aapt resource value: 0x7f080129 - public const int cred_remember_mode = 2131231017; + // aapt resource value: 0x7f09015f + public const int cbSearchInOtherStrings = 2131296607; - // aapt resource value: 0x7f080127 - public const int cred_username = 2131231015; + // aapt resource value: 0x7f09015d + public const int cbSearchInPassword = 2131296605; - // aapt resource value: 0x7f08005d - public const int delete_extra = 2131230813; + // aapt resource value: 0x7f090160 + public const int cbSearchInTags = 2131296608; - // aapt resource value: 0x7f0800f3 - public const int deny_button = 2131230963; + // aapt resource value: 0x7f09015a + public const int cbSearchInTitle = 2131296602; - // aapt resource value: 0x7f080017 - public const int disclaimer = 2131230743; + // aapt resource value: 0x7f09015b + public const int cbSearchInUrl = 2131296603; - // aapt resource value: 0x7f080016 - public const int disclaimer_title = 2131230742; + // aapt resource value: 0x7f09015c + public const int cbSearchInUsername = 2131296604; - // aapt resource value: 0x7f08000a - public const int divider1 = 2131230730; + // aapt resource value: 0x7f09010b + public const int cb_brackets = 2131296523; - // aapt resource value: 0x7f08000e - public const int divider2 = 2131230734; + // aapt resource value: 0x7f090106 + public const int cb_digits = 2131296518; - // aapt resource value: 0x7f080015 - public const int divider3 = 2131230741; + // aapt resource value: 0x7f090145 + public const int cb_enabled = 2131296581; - // aapt resource value: 0x7f080014 - public const int donate = 2131230740; + // aapt resource value: 0x7f090105 + public const int cb_lowercase = 2131296517; - // aapt resource value: 0x7f080056 - public const int donate_question = 2131230806; + // aapt resource value: 0x7f090107 + public const int cb_minus = 2131296519; - // aapt resource value: 0x7f080072 - public const int edit_extra = 2131230834; + // aapt resource value: 0x7f090109 + public const int cb_space = 2131296521; - // aapt resource value: 0x7f0800f2 - public const int enable_quickunlock = 2131230962; + // aapt resource value: 0x7f09010a + public const int cb_specials = 2131296522; - // aapt resource value: 0x7f080069 - public const int entry_binaries_label = 2131230825; + // aapt resource value: 0x7f090108 + public const int cb_underline = 2131296520; - // aapt resource value: 0x7f080066 - public const int entry_comment = 2131230822; + // aapt resource value: 0x7f090104 + public const int cb_uppercase = 2131296516; - // aapt resource value: 0x7f080065 - public const int entry_comment_label = 2131230821; + // aapt resource value: 0x7f090043 + public const int checkbox = 2131296323; - // aapt resource value: 0x7f08004f - public const int entry_confpassword = 2131230799; + // aapt resource value: 0x7f090029 + public const int classic = 2131296297; - // aapt resource value: 0x7f080080 - public const int entry_contents = 2131230848; + // aapt resource value: 0x7f09000d + public const int collapseActionView = 2131296269; - // aapt resource value: 0x7f080098 - public const int entry_created = 2131230872; + // aapt resource value: 0x7f090061 + public const int contributors_title = 2131296353; - // aapt resource value: 0x7f080097 - public const int entry_created_label = 2131230871; + // aapt resource value: 0x7f0900f0 + public const int create = 2131296496; - // aapt resource value: 0x7f08007f - public const int entry_divider2 = 2131230847; + // aapt resource value: 0x7f090174 + public const int cred_password = 2131296628; - // aapt resource value: 0x7f08007d - public const int entry_edit = 2131230845; + // aapt resource value: 0x7f090175 + public const int cred_remember_mode = 2131296629; - // aapt resource value: 0x7f080071 - public const int entry_expires = 2131230833; + // aapt resource value: 0x7f090173 + public const int cred_username = 2131296627; - // aapt resource value: 0x7f080070 - public const int entry_expires_checkbox = 2131230832; + // aapt resource value: 0x7f09003e + public const int default_activity_button = 2131296318; - // aapt resource value: 0x7f08006f - public const int entry_expires_label = 2131230831; + // aapt resource value: 0x7f0900a5 + public const int delete_extra = 2131296421; - // aapt resource value: 0x7f080076 - public const int entry_extra = 2131230838; + // aapt resource value: 0x7f090140 + public const int deny_button = 2131296576; - // aapt resource value: 0x7f080086 - public const int entry_group_name = 2131230854; + // aapt resource value: 0x7f09000e + public const int dialog = 2131296270; - // aapt resource value: 0x7f080083 - public const int entry_group_name_label = 2131230851; + // aapt resource value: 0x7f090008 + public const int disableHome = 2131296264; - // aapt resource value: 0x7f080077 - public const int entry_icon = 2131230839; + // aapt resource value: 0x7f090060 + public const int disclaimer = 2131296352; - // aapt resource value: 0x7f08009b - public const int entry_modified = 2131230875; + // aapt resource value: 0x7f09005f + public const int disclaimer_title = 2131296351; - // aapt resource value: 0x7f08009a - public const int entry_modified_label = 2131230874; + // aapt resource value: 0x7f090053 + public const int divider1 = 2131296339; - // aapt resource value: 0x7f08007e - public const int entry_move = 2131230846; + // aapt resource value: 0x7f090057 + public const int divider2 = 2131296343; - // aapt resource value: 0x7f08006e - public const int entry_override_url = 2131230830; + // aapt resource value: 0x7f09005e + public const int divider3 = 2131296350; - // aapt resource value: 0x7f08006d - public const int entry_override_url_label = 2131230829; + // aapt resource value: 0x7f09005d + public const int donate = 2131296349; - // aapt resource value: 0x7f08004e - public const int entry_password = 2131230798; + // aapt resource value: 0x7f09009f + public const int donate_question = 2131296415; - // aapt resource value: 0x7f080063 - public const int entry_password_label = 2131230819; + // aapt resource value: 0x7f09000f + public const int dropdown = 2131296271; - // aapt resource value: 0x7f080106 - public const int entry_save = 2131230982; + // aapt resource value: 0x7f0900ba + public const int edit_extra = 2131296442; - // aapt resource value: 0x7f080107 - public const int entry_save_cancel = 2131230983; + // aapt resource value: 0x7f090046 + public const int edit_query = 2131296326; - // aapt resource value: 0x7f08005e - public const int entry_scroll = 2131230814; + // aapt resource value: 0x7f09013f + public const int enable_quickunlock = 2131296575; - // aapt resource value: 0x7f080081 - public const int entry_table = 2131230849; + // aapt resource value: 0x7f090013 + public const int end = 2131296275; - // aapt resource value: 0x7f08006c - public const int entry_tags = 2131230828; + // aapt resource value: 0x7f0900b1 + public const int entry_binaries_label = 2131296433; - // aapt resource value: 0x7f08006b - public const int entry_tags_label = 2131230827; + // aapt resource value: 0x7f0900ae + public const int entry_comment = 2131296430; - // aapt resource value: 0x7f080078 - public const int entry_text = 2131230840; + // aapt resource value: 0x7f0900ad + public const int entry_comment_label = 2131296429; - // aapt resource value: 0x7f080079 - public const int entry_text_detail = 2131230841; + // aapt resource value: 0x7f090098 + public const int entry_confpassword = 2131296408; - // aapt resource value: 0x7f080060 - public const int entry_title = 2131230816; + // aapt resource value: 0x7f0900c8 + public const int entry_contents = 2131296456; - // aapt resource value: 0x7f080062 - public const int entry_url = 2131230818; + // aapt resource value: 0x7f0900e0 + public const int entry_created = 2131296480; - // aapt resource value: 0x7f08008c - public const int entry_url_label = 2131230860; + // aapt resource value: 0x7f0900df + public const int entry_created_label = 2131296479; - // aapt resource value: 0x7f080061 - public const int entry_user_name = 2131230817; + // aapt resource value: 0x7f0900c7 + public const int entry_divider2 = 2131296455; - // aapt resource value: 0x7f080088 - public const int entry_user_name_label = 2131230856; + // aapt resource value: 0x7f0900c5 + public const int entry_edit = 2131296453; - // aapt resource value: 0x7f080092 - public const int entryfield_container_comment = 2131230866; + // aapt resource value: 0x7f0900b9 + public const int entry_expires = 2131296441; - // aapt resource value: 0x7f080096 - public const int entryfield_container_created = 2131230870; + // aapt resource value: 0x7f0900b8 + public const int entry_expires_checkbox = 2131296440; - // aapt resource value: 0x7f08009c - public const int entryfield_container_expires = 2131230876; + // aapt resource value: 0x7f0900b7 + public const int entry_expires_label = 2131296439; - // aapt resource value: 0x7f080099 - public const int entryfield_container_modified = 2131230873; + // aapt resource value: 0x7f0900be + public const int entry_extra = 2131296446; - // aapt resource value: 0x7f080095 - public const int entryfield_container_overrideurl = 2131230869; + // aapt resource value: 0x7f0900ce + public const int entry_group_name = 2131296462; - // aapt resource value: 0x7f08008f - public const int entryfield_container_password = 2131230863; + // aapt resource value: 0x7f0900cb + public const int entry_group_name_label = 2131296459; - // aapt resource value: 0x7f080094 - public const int entryfield_container_tags = 2131230868; + // aapt resource value: 0x7f0900bf + public const int entry_icon = 2131296447; - // aapt resource value: 0x7f08008b - public const int entryfield_container_url = 2131230859; + // aapt resource value: 0x7f0900e3 + public const int entry_modified = 2131296483; - // aapt resource value: 0x7f080087 - public const int entryfield_container_username = 2131230855; + // aapt resource value: 0x7f0900e2 + public const int entry_modified_label = 2131296482; - // aapt resource value: 0x7f080082 - public const int entryfield_group_container = 2131230850; + // aapt resource value: 0x7f0900c6 + public const int entry_move = 2131296454; - // aapt resource value: 0x7f080074 - public const int extra_container = 2131230836; + // aapt resource value: 0x7f0900b6 + public const int entry_override_url = 2131296438; - // aapt resource value: 0x7f080093 - public const int extra_strings = 2131230867; + // aapt resource value: 0x7f0900b5 + public const int entry_override_url_label = 2131296437; - // aapt resource value: 0x7f080073 - public const int extra_title_container = 2131230835; + // aapt resource value: 0x7f090097 + public const int entry_password = 2131296407; - // aapt resource value: 0x7f080075 - public const int extra_vdots = 2131230837; + // aapt resource value: 0x7f0900ab + public const int entry_password_label = 2131296427; - // aapt resource value: 0x7f080010 - public const int feedback = 2131230736; + // aapt resource value: 0x7f090152 + public const int entry_save = 2131296594; - // aapt resource value: 0x7f08000f - public const int feedback_title = 2131230735; + // aapt resource value: 0x7f090153 + public const int entry_save_cancel = 2131296595; - // aapt resource value: 0x7f08009d - public const int file_filename = 2131230877; + // aapt resource value: 0x7f0900a6 + public const int entry_scroll = 2131296422; - // aapt resource value: 0x7f08009e - public const int file_listtop = 2131230878; + // aapt resource value: 0x7f0900c9 + public const int entry_table = 2131296457; - // aapt resource value: 0x7f0800ad - public const int file_select = 2131230893; + // aapt resource value: 0x7f0900b4 + public const int entry_tags = 2131296436; - // aapt resource value: 0x7f0800db - public const int filename = 2131230939; + // aapt resource value: 0x7f0900b3 + public const int entry_tags_label = 2131296435; - // aapt resource value: 0x7f0800a3 - public const int filename_form = 2131230883; + // aapt resource value: 0x7f0900c0 + public const int entry_text = 2131296448; - // aapt resource value: 0x7f0800d8 - public const int filename_group = 2131230936; + // aapt resource value: 0x7f0900c1 + public const int entry_text_detail = 2131296449; - // aapt resource value: 0x7f0800d9 - public const int filename_label = 2131230937; + // aapt resource value: 0x7f0900a8 + public const int entry_title = 2131296424; - // aapt resource value: 0x7f0800da - public const int filenamescroll = 2131230938; + // aapt resource value: 0x7f0900aa + public const int entry_url = 2131296426; - // aapt resource value: 0x7f080048 - public const int filestorage_label = 2131230792; + // aapt resource value: 0x7f0900d4 + public const int entry_url_label = 2131296468; - // aapt resource value: 0x7f080047 - public const int filestorage_logo = 2131230791; + // aapt resource value: 0x7f0900a9 + public const int entry_user_name = 2131296425; - // aapt resource value: 0x7f0800a9 - public const int fnv_cancel = 2131230889; + // aapt resource value: 0x7f0900d0 + public const int entry_user_name_label = 2131296464; - // aapt resource value: 0x7f0800ae - public const int fssa_progress_bar = 2131230894; + // aapt resource value: 0x7f0900da + public const int entryfield_container_comment = 2131296474; - // aapt resource value: 0x7f08001a - public const int further_authors = 2131230746; + // aapt resource value: 0x7f0900de + public const int entryfield_container_created = 2131296478; - // aapt resource value: 0x7f08004c - public const int generate_button = 2131230796; + // aapt resource value: 0x7f0900e4 + public const int entryfield_container_expires = 2131296484; - // aapt resource value: 0x7f0800b5 - public const int generate_password_button = 2131230901; + // aapt resource value: 0x7f0900e1 + public const int entryfield_container_modified = 2131296481; - // aapt resource value: 0x7f08007a - public const int group_detail = 2131230842; + // aapt resource value: 0x7f0900dd + public const int entryfield_container_overrideurl = 2131296477; - // aapt resource value: 0x7f0800cb - public const int group_icon = 2131230923; + // aapt resource value: 0x7f0900d7 + public const int entryfield_container_password = 2131296471; - // aapt resource value: 0x7f0800cd - public const int group_label = 2131230925; + // aapt resource value: 0x7f0900dc + public const int entryfield_container_tags = 2131296476; - // aapt resource value: 0x7f0800c8 - public const int group_name = 2131230920; + // aapt resource value: 0x7f0900d3 + public const int entryfield_container_url = 2131296467; - // aapt resource value: 0x7f080085 - public const int group_name_vdots = 2131230853; + // aapt resource value: 0x7f0900cf + public const int entryfield_container_username = 2131296463; - // aapt resource value: 0x7f0800cc - public const int group_text = 2131230924; + // aapt resource value: 0x7f0900ca + public const int entryfield_group_container = 2131296458; - // aapt resource value: 0x7f080084 - public const int groupname_container = 2131230852; + // aapt resource value: 0x7f09003c + public const int expand_activities_button = 2131296316; - // aapt resource value: 0x7f080126 - public const int help = 2131231014; + // aapt resource value: 0x7f090042 + public const int expanded_menu = 2131296322; - // aapt resource value: 0x7f080004 - public const int hybrid = 2131230724; + // aapt resource value: 0x7f0900bc + public const int extra_container = 2131296444; - // aapt resource value: 0x7f0800ce - public const int icon = 2131230926; + // aapt resource value: 0x7f0900db + public const int extra_strings = 2131296475; - // aapt resource value: 0x7f08005f - public const int icon_button = 2131230815; + // aapt resource value: 0x7f0900bb + public const int extra_title_container = 2131296443; - // aapt resource value: 0x7f0800cf - public const int icon_image = 2131230927; + // aapt resource value: 0x7f0900bd + public const int extra_vdots = 2131296445; - // aapt resource value: 0x7f0800d0 - public const int icon_text = 2131230928; + // aapt resource value: 0x7f090059 + public const int feedback = 2131296345; - // aapt resource value: 0x7f080102 - public const int image = 2131230978; + // aapt resource value: 0x7f090058 + public const int feedback_title = 2131296344; - // aapt resource value: 0x7f0800d4 - public const int imgIcon = 2131230932; + // aapt resource value: 0x7f0900e5 + public const int file_filename = 2131296485; - // aapt resource value: 0x7f0800ab - public const int imglogo = 2131230891; + // aapt resource value: 0x7f0900e6 + public const int file_listtop = 2131296486; - // aapt resource value: 0x7f080057 - public const int imgoktfest = 2131230807; + // aapt resource value: 0x7f0900f5 + public const int file_select = 2131296501; - // aapt resource value: 0x7f0800e3 - public const int init_otp = 2131230947; + // aapt resource value: 0x7f090127 + public const int filename = 2131296551; - // aapt resource value: 0x7f080123 - public const int initial_dir = 2131231011; + // aapt resource value: 0x7f0900eb + public const int filename_form = 2131296491; - // aapt resource value: 0x7f0800c6 - public const int insert_element = 2131230918; + // aapt resource value: 0x7f090124 + public const int filename_group = 2131296548; - // aapt resource value: 0x7f080006 - public const int italic = 2131230726; + // aapt resource value: 0x7f090125 + public const int filename_label = 2131296549; - // aapt resource value: 0x7f08001d - public const int keyboard_contrib = 2131230749; + // aapt resource value: 0x7f090126 + public const int filenamescroll = 2131296550; - // aapt resource value: 0x7f0800df - public const int keyfileLine = 2131230943; + // aapt resource value: 0x7f090091 + public const int filestorage_label = 2131296401; - // aapt resource value: 0x7f080052 - public const int keyfile_filename = 2131230802; + // aapt resource value: 0x7f090090 + public const int filestorage_logo = 2131296400; - // aapt resource value: 0x7f080050 - public const int keyfile_title = 2131230800; + // aapt resource value: 0x7f0900f1 + public const int fnv_cancel = 2131296497; - // aapt resource value: 0x7f0800f1 - public const int kill_app = 2131230961; + // aapt resource value: 0x7f0900f6 + public const int fssa_progress_bar = 2131296502; - // aapt resource value: 0x7f0800ac - public const int label_app_name = 2131230892; + // aapt resource value: 0x7f090063 + public const int further_authors = 2131296355; - // aapt resource value: 0x7f080049 - public const int label_filename = 2131230793; + // aapt resource value: 0x7f090095 + public const int generate_button = 2131296405; - // aapt resource value: 0x7f0800a4 - public const int label_open_by_filename = 2131230884; + // aapt resource value: 0x7f0900fd + public const int generate_password_button = 2131296509; - // aapt resource value: 0x7f0800a6 - public const int label_open_by_filename_details = 2131230886; + // aapt resource value: 0x7f09002a + public const int grayscale = 2131296298; - // aapt resource value: 0x7f08009f - public const int label_warning = 2131230879; + // aapt resource value: 0x7f0900c2 + public const int group_detail = 2131296450; - // aapt resource value: 0x7f0800bb - public const int length = 2131230907; + // aapt resource value: 0x7f090113 + public const int group_icon = 2131296531; - // aapt resource value: 0x7f0800b6 - public const int length_label = 2131230902; + // aapt resource value: 0x7f090115 + public const int group_label = 2131296533; - // aapt resource value: 0x7f08010c - public const int linearLayout1 = 2131230988; + // aapt resource value: 0x7f090110 + public const int group_name = 2131296528; - // aapt resource value: 0x7f080100 - public const int main_image = 2131230976; + // aapt resource value: 0x7f0900cd + public const int group_name_vdots = 2131296461; - // aapt resource value: 0x7f08013d - public const int menu_about = 2131231037; + // aapt resource value: 0x7f090114 + public const int group_text = 2131296532; - // aapt resource value: 0x7f08013e - public const int menu_app_settings = 2131231038; + // aapt resource value: 0x7f0900cc + public const int groupname_container = 2131296460; - // aapt resource value: 0x7f080143 - public const int menu_change_db = 2131231043; + // aapt resource value: 0x7f090172 + public const int help = 2131296626; - // aapt resource value: 0x7f08013c - public const int menu_donate = 2131231036; + // aapt resource value: 0x7f09001d + public const int holo_dark = 2131296285; - // aapt resource value: 0x7f08013a - public const int menu_lock = 2131231034; + // aapt resource value: 0x7f09001e + public const int holo_light = 2131296286; - // aapt resource value: 0x7f08013f - public const int menu_search = 2131231039; + // aapt resource value: 0x7f090014 + public const int home = 2131296276; - // aapt resource value: 0x7f080140 - public const int menu_search_advanced = 2131231040; + // aapt resource value: 0x7f090005 + public const int homeAsUp = 2131296261; - // aapt resource value: 0x7f080142 - public const int menu_sort = 2131231042; + // aapt resource value: 0x7f09001c + public const int hybrid = 2131296284; - // aapt resource value: 0x7f080141 - public const int menu_sync = 2131231041; + // aapt resource value: 0x7f090040 + public const int icon = 2131296320; - // aapt resource value: 0x7f08013b - public const int menu_toggle_pass = 2131231035; + // aapt resource value: 0x7f0900a7 + public const int icon_button = 2131296423; - // aapt resource value: 0x7f08012c - public const int mode_email = 2131231020; + // aapt resource value: 0x7f090116 + public const int icon_image = 2131296534; - // aapt resource value: 0x7f080131 - public const int mode_email_with_settings_key = 2131231025; + // aapt resource value: 0x7f090117 + public const int icon_text = 2131296535; - // aapt resource value: 0x7f08012d - public const int mode_im = 2131231021; + // aapt resource value: 0x7f09000a + public const int ifRoom = 2131296266; - // aapt resource value: 0x7f080132 - public const int mode_im_with_settings_key = 2131231026; + // aapt resource value: 0x7f09003d + public const int image = 2131296317; - // aapt resource value: 0x7f08012a - public const int mode_normal = 2131231018; + // aapt resource value: 0x7f09011b + public const int imgIcon = 2131296539; - // aapt resource value: 0x7f08012f - public const int mode_normal_with_settings_key = 2131231023; + // aapt resource value: 0x7f0900f3 + public const int imglogo = 2131296499; - // aapt resource value: 0x7f080134 - public const int mode_symbols = 2131231028; + // aapt resource value: 0x7f0900a0 + public const int imgoktfest = 2131296416; - // aapt resource value: 0x7f080135 - public const int mode_symbols_with_settings_key = 2131231029; + // aapt resource value: 0x7f090130 + public const int init_otp = 2131296560; - // aapt resource value: 0x7f08012b - public const int mode_url = 2131231019; + // aapt resource value: 0x7f09016f + public const int initial_dir = 2131296623; - // aapt resource value: 0x7f080130 - public const int mode_url_with_settings_key = 2131231024; + // aapt resource value: 0x7f09010e + public const int insert_element = 2131296526; - // aapt resource value: 0x7f08012e - public const int mode_webentry = 2131231022; + // aapt resource value: 0x7f09002d + public const int italic = 2131296301; - // aapt resource value: 0x7f080133 - public const int mode_webentry_with_settings_key = 2131231027; + // aapt resource value: 0x7f090066 + public const int keyboard_contrib = 2131296358; - // aapt resource value: 0x7f080059 - public const int no_donate = 2131230809; + // aapt resource value: 0x7f09012b + public const int keyfileLine = 2131296555; - // aapt resource value: 0x7f08011b - public const int no_results = 2131231003; + // aapt resource value: 0x7f09009b + public const int keyfile_filename = 2131296411; - // aapt resource value: 0x7f080000 - public const int none = 2131230720; + // aapt resource value: 0x7f09012c + public const int keyfile_heading = 2131296556; - // aapt resource value: 0x7f080001 - public const int normal = 2131230721; + // aapt resource value: 0x7f090099 + public const int keyfile_title = 2131296409; - // aapt resource value: 0x7f0800c9 - public const int ok = 2131230921; + // aapt resource value: 0x7f09013e + public const int kill_app = 2131296574; - // aapt resource value: 0x7f080058 - public const int ok_donate = 2131230808; + // aapt resource value: 0x7f0900f4 + public const int label_app_name = 2131296500; - // aapt resource value: 0x7f0800a7 - public const int open = 2131230887; + // aapt resource value: 0x7f090092 + public const int label_filename = 2131296402; - // aapt resource value: 0x7f0800e7 - public const int otp1 = 2131230951; + // aapt resource value: 0x7f09012d + public const int label_keyfilename = 2131296557; - // aapt resource value: 0x7f0800e8 - public const int otp2 = 2131230952; + // aapt resource value: 0x7f0900ec + public const int label_open_by_filename = 2131296492; - // aapt resource value: 0x7f0800e9 - public const int otp3 = 2131230953; + // aapt resource value: 0x7f0900ee + public const int label_open_by_filename_details = 2131296494; - // aapt resource value: 0x7f0800ea - public const int otp4 = 2131230954; + // aapt resource value: 0x7f0900e7 + public const int label_warning = 2131296487; - // aapt resource value: 0x7f0800eb - public const int otp5 = 2131230955; + // aapt resource value: 0x7f090103 + public const int length = 2131296515; - // aapt resource value: 0x7f0800ec - public const int otp6 = 2131230956; + // aapt resource value: 0x7f0900fe + public const int length_label = 2131296510; - // aapt resource value: 0x7f0800e5 - public const int otpEntry = 2131230949; + // aapt resource value: 0x7f090157 + public const int linearLayout1 = 2131296599; - // aapt resource value: 0x7f0800e2 - public const int otpInitView = 2131230946; + // aapt resource value: 0x7f090001 + public const int listMode = 2131296257; - // aapt resource value: 0x7f0800ed - public const int otpSecretLine = 2131230957; + // aapt resource value: 0x7f09003f + public const int list_item = 2131296319; - // aapt resource value: 0x7f0800e1 - public const int otpView = 2131230945; + // aapt resource value: 0x7f09014d + public const int main_image = 2131296589; - // aapt resource value: 0x7f0800e6 - public const int otp_expl = 2131230950; + // aapt resource value: 0x7f090024 + public const int match_parent = 2131296292; - // aapt resource value: 0x7f0800e4 - public const int otps_pending = 2131230948; + // aapt resource value: 0x7f090122 + public const int media_route_control_frame = 2131296546; - // aapt resource value: 0x7f0800ef - public const int otpsecret_format_spinner = 2131230959; + // aapt resource value: 0x7f090123 + public const int media_route_disconnect_button = 2131296547; - // aapt resource value: 0x7f08011d - public const int pass_conf_password = 2131231005; + // aapt resource value: 0x7f09011f + public const int media_route_list = 2131296543; - // aapt resource value: 0x7f0800e0 - public const int pass_keyfile = 2131230944; + // aapt resource value: 0x7f090120 + public const int media_route_volume_layout = 2131296544; - // aapt resource value: 0x7f0800f0 - public const int pass_ok = 2131230960; + // aapt resource value: 0x7f090121 + public const int media_route_volume_slider = 2131296545; - // aapt resource value: 0x7f0800ee - public const int pass_otpsecret = 2131230958; + // aapt resource value: 0x7f090189 + public const int menu_about = 2131296649; - // aapt resource value: 0x7f08011c - public const int pass_password = 2131231004; + // aapt resource value: 0x7f09018a + public const int menu_app_settings = 2131296650; - // aapt resource value: 0x7f0800b4 - public const int password = 2131230900; + // aapt resource value: 0x7f09018f + public const int menu_change_db = 2131296655; - // aapt resource value: 0x7f0800de - public const int passwordLine = 2131230942; + // aapt resource value: 0x7f090188 + public const int menu_donate = 2131296648; - // aapt resource value: 0x7f080090 - public const int password_container = 2131230864; + // aapt resource value: 0x7f090186 + public const int menu_lock = 2131296646; - // aapt resource value: 0x7f0800dc - public const int password_label = 2131230940; + // aapt resource value: 0x7f09018b + public const int menu_search = 2131296651; - // aapt resource value: 0x7f0800dd - public const int password_mode_spinner = 2131230941; + // aapt resource value: 0x7f09018c + public const int menu_search_advanced = 2131296652; - // aapt resource value: 0x7f080064 - public const int password_section = 2131230820; + // aapt resource value: 0x7f09018e + public const int menu_sort = 2131296654; - // aapt resource value: 0x7f08004b - public const int password_title = 2131230795; + // aapt resource value: 0x7f09018d + public const int menu_sync = 2131296653; - // aapt resource value: 0x7f080091 - public const int password_vdots = 2131230865; + // aapt resource value: 0x7f090187 + public const int menu_toggle_pass = 2131296647; - // aapt resource value: 0x7f08001b - public const int plugin1 = 2131230747; + // aapt resource value: 0x7f090012 + public const int middle = 2131296274; - // aapt resource value: 0x7f0800f4 - public const int plugin_scroll = 2131230964; + // aapt resource value: 0x7f090178 + public const int mode_email = 2131296632; - // aapt resource value: 0x7f08011f - public const int portsep = 2131231007; + // aapt resource value: 0x7f09017d + public const int mode_email_with_settings_key = 2131296637; - // aapt resource value: 0x7f080103 - public const int progress = 2131230979; + // aapt resource value: 0x7f090179 + public const int mode_im = 2131296633; - // aapt resource value: 0x7f08005c - public const int protection = 2131230812; + // aapt resource value: 0x7f09017e + public const int mode_im_with_settings_key = 2131296638; - // aapt resource value: 0x7f0800fb - public const int qu_filename = 2131230971; + // aapt resource value: 0x7f090176 + public const int mode_normal = 2131296630; - // aapt resource value: 0x7f080012 - public const int rate = 2131230738; + // aapt resource value: 0x7f09017b + public const int mode_normal_with_settings_key = 2131296635; - // aapt resource value: 0x7f080054 - public const int rounds = 2131230804; + // aapt resource value: 0x7f090180 + public const int mode_symbols = 2131296640; - // aapt resource value: 0x7f080055 - public const int rounds_explaination = 2131230805; + // aapt resource value: 0x7f090181 + public const int mode_symbols_with_settings_key = 2131296641; - // aapt resource value: 0x7f080002 - public const int satellite = 2131230722; + // aapt resource value: 0x7f090177 + public const int mode_url = 2131296631; - // aapt resource value: 0x7f0800f5 - public const int scopes_list = 2131230965; + // aapt resource value: 0x7f09017c + public const int mode_url_with_settings_key = 2131296636; - // aapt resource value: 0x7f0800f9 - public const int scopes_title = 2131230969; + // aapt resource value: 0x7f09017a + public const int mode_webentry = 2131296634; - // aapt resource value: 0x7f08010b - public const int scrollView1 = 2131230987; + // aapt resource value: 0x7f09017f + public const int mode_webentry_with_settings_key = 2131296639; - // aapt resource value: 0x7f08010a - public const int searchEditText = 2131230986; + // aapt resource value: 0x7f09002b + public const int monochrome = 2131296299; - // aapt resource value: 0x7f080109 - public const int search_button = 2131230985; + // aapt resource value: 0x7f090009 + public const int never = 2131296265; - // aapt resource value: 0x7f08010e - public const int search_in_label = 2131230990; + // aapt resource value: 0x7f0900a2 + public const int no_donate = 2131296418; - // aapt resource value: 0x7f080108 - public const int search_label = 2131230984; + // aapt resource value: 0x7f090166 + public const int no_results = 2131296614; - // aapt resource value: 0x7f080119 - public const int select_other_entry = 2131231001; + // aapt resource value: 0x7f090010 + public const int none = 2131296272; - // aapt resource value: 0x7f08011e - public const int sftp_host = 2131231006; + // aapt resource value: 0x7f090000 + public const int normal = 2131296256; - // aapt resource value: 0x7f080124 - public const int sftp_initial_dir = 2131231012; + // aapt resource value: 0x7f090111 + public const int ok = 2131296529; - // aapt resource value: 0x7f080122 - public const int sftp_password = 2131231010; + // aapt resource value: 0x7f0900a1 + public const int ok_donate = 2131296417; - // aapt resource value: 0x7f080120 - public const int sftp_port = 2131231008; + // aapt resource value: 0x7f0900ef + public const int open = 2131296495; - // aapt resource value: 0x7f080121 - public const int sftp_user = 2131231009; + // aapt resource value: 0x7f090134 + public const int otp1 = 2131296564; - // aapt resource value: 0x7f0800a2 - public const int start_create = 2131230882; + // aapt resource value: 0x7f090135 + public const int otp2 = 2131296565; - // aapt resource value: 0x7f080125 - public const int start_create_import = 2131231013; + // aapt resource value: 0x7f090136 + public const int otp3 = 2131296566; - // aapt resource value: 0x7f0800a0 - public const int start_open_file = 2131230880; + // aapt resource value: 0x7f090137 + public const int otp4 = 2131296567; - // aapt resource value: 0x7f0800a1 - public const int start_open_url = 2131230881; + // aapt resource value: 0x7f090138 + public const int otp5 = 2131296568; - // aapt resource value: 0x7f080011 - public const int suggest = 2131230737; + // aapt resource value: 0x7f090139 + public const int otp6 = 2131296569; - // aapt resource value: 0x7f080003 - public const int terrain = 2131230723; + // aapt resource value: 0x7f090132 + public const int otpEntry = 2131296562; - // aapt resource value: 0x7f080101 - public const int text = 2131230977; + // aapt resource value: 0x7f09012f + public const int otpInitView = 2131296559; - // aapt resource value: 0x7f0800af - public const int textView = 2131230895; + // aapt resource value: 0x7f09013a + public const int otpSecretLine = 2131296570; - // aapt resource value: 0x7f08005a - public const int title = 2131230810; + // aapt resource value: 0x7f09012e + public const int otpView = 2131296558; - // aapt resource value: 0x7f08004d - public const int toggle_password = 2131230797; + // aapt resource value: 0x7f090133 + public const int otp_expl = 2131296563; - // aapt resource value: 0x7f08007b - public const int top = 2131230843; + // aapt resource value: 0x7f090131 + public const int otps_pending = 2131296561; - // aapt resource value: 0x7f080013 - public const int translate = 2131230739; + // aapt resource value: 0x7f09013c + public const int otpsecret_format_spinner = 2131296572; - // aapt resource value: 0x7f0800f6 - public const int txtAuthor = 2131230966; + // aapt resource value: 0x7f090168 + public const int pass_conf_password = 2131296616; - // aapt resource value: 0x7f0800d5 - public const int txtLabel = 2131230933; + // aapt resource value: 0x7f090169 + public const int pass_keyfile = 2131296617; - // aapt resource value: 0x7f0800f7 - public const int txtShortDesc = 2131230967; + // aapt resource value: 0x7f09013d + public const int pass_ok = 2131296573; - // aapt resource value: 0x7f0800d7 - public const int txtStatus = 2131230935; + // aapt resource value: 0x7f09013b + public const int pass_otpsecret = 2131296571; - // aapt resource value: 0x7f0800d6 - public const int txtVersion = 2131230934; + // aapt resource value: 0x7f090167 + public const int pass_password = 2131296615; - // aapt resource value: 0x7f08008d - public const int url_container = 2131230861; + // aapt resource value: 0x7f0900fc + public const int password = 2131296508; - // aapt resource value: 0x7f08008e - public const int url_vdots = 2131230862; + // aapt resource value: 0x7f09012a + public const int passwordLine = 2131296554; - // aapt resource value: 0x7f080051 - public const int use_keyfile = 2131230801; + // aapt resource value: 0x7f0900d8 + public const int password_container = 2131296472; - // aapt resource value: 0x7f080089 - public const int username_container = 2131230857; + // aapt resource value: 0x7f090128 + public const int password_label = 2131296552; - // aapt resource value: 0x7f08008a - public const int username_vdots = 2131230858; + // aapt resource value: 0x7f090129 + public const int password_mode_spinner = 2131296553; - // aapt resource value: 0x7f08005b - public const int value = 2131230811; + // aapt resource value: 0x7f0900ac + public const int password_section = 2131296428; - // aapt resource value: 0x7f08000d - public const int versionB = 2131230733; + // aapt resource value: 0x7f090094 + public const int password_title = 2131296404; - // aapt resource value: 0x7f08000c - public const int versionX = 2131230732; + // aapt resource value: 0x7f0900d9 + public const int password_vdots = 2131296473; - // aapt resource value: 0x7f08000b - public const int version_title = 2131230731; + // aapt resource value: 0x7f090064 + public const int plugin1 = 2131296356; - // aapt resource value: 0x7f080007 - public const int white = 2131230727; + // aapt resource value: 0x7f090141 + public const int plugin_scroll = 2131296577; + + // aapt resource value: 0x7f09016b + public const int portsep = 2131296619; + + // aapt resource value: 0x7f09001f + public const int production = 2131296287; + + // aapt resource value: 0x7f09014f + public const int progress = 2131296591; + + // aapt resource value: 0x7f090018 + public const int progress_circular = 2131296280; + + // aapt resource value: 0x7f090019 + public const int progress_horizontal = 2131296281; + + // aapt resource value: 0x7f0900a4 + public const int protection = 2131296420; + + // aapt resource value: 0x7f090148 + public const int qu_filename = 2131296584; + + // aapt resource value: 0x7f090045 + public const int radio = 2131296325; + + // aapt resource value: 0x7f09005b + public const int rate = 2131296347; + + // aapt resource value: 0x7f09009d + public const int rounds = 2131296413; + + // aapt resource value: 0x7f09009e + public const int rounds_explaination = 2131296414; + + // aapt resource value: 0x7f090020 + public const int sandbox = 2131296288; + + // aapt resource value: 0x7f09001a + public const int satellite = 2131296282; + + // aapt resource value: 0x7f090142 + public const int scopes_list = 2131296578; + + // aapt resource value: 0x7f090146 + public const int scopes_title = 2131296582; + + // aapt resource value: 0x7f090156 + public const int scrollView1 = 2131296598; + + // aapt resource value: 0x7f090155 + public const int searchEditText = 2131296597; + + // aapt resource value: 0x7f090048 + public const int search_badge = 2131296328; + + // aapt resource value: 0x7f090047 + public const int search_bar = 2131296327; + + // aapt resource value: 0x7f090049 + public const int search_button = 2131296329; + + // aapt resource value: 0x7f09004e + public const int search_close_btn = 2131296334; + + // aapt resource value: 0x7f09004a + public const int search_edit_frame = 2131296330; + + // aapt resource value: 0x7f090050 + public const int search_go_btn = 2131296336; + + // aapt resource value: 0x7f090159 + public const int search_in_label = 2131296601; + + // aapt resource value: 0x7f090154 + public const int search_label = 2131296596; + + // aapt resource value: 0x7f09004b + public const int search_mag_icon = 2131296331; + + // aapt resource value: 0x7f09004c + public const int search_plate = 2131296332; + + // aapt resource value: 0x7f09004d + public const int search_src_text = 2131296333; + + // aapt resource value: 0x7f090051 + public const int search_voice_btn = 2131296337; + + // aapt resource value: 0x7f090164 + public const int select_other_entry = 2131296612; + + // aapt resource value: 0x7f090023 + public const int selectionDetails = 2131296291; + + // aapt resource value: 0x7f09016a + public const int sftp_host = 2131296618; + + // aapt resource value: 0x7f090170 + public const int sftp_initial_dir = 2131296624; + + // aapt resource value: 0x7f09016e + public const int sftp_password = 2131296622; + + // aapt resource value: 0x7f09016c + public const int sftp_port = 2131296620; + + // aapt resource value: 0x7f09016d + public const int sftp_user = 2131296621; + + // aapt resource value: 0x7f090044 + public const int shortcut = 2131296324; + + // aapt resource value: 0x7f090007 + public const int showCustom = 2131296263; + + // aapt resource value: 0x7f090004 + public const int showHome = 2131296260; + + // aapt resource value: 0x7f090006 + public const int showTitle = 2131296262; + + // aapt resource value: 0x7f090034 + public const int split_action_bar = 2131296308; + + // aapt resource value: 0x7f0900ea + public const int start_create = 2131296490; + + // aapt resource value: 0x7f090171 + public const int start_create_import = 2131296625; + + // aapt resource value: 0x7f0900e8 + public const int start_open_file = 2131296488; + + // aapt resource value: 0x7f0900e9 + public const int start_open_url = 2131296489; + + // aapt resource value: 0x7f090021 + public const int strict_sandbox = 2131296289; + + // aapt resource value: 0x7f09004f + public const int submit_area = 2131296335; + + // aapt resource value: 0x7f09005a + public const int suggest = 2131296346; + + // aapt resource value: 0x7f090002 + public const int tabMode = 2131296258; + + // aapt resource value: 0x7f09001b + public const int terrain = 2131296283; + + // aapt resource value: 0x7f09014e + public const int text = 2131296590; + + // aapt resource value: 0x7f0900f7 + public const int textView = 2131296503; + + // aapt resource value: 0x7f090041 + public const int title = 2131296321; + + // aapt resource value: 0x7f090096 + public const int toggle_password = 2131296406; + + // aapt resource value: 0x7f0900c3 + public const int top = 2131296451; + + // aapt resource value: 0x7f090036 + public const int top_action_bar = 2131296310; + + // aapt resource value: 0x7f09005c + public const int translate = 2131296348; + + // aapt resource value: 0x7f090143 + public const int txtAuthor = 2131296579; + + // aapt resource value: 0x7f09011c + public const int txtLabel = 2131296540; + + // aapt resource value: 0x7f090144 + public const int txtShortDesc = 2131296580; + + // aapt resource value: 0x7f09011e + public const int txtStatus = 2131296542; + + // aapt resource value: 0x7f09011d + public const int txtVersion = 2131296541; + + // aapt resource value: 0x7f090037 + public const int up = 2131296311; + + // aapt resource value: 0x7f0900d5 + public const int url_container = 2131296469; + + // aapt resource value: 0x7f0900d6 + public const int url_vdots = 2131296470; + + // aapt resource value: 0x7f090003 + public const int useLogo = 2131296259; + + // aapt resource value: 0x7f09009a + public const int use_keyfile = 2131296410; + + // aapt resource value: 0x7f0900d1 + public const int username_container = 2131296465; + + // aapt resource value: 0x7f0900d2 + public const int username_vdots = 2131296466; + + // aapt resource value: 0x7f0900a3 + public const int value = 2131296419; + + // aapt resource value: 0x7f090056 + public const int versionB = 2131296342; + + // aapt resource value: 0x7f090055 + public const int versionX = 2131296341; + + // aapt resource value: 0x7f090054 + public const int version_title = 2131296340; + + // aapt resource value: 0x7f09002e + public const int white = 2131296302; + + // aapt resource value: 0x7f09000c + public const int withText = 2131296268; + + // aapt resource value: 0x7f090025 + public const int wrap_content = 2131296293; static Id() { @@ -2958,95 +4071,101 @@ namespace keepass2android public partial class Integer { - // aapt resource value: 0x7f0b001b - public const int afc_afc_search_view_delay_time_submission = 2131427355; + // aapt resource value: 0x7f0d0000 + public const int abc_max_action_buttons = 2131558400; - // aapt resource value: 0x7f0b001a - public const int afc_lib_version_code = 2131427354; + // aapt resource value: 0x7f0d001d + public const int afc_afc_search_view_delay_time_submission = 2131558429; - // aapt resource value: 0x7f0b001d - public const int afc_pkey_display_sort_type_def = 2131427357; + // aapt resource value: 0x7f0d001c + public const int afc_lib_version_code = 2131558428; - // aapt resource value: 0x7f0b001c - public const int afc_pkey_display_view_type_def = 2131427356; + // aapt resource value: 0x7f0d001f + public const int afc_pkey_display_sort_type_def = 2131558431; - // aapt resource value: 0x7f0b0001 - public const int config_delay_after_preview = 2131427329; + // aapt resource value: 0x7f0d001e + public const int afc_pkey_display_view_type_def = 2131558430; - // aapt resource value: 0x7f0b0006 - public const int config_delay_before_key_repeat_start = 2131427334; + // aapt resource value: 0x7f0d0003 + public const int config_delay_after_preview = 2131558403; - // aapt resource value: 0x7f0b0000 - public const int config_delay_before_preview = 2131427328; + // aapt resource value: 0x7f0d0008 + public const int config_delay_before_key_repeat_start = 2131558408; - // aapt resource value: 0x7f0b0007 - public const int config_key_repeat_interval = 2131427335; + // aapt resource value: 0x7f0d0002 + public const int config_delay_before_preview = 2131558402; - // aapt resource value: 0x7f0b0008 - public const int config_long_press_key_timeout = 2131427336; + // aapt resource value: 0x7f0d0009 + public const int config_key_repeat_interval = 2131558409; - // aapt resource value: 0x7f0b0004 - public const int config_mini_keyboard_fadein_anim_time = 2131427332; + // aapt resource value: 0x7f0d000a + public const int config_long_press_key_timeout = 2131558410; - // aapt resource value: 0x7f0b0005 - public const int config_mini_keyboard_fadeout_anim_time = 2131427333; + // aapt resource value: 0x7f0d0006 + public const int config_mini_keyboard_fadein_anim_time = 2131558406; - // aapt resource value: 0x7f0b0009 - public const int config_multi_tap_key_timeout = 2131427337; + // aapt resource value: 0x7f0d0007 + public const int config_mini_keyboard_fadeout_anim_time = 2131558407; - // aapt resource value: 0x7f0b0002 - public const int config_preview_fadein_anim_time = 2131427330; + // aapt resource value: 0x7f0d000b + public const int config_multi_tap_key_timeout = 2131558411; - // aapt resource value: 0x7f0b0003 - public const int config_preview_fadeout_anim_time = 2131427331; + // aapt resource value: 0x7f0d0004 + public const int config_preview_fadein_anim_time = 2131558404; - // aapt resource value: 0x7f0b0010 - public const int key_delete = 2131427344; + // aapt resource value: 0x7f0d0005 + public const int config_preview_fadeout_anim_time = 2131558405; - // aapt resource value: 0x7f0b0013 - public const int key_f1 = 2131427347; + // aapt resource value: 0x7f0d0001 + public const int google_play_services_version = 2131558401; - // aapt resource value: 0x7f0b0014 - public const int key_kp2a = 2131427348; + // aapt resource value: 0x7f0d0012 + public const int key_delete = 2131558418; - // aapt resource value: 0x7f0b0017 - public const int key_kp2a_alpha = 2131427351; + // aapt resource value: 0x7f0d0015 + public const int key_f1 = 2131558421; - // aapt resource value: 0x7f0b0019 - public const int key_kp2a_lock = 2131427353; + // aapt resource value: 0x7f0d0016 + public const int key_kp2a = 2131558422; - // aapt resource value: 0x7f0b0016 - public const int key_kp2a_pass = 2131427350; + // aapt resource value: 0x7f0d0019 + public const int key_kp2a_alpha = 2131558425; - // aapt resource value: 0x7f0b0018 - public const int key_kp2a_switch = 2131427352; + // aapt resource value: 0x7f0d001b + public const int key_kp2a_lock = 2131558427; - // aapt resource value: 0x7f0b0015 - public const int key_kp2a_user = 2131427349; + // aapt resource value: 0x7f0d0018 + public const int key_kp2a_pass = 2131558424; - // aapt resource value: 0x7f0b000c - public const int key_return = 2131427340; + // aapt resource value: 0x7f0d001a + public const int key_kp2a_switch = 2131558426; - // aapt resource value: 0x7f0b0011 - public const int key_settings = 2131427345; + // aapt resource value: 0x7f0d0017 + public const int key_kp2a_user = 2131558423; - // aapt resource value: 0x7f0b000e - public const int key_shift = 2131427342; + // aapt resource value: 0x7f0d000e + public const int key_return = 2131558414; - // aapt resource value: 0x7f0b000d - public const int key_space = 2131427341; + // aapt resource value: 0x7f0d0013 + public const int key_settings = 2131558419; - // aapt resource value: 0x7f0b000f - public const int key_symbol = 2131427343; + // aapt resource value: 0x7f0d0010 + public const int key_shift = 2131558416; - // aapt resource value: 0x7f0b000b - public const int key_tab = 2131427339; + // aapt resource value: 0x7f0d000f + public const int key_space = 2131558415; - // aapt resource value: 0x7f0b0012 - public const int key_voice = 2131427346; + // aapt resource value: 0x7f0d0011 + public const int key_symbol = 2131558417; - // aapt resource value: 0x7f0b000a - public const int vibrate_duration_ms = 2131427338; + // aapt resource value: 0x7f0d000d + public const int key_tab = 2131558413; + + // aapt resource value: 0x7f0d0014 + public const int key_voice = 2131558420; + + // aapt resource value: 0x7f0d000c + public const int vibrate_duration_ms = 2131558412; static Integer() { @@ -3062,232 +4181,316 @@ namespace keepass2android { // aapt resource value: 0x7f030000 - public const int about = 2130903040; + public const int abc_action_bar_decor = 2130903040; // aapt resource value: 0x7f030001 - public const int afc_activity_filechooser = 2130903041; + public const int abc_action_bar_decor_include = 2130903041; // aapt resource value: 0x7f030002 - public const int afc_button_location = 2130903042; + public const int abc_action_bar_decor_overlay = 2130903042; // aapt resource value: 0x7f030003 - public const int afc_context_menu_tiem = 2130903043; + public const int abc_action_bar_home = 2130903043; // aapt resource value: 0x7f030004 - public const int afc_context_menu_view = 2130903044; + public const int abc_action_bar_tab = 2130903044; // aapt resource value: 0x7f030005 - public const int afc_file_item = 2130903045; + public const int abc_action_bar_tabbar = 2130903045; // aapt resource value: 0x7f030006 - public const int afc_fragment_files = 2130903046; + public const int abc_action_bar_title_item = 2130903046; // aapt resource value: 0x7f030007 - public const int afc_fragment_files_large = 2130903047; + public const int abc_action_bar_view_list_nav_layout = 2130903047; // aapt resource value: 0x7f030008 - public const int afc_gridview_files = 2130903048; + public const int abc_action_menu_item_layout = 2130903048; // aapt resource value: 0x7f030009 - public const int afc_listview_files = 2130903049; + public const int abc_action_menu_layout = 2130903049; // aapt resource value: 0x7f03000a - public const int afc_settings_sort_view = 2130903050; + public const int abc_action_mode_bar = 2130903050; // aapt resource value: 0x7f03000b - public const int afc_simple_text_input_view = 2130903051; + public const int abc_action_mode_close_item = 2130903051; // aapt resource value: 0x7f03000c - public const int afc_view_loading = 2130903052; + public const int abc_activity_chooser_view = 2130903052; // aapt resource value: 0x7f03000d - public const int afc_view_locations_divider = 2130903053; + public const int abc_activity_chooser_view_include = 2130903053; // aapt resource value: 0x7f03000e - public const int afc_widget_search_view = 2130903054; + public const int abc_activity_chooser_view_list_item = 2130903054; // aapt resource value: 0x7f03000f - public const int bubble_text = 2130903055; + public const int abc_expanded_menu_layout = 2130903055; // aapt resource value: 0x7f030010 - public const int candidate_preview = 2130903056; + public const int abc_list_menu_item_checkbox = 2130903056; // aapt resource value: 0x7f030011 - public const int candidates = 2130903057; + public const int abc_list_menu_item_icon = 2130903057; // aapt resource value: 0x7f030012 - public const int create_database = 2130903058; + public const int abc_list_menu_item_layout = 2130903058; // aapt resource value: 0x7f030013 - public const int database_settings = 2130903059; + public const int abc_list_menu_item_radio = 2130903059; // aapt resource value: 0x7f030014 - public const int donate = 2130903060; + public const int abc_popup_menu_item_layout = 2130903060; // aapt resource value: 0x7f030015 - public const int donate_bday = 2130903061; + public const int abc_search_dropdown_item_icons_2line = 2130903061; // aapt resource value: 0x7f030016 - public const int donate_bdaymissed = 2130903062; + public const int abc_search_view = 2130903062; // aapt resource value: 0x7f030017 - public const int edit_extra_string_dialog = 2130903063; + public const int abc_simple_decor = 2130903063; // aapt resource value: 0x7f030018 - public const int entry_edit = 2130903064; + public const int about = 2130903064; // aapt resource value: 0x7f030019 - public const int entry_edit_section = 2130903065; + public const int afc_activity_filechooser = 2130903065; // aapt resource value: 0x7f03001a - public const int entry_extrastring_title = 2130903066; + public const int afc_button_location = 2130903066; // aapt resource value: 0x7f03001b - public const int entry_extrastring_value = 2130903067; + public const int afc_context_menu_tiem = 2130903067; // aapt resource value: 0x7f03001c - public const int entry_list_entry = 2130903068; + public const int afc_context_menu_view = 2130903068; // aapt resource value: 0x7f03001d - public const int entry_section = 2130903069; + public const int afc_file_item = 2130903069; // aapt resource value: 0x7f03001e - public const int entry_view = 2130903070; + public const int afc_fragment_files = 2130903070; // aapt resource value: 0x7f03001f - public const int entry_view_contents = 2130903071; + public const int afc_fragment_files_large = 2130903071; // aapt resource value: 0x7f030020 - public const int entry_view_test = 2130903072; + public const int afc_gridview_files = 2130903072; // aapt resource value: 0x7f030021 - public const int file_row = 2130903073; + public const int afc_listview_files = 2130903073; // aapt resource value: 0x7f030022 - public const int file_selection = 2130903074; + public const int afc_settings_sort_view = 2130903074; // aapt resource value: 0x7f030023 - public const int file_selection_buttons = 2130903075; + public const int afc_simple_text_input_view = 2130903075; // aapt resource value: 0x7f030024 - public const int file_selection_filename = 2130903076; + public const int afc_view_loading = 2130903076; // aapt resource value: 0x7f030025 - public const int file_selection_no_recent = 2130903077; + public const int afc_view_locations_divider = 2130903077; // aapt resource value: 0x7f030026 - public const int file_storage_setup = 2130903078; + public const int afc_widget_search_view = 2130903078; // aapt resource value: 0x7f030027 - public const int filestorage_selection = 2130903079; + public const int bubble_text = 2130903079; // aapt resource value: 0x7f030028 - public const int filestorage_selection_listitem = 2130903080; + public const int candidate_preview = 2130903080; // aapt resource value: 0x7f030029 - public const int filestorage_selection_listitem_kp2a = 2130903081; + public const int candidates = 2130903081; // aapt resource value: 0x7f03002a - public const int generate_password = 2130903082; + public const int create_database = 2130903082; // aapt resource value: 0x7f03002b - public const int group_add_entry = 2130903083; + public const int database_settings = 2130903083; // aapt resource value: 0x7f03002c - public const int group_edit = 2130903084; + public const int donate = 2130903084; // aapt resource value: 0x7f03002d - public const int group_empty = 2130903085; + public const int donate_bday = 2130903085; // aapt resource value: 0x7f03002e - public const int group_list_entry = 2130903086; + public const int donate_bdaymissed = 2130903086; // aapt resource value: 0x7f03002f - public const int icon = 2130903087; + public const int edit_extra_string_dialog = 2130903087; // aapt resource value: 0x7f030030 - public const int icon_picker = 2130903088; + public const int entry_edit = 2130903088; // aapt resource value: 0x7f030031 - public const int input_basic = 2130903089; + public const int entry_edit_section = 2130903089; // aapt resource value: 0x7f030032 - public const int input_basic_highcontrast = 2130903090; + public const int entry_extrastring_title = 2130903090; // aapt resource value: 0x7f030033 - public const int input_gingerbread = 2130903091; + public const int entry_extrastring_value = 2130903091; // aapt resource value: 0x7f030034 - public const int input_stone_bold = 2130903092; + public const int entry_list_entry = 2130903092; // aapt resource value: 0x7f030035 - public const int input_stone_normal = 2130903093; + public const int entry_section = 2130903093; // aapt resource value: 0x7f030036 - public const int input_stone_popup = 2130903094; + public const int entry_view = 2130903094; // aapt resource value: 0x7f030037 - public const int InViewButton = 2130903095; + public const int entry_view_contents = 2130903095; // aapt resource value: 0x7f030038 - public const int key_preview = 2130903096; + public const int entry_view_test = 2130903096; // aapt resource value: 0x7f030039 - public const int keyboard_popup = 2130903097; + public const int file_row = 2130903097; // aapt resource value: 0x7f03003a - public const int ListViewPluginRow = 2130903098; + public const int file_selection = 2130903098; // aapt resource value: 0x7f03003b - public const int password = 2130903099; + public const int file_selection_buttons = 2130903099; // aapt resource value: 0x7f03003c - public const int plugin_details = 2130903100; + public const int file_selection_filename = 2130903100; // aapt resource value: 0x7f03003d - public const int plugin_list = 2130903101; + public const int file_selection_no_recent = 2130903101; // aapt resource value: 0x7f03003e - public const int QuickUnlock = 2130903102; + public const int file_storage_setup = 2130903102; // aapt resource value: 0x7f03003f - public const int QuickUnlock_Unused = 2130903103; + public const int filestorage_selection = 2130903103; // aapt resource value: 0x7f030040 - public const int recognition_status = 2130903104; + public const int filestorage_selection_listitem = 2130903104; // aapt resource value: 0x7f030041 - public const int SaveButton = 2130903105; + public const int filestorage_selection_listitem_kp2a = 2130903105; // aapt resource value: 0x7f030042 - public const int search = 2130903106; + public const int generate_password = 2130903106; // aapt resource value: 0x7f030043 - public const int searchurlresults = 2130903107; + public const int group_add_entry = 2130903107; // aapt resource value: 0x7f030044 - public const int searchurlresults_empty = 2130903108; + public const int group_edit = 2130903108; // aapt resource value: 0x7f030045 - public const int set_password = 2130903109; + public const int group_empty = 2130903109; // aapt resource value: 0x7f030046 - public const int sftpcredentials = 2130903110; + public const int group_list_entry = 2130903110; // aapt resource value: 0x7f030047 - public const int StartScreenButtons = 2130903111; + public const int icon = 2130903111; // aapt resource value: 0x7f030048 - public const int text_with_help = 2130903112; + public const int icon_picker = 2130903112; // aapt resource value: 0x7f030049 - public const int url_credentials = 2130903113; + public const int input_basic = 2130903113; // aapt resource value: 0x7f03004a - public const int voice_punctuation_hint = 2130903114; + public const int input_basic_highcontrast = 2130903114; // aapt resource value: 0x7f03004b - public const int voice_swipe_hint = 2130903115; + public const int input_gingerbread = 2130903115; + + // aapt resource value: 0x7f03004c + public const int input_stone_bold = 2130903116; + + // aapt resource value: 0x7f03004d + public const int input_stone_normal = 2130903117; + + // aapt resource value: 0x7f03004e + public const int input_stone_popup = 2130903118; + + // aapt resource value: 0x7f03004f + public const int InViewButton = 2130903119; + + // aapt resource value: 0x7f030050 + public const int key_preview = 2130903120; + + // aapt resource value: 0x7f030051 + public const int keyboard_popup = 2130903121; + + // aapt resource value: 0x7f030052 + public const int ListViewPluginRow = 2130903122; + + // aapt resource value: 0x7f030053 + public const int mr_media_route_chooser_dialog = 2130903123; + + // aapt resource value: 0x7f030054 + public const int mr_media_route_controller_dialog = 2130903124; + + // aapt resource value: 0x7f030055 + public const int mr_media_route_list_item = 2130903125; + + // aapt resource value: 0x7f030056 + public const int password = 2130903126; + + // aapt resource value: 0x7f030057 + public const int plugin_details = 2130903127; + + // aapt resource value: 0x7f030058 + public const int plugin_list = 2130903128; + + // aapt resource value: 0x7f030059 + public const int QuickUnlock = 2130903129; + + // aapt resource value: 0x7f03005a + public const int QuickUnlock_Unused = 2130903130; + + // aapt resource value: 0x7f03005b + public const int recognition_status = 2130903131; + + // aapt resource value: 0x7f03005c + public const int SaveButton = 2130903132; + + // aapt resource value: 0x7f03005d + public const int search = 2130903133; + + // aapt resource value: 0x7f03005e + public const int searchurlresults = 2130903134; + + // aapt resource value: 0x7f03005f + public const int searchurlresults_empty = 2130903135; + + // aapt resource value: 0x7f030060 + public const int set_password = 2130903136; + + // aapt resource value: 0x7f030061 + public const int sftpcredentials = 2130903137; + + // aapt resource value: 0x7f030062 + public const int StartScreenButtons = 2130903138; + + // aapt resource value: 0x7f030063 + public const int support_simple_spinner_dropdown_item = 2130903139; + + // aapt resource value: 0x7f030064 + public const int text_with_help = 2130903140; + + // aapt resource value: 0x7f030065 + public const int url_credentials = 2130903141; + + // aapt resource value: 0x7f030066 + public const int voice_punctuation_hint = 2130903142; + + // aapt resource value: 0x7f030067 + public const int voice_swipe_hint = 2130903143; static Layout() { @@ -3374,2264 +4577,2369 @@ namespace keepass2android public partial class String { - // aapt resource value: 0x7f090137 - public const int AboutText = 2131296567; + // aapt resource value: 0x7f07014f + public const int AboutText = 2131165519; - // aapt resource value: 0x7f090132 - public const int AcceptAllServerCertificates_default = 2131296562; + // aapt resource value: 0x7f07014a + public const int AcceptAllServerCertificates_default = 2131165514; - // aapt resource value: 0x7f090126 - public const int AcceptAllServerCertificates_key = 2131296550; + // aapt resource value: 0x7f07013e + public const int AcceptAllServerCertificates_key = 2131165502; - // aapt resource value: 0x7f090237 - public const int AcceptAllServerCertificates_summary = 2131296823; + // aapt resource value: 0x7f070252 + public const int AcceptAllServerCertificates_summary = 2131165778; - // aapt resource value: 0x7f090236 - public const int AcceptAllServerCertificates_title = 2131296822; + // aapt resource value: 0x7f070251 + public const int AcceptAllServerCertificates_title = 2131165777; - // aapt resource value: 0x7f09021f - public const int AddUrlToEntryDialog_text = 2131296799; + // aapt resource value: 0x7f07023a + public const int AddUrlToEntryDialog_text = 2131165754; - // aapt resource value: 0x7f09021e - public const int AddUrlToEntryDialog_title = 2131296798; + // aapt resource value: 0x7f070239 + public const int AddUrlToEntryDialog_title = 2131165753; - // aapt resource value: 0x7f090258 - public const int AddingEntry = 2131296856; + // aapt resource value: 0x7f070273 + public const int AddingEntry = 2131165811; - // aapt resource value: 0x7f090259 - public const int AddingGroup = 2131296857; + // aapt resource value: 0x7f070274 + public const int AddingGroup = 2131165812; - // aapt resource value: 0x7f090015 - public const int ApplicationName = 2131296277; + // aapt resource value: 0x7f07002d + public const int ApplicationName = 2131165229; - // aapt resource value: 0x7f09024e - public const int AskDeletePermanentlyEntry = 2131296846; + // aapt resource value: 0x7f070269 + public const int AskDeletePermanentlyEntry = 2131165801; - // aapt resource value: 0x7f09024f - public const int AskDeletePermanentlyGroup = 2131296847; + // aapt resource value: 0x7f07026a + public const int AskDeletePermanentlyGroup = 2131165802; - // aapt resource value: 0x7f090250 - public const int AskDeletePermanently_title = 2131296848; + // aapt resource value: 0x7f07026b + public const int AskDeletePermanently_title = 2131165803; - // aapt resource value: 0x7f090253 - public const int AskDiscardChanges = 2131296851; + // aapt resource value: 0x7f07026e + public const int AskDiscardChanges = 2131165806; - // aapt resource value: 0x7f090254 - public const int AskDiscardChanges_title = 2131296852; + // aapt resource value: 0x7f07026f + public const int AskDiscardChanges_title = 2131165807; - // aapt resource value: 0x7f090248 - public const int AskOverwriteBinary = 2131296840; + // aapt resource value: 0x7f070263 + public const int AskOverwriteBinary = 2131165795; - // aapt resource value: 0x7f09024b - public const int AskOverwriteBinary_no = 2131296843; + // aapt resource value: 0x7f070266 + public const int AskOverwriteBinary_no = 2131165798; - // aapt resource value: 0x7f090249 - public const int AskOverwriteBinary_title = 2131296841; + // aapt resource value: 0x7f070264 + public const int AskOverwriteBinary_title = 2131165796; - // aapt resource value: 0x7f09024a - public const int AskOverwriteBinary_yes = 2131296842; + // aapt resource value: 0x7f070265 + public const int AskOverwriteBinary_yes = 2131165797; - // aapt resource value: 0x7f090252 - public const int AskReloadFile = 2131296850; + // aapt resource value: 0x7f07026d + public const int AskReloadFile = 2131165805; - // aapt resource value: 0x7f090251 - public const int AskReloadFile_title = 2131296849; + // aapt resource value: 0x7f07026c + public const int AskReloadFile_title = 2131165804; - // aapt resource value: 0x7f09024c - public const int AttachFailed = 2131296844; + // aapt resource value: 0x7f070267 + public const int AttachFailed = 2131165799; - // aapt resource value: 0x7f090111 - public const int BinaryDirectory_default = 2131296529; + // aapt resource value: 0x7f070129 + public const int BinaryDirectory_default = 2131165481; - // aapt resource value: 0x7f090110 - public const int BinaryDirectory_key = 2131296528; + // aapt resource value: 0x7f070128 + public const int BinaryDirectory_key = 2131165480; - // aapt resource value: 0x7f090217 - public const int BinaryDirectory_summary = 2131296791; + // aapt resource value: 0x7f070232 + public const int BinaryDirectory_summary = 2131165746; - // aapt resource value: 0x7f090216 - public const int BinaryDirectory_title = 2131296790; + // aapt resource value: 0x7f070231 + public const int BinaryDirectory_title = 2131165745; - // aapt resource value: 0x7f09027c - public const int CannotMoveGroupHere = 2131296892; + // aapt resource value: 0x7f0702f2 + public const int CancelReadOnly = 2131165938; - // aapt resource value: 0x7f0902ce - public const int CertificateFailure = 2131296974; + // aapt resource value: 0x7f070297 + public const int CannotMoveGroupHere = 2131165847; - // aapt resource value: 0x7f0902cd - public const int CertificateWarning = 2131296973; + // aapt resource value: 0x7f0702e9 + public const int CertificateFailure = 2131165929; - // aapt resource value: 0x7f0902e2 - public const int ChangeLog = 2131296994; + // aapt resource value: 0x7f0702e8 + public const int CertificateWarning = 2131165928; - // aapt resource value: 0x7f0902e1 - public const int ChangeLog_0_7 = 2131296993; + // aapt resource value: 0x7f070305 + public const int ChangeLog = 2131165957; - // aapt resource value: 0x7f0902df - public const int ChangeLog_0_8 = 2131296991; + // aapt resource value: 0x7f070304 + public const int ChangeLog_0_7 = 2131165956; - // aapt resource value: 0x7f0902de - public const int ChangeLog_0_8_1 = 2131296990; + // aapt resource value: 0x7f070302 + public const int ChangeLog_0_8 = 2131165954; - // aapt resource value: 0x7f0902dd - public const int ChangeLog_0_8_2 = 2131296989; + // aapt resource value: 0x7f070301 + public const int ChangeLog_0_8_1 = 2131165953; - // aapt resource value: 0x7f0902dc - public const int ChangeLog_0_8_3 = 2131296988; + // aapt resource value: 0x7f070300 + public const int ChangeLog_0_8_2 = 2131165952; - // aapt resource value: 0x7f0902db - public const int ChangeLog_0_8_4 = 2131296987; + // aapt resource value: 0x7f0702ff + public const int ChangeLog_0_8_3 = 2131165951; - // aapt resource value: 0x7f0902da - public const int ChangeLog_0_8_5 = 2131296986; + // aapt resource value: 0x7f0702fe + public const int ChangeLog_0_8_4 = 2131165950; - // aapt resource value: 0x7f0902d9 - public const int ChangeLog_0_8_6 = 2131296985; + // aapt resource value: 0x7f0702fd + public const int ChangeLog_0_8_5 = 2131165949; - // aapt resource value: 0x7f0902d8 - public const int ChangeLog_0_9 = 2131296984; + // aapt resource value: 0x7f0702fc + public const int ChangeLog_0_8_6 = 2131165948; - // aapt resource value: 0x7f0902d7 - public const int ChangeLog_0_9_1 = 2131296983; + // aapt resource value: 0x7f0702fb + public const int ChangeLog_0_9 = 2131165947; - // aapt resource value: 0x7f0902d6 - public const int ChangeLog_0_9_2 = 2131296982; + // aapt resource value: 0x7f0702fa + public const int ChangeLog_0_9_1 = 2131165946; - // aapt resource value: 0x7f0902d5 - public const int ChangeLog_0_9_3 = 2131296981; + // aapt resource value: 0x7f0702f9 + public const int ChangeLog_0_9_2 = 2131165945; - // aapt resource value: 0x7f0902d4 - public const int ChangeLog_0_9_3_r5 = 2131296980; + // aapt resource value: 0x7f0702f8 + public const int ChangeLog_0_9_3 = 2131165944; - // aapt resource value: 0x7f0902d3 - public const int ChangeLog_0_9_4 = 2131296979; + // aapt resource value: 0x7f0702f7 + public const int ChangeLog_0_9_3_r5 = 2131165943; - // aapt resource value: 0x7f0902e0 - public const int ChangeLog_keptDonate = 2131296992; + // aapt resource value: 0x7f0702f6 + public const int ChangeLog_0_9_4 = 2131165942; - // aapt resource value: 0x7f0902d1 - public const int ChangeLog_title = 2131296977; + // aapt resource value: 0x7f070303 + public const int ChangeLog_keptDonate = 2131165955; - // aapt resource value: 0x7f090127 - public const int CheckForFileChangesOnSave_key = 2131296551; + // aapt resource value: 0x7f0702f4 + public const int ChangeLog_title = 2131165940; - // aapt resource value: 0x7f09023b - public const int CheckForFileChangesOnSave_summary = 2131296827; + // aapt resource value: 0x7f07013f + public const int CheckForFileChangesOnSave_key = 2131165503; - // aapt resource value: 0x7f09023a - public const int CheckForFileChangesOnSave_title = 2131296826; + // aapt resource value: 0x7f070256 + public const int CheckForFileChangesOnSave_summary = 2131165782; - // aapt resource value: 0x7f09026d - public const int CheckingDatabaseForChanges = 2131296877; + // aapt resource value: 0x7f070255 + public const int CheckForFileChangesOnSave_title = 2131165781; - // aapt resource value: 0x7f090261 - public const int CheckingTargetFileForChanges = 2131296865; + // aapt resource value: 0x7f070288 + public const int CheckingDatabaseForChanges = 2131165832; - // aapt resource value: 0x7f09015a - public const int ClearClipboard = 2131296602; + // aapt resource value: 0x7f07027c + public const int CheckingTargetFileForChanges = 2131165820; - // aapt resource value: 0x7f090239 - public const int ClearOfflineCache_question = 2131296825; + // aapt resource value: 0x7f070173 + public const int ClearClipboard = 2131165555; - // aapt resource value: 0x7f090238 - public const int ClearOfflineCache_title = 2131296824; + // aapt resource value: 0x7f070254 + public const int ClearOfflineCache_question = 2131165780; - // aapt resource value: 0x7f09012c - public const int CopyToClipboardNotification_key = 2131296556; + // aapt resource value: 0x7f070253 + public const int ClearOfflineCache_title = 2131165779; - // aapt resource value: 0x7f09026f - public const int CouldNotLoadFromRemote = 2131296879; + // aapt resource value: 0x7f0702f1 + public const int ClickOkToSelectLocation = 2131165937; - // aapt resource value: 0x7f09026e - public const int CouldNotSaveToRemote = 2131296878; + // aapt resource value: 0x7f0702ef + public const int CopyFileRequired = 2131165935; - // aapt resource value: 0x7f0902b0 - public const int CouldntLoadChalAuxFile = 2131296944; + // aapt resource value: 0x7f0702f0 + public const int CopyFileRequiredForEditing = 2131165936; - // aapt resource value: 0x7f0902b1 - public const int CouldntLoadChalAuxFile_Hint = 2131296945; + // aapt resource value: 0x7f070144 + public const int CopyToClipboardNotification_key = 2131165508; - // aapt resource value: 0x7f0902a4 - public const int CouldntLoadOtpAuxFile = 2131296932; + // aapt resource value: 0x7f0702f3 + public const int CopyingFile = 2131165939; - // aapt resource value: 0x7f0902a5 - public const int CouldntLoadOtpAuxFile_Hint = 2131296933; + // aapt resource value: 0x7f07028a + public const int CouldNotLoadFromRemote = 2131165834; - // aapt resource value: 0x7f0902ab - public const int CouldntParseOtpSecret = 2131296939; + // aapt resource value: 0x7f070289 + public const int CouldNotSaveToRemote = 2131165833; - // aapt resource value: 0x7f090138 - public const int CreditsText = 2131296568; + // aapt resource value: 0x7f0702cb + public const int CouldntLoadChalAuxFile = 2131165899; - // aapt resource value: 0x7f090139 - public const int CreditsTextSFTP = 2131296569; + // aapt resource value: 0x7f0702cc + public const int CouldntLoadChalAuxFile_Hint = 2131165900; - // aapt resource value: 0x7f09025f - public const int DecodingDatabase = 2131296863; + // aapt resource value: 0x7f0702bf + public const int CouldntLoadOtpAuxFile = 2131165887; - // aapt resource value: 0x7f09025a - public const int DeletingEntry = 2131296858; + // aapt resource value: 0x7f0702c0 + public const int CouldntLoadOtpAuxFile_Hint = 2131165888; - // aapt resource value: 0x7f09025b - public const int DeletingGroup = 2131296859; + // aapt resource value: 0x7f0702c6 + public const int CouldntParseOtpSecret = 2131165894; - // aapt resource value: 0x7f090268 - public const int DownloadingRemoteFile = 2131296872; + // aapt resource value: 0x7f070150 + public const int CreditsText = 2131165520; - // aapt resource value: 0x7f09027a - public const int ErrorOcurred = 2131296890; + // aapt resource value: 0x7f070151 + public const int CreditsTextSFTP = 2131165521; - // aapt resource value: 0x7f0902b2 - public const int ErrorUpdatingChalAuxFile = 2131296946; + // aapt resource value: 0x7f07027a + public const int DecodingDatabase = 2131165818; - // aapt resource value: 0x7f0902ad - public const int ErrorUpdatingOtpAuxFile = 2131296941; + // aapt resource value: 0x7f070275 + public const int DeletingEntry = 2131165813; - // aapt resource value: 0x7f090156 - public const int FileHandling_prefs = 2131296598; + // aapt resource value: 0x7f070276 + public const int DeletingGroup = 2131165814; - // aapt resource value: 0x7f090119 - public const int FileHandling_prefs_key = 2131296537; + // aapt resource value: 0x7f070283 + public const int DownloadingRemoteFile = 2131165827; - // aapt resource value: 0x7f09018d - public const int FileNotFound = 2131296653; + // aapt resource value: 0x7f070295 + public const int ErrorOcurred = 2131165845; - // aapt resource value: 0x7f09026b - public const int FilesInSync = 2131296875; + // aapt resource value: 0x7f0702cd + public const int ErrorUpdatingChalAuxFile = 2131165901; - // aapt resource value: 0x7f09019e - public const int InvalidPassword = 2131296670; + // aapt resource value: 0x7f0702c8 + public const int ErrorUpdatingOtpAuxFile = 2131165896; - // aapt resource value: 0x7f090120 - public const int LastInfoVersionCode_key = 2131296544; + // aapt resource value: 0x7f07016f + public const int FileHandling_prefs = 2131165551; - // aapt resource value: 0x7f090272 - public const int LoadedFromRemoteInSync = 2131296882; + // aapt resource value: 0x7f070131 + public const int FileHandling_prefs_key = 2131165489; - // aapt resource value: 0x7f090123 - public const int LockWhenNavigateBack_key = 2131296547; + // aapt resource value: 0x7f0702ed + public const int FileIsReadOnly = 2131165933; - // aapt resource value: 0x7f090230 - public const int LockWhenNavigateBack_summary = 2131296816; + // aapt resource value: 0x7f0702ee + public const int FileIsReadOnlyOnKitkat = 2131165934; - // aapt resource value: 0x7f09022f - public const int LockWhenNavigateBack_title = 2131296815; + // aapt resource value: 0x7f0702ec + public const int FileIsTemporarilyAvailable = 2131165932; - // aapt resource value: 0x7f090122 - public const int LockWhenScreenOff_key = 2131296546; + // aapt resource value: 0x7f0701a7 + public const int FileNotFound = 2131165607; - // aapt resource value: 0x7f09022e - public const int LockWhenScreenOff_summary = 2131296814; + // aapt resource value: 0x7f070286 + public const int FilesInSync = 2131165830; - // aapt resource value: 0x7f09022d - public const int LockWhenScreenOff_title = 2131296813; + // aapt resource value: 0x7f0701b8 + public const int InvalidPassword = 2131165624; - // aapt resource value: 0x7f090129 - public const int MarketURL = 2131296553; + // aapt resource value: 0x7f070138 + public const int LastInfoVersionCode_key = 2131165496; - // aapt resource value: 0x7f0901a8 - public const int MaskedPassword = 2131296680; + // aapt resource value: 0x7f07028d + public const int LoadedFromRemoteInSync = 2131165837; - // aapt resource value: 0x7f090263 - public const int MessageSyncQuestion = 2131296867; + // aapt resource value: 0x7f07013b + public const int LockWhenNavigateBack_key = 2131165499; - // aapt resource value: 0x7f090150 - public const int NavigationToGroupCompleted_message = 2131296592; + // aapt resource value: 0x7f07024b + public const int LockWhenNavigateBack_summary = 2131165771; - // aapt resource value: 0x7f090124 - public const int NoDonateOption_key = 2131296548; + // aapt resource value: 0x7f07024a + public const int LockWhenNavigateBack_title = 2131165770; - // aapt resource value: 0x7f090233 - public const int NoDonateOption_question = 2131296819; + // aapt resource value: 0x7f07013a + public const int LockWhenScreenOff_key = 2131165498; - // aapt resource value: 0x7f090232 - public const int NoDonateOption_summary = 2131296818; + // aapt resource value: 0x7f070249 + public const int LockWhenScreenOff_summary = 2131165769; - // aapt resource value: 0x7f090231 - public const int NoDonateOption_title = 2131296817; + // aapt resource value: 0x7f070248 + public const int LockWhenScreenOff_title = 2131165768; - // aapt resource value: 0x7f090266 - public const int NoOverwrite = 2131296870; + // aapt resource value: 0x7f070141 + public const int MarketURL = 2131165505; - // aapt resource value: 0x7f090271 - public const int NotifyOpenFromLocalDueToConflict = 2131296881; + // aapt resource value: 0x7f0701c3 + public const int MaskedPassword = 2131165635; - // aapt resource value: 0x7f09012e - public const int OpenKp2aKeyboardAutomatically_key = 2131296558; + // aapt resource value: 0x7f07027e + public const int MessageSyncQuestion = 2131165822; - // aapt resource value: 0x7f090241 - public const int OpenKp2aKeyboardAutomatically_summary = 2131296833; + // aapt resource value: 0x7f070168 + public const int NavigationToGroupCompleted_message = 2131165544; - // aapt resource value: 0x7f090240 - public const int OpenKp2aKeyboardAutomatically_title = 2131296832; + // aapt resource value: 0x7f07013c + public const int NoDonateOption_key = 2131165500; - // aapt resource value: 0x7f0902ac - public const int OtpKeyError = 2131296940; + // aapt resource value: 0x7f07024e + public const int NoDonateOption_question = 2131165774; - // aapt resource value: 0x7f090260 - public const int ParsingDatabase = 2131296864; + // aapt resource value: 0x7f07024d + public const int NoDonateOption_summary = 2131165773; - // aapt resource value: 0x7f090134 - public const int PreloadDatabaseEnabled_key = 2131296564; + // aapt resource value: 0x7f07024c + public const int NoDonateOption_title = 2131165772; - // aapt resource value: 0x7f090247 - public const int PreloadDatabaseEnabled_summary = 2131296839; + // aapt resource value: 0x7f070281 + public const int NoOverwrite = 2131165825; - // aapt resource value: 0x7f090246 - public const int PreloadDatabaseEnabled_title = 2131296838; + // aapt resource value: 0x7f07028c + public const int NotifyOpenFromLocalDueToConflict = 2131165836; - // aapt resource value: 0x7f0902d2 - public const int PreviewWarning = 2131296978; + // aapt resource value: 0x7f070146 + public const int OpenKp2aKeyboardAutomatically_key = 2131165510; - // aapt resource value: 0x7f09011a - public const int QuickUnlockDefaultEnabled_key = 2131296538; + // aapt resource value: 0x7f07025c + public const int OpenKp2aKeyboardAutomatically_summary = 2131165788; - // aapt resource value: 0x7f09020e - public const int QuickUnlockDefaultEnabled_summary = 2131296782; + // aapt resource value: 0x7f07025b + public const int OpenKp2aKeyboardAutomatically_title = 2131165787; - // aapt resource value: 0x7f09020d - public const int QuickUnlockDefaultEnabled_title = 2131296781; + // aapt resource value: 0x7f0702c7 + public const int OtpKeyError = 2131165895; - // aapt resource value: 0x7f09011e - public const int QuickUnlockIconHidden16_key = 2131296542; + // aapt resource value: 0x7f07027b + public const int ParsingDatabase = 2131165819; - // aapt resource value: 0x7f090212 - public const int QuickUnlockIconHidden16_summary = 2131296786; + // aapt resource value: 0x7f07014c + public const int PreloadDatabaseEnabled_key = 2131165516; - // aapt resource value: 0x7f090211 - public const int QuickUnlockIconHidden16_title = 2131296785; + // aapt resource value: 0x7f070262 + public const int PreloadDatabaseEnabled_summary = 2131165794; - // aapt resource value: 0x7f09011d - public const int QuickUnlockIconHidden_key = 2131296541; + // aapt resource value: 0x7f070261 + public const int PreloadDatabaseEnabled_title = 2131165793; - // aapt resource value: 0x7f090210 - public const int QuickUnlockIconHidden_summary = 2131296784; + // aapt resource value: 0x7f0702f5 + public const int PreviewWarning = 2131165941; - // aapt resource value: 0x7f09020f - public const int QuickUnlockIconHidden_title = 2131296783; + // aapt resource value: 0x7f070132 + public const int QuickUnlockDefaultEnabled_key = 2131165490; - // aapt resource value: 0x7f09011c - public const int QuickUnlockLength_default = 2131296540; + // aapt resource value: 0x7f070229 + public const int QuickUnlockDefaultEnabled_summary = 2131165737; - // aapt resource value: 0x7f09011b - public const int QuickUnlockLength_key = 2131296539; + // aapt resource value: 0x7f070228 + public const int QuickUnlockDefaultEnabled_title = 2131165736; - // aapt resource value: 0x7f090214 - public const int QuickUnlockLength_summary = 2131296788; + // aapt resource value: 0x7f070136 + public const int QuickUnlockIconHidden16_key = 2131165494; - // aapt resource value: 0x7f090213 - public const int QuickUnlockLength_title = 2131296787; + // aapt resource value: 0x7f07022d + public const int QuickUnlockIconHidden16_summary = 2131165741; - // aapt resource value: 0x7f09020b - public const int QuickUnlock_button = 2131296779; + // aapt resource value: 0x7f07022c + public const int QuickUnlockIconHidden16_title = 2131165740; - // aapt resource value: 0x7f090215 - public const int QuickUnlock_fail = 2131296789; + // aapt resource value: 0x7f070135 + public const int QuickUnlockIconHidden_key = 2131165493; - // aapt resource value: 0x7f09020a - public const int QuickUnlock_label = 2131296778; + // aapt resource value: 0x7f07022b + public const int QuickUnlockIconHidden_summary = 2131165739; - // aapt resource value: 0x7f09020c - public const int QuickUnlock_lockButton = 2131296780; + // aapt resource value: 0x7f07022a + public const int QuickUnlockIconHidden_title = 2131165738; - // aapt resource value: 0x7f090155 - public const int QuickUnlock_prefs = 2131296597; + // aapt resource value: 0x7f070134 + public const int QuickUnlockLength_default = 2131165492; - // aapt resource value: 0x7f090118 - public const int QuickUnlock_prefs_key = 2131296536; + // aapt resource value: 0x7f070133 + public const int QuickUnlockLength_key = 2131165491; - // aapt resource value: 0x7f09024d - public const int RecycleBin = 2131296845; + // aapt resource value: 0x7f07022f + public const int QuickUnlockLength_summary = 2131165743; - // aapt resource value: 0x7f09010d - public const int RememberRecentFiles_key = 2131296525; + // aapt resource value: 0x7f07022e + public const int QuickUnlockLength_title = 2131165742; - // aapt resource value: 0x7f0901fe - public const int RememberRecentFiles_summary = 2131296766; + // aapt resource value: 0x7f070226 + public const int QuickUnlock_button = 2131165734; - // aapt resource value: 0x7f0901fd - public const int RememberRecentFiles_title = 2131296765; + // aapt resource value: 0x7f070230 + public const int QuickUnlock_fail = 2131165744; - // aapt resource value: 0x7f090274 - public const int RemoteDatabaseUnchanged = 2131296884; + // aapt resource value: 0x7f070225 + public const int QuickUnlock_label = 2131165733; - // aapt resource value: 0x7f090276 - public const int ResolvedCacheConflictByUsingLocalOtpAux = 2131296886; + // aapt resource value: 0x7f070227 + public const int QuickUnlock_lockButton = 2131165735; - // aapt resource value: 0x7f090275 - public const int ResolvedCacheConflictByUsingRemoteOtpAux = 2131296885; + // aapt resource value: 0x7f07016e + public const int QuickUnlock_prefs = 2131165550; - // aapt resource value: 0x7f09026a - public const int RestoringRemoteFile = 2131296874; + // aapt resource value: 0x7f070130 + public const int QuickUnlock_prefs_key = 2131165488; - // aapt resource value: 0x7f0902c7 - public const int SCOPE_CURRENT_ENTRY_explanation = 2131296967; + // aapt resource value: 0x7f070268 + public const int RecycleBin = 2131165800; - // aapt resource value: 0x7f0902c6 - public const int SCOPE_CURRENT_ENTRY_title = 2131296966; + // aapt resource value: 0x7f070125 + public const int RememberRecentFiles_key = 2131165477; - // aapt resource value: 0x7f0902c5 - public const int SCOPE_DATABASE_ACTIONS_explanation = 2131296965; + // aapt resource value: 0x7f070219 + public const int RememberRecentFiles_summary = 2131165721; - // aapt resource value: 0x7f0902c4 - public const int SCOPE_DATABASE_ACTIONS_title = 2131296964; + // aapt resource value: 0x7f070218 + public const int RememberRecentFiles_title = 2131165720; - // aapt resource value: 0x7f0902c9 - public const int SCOPE_QUERY_CREDENTIALS_FOR_OWN_PACKAGE_explanation = 2131296969; + // aapt resource value: 0x7f07028f + public const int RemoteDatabaseUnchanged = 2131165839; - // aapt resource value: 0x7f0902c8 - public const int SCOPE_QUERY_CREDENTIALS_FOR_OWN_PACKAGE_title = 2131296968; + // aapt resource value: 0x7f070291 + public const int ResolvedCacheConflictByUsingLocalOtpAux = 2131165841; - // aapt resource value: 0x7f0902cb - public const int SCOPE_QUERY_CREDENTIALS_explanation = 2131296971; + // aapt resource value: 0x7f070290 + public const int ResolvedCacheConflictByUsingRemoteOtpAux = 2131165840; - // aapt resource value: 0x7f0902ca - public const int SCOPE_QUERY_CREDENTIALS_title = 2131296970; + // aapt resource value: 0x7f070285 + public const int RestoringRemoteFile = 2131165829; - // aapt resource value: 0x7f09021b - public const int SaveAttachmentDialog_open = 2131296795; + // aapt resource value: 0x7f0702e2 + public const int SCOPE_CURRENT_ENTRY_explanation = 2131165922; - // aapt resource value: 0x7f09021a - public const int SaveAttachmentDialog_save = 2131296794; + // aapt resource value: 0x7f0702e1 + public const int SCOPE_CURRENT_ENTRY_title = 2131165921; - // aapt resource value: 0x7f090219 - public const int SaveAttachmentDialog_text = 2131296793; + // aapt resource value: 0x7f0702e0 + public const int SCOPE_DATABASE_ACTIONS_explanation = 2131165920; - // aapt resource value: 0x7f090218 - public const int SaveAttachmentDialog_title = 2131296792; + // aapt resource value: 0x7f0702df + public const int SCOPE_DATABASE_ACTIONS_title = 2131165919; - // aapt resource value: 0x7f09021d - public const int SaveAttachment_Failed = 2131296797; + // aapt resource value: 0x7f0702e4 + public const int SCOPE_QUERY_CREDENTIALS_FOR_OWN_PACKAGE_explanation = 2131165924; - // aapt resource value: 0x7f09021c - public const int SaveAttachment_doneMessage = 2131296796; + // aapt resource value: 0x7f0702e3 + public const int SCOPE_QUERY_CREDENTIALS_FOR_OWN_PACKAGE_title = 2131165923; - // aapt resource value: 0x7f0902ae - public const int SavingOtpAuxFile = 2131296942; + // aapt resource value: 0x7f0702e6 + public const int SCOPE_QUERY_CREDENTIALS_explanation = 2131165926; - // aapt resource value: 0x7f09025c - public const int SettingPassword = 2131296860; + // aapt resource value: 0x7f0702e5 + public const int SCOPE_QUERY_CREDENTIALS_title = 2131165925; - // aapt resource value: 0x7f09023d - public const int ShowCopyToClipboardNotification_summary = 2131296829; + // aapt resource value: 0x7f070236 + public const int SaveAttachmentDialog_open = 2131165750; - // aapt resource value: 0x7f09023c - public const int ShowCopyToClipboardNotification_title = 2131296828; + // aapt resource value: 0x7f070235 + public const int SaveAttachmentDialog_save = 2131165749; - // aapt resource value: 0x7f090151 - public const int ShowGroupInEntry_title = 2131296593; + // aapt resource value: 0x7f070234 + public const int SaveAttachmentDialog_text = 2131165748; - // aapt resource value: 0x7f09010b - public const int ShowGroupnameInSearchResult_key = 2131296523; + // aapt resource value: 0x7f070233 + public const int SaveAttachmentDialog_title = 2131165747; - // aapt resource value: 0x7f09014f - public const int ShowGroupnameInSearchResult_resume = 2131296591; + // aapt resource value: 0x7f070238 + public const int SaveAttachment_Failed = 2131165752; - // aapt resource value: 0x7f09014e - public const int ShowGroupnameInSearchResult_title = 2131296590; + // aapt resource value: 0x7f070237 + public const int SaveAttachment_doneMessage = 2131165751; - // aapt resource value: 0x7f09023f - public const int ShowKp2aKeyboardNotification_summary = 2131296831; + // aapt resource value: 0x7f0702c9 + public const int SavingOtpAuxFile = 2131165897; - // aapt resource value: 0x7f09023e - public const int ShowKp2aKeyboardNotification_title = 2131296830; + // aapt resource value: 0x7f070277 + public const int SettingPassword = 2131165815; - // aapt resource value: 0x7f090133 - public const int ShowUnlockedNotification_key = 2131296563; + // aapt resource value: 0x7f070258 + public const int ShowCopyToClipboardNotification_summary = 2131165784; - // aapt resource value: 0x7f090245 - public const int ShowUnlockedNotification_summary = 2131296837; + // aapt resource value: 0x7f070257 + public const int ShowCopyToClipboardNotification_title = 2131165783; - // aapt resource value: 0x7f090244 - public const int ShowUnlockedNotification_title = 2131296836; + // aapt resource value: 0x7f070169 + public const int ShowGroupInEntry_title = 2131165545; - // aapt resource value: 0x7f09010c - public const int ShowUsernameInList_key = 2131296524; + // aapt resource value: 0x7f070123 + public const int ShowGroupnameInSearchResult_key = 2131165475; - // aapt resource value: 0x7f0901fc - public const int ShowUsernameInList_summary = 2131296764; + // aapt resource value: 0x7f070167 + public const int ShowGroupnameInSearchResult_resume = 2131165543; - // aapt resource value: 0x7f0901fb - public const int ShowUsernameInList_title = 2131296763; + // aapt resource value: 0x7f070166 + public const int ShowGroupnameInSearchResult_title = 2131165542; - // aapt resource value: 0x7f09012a - public const int SuggestionsURL = 2131296554; + // aapt resource value: 0x7f07025a + public const int ShowKp2aKeyboardNotification_summary = 2131165786; - // aapt resource value: 0x7f09026c - public const int SynchronizedDatabaseSuccessfully = 2131296876; + // aapt resource value: 0x7f070259 + public const int ShowKp2aKeyboardNotification_title = 2131165785; - // aapt resource value: 0x7f090267 - public const int SynchronizingCachedDatabase = 2131296871; + // aapt resource value: 0x7f07014b + public const int ShowUnlockedNotification_key = 2131165515; - // aapt resource value: 0x7f090264 - public const int SynchronizingDatabase = 2131296868; + // aapt resource value: 0x7f070260 + public const int ShowUnlockedNotification_summary = 2131165792; - // aapt resource value: 0x7f090277 - public const int SynchronizingOtpAuxFile = 2131296887; + // aapt resource value: 0x7f07025f + public const int ShowUnlockedNotification_title = 2131165791; - // aapt resource value: 0x7f09010a - public const int TanExpiresOnUse_key = 2131296522; + // aapt resource value: 0x7f070124 + public const int ShowUsernameInList_key = 2131165476; - // aapt resource value: 0x7f0901fa - public const int TanExpiresOnUse_summary = 2131296762; + // aapt resource value: 0x7f070217 + public const int ShowUsernameInList_summary = 2131165719; - // aapt resource value: 0x7f0901f9 - public const int TanExpiresOnUse_title = 2131296761; + // aapt resource value: 0x7f070216 + public const int ShowUsernameInList_title = 2131165718; - // aapt resource value: 0x7f090262 - public const int TitleSyncQuestion = 2131296866; + // aapt resource value: 0x7f070142 + public const int SuggestionsURL = 2131165506; - // aapt resource value: 0x7f09025e - public const int TransformingKey = 2131296862; + // aapt resource value: 0x7f070287 + public const int SynchronizedDatabaseSuccessfully = 2131165831; - // aapt resource value: 0x7f09012b - public const int TranslationURL = 2131296555; + // aapt resource value: 0x7f070282 + public const int SynchronizingCachedDatabase = 2131165826; - // aapt resource value: 0x7f090113 - public const int TrayTotp_SeedField_key = 2131296531; + // aapt resource value: 0x7f07027f + public const int SynchronizingDatabase = 2131165823; - // aapt resource value: 0x7f0902b4 - public const int TrayTotp_SeedField_summary = 2131296948; + // aapt resource value: 0x7f070292 + public const int SynchronizingOtpAuxFile = 2131165842; - // aapt resource value: 0x7f0902b3 - public const int TrayTotp_SeedField_title = 2131296947; + // aapt resource value: 0x7f070122 + public const int TanExpiresOnUse_key = 2131165474; - // aapt resource value: 0x7f090112 - public const int TrayTotp_SettingsField_key = 2131296530; + // aapt resource value: 0x7f070215 + public const int TanExpiresOnUse_summary = 2131165717; - // aapt resource value: 0x7f0902b6 - public const int TrayTotp_SettingsField_summary = 2131296950; + // aapt resource value: 0x7f070214 + public const int TanExpiresOnUse_title = 2131165716; - // aapt resource value: 0x7f0902b5 - public const int TrayTotp_SettingsField_title = 2131296949; + // aapt resource value: 0x7f07027d + public const int TitleSyncQuestion = 2131165821; - // aapt resource value: 0x7f0902b7 - public const int TrayTotp_prefs = 2131296951; + // aapt resource value: 0x7f070279 + public const int TransformingKey = 2131165817; - // aapt resource value: 0x7f090114 - public const int TrayTotp_prefs_key = 2131296532; + // aapt resource value: 0x7f070143 + public const int TranslationURL = 2131165507; - // aapt resource value: 0x7f09025d - public const int UndoingChanges = 2131296861; + // aapt resource value: 0x7f07012b + public const int TrayTotp_SeedField_key = 2131165483; - // aapt resource value: 0x7f090273 - public const int UpdatedCachedFileOnLoad = 2131296883; + // aapt resource value: 0x7f0702cf + public const int TrayTotp_SeedField_summary = 2131165903; - // aapt resource value: 0x7f090270 - public const int UpdatedRemoteFileOnLoad = 2131296880; + // aapt resource value: 0x7f0702ce + public const int TrayTotp_SeedField_title = 2131165902; - // aapt resource value: 0x7f090269 - public const int UploadingFile = 2131296873; + // aapt resource value: 0x7f07012a + public const int TrayTotp_SettingsField_key = 2131165482; - // aapt resource value: 0x7f09011f - public const int UsageCount_key = 2131296543; + // aapt resource value: 0x7f0702d1 + public const int TrayTotp_SettingsField_summary = 2131165905; - // aapt resource value: 0x7f090121 - public const int UseFileTransactions_key = 2131296545; + // aapt resource value: 0x7f0702d0 + public const int TrayTotp_SettingsField_title = 2131165904; - // aapt resource value: 0x7f09022c - public const int UseFileTransactions_summary = 2131296812; + // aapt resource value: 0x7f0702d2 + public const int TrayTotp_prefs = 2131165906; - // aapt resource value: 0x7f09022b - public const int UseFileTransactions_title = 2131296811; + // aapt resource value: 0x7f07012c + public const int TrayTotp_prefs_key = 2131165484; - // aapt resource value: 0x7f09012d - public const int UseKp2aKeyboard_key = 2131296557; + // aapt resource value: 0x7f070278 + public const int UndoingChanges = 2131165816; - // aapt resource value: 0x7f090125 - public const int UseOfflineCache_key = 2131296549; + // aapt resource value: 0x7f07028e + public const int UpdatedCachedFileOnLoad = 2131165838; - // aapt resource value: 0x7f090235 - public const int UseOfflineCache_summary = 2131296821; + // aapt resource value: 0x7f07028b + public const int UpdatedRemoteFileOnLoad = 2131165835; - // aapt resource value: 0x7f090234 - public const int UseOfflineCache_title = 2131296820; + // aapt resource value: 0x7f070284 + public const int UploadingFile = 2131165828; - // aapt resource value: 0x7f090265 - public const int YesSynchronize = 2131296869; + // aapt resource value: 0x7f070137 + public const int UsageCount_key = 2131165495; - // aapt resource value: 0x7f0902a3 - public const int YubiChallengeNotInstalled = 2131296931; + // aapt resource value: 0x7f070139 + public const int UseFileTransactions_key = 2131165497; - // aapt resource value: 0x7f090135 - public const int about_feedback = 2131296565; + // aapt resource value: 0x7f070247 + public const int UseFileTransactions_summary = 2131165767; - // aapt resource value: 0x7f090136 - public const int about_homepage = 2131296566; + // aapt resource value: 0x7f070246 + public const int UseFileTransactions_title = 2131165766; - // aapt resource value: 0x7f090128 - public const int about_prefs_key = 2131296552; + // aapt resource value: 0x7f070145 + public const int UseKp2aKeyboard_key = 2131165509; - // aapt resource value: 0x7f09013a - public const int accept = 2131296570; + // aapt resource value: 0x7f07013d + public const int UseOfflineCache_key = 2131165501; - // aapt resource value: 0x7f090225 - public const int add_binary = 2131296805; + // aapt resource value: 0x7f070250 + public const int UseOfflineCache_summary = 2131165776; - // aapt resource value: 0x7f09013c - public const int add_entry = 2131296572; + // aapt resource value: 0x7f07024f + public const int UseOfflineCache_title = 2131165775; - // aapt resource value: 0x7f090226 - public const int add_extra_string = 2131296806; + // aapt resource value: 0x7f070280 + public const int YesSynchronize = 2131165824; - // aapt resource value: 0x7f09013e - public const int add_group = 2131296574; + // aapt resource value: 0x7f0702be + public const int YubiChallengeNotInstalled = 2131165886; - // aapt resource value: 0x7f09013f - public const int add_group_title = 2131296575; + // aapt resource value: 0x7f070007 + public const int abc_action_bar_home_description = 2131165191; - // aapt resource value: 0x7f09013d - public const int add_url_entry = 2131296573; + // aapt resource value: 0x7f070008 + public const int abc_action_bar_up_description = 2131165192; - // aapt resource value: 0x7f09005a - public const int added_word = 2131296346; + // aapt resource value: 0x7f070009 + public const int abc_action_menu_overflow_description = 2131165193; - // aapt resource value: 0x7f0900f0 - public const int afc_bullet = 2131296496; + // aapt resource value: 0x7f070006 + public const int abc_action_mode_done = 2131165190; - // aapt resource value: 0x7f0900bf - public const int afc_cmd_advanced_selection_all = 2131296447; + // aapt resource value: 0x7f070010 + public const int abc_activity_chooser_view_see_all = 2131165200; - // aapt resource value: 0x7f0900c0 - public const int afc_cmd_advanced_selection_invert = 2131296448; + // aapt resource value: 0x7f07000f + public const int abc_activitychooserview_choose_application = 2131165199; - // aapt resource value: 0x7f0900c1 - public const int afc_cmd_advanced_selection_none = 2131296449; + // aapt resource value: 0x7f07000c + public const int abc_searchview_description_clear = 2131165196; - // aapt resource value: 0x7f0900c2 - public const int afc_cmd_grid_view = 2131296450; + // aapt resource value: 0x7f07000b + public const int abc_searchview_description_query = 2131165195; - // aapt resource value: 0x7f0900c3 - public const int afc_cmd_home = 2131296451; + // aapt resource value: 0x7f07000a + public const int abc_searchview_description_search = 2131165194; - // aapt resource value: 0x7f0900c4 - public const int afc_cmd_list_view = 2131296452; + // aapt resource value: 0x7f07000d + public const int abc_searchview_description_submit = 2131165197; - // aapt resource value: 0x7f0900c5 - public const int afc_cmd_new_folder = 2131296453; + // aapt resource value: 0x7f07000e + public const int abc_searchview_description_voice = 2131165198; - // aapt resource value: 0x7f0900c6 - public const int afc_cmd_select_all_files = 2131296454; + // aapt resource value: 0x7f070012 + public const int abc_shareactionprovider_share_with = 2131165202; - // aapt resource value: 0x7f0900c7 - public const int afc_cmd_select_all_folders = 2131296455; + // aapt resource value: 0x7f070011 + public const int abc_shareactionprovider_share_with_application = 2131165201; - // aapt resource value: 0x7f0900c8 - public const int afc_cmd_sort = 2131296456; + // aapt resource value: 0x7f07014d + public const int about_feedback = 2131165517; - // aapt resource value: 0x7f0900f1 - public const int afc_ellipsize = 2131296497; + // aapt resource value: 0x7f07014e + public const int about_homepage = 2131165518; - // aapt resource value: 0x7f0900c9 - public const int afc_file = 2131296457; + // aapt resource value: 0x7f070140 + public const int about_prefs_key = 2131165504; - // aapt resource value: 0x7f0900ca - public const int afc_folder = 2131296458; + // aapt resource value: 0x7f070152 + public const int accept = 2131165522; - // aapt resource value: 0x7f0900cb - public const int afc_hint_clear = 2131296459; + // aapt resource value: 0x7f070240 + public const int add_binary = 2131165760; - // aapt resource value: 0x7f0900cc - public const int afc_hint_folder_name = 2131296460; + // aapt resource value: 0x7f070154 + public const int add_entry = 2131165524; - // aapt resource value: 0x7f0900cd - public const int afc_hint_save_as_filename = 2131296461; + // aapt resource value: 0x7f070241 + public const int add_extra_string = 2131165761; - // aapt resource value: 0x7f0900ce - public const int afc_hint_search = 2131296462; + // aapt resource value: 0x7f070156 + public const int add_group = 2131165526; - // aapt resource value: 0x7f0900b6 - public const int afc_lib_name = 2131296438; + // aapt resource value: 0x7f070157 + public const int add_group_title = 2131165527; - // aapt resource value: 0x7f0900b7 - public const int afc_lib_version_name = 2131296439; + // aapt resource value: 0x7f070155 + public const int add_url_entry = 2131165525; - // aapt resource value: 0x7f0900cf - public const int afc_msg_app_doesnot_have_permission_to_create_files = 2131296463; + // aapt resource value: 0x7f070072 + public const int added_word = 2131165298; - // aapt resource value: 0x7f0900d0 - public const int afc_msg_app_doesnot_have_permission_to_delete_files = 2131296464; + // aapt resource value: 0x7f070108 + public const int afc_bullet = 2131165448; - // aapt resource value: 0x7f0900d1 - public const int afc_msg_cancelled = 2131296465; + // aapt resource value: 0x7f0700d7 + public const int afc_cmd_advanced_selection_all = 2131165399; - // aapt resource value: 0x7f0900d2 - public const int afc_msg_cannot_connect_to_file_provider_service = 2131296466; + // aapt resource value: 0x7f0700d8 + public const int afc_cmd_advanced_selection_invert = 2131165400; - // aapt resource value: 0x7f0900d3 - public const int afc_msg_cannot_create_new_folder_here = 2131296467; + // aapt resource value: 0x7f0700d9 + public const int afc_cmd_advanced_selection_none = 2131165401; - // aapt resource value: 0x7f0900d4 - public const int afc_msg_cannot_save_a_file_here = 2131296468; + // aapt resource value: 0x7f0700da + public const int afc_cmd_grid_view = 2131165402; - // aapt resource value: 0x7f0900d5 - public const int afc_msg_done = 2131296469; + // aapt resource value: 0x7f0700db + public const int afc_cmd_home = 2131165403; - // aapt resource value: 0x7f0900d6 - public const int afc_msg_empty = 2131296470; + // aapt resource value: 0x7f0700dc + public const int afc_cmd_list_view = 2131165404; - // aapt resource value: 0x7f0900d7 - public const int afc_msg_failed_please_try_again = 2131296471; + // aapt resource value: 0x7f0700dd + public const int afc_cmd_new_folder = 2131165405; - // aapt resource value: 0x7f0900d8 - public const int afc_msg_loading = 2131296472; + // aapt resource value: 0x7f0700de + public const int afc_cmd_select_all_files = 2131165406; - // aapt resource value: 0x7f0900d9 - public const int afc_phone = 2131296473; + // aapt resource value: 0x7f0700df + public const int afc_cmd_select_all_folders = 2131165407; - // aapt resource value: 0x7f0900be - public const int afc_pkey_display_last_location = 2131296446; + // aapt resource value: 0x7f0700e0 + public const int afc_cmd_sort = 2131165408; - // aapt resource value: 0x7f0900bd - public const int afc_pkey_display_remember_last_location = 2131296445; + // aapt resource value: 0x7f070109 + public const int afc_ellipsize = 2131165449; - // aapt resource value: 0x7f0900bc - public const int afc_pkey_display_show_time_for_old_days = 2131296444; + // aapt resource value: 0x7f0700e1 + public const int afc_file = 2131165409; - // aapt resource value: 0x7f0900bb - public const int afc_pkey_display_show_time_for_old_days_this_year = 2131296443; + // aapt resource value: 0x7f0700e2 + public const int afc_folder = 2131165410; - // aapt resource value: 0x7f0900ba - public const int afc_pkey_display_sort_ascending = 2131296442; + // aapt resource value: 0x7f0700e3 + public const int afc_hint_clear = 2131165411; - // aapt resource value: 0x7f0900b9 - public const int afc_pkey_display_sort_type = 2131296441; + // aapt resource value: 0x7f0700e4 + public const int afc_hint_folder_name = 2131165412; - // aapt resource value: 0x7f0900b8 - public const int afc_pkey_display_view_type = 2131296440; + // aapt resource value: 0x7f0700e5 + public const int afc_hint_save_as_filename = 2131165413; - // aapt resource value: 0x7f0900da - public const int afc_pmsg_cannot_access_dir = 2131296474; + // aapt resource value: 0x7f0700e6 + public const int afc_hint_search = 2131165414; - // aapt resource value: 0x7f0900db - public const int afc_pmsg_cannot_create_folder = 2131296475; + // aapt resource value: 0x7f0700ce + public const int afc_lib_name = 2131165390; - // aapt resource value: 0x7f0900dc - public const int afc_pmsg_cannot_delete_file = 2131296476; + // aapt resource value: 0x7f0700cf + public const int afc_lib_version_name = 2131165391; - // aapt resource value: 0x7f0900dd - public const int afc_pmsg_confirm_delete_file = 2131296477; + // aapt resource value: 0x7f0700e7 + public const int afc_msg_app_doesnot_have_permission_to_create_files = 2131165415; - // aapt resource value: 0x7f0900de - public const int afc_pmsg_confirm_replace_file = 2131296478; + // aapt resource value: 0x7f0700e8 + public const int afc_msg_app_doesnot_have_permission_to_delete_files = 2131165416; - // aapt resource value: 0x7f0900df - public const int afc_pmsg_deleting_file = 2131296479; + // aapt resource value: 0x7f0700e9 + public const int afc_msg_cancelled = 2131165417; - // aapt resource value: 0x7f0900e0 - public const int afc_pmsg_file_has_been_deleted = 2131296480; + // aapt resource value: 0x7f0700ea + public const int afc_msg_cannot_connect_to_file_provider_service = 2131165418; - // aapt resource value: 0x7f0900e1 - public const int afc_pmsg_filename_is_directory = 2131296481; + // aapt resource value: 0x7f0700eb + public const int afc_msg_cannot_create_new_folder_here = 2131165419; - // aapt resource value: 0x7f0900e2 - public const int afc_pmsg_filename_is_invalid = 2131296482; + // aapt resource value: 0x7f0700ec + public const int afc_msg_cannot_save_a_file_here = 2131165420; - // aapt resource value: 0x7f0900e3 - public const int afc_pmsg_max_file_count_allowed = 2131296483; + // aapt resource value: 0x7f0700ed + public const int afc_msg_done = 2131165421; - // aapt resource value: 0x7f0900e4 - public const int afc_pmsg_unknown_error = 2131296484; + // aapt resource value: 0x7f0700ee + public const int afc_msg_empty = 2131165422; - // aapt resource value: 0x7f0900e5 - public const int afc_root = 2131296485; + // aapt resource value: 0x7f0700ef + public const int afc_msg_failed_please_try_again = 2131165423; - // aapt resource value: 0x7f0900e6 - public const int afc_title_advanced_selection = 2131296486; + // aapt resource value: 0x7f0700f0 + public const int afc_msg_loading = 2131165424; - // aapt resource value: 0x7f0900e7 - public const int afc_title_confirmation = 2131296487; + // aapt resource value: 0x7f0700f1 + public const int afc_phone = 2131165425; - // aapt resource value: 0x7f0900e8 - public const int afc_title_date = 2131296488; + // aapt resource value: 0x7f0700d6 + public const int afc_pkey_display_last_location = 2131165398; - // aapt resource value: 0x7f0900e9 - public const int afc_title_error = 2131296489; + // aapt resource value: 0x7f0700d5 + public const int afc_pkey_display_remember_last_location = 2131165397; - // aapt resource value: 0x7f0900ea - public const int afc_title_info = 2131296490; + // aapt resource value: 0x7f0700d4 + public const int afc_pkey_display_show_time_for_old_days = 2131165396; - // aapt resource value: 0x7f0900eb - public const int afc_title_name = 2131296491; + // aapt resource value: 0x7f0700d3 + public const int afc_pkey_display_show_time_for_old_days_this_year = 2131165395; - // aapt resource value: 0x7f0900ec - public const int afc_title_save_as = 2131296492; + // aapt resource value: 0x7f0700d2 + public const int afc_pkey_display_sort_ascending = 2131165394; - // aapt resource value: 0x7f0900ed - public const int afc_title_size = 2131296493; + // aapt resource value: 0x7f0700d1 + public const int afc_pkey_display_sort_type = 2131165393; - // aapt resource value: 0x7f0900ee - public const int afc_title_sort_by = 2131296494; + // aapt resource value: 0x7f0700d0 + public const int afc_pkey_display_view_type = 2131165392; - // aapt resource value: 0x7f0900ef - public const int afc_yesterday = 2131296495; + // aapt resource value: 0x7f0700f2 + public const int afc_pmsg_cannot_access_dir = 2131165426; - // aapt resource value: 0x7f090141 - public const int algorithm = 2131296577; + // aapt resource value: 0x7f0700f3 + public const int afc_pmsg_cannot_create_folder = 2131165427; - // aapt resource value: 0x7f090142 - public const int algorithm_colon = 2131296578; + // aapt resource value: 0x7f0700f4 + public const int afc_pmsg_cannot_delete_file = 2131165428; - // aapt resource value: 0x7f0900fc - public const int algorithm_key = 2131296508; + // aapt resource value: 0x7f0700f5 + public const int afc_pmsg_confirm_delete_file = 2131165429; - // aapt resource value: 0x7f090016 - public const int alternates_for_a = 2131296278; + // aapt resource value: 0x7f0700f6 + public const int afc_pmsg_confirm_replace_file = 2131165430; - // aapt resource value: 0x7f09002d - public const int alternates_for_a_umlaut = 2131296301; + // aapt resource value: 0x7f0700f7 + public const int afc_pmsg_deleting_file = 2131165431; - // aapt resource value: 0x7f090029 - public const int alternates_for_ae = 2131296297; + // aapt resource value: 0x7f0700f8 + public const int afc_pmsg_file_has_been_deleted = 2131165432; - // aapt resource value: 0x7f09001d - public const int alternates_for_c = 2131296285; + // aapt resource value: 0x7f0700f9 + public const int afc_pmsg_filename_is_directory = 2131165433; - // aapt resource value: 0x7f09002b - public const int alternates_for_cyrillic_e = 2131296299; + // aapt resource value: 0x7f0700fa + public const int afc_pmsg_filename_is_invalid = 2131165434; - // aapt resource value: 0x7f09002c - public const int alternates_for_cyrillic_soft_sign = 2131296300; + // aapt resource value: 0x7f0700fb + public const int afc_pmsg_max_file_count_allowed = 2131165435; - // aapt resource value: 0x7f090021 - public const int alternates_for_d = 2131296289; + // aapt resource value: 0x7f0700fc + public const int afc_pmsg_unknown_error = 2131165436; - // aapt resource value: 0x7f090017 - public const int alternates_for_e = 2131296279; + // aapt resource value: 0x7f0700fd + public const int afc_root = 2131165437; - // aapt resource value: 0x7f090026 - public const int alternates_for_g = 2131296294; + // aapt resource value: 0x7f0700fe + public const int afc_title_advanced_selection = 2131165438; - // aapt resource value: 0x7f090018 - public const int alternates_for_i = 2131296280; + // aapt resource value: 0x7f0700ff + public const int afc_title_confirmation = 2131165439; - // aapt resource value: 0x7f090025 - public const int alternates_for_l = 2131296293; + // aapt resource value: 0x7f070100 + public const int afc_title_date = 2131165440; - // aapt resource value: 0x7f09001c - public const int alternates_for_n = 2131296284; + // aapt resource value: 0x7f070101 + public const int afc_title_error = 2131165441; - // aapt resource value: 0x7f090019 - public const int alternates_for_o = 2131296281; + // aapt resource value: 0x7f070102 + public const int afc_title_info = 2131165442; - // aapt resource value: 0x7f09002e - public const int alternates_for_o_umlaut = 2131296302; + // aapt resource value: 0x7f070103 + public const int afc_title_name = 2131165443; - // aapt resource value: 0x7f09002a - public const int alternates_for_oe = 2131296298; + // aapt resource value: 0x7f070104 + public const int afc_title_save_as = 2131165444; - // aapt resource value: 0x7f090027 - public const int alternates_for_p = 2131296295; + // aapt resource value: 0x7f070105 + public const int afc_title_size = 2131165445; - // aapt resource value: 0x7f09001f - public const int alternates_for_q = 2131296287; + // aapt resource value: 0x7f070106 + public const int afc_title_sort_by = 2131165446; - // aapt resource value: 0x7f090022 - public const int alternates_for_r = 2131296290; + // aapt resource value: 0x7f070107 + public const int afc_yesterday = 2131165447; - // aapt resource value: 0x7f09001b - public const int alternates_for_s = 2131296283; + // aapt resource value: 0x7f070159 + public const int algorithm = 2131165529; - // aapt resource value: 0x7f090023 - public const int alternates_for_t = 2131296291; + // aapt resource value: 0x7f07015a + public const int algorithm_colon = 2131165530; - // aapt resource value: 0x7f09001a - public const int alternates_for_u = 2131296282; + // aapt resource value: 0x7f070114 + public const int algorithm_key = 2131165460; - // aapt resource value: 0x7f090028 - public const int alternates_for_v = 2131296296; + // aapt resource value: 0x7f07002e + public const int alternates_for_a = 2131165230; - // aapt resource value: 0x7f090020 - public const int alternates_for_w = 2131296288; + // aapt resource value: 0x7f070045 + public const int alternates_for_a_umlaut = 2131165253; - // aapt resource value: 0x7f09001e - public const int alternates_for_y = 2131296286; + // aapt resource value: 0x7f070041 + public const int alternates_for_ae = 2131165249; - // aapt resource value: 0x7f090024 - public const int alternates_for_z = 2131296292; + // aapt resource value: 0x7f070035 + public const int alternates_for_c = 2131165237; - // aapt resource value: 0x7f0900fd - public const int app_key = 2131296509; + // aapt resource value: 0x7f070043 + public const int alternates_for_cyrillic_e = 2131165251; - // aapt resource value: 0x7f090143 - public const int app_name = 2131296579; + // aapt resource value: 0x7f070044 + public const int alternates_for_cyrillic_soft_sign = 2131165252; - // aapt resource value: 0x7f090145 - public const int app_name_nonet = 2131296581; + // aapt resource value: 0x7f070039 + public const int alternates_for_d = 2131165241; - // aapt resource value: 0x7f090147 - public const int app_timeout = 2131296583; + // aapt resource value: 0x7f07002f + public const int alternates_for_e = 2131165231; - // aapt resource value: 0x7f0900fe - public const int app_timeout_key = 2131296510; + // aapt resource value: 0x7f07003e + public const int alternates_for_g = 2131165246; - // aapt resource value: 0x7f090148 - public const int app_timeout_summary = 2131296584; + // aapt resource value: 0x7f070030 + public const int alternates_for_i = 2131165232; - // aapt resource value: 0x7f09014c - public const int application = 2131296588; + // aapt resource value: 0x7f07003d + public const int alternates_for_l = 2131165245; - // aapt resource value: 0x7f09014d - public const int application_settings = 2131296589; + // aapt resource value: 0x7f070034 + public const int alternates_for_n = 2131165236; - // aapt resource value: 0x7f090010 - public const int auth_client_needs_enabling_title = 2131296272; + // aapt resource value: 0x7f070031 + public const int alternates_for_o = 2131165233; - // aapt resource value: 0x7f090011 - public const int auth_client_needs_installation_title = 2131296273; + // aapt resource value: 0x7f070046 + public const int alternates_for_o_umlaut = 2131165254; - // aapt resource value: 0x7f090012 - public const int auth_client_needs_update_title = 2131296274; + // aapt resource value: 0x7f070042 + public const int alternates_for_oe = 2131165250; - // aapt resource value: 0x7f090013 - public const int auth_client_play_services_err_notification_msg = 2131296275; + // aapt resource value: 0x7f07003f + public const int alternates_for_p = 2131165247; - // aapt resource value: 0x7f090014 - public const int auth_client_requested_by_msg = 2131296276; + // aapt resource value: 0x7f070037 + public const int alternates_for_q = 2131165239; - // aapt resource value: 0x7f09000f - public const int auth_client_using_bad_version_title = 2131296271; + // aapt resource value: 0x7f07003a + public const int alternates_for_r = 2131165242; - // aapt resource value: 0x7f0901f1 - public const int author = 2131296753; + // aapt resource value: 0x7f070033 + public const int alternates_for_s = 2131165235; - // aapt resource value: 0x7f090047 - public const int auto_cap = 2131296327; + // aapt resource value: 0x7f07003b + public const int alternates_for_t = 2131165243; - // aapt resource value: 0x7f090048 - public const int auto_cap_summary = 2131296328; + // aapt resource value: 0x7f070032 + public const int alternates_for_u = 2131165234; - // aapt resource value: 0x7f09004f - public const int auto_complete = 2131296335; + // aapt resource value: 0x7f070040 + public const int alternates_for_v = 2131165248; - // aapt resource value: 0x7f090044 - public const int auto_complete_dialog_title = 2131296324; + // aapt resource value: 0x7f070038 + public const int alternates_for_w = 2131165240; - // aapt resource value: 0x7f090050 - public const int auto_complete_summary = 2131296336; + // aapt resource value: 0x7f070036 + public const int alternates_for_y = 2131165238; - // aapt resource value: 0x7f09003f - public const int auto_correction = 2131296319; + // aapt resource value: 0x7f07003c + public const int alternates_for_z = 2131165244; - // aapt resource value: 0x7f090040 - public const int auto_correction_summary = 2131296320; + // aapt resource value: 0x7f070115 + public const int app_key = 2131165461; - // aapt resource value: 0x7f090049 - public const int auto_punctuate = 2131296329; + // aapt resource value: 0x7f07015b + public const int app_name = 2131165531; - // aapt resource value: 0x7f09004a - public const int auto_punctuate_summary = 2131296330; + // aapt resource value: 0x7f07015d + public const int app_name_nonet = 2131165533; - // aapt resource value: 0x7f090087 - public const int auto_submit = 2131296391; + // aapt resource value: 0x7f07015f + public const int app_timeout = 2131165535; - // aapt resource value: 0x7f090088 - public const int auto_submit_summary = 2131296392; + // aapt resource value: 0x7f070116 + public const int app_timeout_key = 2131165462; - // aapt resource value: 0x7f09015f - public const int available_through_keyboard = 2131296607; + // aapt resource value: 0x7f070160 + public const int app_timeout_summary = 2131165536; - // aapt resource value: 0x7f0902af - public const int bad_resp = 2131296943; + // aapt resource value: 0x7f070164 + public const int application = 2131165540; - // aapt resource value: 0x7f090055 - public const int bigram_suggestion = 2131296341; + // aapt resource value: 0x7f070165 + public const int application_settings = 2131165541; - // aapt resource value: 0x7f090056 - public const int bigram_suggestion_summary = 2131296342; + // aapt resource value: 0x7f07020c + public const int author = 2131165708; - // aapt resource value: 0x7f090159 - public const int brackets = 2131296601; + // aapt resource value: 0x7f07005f + public const int auto_cap = 2131165279; - // aapt resource value: 0x7f0902e5 - public const int browser_intall_text = 2131296997; + // aapt resource value: 0x7f070060 + public const int auto_cap_summary = 2131165280; - // aapt resource value: 0x7f0902e6 - public const int building_search_idx = 2131296998; + // aapt resource value: 0x7f070067 + public const int auto_complete = 2131165287; - // aapt resource value: 0x7f090297 - public const int button_change_location = 2131296919; + // aapt resource value: 0x7f07005c + public const int auto_complete_dialog_title = 2131165276; - // aapt resource value: 0x7f090081 - public const int cancel = 2131296385; + // aapt resource value: 0x7f070068 + public const int auto_complete_summary = 2131165288; - // aapt resource value: 0x7f090202 - public const int caseSensitive = 2131296770; + // aapt resource value: 0x7f070057 + public const int auto_correction = 2131165271; - // aapt resource value: 0x7f0900a5 - public const int change_entry = 2131296421; + // aapt resource value: 0x7f070058 + public const int auto_correction_summary = 2131165272; - // aapt resource value: 0x7f09015b - public const int clipboard_timeout = 2131296603; + // aapt resource value: 0x7f070061 + public const int auto_punctuate = 2131165281; - // aapt resource value: 0x7f09012f - public const int clipboard_timeout_default = 2131296559; + // aapt resource value: 0x7f070062 + public const int auto_punctuate_summary = 2131165282; - // aapt resource value: 0x7f090100 - public const int clipboard_timeout_key = 2131296512; + // aapt resource value: 0x7f07009f + public const int auto_submit = 2131165343; - // aapt resource value: 0x7f09015c - public const int clipboard_timeout_summary = 2131296604; + // aapt resource value: 0x7f0700a0 + public const int auto_submit_summary = 2131165344; - // aapt resource value: 0x7f09008a - public const int close_the_keyboard = 2131296394; + // aapt resource value: 0x7f070178 + public const int available_through_keyboard = 2131165560; - // aapt resource value: 0x7f090006 - public const int common_google_play_services_enable_button = 2131296262; + // aapt resource value: 0x7f0702ca + public const int bad_resp = 2131165898; - // aapt resource value: 0x7f090005 - public const int common_google_play_services_enable_text = 2131296261; + // aapt resource value: 0x7f07006d + public const int bigram_suggestion = 2131165293; - // aapt resource value: 0x7f090004 - public const int common_google_play_services_enable_title = 2131296260; + // aapt resource value: 0x7f07006e + public const int bigram_suggestion_summary = 2131165294; - // aapt resource value: 0x7f090003 - public const int common_google_play_services_install_button = 2131296259; + // aapt resource value: 0x7f070172 + public const int brackets = 2131165554; - // aapt resource value: 0x7f090001 - public const int common_google_play_services_install_text_phone = 2131296257; + // aapt resource value: 0x7f070308 + public const int browser_intall_text = 2131165960; - // aapt resource value: 0x7f090002 - public const int common_google_play_services_install_text_tablet = 2131296258; + // aapt resource value: 0x7f070309 + public const int building_search_idx = 2131165961; - // aapt resource value: 0x7f090000 - public const int common_google_play_services_install_title = 2131296256; + // aapt resource value: 0x7f0702b2 + public const int button_change_location = 2131165874; - // aapt resource value: 0x7f090009 - public const int common_google_play_services_unknown_issue = 2131296265; + // aapt resource value: 0x7f070099 + public const int cancel = 2131165337; - // aapt resource value: 0x7f09000b - public const int common_google_play_services_unsupported_text = 2131296267; + // aapt resource value: 0x7f07021d + public const int caseSensitive = 2131165725; - // aapt resource value: 0x7f09000a - public const int common_google_play_services_unsupported_title = 2131296266; + // aapt resource value: 0x7f0700bd + public const int change_entry = 2131165373; - // aapt resource value: 0x7f09000c - public const int common_google_play_services_update_button = 2131296268; + // aapt resource value: 0x7f070174 + public const int clipboard_timeout = 2131165556; - // aapt resource value: 0x7f090008 - public const int common_google_play_services_update_text = 2131296264; + // aapt resource value: 0x7f070147 + public const int clipboard_timeout_default = 2131165511; - // aapt resource value: 0x7f090007 - public const int common_google_play_services_update_title = 2131296263; + // aapt resource value: 0x7f070118 + public const int clipboard_timeout_key = 2131165464; - // aapt resource value: 0x7f09000d - public const int common_signin_button_text = 2131296269; + // aapt resource value: 0x7f070175 + public const int clipboard_timeout_summary = 2131165557; - // aapt resource value: 0x7f09000e - public const int common_signin_button_text_long = 2131296270; + // aapt resource value: 0x7f0700a2 + public const int close_the_keyboard = 2131165346; - // aapt resource value: 0x7f0901f7 - public const int contributors = 2131296759; + // aapt resource value: 0x7f07001e + public const int common_google_play_services_enable_button = 2131165214; - // aapt resource value: 0x7f09015e - public const int copy_password = 2131296606; + // aapt resource value: 0x7f07001d + public const int common_google_play_services_enable_text = 2131165213; - // aapt resource value: 0x7f09015d - public const int copy_username = 2131296605; + // aapt resource value: 0x7f07001c + public const int common_google_play_services_enable_title = 2131165212; - // aapt resource value: 0x7f0901ce - public const int create_database = 2131296718; + // aapt resource value: 0x7f070017 + public const int common_google_play_services_error_notification_requested_by_msg = 2131165207; - // aapt resource value: 0x7f090162 - public const int creating_db_key = 2131296610; + // aapt resource value: 0x7f07001b + public const int common_google_play_services_install_button = 2131165211; - // aapt resource value: 0x7f09022a - public const int credentials_dialog_title = 2131296810; + // aapt resource value: 0x7f070019 + public const int common_google_play_services_install_text_phone = 2131165209; - // aapt resource value: 0x7f0901f4 - public const int credit_android_filechooser = 2131296756; + // aapt resource value: 0x7f07001a + public const int common_google_play_services_install_text_tablet = 2131165210; - // aapt resource value: 0x7f0901f5 - public const int credit_keyboard = 2131296757; + // aapt resource value: 0x7f070018 + public const int common_google_play_services_install_title = 2131165208; - // aapt resource value: 0x7f0901f3 - public const int credit_plugin1 = 2131296755; + // aapt resource value: 0x7f070024 + public const int common_google_play_services_invalid_account_text = 2131165220; - // aapt resource value: 0x7f090163 - public const int current_group = 2131296611; + // aapt resource value: 0x7f070023 + public const int common_google_play_services_invalid_account_title = 2131165219; - // aapt resource value: 0x7f090164 - public const int current_group_root = 2131296612; + // aapt resource value: 0x7f070016 + public const int common_google_play_services_needs_enabling_title = 2131165206; - // aapt resource value: 0x7f090165 - public const int database = 2131296613; + // aapt resource value: 0x7f070022 + public const int common_google_play_services_network_error_text = 2131165218; - // aapt resource value: 0x7f090278 - public const int database_file = 2131296888; + // aapt resource value: 0x7f070021 + public const int common_google_play_services_network_error_title = 2131165217; - // aapt resource value: 0x7f090228 - public const int database_loaded_quickunlock_enabled = 2131296808; + // aapt resource value: 0x7f070014 + public const int common_google_play_services_notification_needs_installation_title = 2131165204; - // aapt resource value: 0x7f090229 - public const int database_loaded_unlocked = 2131296809; + // aapt resource value: 0x7f070015 + public const int common_google_play_services_notification_needs_update_title = 2131165205; - // aapt resource value: 0x7f090294 - public const int database_location = 2131296916; + // aapt resource value: 0x7f070013 + public const int common_google_play_services_notification_ticker = 2131165203; - // aapt resource value: 0x7f0901d8 - public const int database_name = 2131296728; + // aapt resource value: 0x7f070025 + public const int common_google_play_services_unknown_issue = 2131165221; - // aapt resource value: 0x7f09010f - public const int database_name_key = 2131296527; + // aapt resource value: 0x7f070028 + public const int common_google_play_services_unsupported_date_text = 2131165224; - // aapt resource value: 0x7f090101 - public const int db_key = 2131296513; + // aapt resource value: 0x7f070027 + public const int common_google_play_services_unsupported_text = 2131165223; - // aapt resource value: 0x7f0902e7 - public const int decrypting_db = 2131296999; + // aapt resource value: 0x7f070026 + public const int common_google_play_services_unsupported_title = 2131165222; - // aapt resource value: 0x7f0902e8 - public const int decrypting_entry = 2131297000; + // aapt resource value: 0x7f070029 + public const int common_google_play_services_update_button = 2131165225; - // aapt resource value: 0x7f0902e9 - public const int default_checkbox = 2131297001; + // aapt resource value: 0x7f070020 + public const int common_google_play_services_update_text = 2131165216; - // aapt resource value: 0x7f0900f3 - public const int default_file_path = 2131296499; + // aapt resource value: 0x7f07001f + public const int common_google_play_services_update_title = 2131165215; - // aapt resource value: 0x7f0901d9 - public const int default_username = 2131296729; + // aapt resource value: 0x7f07002a + public const int common_signin_button_text = 2131165226; - // aapt resource value: 0x7f09010e - public const int default_username_key = 2131296526; + // aapt resource value: 0x7f07002b + public const int common_signin_button_text_long = 2131165227; - // aapt resource value: 0x7f090227 - public const int delete_extra_string = 2131296807; + // aapt resource value: 0x7f070212 + public const int contributors = 2131165714; - // aapt resource value: 0x7f09013b - public const int deny = 2131296571; + // aapt resource value: 0x7f070177 + public const int copy_password = 2131165559; - // aapt resource value: 0x7f090131 - public const int design_default = 2131296561; + // aapt resource value: 0x7f070176 + public const int copy_username = 2131165558; - // aapt resource value: 0x7f090108 - public const int design_key = 2131296520; + // aapt resource value: 0x7f0701e9 + public const int create_database = 2131165673; - // aapt resource value: 0x7f0902e3 - public const int design_title = 2131296995; + // aapt resource value: 0x7f07017b + public const int creating_db_key = 2131165563; - // aapt resource value: 0x7f090166 - public const int digits = 2131296614; + // aapt resource value: 0x7f070245 + public const int credentials_dialog_title = 2131165765; - // aapt resource value: 0x7f090167 - public const int disclaimer_formal = 2131296615; + // aapt resource value: 0x7f07020f + public const int credit_android_filechooser = 2131165711; - // aapt resource value: 0x7f090153 - public const int display_prefs = 2131296595; + // aapt resource value: 0x7f070210 + public const int credit_keyboard = 2131165712; - // aapt resource value: 0x7f090117 - public const int display_prefs_key = 2131296535; + // aapt resource value: 0x7f07020e + public const int credit_plugin1 = 2131165710; - // aapt resource value: 0x7f09027e - public const int donate_bday_question = 2131296894; + // aapt resource value: 0x7f07017c + public const int current_group = 2131165564; - // aapt resource value: 0x7f09027f - public const int donate_missedbday_question = 2131296895; + // aapt resource value: 0x7f07017d + public const int current_group_root = 2131165565; - // aapt resource value: 0x7f09027d - public const int donate_question = 2131296893; + // aapt resource value: 0x7f07017e + public const int database = 2131165566; - // aapt resource value: 0x7f0900f4 - public const int donate_url = 2131296500; + // aapt resource value: 0x7f070293 + public const int database_file = 2131165843; - // aapt resource value: 0x7f090140 - public const int edit_group_title = 2131296576; + // aapt resource value: 0x7f070243 + public const int database_loaded_quickunlock_enabled = 2131165763; - // aapt resource value: 0x7f090168 - public const int ellipsis = 2131296616; + // aapt resource value: 0x7f070244 + public const int database_loaded_unlocked = 2131165764; - // aapt resource value: 0x7f090209 - public const int enable_quickunlock = 2131296777; + // aapt resource value: 0x7f0702af + public const int database_location = 2131165871; - // aapt resource value: 0x7f0900a3 - public const int english_ime_debug_settings = 2131296419; + // aapt resource value: 0x7f0701f3 + public const int database_name = 2131165683; - // aapt resource value: 0x7f090037 - public const int english_ime_input_options = 2131296311; + // aapt resource value: 0x7f070127 + public const int database_name_key = 2131165479; - // aapt resource value: 0x7f090035 - public const int english_ime_name = 2131296309; + // aapt resource value: 0x7f070119 + public const int db_key = 2131165465; - // aapt resource value: 0x7f090036 - public const int english_ime_settings = 2131296310; + // aapt resource value: 0x7f07030a + public const int decrypting_db = 2131165962; - // aapt resource value: 0x7f090169 - public const int enter_filename = 2131296617; + // aapt resource value: 0x7f07030b + public const int decrypting_entry = 2131165963; - // aapt resource value: 0x7f090208 - public const int enter_filename_details_create_import = 2131296776; + // aapt resource value: 0x7f07030c + public const int default_checkbox = 2131165964; - // aapt resource value: 0x7f090207 - public const int enter_filename_details_url = 2131296775; + // aapt resource value: 0x7f07010b + public const int default_file_path = 2131165451; - // aapt resource value: 0x7f090285 - public const int enter_sftp_login_title = 2131296901; + // aapt resource value: 0x7f0701f4 + public const int default_username = 2131165684; - // aapt resource value: 0x7f09016a - public const int entry_accessed = 2131296618; + // aapt resource value: 0x7f070126 + public const int default_username_key = 2131165478; - // aapt resource value: 0x7f0902ea - public const int entry_and_or = 2131297002; + // aapt resource value: 0x7f070242 + public const int delete_extra_string = 2131165762; - // aapt resource value: 0x7f09017b - public const int entry_binaries = 2131296635; + // aapt resource value: 0x7f070153 + public const int deny = 2131165523; - // aapt resource value: 0x7f09016b - public const int entry_cancel = 2131296619; + // aapt resource value: 0x7f070149 + public const int design_default = 2131165513; - // aapt resource value: 0x7f09016c - public const int entry_comment = 2131296620; + // aapt resource value: 0x7f070120 + public const int design_key = 2131165472; - // aapt resource value: 0x7f09016f - public const int entry_confpassword = 2131296623; + // aapt resource value: 0x7f070306 + public const int design_title = 2131165958; - // aapt resource value: 0x7f090170 - public const int entry_created = 2131296624; + // aapt resource value: 0x7f07017f + public const int digits = 2131165567; - // aapt resource value: 0x7f090171 - public const int entry_expires = 2131296625; + // aapt resource value: 0x7f070180 + public const int disclaimer_formal = 2131165568; - // aapt resource value: 0x7f09017a - public const int entry_extra_strings = 2131296634; + // aapt resource value: 0x7f07016c + public const int display_prefs = 2131165548; - // aapt resource value: 0x7f090172 - public const int entry_group_name = 2131296626; + // aapt resource value: 0x7f07012f + public const int display_prefs_key = 2131165487; - // aapt resource value: 0x7f090173 - public const int entry_keyfile = 2131296627; + // aapt resource value: 0x7f070299 + public const int donate_bday_question = 2131165849; - // aapt resource value: 0x7f090174 - public const int entry_modified = 2131296628; + // aapt resource value: 0x7f07029a + public const int donate_missedbday_question = 2131165850; - // aapt resource value: 0x7f09016e - public const int entry_override_url = 2131296622; + // aapt resource value: 0x7f070298 + public const int donate_question = 2131165848; - // aapt resource value: 0x7f090175 - public const int entry_password = 2131296629; + // aapt resource value: 0x7f07010c + public const int donate_url = 2131165452; - // aapt resource value: 0x7f090176 - public const int entry_save = 2131296630; + // aapt resource value: 0x7f070158 + public const int edit_group_title = 2131165528; - // aapt resource value: 0x7f09016d - public const int entry_tags = 2131296621; + // aapt resource value: 0x7f070181 + public const int ellipsis = 2131165569; - // aapt resource value: 0x7f090177 - public const int entry_title = 2131296631; + // aapt resource value: 0x7f070224 + public const int enable_quickunlock = 2131165732; - // aapt resource value: 0x7f090178 - public const int entry_url = 2131296632; + // aapt resource value: 0x7f0700bb + public const int english_ime_debug_settings = 2131165371; - // aapt resource value: 0x7f090179 - public const int entry_user_name = 2131296633; + // aapt resource value: 0x7f07004f + public const int english_ime_input_options = 2131165263; - // aapt resource value: 0x7f09029f - public const int error_adding_keyfile = 2131296927; + // aapt resource value: 0x7f07004d + public const int english_ime_name = 2131165261; - // aapt resource value: 0x7f0902eb - public const int error_arc4 = 2131297003; + // aapt resource value: 0x7f07004e + public const int english_ime_settings = 2131165262; - // aapt resource value: 0x7f09017c - public const int error_can_not_handle_uri = 2131296636; + // aapt resource value: 0x7f070182 + public const int enter_filename = 2131165570; - // aapt resource value: 0x7f09017d - public const int error_could_not_create_group = 2131296637; + // aapt resource value: 0x7f070223 + public const int enter_filename_details_create_import = 2131165731; - // aapt resource value: 0x7f09017e - public const int error_could_not_create_parent = 2131296638; + // aapt resource value: 0x7f070222 + public const int enter_filename_details_url = 2131165730; - // aapt resource value: 0x7f09017f - public const int error_database_exists = 2131296639; + // aapt resource value: 0x7f0702a0 + public const int enter_sftp_login_title = 2131165856; - // aapt resource value: 0x7f0902e4 - public const int error_database_settings = 2131296996; + // aapt resource value: 0x7f070183 + public const int entry_accessed = 2131165571; - // aapt resource value: 0x7f090180 - public const int error_database_settinoverrgs = 2131296640; + // aapt resource value: 0x7f07030d + public const int entry_and_or = 2131165965; - // aapt resource value: 0x7f090181 - public const int error_failed_to_launch_link = 2131296641; + // aapt resource value: 0x7f070195 + public const int entry_binaries = 2131165589; - // aapt resource value: 0x7f090183 - public const int error_file_not_create = 2131296643; + // aapt resource value: 0x7f070184 + public const int entry_cancel = 2131165572; - // aapt resource value: 0x7f090182 - public const int error_filename_required = 2131296642; + // aapt resource value: 0x7f070185 + public const int entry_comment = 2131165573; - // aapt resource value: 0x7f090184 - public const int error_invalid_db = 2131296644; + // aapt resource value: 0x7f070188 + public const int entry_confpassword = 2131165576; - // aapt resource value: 0x7f090220 - public const int error_invalid_expiry_date = 2131296800; + // aapt resource value: 0x7f070189 + public const int entry_created = 2131165577; - // aapt resource value: 0x7f090185 - public const int error_invalid_path = 2131296645; + // aapt resource value: 0x7f07018a + public const int entry_expires = 2131165578; - // aapt resource value: 0x7f090186 - public const int error_no_name = 2131296646; + // aapt resource value: 0x7f070194 + public const int entry_extra_strings = 2131165588; - // aapt resource value: 0x7f090187 - public const int error_nopass = 2131296647; + // aapt resource value: 0x7f07018b + public const int entry_group_name = 2131165579; - // aapt resource value: 0x7f0902ec - public const int error_out_of_memory = 2131297004; + // aapt resource value: 0x7f07018c + public const int entry_keyfile = 2131165580; - // aapt resource value: 0x7f090188 - public const int error_pass_gen_type = 2131296648; + // aapt resource value: 0x7f07018e + public const int entry_modified = 2131165582; - // aapt resource value: 0x7f090189 - public const int error_pass_match = 2131296649; + // aapt resource value: 0x7f070187 + public const int entry_override_url = 2131165575; - // aapt resource value: 0x7f09018a - public const int error_rounds_not_number = 2131296650; + // aapt resource value: 0x7f07018f + public const int entry_password = 2131165583; - // aapt resource value: 0x7f0902ed - public const int error_rounds_too_large = 2131297005; + // aapt resource value: 0x7f070190 + public const int entry_save = 2131165584; - // aapt resource value: 0x7f090221 - public const int error_string_key = 2131296801; + // aapt resource value: 0x7f070186 + public const int entry_tags = 2131165574; - // aapt resource value: 0x7f09018b - public const int error_title_required = 2131296651; + // aapt resource value: 0x7f070191 + public const int entry_title = 2131165585; - // aapt resource value: 0x7f09018c - public const int error_wrong_length = 2131296652; + // aapt resource value: 0x7f070192 + public const int entry_url = 2131165586; - // aapt resource value: 0x7f090200 - public const int excludeExpiredEntries = 2131296768; + // aapt resource value: 0x7f070193 + public const int entry_user_name = 2131165587; - // aapt resource value: 0x7f0901dc - public const int export_database_successful = 2131296732; + // aapt resource value: 0x7f0702ba + public const int error_adding_keyfile = 2131165882; - // aapt resource value: 0x7f0902cf - public const int export_fileformats_title = 2131296975; + // aapt resource value: 0x7f07030e + public const int error_arc4 = 2131165966; - // aapt resource value: 0x7f090158 - public const int export_prefs = 2131296600; + // aapt resource value: 0x7f070196 + public const int error_can_not_handle_uri = 2131165590; - // aapt resource value: 0x7f0901db - public const int exporting_database = 2131296731; + // aapt resource value: 0x7f070197 + public const int error_could_not_create_group = 2131165591; - // aapt resource value: 0x7f090222 - public const int field_name = 2131296802; + // aapt resource value: 0x7f070198 + public const int error_could_not_create_parent = 2131165592; - // aapt resource value: 0x7f090223 - public const int field_value = 2131296803; + // aapt resource value: 0x7f070199 + public const int error_database_exists = 2131165593; - // aapt resource value: 0x7f09018e - public const int file_browser = 2131296654; + // aapt resource value: 0x7f070307 + public const int error_database_settings = 2131165959; - // aapt resource value: 0x7f090293 - public const int filestorage_setup_title = 2131296915; + // aapt resource value: 0x7f07019a + public const int error_database_settinoverrgs = 2131165594; - // aapt resource value: 0x7f09028f - public const int filestoragehelp_dropboxKP2A = 2131296911; + // aapt resource value: 0x7f07019b + public const int error_failed_to_launch_link = 2131165595; - // aapt resource value: 0x7f090288 - public const int filestoragename_androidget = 2131296904; + // aapt resource value: 0x7f07019d + public const int error_file_not_create = 2131165597; - // aapt resource value: 0x7f090289 - public const int filestoragename_androidsend = 2131296905; + // aapt resource value: 0x7f07019c + public const int error_filename_required = 2131165596; - // aapt resource value: 0x7f09028d - public const int filestoragename_dropbox = 2131296909; + // aapt resource value: 0x7f07019e + public const int error_invalid_db = 2131165598; - // aapt resource value: 0x7f09028e - public const int filestoragename_dropboxKP2A = 2131296910; + // aapt resource value: 0x7f07023b + public const int error_invalid_expiry_date = 2131165755; - // aapt resource value: 0x7f090287 - public const int filestoragename_file = 2131296903; + // aapt resource value: 0x7f07019f + public const int error_invalid_path = 2131165599; - // aapt resource value: 0x7f09028a - public const int filestoragename_ftp = 2131296906; + // aapt resource value: 0x7f0701a0 + public const int error_no_name = 2131165600; - // aapt resource value: 0x7f090290 - public const int filestoragename_gdrive = 2131296912; + // aapt resource value: 0x7f0701a1 + public const int error_nopass = 2131165601; - // aapt resource value: 0x7f09028b - public const int filestoragename_http = 2131296907; + // aapt resource value: 0x7f07030f + public const int error_out_of_memory = 2131165967; - // aapt resource value: 0x7f09028c - public const int filestoragename_https = 2131296908; + // aapt resource value: 0x7f0701a2 + public const int error_pass_gen_type = 2131165602; - // aapt resource value: 0x7f090292 - public const int filestoragename_sftp = 2131296914; + // aapt resource value: 0x7f0701a3 + public const int error_pass_match = 2131165603; - // aapt resource value: 0x7f090291 - public const int filestoragename_skydrive = 2131296913; + // aapt resource value: 0x7f0701a4 + public const int error_rounds_not_number = 2131165604; - // aapt resource value: 0x7f0900f7 - public const int further_author_names = 2131296503; + // aapt resource value: 0x7f070310 + public const int error_rounds_too_large = 2131165968; - // aapt resource value: 0x7f0901f2 - public const int further_authors = 2131296754; + // aapt resource value: 0x7f07023c + public const int error_string_key = 2131165756; - // aapt resource value: 0x7f09018f - public const int generate_password = 2131296655; + // aapt resource value: 0x7f0701a5 + public const int error_title_required = 2131165605; - // aapt resource value: 0x7f0902cc - public const int get_regular_version = 2131296972; + // aapt resource value: 0x7f0701a6 + public const int error_wrong_length = 2131165606; - // aapt resource value: 0x7f090190 - public const int group = 2131296656; + // aapt resource value: 0x7f07021b + public const int excludeExpiredEntries = 2131165723; - // aapt resource value: 0x7f090096 - public const int has_dictionary = 2131296406; + // aapt resource value: 0x7f0701f7 + public const int export_database_successful = 2131165687; - // aapt resource value: 0x7f090295 - public const int help_database_location = 2131296917; + // aapt resource value: 0x7f0702ea + public const int export_fileformats_title = 2131165930; - // aapt resource value: 0x7f09029c - public const int help_key_file = 2131296924; + // aapt resource value: 0x7f070171 + public const int export_prefs = 2131165553; - // aapt resource value: 0x7f090299 - public const int help_master_password = 2131296921; + // aapt resource value: 0x7f0701f6 + public const int exporting_database = 2131165686; - // aapt resource value: 0x7f090095 - public const int hint_add_to_dictionary = 2131296405; + // aapt resource value: 0x7f07023d + public const int field_name = 2131165757; - // aapt resource value: 0x7f090191 - public const int hint_comment = 2131296657; + // aapt resource value: 0x7f07023e + public const int field_value = 2131165758; - // aapt resource value: 0x7f090192 - public const int hint_conf_pass = 2131296658; + // aapt resource value: 0x7f0701a8 + public const int file_browser = 2131165608; - // aapt resource value: 0x7f090296 - public const int hint_database_location = 2131296918; + // aapt resource value: 0x7f0702ae + public const int filestorage_setup_title = 2131165870; - // aapt resource value: 0x7f090193 - public const int hint_generated_password = 2131296659; + // aapt resource value: 0x7f0702aa + public const int filestoragehelp_dropboxKP2A = 2131165866; - // aapt resource value: 0x7f090194 - public const int hint_group_name = 2131296660; + // aapt resource value: 0x7f0702a3 + public const int filestoragename_androidget = 2131165859; - // aapt resource value: 0x7f09029d - public const int hint_key_file = 2131296925; + // aapt resource value: 0x7f0702a4 + public const int filestoragename_androidsend = 2131165860; - // aapt resource value: 0x7f090195 - public const int hint_keyfile = 2131296661; + // aapt resource value: 0x7f0702a8 + public const int filestoragename_dropbox = 2131165864; - // aapt resource value: 0x7f090196 - public const int hint_length = 2131296662; + // aapt resource value: 0x7f0702a9 + public const int filestoragename_dropboxKP2A = 2131165865; - // aapt resource value: 0x7f090198 - public const int hint_login_pass = 2131296664; + // aapt resource value: 0x7f0702a2 + public const int filestoragename_file = 2131165858; - // aapt resource value: 0x7f09029a - public const int hint_master_password = 2131296922; + // aapt resource value: 0x7f0702a5 + public const int filestoragename_ftp = 2131165861; - // aapt resource value: 0x7f09019b - public const int hint_override_url = 2131296667; + // aapt resource value: 0x7f0702ab + public const int filestoragename_gdrive = 2131165867; - // aapt resource value: 0x7f090197 - public const int hint_pass = 2131296663; + // aapt resource value: 0x7f0702a6 + public const int filestoragename_http = 2131165862; - // aapt resource value: 0x7f090282 - public const int hint_sftp_host = 2131296898; + // aapt resource value: 0x7f0702a7 + public const int filestoragename_https = 2131165863; - // aapt resource value: 0x7f090283 - public const int hint_sftp_port = 2131296899; + // aapt resource value: 0x7f0702ad + public const int filestoragename_sftp = 2131165869; - // aapt resource value: 0x7f09019c - public const int hint_tags = 2131296668; + // aapt resource value: 0x7f0702ac + public const int filestoragename_skydrive = 2131165868; - // aapt resource value: 0x7f090199 - public const int hint_title = 2131296665; + // aapt resource value: 0x7f07010f + public const int further_author_names = 2131165455; - // aapt resource value: 0x7f09019a - public const int hint_url = 2131296666; + // aapt resource value: 0x7f07020d + public const int further_authors = 2131165709; - // aapt resource value: 0x7f09019d - public const int hint_username = 2131296669; + // aapt resource value: 0x7f0701a9 + public const int generate_password = 2131165609; - // aapt resource value: 0x7f09003b - public const int hit_correction = 2131296315; + // aapt resource value: 0x7f0702e7 + public const int get_regular_version = 2131165927; - // aapt resource value: 0x7f09003d - public const int hit_correction_land = 2131296317; + // aapt resource value: 0x7f0701aa + public const int group = 2131165610; - // aapt resource value: 0x7f09003e - public const int hit_correction_land_summary = 2131296318; + // aapt resource value: 0x7f0700ae + public const int has_dictionary = 2131165358; - // aapt resource value: 0x7f09003c - public const int hit_correction_summary = 2131296316; + // aapt resource value: 0x7f0702b0 + public const int help_database_location = 2131165872; - // aapt resource value: 0x7f0900f5 - public const int homepage = 2131296501; + // aapt resource value: 0x7f0702b7 + public const int help_key_file = 2131165879; - // aapt resource value: 0x7f0900f6 - public const int homepage_short = 2131296502; + // aapt resource value: 0x7f0702b4 + public const int help_master_password = 2131165876; - // aapt resource value: 0x7f0900f2 - public const int icon_info = 2131296498; + // aapt resource value: 0x7f0700ad + public const int hint_add_to_dictionary = 2131165357; - // aapt resource value: 0x7f0902a0 - public const int init_otp = 2131296928; + // aapt resource value: 0x7f0701ab + public const int hint_comment = 2131165611; - // aapt resource value: 0x7f090284 - public const int initial_directory = 2131296900; + // aapt resource value: 0x7f0701ac + public const int hint_conf_pass = 2131165612; - // aapt resource value: 0x7f0901e8 - public const int insert_element_here = 2131296744; + // aapt resource value: 0x7f0702b1 + public const int hint_database_location = 2131165873; - // aapt resource value: 0x7f0902ee - public const int install_from_market = 2131297006; + // aapt resource value: 0x7f0701ad + public const int hint_generated_password = 2131165613; - // aapt resource value: 0x7f0902ef - public const int install_from_website = 2131297007; + // aapt resource value: 0x7f0701ae + public const int hint_group_name = 2131165614; - // aapt resource value: 0x7f09019f - public const int invalid_algorithm = 2131296671; + // aapt resource value: 0x7f0702b8 + public const int hint_key_file = 2131165880; - // aapt resource value: 0x7f0901a0 - public const int invalid_db_sig = 2131296672; + // aapt resource value: 0x7f0701af + public const int hint_keyfile = 2131165615; - // aapt resource value: 0x7f0900f8 - public const int issues = 2131296504; + // aapt resource value: 0x7f0701b0 + public const int hint_length = 2131165616; - // aapt resource value: 0x7f09029b - public const int key_file = 2131296923; + // aapt resource value: 0x7f0701b2 + public const int hint_login_pass = 2131165618; - // aapt resource value: 0x7f09009b - public const int keyboard_layout = 2131296411; + // aapt resource value: 0x7f0702b5 + public const int hint_master_password = 2131165877; - // aapt resource value: 0x7f090157 - public const int keyboard_prefs = 2131296599; + // aapt resource value: 0x7f0701b5 + public const int hint_override_url = 2131165621; - // aapt resource value: 0x7f09008c - public const int keyboard_settings = 2131296396; + // aapt resource value: 0x7f0701b1 + public const int hint_pass = 2131165617; - // aapt resource value: 0x7f0901a1 - public const int keyfile_does_not_exist = 2131296673; + // aapt resource value: 0x7f07029d + public const int hint_sftp_host = 2131165853; - // aapt resource value: 0x7f0901a2 - public const int keyfile_is_empty = 2131296674; + // aapt resource value: 0x7f07029e + public const int hint_sftp_port = 2131165854; - // aapt resource value: 0x7f090104 - public const int keyfile_key = 2131296516; + // aapt resource value: 0x7f0701b6 + public const int hint_tags = 2131165622; - // aapt resource value: 0x7f090149 - public const int kill_app_label = 2131296585; + // aapt resource value: 0x7f0701b3 + public const int hint_title = 2131165619; - // aapt resource value: 0x7f0902d0 - public const int killed_by_os = 2131296976; + // aapt resource value: 0x7f0701b4 + public const int hint_url = 2131165620; - // aapt resource value: 0x7f0900ab - public const int kp2a_auto_fill = 2131296427; + // aapt resource value: 0x7f0701b7 + public const int hint_username = 2131165623; - // aapt resource value: 0x7f0900ac - public const int kp2a_auto_fill_summary = 2131296428; + // aapt resource value: 0x7f070053 + public const int hit_correction = 2131165267; - // aapt resource value: 0x7f0901ff - public const int kp2a_findUrl = 2131296767; + // aapt resource value: 0x7f070055 + public const int hit_correction_land = 2131165269; - // aapt resource value: 0x7f0900b1 - public const int kp2a_lock_on_sendgodone = 2131296433; + // aapt resource value: 0x7f070056 + public const int hit_correction_land_summary = 2131165270; - // aapt resource value: 0x7f0900b2 - public const int kp2a_lock_on_sendgodone_summary = 2131296434; + // aapt resource value: 0x7f070054 + public const int hit_correction_summary = 2131165268; - // aapt resource value: 0x7f0900a9 - public const int kp2a_password = 2131296425; + // aapt resource value: 0x7f07010d + public const int homepage = 2131165453; - // aapt resource value: 0x7f0900aa - public const int kp2a_prefs = 2131296426; + // aapt resource value: 0x7f07010e + public const int homepage_short = 2131165454; - // aapt resource value: 0x7f0900ad - public const int kp2a_remember_auto_fill = 2131296429; + // aapt resource value: 0x7f07010a + public const int icon_info = 2131165450; - // aapt resource value: 0x7f0900ae - public const int kp2a_remember_auto_fill_summary = 2131296430; + // aapt resource value: 0x7f0702bb + public const int init_otp = 2131165883; - // aapt resource value: 0x7f0900af - public const int kp2a_simple_keyboard = 2131296431; + // aapt resource value: 0x7f07029f + public const int initial_directory = 2131165855; - // aapt resource value: 0x7f0900b0 - public const int kp2a_simple_keyboard_summary = 2131296432; + // aapt resource value: 0x7f070203 + public const int insert_element_here = 2131165699; - // aapt resource value: 0x7f0900b3 - public const int kp2a_switch_on_sendgodone = 2131296435; + // aapt resource value: 0x7f070311 + public const int install_from_market = 2131165969; - // aapt resource value: 0x7f0900b4 - public const int kp2a_switch_on_sendgodone_summary = 2131296436; + // aapt resource value: 0x7f070312 + public const int install_from_website = 2131165970; - // aapt resource value: 0x7f090242 - public const int kp2a_switch_rooted = 2131296834; + // aapt resource value: 0x7f0701b9 + public const int invalid_algorithm = 2131165625; - // aapt resource value: 0x7f090243 - public const int kp2a_switch_rooted_summary = 2131296835; + // aapt resource value: 0x7f0701ba + public const int invalid_db_sig = 2131165626; - // aapt resource value: 0x7f0900a8 - public const int kp2a_user = 2131296424; + // aapt resource value: 0x7f070110 + public const int issues = 2131165456; - // aapt resource value: 0x7f09006d - public const int label_alpha_key = 2131296365; + // aapt resource value: 0x7f0702b6 + public const int key_file = 2131165878; - // aapt resource value: 0x7f09006e - public const int label_alt_key = 2131296366; + // aapt resource value: 0x7f0700b3 + public const int keyboard_layout = 2131165363; - // aapt resource value: 0x7f090069 - public const int label_done_key = 2131296361; + // aapt resource value: 0x7f070170 + public const int keyboard_prefs = 2131165552; - // aapt resource value: 0x7f090067 - public const int label_go_key = 2131296359; + // aapt resource value: 0x7f0700a4 + public const int keyboard_settings = 2131165348; - // aapt resource value: 0x7f090068 - public const int label_next_key = 2131296360; + // aapt resource value: 0x7f0701bb + public const int keyfile_does_not_exist = 2131165627; - // aapt resource value: 0x7f09006c - public const int label_phone_key = 2131296364; + // aapt resource value: 0x7f07018d + public const int keyfile_heading = 2131165581; - // aapt resource value: 0x7f09006a - public const int label_send_key = 2131296362; + // aapt resource value: 0x7f0701bd + public const int keyfile_is_empty = 2131165629; - // aapt resource value: 0x7f09006b - public const int label_symbol_key = 2131296363; + // aapt resource value: 0x7f07011c + public const int keyfile_key = 2131165468; - // aapt resource value: 0x7f090094 - public const int language_selection_summary = 2131296404; + // aapt resource value: 0x7f070161 + public const int kill_app_label = 2131165537; - // aapt resource value: 0x7f090093 - public const int language_selection_title = 2131296403; + // aapt resource value: 0x7f0702eb + public const int killed_by_os = 2131165931; - // aapt resource value: 0x7f09009c - public const int layout_basic = 2131296412; + // aapt resource value: 0x7f0700c3 + public const int kp2a_auto_fill = 2131165379; - // aapt resource value: 0x7f0900a0 - public const int layout_gingerbread = 2131296416; + // aapt resource value: 0x7f0700c4 + public const int kp2a_auto_fill_summary = 2131165380; - // aapt resource value: 0x7f09009d - public const int layout_high_contrast = 2131296413; + // aapt resource value: 0x7f07021a + public const int kp2a_findUrl = 2131165722; - // aapt resource value: 0x7f09009e - public const int layout_stone_bold = 2131296414; + // aapt resource value: 0x7f0700c9 + public const int kp2a_lock_on_sendgodone = 2131165385; - // aapt resource value: 0x7f09009f - public const int layout_stone_normal = 2131296415; + // aapt resource value: 0x7f0700ca + public const int kp2a_lock_on_sendgodone_summary = 2131165386; - // aapt resource value: 0x7f0901a3 - public const int length = 2131296675; + // aapt resource value: 0x7f0700c1 + public const int kp2a_password = 2131165377; - // aapt resource value: 0x7f0900b5 - public const int library_name = 2131296437; + // aapt resource value: 0x7f0700c2 + public const int kp2a_prefs = 2131165378; - // aapt resource value: 0x7f090130 - public const int list_size_default = 2131296560; + // aapt resource value: 0x7f0700c5 + public const int kp2a_remember_auto_fill = 2131165381; - // aapt resource value: 0x7f090107 - public const int list_size_key = 2131296519; + // aapt resource value: 0x7f0700c6 + public const int kp2a_remember_auto_fill_summary = 2131165382; - // aapt resource value: 0x7f0901a5 - public const int list_size_summary = 2131296677; + // aapt resource value: 0x7f0700c7 + public const int kp2a_simple_keyboard = 2131165383; - // aapt resource value: 0x7f0901a4 - public const int list_size_title = 2131296676; + // aapt resource value: 0x7f0700c8 + public const int kp2a_simple_keyboard_summary = 2131165384; - // aapt resource value: 0x7f0902b8 - public const int loading = 2131296952; + // aapt resource value: 0x7f0700cb + public const int kp2a_switch_on_sendgodone = 2131165387; - // aapt resource value: 0x7f0901a6 - public const int loading_database = 2131296678; + // aapt resource value: 0x7f0700cc + public const int kp2a_switch_on_sendgodone_summary = 2131165388; - // aapt resource value: 0x7f0901a7 - public const int lowercase = 2131296679; + // aapt resource value: 0x7f07025d + public const int kp2a_switch_rooted = 2131165789; - // aapt resource value: 0x7f090105 - public const int maskpass_key = 2131296517; + // aapt resource value: 0x7f07025e + public const int kp2a_switch_rooted_summary = 2131165790; - // aapt resource value: 0x7f0901aa - public const int maskpass_summary = 2131296682; + // aapt resource value: 0x7f0700c0 + public const int kp2a_user = 2131165376; - // aapt resource value: 0x7f0901a9 - public const int maskpass_title = 2131296681; + // aapt resource value: 0x7f070085 + public const int label_alpha_key = 2131165317; - // aapt resource value: 0x7f0901cc - public const int master_key_type = 2131296716; + // aapt resource value: 0x7f070086 + public const int label_alt_key = 2131165318; - // aapt resource value: 0x7f090298 - public const int master_password = 2131296920; + // aapt resource value: 0x7f070081 + public const int label_done_key = 2131165313; - // aapt resource value: 0x7f090103 - public const int master_pwd_key = 2131296515; + // aapt resource value: 0x7f07007f + public const int label_go_key = 2131165311; - // aapt resource value: 0x7f0901ab - public const int menu_about = 2131296683; + // aapt resource value: 0x7f070080 + public const int label_next_key = 2131165312; - // aapt resource value: 0x7f0901b0 - public const int menu_app_settings = 2131296688; + // aapt resource value: 0x7f070084 + public const int label_phone_key = 2131165316; - // aapt resource value: 0x7f0901bf - public const int menu_change_db = 2131296703; + // aapt resource value: 0x7f070082 + public const int label_send_key = 2131165314; - // aapt resource value: 0x7f0901ac - public const int menu_change_key = 2131296684; + // aapt resource value: 0x7f070083 + public const int label_symbol_key = 2131165315; - // aapt resource value: 0x7f0901ad - public const int menu_copy_pass = 2131296685; + // aapt resource value: 0x7f0700ac + public const int language_selection_summary = 2131165356; - // aapt resource value: 0x7f0901ae - public const int menu_copy_user = 2131296686; + // aapt resource value: 0x7f0700ab + public const int language_selection_title = 2131165355; - // aapt resource value: 0x7f0901af - public const int menu_create = 2131296687; + // aapt resource value: 0x7f0700b4 + public const int layout_basic = 2131165364; - // aapt resource value: 0x7f0901b1 - public const int menu_db_settings = 2131296689; + // aapt resource value: 0x7f0700b8 + public const int layout_gingerbread = 2131165368; - // aapt resource value: 0x7f0901b2 - public const int menu_delete = 2131296690; + // aapt resource value: 0x7f0700b5 + public const int layout_high_contrast = 2131165365; - // aapt resource value: 0x7f0901b6 - public const int menu_donate = 2131296694; + // aapt resource value: 0x7f0700b6 + public const int layout_stone_bold = 2131165366; - // aapt resource value: 0x7f0901b7 - public const int menu_edit = 2131296695; + // aapt resource value: 0x7f0700b7 + public const int layout_stone_normal = 2131165367; - // aapt resource value: 0x7f0901b8 - public const int menu_hide_password = 2131296696; + // aapt resource value: 0x7f0701be + public const int length = 2131165630; - // aapt resource value: 0x7f0902f0 - public const int menu_homepage = 2131297008; + // aapt resource value: 0x7f0700cd + public const int library_name = 2131165389; - // aapt resource value: 0x7f0901b9 - public const int menu_lock = 2131296697; + // aapt resource value: 0x7f070148 + public const int list_size_default = 2131165512; - // aapt resource value: 0x7f0901b3 - public const int menu_move = 2131296691; + // aapt resource value: 0x7f07011f + public const int list_size_key = 2131165471; - // aapt resource value: 0x7f0901b4 - public const int menu_move_light = 2131296692; + // aapt resource value: 0x7f0701c0 + public const int list_size_summary = 2131165632; - // aapt resource value: 0x7f0901b5 - public const int menu_navigate = 2131296693; + // aapt resource value: 0x7f0701bf + public const int list_size_title = 2131165631; - // aapt resource value: 0x7f0901ba - public const int menu_open = 2131296698; + // aapt resource value: 0x7f0702d3 + public const int loading = 2131165907; - // aapt resource value: 0x7f0901bb - public const int menu_rename = 2131296699; + // aapt resource value: 0x7f0701c1 + public const int loading_database = 2131165633; - // aapt resource value: 0x7f0901bc - public const int menu_search = 2131296700; + // aapt resource value: 0x7f0701c2 + public const int lowercase = 2131165634; - // aapt resource value: 0x7f0901bd - public const int menu_search_advanced = 2131296701; + // aapt resource value: 0x7f07011d + public const int maskpass_key = 2131165469; - // aapt resource value: 0x7f0901be - public const int menu_url = 2131296702; + // aapt resource value: 0x7f0701c5 + public const int maskpass_summary = 2131165637; - // aapt resource value: 0x7f0901c0 - public const int minus = 2131296704; + // aapt resource value: 0x7f0701c4 + public const int maskpass_title = 2131165636; - // aapt resource value: 0x7f0901c1 - public const int never = 2131296705; + // aapt resource value: 0x7f0701e7 + public const int master_key_type = 2131165671; - // aapt resource value: 0x7f0901c3 - public const int no = 2131296707; + // aapt resource value: 0x7f0702b3 + public const int master_password = 2131165875; - // aapt resource value: 0x7f0901c4 - public const int no_keys = 2131296708; + // aapt resource value: 0x7f07011b + public const int master_pwd_key = 2131165467; - // aapt resource value: 0x7f0901c5 - public const int no_results = 2131296709; + // aapt resource value: 0x7f0701c6 + public const int menu_about = 2131165638; - // aapt resource value: 0x7f090281 - public const int no_thanks = 2131296897; + // aapt resource value: 0x7f0701cb + public const int menu_app_settings = 2131165643; - // aapt resource value: 0x7f0901c6 - public const int no_url_handler = 2131296710; + // aapt resource value: 0x7f0701da + public const int menu_change_db = 2131165658; - // aapt resource value: 0x7f090160 - public const int not_possible_im_picker = 2131296608; + // aapt resource value: 0x7f0701c7 + public const int menu_change_key = 2131165639; - // aapt resource value: 0x7f0900f9 - public const int oi_filemanager_market = 2131296505; + // aapt resource value: 0x7f0701c8 + public const int menu_copy_pass = 2131165640; - // aapt resource value: 0x7f0900fa - public const int oi_filemanager_web = 2131296506; + // aapt resource value: 0x7f0701c9 + public const int menu_copy_user = 2131165641; - // aapt resource value: 0x7f090082 - public const int ok = 2131296386; + // aapt resource value: 0x7f0701ca + public const int menu_create = 2131165642; - // aapt resource value: 0x7f090280 - public const int ok_donate = 2131296896; + // aapt resource value: 0x7f0701cc + public const int menu_db_settings = 2131165644; - // aapt resource value: 0x7f090106 - public const int omitbackup_key = 2131296518; + // aapt resource value: 0x7f0701cd + public const int menu_delete = 2131165645; - // aapt resource value: 0x7f0901c9 - public const int omitbackup_summary = 2131296713; + // aapt resource value: 0x7f0701d1 + public const int menu_donate = 2131165649; - // aapt resource value: 0x7f0901c8 - public const int omitbackup_title = 2131296712; + // aapt resource value: 0x7f0701d2 + public const int menu_edit = 2131165650; - // aapt resource value: 0x7f0900a6 - public const int open_entry = 2131296422; + // aapt resource value: 0x7f0701d3 + public const int menu_hide_password = 2131165651; - // aapt resource value: 0x7f0900a7 - public const int open_entry_for_app = 2131296423; + // aapt resource value: 0x7f070313 + public const int menu_homepage = 2131165971; - // aapt resource value: 0x7f0901c7 - public const int open_recent = 2131296711; + // aapt resource value: 0x7f0701d4 + public const int menu_lock = 2131165652; - // aapt resource value: 0x7f090089 - public const int open_the_keyboard = 2131296393; + // aapt resource value: 0x7f0701ce + public const int menu_move = 2131165646; - // aapt resource value: 0x7f090279 - public const int otp_aux_file = 2131296889; + // aapt resource value: 0x7f0701cf + public const int menu_move_light = 2131165647; - // aapt resource value: 0x7f0902a8 - public const int otp_discarded_because_db_open = 2131296936; + // aapt resource value: 0x7f0701d0 + public const int menu_navigate = 2131165648; - // aapt resource value: 0x7f0902a6 - public const int otp_discarded_because_no_db = 2131296934; + // aapt resource value: 0x7f0701d5 + public const int menu_open = 2131165653; - // aapt resource value: 0x7f0902a7 - public const int otp_discarded_no_space = 2131296935; + // aapt resource value: 0x7f0701d6 + public const int menu_rename = 2131165654; - // aapt resource value: 0x7f0902a1 - public const int otp_explanation = 2131296929; + // aapt resource value: 0x7f0701d7 + public const int menu_search = 2131165655; - // aapt resource value: 0x7f0902a2 - public const int otp_hint = 2131296930; + // aapt resource value: 0x7f0701d8 + public const int menu_search_advanced = 2131165656; - // aapt resource value: 0x7f0902a9 - public const int otps_pending = 2131296937; + // aapt resource value: 0x7f0701d9 + public const int menu_url = 2131165657; - // aapt resource value: 0x7f0902aa - public const int otpsecret_hint = 2131296938; + // aapt resource value: 0x7f0701db + public const int minus = 2131165659; - // aapt resource value: 0x7f0901ca - public const int pass_filename = 2131296714; + // aapt resource value: 0x7f070002 + public const int mr_media_route_button_content_description = 2131165186; - // aapt resource value: 0x7f090154 - public const int password_access_prefs = 2131296596; + // aapt resource value: 0x7f070004 + public const int mr_media_route_chooser_searching = 2131165188; - // aapt resource value: 0x7f090115 - public const int password_access_prefs_key = 2131296533; + // aapt resource value: 0x7f070003 + public const int mr_media_route_chooser_title = 2131165187; - // aapt resource value: 0x7f0901cb - public const int password_title = 2131296715; + // aapt resource value: 0x7f070005 + public const int mr_media_route_controller_disconnect = 2131165189; - // aapt resource value: 0x7f0900fb - public const int permission_desc = 2131296507; + // aapt resource value: 0x7f070000 + public const int mr_system_route_name = 2131165184; - // aapt resource value: 0x7f090161 - public const int please_activate_keyboard = 2131296609; + // aapt resource value: 0x7f070001 + public const int mr_user_route_category_name = 2131165185; - // aapt resource value: 0x7f0901f6 - public const int please_note = 2131296758; + // aapt resource value: 0x7f0701dc + public const int never = 2131165660; - // aapt resource value: 0x7f0902bc - public const int plugin_author = 2131296956; + // aapt resource value: 0x7f0701de + public const int no = 2131165662; - // aapt resource value: 0x7f0902bb - public const int plugin_description = 2131296955; + // aapt resource value: 0x7f0701bc + public const int no_keyfile_selected = 2131165628; - // aapt resource value: 0x7f0902be - public const int plugin_disabled = 2131296958; + // aapt resource value: 0x7f0701df + public const int no_keys = 2131165663; - // aapt resource value: 0x7f0902bd - public const int plugin_enabled = 2131296957; + // aapt resource value: 0x7f0701e0 + public const int no_results = 2131165664; - // aapt resource value: 0x7f0902c3 - public const int plugin_enabled_checkbox = 2131296963; + // aapt resource value: 0x7f07029c + public const int no_thanks = 2131165852; - // aapt resource value: 0x7f0902ba - public const int plugin_packagename = 2131296954; + // aapt resource value: 0x7f0701e1 + public const int no_url_handler = 2131165665; - // aapt resource value: 0x7f0902c0 - public const int plugin_scopes = 2131296960; + // aapt resource value: 0x7f070179 + public const int not_possible_im_picker = 2131165561; - // aapt resource value: 0x7f0902bf - public const int plugin_web = 2131296959; + // aapt resource value: 0x7f070111 + public const int oi_filemanager_market = 2131165457; - // aapt resource value: 0x7f0902b9 - public const int plugins = 2131296953; + // aapt resource value: 0x7f070112 + public const int oi_filemanager_web = 2131165458; - // aapt resource value: 0x7f09008d - public const int popular_domain_0 = 2131296397; + // aapt resource value: 0x7f07009a + public const int ok = 2131165338; - // aapt resource value: 0x7f09008e - public const int popular_domain_1 = 2131296398; + // aapt resource value: 0x7f07029b + public const int ok_donate = 2131165851; - // aapt resource value: 0x7f09008f - public const int popular_domain_2 = 2131296399; + // aapt resource value: 0x7f07011e + public const int omitbackup_key = 2131165470; - // aapt resource value: 0x7f090090 - public const int popular_domain_3 = 2131296400; + // aapt resource value: 0x7f0701e4 + public const int omitbackup_summary = 2131165668; - // aapt resource value: 0x7f090091 - public const int popular_domain_4 = 2131296401; + // aapt resource value: 0x7f0701e3 + public const int omitbackup_title = 2131165667; - // aapt resource value: 0x7f09003a - public const int popup_on_keypress = 2131296314; + // aapt resource value: 0x7f0700be + public const int open_entry = 2131165374; - // aapt resource value: 0x7f090041 - public const int prediction = 2131296321; + // aapt resource value: 0x7f0700bf + public const int open_entry_for_app = 2131165375; - // aapt resource value: 0x7f090058 - public const int prediction_basic = 2131296344; + // aapt resource value: 0x7f0701e2 + public const int open_recent = 2131165666; - // aapt resource value: 0x7f090042 - public const int prediction_category = 2131296322; + // aapt resource value: 0x7f0700a1 + public const int open_the_keyboard = 2131165345; - // aapt resource value: 0x7f090059 - public const int prediction_full = 2131296345; + // aapt resource value: 0x7f070294 + public const int otp_aux_file = 2131165844; - // aapt resource value: 0x7f090045 - public const int prediction_landscape = 2131296325; + // aapt resource value: 0x7f0702c3 + public const int otp_discarded_because_db_open = 2131165891; - // aapt resource value: 0x7f090046 - public const int prediction_landscape_summary = 2131296326; + // aapt resource value: 0x7f0702c1 + public const int otp_discarded_because_no_db = 2131165889; - // aapt resource value: 0x7f090057 - public const int prediction_none = 2131296343; + // aapt resource value: 0x7f0702c2 + public const int otp_discarded_no_space = 2131165890; - // aapt resource value: 0x7f090043 - public const int prediction_summary = 2131296323; + // aapt resource value: 0x7f0702bc + public const int otp_explanation = 2131165884; - // aapt resource value: 0x7f0900a4 - public const int prefs_debug_mode = 2131296420; + // aapt resource value: 0x7f0702bd + public const int otp_hint = 2131165885; - // aapt resource value: 0x7f090098 - public const int prefs_description_log = 2131296408; + // aapt resource value: 0x7f0702c4 + public const int otps_pending = 2131165892; - // aapt resource value: 0x7f090097 - public const int prefs_enable_log = 2131296407; + // aapt resource value: 0x7f0702c5 + public const int otpsecret_hint = 2131165893; - // aapt resource value: 0x7f090099 - public const int prefs_enable_recorrection = 2131296409; + // aapt resource value: 0x7f0701e5 + public const int pass_filename = 2131165669; - // aapt resource value: 0x7f09009a - public const int prefs_enable_recorrection_summary = 2131296410; + // aapt resource value: 0x7f07016d + public const int password_access_prefs = 2131165549; - // aapt resource value: 0x7f090051 - public const int prefs_settings_key = 2131296337; + // aapt resource value: 0x7f07012d + public const int password_access_prefs_key = 2131165485; - // aapt resource value: 0x7f0901cd - public const int progress_create = 2131296717; + // aapt resource value: 0x7f0701e6 + public const int password_title = 2131165670; - // aapt resource value: 0x7f0901cf - public const int progress_title = 2131296719; + // aapt resource value: 0x7f070113 + public const int permission_desc = 2131165459; - // aapt resource value: 0x7f090224 - public const int protection = 2131296804; + // aapt resource value: 0x7f07017a + public const int please_activate_keyboard = 2131165562; - // aapt resource value: 0x7f0902c2 - public const int query_credentials = 2131296962; + // aapt resource value: 0x7f070211 + public const int please_note = 2131165713; - // aapt resource value: 0x7f0902c1 - public const int query_credentials_for_url = 2131296961; + // aapt resource value: 0x7f0702d7 + public const int plugin_author = 2131165911; - // aapt resource value: 0x7f09004b - public const int quick_fixes = 2131296331; + // aapt resource value: 0x7f0702d6 + public const int plugin_description = 2131165910; - // aapt resource value: 0x7f09004c - public const int quick_fixes_summary = 2131296332; + // aapt resource value: 0x7f0702d9 + public const int plugin_disabled = 2131165913; - // aapt resource value: 0x7f090256 - public const int rate_app = 2131296854; + // aapt resource value: 0x7f0702d8 + public const int plugin_enabled = 2131165912; - // aapt resource value: 0x7f0901f8 - public const int regular_expression = 2131296760; + // aapt resource value: 0x7f0702de + public const int plugin_enabled_checkbox = 2131165918; - // aapt resource value: 0x7f0901d0 - public const int remember_keyfile_summary = 2131296720; + // aapt resource value: 0x7f0702d5 + public const int plugin_packagename = 2131165909; - // aapt resource value: 0x7f0901d1 - public const int remember_keyfile_title = 2131296721; + // aapt resource value: 0x7f0702db + public const int plugin_scopes = 2131165915; - // aapt resource value: 0x7f0901d2 - public const int remove_from_filelist = 2131296722; + // aapt resource value: 0x7f0702da + public const int plugin_web = 2131165914; - // aapt resource value: 0x7f0901d3 - public const int rijndael = 2131296723; + // aapt resource value: 0x7f0702d4 + public const int plugins = 2131165908; - // aapt resource value: 0x7f0901d4 - public const int root = 2131296724; + // aapt resource value: 0x7f0700a5 + public const int popular_domain_0 = 2131165349; - // aapt resource value: 0x7f0901d5 - public const int rounds = 2131296725; + // aapt resource value: 0x7f0700a6 + public const int popular_domain_1 = 2131165350; - // aapt resource value: 0x7f0901d6 - public const int rounds_explaination = 2131296726; + // aapt resource value: 0x7f0700a7 + public const int popular_domain_2 = 2131165351; - // aapt resource value: 0x7f0901d7 - public const int rounds_hint = 2131296727; + // aapt resource value: 0x7f0700a8 + public const int popular_domain_3 = 2131165352; - // aapt resource value: 0x7f090102 - public const int rounds_key = 2131296514; + // aapt resource value: 0x7f0700a9 + public const int popular_domain_4 = 2131165353; - // aapt resource value: 0x7f0901da - public const int saving_database = 2131296730; + // aapt resource value: 0x7f070052 + public const int popup_on_keypress = 2131165266; - // aapt resource value: 0x7f0901e3 - public const int search_hint = 2131296739; + // aapt resource value: 0x7f070059 + public const int prediction = 2131165273; - // aapt resource value: 0x7f0901e5 - public const int search_in = 2131296741; + // aapt resource value: 0x7f070070 + public const int prediction_basic = 2131165296; - // aapt resource value: 0x7f0901de - public const int search_label = 2131296734; + // aapt resource value: 0x7f07005a + public const int prediction_category = 2131165274; - // aapt resource value: 0x7f090201 - public const int search_options = 2131296769; + // aapt resource value: 0x7f070071 + public const int prediction_full = 2131165297; - // aapt resource value: 0x7f0901e4 - public const int search_results = 2131296740; + // aapt resource value: 0x7f07005d + public const int prediction_landscape = 2131165277; - // aapt resource value: 0x7f090152 - public const int security_prefs = 2131296594; + // aapt resource value: 0x7f07005e + public const int prediction_landscape_summary = 2131165278; - // aapt resource value: 0x7f090116 - public const int security_prefs_key = 2131296534; + // aapt resource value: 0x7f07006f + public const int prediction_none = 2131165295; - // aapt resource value: 0x7f090092 - public const int selectInputMethod = 2131296402; + // aapt resource value: 0x7f07005b + public const int prediction_summary = 2131165275; - // aapt resource value: 0x7f0901e7 - public const int select_group_then_add = 2131296743; + // aapt resource value: 0x7f0700bc + public const int prefs_debug_mode = 2131165372; - // aapt resource value: 0x7f0901e6 - public const int select_other_entry = 2131296742; + // aapt resource value: 0x7f0700b0 + public const int prefs_description_log = 2131165360; - // aapt resource value: 0x7f090286 - public const int select_storage_type = 2131296902; + // aapt resource value: 0x7f0700af + public const int prefs_enable_log = 2131165359; - // aapt resource value: 0x7f090030 - public const int sentence_separators = 2131296304; + // aapt resource value: 0x7f0700b1 + public const int prefs_enable_recorrection = 2131165361; - // aapt resource value: 0x7f090034 - public const int settings_key_mode_always_hide = 2131296308; + // aapt resource value: 0x7f0700b2 + public const int prefs_enable_recorrection_summary = 2131165362; - // aapt resource value: 0x7f090054 - public const int settings_key_mode_always_hide_name = 2131296340; + // aapt resource value: 0x7f070069 + public const int prefs_settings_key = 2131165289; - // aapt resource value: 0x7f090033 - public const int settings_key_mode_always_show = 2131296307; + // aapt resource value: 0x7f0701e8 + public const int progress_create = 2131165672; - // aapt resource value: 0x7f090053 - public const int settings_key_mode_always_show_name = 2131296339; + // aapt resource value: 0x7f0701ea + public const int progress_title = 2131165674; - // aapt resource value: 0x7f090032 - public const int settings_key_mode_auto = 2131296306; + // aapt resource value: 0x7f07023f + public const int protection = 2131165759; - // aapt resource value: 0x7f090052 - public const int settings_key_mode_auto_name = 2131296338; + // aapt resource value: 0x7f0702dd + public const int query_credentials = 2131165917; - // aapt resource value: 0x7f090144 - public const int short_app_name = 2131296580; + // aapt resource value: 0x7f0702dc + public const int query_credentials_for_url = 2131165916; - // aapt resource value: 0x7f090146 - public const int short_app_name_nonet = 2131296582; + // aapt resource value: 0x7f070063 + public const int quick_fixes = 2131165283; - // aapt resource value: 0x7f09014a - public const int show_kill_app = 2131296586; + // aapt resource value: 0x7f070064 + public const int quick_fixes_summary = 2131165284; - // aapt resource value: 0x7f0900ff - public const int show_kill_app_key = 2131296511; + // aapt resource value: 0x7f070271 + public const int rate_app = 2131165809; - // aapt resource value: 0x7f09014b - public const int show_kill_app_summary = 2131296587; + // aapt resource value: 0x7f070213 + public const int regular_expression = 2131165715; - // aapt resource value: 0x7f0901df - public const int show_password = 2131296735; + // aapt resource value: 0x7f0701eb + public const int remember_keyfile_summary = 2131165675; - // aapt resource value: 0x7f09004d - public const int show_suggestions = 2131296333; + // aapt resource value: 0x7f0701ec + public const int remember_keyfile_title = 2131165676; - // aapt resource value: 0x7f09004e - public const int show_suggestions_summary = 2131296334; + // aapt resource value: 0x7f0701ed + public const int remove_from_filelist = 2131165677; - // aapt resource value: 0x7f0901e1 - public const int sort_db = 2131296737; + // aapt resource value: 0x7f0701ee + public const int rijndael = 2131165678; - // aapt resource value: 0x7f090109 - public const int sort_key = 2131296521; + // aapt resource value: 0x7f0701ef + public const int root = 2131165679; - // aapt resource value: 0x7f0901e0 - public const int sort_name = 2131296736; + // aapt resource value: 0x7f0701f0 + public const int rounds = 2131165680; - // aapt resource value: 0x7f090039 - public const int sound_on_keypress = 2131296313; + // aapt resource value: 0x7f0701f1 + public const int rounds_explaination = 2131165681; - // aapt resource value: 0x7f0901dd - public const int space = 2131296733; + // aapt resource value: 0x7f0701f2 + public const int rounds_hint = 2131165682; - // aapt resource value: 0x7f0901e2 - public const int special = 2131296738; + // aapt resource value: 0x7f07011a + public const int rounds_key = 2131165466; - // aapt resource value: 0x7f090204 - public const int start_create = 2131296772; + // aapt resource value: 0x7f0701f5 + public const int saving_database = 2131165685; - // aapt resource value: 0x7f090206 - public const int start_create_import = 2131296774; + // aapt resource value: 0x7f0701fe + public const int search_hint = 2131165694; - // aapt resource value: 0x7f090203 - public const int start_open_file = 2131296771; + // aapt resource value: 0x7f070200 + public const int search_in = 2131165696; - // aapt resource value: 0x7f090205 - public const int start_open_url = 2131296773; + // aapt resource value: 0x7f0701f9 + public const int search_label = 2131165689; - // aapt resource value: 0x7f0900a1 - public const int subtype_mode_keyboard = 2131296417; + // aapt resource value: 0x7f07021c + public const int search_options = 2131165724; - // aapt resource value: 0x7f0900a2 - public const int subtype_mode_voice = 2131296418; + // aapt resource value: 0x7f0701ff + public const int search_results = 2131165695; - // aapt resource value: 0x7f090255 - public const int suggest_improvements = 2131296853; + // aapt resource value: 0x7f07016b + public const int security_prefs = 2131165547; - // aapt resource value: 0x7f090031 - public const int suggested_punctuations = 2131296305; + // aapt resource value: 0x7f07012e + public const int security_prefs_key = 2131165486; - // aapt resource value: 0x7f09027b - public const int synchronize_database_menu = 2131296891; + // aapt resource value: 0x7f0700aa + public const int selectInputMethod = 2131165354; - // aapt resource value: 0x7f09005d - public const int tip_access_symbols = 2131296349; + // aapt resource value: 0x7f070202 + public const int select_group_then_add = 2131165698; - // aapt resource value: 0x7f09005e - public const int tip_add_to_dictionary = 2131296350; + // aapt resource value: 0x7f070201 + public const int select_other_entry = 2131165697; - // aapt resource value: 0x7f09005c - public const int tip_dismiss = 2131296348; + // aapt resource value: 0x7f0702a1 + public const int select_storage_type = 2131165857; - // aapt resource value: 0x7f09005b - public const int tip_long_press = 2131296347; + // aapt resource value: 0x7f070048 + public const int sentence_separators = 2131165256; - // aapt resource value: 0x7f090064 - public const int tip_to_close_symbols = 2131296356; + // aapt resource value: 0x7f07004c + public const int settings_key_mode_always_hide = 2131165260; - // aapt resource value: 0x7f090065 - public const int tip_to_launch_settings = 2131296357; + // aapt resource value: 0x7f07006c + public const int settings_key_mode_always_hide_name = 2131165292; - // aapt resource value: 0x7f090061 - public const int tip_to_open_keyboard = 2131296353; + // aapt resource value: 0x7f07004b + public const int settings_key_mode_always_show = 2131165259; - // aapt resource value: 0x7f090063 - public const int tip_to_open_symbols = 2131296355; + // aapt resource value: 0x7f07006b + public const int settings_key_mode_always_show_name = 2131165291; - // aapt resource value: 0x7f090066 - public const int tip_to_start_typing = 2131296358; + // aapt resource value: 0x7f07004a + public const int settings_key_mode_auto = 2131165258; - // aapt resource value: 0x7f090062 - public const int tip_to_view_accents = 2131296354; + // aapt resource value: 0x7f07006a + public const int settings_key_mode_auto_name = 2131165290; - // aapt resource value: 0x7f09008b - public const int touch_and_hold = 2131296395; + // aapt resource value: 0x7f07015c + public const int short_app_name = 2131165532; - // aapt resource value: 0x7f09005f - public const int touch_to_continue = 2131296351; + // aapt resource value: 0x7f07015e + public const int short_app_name_nonet = 2131165534; - // aapt resource value: 0x7f090060 - public const int touch_to_finish = 2131296352; + // aapt resource value: 0x7f070162 + public const int show_kill_app = 2131165538; - // aapt resource value: 0x7f090257 - public const int translate_app = 2131296855; + // aapt resource value: 0x7f070117 + public const int show_kill_app_key = 2131165463; - // aapt resource value: 0x7f0901e9 - public const int twofish = 2131296745; + // aapt resource value: 0x7f070163 + public const int show_kill_app_summary = 2131165539; - // aapt resource value: 0x7f0901ea - public const int underline = 2131296746; + // aapt resource value: 0x7f0701fa + public const int show_password = 2131165690; - // aapt resource value: 0x7f0901eb - public const int unsupported_db_version = 2131296747; + // aapt resource value: 0x7f070065 + public const int show_suggestions = 2131165285; - // aapt resource value: 0x7f0901ec - public const int uppercase = 2131296748; + // aapt resource value: 0x7f070066 + public const int show_suggestions_summary = 2131165286; - // aapt resource value: 0x7f09029e - public const int use_key_file = 2131296926; + // aapt resource value: 0x7f0701fc + public const int sort_db = 2131165692; - // aapt resource value: 0x7f0901f0 - public const int version_history = 2131296752; + // aapt resource value: 0x7f070121 + public const int sort_key = 2131165473; - // aapt resource value: 0x7f0901ef - public const int version_label = 2131296751; + // aapt resource value: 0x7f0701fb + public const int sort_name = 2131165691; - // aapt resource value: 0x7f090038 - public const int vibrate_on_keypress = 2131296312; + // aapt resource value: 0x7f070051 + public const int sound_on_keypress = 2131165265; - // aapt resource value: 0x7f09007a - public const int voice_audio_error = 2131296378; + // aapt resource value: 0x7f0701f8 + public const int space = 2131165688; - // aapt resource value: 0x7f090077 - public const int voice_error = 2131296375; + // aapt resource value: 0x7f0701fd + public const int special = 2131165693; - // aapt resource value: 0x7f090073 - public const int voice_hint_dialog_message = 2131296371; + // aapt resource value: 0x7f07021f + public const int start_create = 2131165727; - // aapt resource value: 0x7f090076 - public const int voice_initializing = 2131296374; + // aapt resource value: 0x7f070221 + public const int start_create_import = 2131165729; - // aapt resource value: 0x7f090083 - public const int voice_input = 2131296387; + // aapt resource value: 0x7f07021e + public const int start_open_file = 2131165726; - // aapt resource value: 0x7f090074 - public const int voice_listening = 2131296372; + // aapt resource value: 0x7f070220 + public const int start_open_url = 2131165728; - // aapt resource value: 0x7f090084 - public const int voice_mode_main = 2131296388; + // aapt resource value: 0x7f0700b9 + public const int subtype_mode_keyboard = 2131165369; - // aapt resource value: 0x7f090086 - public const int voice_mode_off = 2131296390; + // aapt resource value: 0x7f0700ba + public const int subtype_mode_voice = 2131165370; - // aapt resource value: 0x7f090085 - public const int voice_mode_symbols = 2131296389; + // aapt resource value: 0x7f070270 + public const int suggest_improvements = 2131165808; - // aapt resource value: 0x7f090078 - public const int voice_network_error = 2131296376; + // aapt resource value: 0x7f070049 + public const int suggested_punctuations = 2131165257; - // aapt resource value: 0x7f09007d - public const int voice_no_match = 2131296381; + // aapt resource value: 0x7f070296 + public const int synchronize_database_menu = 2131165846; - // aapt resource value: 0x7f09007e - public const int voice_not_installed = 2131296382; + // aapt resource value: 0x7f070075 + public const int tip_access_symbols = 2131165301; - // aapt resource value: 0x7f090080 - public const int voice_punctuation_hint = 2131296384; + // aapt resource value: 0x7f070076 + public const int tip_add_to_dictionary = 2131165302; - // aapt resource value: 0x7f09007b - public const int voice_server_error = 2131296379; + // aapt resource value: 0x7f070074 + public const int tip_dismiss = 2131165300; - // aapt resource value: 0x7f09007c - public const int voice_speech_timeout = 2131296380; + // aapt resource value: 0x7f070073 + public const int tip_long_press = 2131165299; - // aapt resource value: 0x7f09007f - public const int voice_swipe_hint = 2131296383; + // aapt resource value: 0x7f07007c + public const int tip_to_close_symbols = 2131165308; - // aapt resource value: 0x7f090079 - public const int voice_too_much_speech = 2131296377; + // aapt resource value: 0x7f07007d + public const int tip_to_launch_settings = 2131165309; - // aapt resource value: 0x7f090072 - public const int voice_warning_how_to_turn_off = 2131296370; + // aapt resource value: 0x7f070079 + public const int tip_to_open_keyboard = 2131165305; - // aapt resource value: 0x7f090070 - public const int voice_warning_locale_not_supported = 2131296368; + // aapt resource value: 0x7f07007b + public const int tip_to_open_symbols = 2131165307; - // aapt resource value: 0x7f090071 - public const int voice_warning_may_not_understand = 2131296369; + // aapt resource value: 0x7f07007e + public const int tip_to_start_typing = 2131165310; - // aapt resource value: 0x7f09006f - public const int voice_warning_title = 2131296367; + // aapt resource value: 0x7f07007a + public const int tip_to_view_accents = 2131165306; - // aapt resource value: 0x7f090075 - public const int voice_working = 2131296373; + // aapt resource value: 0x7f0700a3 + public const int touch_and_hold = 2131165347; - // aapt resource value: 0x7f0901ed - public const int warning_read_only = 2131296749; + // aapt resource value: 0x7f070077 + public const int touch_to_continue = 2131165303; - // aapt resource value: 0x7f0901ee - public const int warning_unmounted = 2131296750; + // aapt resource value: 0x7f070078 + public const int touch_to_finish = 2131165304; - // aapt resource value: 0x7f09002f - public const int word_separators = 2131296303; + // aapt resource value: 0x7f070272 + public const int translate_app = 2131165810; - // aapt resource value: 0x7f0901c2 - public const int yes = 2131296706; + // aapt resource value: 0x7f070204 + public const int twofish = 2131165700; + + // aapt resource value: 0x7f070205 + public const int underline = 2131165701; + + // aapt resource value: 0x7f07016a + public const int unknown_uri_scheme = 2131165546; + + // aapt resource value: 0x7f070206 + public const int unsupported_db_version = 2131165702; + + // aapt resource value: 0x7f070207 + public const int uppercase = 2131165703; + + // aapt resource value: 0x7f0702b9 + public const int use_key_file = 2131165881; + + // aapt resource value: 0x7f07020b + public const int version_history = 2131165707; + + // aapt resource value: 0x7f07020a + public const int version_label = 2131165706; + + // aapt resource value: 0x7f070050 + public const int vibrate_on_keypress = 2131165264; + + // aapt resource value: 0x7f070092 + public const int voice_audio_error = 2131165330; + + // aapt resource value: 0x7f07008f + public const int voice_error = 2131165327; + + // aapt resource value: 0x7f07008b + public const int voice_hint_dialog_message = 2131165323; + + // aapt resource value: 0x7f07008e + public const int voice_initializing = 2131165326; + + // aapt resource value: 0x7f07009b + public const int voice_input = 2131165339; + + // aapt resource value: 0x7f07008c + public const int voice_listening = 2131165324; + + // aapt resource value: 0x7f07009c + public const int voice_mode_main = 2131165340; + + // aapt resource value: 0x7f07009e + public const int voice_mode_off = 2131165342; + + // aapt resource value: 0x7f07009d + public const int voice_mode_symbols = 2131165341; + + // aapt resource value: 0x7f070090 + public const int voice_network_error = 2131165328; + + // aapt resource value: 0x7f070095 + public const int voice_no_match = 2131165333; + + // aapt resource value: 0x7f070096 + public const int voice_not_installed = 2131165334; + + // aapt resource value: 0x7f070098 + public const int voice_punctuation_hint = 2131165336; + + // aapt resource value: 0x7f070093 + public const int voice_server_error = 2131165331; + + // aapt resource value: 0x7f070094 + public const int voice_speech_timeout = 2131165332; + + // aapt resource value: 0x7f070097 + public const int voice_swipe_hint = 2131165335; + + // aapt resource value: 0x7f070091 + public const int voice_too_much_speech = 2131165329; + + // aapt resource value: 0x7f07008a + public const int voice_warning_how_to_turn_off = 2131165322; + + // aapt resource value: 0x7f070088 + public const int voice_warning_locale_not_supported = 2131165320; + + // aapt resource value: 0x7f070089 + public const int voice_warning_may_not_understand = 2131165321; + + // aapt resource value: 0x7f070087 + public const int voice_warning_title = 2131165319; + + // aapt resource value: 0x7f07008d + public const int voice_working = 2131165325; + + // aapt resource value: 0x7f07002c + public const int wallet_buy_button_place_holder = 2131165228; + + // aapt resource value: 0x7f070208 + public const int warning_read_only = 2131165704; + + // aapt resource value: 0x7f070209 + public const int warning_unmounted = 2131165705; + + // aapt resource value: 0x7f070047 + public const int word_separators = 2131165255; + + // aapt resource value: 0x7f0701dd + public const int yes = 2131165661; static String() { @@ -5646,227 +6954,671 @@ namespace keepass2android public partial class Style { - // aapt resource value: 0x7f0e0003 - public const int AOSP_DialogWindowTitle = 2131623939; + // aapt resource value: 0x7f080097 + public const int AOSP_DialogWindowTitle = 2131230871; - // aapt resource value: 0x7f0e003c - public const int AdditionalStringLayout = 2131623996; + // aapt resource value: 0x7f0800d0 + public const int AdditionalStringLayout = 2131230928; - // aapt resource value: 0x7f0e0010 - public const int Afc_BaseTheme_Dark = 2131623952; + // aapt resource value: 0x7f0800a4 + public const int Afc_BaseTheme_Dark = 2131230884; - // aapt resource value: 0x7f0e0012 - public const int Afc_BaseTheme_Dialog_Dark = 2131623954; + // aapt resource value: 0x7f0800a6 + public const int Afc_BaseTheme_Dialog_Dark = 2131230886; - // aapt resource value: 0x7f0e0018 - public const int Afc_BaseTheme_Dialog_Light = 2131623960; + // aapt resource value: 0x7f0800ac + public const int Afc_BaseTheme_Dialog_Light = 2131230892; - // aapt resource value: 0x7f0e0016 - public const int Afc_BaseTheme_Light = 2131623958; + // aapt resource value: 0x7f0800aa + public const int Afc_BaseTheme_Light = 2131230890; - // aapt resource value: 0x7f0e001b - public const int Afc_BaseTheme_Light_DarkActionBar = 2131623963; + // aapt resource value: 0x7f0800af + public const int Afc_BaseTheme_Light_DarkActionBar = 2131230895; - // aapt resource value: 0x7f0e0011 - public const int Afc_BaseThemeHelper_Dark = 2131623953; + // aapt resource value: 0x7f0800a5 + public const int Afc_BaseThemeHelper_Dark = 2131230885; - // aapt resource value: 0x7f0e0013 - public const int Afc_BaseThemeHelper_Dialog_Dark = 2131623955; + // aapt resource value: 0x7f0800a7 + public const int Afc_BaseThemeHelper_Dialog_Dark = 2131230887; - // aapt resource value: 0x7f0e0019 - public const int Afc_BaseThemeHelper_Dialog_Light = 2131623961; + // aapt resource value: 0x7f0800ad + public const int Afc_BaseThemeHelper_Dialog_Light = 2131230893; - // aapt resource value: 0x7f0e0017 - public const int Afc_BaseThemeHelper_Light = 2131623959; + // aapt resource value: 0x7f0800ab + public const int Afc_BaseThemeHelper_Light = 2131230891; - // aapt resource value: 0x7f0e001c - public const int Afc_BaseThemeHelper_Light_DarkActionBar = 2131623964; + // aapt resource value: 0x7f0800b0 + public const int Afc_BaseThemeHelper_Light_DarkActionBar = 2131230896; - // aapt resource value: 0x7f0e0014 - public const int Afc_Theme_Dark = 2131623956; + // aapt resource value: 0x7f0800a8 + public const int Afc_Theme_Dark = 2131230888; - // aapt resource value: 0x7f0e0015 - public const int Afc_Theme_Dialog_Dark = 2131623957; + // aapt resource value: 0x7f0800a9 + public const int Afc_Theme_Dialog_Dark = 2131230889; - // aapt resource value: 0x7f0e001e - public const int Afc_Theme_Dialog_Light = 2131623966; + // aapt resource value: 0x7f0800b2 + public const int Afc_Theme_Dialog_Light = 2131230898; - // aapt resource value: 0x7f0e001a - public const int Afc_Theme_Light = 2131623962; + // aapt resource value: 0x7f0800ae + public const int Afc_Theme_Light = 2131230894; - // aapt resource value: 0x7f0e001d - public const int Afc_Theme_Light_DarkActionBar = 2131623965; + // aapt resource value: 0x7f0800b1 + public const int Afc_Theme_Light_DarkActionBar = 2131230897; - // aapt resource value: 0x7f0e001f - public const int Base = 2131623967; + // aapt resource value: 0x7f0800b3 + public const int Base = 2131230899; - // aapt resource value: 0x7f0e0040 - public const int BaseDark = 2131624000; + // aapt resource value: 0x7f0800d4 + public const int BaseDark = 2131230932; - // aapt resource value: 0x7f0e0042 - public const int BaseDark_Dialog = 2131624002; + // aapt resource value: 0x7f0800d6 + public const int BaseDark_Dialog = 2131230934; - // aapt resource value: 0x7f0e0045 - public const int BaseLight = 2131624005; + // aapt resource value: 0x7f0800d9 + public const int BaseLight = 2131230937; - // aapt resource value: 0x7f0e0047 - public const int BaseLight_Dialog = 2131624007; + // aapt resource value: 0x7f0800db + public const int BaseLight_Dialog = 2131230939; - // aapt resource value: 0x7f0e0033 - public const int BottomBarActionButton = 2131623987; + // aapt resource value: 0x7f0800c7 + public const int BottomBarActionButton = 2131230919; - // aapt resource value: 0x7f0e0021 - public const int Dialog = 2131623969; + // aapt resource value: 0x7f0800b5 + public const int Dialog = 2131230901; - // aapt resource value: 0x7f0e0043 - public const int DialogDark = 2131624003; + // aapt resource value: 0x7f0800d7 + public const int DialogDark = 2131230935; - // aapt resource value: 0x7f0e0048 - public const int DialogLight = 2131624008; + // aapt resource value: 0x7f0800dc + public const int DialogLight = 2131230940; - // aapt resource value: 0x7f0e003b - public const int EditEntryButton = 2131623995; + // aapt resource value: 0x7f0800cf + public const int EditEntryButton = 2131230927; - // aapt resource value: 0x7f0e0026 - public const int ElementText = 2131623974; + // aapt resource value: 0x7f0800ba + public const int ElementText = 2131230906; - // aapt resource value: 0x7f0e0027 - public const int ElementTextLarge = 2131623975; + // aapt resource value: 0x7f0800bb + public const int ElementTextLarge = 2131230907; - // aapt resource value: 0x7f0e0025 - public const int ElementTextSmall = 2131623973; + // aapt resource value: 0x7f0800b9 + public const int ElementTextSmall = 2131230905; - // aapt resource value: 0x7f0e002e - public const int ElementTextTitle = 2131623982; + // aapt resource value: 0x7f0800c2 + public const int ElementTextTitle = 2131230914; - // aapt resource value: 0x7f0e0031 - public const int EntryFieldHeader = 2131623985; + // aapt resource value: 0x7f0800c5 + public const int EntryFieldHeader = 2131230917; - // aapt resource value: 0x7f0e002f - public const int EntryItem = 2131623983; + // aapt resource value: 0x7f0800c3 + public const int EntryItem = 2131230915; - // aapt resource value: 0x7f0e003d - public const int ExtraFieldHeader = 2131623997; + // aapt resource value: 0x7f0800d1 + public const int ExtraFieldHeader = 2131230929; - // aapt resource value: 0x7f0e002a - public const int GroupAndEntryHeader = 2131623978; + // aapt resource value: 0x7f0800be + public const int GroupAndEntryHeader = 2131230910; - // aapt resource value: 0x7f0e002b - public const int GroupDetailInSearchResult = 2131623979; + // aapt resource value: 0x7f0800bf + public const int GroupDetailInSearchResult = 2131230911; - // aapt resource value: 0x7f0e0028 - public const int GroupLabel = 2131623976; + // aapt resource value: 0x7f0800bc + public const int GroupLabel = 2131230908; - // aapt resource value: 0x7f0e0023 - public const int GroupText = 2131623971; + // aapt resource value: 0x7f0800b7 + public const int GroupText = 2131230903; - // aapt resource value: 0x7f0e0024 - public const int GroupTextLarge = 2131623972; + // aapt resource value: 0x7f0800b8 + public const int GroupTextLarge = 2131230904; - // aapt resource value: 0x7f0e0022 - public const int GroupTextSmall = 2131623970; + // aapt resource value: 0x7f0800b6 + public const int GroupTextSmall = 2131230902; - // aapt resource value: 0x7f0e0032 - public const int InfoHeader = 2131623986; + // aapt resource value: 0x7f0800c6 + public const int InfoHeader = 2131230918; - // aapt resource value: 0x7f0e0001 - public const int KeyPreviewAnimation = 2131623937; + // aapt resource value: 0x7f080095 + public const int KeyPreviewAnimation = 2131230869; - // aapt resource value: 0x7f0e0000 - public const int LatinKeyboardBaseView = 2131623936; + // aapt resource value: 0x7f080094 + public const int LatinKeyboardBaseView = 2131230868; - // aapt resource value: 0x7f0e0002 - public const int MiniKeyboardAnimation = 2131623938; + // aapt resource value: 0x7f080096 + public const int MiniKeyboardAnimation = 2131230870; - // aapt resource value: 0x7f0e0030 - public const int MinusButton = 2131623984; + // aapt resource value: 0x7f0800c4 + public const int MinusButton = 2131230916; - // aapt resource value: 0x7f0e0020 - public const int NoTitleBar = 2131623968; + // aapt resource value: 0x7f0800b4 + public const int NoTitleBar = 2131230900; - // aapt resource value: 0x7f0e0041 - public const int NoTitleBarDark = 2131624001; + // aapt resource value: 0x7f0800d5 + public const int NoTitleBarDark = 2131230933; - // aapt resource value: 0x7f0e0046 - public const int NoTitleBarLight = 2131624006; + // aapt resource value: 0x7f0800da + public const int NoTitleBarLight = 2131230938; - // aapt resource value: 0x7f0e003e - public const int PaddedContainer = 2131623998; + // aapt resource value: 0x7f0800d2 + public const int PaddedContainer = 2131230930; - // aapt resource value: 0x7f0e003f - public const int PaddedElement = 2131623999; + // aapt resource value: 0x7f0800d3 + public const int PaddedElement = 2131230931; - // aapt resource value: 0x7f0e0036 - public const int TextAppearance_EditEntry = 2131623990; + // aapt resource value: 0x7f080067 + public const int TextAppearance_AppCompat_Base_CompactMenu_Dialog = 2131230823; - // aapt resource value: 0x7f0e0035 - public const int TextAppearance_EditEntry_LabelSmall = 2131623989; + // aapt resource value: 0x7f080071 + public const int TextAppearance_AppCompat_Base_SearchResult = 2131230833; - // aapt resource value: 0x7f0e0034 - public const int TextAppearance_EditEntry_Small = 2131623988; + // aapt resource value: 0x7f080073 + public const int TextAppearance_AppCompat_Base_SearchResult_Subtitle = 2131230835; - // aapt resource value: 0x7f0e0037 - public const int TextAppearance_EditEntry_Value = 2131623991; + // aapt resource value: 0x7f080072 + public const int TextAppearance_AppCompat_Base_SearchResult_Title = 2131230834; - // aapt resource value: 0x7f0e003a - public const int TextAppearance_Help = 2131623994; + // aapt resource value: 0x7f08006d + public const int TextAppearance_AppCompat_Base_Widget_PopupMenu_Large = 2131230829; - // aapt resource value: 0x7f0e0038 - public const int TextAppearance_SmallHeading = 2131623992; + // aapt resource value: 0x7f08006e + public const int TextAppearance_AppCompat_Base_Widget_PopupMenu_Small = 2131230830; - // aapt resource value: 0x7f0e0039 - public const int TextAppearance_SubElement = 2131623993; + // aapt resource value: 0x7f080074 + public const int TextAppearance_AppCompat_Light_Base_SearchResult = 2131230836; - // aapt resource value: 0x7f0e0044 - public const int ThemeDark = 2131624004; + // aapt resource value: 0x7f080076 + public const int TextAppearance_AppCompat_Light_Base_SearchResult_Subtitle = 2131230838; - // aapt resource value: 0x7f0e0049 - public const int ThemeLight = 2131624009; + // aapt resource value: 0x7f080075 + public const int TextAppearance_AppCompat_Light_Base_SearchResult_Title = 2131230837; - // aapt resource value: 0x7f0e0029 - public const int WhiteOnBlack = 2131623977; + // aapt resource value: 0x7f08006f + public const int TextAppearance_AppCompat_Light_Base_Widget_PopupMenu_Large = 2131230831; - // aapt resource value: 0x7f0e002c - public const int WhiteOnBlackSmall = 2131623980; + // aapt resource value: 0x7f080070 + public const int TextAppearance_AppCompat_Light_Base_Widget_PopupMenu_Small = 2131230832; - // aapt resource value: 0x7f0e002d - public const int WhiteOnDarkSmall = 2131623981; + // aapt resource value: 0x7f080039 + public const int TextAppearance_AppCompat_Light_SearchResult_Subtitle = 2131230777; - // aapt resource value: 0x7f0e0007 - public const int afc_action_navi = 2131623943; + // aapt resource value: 0x7f080038 + public const int TextAppearance_AppCompat_Light_SearchResult_Title = 2131230776; - // aapt resource value: 0x7f0e0008 - public const int afc_action_navi_left = 2131623944; + // aapt resource value: 0x7f080034 + public const int TextAppearance_AppCompat_Light_Widget_PopupMenu_Large = 2131230772; - // aapt resource value: 0x7f0e0009 - public const int afc_action_navi_right = 2131623945; + // aapt resource value: 0x7f080035 + public const int TextAppearance_AppCompat_Light_Widget_PopupMenu_Small = 2131230773; - // aapt resource value: 0x7f0e000a - public const int afc_base_button_location = 2131623946; + // aapt resource value: 0x7f080037 + public const int TextAppearance_AppCompat_SearchResult_Subtitle = 2131230775; - // aapt resource value: 0x7f0e000b - public const int afc_button_location = 2131623947; + // aapt resource value: 0x7f080036 + public const int TextAppearance_AppCompat_SearchResult_Title = 2131230774; - // aapt resource value: 0x7f0e000e - public const int afc_button_sort = 2131623950; + // aapt resource value: 0x7f08001e + public const int TextAppearance_AppCompat_Widget_ActionBar_Menu = 2131230750; - // aapt resource value: 0x7f0e000f - public const int afc_home_button_navigators = 2131623951; + // aapt resource value: 0x7f08000a + public const int TextAppearance_AppCompat_Widget_ActionBar_Subtitle = 2131230730; - // aapt resource value: 0x7f0e0004 - public const int afc_main_button_navi = 2131623940; + // aapt resource value: 0x7f08000c + public const int TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse = 2131230732; - // aapt resource value: 0x7f0e0005 - public const int afc_main_button_navi_left = 2131623941; + // aapt resource value: 0x7f080009 + public const int TextAppearance_AppCompat_Widget_ActionBar_Title = 2131230729; - // aapt resource value: 0x7f0e0006 - public const int afc_main_button_navi_right = 2131623942; + // aapt resource value: 0x7f08000b + public const int TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse = 2131230731; - // aapt resource value: 0x7f0e000d - public const int afc_widget_search_view_button_clear = 2131623949; + // aapt resource value: 0x7f080022 + public const int TextAppearance_AppCompat_Widget_ActionMode_Subtitle = 2131230754; - // aapt resource value: 0x7f0e000c - public const int afc_widget_search_view_button_search = 2131623948; + // aapt resource value: 0x7f080024 + public const int TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse = 2131230756; + + // aapt resource value: 0x7f080021 + public const int TextAppearance_AppCompat_Widget_ActionMode_Title = 2131230753; + + // aapt resource value: 0x7f080023 + public const int TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse = 2131230755; + + // aapt resource value: 0x7f080058 + public const int TextAppearance_AppCompat_Widget_Base_ActionBar_Menu = 2131230808; + + // aapt resource value: 0x7f08005a + public const int TextAppearance_AppCompat_Widget_Base_ActionBar_Subtitle = 2131230810; + + // aapt resource value: 0x7f08005c + public const int TextAppearance_AppCompat_Widget_Base_ActionBar_Subtitle_Inverse = 2131230812; + + // aapt resource value: 0x7f080059 + public const int TextAppearance_AppCompat_Widget_Base_ActionBar_Title = 2131230809; + + // aapt resource value: 0x7f08005b + public const int TextAppearance_AppCompat_Widget_Base_ActionBar_Title_Inverse = 2131230811; + + // aapt resource value: 0x7f080055 + public const int TextAppearance_AppCompat_Widget_Base_ActionMode_Subtitle = 2131230805; + + // aapt resource value: 0x7f080057 + public const int TextAppearance_AppCompat_Widget_Base_ActionMode_Subtitle_Inverse = 2131230807; + + // aapt resource value: 0x7f080054 + public const int TextAppearance_AppCompat_Widget_Base_ActionMode_Title = 2131230804; + + // aapt resource value: 0x7f080056 + public const int TextAppearance_AppCompat_Widget_Base_ActionMode_Title_Inverse = 2131230806; + + // aapt resource value: 0x7f080065 + public const int TextAppearance_AppCompat_Widget_Base_DropDownItem = 2131230821; + + // aapt resource value: 0x7f080025 + public const int TextAppearance_AppCompat_Widget_DropDownItem = 2131230757; + + // aapt resource value: 0x7f080032 + public const int TextAppearance_AppCompat_Widget_PopupMenu_Large = 2131230770; + + // aapt resource value: 0x7f080033 + public const int TextAppearance_AppCompat_Widget_PopupMenu_Small = 2131230771; + + // aapt resource value: 0x7f080066 + public const int TextAppearance_Widget_AppCompat_Base_ExpandedMenu_Item = 2131230822; + + // aapt resource value: 0x7f08002c + public const int TextAppearance_Widget_AppCompat_ExpandedMenu_Item = 2131230764; + + // aapt resource value: 0x7f0800ca + public const int TextAppearance_EditEntry = 2131230922; + + // aapt resource value: 0x7f0800c9 + public const int TextAppearance_EditEntry_LabelSmall = 2131230921; + + // aapt resource value: 0x7f0800c8 + public const int TextAppearance_EditEntry_Small = 2131230920; + + // aapt resource value: 0x7f0800cb + public const int TextAppearance_EditEntry_Value = 2131230923; + + // aapt resource value: 0x7f0800ce + public const int TextAppearance_Help = 2131230926; + + // aapt resource value: 0x7f0800cc + public const int TextAppearance_SmallHeading = 2131230924; + + // aapt resource value: 0x7f0800cd + public const int TextAppearance_SubElement = 2131230925; + + // aapt resource value: 0x7f08007b + public const int Theme_AppCompat = 2131230843; + + // aapt resource value: 0x7f080087 + public const int Theme_AppCompat_Base_CompactMenu = 2131230855; + + // aapt resource value: 0x7f080088 + public const int Theme_AppCompat_Base_CompactMenu_Dialog = 2131230856; + + // aapt resource value: 0x7f080080 + public const int Theme_AppCompat_CompactMenu = 2131230848; + + // aapt resource value: 0x7f080081 + public const int Theme_AppCompat_CompactMenu_Dialog = 2131230849; + + // aapt resource value: 0x7f08007e + public const int Theme_AppCompat_DialogWhenLarge = 2131230846; + + // aapt resource value: 0x7f08007c + public const int Theme_AppCompat_Light = 2131230844; + + // aapt resource value: 0x7f08007d + public const int Theme_AppCompat_Light_DarkActionBar = 2131230845; + + // aapt resource value: 0x7f08007f + public const int Theme_AppCompat_Light_DialogWhenLarge = 2131230847; + + // aapt resource value: 0x7f080082 + public const int Theme_Base = 2131230850; + + // aapt resource value: 0x7f080084 + public const int Theme_Base_AppCompat = 2131230852; + + // aapt resource value: 0x7f08008b + public const int Theme_Base_AppCompat_Dialog_FixedSize = 2131230859; + + // aapt resource value: 0x7f08008c + public const int Theme_Base_AppCompat_Dialog_Light_FixedSize = 2131230860; + + // aapt resource value: 0x7f080089 + public const int Theme_Base_AppCompat_DialogWhenLarge = 2131230857; + + // aapt resource value: 0x7f08008d + public const int Theme_Base_AppCompat_DialogWhenLarge_Base = 2131230861; + + // aapt resource value: 0x7f080085 + public const int Theme_Base_AppCompat_Light = 2131230853; + + // aapt resource value: 0x7f080086 + public const int Theme_Base_AppCompat_Light_DarkActionBar = 2131230854; + + // aapt resource value: 0x7f08008a + public const int Theme_Base_AppCompat_Light_DialogWhenLarge = 2131230858; + + // aapt resource value: 0x7f08008e + public const int Theme_Base_AppCompat_Light_DialogWhenLarge_Base = 2131230862; + + // aapt resource value: 0x7f080083 + public const int Theme_Base_Light = 2131230851; + + // aapt resource value: 0x7f08008f + public const int Theme_IAPTheme = 2131230863; + + // aapt resource value: 0x7f080002 + public const int Theme_MediaRouter = 2131230722; + + // aapt resource value: 0x7f080003 + public const int Theme_MediaRouter_Light = 2131230723; + + // aapt resource value: 0x7f0800d8 + public const int ThemeDark = 2131230936; + + // aapt resource value: 0x7f0800dd + public const int ThemeLight = 2131230941; + + // aapt resource value: 0x7f080092 + public const int WalletFragmentDefaultButtonTextAppearance = 2131230866; + + // aapt resource value: 0x7f080091 + public const int WalletFragmentDefaultDetailsHeaderTextAppearance = 2131230865; + + // aapt resource value: 0x7f080090 + public const int WalletFragmentDefaultDetailsTextAppearance = 2131230864; + + // aapt resource value: 0x7f080093 + public const int WalletFragmentDefaultStyle = 2131230867; + + // aapt resource value: 0x7f0800bd + public const int WhiteOnBlack = 2131230909; + + // aapt resource value: 0x7f0800c0 + public const int WhiteOnBlackSmall = 2131230912; + + // aapt resource value: 0x7f0800c1 + public const int WhiteOnDarkSmall = 2131230913; + + // aapt resource value: 0x7f080004 + public const int Widget_AppCompat_ActionBar = 2131230724; + + // aapt resource value: 0x7f080006 + public const int Widget_AppCompat_ActionBar_Solid = 2131230726; + + // aapt resource value: 0x7f080015 + public const int Widget_AppCompat_ActionBar_TabBar = 2131230741; + + // aapt resource value: 0x7f08001b + public const int Widget_AppCompat_ActionBar_TabText = 2131230747; + + // aapt resource value: 0x7f080018 + public const int Widget_AppCompat_ActionBar_TabView = 2131230744; + + // aapt resource value: 0x7f08000f + public const int Widget_AppCompat_ActionButton = 2131230735; + + // aapt resource value: 0x7f080011 + public const int Widget_AppCompat_ActionButton_CloseMode = 2131230737; + + // aapt resource value: 0x7f080013 + public const int Widget_AppCompat_ActionButton_Overflow = 2131230739; + + // aapt resource value: 0x7f08001f + public const int Widget_AppCompat_ActionMode = 2131230751; + + // aapt resource value: 0x7f08003c + public const int Widget_AppCompat_ActivityChooserView = 2131230780; + + // aapt resource value: 0x7f08003a + public const int Widget_AppCompat_AutoCompleteTextView = 2131230778; + + // aapt resource value: 0x7f08003e + public const int Widget_AppCompat_Base_ActionBar = 2131230782; + + // aapt resource value: 0x7f080040 + public const int Widget_AppCompat_Base_ActionBar_Solid = 2131230784; + + // aapt resource value: 0x7f080049 + public const int Widget_AppCompat_Base_ActionBar_TabBar = 2131230793; + + // aapt resource value: 0x7f08004f + public const int Widget_AppCompat_Base_ActionBar_TabText = 2131230799; + + // aapt resource value: 0x7f08004c + public const int Widget_AppCompat_Base_ActionBar_TabView = 2131230796; + + // aapt resource value: 0x7f080043 + public const int Widget_AppCompat_Base_ActionButton = 2131230787; + + // aapt resource value: 0x7f080045 + public const int Widget_AppCompat_Base_ActionButton_CloseMode = 2131230789; + + // aapt resource value: 0x7f080047 + public const int Widget_AppCompat_Base_ActionButton_Overflow = 2131230791; + + // aapt resource value: 0x7f080052 + public const int Widget_AppCompat_Base_ActionMode = 2131230802; + + // aapt resource value: 0x7f080079 + public const int Widget_AppCompat_Base_ActivityChooserView = 2131230841; + + // aapt resource value: 0x7f080077 + public const int Widget_AppCompat_Base_AutoCompleteTextView = 2131230839; + + // aapt resource value: 0x7f080061 + public const int Widget_AppCompat_Base_DropDownItem_Spinner = 2131230817; + + // aapt resource value: 0x7f080069 + public const int Widget_AppCompat_Base_ListPopupWindow = 2131230825; + + // aapt resource value: 0x7f080063 + public const int Widget_AppCompat_Base_ListView_DropDown = 2131230819; + + // aapt resource value: 0x7f080068 + public const int Widget_AppCompat_Base_ListView_Menu = 2131230824; + + // aapt resource value: 0x7f08006b + public const int Widget_AppCompat_Base_PopupMenu = 2131230827; + + // aapt resource value: 0x7f08005e + public const int Widget_AppCompat_Base_ProgressBar = 2131230814; + + // aapt resource value: 0x7f08005d + public const int Widget_AppCompat_Base_ProgressBar_Horizontal = 2131230813; + + // aapt resource value: 0x7f08005f + public const int Widget_AppCompat_Base_Spinner = 2131230815; + + // aapt resource value: 0x7f080028 + public const int Widget_AppCompat_DropDownItem_Spinner = 2131230760; + + // aapt resource value: 0x7f080005 + public const int Widget_AppCompat_Light_ActionBar = 2131230725; + + // aapt resource value: 0x7f080007 + public const int Widget_AppCompat_Light_ActionBar_Solid = 2131230727; + + // aapt resource value: 0x7f080008 + public const int Widget_AppCompat_Light_ActionBar_Solid_Inverse = 2131230728; + + // aapt resource value: 0x7f080016 + public const int Widget_AppCompat_Light_ActionBar_TabBar = 2131230742; + + // aapt resource value: 0x7f080017 + public const int Widget_AppCompat_Light_ActionBar_TabBar_Inverse = 2131230743; + + // aapt resource value: 0x7f08001c + public const int Widget_AppCompat_Light_ActionBar_TabText = 2131230748; + + // aapt resource value: 0x7f08001d + public const int Widget_AppCompat_Light_ActionBar_TabText_Inverse = 2131230749; + + // aapt resource value: 0x7f080019 + public const int Widget_AppCompat_Light_ActionBar_TabView = 2131230745; + + // aapt resource value: 0x7f08001a + public const int Widget_AppCompat_Light_ActionBar_TabView_Inverse = 2131230746; + + // aapt resource value: 0x7f080010 + public const int Widget_AppCompat_Light_ActionButton = 2131230736; + + // aapt resource value: 0x7f080012 + public const int Widget_AppCompat_Light_ActionButton_CloseMode = 2131230738; + + // aapt resource value: 0x7f080014 + public const int Widget_AppCompat_Light_ActionButton_Overflow = 2131230740; + + // aapt resource value: 0x7f080020 + public const int Widget_AppCompat_Light_ActionMode_Inverse = 2131230752; + + // aapt resource value: 0x7f08003d + public const int Widget_AppCompat_Light_ActivityChooserView = 2131230781; + + // aapt resource value: 0x7f08003b + public const int Widget_AppCompat_Light_AutoCompleteTextView = 2131230779; + + // aapt resource value: 0x7f08003f + public const int Widget_AppCompat_Light_Base_ActionBar = 2131230783; + + // aapt resource value: 0x7f080041 + public const int Widget_AppCompat_Light_Base_ActionBar_Solid = 2131230785; + + // aapt resource value: 0x7f080042 + public const int Widget_AppCompat_Light_Base_ActionBar_Solid_Inverse = 2131230786; + + // aapt resource value: 0x7f08004a + public const int Widget_AppCompat_Light_Base_ActionBar_TabBar = 2131230794; + + // aapt resource value: 0x7f08004b + public const int Widget_AppCompat_Light_Base_ActionBar_TabBar_Inverse = 2131230795; + + // aapt resource value: 0x7f080050 + public const int Widget_AppCompat_Light_Base_ActionBar_TabText = 2131230800; + + // aapt resource value: 0x7f080051 + public const int Widget_AppCompat_Light_Base_ActionBar_TabText_Inverse = 2131230801; + + // aapt resource value: 0x7f08004d + public const int Widget_AppCompat_Light_Base_ActionBar_TabView = 2131230797; + + // aapt resource value: 0x7f08004e + public const int Widget_AppCompat_Light_Base_ActionBar_TabView_Inverse = 2131230798; + + // aapt resource value: 0x7f080044 + public const int Widget_AppCompat_Light_Base_ActionButton = 2131230788; + + // aapt resource value: 0x7f080046 + public const int Widget_AppCompat_Light_Base_ActionButton_CloseMode = 2131230790; + + // aapt resource value: 0x7f080048 + public const int Widget_AppCompat_Light_Base_ActionButton_Overflow = 2131230792; + + // aapt resource value: 0x7f080053 + public const int Widget_AppCompat_Light_Base_ActionMode_Inverse = 2131230803; + + // aapt resource value: 0x7f08007a + public const int Widget_AppCompat_Light_Base_ActivityChooserView = 2131230842; + + // aapt resource value: 0x7f080078 + public const int Widget_AppCompat_Light_Base_AutoCompleteTextView = 2131230840; + + // aapt resource value: 0x7f080062 + public const int Widget_AppCompat_Light_Base_DropDownItem_Spinner = 2131230818; + + // aapt resource value: 0x7f08006a + public const int Widget_AppCompat_Light_Base_ListPopupWindow = 2131230826; + + // aapt resource value: 0x7f080064 + public const int Widget_AppCompat_Light_Base_ListView_DropDown = 2131230820; + + // aapt resource value: 0x7f08006c + public const int Widget_AppCompat_Light_Base_PopupMenu = 2131230828; + + // aapt resource value: 0x7f080060 + public const int Widget_AppCompat_Light_Base_Spinner = 2131230816; + + // aapt resource value: 0x7f080029 + public const int Widget_AppCompat_Light_DropDownItem_Spinner = 2131230761; + + // aapt resource value: 0x7f08002e + public const int Widget_AppCompat_Light_ListPopupWindow = 2131230766; + + // aapt resource value: 0x7f08002b + public const int Widget_AppCompat_Light_ListView_DropDown = 2131230763; + + // aapt resource value: 0x7f080030 + public const int Widget_AppCompat_Light_PopupMenu = 2131230768; + + // aapt resource value: 0x7f080027 + public const int Widget_AppCompat_Light_Spinner_DropDown_ActionBar = 2131230759; + + // aapt resource value: 0x7f08002d + public const int Widget_AppCompat_ListPopupWindow = 2131230765; + + // aapt resource value: 0x7f08002a + public const int Widget_AppCompat_ListView_DropDown = 2131230762; + + // aapt resource value: 0x7f080031 + public const int Widget_AppCompat_ListView_Menu = 2131230769; + + // aapt resource value: 0x7f08002f + public const int Widget_AppCompat_PopupMenu = 2131230767; + + // aapt resource value: 0x7f08000e + public const int Widget_AppCompat_ProgressBar = 2131230734; + + // aapt resource value: 0x7f08000d + public const int Widget_AppCompat_ProgressBar_Horizontal = 2131230733; + + // aapt resource value: 0x7f080026 + public const int Widget_AppCompat_Spinner_DropDown_ActionBar = 2131230758; + + // aapt resource value: 0x7f080001 + public const int Widget_MediaRouter_Light_MediaRouteButton = 2131230721; + + // aapt resource value: 0x7f080000 + public const int Widget_MediaRouter_MediaRouteButton = 2131230720; + + // aapt resource value: 0x7f08009b + public const int afc_action_navi = 2131230875; + + // aapt resource value: 0x7f08009c + public const int afc_action_navi_left = 2131230876; + + // aapt resource value: 0x7f08009d + public const int afc_action_navi_right = 2131230877; + + // aapt resource value: 0x7f08009e + public const int afc_base_button_location = 2131230878; + + // aapt resource value: 0x7f08009f + public const int afc_button_location = 2131230879; + + // aapt resource value: 0x7f0800a2 + public const int afc_button_sort = 2131230882; + + // aapt resource value: 0x7f0800a3 + public const int afc_home_button_navigators = 2131230883; + + // aapt resource value: 0x7f080098 + public const int afc_main_button_navi = 2131230872; + + // aapt resource value: 0x7f080099 + public const int afc_main_button_navi_left = 2131230873; + + // aapt resource value: 0x7f08009a + public const int afc_main_button_navi_right = 2131230874; + + // aapt resource value: 0x7f0800a1 + public const int afc_widget_search_view_button_clear = 2131230881; + + // aapt resource value: 0x7f0800a0 + public const int afc_widget_search_view_button_search = 2131230880; static Style() { @@ -5987,12 +7739,180 @@ namespace keepass2android public partial class Styleable { + public static int[] ActionBar = new int[] { + 2130772010, + 2130772011, + 2130772012, + 2130772013, + 2130772014, + 2130772015, + 2130772016, + 2130772017, + 2130772018, + 2130772019, + 2130772020, + 2130772021, + 2130772022, + 2130772023, + 2130772024, + 2130772025, + 2130772026, + 2130772027, + 2130772028}; + + // aapt resource value: 10 + public const int ActionBar_background = 10; + + // aapt resource value: 12 + public const int ActionBar_backgroundSplit = 12; + + // aapt resource value: 11 + public const int ActionBar_backgroundStacked = 11; + + // aapt resource value: 13 + public const int ActionBar_customNavigationLayout = 13; + + // aapt resource value: 3 + public const int ActionBar_displayOptions = 3; + + // aapt resource value: 9 + public const int ActionBar_divider = 9; + + // aapt resource value: 1 + public const int ActionBar_height = 1; + + // aapt resource value: 14 + public const int ActionBar_homeLayout = 14; + + // aapt resource value: 7 + public const int ActionBar_icon = 7; + + // aapt resource value: 16 + public const int ActionBar_indeterminateProgressStyle = 16; + + // aapt resource value: 18 + public const int ActionBar_itemPadding = 18; + + // aapt resource value: 8 + public const int ActionBar_logo = 8; + + // aapt resource value: 2 + public const int ActionBar_navigationMode = 2; + + // aapt resource value: 17 + public const int ActionBar_progressBarPadding = 17; + + // aapt resource value: 15 + public const int ActionBar_progressBarStyle = 15; + + // aapt resource value: 4 + public const int ActionBar_subtitle = 4; + + // aapt resource value: 6 + public const int ActionBar_subtitleTextStyle = 6; + + // aapt resource value: 0 + public const int ActionBar_title = 0; + + // aapt resource value: 5 + public const int ActionBar_titleTextStyle = 5; + + public static int[] ActionBarLayout = new int[] { + 16842931}; + + // aapt resource value: 0 + public const int ActionBarLayout_android_layout_gravity = 0; + + public static int[] ActionBarWindow = new int[] { + 2130771973, + 2130771974, + 2130771975, + 2130771976, + 2130771977, + 2130771978, + 2130771979}; + + // aapt resource value: 0 + public const int ActionBarWindow_windowActionBar = 0; + + // aapt resource value: 1 + public const int ActionBarWindow_windowActionBarOverlay = 1; + + // aapt resource value: 6 + public const int ActionBarWindow_windowFixedHeightMajor = 6; + + // aapt resource value: 4 + public const int ActionBarWindow_windowFixedHeightMinor = 4; + + // aapt resource value: 3 + public const int ActionBarWindow_windowFixedWidthMajor = 3; + + // aapt resource value: 5 + public const int ActionBarWindow_windowFixedWidthMinor = 5; + + // aapt resource value: 2 + public const int ActionBarWindow_windowSplitActionBar = 2; + + public static int[] ActionMenuItemView = new int[] { + 16843071}; + + // aapt resource value: 0 + public const int ActionMenuItemView_android_minWidth = 0; + + public static int[] ActionMenuView; + + public static int[] ActionMode = new int[] { + 2130772011, + 2130772015, + 2130772016, + 2130772020, + 2130772022}; + + // aapt resource value: 3 + public const int ActionMode_background = 3; + + // aapt resource value: 4 + public const int ActionMode_backgroundSplit = 4; + + // aapt resource value: 0 + public const int ActionMode_height = 0; + + // aapt resource value: 2 + public const int ActionMode_subtitleTextStyle = 2; + + // aapt resource value: 1 + public const int ActionMode_titleTextStyle = 1; + + public static int[] ActivityChooserView = new int[] { + 2130772079, + 2130772080}; + + // aapt resource value: 1 + public const int ActivityChooserView_expandActivityOverflowButtonDrawable = 1; + + // aapt resource value: 0 + public const int ActivityChooserView_initialActivityCount = 0; + + public static int[] AdsAttrs = new int[] { + 2130772083, + 2130772084, + 2130772085}; + + // aapt resource value: 0 + public const int AdsAttrs_adSize = 0; + + // aapt resource value: 1 + public const int AdsAttrs_adSizes = 1; + + // aapt resource value: 2 + public const int AdsAttrs_adUnitId = 2; + public static int[] AfcSearchView = new int[] { - 2130771998, - 2130771999, - 2130772000, - 2130772001, - 2130772002}; + 2130772131, + 2130772132, + 2130772133, + 2130772134, + 2130772135}; // aapt resource value: 2 public const int AfcSearchView_closable = 2; @@ -6009,9 +7929,15 @@ namespace keepass2android // aapt resource value: 1 public const int AfcSearchView_iconified = 1; + public static int[] CompatTextView = new int[] { + 2130772082}; + + // aapt resource value: 0 + public const int CompatTextView_textAllCaps = 0; + public static int[] Kp2aShortHelpView = new int[] { 16843087, - 2130772050}; + 2130772183}; // aapt resource value: 0 public const int Kp2aShortHelpView_android_text = 0; @@ -6020,22 +7946,22 @@ namespace keepass2android public const int Kp2aShortHelpView_help_text = 1; public static int[] LatinKeyboardBaseView = new int[] { - 2130771982, - 2130771983, - 2130771984, - 2130771985, - 2130771986, - 2130771987, - 2130771988, - 2130771989, - 2130771990, - 2130771991, - 2130771992, - 2130771993, - 2130771994, - 2130771995, - 2130771996, - 2130771997}; + 2130772115, + 2130772116, + 2130772117, + 2130772118, + 2130772119, + 2130772120, + 2130772121, + 2130772122, + 2130772123, + 2130772124, + 2130772125, + 2130772126, + 2130772127, + 2130772128, + 2130772129, + 2130772130}; // aapt resource value: 13 public const int LatinKeyboardBaseView_backgroundDimAmount = 13; @@ -6085,21 +8011,35 @@ namespace keepass2android // aapt resource value: 9 public const int LatinKeyboardBaseView_verticalCorrection = 9; + public static int[] LinearLayoutICS = new int[] { + 2130772019, + 2130772058, + 2130772059}; + + // aapt resource value: 0 + public const int LinearLayoutICS_divider = 0; + + // aapt resource value: 2 + public const int LinearLayoutICS_dividerPadding = 2; + + // aapt resource value: 1 + public const int LinearLayoutICS_showDividers = 1; + public static int[] MapAttrs = new int[] { - 2130771968, - 2130771969, - 2130771970, - 2130771971, - 2130771972, - 2130771973, - 2130771974, - 2130771975, - 2130771976, - 2130771977, - 2130771978, - 2130771979, - 2130771980, - 2130771981}; + 2130772086, + 2130772087, + 2130772088, + 2130772089, + 2130772090, + 2130772091, + 2130772092, + 2130772093, + 2130772094, + 2130772095, + 2130772096, + 2130772097, + 2130772098, + 2130772099}; // aapt resource value: 1 public const int MapAttrs_cameraBearing = 1; @@ -6143,9 +8083,217 @@ namespace keepass2android // aapt resource value: 13 public const int MapAttrs_zOrderOnTop = 13; + public static int[] MediaRouteButton = new int[] { + 16843071, + 16843072, + 2130771968}; + + // aapt resource value: 1 + public const int MediaRouteButton_android_minHeight = 1; + + // aapt resource value: 0 + public const int MediaRouteButton_android_minWidth = 0; + + // aapt resource value: 2 + public const int MediaRouteButton_externalRouteEnabledDrawable = 2; + + public static int[] MenuGroup = new int[] { + 16842766, + 16842960, + 16843156, + 16843230, + 16843231, + 16843232}; + + // aapt resource value: 5 + public const int MenuGroup_android_checkableBehavior = 5; + + // aapt resource value: 0 + public const int MenuGroup_android_enabled = 0; + + // aapt resource value: 1 + public const int MenuGroup_android_id = 1; + + // aapt resource value: 3 + public const int MenuGroup_android_menuCategory = 3; + + // aapt resource value: 4 + public const int MenuGroup_android_orderInCategory = 4; + + // aapt resource value: 2 + public const int MenuGroup_android_visible = 2; + + public static int[] MenuItem = new int[] { + 16842754, + 16842766, + 16842960, + 16843014, + 16843156, + 16843230, + 16843231, + 16843233, + 16843234, + 16843235, + 16843236, + 16843237, + 16843375, + 2130772050, + 2130772051, + 2130772052, + 2130772053}; + + // aapt resource value: 14 + public const int MenuItem_actionLayout = 14; + + // aapt resource value: 16 + public const int MenuItem_actionProviderClass = 16; + + // aapt resource value: 15 + public const int MenuItem_actionViewClass = 15; + + // aapt resource value: 9 + public const int MenuItem_android_alphabeticShortcut = 9; + + // aapt resource value: 11 + public const int MenuItem_android_checkable = 11; + + // aapt resource value: 3 + public const int MenuItem_android_checked = 3; + + // aapt resource value: 1 + public const int MenuItem_android_enabled = 1; + + // aapt resource value: 0 + public const int MenuItem_android_icon = 0; + + // aapt resource value: 2 + public const int MenuItem_android_id = 2; + + // aapt resource value: 5 + public const int MenuItem_android_menuCategory = 5; + + // aapt resource value: 10 + public const int MenuItem_android_numericShortcut = 10; + + // aapt resource value: 12 + public const int MenuItem_android_onClick = 12; + + // aapt resource value: 6 + public const int MenuItem_android_orderInCategory = 6; + + // aapt resource value: 7 + public const int MenuItem_android_title = 7; + + // aapt resource value: 8 + public const int MenuItem_android_titleCondensed = 8; + + // aapt resource value: 4 + public const int MenuItem_android_visible = 4; + + // aapt resource value: 13 + public const int MenuItem_showAsAction = 13; + + public static int[] MenuView = new int[] { + 16842926, + 16843052, + 16843053, + 16843054, + 16843055, + 16843056, + 16843057, + 16843829}; + + // aapt resource value: 4 + public const int MenuView_android_headerBackground = 4; + + // aapt resource value: 2 + public const int MenuView_android_horizontalDivider = 2; + + // aapt resource value: 5 + public const int MenuView_android_itemBackground = 5; + + // aapt resource value: 6 + public const int MenuView_android_itemIconDisabledAlpha = 6; + + // aapt resource value: 1 + public const int MenuView_android_itemTextAppearance = 1; + + // aapt resource value: 7 + public const int MenuView_android_preserveIconSpacing = 7; + + // aapt resource value: 3 + public const int MenuView_android_verticalDivider = 3; + + // aapt resource value: 0 + public const int MenuView_android_windowAnimationStyle = 0; + + public static int[] SearchView = new int[] { + 16843039, + 16843296, + 16843364, + 2130772063, + 2130772064}; + + // aapt resource value: 2 + public const int SearchView_android_imeOptions = 2; + + // aapt resource value: 1 + public const int SearchView_android_inputType = 1; + + // aapt resource value: 0 + public const int SearchView_android_maxWidth = 0; + + // aapt resource value: 3 + public const int SearchView_iconifiedByDefault = 3; + + // aapt resource value: 4 + public const int SearchView_queryHint = 4; + + public static int[] Spinner = new int[] { + 16842927, + 16843125, + 16843126, + 16843362, + 16843436, + 16843437, + 2130772054, + 2130772055, + 2130772056, + 2130772057}; + + // aapt resource value: 4 + public const int Spinner_android_dropDownHorizontalOffset = 4; + + // aapt resource value: 1 + public const int Spinner_android_dropDownSelector = 1; + + // aapt resource value: 5 + public const int Spinner_android_dropDownVerticalOffset = 5; + + // aapt resource value: 3 + public const int Spinner_android_dropDownWidth = 3; + + // aapt resource value: 0 + public const int Spinner_android_gravity = 0; + + // aapt resource value: 2 + public const int Spinner_android_popupBackground = 2; + + // aapt resource value: 9 + public const int Spinner_disableChildrenWhenDisabled = 9; + + // aapt resource value: 8 + public const int Spinner_popupPromptView = 8; + + // aapt resource value: 6 + public const int Spinner_prompt = 6; + + // aapt resource value: 7 + public const int Spinner_spinnerMode = 7; + public static int[] TextWithHelp = new int[] { 16843087, - 2130772050}; + 2130772183}; // aapt resource value: 0 public const int TextWithHelp_android_text = 0; @@ -6153,6 +8301,110 @@ namespace keepass2android // aapt resource value: 1 public const int TextWithHelp_help_text = 1; + public static int[] Theme = new int[] { + 2130772044, + 2130772045, + 2130772046, + 2130772047, + 2130772048, + 2130772049}; + + // aapt resource value: 0 + public const int Theme_actionDropDownStyle = 0; + + // aapt resource value: 1 + public const int Theme_dropdownListPreferredItemHeight = 1; + + // aapt resource value: 5 + public const int Theme_listChoiceBackgroundIndicator = 5; + + // aapt resource value: 4 + public const int Theme_panelMenuListTheme = 4; + + // aapt resource value: 3 + public const int Theme_panelMenuListWidth = 3; + + // aapt resource value: 2 + public const int Theme_popupMenuStyle = 2; + + public static int[] View = new int[] { + 16842970, + 2130772029, + 2130772030}; + + // aapt resource value: 0 + public const int View_android_focusable = 0; + + // aapt resource value: 2 + public const int View_paddingEnd = 2; + + // aapt resource value: 1 + public const int View_paddingStart = 1; + + public static int[] WalletFragmentOptions = new int[] { + 2130772100, + 2130772101, + 2130772102, + 2130772103}; + + // aapt resource value: 1 + public const int WalletFragmentOptions_environment = 1; + + // aapt resource value: 3 + public const int WalletFragmentOptions_fragmentMode = 3; + + // aapt resource value: 2 + public const int WalletFragmentOptions_fragmentStyle = 2; + + // aapt resource value: 0 + public const int WalletFragmentOptions_theme = 0; + + public static int[] WalletFragmentStyle = new int[] { + 2130772104, + 2130772105, + 2130772106, + 2130772107, + 2130772108, + 2130772109, + 2130772110, + 2130772111, + 2130772112, + 2130772113, + 2130772114}; + + // aapt resource value: 3 + public const int WalletFragmentStyle_buyButtonAppearance = 3; + + // aapt resource value: 0 + public const int WalletFragmentStyle_buyButtonHeight = 0; + + // aapt resource value: 2 + public const int WalletFragmentStyle_buyButtonText = 2; + + // aapt resource value: 1 + public const int WalletFragmentStyle_buyButtonWidth = 1; + + // aapt resource value: 6 + public const int WalletFragmentStyle_maskedWalletDetailsBackground = 6; + + // aapt resource value: 8 + public const int WalletFragmentStyle_maskedWalletDetailsButtonBackground = 8; + + // aapt resource value: 7 + public const int WalletFragmentStyle_maskedWalletDetailsButtonTextAppearance = 7; + + // aapt resource value: 5 + public const int WalletFragmentStyle_maskedWalletDetailsHeaderTextAppearance = 5; + + // aapt resource value: 10 + public const int WalletFragmentStyle_maskedWalletDetailsLogoImageType = 10; + + // aapt resource value: 9 + public const int WalletFragmentStyle_maskedWalletDetailsLogoTextColor = 9; + + // aapt resource value: 4 + public const int WalletFragmentStyle_maskedWalletDetailsTextAppearance = 4; + static Styleable() { global::Android.Runtime.ResourceIdManager.UpdateIdValues(); diff --git a/src/keepass2android/Resources/layout/password.xml b/src/keepass2android/Resources/layout/password.xml index 483f3dd5..5164d727 100644 --- a/src/keepass2android/Resources/layout/password.xml +++ b/src/keepass2android/Resources/layout/password.xml @@ -86,25 +86,61 @@ android:layout_height="match_parent" android:layout_height="wrap_content" android:src="@drawable/ic_menu_view" /> + - - + + + + + + + android:src="@drawable/ic_storage_file" + android:padding="5dp" + + /> + + + + + + + +