1ea0bad0574451212591841ba84f477ecc216003aHuahui Wu/*
2ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * Copyright (C) 2011 The Android Open Source Project
3ea0bad0574451212591841ba84f477ecc216003aHuahui Wu *
4ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * Licensed under the Apache License, Version 2.0 (the "License");
5ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * you may not use this file except in compliance with the License.
6ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * You may obtain a copy of the License at
7ea0bad0574451212591841ba84f477ecc216003aHuahui Wu *
8ea0bad0574451212591841ba84f477ecc216003aHuahui Wu *      http://www.apache.org/licenses/LICENSE-2.0
9ea0bad0574451212591841ba84f477ecc216003aHuahui Wu *
10ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * Unless required by applicable law or agreed to in writing, software
11ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * distributed under the License is distributed on an "AS IS" BASIS,
12ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * See the License for the specific language governing permissions and
14ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * limitations under the License.
15ea0bad0574451212591841ba84f477ecc216003aHuahui Wu */
16ea0bad0574451212591841ba84f477ecc216003aHuahui Wu
17ea0bad0574451212591841ba84f477ecc216003aHuahui Wupackage com.android.mediadump;
18ea0bad0574451212591841ba84f477ecc216003aHuahui Wu
19ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.app.Activity;
20ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.app.AlertDialog;
21ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.content.Context;
22705555dc468e46560d02db102dfcedc1e5c70d9eYohann Rousselimport android.content.DialogInterface;
23ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.content.Intent;
24ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.content.SharedPreferences;
25ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.os.Bundle;
26ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.util.Log;
27ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.view.Gravity;
28ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.view.View;
29ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.widget.EditText;
30ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.widget.FrameLayout;
31ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.widget.LinearLayout;
32ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.widget.MediaController;
33ea0bad0574451212591841ba84f477ecc216003aHuahui Wu
34ea0bad0574451212591841ba84f477ecc216003aHuahui Wu/**
35ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * A media tool to play a video and dump the screen display
36ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * into raw RGB files. Check VideoDumpView for tech details.
37ea0bad0574451212591841ba84f477ecc216003aHuahui Wu */
38ea0bad0574451212591841ba84f477ecc216003aHuahui Wupublic class VideoDumpActivity extends Activity {
39ea0bad0574451212591841ba84f477ecc216003aHuahui Wu
40ea0bad0574451212591841ba84f477ecc216003aHuahui Wu    private Context context;
41ea0bad0574451212591841ba84f477ecc216003aHuahui Wu
42ea0bad0574451212591841ba84f477ecc216003aHuahui Wu    private View mainView;
43ea0bad0574451212591841ba84f477ecc216003aHuahui Wu    private VideoDumpView mVideoView;
44ea0bad0574451212591841ba84f477ecc216003aHuahui Wu
45ea0bad0574451212591841ba84f477ecc216003aHuahui Wu    @Override
46ea0bad0574451212591841ba84f477ecc216003aHuahui Wu    protected void onCreate(Bundle savedInstanceState) {
47ea0bad0574451212591841ba84f477ecc216003aHuahui Wu        super.onCreate(savedInstanceState);
48ea0bad0574451212591841ba84f477ecc216003aHuahui Wu
49ea0bad0574451212591841ba84f477ecc216003aHuahui Wu        context = this;
50ea0bad0574451212591841ba84f477ecc216003aHuahui Wu
51ea0bad0574451212591841ba84f477ecc216003aHuahui Wu        mainView = createView();
52ea0bad0574451212591841ba84f477ecc216003aHuahui Wu        setContentView(mainView);
53ea0bad0574451212591841ba84f477ecc216003aHuahui Wu    }
54ea0bad0574451212591841ba84f477ecc216003aHuahui Wu
55ea0bad0574451212591841ba84f477ecc216003aHuahui Wu    @Override
56ea0bad0574451212591841ba84f477ecc216003aHuahui Wu    protected void onPause() {
57ea0bad0574451212591841ba84f477ecc216003aHuahui Wu        super.onPause();
58ea0bad0574451212591841ba84f477ecc216003aHuahui Wu        mVideoView.onPause();
59ea0bad0574451212591841ba84f477ecc216003aHuahui Wu    }
60ea0bad0574451212591841ba84f477ecc216003aHuahui Wu
61ea0bad0574451212591841ba84f477ecc216003aHuahui Wu    @Override
62ea0bad0574451212591841ba84f477ecc216003aHuahui Wu    protected void onResume() {
63ea0bad0574451212591841ba84f477ecc216003aHuahui Wu        super.onResume();
64ea0bad0574451212591841ba84f477ecc216003aHuahui Wu        mVideoView.onResume();
65ea0bad0574451212591841ba84f477ecc216003aHuahui Wu    }
66ea0bad0574451212591841ba84f477ecc216003aHuahui Wu
67ea0bad0574451212591841ba84f477ecc216003aHuahui Wu    private View createView() {
68ea0bad0574451212591841ba84f477ecc216003aHuahui Wu        mVideoView = new VideoDumpView(this);
69ea0bad0574451212591841ba84f477ecc216003aHuahui Wu        mVideoView.setMediaController(new MediaController(context));
70ea0bad0574451212591841ba84f477ecc216003aHuahui Wu
71ea0bad0574451212591841ba84f477ecc216003aHuahui Wu        LinearLayout mainLayout = new LinearLayout(this);
72ea0bad0574451212591841ba84f477ecc216003aHuahui Wu        mainLayout.addView(mVideoView, new LinearLayout.LayoutParams(
73ea0bad0574451212591841ba84f477ecc216003aHuahui Wu            LinearLayout.LayoutParams.MATCH_PARENT,
74ea0bad0574451212591841ba84f477ecc216003aHuahui Wu            LinearLayout.LayoutParams.MATCH_PARENT));
75ea0bad0574451212591841ba84f477ecc216003aHuahui Wu
76ea0bad0574451212591841ba84f477ecc216003aHuahui Wu        return mainLayout;
77ea0bad0574451212591841ba84f477ecc216003aHuahui Wu    }
78ea0bad0574451212591841ba84f477ecc216003aHuahui Wu
79ea0bad0574451212591841ba84f477ecc216003aHuahui Wu    protected void onStop() {
80ea0bad0574451212591841ba84f477ecc216003aHuahui Wu        if (mVideoView != null) {
81ea0bad0574451212591841ba84f477ecc216003aHuahui Wu            if (mVideoView.isPlaying()) {
82ea0bad0574451212591841ba84f477ecc216003aHuahui Wu                mVideoView.stopPlayback();
83ea0bad0574451212591841ba84f477ecc216003aHuahui Wu            }
84ea0bad0574451212591841ba84f477ecc216003aHuahui Wu        }
85ea0bad0574451212591841ba84f477ecc216003aHuahui Wu        super.onStop();
86ea0bad0574451212591841ba84f477ecc216003aHuahui Wu    }
87ea0bad0574451212591841ba84f477ecc216003aHuahui Wu}
88ea0bad0574451212591841ba84f477ecc216003aHuahui Wu
89