If you think the Android project iosched2011 listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
/*
* Copyright 2011 Google Inc./*fromwww.java2s.com*/
*
* 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.google.android.apps.iosched.ui.tablet;
import com.google.android.apps.iosched.R;
import com.google.android.apps.iosched.ui.BaseMultiPaneActivity;
import com.google.android.apps.iosched.ui.SessionDetailFragment;
import com.google.android.apps.iosched.ui.SessionsFragment;
import com.google.android.apps.iosched.ui.phone.SessionDetailActivity;
import com.google.android.apps.iosched.ui.phone.SessionsActivity;
import android.app.FragmentBreadCrumbs;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.View;
import android.view.ViewGroup;
/**
* A multi-pane activity, where the primary navigation pane is a
* {@link com.google.android.apps.iosched.ui.ScheduleFragment}, that
* shows {@link SessionsFragment} and {@link SessionDetailFragment} as popups.
*
* This activity requires API level 11 or greater because of its use of {@link FragmentBreadCrumbs}.
*/publicclass ScheduleMultiPaneActivity extends BaseMultiPaneActivity implements
View.OnClickListener, FragmentManager.OnBackStackChangedListener {
private FragmentManager mFragmentManager;
private FragmentBreadCrumbs mFragmentBreadCrumbs;
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_schedule);
mFragmentManager = getSupportFragmentManager();
mFragmentBreadCrumbs = (FragmentBreadCrumbs) findViewById(R.id.breadcrumbs);
mFragmentBreadCrumbs.setActivity(this);
mFragmentManager.addOnBackStackChangedListener(this);
updateBreadCrumb();
}
@Override
protectedvoid onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
getActivityHelper().setupSubActivity();
ViewGroup detailContainer = (ViewGroup)
findViewById(R.id.fragment_container_schedule_detail);
if (detailContainer != null && detailContainer.getChildCount() > 0) {
findViewById(R.id.fragment_container_schedule_detail).setBackgroundColor(0);
}
}
@Override
public FragmentReplaceInfo onSubstituteFragmentForActivityLaunch(String activityClassName) {
if (SessionsActivity.class.getName().equals(activityClassName)) {
getSupportFragmentManager().popBackStack();
findViewById(R.id.fragment_container_schedule_detail).setBackgroundColor(0);
returnnew FragmentReplaceInfo(
SessionsFragment.class,
"sessions",
R.id.fragment_container_schedule_detail);
} elseif (SessionDetailActivity.class.getName().equals(activityClassName)) {
findViewById(R.id.fragment_container_schedule_detail).setBackgroundColor(0);
returnnew FragmentReplaceInfo(
SessionDetailFragment.class,
"session_detail",
R.id.fragment_container_schedule_detail);
}
return null;
}
@Override
protectedvoid onBeforeCommitReplaceFragment(FragmentManager fm, FragmentTransaction ft,
Fragment fragment) {
super.onBeforeCommitReplaceFragment(fm, ft, fragment);
if (fragment instanceof SessionDetailFragment) {
ft.addToBackStack(null);
} elseif (fragment instanceof SessionsFragment) {
fm.popBackStack();
}
updateBreadCrumb();
}
/**
* Handler for the breadcrumb parent.
*/publicvoid onClick(View view) {
mFragmentManager.popBackStack();
}
publicvoid onBackStackChanged() {
updateBreadCrumb();
}
publicvoid updateBreadCrumb() {
final String title = getString(R.string.title_sessions);
final String detailTitle = getString(R.string.title_session_detail);
if (mFragmentManager.getBackStackEntryCount() >= 1) {
mFragmentBreadCrumbs.setParentTitle(title, title, this);
mFragmentBreadCrumbs.setTitle(detailTitle, detailTitle);
} else {
mFragmentBreadCrumbs.setParentTitle(null, null, null);
mFragmentBreadCrumbs.setTitle(title, title);
}
}
}