13bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang/*
23bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang * Copyright (C) 2011 The Android Open Source Project
33bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang *
43bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang * Licensed under the Apache License, Version 2.0 (the "License");
53bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang * you may not use this file except in compliance with the License.
63bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang * You may obtain a copy of the License at
73bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang *
83bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang *      http://www.apache.org/licenses/LICENSE-2.0
93bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang *
103bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang * Unless required by applicable law or agreed to in writing, software
113bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang * distributed under the License is distributed on an "AS IS" BASIS,
123bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
133bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang * See the License for the specific language governing permissions and
143bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang * limitations under the License.
153bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang */
163bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang
173bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Changpackage com.android.gallery3d.app;
183bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang
193bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Changimport android.os.Bundle;
202abaaf7caa9a83ba1ea759868aabde7f21387184John Reckimport android.view.Menu;
212abaaf7caa9a83ba1ea759868aabde7f21387184John Reckimport android.view.MenuInflater;
222abaaf7caa9a83ba1ea759868aabde7f21387184John Reckimport android.view.MenuItem;
233bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Changimport android.view.View;
243bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Changimport android.view.View.OnClickListener;
252abaaf7caa9a83ba1ea759868aabde7f21387184John Reckimport android.view.Window;
263bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang
272b3ee0ea07246b859a5b75d8a6102a7cce7ec838Owen Linimport com.android.gallery3d.R;
282b3ee0ea07246b859a5b75d8a6102a7cce7ec838Owen Linimport com.android.gallery3d.ui.GLRootView;
292b3ee0ea07246b859a5b75d8a6102a7cce7ec838Owen Lin
303bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Changpublic class PickerActivity extends AbstractGalleryActivity
313bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang        implements OnClickListener {
323bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang
333bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang    public static final String KEY_ALBUM_PATH = "album-path";
343bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang
353bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang    @Override
363bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang    public void onCreate(Bundle savedInstanceState) {
373bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang        super.onCreate(savedInstanceState);
383bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang
393bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang        // We show the picker in two ways. One smaller screen we use a full
403bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang        // screen window with an action bar. On larger screen we use a dialog.
413bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang        boolean isDialog = getResources().getBoolean(R.bool.picker_is_dialog);
423bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang
433bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang        if (!isDialog) {
443bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang            requestWindowFeature(Window.FEATURE_ACTION_BAR);
453bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang            requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
463bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang        }
473bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang
483bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang        setContentView(R.layout.dialog_picker);
493bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang
503bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang        if (isDialog) {
513bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang            // In dialog mode, we don't have the action bar to show the
523bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang            // "cancel" action, so we show an additional "cancel" button.
533bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang            View view = findViewById(R.id.cancel);
543bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang            view.setOnClickListener(this);
553bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang            view.setVisibility(View.VISIBLE);
563bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang
573bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang            // We need this, otherwise the view will be dimmed because it
583bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang            // is "behind" the dialog.
593bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang            ((GLRootView) findViewById(R.id.gl_root_view)).setZOrderOnTop(true);
603bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang        }
613bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang    }
623bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang
633bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang    @Override
643bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang    public boolean onCreateOptionsMenu(Menu menu) {
652abaaf7caa9a83ba1ea759868aabde7f21387184John Reck        MenuInflater inflater = getMenuInflater();
663bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang        inflater.inflate(R.menu.pickup, menu);
673bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang        return true;
683bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang    }
693bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang
703bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang    @Override
713bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang    public boolean onOptionsItemSelected(MenuItem item) {
723bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang        if (item.getItemId() == R.id.action_cancel) {
733bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang            finish();
743bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang            return true;
753bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang        }
76655f63f04638dfe31045eab1b6b4c39cc2db10dbRay Chen        return super.onOptionsItemSelected(item);
773bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang    }
783bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang
793bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang    @Override
803bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang    public void onClick(View v) {
813bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang        if (v.getId() == R.id.cancel) finish();
823bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang    }
833bbf133d949d2b51cce8db22dc0a2be64920c76cChih-Chung Chang}
84