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