Last improvements

This commit is contained in:
stom79 2017-11-11 18:49:59 +01:00
parent 0323f4d833
commit 7f0fc2d0e3
3 changed files with 22 additions and 7 deletions

View File

@ -223,7 +223,7 @@ public abstract class BaseMainActivity extends AppCompatActivity
changeDrawableColor(getApplicationContext(), R.drawable.ic_notifications,R.color.dark_text); changeDrawableColor(getApplicationContext(), R.drawable.ic_notifications,R.color.dark_text);
changeDrawableColor(getApplicationContext(), R.drawable.ic_people,R.color.dark_text); changeDrawableColor(getApplicationContext(), R.drawable.ic_people,R.color.dark_text);
changeDrawableColor(getApplicationContext(), R.drawable.ic_public,R.color.dark_text); changeDrawableColor(getApplicationContext(), R.drawable.ic_public,R.color.dark_text);
startSreaming(); startSreaming(false);
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
tabLayout.setTabMode(TabLayout.MODE_FIXED); tabLayout.setTabMode(TabLayout.MODE_FIXED);
@ -1461,8 +1461,9 @@ public abstract class BaseMainActivity extends AppCompatActivity
return activityPaused; return activityPaused;
} }
public void startSreaming(){ public void startSreaming(boolean restart){
streamingIntent = new Intent(this, StreamingService.class); streamingIntent = new Intent(this, StreamingService.class);
streamingIntent.putExtra("restart",restart);
startService(streamingIntent); startService(streamingIntent);
} }
} }

View File

@ -47,7 +47,6 @@ import android.widget.Spinner;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import fr.gouv.etalab.mastodon.activities.BaseMainActivity;
import fr.gouv.etalab.mastodon.activities.MainActivity; import fr.gouv.etalab.mastodon.activities.MainActivity;
import fr.gouv.etalab.mastodon.client.Entities.Account; import fr.gouv.etalab.mastodon.client.Entities.Account;
import fr.gouv.etalab.mastodon.helper.Helper; import fr.gouv.etalab.mastodon.helper.Helper;
@ -229,8 +228,8 @@ public class SettingsFragment extends Fragment {
editor.apply(); editor.apply();
if( set_live_notif.isChecked() ){ if( set_live_notif.isChecked() ){
try { try {
((BaseMainActivity) context).startSreaming(); ((MainActivity) context).startSreaming(true);
}catch (Exception ignored){} }catch (Exception ignored){ignored.printStackTrace();}
} }
} }
}); });

View File

@ -78,7 +78,6 @@ import static fr.gouv.etalab.mastodon.helper.Helper.notify_user;
public class StreamingService extends Service { public class StreamingService extends Service {
private EventStreaming lastEvent;
public enum EventStreaming{ public enum EventStreaming{
@ -116,6 +115,20 @@ public class StreamingService extends Service {
} }
} }
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Bundle extras = intent.getExtras();
if(extras != null) {
boolean restart = (boolean) extras.get("restart");
if( restart) {
SystemClock.sleep(1000);
sendBroadcast(new Intent("RestartStreamingService"));
stopSelf();
}
}
return START_STICKY;
}
@Nullable @Nullable
@Override @Override
public IBinder onBind(Intent intent) { public IBinder onBind(Intent intent) {
@ -128,6 +141,7 @@ public class StreamingService extends Service {
HttpsURLConnection httpsURLConnection = null; HttpsURLConnection httpsURLConnection = null;
BufferedReader reader = null; BufferedReader reader = null;
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
EventStreaming lastEvent = null;
if( accountStream != null){ if( accountStream != null){
try { try {
URL url = new URL("https://" + accountStream.getInstance() + "/api/v1/streaming/user"); URL url = new URL("https://" + accountStream.getInstance() + "/api/v1/streaming/user");
@ -150,6 +164,7 @@ public class StreamingService extends Service {
stopSelf(); stopSelf();
return; return;
} }
if ((lastEvent == EventStreaming.NONE || lastEvent == null) && !event.startsWith("data: ")) { if ((lastEvent == EventStreaming.NONE || lastEvent == null) && !event.startsWith("data: ")) {
switch (event.trim()) { switch (event.trim()) {
case "event: update": case "event: update":
@ -245,7 +260,7 @@ public class StreamingService extends Service {
boolean notif_share = sharedpreferences.getBoolean(Helper.SET_NOTIF_SHARE, true); boolean notif_share = sharedpreferences.getBoolean(Helper.SET_NOTIF_SHARE, true);
boolean somethingToPush = (notif_follow || notif_add || notif_mention || notif_share); boolean somethingToPush = (notif_follow || notif_add || notif_mention || notif_share);
String title = null; String title = null;
if( somethingToPush){ if( somethingToPush && notification != null){
switch (notification.getType()){ switch (notification.getType()){
case "mention": case "mention":
if(notif_mention){ if(notif_mention){