19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2008 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage com.android.internal.app;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Intent;
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Bundle;
21eb034652c2037a47ebfd99779e8383bb8bb528afDianne Hackbornimport android.os.Parcelable;
22eb034652c2037a47ebfd99779e8383bb8bb528afDianne Hackbornimport android.util.Log;
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class ChooserActivity extends ResolverActivity {
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @Override
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    protected void onCreate(Bundle savedInstanceState) {
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Intent intent = getIntent();
28eb034652c2037a47ebfd99779e8383bb8bb528afDianne Hackborn        Parcelable targetParcelable = intent.getParcelableExtra(Intent.EXTRA_INTENT);
29eb034652c2037a47ebfd99779e8383bb8bb528afDianne Hackborn        if (!(targetParcelable instanceof Intent)) {
30eb034652c2037a47ebfd99779e8383bb8bb528afDianne Hackborn            Log.w("ChooseActivity", "Target is not an intent: " + targetParcelable);
31eb034652c2037a47ebfd99779e8383bb8bb528afDianne Hackborn            finish();
32eb034652c2037a47ebfd99779e8383bb8bb528afDianne Hackborn            return;
33eb034652c2037a47ebfd99779e8383bb8bb528afDianne Hackborn        }
34eb034652c2037a47ebfd99779e8383bb8bb528afDianne Hackborn        Intent target = (Intent)targetParcelable;
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        CharSequence title = intent.getCharSequenceExtra(Intent.EXTRA_TITLE);
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (title == null) {
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            title = getResources().getText(com.android.internal.R.string.chooseActivity);
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
39eb034652c2037a47ebfd99779e8383bb8bb528afDianne Hackborn        Parcelable[] pa = intent.getParcelableArrayExtra(Intent.EXTRA_INITIAL_INTENTS);
40eb034652c2037a47ebfd99779e8383bb8bb528afDianne Hackborn        Intent[] initialIntents = null;
41eb034652c2037a47ebfd99779e8383bb8bb528afDianne Hackborn        if (pa != null) {
42eb034652c2037a47ebfd99779e8383bb8bb528afDianne Hackborn            initialIntents = new Intent[pa.length];
43eb034652c2037a47ebfd99779e8383bb8bb528afDianne Hackborn            for (int i=0; i<pa.length; i++) {
44eb034652c2037a47ebfd99779e8383bb8bb528afDianne Hackborn                if (!(pa[i] instanceof Intent)) {
45eb034652c2037a47ebfd99779e8383bb8bb528afDianne Hackborn                    Log.w("ChooseActivity", "Initial intent #" + i
46eb034652c2037a47ebfd99779e8383bb8bb528afDianne Hackborn                            + " not an Intent: " + pa[i]);
47eb034652c2037a47ebfd99779e8383bb8bb528afDianne Hackborn                    finish();
48eb034652c2037a47ebfd99779e8383bb8bb528afDianne Hackborn                    return;
49eb034652c2037a47ebfd99779e8383bb8bb528afDianne Hackborn                }
50eb034652c2037a47ebfd99779e8383bb8bb528afDianne Hackborn                initialIntents[i] = (Intent)pa[i];
51eb034652c2037a47ebfd99779e8383bb8bb528afDianne Hackborn            }
52eb034652c2037a47ebfd99779e8383bb8bb528afDianne Hackborn        }
53d88e9aa575eb3a9d20cdb0e8918d54993e1ce1e0Jeff Hamilton        super.onCreate(savedInstanceState, target, title, initialIntents, null, false);
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
56