|  | /* | 
|  | * Copyright 2013 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.basictransition; | 
|  |  | 
|  | import android.os.Bundle; | 
|  | import android.support.v4.app.FragmentTransaction; | 
|  | import android.view.Menu; | 
|  | import android.view.MenuItem; | 
|  | import android.widget.ViewAnimator; | 
|  |  | 
|  | import com.example.android.common.activities.SampleActivityBase; | 
|  | import com.example.android.common.logger.Log; | 
|  | import com.example.android.common.logger.LogFragment; | 
|  | import com.example.android.common.logger.LogWrapper; | 
|  | import com.example.android.common.logger.MessageOnlyLogFilter; | 
|  |  | 
|  | /** | 
|  | * A simple launcher activity containing a summary sample description, sample log and a custom | 
|  | * {@link android.support.v4.app.Fragment} which can display a view. | 
|  | * <p> | 
|  | * For devices with displays with a width of 720dp or greater, the sample log is always visible, | 
|  | * on other devices it's visibility is controlled by an item on the Action Bar. | 
|  | */ | 
|  | public class MainActivity extends SampleActivityBase { | 
|  |  | 
|  | public static final String TAG = "MainActivity"; | 
|  |  | 
|  | // Whether the Log Fragment is currently shown | 
|  | private boolean mLogShown; | 
|  |  | 
|  | @Override | 
|  | protected void onCreate(Bundle savedInstanceState) { | 
|  | super.onCreate(savedInstanceState); | 
|  | setContentView(R.layout.activity_main); | 
|  |  | 
|  | if (savedInstanceState == null) { | 
|  | FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); | 
|  | BasicTransitionFragment fragment = new BasicTransitionFragment(); | 
|  | transaction.replace(R.id.sample_content_fragment, fragment); | 
|  | transaction.commit(); | 
|  | } | 
|  | } | 
|  |  | 
|  | @Override | 
|  | public boolean onCreateOptionsMenu(Menu menu) { | 
|  | getMenuInflater().inflate(R.menu.main, menu); | 
|  | return true; | 
|  | } | 
|  |  | 
|  | @Override | 
|  | public boolean onPrepareOptionsMenu(Menu menu) { | 
|  | MenuItem logToggle = menu.findItem(R.id.menu_toggle_log); | 
|  | logToggle.setVisible(findViewById(R.id.sample_output) instanceof ViewAnimator); | 
|  | logToggle.setTitle(mLogShown ? R.string.sample_hide_log : R.string.sample_show_log); | 
|  |  | 
|  | return super.onPrepareOptionsMenu(menu); | 
|  | } | 
|  |  | 
|  | @Override | 
|  | public boolean onOptionsItemSelected(MenuItem item) { | 
|  | switch(item.getItemId()) { | 
|  | case R.id.menu_toggle_log: | 
|  | mLogShown = !mLogShown; | 
|  | ViewAnimator output = (ViewAnimator) findViewById(R.id.sample_output); | 
|  | if (mLogShown) { | 
|  | output.setDisplayedChild(1); | 
|  | } else { | 
|  | output.setDisplayedChild(0); | 
|  | } | 
|  | supportInvalidateOptionsMenu(); | 
|  | return true; | 
|  | } | 
|  | return super.onOptionsItemSelected(item); | 
|  | } | 
|  |  | 
|  | /** Create a chain of targets that will receive log data */ | 
|  | @Override | 
|  | public void initializeLogging() { | 
|  | // Wraps Android's native log framework. | 
|  | LogWrapper logWrapper = new LogWrapper(); | 
|  | // Using Log, front-end to the logging chain, emulates android.util.log method signatures. | 
|  | Log.setLogNode(logWrapper); | 
|  |  | 
|  | // Filter strips out everything except the message text. | 
|  | MessageOnlyLogFilter msgFilter = new MessageOnlyLogFilter(); | 
|  | logWrapper.setNext(msgFilter); | 
|  |  | 
|  | // On screen logging via a fragment with a TextView. | 
|  | LogFragment logFragment = (LogFragment) getSupportFragmentManager() | 
|  | .findFragmentById(R.id.log_fragment); | 
|  | msgFilter.setNext(logFragment.getLogView()); | 
|  |  | 
|  | Log.i(TAG, "Ready"); | 
|  | } | 
|  | } |