/* * Copyright 2014 Google Inc. All rights reserved. * * 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.samples.apps.iosched.session; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.support.v4.app.ActivityCompat; import android.support.v7.widget.Toolbar; import android.view.View; import com.google.samples.apps.iosched.R; import com.google.samples.apps.iosched.myschedule.MyScheduleActivity; import com.google.samples.apps.iosched.provider.ScheduleContract; import com.google.samples.apps.iosched.ui.BaseActivity; import com.google.samples.apps.iosched.util.BeamUtils; import com.google.samples.apps.iosched.util.LogUtils; import com.google.samples.apps.iosched.util.UIUtils; import static com.google.samples.apps.iosched.util.LogUtils.LOGE; /** * Displays the details about a session. This Activity is launched via an {@code Intent} with {@link * Intent#ACTION_VIEW} and a {@link Uri} built with {@link com.google.samples.apps.iosched * .provider.ScheduleContract.Sessions#buildSessionUri(String)}. */ public class SessionDetailActivity extends BaseActivity { private static final String TAG = LogUtils.makeLogTag(SessionDetailActivity.class); private Handler mHandler = new Handler(); private Uri mSessionUri; @Override protected void onCreate(Bundle savedInstanceState) { UIUtils.tryTranslateHttpIntent(this); BeamUtils.tryUpdateIntentFromBeam(this); boolean shouldBeFloatingWindow = shouldBeFloatingWindow(); if (shouldBeFloatingWindow) { setupFloatingWindow(R.dimen.session_details_floating_width, R.dimen.session_details_floating_height, 1, 0.4f); } super.onCreate(savedInstanceState); setContentView(R.layout.session_detail_act); setToolbarAsUp(new View.OnClickListener() { @Override public void onClick(View view) { ActivityCompat.finishAfterTransition(SessionDetailActivity.this); } }); final Toolbar toolbar = getToolbar(); // Override the icon if shouldBeFloatingWindow if (shouldBeFloatingWindow) { toolbar.setNavigationIcon(R.drawable.ic_close); } mHandler.post(new Runnable() { @Override public void run() { // Do not display the Activity name in the toolbar toolbar.setTitle(""); } }); if (savedInstanceState == null) { Uri sessionUri = getIntent().getData(); BeamUtils.setBeamSessionUri(this, sessionUri); } mSessionUri = getIntent().getData(); if (mSessionUri == null) { LOGE(TAG, "SessionDetailActivity started with null session Uri!"); finish(); return; } } public Uri getSessionUri() { return mSessionUri; } @Override public Intent getParentActivityIntent() { return new Intent(this, MyScheduleActivity.class); } public static void startSessionDetailActivity(final Activity activity, final String sessionId) { Uri data = ScheduleContract.Sessions.buildSessionUri (sessionId); Intent sessionDetailIntent = new Intent(activity, SessionDetailActivity.class); sessionDetailIntent.setData(data); activity.startActivity(sessionDetailIntent); } }