/**
* galaxy inc.
* meetup client for android
*/
package com.galaxy.meetup.client.android.hangout;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Handler;
import android.os.Looper;
import android.support.v4.app.DialogFragment;
import android.util.AttributeSet;
import android.view.DragEvent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.OnHierarchyChangeListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.galaxy.meetup.client.android.R;
import com.galaxy.meetup.client.android.content.AudienceData;
import com.galaxy.meetup.client.android.service.Hangout;
import com.galaxy.meetup.client.android.ui.fragments.AlertFragmentDialog;
import com.galaxy.meetup.client.android.ui.fragments.EsFragmentActivity;
import com.galaxy.meetup.client.android.ui.fragments.ProgressFragmentDialog;
import com.galaxy.meetup.client.android.ui.view.HangoutInviteesView;
import com.galaxy.meetup.client.android.ui.view.ScaledLayout;
import com.galaxy.meetup.client.android.ui.view.Tile;
import com.galaxy.meetup.client.android.ui.view.TwoPointerGestureDetector;
import com.galaxy.meetup.client.util.AccessibilityUtils;
import com.galaxy.meetup.client.util.Property;
import com.galaxy.meetup.client.util.StringUtils;
/**
*
* @author sihai
*
*/
public class HangoutTabletTile extends HangoutTile implements
OnHierarchyChangeListener {
static final boolean $assertionsDisabled;
private RelativeLayout bradyLayoutContainer;
private final EventHandler eventHandler;
private ViewGroup hangoutLaunchJoinPanel;
private View instructionsView;
private Runnable instructionsViewFadeOutRunnable;
private boolean isRegistered;
private boolean isTileStarted;
private ActionBar mActionBar;
private CountDownTimer mActionBarDismissalTimer;
private EsFragmentActivity mActivity;
private RelativeLayout mCenterStageContainer;
private RemoteVideoView.CenterStageVideoView mCenterStageVideo;
private StageViewMode mCurrentStageMode;
private boolean mEnableStageIcons;
private Animation mFilmStripAnimOut;
private View mFilmStripContainer;
private boolean mFilmStripIsPaused;
private CountDownTimer mFilmStripPauseTimer;
private TabletFilmStripView mFilmStripView;
private final Handler mHandler;
private Hangout.SupportStatus mHangoutSupportStatus;
private ScaledLayout mInset;
private FrameLayout mInsetVideo;
private View mInviteesContainer;
private TextView mInviteesMessageView;
private HangoutInviteesView mInviteesView;
private boolean mIsAudioEnabled;
private boolean mIsAudioMuted;
private boolean mIsHangoutLite;
private boolean mIsVideoMuted;
private Button mJoinButton;
private LocalVideoView mLocalVideoView;
private View mMessageContainer;
private TextView mMessageView;
private boolean mNeedToToastForInvite;
private Animation mSlideInUp;
private ToastsView mToastsView;
private ViewMode mViewMode;
private ProgressBar progressBar;
private TextView progressText;
private RelativeLayout stageLayoutContainer;
private HangoutTile.State state;
private HangoutTile.State stateBeforeStop;
static
{
boolean flag;
if(!HangoutTabletTile.class.desiredAssertionStatus())
flag = true;
else
flag = false;
$assertionsDisabled = flag;
}
public HangoutTabletTile(Context context)
{
this(context, null);
}
public HangoutTabletTile(Context context, AttributeSet attributeset)
{
this(context, attributeset, 0);
}
public HangoutTabletTile(Context context, AttributeSet attributeset, int i)
{
super(context, attributeset, i);
mIsAudioEnabled = true;
mHandler = new Handler(Looper.getMainLooper());
mFilmStripIsPaused = true;
mIsHangoutLite = true;
eventHandler = new EventHandler();
Object aobj[] = new Object[3];
aobj[0] = this;
aobj[1] = context;
aobj[2] = eventHandler;
Log.debug("HangoutTabletTile(): this=%s context=%s eventHandler=%s", aobj);
}
private void addVideoToCenterStage(HangoutVideoView hangoutvideoview)
{
ViewGroup viewgroup = (ViewGroup)hangoutvideoview.getParent();
if(viewgroup != mCenterStageContainer)
{
if(viewgroup != null)
viewgroup.removeView(hangoutvideoview);
mCenterStageContainer.addView(hangoutvideoview);
hangoutvideoview.setLayoutMode(HangoutVideoView.LayoutMode.FIT);
mCenterStageContainer.invalidate();
mCenterStageContainer.requestLayout();
}
}
private void checkAndDismissCallgrokLogUploadProgressDialog()
{
DialogFragment dialogfragment = (DialogFragment)mActivity.getSupportFragmentManager().findFragmentByTag("log_upload");
if(dialogfragment != null)
dialogfragment.dismiss();
}
private void fadeOutInstructionsView()
{
if(isRegistered && instructionsView.getVisibility() != 8)
{
Animation animation = AnimationUtils.loadAnimation(getContext(), R.anim.fade_out);
animation.setAnimationListener(new HideViewAnimationListener(instructionsView));
instructionsView.startAnimation(animation);
}
}
private void hideActionBar() {
if(null == mActionBar) {
return;
}
mActionBarDismissalTimer.cancel();
if(!AccessibilityUtils.isAccessibilityEnabled(getContext()) && GCommApp.getInstance(getContext()).getGCommNativeWrapper().getHadSomeConnectedParticipantInPast())
mActionBar.hide();
}
private void hideFilmStrip()
{
if(mFilmStripContainer.getVisibility() == 0)
mFilmStripContainer.startAnimation(mFilmStripAnimOut);
}
private void pauseFilmStrip()
{
mFilmStripPauseTimer.cancel();
if(!mFilmStripIsPaused)
{
mFilmStripIsPaused = true;
mFilmStripView.onPause();
}
}
private void resumeFilmStrip()
{
mFilmStripPauseTimer.cancel();
if(mFilmStripIsPaused)
{
mFilmStripIsPaused = false;
mFilmStripView.onResume();
}
}
private void setStageViewMode(StageViewMode stageviewmode) {
if(mViewMode == ViewMode.MODE_STAGE_VIEW && stageviewmode != mCurrentStageMode) {
if(StageViewMode.STAGE_MODE_LOCAL_ONLY == stageviewmode) {
mCenterStageContainer.removeAllViews();
addVideoToCenterStage(mLocalVideoView);
mInset.setVisibility(8);
mCenterStageContainer.setVisibility(0);
mCurrentStageMode = stageviewmode;
} else if(StageViewMode.STAGE_MODE_LOCAL_AND_REMOTE == stageviewmode) {
mCenterStageContainer.removeAllViews();
addVideoToCenterStage(mCenterStageVideo);
LocalVideoView localvideoview = mLocalVideoView;
ViewGroup viewgroup = (ViewGroup)localvideoview.getParent();
if(viewgroup != mInsetVideo)
{
if(viewgroup != null)
viewgroup.removeView(localvideoview);
mInsetVideo.removeAllViews();
mInsetVideo.addView(localvideoview);
localvideoview.setLayoutMode(HangoutVideoView.LayoutMode.FIT);
mInsetVideo.invalidate();
mInsetVideo.requestLayout();
}
mInset.setVisibility(0);
mCenterStageContainer.setVisibility(0);
mCurrentStageMode = stageviewmode;
} else {
Log.error((new StringBuilder("Unknown stage layout mode: ")).append(stageviewmode).toString());
}
}
}
private void setState(HangoutTile.State state1)
{
HangoutTile.State state2;
Log.debug((new StringBuilder("Setting state to ")).append(state1).toString());
state2 = state;
state = state1;
if(state1.isInMeeting()) {
instructionsView.setVisibility(8);
hangoutLaunchJoinPanel.setVisibility(8);
mJoinButton.setVisibility(8);
progressBar.setVisibility(8);
progressText.setVisibility(8);
if(!$assertionsDisabled && !state.isInMeeting())
throw new AssertionError();
if(mViewMode != ViewMode.MODE_STAGE_VIEW) {
if(mViewMode == ViewMode.MODE_BRADY_VIEW)
stageLayoutContainer.setVisibility(8);
} else {
stageLayoutContainer.setVisibility(0);
bradyLayoutContainer.setVisibility(8);
mLocalVideoView.setVisibility(0);
mCenterStageVideo.setVisibility(0);
showFilmStrip();
}
updateHangoutViews();
if(isTileStarted)
if(state2.isInMeeting())
{
if(mViewMode == ViewMode.MODE_STAGE_VIEW)
{
mToastsView.onResume();
resumeFilmStrip();
} else
if(mViewMode != ViewMode.MODE_BRADY_VIEW);
} else
if(mViewMode == ViewMode.MODE_STAGE_VIEW)
{
mCenterStageVideo.onResume();
mLocalVideoView.onResume();
resumeFilmStrip();
mToastsView.onResume();
} else
{
mViewMode = ViewMode.MODE_BRADY_VIEW;
}
} else {
mToastsView.setVisibility(8);
mInset.setVisibility(8);
bradyLayoutContainer.setVisibility(8);
if(mViewMode == ViewMode.MODE_STAGE_VIEW)
{
setStageViewMode(StageViewMode.STAGE_MODE_LOCAL_ONLY);
} else
{
mViewMode = ViewMode.MODE_BRADY_VIEW;
}
mMessageContainer.setVisibility(8);
mInviteesContainer.setVisibility(8);
hangoutLaunchJoinPanel.setVisibility(0);
switch(state1) {
case SIGNING_IN:
if(!skipGreenRoom)
{
instructionsView.setVisibility(0);
mHandler.postDelayed(instructionsViewFadeOutRunnable, 5000L);
}
case SIGNIN_ERROR:
case READY_TO_LAUNCH_MEETING:
mJoinButton.setVisibility(8);
progressBar.setVisibility(0);
progressText.setVisibility(0);
progressText.setText(R.string.hangout_launch_signing_in);
break;
case ENTERING_MEETING:
mJoinButton.setVisibility(0);
Button button = mJoinButton;
boolean flag = StressMode.isEnabled();
boolean flag1 = false;
if(!flag)
flag1 = true;
button.setEnabled(flag1);
progressBar.setVisibility(8);
progressText.setVisibility(8);
break;
case IN_MEETING:
fadeOutInstructionsView();
mJoinButton.setVisibility(8);
progressBar.setVisibility(0);
progressText.setVisibility(0);
progressText.setText(R.string.hangout_launch_joining);
break;
default:
break;
}
}
}
private void showActionBar()
{
if(mActionBar != null)
{
mActionBar.show();
mActionBarDismissalTimer.start();
}
}
private void showError(GCommNativeWrapper.Error error, boolean flag) {
switch(error) {
case FATAL:
showError(R.string.hangout_fatal_error, flag);
break;
case INCONSISTENT_STATE:
showError(R.string.hangout_fatal_error, flag);
break;
case NETWORK:
showError(R.string.hangout_network_error, flag);
break;
case AUTHENTICATION:
showError(R.string.hangout_authentication_error, flag);
break;
case AUDIO_VIDEO_SESSION:
showError(R.string.hangout_audio_video_error, flag);
break;
case UNKNOWN:
showError(R.string.hangout_unknown_error, flag);
break;
default:
break;
}
}
private void showFilmStrip()
{
int i = GCommApp.getInstance(getContext()).getGCommNativeWrapper().getMeetingMemberCount();
if(!mIsHangoutLite && i > 1 && mFilmStripContainer.getVisibility() != 0)
mFilmStripContainer.startAnimation(mSlideInUp);
}
private void updateAudioMuteMenuButtonState(Boolean boolean1)
{
boolean flag;
if(boolean1 == null)
flag = GCommApp.getInstance(getContext()).isAudioMute();
else
flag = boolean1.booleanValue();
if(isRegistered)
{
boolean flag1;
boolean flag2;
boolean flag3;
if(!GCommApp.getInstance(getContext()).isInAHangoutWithMedia() || GCommApp.getInstance(getContext()).hasAudioFocus())
flag1 = true;
else
flag1 = false;
flag2 = mIsAudioMuted;
flag3 = false;
if(flag2 != flag)
{
flag3 = true;
mIsAudioMuted = flag;
}
if(mIsAudioEnabled != flag1)
{
flag3 = true;
mIsAudioEnabled = flag1;
}
if(flag3)
mActivity.invalidateOptionsMenu();
if(mViewMode == ViewMode.MODE_STAGE_VIEW)
{
if(mIsAudioMuted)
mLocalVideoView.showAudioMutedStatus();
else
mLocalVideoView.hideAudioMutedStatus();
} else
{
ViewMode _tmp = mViewMode;
ViewMode _tmp1 = ViewMode.MODE_BRADY_VIEW;
}
}
}
private void updateHangoutViews()
{
byte byte0 = 8;
GCommNativeWrapper gcommnativewrapper = GCommApp.getInstance(getContext()).getGCommNativeWrapper();
mIsHangoutLite = GCommApp.getInstance(getContext()).getGCommNativeWrapper().getIsHangoutLite();
mActivity.invalidateOptionsMenu();
if(null == gcommnativewrapper || null == hangoutInfo) {
setStageViewMode(StageViewMode.STAGE_MODE_LOCAL_ONLY);
return;
}
int i;
boolean flag;
boolean flag1;
boolean flag2;
i = gcommnativewrapper.getMeetingMemberCount();
flag = gcommnativewrapper.getHadSomeConnectedParticipantInPast();
if(hangoutInfo.getLaunchSource() == Hangout.LaunchSource.Creation && hangoutInfo.getRingInvitees())
flag1 = true;
else
flag1 = false;
if(state != null && state.isInMeeting())
flag2 = true;
else
flag2 = false;
if(!flag) {
if(flag1 && flag2) {
Intent intent = ((Activity)getContext()).getIntent();
if(intent.hasExtra("audience") || gcommnativewrapper.getHadSomeConnectedParticipantInPast()) {
AudienceData audiencedata = (AudienceData)intent.getParcelableExtra("audience");
mInviteesView.setInvitees(audiencedata, getAccount());
if(mInviteesView.getAvatarCount() > 0) {
mInviteesView.setVisibility(0);
flag1 = true;
} else {
flag1 = false;
}
} else {
flag1 = false;
}
if(flag1)
mInviteesContainer.setVisibility(0);
}
if(flag1)
mInviteesContainer.setVisibility(0);
} else {
mInviteesContainer.setVisibility(byte0);
}
mActionBarDismissalTimer.start();
Intent intent;
AudienceData audiencedata;
if(gcommnativewrapper.getHasSomeConnectedParticipant())
{
setStageViewMode(StageViewMode.STAGE_MODE_LOCAL_AND_REMOTE);
mMessageContainer.setVisibility(byte0);
mInviteesContainer.setVisibility(byte0);
} else
{
setStageViewMode(StageViewMode.STAGE_MODE_LOCAL_ONLY);
if(hangoutInfo.getLaunchSource() == Hangout.LaunchSource.Ring)
{
if(i == 1 && !flag)
{
mMessageView.setText(getResources().getString(R.string.hangout_already_ended));
mMessageContainer.setVisibility(0);
}
} else
if(flag && (hangoutInfo.getLaunchSource() == Hangout.LaunchSource.Ring || hangoutInfo.getRingInvitees()))
{
if(i == 1 && !flag)
{
mMessageView.setText(getResources().getString(R.string.hangout_no_one_joined));
mMessageContainer.setVisibility(0);
}
} else
{
String s = getWaitingMessage(flag);
if(state != null && state.isInMeeting())
byte0 = 0;
if(flag2)
if(flag1)
{
mInviteesMessageView.setText(s);
} else
{
mMessageView.setText(s);
mMessageContainer.setVisibility(byte0);
}
}
}
}
private void updateVideoMuteMenuButtonState(Boolean boolean1)
{
boolean flag;
if(boolean1 == null)
flag = GCommApp.getInstance(getContext()).isOutgoingVideoMute();
else
flag = boolean1.booleanValue();
if(isRegistered && mIsVideoMuted != flag)
{
mIsVideoMuted = flag;
mActivity.invalidateOptionsMenu();
}
return;
}
public final void hideChild(View view)
{
if(view == mFilmStripView)
hideFilmStrip();
}
public final boolean isTileStarted()
{
return isTileStarted;
}
public final void onActivityResult(int i, int j, Intent intent)
{
super.onActivityResult(i, j, intent);
if(i == 0 && j == -1 && intent != null)
mNeedToToastForInvite = true;
}
public void onChildViewAdded(View view, View view1)
{
if(view == mFilmStripView)
showFilmStrip();
}
public void onChildViewRemoved(View view, View view1)
{
if(view == mFilmStripView && mFilmStripView.getChildCount() <= 0)
hideFilmStrip();
}
public final void onCreate(Bundle bundle)
{
Object aobj[] = new Object[3];
aobj[0] = this;
aobj[1] = getContext();
aobj[2] = eventHandler;
Log.debug("HangoutTabletTile.onCreate: this=%s context=%s eventHandler=%s", aobj);
if(bundle != null)
stateBeforeStop = HangoutTile.State.values()[bundle.getInt("HangoutTile_state")];
mEnableStageIcons = Property.ENABLE_HANGOUT_STAGE_STATUS.getBoolean();
mActivity = (EsFragmentActivity)getContext();
mActionBar = mActivity.getActionBar();
((LayoutInflater)getContext().getSystemService("layout_inflater")).inflate(R.layout.hangout_tablet_tile, this, true);
mViewMode = ViewMode.MODE_STAGE_VIEW;
mCurrentStageMode = StageViewMode.STAGE_MODE_INVALID;
stageLayoutContainer = (RelativeLayout)findViewById(R.id.stage_container);
bradyLayoutContainer = (RelativeLayout)findViewById(R.id.brady_container);
mInset = (ScaledLayout)findViewById(R.id.inset);
mInsetVideo = (FrameLayout)findViewById(R.id.inset_video_container);
mLocalVideoView = new LocalVideoView(getContext(), null);
mLocalVideoView.setHangoutTile(this);
mFilmStripContainer = findViewById(R.id.filmstrip_container);
updateAudioMuteMenuButtonState(null);
if(Cameras.isAnyCameraAvailable())
updateVideoMuteMenuButtonState(null);
instructionsView = findViewById(R.id.hangout_green_room_instructions);
instructionsViewFadeOutRunnable = new Runnable() {
public final void run()
{
fadeOutInstructionsView();
}
};
hangoutLaunchJoinPanel = (ViewGroup)findViewById(R.id.hangout_launch_join_panel);
mJoinButton = (Button)findViewById(R.id.hangout_launch_join_button);
mJoinButton.setOnClickListener(new android.view.View.OnClickListener() {
public final void onClick(View view)
{
if(!$assertionsDisabled && state != HangoutTile.State.READY_TO_LAUNCH_MEETING)
throw new AssertionError(state);
setState(HangoutTile.State.ENTERING_MEETING);
if(hangoutInfo == null)
{
Intent intent = ((Activity)getContext()).getIntent();
GCommApp.getInstance(getContext()).createHangout(intent.getBooleanExtra("hangout_ring_invitees", false));
} else
{
GCommApp gcommapp = GCommApp.getInstance(getContext());
Hangout.Info info = hangoutInfo;
boolean flag;
if(hangoutInfo.getLaunchSource() == Hangout.LaunchSource.MissedCall)
flag = true;
else
flag = false;
gcommapp.enterHangout(info, flag, greenRoomParticipants, mHoaConsented);
}
}
});
progressBar = (ProgressBar)findViewById(R.id.hangout_launch_progress_bar);
progressText = (TextView)findViewById(R.id.hangout_launch_progress_text);
mToastsView = (ToastsView)findViewById(R.id.toasts_view);
mCenterStageContainer = (RelativeLayout)findViewById(R.id.center_stage_video_container);
mCenterStageVideo = new RemoteVideoView.CenterStageVideoView(getContext(), null);
mCenterStageVideo.setHangoutTile(this);
mFilmStripView = (TabletFilmStripView)findViewById(R.id.film_strip);
mFilmStripView.setHangoutTile(this);
mFilmStripView.setOnHierarchyChangeListener(this);
mMessageContainer = findViewById(R.id.message_container);
mMessageView = (TextView)findViewById(R.id.message);
mInviteesContainer = findViewById(R.id.invitees_container);
mInviteesMessageView = (TextView)findViewById(R.id.invitees_message);
mInviteesView = (HangoutInviteesView)findViewById(R.id.invitees_view);
mSlideInUp = AnimationUtils.loadAnimation(getContext(), R.anim.slide_in_up_self);
mFilmStripAnimOut = AnimationUtils.loadAnimation(getContext(), R.anim.slide_out_down_self);
mActionBarDismissalTimer = new CountDownTimer(5000L, 5000L) {
public final void onFinish()
{
hideActionBar();
}
public final void onTick(long l)
{
}
};
mFilmStripPauseTimer = new CountDownTimer(30000L, 30000L) {
public final void onFinish()
{
pauseFilmStrip();
}
public final void onTick(long l)
{
}
};
if(mActionBar != null)
mActionBar.addOnMenuVisibilityListener(new android.app.ActionBar.OnMenuVisibilityListener() {
public final void onMenuVisibilityChanged(boolean flag)
{
if(flag)
mActionBarDismissalTimer.cancel();
else
mActionBarDismissalTimer.start();
}
});
mFilmStripAnimOut.setAnimationListener(new android.view.animation.Animation.AnimationListener() {
public final void onAnimationEnd(Animation animation)
{
if(mFilmStripContainer != null)
{
mFilmStripContainer.setVisibility(8);
mFilmStripPauseTimer.start();
}
}
public final void onAnimationRepeat(Animation animation)
{
}
public final void onAnimationStart(Animation animation)
{
}
});
mSlideInUp.setAnimationListener(new android.view.animation.Animation.AnimationListener() {
public final void onAnimationEnd(Animation animation)
{
}
public final void onAnimationRepeat(Animation animation)
{
}
public final void onAnimationStart(Animation animation)
{
resumeFilmStrip();
if(mFilmStripContainer != null)
mFilmStripContainer.setVisibility(0);
}
});
mInsetVideo.setOnClickListener(new android.view.View.OnClickListener() {
public final void onClick(View view)
{
if(mViewMode == ViewMode.MODE_STAGE_VIEW)
HangoutTabletTile.access$1600(HangoutTabletTile.this);
}
});
mCenterStageContainer.setOnTouchListener(new CenterStageTouchListener(getContext()));
mCenterStageVideo.setOnDragListener(new android.view.View.OnDragListener() {
private boolean onTarget(int i, int j)
{
int k = mCenterStageVideo.getWidth();
int l = mCenterStageVideo.getHeight();
int i1 = l / 4;
boolean flag;
if(i >= 0 && i + 0 <= k && j >= 0 && j + i1 <= l)
flag = true;
else
flag = false;
return flag;
}
public final boolean onDrag(View view, DragEvent dragevent)
{
float f = 1.0F;
RemoteVideoView.ParticipantVideoView participantvideoview = null;
Object obj = dragevent.getLocalState();
boolean flag = obj instanceof RemoteVideoView.ParticipantVideoView;
if(flag)
participantvideoview = (RemoteVideoView.ParticipantVideoView)obj;
boolean flag1 = false;
switch(dragevent.getAction()) {
case 1:
case 6:
if(participantvideoview == null)
{
flag1 = false;
} else
{
int j = getResources().getColor(R.color.hangout_drag_drop_off_target);
mCenterStageVideo.setBackgroundColor(j);
RemoteVideoView.CenterStageVideoView centerstagevideoview1 = mCenterStageVideo;
if(j != 0)
f = 0.85F;
centerstagevideoview1.setAlpha(f);
mCenterStageVideo.invalidate();
flag1 = true;
}
break;
case 2:
case 5:
int i;
RemoteVideoView.CenterStageVideoView centerstagevideoview;
if(onTarget((int)dragevent.getX(), (int)dragevent.getY()))
i = getResources().getColor(R.color.hangout_drag_drop_on_target);
else
i = getResources().getColor(R.color.hangout_drag_drop_off_target);
mCenterStageVideo.setBackgroundColor(i);
centerstagevideoview = mCenterStageVideo;
if(i != 0)
f = 0.85F;
centerstagevideoview.setAlpha(f);
mCenterStageVideo.invalidate();
flag1 = true;
break;
case 3:
flag1 = onTarget((int)dragevent.getX(), (int)dragevent.getY());
break;
case 4:
mCenterStageVideo.setBackgroundColor(0);
mCenterStageVideo.setAlpha(f);
mCenterStageVideo.invalidate();
if(dragevent.getResult())
mFilmStripView.requestPinVideo(participantvideoview);
flag1 = true;
break;
default:
flag1 = false;
break;
}
return flag1;
}
});
final Animation animOut = AnimationUtils.loadAnimation(getContext(), R.anim.fade_out);
final Animation animIn = AnimationUtils.loadAnimation(getContext(), R.anim.fade_in);
animOut.setDuration(500L);
animIn.setDuration(500L);
mCenterStageVideo.setVideoChangeListener(new RemoteVideoView.VideoChangeListener() {
public final void onVideoSourceAboutToChange() {
if(mSkipFirst) {
mSkipFirst = false;
return;
}
if(!mIsActive)
{
mIsActive = true;
final ImageView imageview = mCenterStageVideo.getSnapshotView();
imageview.setImageBitmap(mCenterStageVideo.getBitmap());
imageview.setVisibility(0);
mCenterStageVideo.hideVideoSurface();
mCenterStageVideo.hidePinnedStatus();
mCenterStageVideo.hideAudioMutedStatus();
animOut.setAnimationListener(new android.view.animation.Animation.AnimationListener() {
public final void onAnimationEnd(Animation animation)
{
imageview.setVisibility(8);
mCenterStageVideo.startAnimation(animIn);
mCenterStageVideo.showVideoSurface();
mIsActive = false;
HangoutTabletTile.access$3000(HangoutTabletTile.this, mCenterStageVideo.getCurrentVideoSource());
}
public final void onAnimationRepeat(Animation animation)
{
}
public final void onAnimationStart(Animation animation)
{
}
});
imageview.startAnimation(animOut);
}
}
private volatile boolean mIsActive;
private boolean mSkipFirst = true;
});
}
public final void onCreateOptionsMenu(Menu menu, MenuInflater menuinflater)
{
super.onCreateOptionsMenu(menu, menuinflater);
menuinflater.inflate(R.menu.hangout_exit_menu, menu);
menuinflater.inflate(R.menu.hangout_camera_switch_menu, menu);
menuinflater.inflate(R.menu.hangout_audio_toggle_menu, menu);
menuinflater.inflate(R.menu.hangout_video_toggle_menu, menu);
menuinflater.inflate(R.menu.hangout_invite_people_menu, menu);
menu.findItem(R.id.hangout_video_toggle_menu_item).setVisible(Cameras.isAnyCameraAvailable());
MenuItem menuitem = menu.findItem(R.id.hangout_menu_switch_camera);
boolean flag;
if(Cameras.isFrontFacingCameraAvailable() && Cameras.isRearFacingCameraAvailable())
flag = true;
else
flag = false;
menuitem.setVisible(flag);
}
public final boolean onOptionsItemSelected(MenuItem menuitem)
{
boolean flag = true;
int i = menuitem.getItemId();
if(i == R.id.hangout_exit_menu_item)
{
hideActionBar();
Log.debug((new StringBuilder("HangoutTabletTile onExit with state:")).append(state).toString());
if(state != null)
if(state.isInMeeting())
{
Log.debug("Setting userRequestedMeetingExit to true");
GCommApp.getInstance(getContext()).exitMeeting();
} else
{
((HangoutTile.HangoutTileActivity)getContext()).stopHangoutTile();
Log.debug("Did not set userRequestedMeetingExit");
}
} else
if(i == R.id.hangout_menu_switch_camera)
{
GCommApp.sendEmptyMessage(getContext(), 201);
hideActionBar();
} else
if(i == R.id.hangout_audio_toggle_menu_item)
{
GCommApp gcommapp = GCommApp.getInstance(getContext());
boolean flag1;
if(!gcommapp.isAudioMute())
flag1 = flag;
else
flag1 = false;
gcommapp.setAudioMute(flag1);
hideActionBar();
} else
if(i == R.id.hangout_video_toggle_menu_item)
{
GCommApp.sendEmptyMessage(getContext(), 202);
hideActionBar();
} else
if(i == R.id.hangout_invite_menu_item)
{
hideActionBar();
inviteMoreParticipants();
} else
{
flag = super.onOptionsItemSelected(menuitem);
}
return flag;
}
public final void onPause()
{
Object aobj[] = new Object[3];
aobj[0] = this;
aobj[1] = getContext();
aobj[2] = eventHandler;
Log.debug("HangoutTabletTile.onPause: this=%s context=%s eventHandler=%s", aobj);
stateBeforeStop = state;
state = null;
}
public final void onPrepareOptionsMenu(Menu menu)
{
super.onPrepareOptionsMenu(menu);
MenuItem menuitem = menu.findItem(R.id.hangout_video_toggle_menu_item);
boolean flag;
MenuItem menuitem1;
MenuItem menuitem2;
if(menuitem.isVisible())
{
mIsVideoMuted = GCommApp.getInstance(getContext()).isOutgoingVideoMute();
int k;
int l;
if(mIsVideoMuted)
{
k = R.drawable.hangout_ic_menu_video_unmute;
l = R.string.hangout_menu_video_unmute;
} else
{
k = R.drawable.hangout_ic_menu_video_mute;
l = R.string.hangout_menu_video_mute;
}
menuitem.setIcon(k);
menuitem.setTitle(l);
}
menuitem1 = menu.findItem(R.id.hangout_audio_toggle_menu_item);
if(menuitem1.isVisible())
{
mIsAudioMuted = GCommApp.getInstance(getContext()).isAudioMute();
int i;
int j;
if(mIsAudioMuted)
{
i = R.drawable.hangout_ic_menu_audio_unmute;
j = R.string.hangout_menu_audio_unmute;
} else
{
i = R.drawable.hangout_ic_menu_audio_mute;
j = R.string.hangout_menu_audio_mute;
}
menuitem1.setIcon(i);
menuitem1.setTitle(j);
menuitem1.setEnabled(mIsAudioEnabled);
}
menuitem2 = menu.findItem(R.id.hangout_invite_menu_item);
if(!mIsHangoutLite)
flag = true;
else
flag = false;
menuitem2.setVisible(flag);
}
public final void onResume()
{
Object aobj[] = new Object[3];
aobj[0] = this;
aobj[1] = getContext();
aobj[2] = eventHandler;
Log.debug("HangoutTabletTile.onResume: this=%s context=%s eventHandler=%s", aobj);
}
public final void onSaveInstanceState(Bundle bundle)
{
HangoutTile.State state1;
Object aobj[];
if(state == null)
state1 = stateBeforeStop;
else
state1 = state;
aobj = new Object[4];
aobj[0] = this;
aobj[1] = getContext();
aobj[2] = eventHandler;
aobj[3] = state1;
Log.debug("HangoutTabletTile.onSaveInstanceState: this=%s context=%s eventHandler=%s stateToSave:%s", aobj);
bundle.putInt("HangoutTile_state", state1.ordinal());
}
public final void onStart()
{
Object aobj[] = new Object[3];
aobj[0] = this;
aobj[1] = getContext();
aobj[2] = eventHandler;
Log.debug("HangoutTabletTile.onStart: this=%s context=%s eventHandler=%s", aobj);
GCommApp.getInstance(getContext()).startingHangoutActivity(mActivity);
}
public final void onStop()
{
Object aobj[] = new Object[3];
aobj[0] = this;
aobj[1] = getContext();
aobj[2] = eventHandler;
Log.debug("HangoutTabletTile.onStop: this=%s context=%s eventHandler=%s", aobj);
GCommApp.getInstance(getContext()).stoppingHangoutActivity();
}
public final void onTilePause()
{
Object aobj[] = new Object[3];
aobj[0] = this;
aobj[1] = getContext();
aobj[2] = eventHandler;
Log.debug("HangoutTabletTile.onTilePause: this=%s context=%s eventHandler=%s", aobj);
if(mHangoutSupportStatus == Hangout.SupportStatus.SUPPORTED)
{
if(state != null && state.isInMeeting())
{
if(mViewMode == ViewMode.MODE_STAGE_VIEW)
{
mCenterStageVideo.onPause();
mToastsView.onPause();
pauseFilmStrip();
} else
if(mViewMode != ViewMode.MODE_BRADY_VIEW);
} else
{
mHandler.removeCallbacks(instructionsViewFadeOutRunnable);
}
if(mViewMode == ViewMode.MODE_STAGE_VIEW)
{
mLocalVideoView.onPause();
mFilmStripView.dismissParticipantMenuDialog();
mCurrentStageMode = StageViewMode.STAGE_MODE_INVALID;
} else
{
ViewMode _tmp = mViewMode;
ViewMode _tmp1 = ViewMode.MODE_BRADY_VIEW;
}
checkAndDismissCallgrokLogUploadProgressDialog();
isTileStarted = false;
}
}
public final void onTileResume()
{
Object aobj[] = new Object[4];
aobj[0] = this;
aobj[1] = getContext();
aobj[2] = eventHandler;
aobj[3] = hangoutInfo;
Log.debug("HangoutTabletTile.onTileResume: this=%s context=%s eventHandler=%s hangoutInfo=%s", aobj);
if(!$assertionsDisabled && mAccount == null)
throw new AssertionError();
showActionBar();
mHangoutSupportStatus = Hangout.getSupportedStatus(getContext(), mAccount);
if(Hangout.SupportStatus.SUPPORTED != mHangoutSupportStatus) {
showError(mHangoutSupportStatus.getErrorMessage(getContext()), true);
return;
}
isTileStarted = true;
setState(HangoutTile.State.START);
if(hangoutInfo == null || hangoutInfo.getRoomType() != Hangout.RoomType.UNKNOWN) {
if(mNeedToToastForInvite)
{
mToastsView.addToast(R.string.hangout_invites_sent);
mNeedToToastForInvite = false;
}
if(!GCommApp.getInstance(getContext()).hasAudioFocus()) {
if(GCommApp.getInstance(getContext()).isInAHangoutWithMedia())
mToastsView.addToast(R.string.hangout_audiofocus_loss_warning);
} else {
((Activity)getContext()).setVolumeControlStream(0);
}
if(GCommApp.getInstance(getContext()).isInHangout(hangoutInfo))
setState(HangoutTile.State.IN_MEETING);
else
if(stateBeforeStop != null && stateBeforeStop.isInMeeting())
{
stateBeforeStop = null;
if(ExitHistory.exitReported(getContext(), hangoutInfo))
{
((HangoutTile.HangoutTileActivity)getContext()).stopHangoutTile();
Log.debug("Stopping hangout tile. Exit from hangout already reported.");
} else
{
if(ExitHistory.exitedNormally(getContext(), hangoutInfo))
{
showError(R.string.hangout_exited, true);
} else
{
GCommNativeWrapper.Error error = ExitHistory.getError(getContext(), hangoutInfo);
if(error != null)
showError(error, true);
else
showError(R.string.hangout_exit_generic, true);
}
ExitHistory.recordExitReported(getContext(), hangoutInfo);
}
} else
if(GCommApp.getInstance(getContext()).isInAHangout())
showError(R.string.hangout_launch_already_in_hangout, true);
else
if(getGCommNativeWrapper().getCurrentState() == GCommNativeWrapper.GCommAppState.SIGNED_IN)
{
eventHandler.onSignedIn(GCommApp.getInstance(getContext()).getGCommNativeWrapper().getUserJid());
} else
{
GCommApp.getInstance(getContext()).disconnect();
setState(HangoutTile.State.SIGNING_IN);
GCommApp.getInstance(getContext()).signinUser(getAccount());
}
} else {
showError(R.string.hangout_not_supported_type, true);
return;
}
}
public final void onTileStart()
{
Object aobj[] = new Object[3];
aobj[0] = this;
aobj[1] = getContext();
aobj[2] = eventHandler;
Log.debug("HangoutTabletTile.onTileStart: this=%s context=%s eventHandler=%s", aobj);
if(mAccount == null)
{
throw new RuntimeException("setHangoutInfo must be called before switching to HangoutTabletTile");
} else
{
GCommApp.getInstance(getContext()).registerForEvents(getContext(), eventHandler, false);
isRegistered = true;
return;
}
}
public final void onTileStop()
{
Object aobj[] = new Object[3];
aobj[0] = this;
aobj[1] = getContext();
aobj[2] = eventHandler;
Log.debug("HangoutTabletTile.onTileStop: this=%s context=%s eventHandler=%s", aobj);
mActionBarDismissalTimer.cancel();
isRegistered = false;
GCommApp.getInstance(getContext()).unregisterForEvents(getContext(), eventHandler, false);
}
public void setParticipants(HashMap hashmap, HashSet hashset)
{
}
public final void showChild(View view)
{
if(view == mFilmStripView)
showFilmStrip();
}
public final void transfer()
{
AudienceData audiencedata = new AudienceData(null, null);
Log.debug("Transfer hangout");
GCommApp.getInstance(getContext()).getGCommNativeWrapper().inviteToMeeting(audiencedata, "TRANSFER", true, false);
mToastsView.addToast(R.string.hangout_transfer_sent);
}
public final void updateMainVideoStreaming()
{
if(mViewMode == ViewMode.MODE_STAGE_VIEW && state != null && state.isInMeeting())
mCenterStageVideo.updateVideoStreaming();
}
static void access$1600(HangoutTabletTile hangouttablettile)
{
if(hangouttablettile.mActionBar != null)
if(hangouttablettile.mActionBar.isShowing())
hangouttablettile.hideActionBar();
else
hangouttablettile.showActionBar();
return;
}
static void access$1700(HangoutTabletTile hangouttablettile, boolean flag)
{
// TODO
}
static void access$3000(HangoutTabletTile hangouttablettile, MeetingMember meetingmember)
{
if(hangouttablettile.mViewMode == ViewMode.MODE_STAGE_VIEW && hangouttablettile.mEnableStageIcons)
{
if(GCommApp.getInstance(hangouttablettile.getContext()).getSelectedVideoSource() == null)
hangouttablettile.mCenterStageVideo.hidePinnedStatus();
else
hangouttablettile.mCenterStageVideo.showPinnedStatus();
if(hangouttablettile.mFilmStripView.isAudioMuted(meetingmember))
hangouttablettile.mCenterStageVideo.showAudioMutedStatus();
else
hangouttablettile.mCenterStageVideo.hideAudioMutedStatus();
}
return;
}
static void access$100(HangoutTabletTile hangouttablettile, MeetingMember meetingmember)
{
if(hangouttablettile.mViewMode == ViewMode.MODE_STAGE_VIEW)
{
if(hangouttablettile.mFilmStripIsPaused)
{
GCommApp gcommapp = GCommApp.getInstance(hangouttablettile.getContext());
if(gcommapp.getSelectedVideoSource() == meetingmember)
{
gcommapp.setSelectedVideoSource(null);
hangouttablettile.updateMainVideoStreaming();
}
}
} else
{
ViewMode _tmp = hangouttablettile.mViewMode;
ViewMode _tmp1 = ViewMode.MODE_BRADY_VIEW;
}
return;
}
static void access$1400(HangoutTabletTile hangouttablettile, MeetingMember meetingmember, boolean flag)
{
if(meetingmember != null && !meetingmember.isSelf()) {
if(hangouttablettile.mViewMode == ViewMode.MODE_STAGE_VIEW)
{
if(hangouttablettile.mEnableStageIcons && hangouttablettile.mCenterStageVideo.getCurrentVideoSource() == meetingmember)
if(flag)
hangouttablettile.mCenterStageVideo.showAudioMutedStatus();
else
hangouttablettile.mCenterStageVideo.hideAudioMutedStatus();
} else
{
hangouttablettile.mViewMode = ViewMode.MODE_BRADY_VIEW;
}
}
}
//==================================================================================================================
// Inner class
//==================================================================================================================
private enum ViewMode {
MODE_STAGE_VIEW,
MODE_BRADY_VIEW;
}
private static enum StageViewMode {
STAGE_MODE_INVALID,
STAGE_MODE_LOCAL_ONLY,
STAGE_MODE_LOCAL_AND_REMOTE;
}
private class AlertDialogListener implements AlertFragmentDialog.AlertDialogListener {
public final void onDialogCanceled(String s)
{
}
public final void onDialogListClick(int i, Bundle bundle)
{
}
public final void onDialogNegativeClick(String s)
{
}
public final void onDialogPositiveClick(Bundle bundle, String s)
{
getHangoutTileActivity().stopHangoutTile();
Intent intent = new Intent("android.intent.action.VIEW");
intent.addFlags(0x80000);
intent.setData(Uri.parse("market://details?id=com.google.android.apps.plus"));
intent.addFlags(0x14000000);
getContext().startActivity(intent);
}
}
private final class CenterStageTouchListener extends TwoPointerGestureDetector {
CenterStageTouchListener(Context context) {
super(context);
}
public final boolean onFling(MotionEvent motionevent, MotionEvent motionevent1, float f, float f1) {
int i = getHeight() / 2;
int j = (int)motionevent.getY();
if(f1 <= 0.0F || f1 <= Math.abs(f)) {
if(f1 < 0.0F && f1 < -Math.abs(f))
{
if(j >= i)
{
showChild(mFilmStripView);
return true;
}
if(j <= i)
{
hideActionBar();
return true;
}
}
return super.onFling(motionevent, motionevent1, f, f1);
} else {
if(j < i) {
if(j <= i)
{
showActionBar();
return true;
}
} else {
hideChild(mFilmStripView);
return true;
}
return false;
}
}
public final boolean onSingleTapConfirmed(MotionEvent motionevent)
{
HangoutTabletTile.access$1600(HangoutTabletTile.this);
return true;
}
public final boolean onTwoPointerSwipe(android.view.MotionEvent.PointerCoords pointercoords, android.view.MotionEvent.PointerCoords pointercoords1, float f, float f1)
{
if(Math.abs(pointercoords.y - pointercoords1.y) >= 250F) {
return super.onTwoPointerSwipe(pointercoords, pointercoords1, f, f1);
} else {
int i = getWidth();
int j = (int)pointercoords.x;
int k = (int)pointercoords1.x;
if(j >= k) {
if(j > i / 2 && k < i / 8)
{
HangoutTabletTile.access$1700(HangoutTabletTile.this, false);
return true;
}
return false;
} else {
if(j >= i / 2 || k <= (i * 7) / 8) {
return super.onTwoPointerSwipe(pointercoords, pointercoords1, f, f1);
} else {
HangoutTabletTile.access$1700(HangoutTabletTile.this, true);
return true;
}
}
}
}
}
final class EventHandler extends GCommEventHandler
{
private void notifyListeners()
{
if(listeners != null)
{
Iterator iterator = listeners.iterator();
while(iterator.hasNext())
((Tile.ParticipantPresenceListener)iterator.next()).onParticipantPresenceChanged();
}
}
public final void onAudioMuteStateChanged(MeetingMember meetingmember, boolean flag)
{
super.onAudioMuteStateChanged(meetingmember, flag);
if(meetingmember == null || meetingmember.isSelf())
updateAudioMuteMenuButtonState(Boolean.valueOf(flag));
else
HangoutTabletTile.access$1400(HangoutTabletTile.this, meetingmember, flag);
}
public final void onCallgrokLogUploadCompleted()
{
checkAndDismissCallgrokLogUploadProgressDialog();
getHangoutTileActivity().stopHangoutTile();
}
public final void onError(GCommNativeWrapper.Error error)
{
super.onError(error);
Log.info("HangoutTabletTile$EventHandler.onError(%s) %s", new Object[] {
error, this
});
if(error == GCommNativeWrapper.Error.AUTHENTICATION)
{
if(!$assertionsDisabled && !state.isSigningIn())
throw new AssertionError(state);
Object aobj[] = new Object[2];
} else
{
showError(error, true);
}
if(hangoutInfo != null)
ExitHistory.recordErrorExit(getContext(), hangoutInfo, error, true);
}
public final void onHangoutCreated(Hangout.Info info)
{
super.onHangoutCreated(info);
hangoutInfo = info;
Log.debug((new StringBuilder("HangoutTabletTile.onHangoutCreated: ")).append(info).toString());
updateHangoutViews();
GCommApp.getInstance(getContext()).enterHangout(info, true, greenRoomParticipants, mHoaConsented);
}
public final void onHangoutWaitTimeout(Hangout.Info info)
{
super.onHangoutWaitTimeout(info);
mMessageView.setText(getResources().getString(R.string.hangout_no_one_joined));
}
public final void onMeetingEnterError(GCommNativeWrapper.MeetingEnterError meetingentererror)
{
super.onMeetingEnterError(meetingentererror);
// TODO
}
public final void onMeetingExited(boolean flag)
{
Object aobj[] = new Object[3];
aobj[0] = this;
aobj[1] = HangoutTabletTile.this;
aobj[2] = Boolean.valueOf(flag);
Log.debug("HangoutTabletTile$EventHandler.onMeetingExited: this=%s, tile=%s clientInitiated=%s", aobj);
onMeetingExited(flag);
if(isRegistered && state != null)
{
if(flag)
{
if(StringUtils.getDomain(mAccount.getName()).equals("google.com"))
{
getGCommNativeWrapper().uploadCallgrokLog();
ProgressFragmentDialog.newInstance(getResources().getString(R.string.hangout_log_upload_title), getResources().getString(R.string.hangout_log_upload_message)).show(mActivity.getSupportFragmentManager(), "log_upload");
} else
{
getHangoutTileActivity().stopHangoutTile();
}
} else
{
showError(R.string.hangout_exited, true);
}
ExitHistory.recordNormalExit(getContext(), hangoutInfo, true);
}
}
public final void onMeetingMediaStarted()
{
onMeetingMediaStarted();
if(isRegistered)
{
setState(HangoutTile.State.IN_MEETING);
updateHangoutViews();
updateAudioMuteMenuButtonState(null);
showFilmStrip();
GCommApp.getInstance(getContext()).getGCommService().showHangoutNotification(getHangoutTileActivity().getHangoutNotificationIntent());
getHangoutTileActivity().onMeetingMediaStarted();
}
}
public final void onMeetingMemberEntered(MeetingMember meetingmember)
{
super.onMeetingMemberEntered(meetingmember);
updateHangoutViews();
notifyListeners();
}
public final void onMeetingMemberExited(MeetingMember meetingmember)
{
super.onMeetingMemberExited(meetingmember);
updateHangoutViews();
notifyListeners();
HangoutTabletTile.access$100(HangoutTabletTile.this, meetingmember);
}
public final void onMeetingMemberPresenceConnectionStatusChanged(MeetingMember meetingmember)
{
super.onMeetingMemberPresenceConnectionStatusChanged(meetingmember);
updateHangoutViews();
notifyListeners();
}
public final void onMucEntered(MeetingMember meetingmember)
{
super.onMucEntered(meetingmember);
sendInvites();
}
public final void onRemoteMute(MeetingMember meetingmember, MeetingMember meetingmember1)
{
if(meetingmember.isSelf())
updateAudioMuteMenuButtonState(Boolean.valueOf(true));
else
HangoutTabletTile.access$1400(HangoutTabletTile.this, meetingmember, true);
}
public final void onSignedIn(String s)
{
boolean flag = true;
super.onSignedIn(s);
Object aobj[] = new Object[2];
aobj[0] = this;
aobj[1] = HangoutTabletTile.this;
Log.debug("HangoutTabletTile$EventHandler.onSignedIn: this=%s, tile=%s", aobj);
if(!$assertionsDisabled && !state.isSigningIn())
throw new AssertionError(state);
if(isRegistered)
if(skipGreenRoom)
{
setState(HangoutTile.State.ENTERING_MEETING);
if(hangoutInfo == null)
{
Intent intent = ((Activity)getContext()).getIntent();
GCommApp.getInstance(getContext()).createHangout(intent.getBooleanExtra("hangout_ring_invitees", false));
} else
{
GCommApp gcommapp = GCommApp.getInstance(getContext());
Hangout.Info info = hangoutInfo;
if(hangoutInfo.getLaunchSource() != Hangout.LaunchSource.MissedCall)
flag = false;
gcommapp.enterHangout(info, flag, greenRoomParticipants, mHoaConsented);
}
} else
{
setState(HangoutTile.State.READY_TO_LAUNCH_MEETING);
}
}
public final void onSignedOut()
{
super.onSignedOut();
Log.info("HangoutTabletTile$EventHandler.onSignedOut");
if(isRegistered)
{
showError(R.string.hangout_signin_timeout_error, true);
setState(HangoutTile.State.SIGNIN_ERROR);
}
}
public final void onSigninTimeOutError()
{
super.onSigninTimeOutError();
Log.info((new StringBuilder("HangoutTabletTile$EventHandler.onSigninTimeOutError: this=")).append(this).toString());
if(isRegistered)
{
showError(R.string.hangout_signin_timeout_error, true);
setState(HangoutTile.State.SIGNIN_ERROR);
}
}
public final void onVideoMuteChanged(boolean flag)
{
updateVideoMuteMenuButtonState(Boolean.valueOf(flag));
}
public final void onVolumeChanged(MeetingMember meetingmember, int i)
{
if(meetingmember == null || meetingmember.isSelf())
updateAudioMuteMenuButtonState(Boolean.valueOf(false));
else
HangoutTabletTile.access$1400(HangoutTabletTile.this, meetingmember, false);
}
}
}