1/*
2 * Copyright (C) 2011 Google Inc.
3 * Licensed to The Android Open Source Project.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 *      http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18package com.android.ex.photo;
19
20import android.content.Context;
21import android.content.Intent;
22import android.os.Bundle;
23import android.support.annotation.Nullable;
24import android.support.v7.app.ActionBarActivity;
25import android.view.Menu;
26import android.view.MenuItem;
27
28/**
29 * Activity to view the contents of an album.
30 */
31public class PhotoViewActivity extends ActionBarActivity
32        implements PhotoViewController.ActivityInterface {
33
34    private PhotoViewController mController;
35    private ActionBarWrapper mActionBar;
36
37    @Override
38    protected void onCreate(@Nullable Bundle savedInstanceState) {
39        super.onCreate(savedInstanceState);
40        mController = createController();
41        mController.onCreate(savedInstanceState);
42    }
43
44    protected PhotoViewController createController() {
45        return new PhotoViewController(this);
46    }
47
48    @Override
49    public PhotoViewController getController() {
50        return mController;
51    }
52
53    @Override
54    protected void onStart() {
55        super.onStart();
56        mController.onStart();
57    }
58
59    @Override
60    protected void onResume() {
61        super.onResume();
62        mController.onResume();
63    }
64
65    @Override
66    protected void onPause() {
67        mController.onPause();
68        super.onPause();
69    }
70
71    @Override
72    protected void onStop() {
73        mController.onStop();
74        super.onStop();
75    }
76
77    @Override
78    protected void onDestroy() {
79        mController.onDestroy();
80        super.onDestroy();
81    }
82
83    @Override
84    public void onBackPressed() {
85        if (!mController.onBackPressed()) {
86            super.onBackPressed();
87        }
88    }
89
90    @Override
91    public void onSaveInstanceState(Bundle outState) {
92        super.onSaveInstanceState(outState);
93        mController.onSaveInstanceState(outState);
94    }
95
96    @Override
97    public boolean onCreateOptionsMenu(Menu menu) {
98        return mController.onCreateOptionsMenu(menu) || super.onCreateOptionsMenu(menu);
99    }
100
101    @Override
102    public boolean onPrepareOptionsMenu(Menu menu) {
103        return mController.onPrepareOptionsMenu(menu) || super.onPrepareOptionsMenu(menu);
104    }
105
106    @Override
107    public boolean onOptionsItemSelected(MenuItem item) {
108        return mController.onOptionsItemSelected(item) || super.onOptionsItemSelected(item);
109    }
110
111    @Override
112    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
113        super.onActivityResult(requestCode, resultCode, data);
114        mController.onActivityResult(requestCode, resultCode, data);
115    }
116
117    @Override
118    public Context getContext() {
119        return this;
120    }
121
122    @Override
123    public ActionBarInterface getActionBarInterface() {
124        if (mActionBar == null) {
125            mActionBar = new ActionBarWrapper(getSupportActionBar());
126        }
127        return mActionBar;
128    }
129
130}
131