70 lines
2.4 KiB
Java
70 lines
2.4 KiB
Java
package com.keylesspalace.tusky.receiver;
|
|
|
|
import android.content.BroadcastReceiver;
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.content.IntentFilter;
|
|
import android.support.annotation.Nullable;
|
|
import android.support.v4.widget.SwipeRefreshLayout;
|
|
|
|
import com.keylesspalace.tusky.fragment.TimelineFragment;
|
|
import com.keylesspalace.tusky.interfaces.AdapterItemRemover;
|
|
|
|
public class TimelineReceiver extends BroadcastReceiver {
|
|
public static final class Types {
|
|
public static final String UNFOLLOW_ACCOUNT = "UNFOLLOW_ACCOUNT";
|
|
public static final String BLOCK_ACCOUNT = "BLOCK_ACCOUNT";
|
|
public static final String MUTE_ACCOUNT = "MUTE_ACCOUNT";
|
|
public static final String STATUS_COMPOSED = "STATUS_COMPOSED";
|
|
}
|
|
|
|
private AdapterItemRemover adapter;
|
|
private SwipeRefreshLayout.OnRefreshListener refreshListener;
|
|
|
|
public TimelineReceiver(AdapterItemRemover adapter) {
|
|
super();
|
|
this.adapter = adapter;
|
|
}
|
|
|
|
public TimelineReceiver(AdapterItemRemover adapter,
|
|
SwipeRefreshLayout.OnRefreshListener refreshListener) {
|
|
super();
|
|
this.adapter = adapter;
|
|
this.refreshListener = refreshListener;
|
|
}
|
|
|
|
@Override
|
|
public void onReceive(Context context, final Intent intent) {
|
|
switch (intent.getAction()) {
|
|
case Types.STATUS_COMPOSED: {
|
|
if (refreshListener != null) {
|
|
refreshListener.onRefresh();
|
|
}
|
|
break;
|
|
}
|
|
default: {
|
|
String id = intent.getStringExtra("id");
|
|
adapter.removeAllByAccountId(id);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static IntentFilter getFilter(@Nullable TimelineFragment.Kind kind) {
|
|
IntentFilter intentFilter = new IntentFilter();
|
|
if (kind == TimelineFragment.Kind.HOME) {
|
|
intentFilter.addAction(Types.UNFOLLOW_ACCOUNT);
|
|
}
|
|
intentFilter.addAction(Types.BLOCK_ACCOUNT);
|
|
intentFilter.addAction(Types.MUTE_ACCOUNT);
|
|
if (kind == null
|
|
|| kind == TimelineFragment.Kind.HOME
|
|
|| kind == TimelineFragment.Kind.PUBLIC_FEDERATED
|
|
|| kind == TimelineFragment.Kind.PUBLIC_LOCAL) {
|
|
intentFilter.addAction(Types.STATUS_COMPOSED);
|
|
}
|
|
|
|
return intentFilter;
|
|
}
|
|
}
|