/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.ui.activity; import java.util.HashSet; import java.util.Iterator; import java.util.Set; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.View; import com.galaxy.meetup.client.android.R; import com.galaxy.meetup.client.android.analytics.OzViews; import com.galaxy.meetup.client.android.service.EsService; import com.galaxy.meetup.client.android.ui.fragments.HostedStreamOneUpFragment; /** * * @author sihai * */ public class StreamOneUpActivity extends HostActivity { private HostedStreamOneUpFragment mFragment; private boolean mFullScreen; private boolean mKeyboardIsVisible; private Set mScreenListeners; public static interface OnScreenListener { public abstract void enableImageTransforms(boolean flag); public abstract void onFullScreenChanged(boolean flag); } public StreamOneUpActivity() { mScreenListeners = new HashSet(); } public final void addScreenListener(OnScreenListener onscreenlistener) { mScreenListeners.add(onscreenlistener); } protected final Fragment createDefaultFragment() { return new HostedStreamOneUpFragment(); } protected final int getContentView() { return R.layout.host_frame_layout_activity; } public final OzViews getViewForLogging() { return OzViews.ACTIVITY; } public final void onAttachFragment(Fragment fragment) { super.onAttachFragment(fragment); if(fragment instanceof HostedStreamOneUpFragment) mFragment = (HostedStreamOneUpFragment)fragment; } public void onBackPressed() { if(mFullScreen) toggleFullScreen(); else mFragment.onCancelRequested(); } protected void onCreate(Bundle bundle) { super.onCreate(bundle); final View rootView; if(bundle == null) { String s = getIntent().getStringExtra("notif_id"); if(s != null) EsService.markNotificationAsRead(this, getAccount(), s); } else { mFullScreen = bundle.getBoolean("com.google.android.apps.plus.HostedStreamOneUpFragment.FULLSCREEN", false); } rootView = findViewById(R.id.host); rootView.getViewTreeObserver().addOnGlobalLayoutListener(new android.view.ViewTreeObserver.OnGlobalLayoutListener() { public final void onGlobalLayout() { if(rootView.getRootView().getHeight() - rootView.getHeight() > 100) { mKeyboardIsVisible = true; for(Iterator iterator1 = mScreenListeners.iterator(); iterator1.hasNext(); ((OnScreenListener)iterator1.next()).enableImageTransforms(false)); } else { mKeyboardIsVisible = false; for(Iterator iterator = mScreenListeners.iterator(); iterator.hasNext(); ((OnScreenListener)iterator.next()).enableImageTransforms(true)); } } }); } public void onSaveInstanceState(Bundle bundle) { super.onSaveInstanceState(bundle); bundle.putBoolean("com.google.android.apps.plus.HostedStreamOneUpFragment.FULLSCREEN", mFullScreen); } public final void toggleFullScreen() { if(!mKeyboardIsVisible) { boolean flag; Iterator iterator; if(!mFullScreen) flag = true; else flag = false; mFullScreen = flag; iterator = mScreenListeners.iterator(); while(iterator.hasNext()) ((OnScreenListener)iterator.next()).onFullScreenChanged(mFullScreen); } } }