Browse Source

firemonkey android support beta

Unknown 7 years ago
parent
commit
1e30a8472c
1 changed files with 81 additions and 51 deletions
  1. 81 51
      Quick.Commons.pas

+ 81 - 51
Quick.Commons.pas

@@ -5,9 +5,9 @@
   Unit        : Quick.Commons
   Unit        : Quick.Commons
   Description : Common functions
   Description : Common functions
   Author      : Kike Pérez
   Author      : Kike Pérez
-  Version     : 1.4
+  Version     : 1.5
   Created     : 14/07/2017
   Created     : 14/07/2017
-  Modified    : 16/05/2018
+  Modified    : 13/08/2018
 
 
   This file is part of QuickLib: https://github.com/exilon/QuickLib
   This file is part of QuickLib: https://github.com/exilon/QuickLib
 
 
@@ -50,6 +50,12 @@ interface
     {$ELSE}
     {$ELSE}
     IOUtils,
     IOUtils,
     {$ENDIF}
     {$ENDIF}
+    {$IFDEF ANDROID}
+    Androidapi.JNI.Os,
+    Androidapi.Helpers,
+    Androidapi.JNI.JavaTypes,
+    Androidapi.JNI.GraphicsContentViewText,
+    {$ENDIF}
     DateUtils;
     DateUtils;
 
 
 type
 type
@@ -641,42 +647,50 @@ end;
 
 
 function GetLoggedUserName : string;
 function GetLoggedUserName : string;
 {$IFDEF MSWINDOWS}
 {$IFDEF MSWINDOWS}
-const
-  cnMaxUserNameLen = 254;
-var
-  sUserName     : string;
-  dwUserNameLen : DWord;
-begin
-  dwUserNameLen := cnMaxUserNameLen-1;
-  SetLength( sUserName, cnMaxUserNameLen );
-  GetUserName(PChar( sUserName ),dwUserNameLen );
-  SetLength( sUserName, dwUserNameLen );
-  Result := sUserName;
-end;
-{$ENDIF}
-{$IF DEFINED(FPC) AND DEFINED(LINUX)}
-begin
-  Result := GetEnvironmentVariable('USERNAME');
-end;
-
+  const
+    cnMaxUserNameLen = 254;
+  var
+    sUserName     : string;
+    dwUserNameLen : DWord;
+  begin
+    dwUserNameLen := cnMaxUserNameLen-1;
+    SetLength( sUserName, cnMaxUserNameLen );
+    GetUserName(PChar( sUserName ),dwUserNameLen );
+    SetLength( sUserName, dwUserNameLen );
+    Result := sUserName;
+  end;
+{$ELSE}
+  {$IF DEFINED(FPC) AND DEFINED(LINUX)}
+  begin
+    Result := GetEnvironmentVariable('USERNAME');
+  end;
+  {$ELSE}
+  begin
+    raise ENotImplemented.Create('Not Android GetLoggedUserName implemented!');
+  end;
+  {$ENDIF}
 {$ENDIF}
 {$ENDIF}
 
 
 function GetComputerName : string;
 function GetComputerName : string;
 {$IFDEF MSWINDOWS}
 {$IFDEF MSWINDOWS}
-var
-  dwLength: dword;
-begin
-  dwLength := 253;
-  SetLength(Result, dwLength+1);
-  if not Windows.GetComputerName(pchar(result), dwLength) then Result := 'Not detected!';
-  Result := pchar(result);
-end;
-{$ENDIF}
-{$IF DEFINED(FPC) AND DEFINED(LINUX)}
-begin
-  Result := GetEnvironmentVariable('COMPUTERNAME');
-end;
-
+  var
+    dwLength: dword;
+  begin
+    dwLength := 253;
+    SetLength(Result, dwLength+1);
+    if not Windows.GetComputerName(pchar(result), dwLength) then Result := 'Not detected!';
+    Result := pchar(result);
+  end;
+{$ELSE}
+  {$IF DEFINED(FPC) AND DEFINED(LINUX)}
+  begin
+    Result := GetEnvironmentVariable('COMPUTERNAME');
+  end;
+  {$ELSE} //Android gets model name
+  begin
+    Result := JStringToString(TJBuild.JavaClass.MODEL);
+  end;
+  {$ENDIF}
 {$ENDIF}
 {$ENDIF}
 
 
 function NormalizePathDelim(const cPath : string; const Delim : Char) : string;
 function NormalizePathDelim(const cPath : string; const Delim : Char) : string;
@@ -790,14 +804,22 @@ begin
   end
   end
   else Result := '';
   else Result := '';
 end;
 end;
-{$ENDIF}
-{$IF DEFINED(FPC) AND DEFINED(LINUX)}
-var
-  version : TProgramVersion;
-begin
-  if GetProgramVersion(version) then Result := Format('%d.%d', [version.Major, version.Minor])
-    else Result := '';
-end;
+{$ELSE}
+  {$IF DEFINED(FPC) AND DEFINED(LINUX)}
+  var
+    version : TProgramVersion;
+  begin
+    if GetProgramVersion(version) then Result := Format('%d.%d', [version.Major, version.Minor])
+      else Result := '';
+  end;
+  {$ELSE}
+  var
+    PkgInfo : JPackageInfo;
+  begin
+    PkgInfo := SharedActivity.getPackageManager.getPackageInfo(SharedActivity.getPackageName,0);
+    Result := IntToStr(PkgInfo.VersionCode);
+  end;
+  {$ENDIF}
 {$ENDIF}
 {$ENDIF}
 
 
 function GetAppVersionFullStr: string;
 function GetAppVersionFullStr: string;
@@ -844,14 +866,22 @@ begin
      LongRec(FixedPtr.dwFileVersionLS).Lo]); //build
      LongRec(FixedPtr.dwFileVersionLS).Lo]); //build
   end;
   end;
 end;
 end;
-{$ENDIF}
-{$IF DEFINED(FPC) AND DEFINED(LINUX)}
-var
-  version : TProgramVersion;
-begin
-  if GetProgramVersion(version) then Result := Format('%d.%d.%d.%d', [version.Major, version.Minor, version.Revision, version.Build])
-    else Result := '';
-end;
+{$ELSE}
+  {$IF DEFINED(FPC) AND DEFINED(LINUX)}
+  var
+    version : TProgramVersion;
+  begin
+    if GetProgramVersion(version) then Result := Format('%d.%d.%d.%d', [version.Major, version.Minor, version.Revision, version.Build])
+      else Result := '';
+  end;
+  {$ELSE}
+  var
+    PkgInfo : JPackageInfo;
+  begin
+    PkgInfo := SharedActivity.getPackageManager.getPackageInfo(SharedActivity.getPackageName,0);
+    Result := JStringToString(PkgInfo.versionName);
+  end;
+  {$ENDIF}
 {$ENDIF}
 {$ENDIF}
 
 
 function UTCToLocalTime(GMTTime: TDateTime): TDateTime;
 function UTCToLocalTime(GMTTime: TDateTime): TDateTime;
@@ -1037,8 +1067,8 @@ begin
 end;
 end;
 {$ENDIF}
 {$ENDIF}
 
 
-initialization
 {$IFDEF MSWINDOWS}
 {$IFDEF MSWINDOWS}
+initialization
   try
   try
     GetEnvironmentPaths;
     GetEnvironmentPaths;
   except
   except