Skip to content
Snippets Groups Projects
Commit b0f1e881 authored by Geoffrey Métais's avatar Geoffrey Métais
Browse files

Restrict login canceled listeners to network

parent 442134d8
No related branches found
No related tags found
No related merge requests found
......@@ -24,10 +24,7 @@ package org.videolan.vlc.gui.browser;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
......@@ -40,7 +37,6 @@ import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v4.util.SimpleArrayMap;
import android.support.v7.preference.PreferenceManager;
import android.support.v7.view.ActionMode;
......@@ -67,7 +63,6 @@ import org.videolan.vlc.VLCApplication;
import org.videolan.vlc.gui.InfoActivity;
import org.videolan.vlc.gui.MainActivity;
import org.videolan.vlc.gui.dialogs.SavePlaylistDialog;
import org.videolan.vlc.gui.dialogs.VlcLoginDialog;
import org.videolan.vlc.gui.helpers.UiTools;
import org.videolan.vlc.gui.view.ContextMenuRecyclerView;
import org.videolan.vlc.gui.view.SwipeRefreshLayout;
......@@ -112,7 +107,7 @@ public abstract class BaseBrowserFragment extends MediaBrowserFragment implement
protected MediaWrapper mCurrentMedia;
protected int mSavedPosition = -1, mFavorites = 0;
public boolean mRoot;
private boolean goBack = false;
protected boolean goBack = false;
private final boolean mShowHiddenFiles;
private SimpleArrayMap<MediaLibraryItem, ArrayList<MediaLibraryItem>> mFoldersContentLists = new SimpleArrayMap<>();
......@@ -192,12 +187,6 @@ public abstract class BaseBrowserFragment extends MediaBrowserFragment implement
refresh();
}
@Override
public void onStart() {
super.onStart();
LocalBroadcastManager.getInstance(VLCApplication.getAppContext()).registerReceiver(mLocalReceiver, new IntentFilter(VlcLoginDialog.ACTION_DIALOG_CANCELED));
}
@Override
public void onResume() {
super.onResume();
......@@ -213,7 +202,6 @@ public abstract class BaseBrowserFragment extends MediaBrowserFragment implement
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (mRoot) {
LocalBroadcastManager.getInstance(VLCApplication.getAppContext()).unregisterReceiver(mLocalReceiver);
runOnBrowserThread(new Runnable() {
@Override
public void run() {
......@@ -228,7 +216,6 @@ public abstract class BaseBrowserFragment extends MediaBrowserFragment implement
public void onStop(){
super.onStop();
LocalBroadcastManager.getInstance(VLCApplication.getAppContext()).unregisterReceiver(mLocalReceiver);
runOnBrowserThread(new Runnable() {
@Override
public void run() {
......@@ -920,14 +907,4 @@ public abstract class BaseBrowserFragment extends MediaBrowserFragment implement
public int sortDirection(int sortby) {
return mAdapter.sortDirection(sortby);
}
private BroadcastReceiver mLocalReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (isResumed())
goBack();
else
goBack = true;
}
};
}
......@@ -32,6 +32,7 @@ import android.net.NetworkInfo;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.content.LocalBroadcastManager;
import android.view.MenuItem;
import android.view.View;
......@@ -40,6 +41,7 @@ import org.videolan.medialibrary.media.MediaWrapper;
import org.videolan.vlc.R;
import org.videolan.vlc.VLCApplication;
import org.videolan.vlc.gui.dialogs.NetworkServerDialog;
import org.videolan.vlc.gui.dialogs.VlcLoginDialog;
import org.videolan.vlc.media.MediaDatabase;
import org.videolan.vlc.util.AndroidDevices;
......@@ -69,6 +71,8 @@ public class NetworkBrowserFragment extends BaseBrowserFragment {
IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
mSkipRefresh = mediaList != null && !mediaList.isEmpty();
getActivity().registerReceiver(networkReceiver, filter);
if (!mRoot)
LocalBroadcastManager.getInstance(VLCApplication.getAppContext()).registerReceiver(mLocalReceiver, new IntentFilter(VlcLoginDialog.ACTION_DIALOG_CANCELED));
}
......@@ -96,6 +100,8 @@ public class NetworkBrowserFragment extends BaseBrowserFragment {
public void onStop() {
super.onStop();
getActivity().unregisterReceiver(networkReceiver);
if (!mRoot)
LocalBroadcastManager.getInstance(VLCApplication.getAppContext()).unregisterReceiver(mLocalReceiver);
}
protected boolean handleContextItemSelected(MenuItem item, final int position) {
......@@ -289,4 +295,14 @@ public class NetworkBrowserFragment extends BaseBrowserFragment {
}
}
};
private BroadcastReceiver mLocalReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (isResumed())
goBack();
else
goBack = true;
}
};
}
......@@ -25,10 +25,7 @@
package org.videolan.vlc.gui.tv.browser;
import android.annotation.TargetApi;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
......@@ -36,7 +33,6 @@ import android.os.Handler;
import android.os.HandlerThread;
import android.os.Process;
import android.support.annotation.NonNull;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v7.preference.PreferenceManager;
import org.videolan.libvlc.Media;
......@@ -44,7 +40,6 @@ import org.videolan.libvlc.util.MediaBrowser;
import org.videolan.medialibrary.Medialibrary;
import org.videolan.medialibrary.media.MediaWrapper;
import org.videolan.vlc.VLCApplication;
import org.videolan.vlc.gui.dialogs.VlcLoginDialog;
import org.videolan.vlc.gui.tv.browser.interfaces.BrowserActivityInterface;
import org.videolan.vlc.util.VLCInstance;
......@@ -52,7 +47,6 @@ import org.videolan.vlc.util.VLCInstance;
public abstract class MediaSortedFragment extends SortedBrowserFragment implements MediaBrowser.EventListener {
protected Uri mUri;
protected MediaBrowser mMediaBrowser;
boolean goBack = false;
private boolean mShowHiddenFiles = false;
private final Medialibrary mMedialibrary = VLCApplication.getMLInstance();
......@@ -101,19 +95,6 @@ public abstract class MediaSortedFragment extends SortedBrowserFragment implemen
});
}
@Override
public void onStart() {
super.onStart();
LocalBroadcastManager.getInstance(VLCApplication.getAppContext()).registerReceiver(mLocalReceiver, new IntentFilter(VlcLoginDialog.ACTION_DIALOG_CANCELED));
}
@Override
public void onResume() {
super.onResume();
if (goBack)
getActivity().finish();
}
public void onPause(){
super.onPause();
((BrowserActivityInterface)getActivity()).updateEmptyView(false);
......@@ -122,7 +103,6 @@ public abstract class MediaSortedFragment extends SortedBrowserFragment implemen
@Override
public void onStop() {
super.onStop();
LocalBroadcastManager.getInstance(VLCApplication.getAppContext()).unregisterReceiver(mLocalReceiver);
runOnBrowserThread(releaseBrowser);
}
......@@ -184,12 +164,4 @@ public abstract class MediaSortedFragment extends SortedBrowserFragment implemen
}
}
};
private BroadcastReceiver mLocalReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (!isResumed())
goBack = true;
}
};
}
......@@ -24,14 +24,41 @@
package org.videolan.vlc.gui.tv.browser;
import android.annotation.TargetApi;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Build;
import android.support.v4.content.LocalBroadcastManager;
import org.videolan.medialibrary.media.MediaWrapper;
import org.videolan.vlc.VLCApplication;
import org.videolan.vlc.gui.dialogs.VlcLoginDialog;
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
public class NetworkBrowserFragment extends MediaSortedFragment {
public static final String TAG = "VLC/NetworkBrowserFragment";
boolean goBack = false;
@Override
public void onStart() {
super.onStart();
LocalBroadcastManager.getInstance(VLCApplication.getAppContext()).registerReceiver(mLocalReceiver, new IntentFilter(VlcLoginDialog.ACTION_DIALOG_CANCELED));
}
@Override
public void onResume() {
super.onResume();
if (goBack)
getActivity().finish();
}
@Override
public void onStop() {
super.onStop();
LocalBroadcastManager.getInstance(VLCApplication.getAppContext()).unregisterReceiver(mLocalReceiver);
}
protected void browseRoot() {
runOnBrowserThread(new Runnable() {
......@@ -54,4 +81,12 @@ public class NetworkBrowserFragment extends MediaSortedFragment {
mMediaItemMap.put(letter, item);
}
}
private BroadcastReceiver mLocalReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (!isResumed())
goBack = true;
}
};
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment