Example usage for android.view ViewGroup setOnSystemUiVisibilityChangeListener

List of usage examples for android.view ViewGroup setOnSystemUiVisibilityChangeListener

Introduction

In this page you can find the example usage for android.view ViewGroup setOnSystemUiVisibilityChangeListener.

Prototype

public void setOnSystemUiVisibilityChangeListener(OnSystemUiVisibilityChangeListener l) 

Source Link

Document

Set a listener to receive callbacks when the visibility of the system bar changes.

Usage

From source file:com.affectiva.affdexme.MainActivity.java

void initializeUI() {

    //Get handles to UI objects
    ViewGroup activityLayout = (ViewGroup) findViewById(android.R.id.content);
    progressBarLayout = (RelativeLayout) findViewById(R.id.progress_bar_cover);
    permissionsUnavailableLayout = (LinearLayout) findViewById(R.id.permissionsUnavialableLayout);
    metricViewLayout = (RelativeLayout) findViewById(R.id.metric_view_group);
    leftMetricsLayout = (LinearLayout) findViewById(R.id.left_metrics);
    rightMetricsLayout = (LinearLayout) findViewById(R.id.right_metrics);
    mainLayout = (RelativeLayout) findViewById(R.id.main_layout);
    fpsPct = (TextView) findViewById(R.id.fps_value);
    fpsName = (TextView) findViewById(R.id.fps_name);
    cameraView = (SurfaceView) findViewById(R.id.camera_preview);
    drawingView = (DrawingView) findViewById(R.id.drawing_view);
    settingsButton = (ImageButton) findViewById(R.id.settings_button);
    cameraButton = (ImageButton) findViewById(R.id.camera_button);
    screenshotButton = (ImageButton) findViewById(R.id.screenshot_button);
    progressBar = (ProgressBar) findViewById(R.id.progress_bar);
    pleaseWaitTextView = (TextView) findViewById(R.id.please_wait_textview);
    Button retryPermissionsButton = (Button) findViewById(R.id.retryPermissionsButton);

    //Initialize views to display metrics
    metricNames = new TextView[NUM_METRICS_DISPLAYED];
    metricNames[0] = (TextView) findViewById(R.id.metric_name_0);
    metricNames[1] = (TextView) findViewById(R.id.metric_name_1);
    metricNames[2] = (TextView) findViewById(R.id.metric_name_2);
    metricNames[3] = (TextView) findViewById(R.id.metric_name_3);
    metricNames[4] = (TextView) findViewById(R.id.metric_name_4);
    metricNames[5] = (TextView) findViewById(R.id.metric_name_5);
    metricDisplays = new MetricDisplay[NUM_METRICS_DISPLAYED];
    metricDisplays[0] = (MetricDisplay) findViewById(R.id.metric_pct_0);
    metricDisplays[1] = (MetricDisplay) findViewById(R.id.metric_pct_1);
    metricDisplays[2] = (MetricDisplay) findViewById(R.id.metric_pct_2);
    metricDisplays[3] = (MetricDisplay) findViewById(R.id.metric_pct_3);
    metricDisplays[4] = (MetricDisplay) findViewById(R.id.metric_pct_4);
    metricDisplays[5] = (MetricDisplay) findViewById(R.id.metric_pct_5);

    //Load Application Font and set UI Elements to use it
    Typeface face = Typeface.createFromAsset(getAssets(), "fonts/Square.ttf");
    for (TextView textView : metricNames) {
        textView.setTypeface(face);//w w w  .  ja v  a 2s .  c  o m
    }
    for (MetricDisplay metricDisplay : metricDisplays) {
        metricDisplay.setTypeface(face);
    }
    fpsPct.setTypeface(face);
    fpsName.setTypeface(face);
    drawingView.setTypeface(face);
    pleaseWaitTextView.setTypeface(face);

    //Hide left and right metrics by default (will be made visible when face detection starts)
    leftMetricsLayout.setAlpha(0);
    rightMetricsLayout.setAlpha(0);

    /**
     * This app uses two SurfaceView objects: one to display the camera image and the other to draw facial tracking dots.
     * Since we want the tracking dots to appear over the camera image, we use SurfaceView.setZOrderMediaOverlay() to indicate that
     * cameraView represents our 'media', and drawingView represents our 'overlay', so that Android will render them in the
     * correct order.
     */
    drawingView.setZOrderMediaOverlay(true);
    cameraView.setZOrderMediaOverlay(false);

    //Attach event listeners to the menu and edit box
    activityLayout.setOnTouchListener(this);

    //Attach event listerner to drawing view
    drawingView.setEventListener(this);

    /*
     * This app sets the View.SYSTEM_UI_FLAG_HIDE_NAVIGATION flag. Unfortunately, this flag causes
     * Android to steal the first touch event after the navigation bar has been hidden, a touch event
     * which should be used to make our menu visible again. Therefore, we attach a listener to be notified
     * when the navigation bar has been made visible again, which corresponds to the touch event that Android
     * steals. If the menu bar was not visible, we make it visible.
     */
    activityLayout.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
        @Override
        public void onSystemUiVisibilityChange(int uiCode) {
            if ((uiCode == 0) && (!isMenuVisible)) {
                setMenuVisible(true);
            }

        }
    });

    retryPermissionsButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            requestCameraPermissions();
        }
    });
}