SubName: FreezeOrientation
Description: There are times such as when processing data with a progress bar in a class, that you may want to temporarily stop the user from being able to rotate the device as it's difficult to rebuild the Gui in the middle of a process. These subroutines will get the current rotation and fix it, until it's released.
I've tested it on a Nexus 7 and it works OK. It uses getRotation which is only available from API 8 as getOrientation will return -1 (unspecified) if it is not explicitly set. This is then mapped to the required orientation.
It'll be interesting to see if these codes are consistent on other devices.
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Depends on: Phone , Reflection
Tags: Freeze Orientation
			
			Description: There are times such as when processing data with a progress bar in a class, that you may want to temporarily stop the user from being able to rotate the device as it's difficult to rebuild the Gui in the middle of a process. These subroutines will get the current rotation and fix it, until it's released.
I've tested it on a Nexus 7 and it works OK. It uses getRotation which is only available from API 8 as getOrientation will return -1 (unspecified) if it is not explicitly set. This is then mapped to the required orientation.
It'll be interesting to see if these codes are consistent on other devices.
			
				B4X:
			
		
		
		Sub FreezeOrientation
    Dim Orient As Int
    Select GetOrientation
        Case 0
            Orient = 1            'Portrait
        Case 1
            Orient = 0            'Landscape
        Case 2
            Orient = 9            'Reverse Portrait
        Case 3
            Orient = 8            'Reverse Landscape
    End Select
    PH.SetScreenOrientation(Orient)
End Sub
Sub GetOrientation As Int
  Dim r As Reflector
  r.Target = r.GetContext
  r.Target = r.RunMethod2("getSystemService", "window", "java.lang.String")
  r.Target = r.RunMethod("getDefaultDisplay")
  Return r.RunMethod("getRotation")
End Sub
Sub ReleaseOrientation
    PH.SetScreenOrientation(-1)
End SubDepends on: Phone , Reflection
Tags: Freeze Orientation
			
				Last edited: 
			
		
	
							 
				 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		