package activities; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.Gravity; import android.view.ViewGroup.LayoutParams; import android.view.WindowManager; import android.widget.FrameLayout; import android.widget.LinearLayout; import android.widget.TextView; import org.domogik.domodroid13.R; import java.util.ArrayList; import video.MjpegInputStream; import video.MjpegView; import video.MjpegViewAsync; public class Activity_Cam extends AppCompatActivity { private MjpegViewAsync mv; private TextView TV_frameRate; private final String mytag = this.getClass().getName(); //todo add tracerengine here too handle log. public void onCreate(Bundle icicle) { super.onCreate(icicle); //window manager to keep screen on getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); Bundle b = getIntent().getExtras(); String name_cam = b.getString("name"); String url = b.getString("url"); //typedDimension float scale = getResources().getDisplayMetrics().density; //activity LinearLayout LL_activity = new LinearLayout(this); LL_activity.setOrientation(LinearLayout.VERTICAL); //video panel FrameLayout FL_viewPan = new FrameLayout(this); FL_viewPan.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); //info panel LinearLayout LL_infoPan = new LinearLayout(this); LL_infoPan.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); LL_infoPan.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM); LL_infoPan.setPadding(0, 0, 0, 20); //name of room TextView TV_name = new TextView(this); TV_name.setText(getText(R.string.camera) + ": " + name_cam); TV_name.setTextSize(15); TV_name.setTextColor(Color.WHITE); TV_name.setPadding(0, 0, 15, 0); //frame rate TV_frameRate = new TextView(this); TV_frameRate.setTextColor(Color.WHITE); TV_frameRate.setPadding(15, 0, 0, 0); TV_frameRate.setText(getText(R.string.frame_rate_default)); mv = new MjpegViewAsync(this); mv.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); LL_infoPan.addView(TV_name); LL_infoPan.addView(TV_frameRate); FL_viewPan.addView(mv); FL_viewPan.addView(LL_infoPan); LL_activity.addView(FL_viewPan); setContentView(LL_activity); try { mv.setSource(MjpegInputStream.read(url)); } catch (Exception e) { e.printStackTrace(); finish(); } mv.setDisplayMode(MjpegView.SIZE_BEST_FIT); mv.showFps(true); Handler handler = new Handler() { @Override public void handleMessage(Message msg) { TV_frameRate.setText(getText(R.string.frame_rate) + ": " + msg.what + " " + getText(R.string.fps)); } }; mv.setHandler(handler); } @Override public void onPause() { super.onPause(); mv.stopPlayback(); finish(); } @Override public void onBackPressed() { Intent intent = getIntent(); setResult(RESULT_OK, intent); finish(); } }