mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-12-28 11:58:23 +01:00
Add a BroadcastReceiver to receive network status change and enable or disable video autoplay.
This commit is contained in:
parent
4678caa92b
commit
ac10441d54
@ -0,0 +1,22 @@
|
||||
package ml.docilealligator.infinityforreddit.BroadcastReceiver;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
|
||||
public class NetworkWifiStatusReceiver extends BroadcastReceiver {
|
||||
private NetworkWifiStatusReceiverListener networkWifiStatusReceiverListener;
|
||||
|
||||
public interface NetworkWifiStatusReceiverListener {
|
||||
void networkStatusChange();
|
||||
}
|
||||
|
||||
public NetworkWifiStatusReceiver(NetworkWifiStatusReceiverListener listener) {
|
||||
networkWifiStatusReceiverListener = listener;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
networkWifiStatusReceiverListener.networkStatusChange();
|
||||
}
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
package ml.docilealligator.infinityforreddit.Event;
|
||||
|
||||
public class ChangeWifiStatusEvent {
|
||||
public boolean isConnectedToWifi;
|
||||
public ChangeWifiStatusEvent(boolean isConnectedToWifi) {
|
||||
this.isConnectedToWifi = isConnectedToWifi;
|
||||
}
|
||||
}
|
@ -62,6 +62,7 @@ import ml.docilealligator.infinityforreddit.Event.ChangeShowElapsedTimeEvent;
|
||||
import ml.docilealligator.infinityforreddit.Event.ChangeSpoilerBlurEvent;
|
||||
import ml.docilealligator.infinityforreddit.Event.ChangeVideoAutoplayEvent;
|
||||
import ml.docilealligator.infinityforreddit.Event.ChangeVoteButtonsPositionEvent;
|
||||
import ml.docilealligator.infinityforreddit.Event.ChangeWifiStatusEvent;
|
||||
import ml.docilealligator.infinityforreddit.Event.PostUpdateEventToPostList;
|
||||
import ml.docilealligator.infinityforreddit.Event.ShowDividerInCompactLayoutPreferenceEvent;
|
||||
import ml.docilealligator.infinityforreddit.FragmentCommunicator;
|
||||
@ -854,6 +855,17 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onChangeWifiStatusEvent(ChangeWifiStatusEvent changeWifiStatusEvent) {
|
||||
if (mAdapter != null) {
|
||||
String autoplay = mSharedPreferences.getString(SharedPreferencesUtils.VIDEO_AUTOPLAY, SharedPreferencesUtils.VIDEO_AUTOPLAY_VALUE_NEVER);
|
||||
if (autoplay.equals(SharedPreferencesUtils.VIDEO_AUTOPLAY_VALUE_ON_WIFI)) {
|
||||
mAdapter.setAutoplay(changeWifiStatusEvent.isConnectedToWifi);
|
||||
refreshAdapter();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void refreshAdapter() {
|
||||
int previousPosition = -1;
|
||||
if (mLinearLayoutManager != null) {
|
||||
|
@ -1,6 +1,8 @@
|
||||
package ml.docilealligator.infinityforreddit;
|
||||
|
||||
import android.app.Application;
|
||||
import android.content.IntentFilter;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
@ -10,8 +12,15 @@ import com.evernote.android.state.StateSaver;
|
||||
import com.livefront.bridge.Bridge;
|
||||
import com.livefront.bridge.SavedStateHandler;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
import ml.docilealligator.infinityforreddit.BroadcastReceiver.NetworkWifiStatusReceiver;
|
||||
import ml.docilealligator.infinityforreddit.Event.ChangeWifiStatusEvent;
|
||||
import ml.docilealligator.infinityforreddit.Utils.Utils;
|
||||
|
||||
public class Infinity extends Application {
|
||||
private AppComponent mAppComponent;
|
||||
private NetworkWifiStatusReceiver mNetworkWifiStatusReceiver;
|
||||
|
||||
@Override
|
||||
public void onCreate() {
|
||||
@ -32,6 +41,10 @@ public class Infinity extends Application {
|
||||
StateSaver.restoreInstanceState(target, state);
|
||||
}
|
||||
});
|
||||
|
||||
mNetworkWifiStatusReceiver =
|
||||
new NetworkWifiStatusReceiver(() -> EventBus.getDefault().post(new ChangeWifiStatusEvent(Utils.isConnectedToWifi(getApplicationContext()))));
|
||||
registerReceiver(mNetworkWifiStatusReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
|
||||
}
|
||||
|
||||
public AppComponent getAppComponent() {
|
||||
|
Loading…
Reference in New Issue
Block a user