From b0173f685af0d58c5b02994e5f74474d83e0e4f1 Mon Sep 17 00:00:00 2001 From: stom79 Date: Tue, 18 Dec 2018 18:59:46 +0100 Subject: [PATCH] Test --- .../gouv/etalab/mastodon/helper/Helper.java | 33 +++++++++++++++++++ .../services/LiveNotificationService.java | 20 ++++++++++- 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java b/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java index 5f59eee4a..632085fc8 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java @@ -119,12 +119,14 @@ import com.oguzdev.circularfloatingactionmenu.library.SubActionButton; import org.conscrypt.Conscrypt; import java.io.BufferedReader; +import java.io.BufferedWriter; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; +import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; @@ -3144,4 +3146,35 @@ public class Helper { public static boolean isTablet(Context context){ return context.getResources().getBoolean(R.bool.isTablet); } + + + public static void appendLog(String text) { + File logFile = new File("sdcard/mastalab.log.file"); + if (!logFile.exists()) + { + try + { + logFile.createNewFile(); + } + catch (IOException e) + { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + try + { + //BufferedWriter for performance, true to set append to file flag + BufferedWriter buf = new BufferedWriter(new FileWriter(logFile, true)); + String date = dateToString(new Date()); + buf.append(date + " - " +text); + buf.newLine(); + buf.close(); + } + catch (IOException e) + { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } } diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/services/LiveNotificationService.java b/app/src/main/java/fr/gouv/etalab/mastodon/services/LiveNotificationService.java index 15d4361e0..369eecfff 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/services/LiveNotificationService.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/services/LiveNotificationService.java @@ -100,9 +100,11 @@ public class LiveNotificationService extends Service implements NetworkStateRece networkStateReceiver.addListener(this); registerReceiver(networkStateReceiver, new IntentFilter(android.net.ConnectivityManager.CONNECTIVITY_ACTION)); startStream(); + Helper.appendLog("---- onCreate -----"); } private void startStream(){ + Helper.appendLog("-> startStream"); SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); backgroundProcess = sharedpreferences.getBoolean(Helper.SET_KEEP_BACKGROUND_PROCESS, true); boolean liveNotifications = sharedpreferences.getBoolean(Helper.SET_LIVE_NOTIFICATIONS, true); @@ -134,6 +136,7 @@ public class LiveNotificationService extends Service implements NetworkStateRece @Override public int onStartCommand(Intent intent, int flags, int startId) { + Helper.appendLog("---- onStartCommand: "); if( intent == null || intent.getBooleanExtra("stop", false) ) { stopSelf(); } @@ -146,6 +149,7 @@ public class LiveNotificationService extends Service implements NetworkStateRece @Override public void onDestroy() { super.onDestroy(); + Helper.appendLog("---- onDestroy: "); networkStateReceiver.removeListener(this); unregisterReceiver(networkStateReceiver); } @@ -161,10 +165,12 @@ public class LiveNotificationService extends Service implements NetworkStateRece if(backgroundProcess){ restart(); } + Helper.appendLog("---- onTaskRemoved: "); super.onTaskRemoved(rootIntent); } private void restart(){ + Helper.appendLog("---- restart:" ); Intent restartServiceIntent = new Intent(LiveNotificationService.this, LiveNotificationService.class); restartServiceIntent.setPackage(getPackageName()); PendingIntent restartServicePendingIntent = PendingIntent.getService(getApplicationContext(), 1, restartServiceIntent, PendingIntent.FLAG_ONE_SHOT); @@ -178,6 +184,7 @@ public class LiveNotificationService extends Service implements NetworkStateRece private void taks(Account account) { if (account != null) { + Helper.appendLog("-> task: " + account.getAcct() + "@" + account.getInstance()); Headers headers = new Headers(); headers.add("Authorization", "Bearer " + account.getToken()); headers.add("Connection", "Keep-Alive"); @@ -192,6 +199,7 @@ public class LiveNotificationService extends Service implements NetworkStateRece webSocketFutures.get(urlKey).close(); } catch (Exception e) { e.printStackTrace(); + Helper.appendLog("-> err closing socket: " + e.getMessage()); } } if( Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT ) { @@ -200,8 +208,10 @@ public class LiveNotificationService extends Service implements NetworkStateRece AsyncHttpClient.getDefaultInstance().getSSLSocketMiddleware().setConnectAllAddresses(true); } catch (KeyManagementException e) { e.printStackTrace(); + Helper.appendLog("-> err1: " + e.getMessage()); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); + Helper.appendLog("-> err2: " + e.getMessage()); } } AsyncHttpClient.getDefaultInstance().websocket("wss://" + account.getInstance() + "/api/v1/streaming/?stream=user&access_token=" + account.getToken(), "wss", new AsyncHttpClient.WebSocketConnectCallback() { @@ -210,6 +220,7 @@ public class LiveNotificationService extends Service implements NetworkStateRece webSocketFutures.put(account.getAcct()+"@"+account.getInstance(), webSocket); if (ex != null) { ex.printStackTrace(); + Helper.appendLog("-> err3: " + ex.getMessage()); return; } webSocket.setStringCallback(new WebSocket.StringCallback() { @@ -217,13 +228,14 @@ public class LiveNotificationService extends Service implements NetworkStateRece try { JSONObject eventJson = new JSONObject(s); onRetrieveStreaming(account, eventJson); - } catch (JSONException ignored) {} + } catch (JSONException ignored) {Helper.appendLog("-> err: " + ignored.getMessage());} } }); webSocket.setClosedCallback(new CompletedCallback() { @Override public void onCompleted(Exception ex) { + Helper.appendLog("-> setClosedCallback: " + ex); try { if (ex != null) webSocket.close(); @@ -264,6 +276,7 @@ public class LiveNotificationService extends Service implements NetworkStateRece final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); try { + Helper.appendLog("--> event : " + response.get("event").toString() + " - " + account.getAcct()+"@"+account.getInstance()); switch (response.get("event").toString()) { case "notification": event = Helper.EventStreaming.NOTIFICATION; @@ -401,12 +414,15 @@ public class LiveNotificationService extends Service implements NetworkStateRece dataId = response.getString("id"); b.putString("dataId", dataId); } catch (JSONException ignored) { + Helper.appendLog("-> delete: " + ignored.getMessage()); } break; } } catch (Exception e) { e.printStackTrace(); + Helper.appendLog("-> err5: " + e.getMessage()); } + Helper.appendLog("-> canSendBroadCast: " + canSendBroadCast + " - " + account.getAcct() + "@" + account.getInstance()); if( canSendBroadCast) { if (account != null) b.putString("userIdService", account.getId()); @@ -419,11 +435,13 @@ public class LiveNotificationService extends Service implements NetworkStateRece @Override public void networkAvailable() { + Helper.appendLog("-> networkAvailable: "); startStream(); } @Override public void networkUnavailable() { + Helper.appendLog("-> networkUnavailable: " + thread); if( thread != null && thread.isAlive()) thread.interrupt(); }