• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package js.kbars;
2 
3 import android.app.Activity;
4 import android.content.Context;
5 import android.graphics.Rect;
6 import android.os.Bundle;
7 import android.util.Log;
8 import android.view.View;
9 import android.view.View.OnClickListener;
10 import android.view.View.OnSystemUiVisibilityChangeListener;
11 import android.widget.Button;
12 import android.widget.LinearLayout;
13 import android.widget.TextView;
14 import android.widget.Toast;
15 import java.lang.reflect.Method;
16 import java.lang.reflect.Modifier;
17 
18 public class ToastActivity extends Activity {
19     private static final int ALLOW_TRANSIENT = 2048;
20     private static final String TAG = Util.logTag(ToastActivity.class);
21     private View mContent;
22     private final Context mContext = this;
23     boolean mImmersive;
24 
onCreate(Bundle savedInstanceState)25     protected void onCreate(Bundle savedInstanceState) {
26         super.onCreate(savedInstanceState);
27         LinearLayout buttons = new LinearLayout(this.mContext);
28         buttons.setOrientation(1);
29         for (final Method m : getClass().getDeclaredMethods()) {
30             if (Modifier.isPublic(m.getModifiers()) && m.getParameterTypes().length == 0) {
31                 Button btn = new Button(this.mContext);
32                 btn.setText(m.getName());
33                 btn.setOnClickListener(new OnClickListener() {
34                     public void onClick(View v) {
35                         try {
36                             m.invoke(ToastActivity.this.mContext, new Object[0]);
37                         } catch (Throwable t) {
38                             Log.w(ToastActivity.TAG, "Error running " + m.getName(), t);
39                         }
40                     }
41                 });
42                 buttons.addView(btn);
43             }
44         }
45         setContentView(buttons);
46         this.mContent = buttons;
47         setSysui();
48         this.mContent.setOnSystemUiVisibilityChangeListener(new OnSystemUiVisibilityChangeListener() {
49             public void onSystemUiVisibilityChange(int visibility) {
50                 if ((visibility & 2) == 0) {
51                     ToastActivity.this.mImmersive = false;
52                     ToastActivity.this.setSysui();
53                 }
54             }
55         });
56     }
57 
toast1()58     public void toast1() {
59         Toast.makeText(this.mContext, "toast!", 0).show();
60     }
61 
toast2()62     public void toast2() {
63         Toast t = Toast.makeText(this.mContext, "toast!", 0);
64         TextView tv = new TextView(this.mContext);
65         tv.setBackgroundColor(-65536);
66         tv.setText("setView");
67         t.setView(tv);
68         t.show();
69     }
70 
toast3()71     public void toast3() {
72         Toast t = Toast.makeText(this.mContext, "toast!", 0);
73         TextView tv = new TextView(this.mContext) {
74             protected boolean fitSystemWindows(Rect insets) {
75                 Rect before = new Rect(insets);
76                 boolean rt = super.fitSystemWindows(insets);
77                 Log.d(ToastActivity.TAG, String.format("before=%s rt=%s after=%s", new Object[]{before.toShortString(), Boolean.valueOf(rt), insets.toShortString()}));
78                 return rt;
79             }
80         };
81         Log.d(TAG, "fitsSystemWindows=" + tv.getFitsSystemWindows());
82         tv.setFitsSystemWindows(true);
83         tv.setSystemUiVisibility(768);
84         tv.setBackgroundColor(-65536);
85         tv.setText("setView");
86         t.setView(tv);
87         t.show();
88     }
89 
hideNav()90     public void hideNav() {
91         this.mContent.setSystemUiVisibility(2);
92     }
93 
dangerToast()94     public void dangerToast() {
95         Toast t = Toast.makeText(this.mContext, "toast!", 0);
96         TextView tv = new TextView(this.mContext);
97         tv.setSystemUiVisibility(512);
98         tv.setBackgroundColor(-65536);
99         tv.setText("setView");
100         t.setView(tv);
101         t.setGravity(80, 0, 90);
102         t.show();
103     }
104 
toggleImmersive()105     public void toggleImmersive() {
106         this.mImmersive = !this.mImmersive;
107         setSysui();
108     }
109 
setSysui()110     private void setSysui() {
111         int flags = 2560;
112         if (this.mImmersive) {
113             flags = 2560 | 2;
114         }
115         this.mContent.setSystemUiVisibility(flags);
116     }
117 }
118