• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package js.kbars;
2 
3 import android.util.Log;
4 import android.view.View;
5 import android.view.View.OnClickListener;
6 import android.view.View.OnSystemUiVisibilityChangeListener;
7 import android.widget.Button;
8 
9 public final class ImmersiveModeToggleButton extends Button {
10     private final KBarsActivity mActivity;
11     private final String mCaption;
12     private final int mImmersiveFlags;
13     private boolean mImmersiveMode;
14 
ImmersiveModeToggleButton(KBarsActivity activity, String caption, int immersiveFlags)15     public ImmersiveModeToggleButton(KBarsActivity activity, String caption, int immersiveFlags) {
16         super(activity);
17         this.mActivity = activity;
18         this.mCaption = caption;
19         this.mImmersiveFlags = immersiveFlags;
20         setOnClickListener(new OnClickListener() {
21             public void onClick(View v) {
22                 ImmersiveModeToggleButton.this.toggleImmersiveMode("clicked");
23             }
24         });
25         updateImmersiveModeButton();
26         setOnSystemUiVisibilityChangeListener(new OnSystemUiVisibilityChangeListener() {
27             public void onSystemUiVisibilityChange(int visibility) {
28                 ImmersiveModeToggleButton.this.onSysuiChanged(visibility);
29             }
30         });
31     }
32 
toggleImmersiveMode(String reason)33     private void toggleImmersiveMode(String reason) {
34         boolean z;
35         boolean z2 = false;
36         Log.d(KBarsActivity.TAG, "toggleImmersiveMode reason=" + reason);
37         if (this.mImmersiveMode) {
38             z = false;
39         } else {
40             z = true;
41         }
42         this.mImmersiveMode = z;
43         updateImmersiveModeButton();
44         KBarsActivity kBarsActivity = this.mActivity;
45         if (!this.mImmersiveMode) {
46             z2 = true;
47         }
48         kBarsActivity.setSoloButton(z2, this, true);
49     }
50 
updateImmersiveModeButton()51     private void updateImmersiveModeButton() {
52         Log.d(KBarsActivity.TAG, "updateButtons mImmersiveMode=" + this.mImmersiveMode);
53         setText(this.mImmersiveMode ? "Exit " + this.mCaption + " mode" : "Enter " + this.mCaption + " mode");
54         setSystemUiVisibility(this.mImmersiveMode ? this.mImmersiveFlags : KBarsActivity.BASE_FLAGS);
55     }
56 
onSysuiChanged(int vis)57     private void onSysuiChanged(int vis) {
58         boolean hideStatus;
59         boolean hideSomething = false;
60         Log.d(KBarsActivity.TAG, "sysui changed: " + Integer.toHexString(vis));
61         if ((vis & 4) != 0) {
62             hideStatus = true;
63         } else {
64             hideStatus = false;
65         }
66         boolean hideNav;
67         if ((vis & 2) != 0) {
68             hideNav = true;
69         } else {
70             hideNav = false;
71         }
72         if (hideStatus || hideNav) {
73             hideSomething = true;
74         }
75         if (this.mImmersiveMode && !hideSomething) {
76             toggleImmersiveMode("sysui_changed");
77         }
78     }
79 }
80