| package js.kbars; |
| |
| import android.app.Activity; |
| import android.content.Context; |
| import android.graphics.Rect; |
| import android.os.Bundle; |
| import android.util.Log; |
| import android.view.View; |
| import android.view.View.OnClickListener; |
| import android.view.View.OnSystemUiVisibilityChangeListener; |
| import android.widget.Button; |
| import android.widget.LinearLayout; |
| import android.widget.TextView; |
| import android.widget.Toast; |
| import java.lang.reflect.Method; |
| import java.lang.reflect.Modifier; |
| |
| public class ToastActivity extends Activity { |
| private static final int ALLOW_TRANSIENT = 2048; |
| private static final String TAG = Util.logTag(ToastActivity.class); |
| private View mContent; |
| private final Context mContext = this; |
| boolean mImmersive; |
| |
| protected void onCreate(Bundle savedInstanceState) { |
| super.onCreate(savedInstanceState); |
| LinearLayout buttons = new LinearLayout(this.mContext); |
| buttons.setOrientation(1); |
| for (final Method m : getClass().getDeclaredMethods()) { |
| if (Modifier.isPublic(m.getModifiers()) && m.getParameterTypes().length == 0) { |
| Button btn = new Button(this.mContext); |
| btn.setText(m.getName()); |
| btn.setOnClickListener(new OnClickListener() { |
| public void onClick(View v) { |
| try { |
| m.invoke(ToastActivity.this.mContext, new Object[0]); |
| } catch (Throwable t) { |
| Log.w(ToastActivity.TAG, "Error running " + m.getName(), t); |
| } |
| } |
| }); |
| buttons.addView(btn); |
| } |
| } |
| setContentView(buttons); |
| this.mContent = buttons; |
| setSysui(); |
| this.mContent.setOnSystemUiVisibilityChangeListener(new OnSystemUiVisibilityChangeListener() { |
| public void onSystemUiVisibilityChange(int visibility) { |
| if ((visibility & 2) == 0) { |
| ToastActivity.this.mImmersive = false; |
| ToastActivity.this.setSysui(); |
| } |
| } |
| }); |
| } |
| |
| public void toast1() { |
| Toast.makeText(this.mContext, "toast!", 0).show(); |
| } |
| |
| public void toast2() { |
| Toast t = Toast.makeText(this.mContext, "toast!", 0); |
| TextView tv = new TextView(this.mContext); |
| tv.setBackgroundColor(-65536); |
| tv.setText("setView"); |
| t.setView(tv); |
| t.show(); |
| } |
| |
| public void toast3() { |
| Toast t = Toast.makeText(this.mContext, "toast!", 0); |
| TextView tv = new TextView(this.mContext) { |
| protected boolean fitSystemWindows(Rect insets) { |
| Rect before = new Rect(insets); |
| boolean rt = super.fitSystemWindows(insets); |
| Log.d(ToastActivity.TAG, String.format("before=%s rt=%s after=%s", new Object[]{before.toShortString(), Boolean.valueOf(rt), insets.toShortString()})); |
| return rt; |
| } |
| }; |
| Log.d(TAG, "fitsSystemWindows=" + tv.getFitsSystemWindows()); |
| tv.setFitsSystemWindows(true); |
| tv.setSystemUiVisibility(768); |
| tv.setBackgroundColor(-65536); |
| tv.setText("setView"); |
| t.setView(tv); |
| t.show(); |
| } |
| |
| public void hideNav() { |
| this.mContent.setSystemUiVisibility(2); |
| } |
| |
| public void dangerToast() { |
| Toast t = Toast.makeText(this.mContext, "toast!", 0); |
| TextView tv = new TextView(this.mContext); |
| tv.setSystemUiVisibility(512); |
| tv.setBackgroundColor(-65536); |
| tv.setText("setView"); |
| t.setView(tv); |
| t.setGravity(80, 0, 90); |
| t.show(); |
| } |
| |
| public void toggleImmersive() { |
| this.mImmersive = !this.mImmersive; |
| setSysui(); |
| } |
| |
| private void setSysui() { |
| int flags = 2560; |
| if (this.mImmersive) { |
| flags = 2560 | 2; |
| } |
| this.mContent.setSystemUiVisibility(flags); |
| } |
| } |