|  | /* | 
|  | * Copyright (C) 2015 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 com.example.android.multiwindow; | 
|  |  | 
|  | import android.app.Activity; | 
|  | import android.content.Intent; | 
|  | import android.os.Bundle; | 
|  | import android.view.View; | 
|  | import android.widget.TextView; | 
|  |  | 
|  | public class LaunchingAdjacentActivity extends Activity implements View.OnClickListener { | 
|  |  | 
|  | private static final String INSTANCE_NUMBER_KEY = "instance_number"; | 
|  |  | 
|  | private static int mInstanceCount; | 
|  | private int mInstanceNumber; | 
|  |  | 
|  | @Override | 
|  | protected void onCreate(Bundle savedInstanceState) { | 
|  | super.onCreate(savedInstanceState); | 
|  | setContentView(R.layout.launching_adjacent_layout); | 
|  | findViewById(R.id.launch_settings_adjacent).setOnClickListener(this); | 
|  | findViewById(R.id.launch_new_task_single).setOnClickListener(this); | 
|  | findViewById(R.id.launch_new_task_multiple).setOnClickListener(this); | 
|  | findViewById(R.id.launch_new_task_adjacent).setOnClickListener(this); | 
|  | if (savedInstanceState != null) { | 
|  | mInstanceNumber = savedInstanceState.getInt(INSTANCE_NUMBER_KEY); | 
|  | } else { | 
|  | mInstanceNumber = mInstanceCount++; | 
|  | } | 
|  | ((TextView) findViewById(R.id.instance_number)) | 
|  | .setText(getString(R.string.instance_number) + mInstanceNumber); | 
|  | } | 
|  |  | 
|  | @Override | 
|  | public void onClick(View v) { | 
|  | switch (v.getId()) { | 
|  | case R.id.launch_settings_adjacent: { | 
|  | Intent intent = new Intent("android.settings.SETTINGS"); | 
|  | intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 
|  | | Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT); | 
|  | startActivity(intent); | 
|  | } | 
|  | break; | 
|  | case R.id.launch_new_task_single: { | 
|  | Intent intent = newAdjacentActivityIntent(); | 
|  | intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); | 
|  | startActivity(intent); | 
|  | } | 
|  | break; | 
|  | case R.id.launch_new_task_multiple: { | 
|  | Intent intent = newAdjacentActivityIntent(); | 
|  | intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK); | 
|  | startActivity(intent); | 
|  | } | 
|  | break; | 
|  | case R.id.launch_new_task_adjacent: { | 
|  | Intent intent = newAdjacentActivityIntent(); | 
|  | intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK | 
|  | | Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT); | 
|  | startActivity(intent); | 
|  | } | 
|  | break; | 
|  | } | 
|  | } | 
|  |  | 
|  | private Intent newAdjacentActivityIntent() { | 
|  | Intent intent = new Intent(this, LaunchingAdjacentActivity.class); | 
|  | intent.setAction(Intent.ACTION_MAIN); | 
|  | intent.addCategory(Intent.CATEGORY_LAUNCHER); | 
|  | return intent; | 
|  | } | 
|  |  | 
|  | @Override | 
|  | public void onSaveInstanceState(Bundle savedInstanceState) { | 
|  | savedInstanceState.putInt(INSTANCE_NUMBER_KEY, mInstanceNumber); | 
|  | super.onSaveInstanceState(savedInstanceState); | 
|  | } | 
|  | } |