SlideshowAttachmentView.java revision 79bf6f70c54d08dc9c3481b8461a3a46a3cefb83
1663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng/*
2663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng * Copyright (C) 2008 Esmertec AG.
3663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng * Copyright (C) 2008 The Android Open Source Project
4663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng *
5663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng * Licensed under the Apache License, Version 2.0 (the "License");
6663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng * you may not use this file except in compliance with the License.
7663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng * You may obtain a copy of the License at
8663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng *
9663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng *      http://www.apache.org/licenses/LICENSE-2.0
10663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng *
11663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng * Unless required by applicable law or agreed to in writing, software
12663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng * distributed under the License is distributed on an "AS IS" BASIS,
13663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng * See the License for the specific language governing permissions and
15663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng * limitations under the License.
16663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng */
17663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
18663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengpackage com.android.mms.ui;
19663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
20663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengimport com.android.mms.R;
21663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
22663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengimport android.content.Context;
23663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengimport android.graphics.Bitmap;
24663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengimport android.graphics.BitmapFactory;
25663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengimport android.media.MediaPlayer;
26663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengimport android.net.Uri;
27663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengimport android.util.AttributeSet;
28663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengimport android.util.Log;
29663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengimport android.view.View;
30663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengimport android.widget.ImageView;
31663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengimport android.widget.LinearLayout;
32663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengimport android.widget.TextView;
33663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
34663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengimport java.io.IOException;
35663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengimport java.util.Map;
36663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
37663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng/**
38663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng * This class provides an embedded editor/viewer of slide-show attachment.
39663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng */
40663860b1408516d02ebfcb3a9999a134e6cfb223Ben Chengpublic class SlideshowAttachmentView extends LinearLayout implements
41663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        SlideViewInterface {
42663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    private static final String TAG = "SlideshowAttachmentView";
43663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
44663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    private ImageView mImageView;
45663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    private TextView mTextView;
46663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
47663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    public SlideshowAttachmentView(Context context) {
48663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        super(context);
49663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    }
50663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
51663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    public SlideshowAttachmentView(Context context, AttributeSet attrs) {
52663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        super(context, attrs);
53663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    }
54663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
55663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    @Override
56663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    protected void onFinishInflate() {
57663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        mImageView = (ImageView) findViewById(R.id.slideshow_image);
58663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        mTextView = (TextView) findViewById(R.id.slideshow_text);
59663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    }
60663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
61663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    public void startAudio() {
62663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        // TODO Auto-generated method stub
63663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    }
64663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
65663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    public void startVideo() {
66663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        // TODO Auto-generated method stub
67663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    }
68663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
69663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    public void setAudio(Uri audio, String name, Map<String, ?> extras) {
70663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        // TODO Auto-generated method stub
71663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    }
72663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
73663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    public void setImage(String name, Bitmap bitmap) {
74663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        if (null == bitmap) {
75663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng            try {
76663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng                bitmap = BitmapFactory.decodeResource(getResources(),
77663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng                        R.drawable.ic_missing_thumbnail_picture);
78663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng            } catch (java.lang.OutOfMemoryError e) {
79663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng                // We don't even have enough memory to load the "missing thumbnail" image
80663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng            }
81663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        }
82663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        if (bitmap != null) {
83663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng            mImageView.setImageBitmap(bitmap);      // implementation doesn't appear to be null-safe
84663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        }
85663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    }
86663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
87663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    public void setImageRegionFit(String fit) {
88663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        // TODO Auto-generated method stub
89663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    }
90663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
91663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    public void setImageVisibility(boolean visible) {
92663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        mImageView.setVisibility(visible ? View.VISIBLE : View.INVISIBLE);
93663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    }
94663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
95663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    public void setText(String name, String text) {
96663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        mTextView.setText(text);
97663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    }
98663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
99663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    public void setTextVisibility(boolean visible) {
100663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        mTextView.setVisibility(visible ? View.VISIBLE : View.INVISIBLE);
101663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    }
102663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
103663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    public void setVideo(String name, Uri video) {
104663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        MediaPlayer mp = new MediaPlayer();
105663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        try {
106663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng            mp.setDataSource(mContext, video);
107663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng            mImageView.setImageBitmap(mp.getFrameAt(1000));
108663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        } catch (IOException e) {
109663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng            Log.e(TAG, "Unexpected IOException.", e);
110663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        } finally {
111663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng            mp.release();
112663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        }
113663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    }
114663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
115663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    public void setVideoVisibility(boolean visible) {
116663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        // TODO Auto-generated method stub
117663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    }
118663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
119663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    public void stopAudio() {
120663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        // TODO Auto-generated method stub
121663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    }
122663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
123663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    public void stopVideo() {
124663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        // TODO Auto-generated method stub
125663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    }
126663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
127663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    public void reset() {
128663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        mImageView.setImageURI(null);
129663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        mTextView.setText("");
130663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    }
131663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
132663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    public void setVisibility(boolean visible) {
133663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        // TODO Auto-generated method stub
134663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    }
135663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
136663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    public void pauseAudio() {
137663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        // TODO Auto-generated method stub
138663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
139663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    }
140663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
141663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    public void pauseVideo() {
142663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        // TODO Auto-generated method stub
143663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
144663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    }
145663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
146663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    public void seekAudio(int seekTo) {
147663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        // TODO Auto-generated method stub
148663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
149663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    }
150663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
151663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    public void seekVideo(int seekTo) {
152663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng        // TODO Auto-generated method stub
153663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
154663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    }
155663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng
156663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    public void setVideoThumbnail(String name, Bitmap bitmap) {
157663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng    }
158663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng}
159663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng