This happened if the state service got connected while such a fragment was
not visible (anymore or at all).
{
private int mColorIsolate;
private int mColorBlock;
{
private int mColorIsolate;
private int mColorBlock;
+ private boolean mVisible;
private TextView mStateView;
private TextView mAction;
private LinearLayout mButton;
private TextView mStateView;
private TextView mAction;
private LinearLayout mButton;
public void onServiceConnected(ComponentName name, IBinder service)
{
mService = ((VpnStateService.LocalBinder)service).getService();
public void onServiceConnected(ComponentName name, IBinder service)
{
mService = ((VpnStateService.LocalBinder)service).getService();
- mService.registerListener(ImcStateFragment.this);
+ if (mVisible)
+ {
+ mService.registerListener(ImcStateFragment.this);
+ updateView();
+ }
public void onResume()
{
super.onResume();
public void onResume()
{
super.onResume();
if (mService != null)
{
mService.registerListener(this);
if (mService != null)
{
mService.registerListener(this);
public void onPause()
{
super.onPause();
public void onPause()
{
super.onPause();
if (mService != null)
{
mService.unregisterListener(this);
if (mService != null)
{
mService.unregisterListener(this);
{
private static final String KEY_ERROR_CONNECTION_ID = "error_connection_id";
{
private static final String KEY_ERROR_CONNECTION_ID = "error_connection_id";
+ private boolean mVisible;
private TextView mProfileNameView;
private TextView mProfileView;
private TextView mStateView;
private TextView mProfileNameView;
private TextView mProfileView;
private TextView mStateView;
public void onServiceConnected(ComponentName name, IBinder service)
{
mService = ((VpnStateService.LocalBinder)service).getService();
public void onServiceConnected(ComponentName name, IBinder service)
{
mService = ((VpnStateService.LocalBinder)service).getService();
- mService.registerListener(VpnStateFragment.this);
- updateView();
+ if (mVisible)
+ {
+ mService.registerListener(VpnStateFragment.this);
+ updateView();
+ }
}
};
private OnClickListener mDisconnectListener = new OnClickListener()
}
};
private OnClickListener mDisconnectListener = new OnClickListener()
public void onStart()
{
super.onStart();
public void onStart()
{
super.onStart();
if (mService != null)
{
mService.registerListener(this);
if (mService != null)
{
mService.registerListener(this);
public void onStop()
{
super.onStop();
public void onStop()
{
super.onStop();
if (mService != null)
{
mService.unregisterListener(this);
if (mService != null)
{
mService.unregisterListener(this);