|  | /* | 
|  | * Copyright (C) 2007 The Android Open Source Project | 
|  | * | 
|  | * Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | * you may not use this file except in compliance with the License. | 
|  | * You may obtain a copy of the License at | 
|  | * | 
|  | *      http://www.apache.org/licenses/LICENSE-2.0 | 
|  | * | 
|  | * Unless required by applicable law or agreed to in writing, software | 
|  | * distributed under the License is distributed on an "AS IS" BASIS, | 
|  | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | * See the License for the specific language governing permissions and | 
|  | * limitations under the License. | 
|  | */ | 
|  |  | 
|  | package android.app; | 
|  |  | 
|  | import android.compat.annotation.UnsupportedAppUsage; | 
|  | import android.content.Intent; | 
|  | import android.os.Bundle; | 
|  |  | 
|  | import java.util.HashMap; | 
|  |  | 
|  | /** | 
|  | * A screen that contains and runs multiple embedded activities. | 
|  | * | 
|  | * @deprecated Use the new {@link Fragment} and {@link FragmentManager} APIs | 
|  | * instead; these are also | 
|  | * available on older platforms through the Android compatibility package. | 
|  | */ | 
|  | @Deprecated | 
|  | public class ActivityGroup extends Activity { | 
|  | private static final String STATES_KEY = "android:states"; | 
|  | static final String PARENT_NON_CONFIG_INSTANCE_KEY = "android:parent_non_config_instance"; | 
|  |  | 
|  | /** | 
|  | * This field should be made private, so it is hidden from the SDK. | 
|  | * {@hide} | 
|  | */ | 
|  | @UnsupportedAppUsage | 
|  | protected LocalActivityManager mLocalActivityManager; | 
|  |  | 
|  | public ActivityGroup() { | 
|  | this(true); | 
|  | } | 
|  |  | 
|  | public ActivityGroup(boolean singleActivityMode) { | 
|  | mLocalActivityManager = new LocalActivityManager(this, singleActivityMode); | 
|  | } | 
|  |  | 
|  | @Override | 
|  | protected void onCreate(Bundle savedInstanceState) { | 
|  | super.onCreate(savedInstanceState); | 
|  | Bundle states = savedInstanceState != null | 
|  | ? (Bundle) savedInstanceState.getBundle(STATES_KEY) : null; | 
|  | mLocalActivityManager.dispatchCreate(states); | 
|  | } | 
|  |  | 
|  | @Override | 
|  | protected void onResume() { | 
|  | super.onResume(); | 
|  | mLocalActivityManager.dispatchResume(); | 
|  | } | 
|  |  | 
|  | @Override | 
|  | protected void onSaveInstanceState(Bundle outState) { | 
|  | super.onSaveInstanceState(outState); | 
|  | Bundle state = mLocalActivityManager.saveInstanceState(); | 
|  | if (state != null) { | 
|  | outState.putBundle(STATES_KEY, state); | 
|  | } | 
|  | } | 
|  |  | 
|  | @Override | 
|  | protected void onPause() { | 
|  | super.onPause(); | 
|  | mLocalActivityManager.dispatchPause(isFinishing()); | 
|  | } | 
|  |  | 
|  | @Override | 
|  | protected void onStop() { | 
|  | super.onStop(); | 
|  | mLocalActivityManager.dispatchStop(); | 
|  | } | 
|  |  | 
|  | @Override | 
|  | protected void onDestroy() { | 
|  | super.onDestroy(); | 
|  | mLocalActivityManager.dispatchDestroy(isFinishing()); | 
|  | } | 
|  |  | 
|  | /** | 
|  | * Returns a HashMap mapping from child activity ids to the return values | 
|  | * from calls to their onRetainNonConfigurationInstance methods. | 
|  | * | 
|  | * {@hide} | 
|  | */ | 
|  | @Override | 
|  | public HashMap<String,Object> onRetainNonConfigurationChildInstances() { | 
|  | return mLocalActivityManager.dispatchRetainNonConfigurationInstance(); | 
|  | } | 
|  |  | 
|  | public Activity getCurrentActivity() { | 
|  | return mLocalActivityManager.getCurrentActivity(); | 
|  | } | 
|  |  | 
|  | public final LocalActivityManager getLocalActivityManager() { | 
|  | return mLocalActivityManager; | 
|  | } | 
|  |  | 
|  | @Override | 
|  | void dispatchActivityResult(String who, int requestCode, int resultCode, | 
|  | Intent data, String reason) { | 
|  | if (who != null) { | 
|  | Activity act = mLocalActivityManager.getActivity(who); | 
|  | /* | 
|  | if (false) Log.v( | 
|  | TAG, "Dispatching result: who=" + who + ", reqCode=" + requestCode | 
|  | + ", resCode=" + resultCode + ", data=" + data | 
|  | + ", rec=" + rec); | 
|  | */ | 
|  | if (act != null) { | 
|  | act.onActivityResult(requestCode, resultCode, data); | 
|  | return; | 
|  | } | 
|  | } | 
|  | super.dispatchActivityResult(who, requestCode, resultCode, data, reason); | 
|  | } | 
|  | } | 
|  |  | 
|  |  |