Skip to content

Instantly share code, notes, and snippets.

@li2
Created August 15, 2016 06:04
Show Gist options
  • Save li2/f682d2f6ef6e4b1316b7722fb7eedfd5 to your computer and use it in GitHub Desktop.
Save li2/f682d2f6ef6e4b1316b7722fb7eedfd5 to your computer and use it in GitHub Desktop.
/**
* Created by weiyi.li on 4/7/16.
* This activity includes {@link AlbumFragment} and {@link ThumbnailFragment}.
*/
public class TwoFragmentsActivity extends BasicOperationActivity {
private boolean mShowingThumbnail = true;
@Dvr.DvrFolder private int mFolderType = Dvr.DVR_FOLDER_LOOPED_VIDEOS;
private FragmentManager mFm;
private AlbumFragment mAlbumFragment;
private ThumbnailFragment mThumbnailFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mActionTitleView.setOnClickListener(mOnActionTitleClickedListener);
mFm = getSupportFragmentManager();
showThumbnailFragment(mFolderType);
}
@NonNull
@Override
protected Fragment createContentFragment() {
return null;
}
@Override
protected void onOperationButton1Clicked() {
}
@Override
protected void onOperationButton2Clicked() {
}
/** Implements listeners to response to UI touch events. */
private DebouncedOnClickListener mOnActionTitleClickedListener = new DebouncedOnClickListener() {
@Override
public void onDebouncedClick(View v) {
if (mShowingThumbnail) {
showAlbumFragment();
hideThumbnailFragment();
} else {
hideAlbumFragment();
showThumbnailFragment(mFolderType);
}
}
};
private AlbumFragment.OnAlbumClickListener mOnAlbumClickListener = new AlbumFragment.OnAlbumClickListener() {
@Override
public void onAlbumClick(@Dvr.DvrFolder int folder) {
mFolderType = folder;
mShowingThumbnail = true;
hideAlbumFragment();
showThumbnailFragment(folder);
}
};
/** Private methods to update UI */
private void showThumbnailFragment(@Dvr.DvrFolder int folder) {
if (mThumbnailFragment == null) {
mThumbnailFragment = ThumbnailFragment.newInstance(folder);
mFm.beginTransaction().add(R.id.contentFragmentContainer, mThumbnailFragment).commit();
}
mFm.beginTransaction().show(mThumbnailFragment).commit();
}
private void hideThumbnailFragment() {
if (mThumbnailFragment != null) {
mFm.beginTransaction().hide(mThumbnailFragment).commit();
}
}
private void showAlbumFragment() {
if (mAlbumFragment == null) {
mAlbumFragment = new AlbumFragment();
mAlbumFragment.setOnAlbumClickListener(mOnAlbumClickListener);
mFm.beginTransaction().add(R.id.contentFragmentContainer, mAlbumFragment).commit();
}
mFm.beginTransaction().show(mAlbumFragment).commit();
}
private void hideAlbumFragment() {
if (mAlbumFragment != null) {
mFm.beginTransaction().hide(mAlbumFragment).commit();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment