daily pastebin goal
41%
SHARE
TWEET

Android Immersive Mode Unity API

CultureOfTech Apr 26th, 2014 1,469 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package com.cultureoftech.immersivemode;
  2.  
  3. import android.annotation.SuppressLint;
  4. import android.os.Build;
  5. import android.os.Bundle;
  6. import android.os.Handler;
  7. import android.util.Log;
  8. import android.view.KeyEvent;
  9. import android.view.View;
  10.  
  11. import com.unity3d.player.UnityPlayerActivity;
  12.  
  13. public class MainActivity extends UnityPlayerActivity {
  14.  
  15.         protected void onCreate(Bundle bundle) {
  16.                 super.onCreate(bundle);
  17.                 Log.d("Immersive Mode Activity", "onCreate Called!");
  18.         }
  19.  
  20.         @SuppressLint("NewApi")
  21.         protected void onResume(){
  22.                 super.onResume();
  23.                 if (Build.VERSION.SDK_INT >= 19) { //KITKAT
  24.          
  25.                         int flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
  26.                                 | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
  27.                                 | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
  28.                                 | View.SYSTEM_UI_FLAG_FULLSCREEN
  29.                                 | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
  30.                                 | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
  31.          
  32.                         this.findViewById(android.R.id.content).setSystemUiVisibility(flags);
  33.                 }
  34.                
  35.                 Log.d("Immersive Mode Activity", "onResume Called!");
  36.         }
  37.        
  38.         private Runnable resetImmersive = new Runnable(){
  39.  
  40.                 @SuppressLint("NewApi")
  41.                 @Override
  42.                 public void run() {
  43.                         getWindow().getDecorView().setSystemUiVisibility(
  44.                                         View.SYSTEM_UI_FLAG_LAYOUT_STABLE
  45.                                         | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
  46.                                         | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
  47.                                         | View.SYSTEM_UI_FLAG_FULLSCREEN
  48.                                         | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
  49.                                         | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
  50.                        
  51.                 }
  52.                
  53.         };
  54.        
  55.         private Handler mHandler = new Handler();
  56.        
  57.         @Override
  58.         public boolean onKeyDown(int keyCode, KeyEvent event){
  59.                 if (Build.VERSION.SDK_INT >= 19){
  60.                         if (keyCode == KeyEvent.KEYCODE_BACK){
  61.                                 finish();
  62.                         } else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN || keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
  63.                                 mHandler.postDelayed(resetImmersive, 500);
  64.                         }
  65.                 }              
  66.                 return super.onKeyDown(keyCode, event);        
  67.         }
  68.  
  69. }
RAW Paste Data
Top