diff --git a/.travis.yml b/.travis.yml index 744e2c60c..496ab2880 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,4 +10,4 @@ script: ./gradlew build notifications: hipchat: rooms: - secure: pofqFB1dvZq/Ue0okcuy3cWDKMxkq/5acPGoK2VlB8Sj1OEPm3Uau2y4Kx0DKtV9vQCLmAwc9Wvy26eIbihFIjzM6O8BDS5kdWlApJIlnJtT5hJ/YT5JB0jDHW6P1aU4muu9PXtBMMZhUWmBU3jIUPTgiLbCAygCYPGOkVRku+g= + secure: WiQT1MnkaN41pXrDA/OFzpTU88K7UZZrV2ESGPD8Cz5KJOCJUeFZlmSlRZiwmVj5SBKP/7k2dVfmtoA/4exhKgRzei9UF63udwDBN63HCwb4CUGMWRbJYub99KB/QW5J52M4fsDd8w3p20I9L2ht9rZJMzqU+QPxcuNtkdEYZgA= \ No newline at end of file diff --git a/changelog.json b/changelog.json index 4ba998f7e..5203f1aa5 100644 --- a/changelog.json +++ b/changelog.json @@ -1,4 +1,14 @@ [ + { + "version": "v2.8.3", + "date": "17th June, 2015", + "features": [], + "bugs": [ + "Fix issue with app crashing because of unnecessary definition of otto bus @Producers", + "Fix issue with app crashing because otto bus is not properly registered.", + "Fix issue with app sporadically crashing when you invoke navigation drawer." + ] + }, { "version": "v2.8.2", "date": "9th June, 2015", diff --git a/smssync/build.gradle b/smssync/build.gradle index 1a963afd9..09d139a95 100644 --- a/smssync/build.gradle +++ b/smssync/build.gradle @@ -112,8 +112,8 @@ android { } defaultConfig { - versionCode 35 - versionName "2.8.2" + versionCode 36 + versionName "2.8.3" minSdkVersion 8 targetSdkVersion 22 testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" diff --git a/smssync/src/main/java/org/addhen/smssync/activities/BaseActivity.java b/smssync/src/main/java/org/addhen/smssync/activities/BaseActivity.java index 84d0ccc5b..73524a791 100644 --- a/smssync/src/main/java/org/addhen/smssync/activities/BaseActivity.java +++ b/smssync/src/main/java/org/addhen/smssync/activities/BaseActivity.java @@ -312,7 +312,13 @@ public void run() { syncUrlNavDrawerItem.setCounter(); filterNavDrawerItem.setCounter(); whitelistNavDrawerItem.setCounter(); - navDrawerAdapter.notifyDataSetChanged(); + UiThread.getInstance().post(new Runnable() { + @Override + public void run() { + navDrawerAdapter.notifyDataSetChanged(); + } + }); + DonationFragment.checkUserHasDonated(getApplication(), new DonationFragment.DonationStatusListener() { @Override diff --git a/smssync/src/main/java/org/addhen/smssync/fragments/PendingMessages.java b/smssync/src/main/java/org/addhen/smssync/fragments/PendingMessages.java index 298e1e57e..ea6f9606e 100644 --- a/smssync/src/main/java/org/addhen/smssync/fragments/PendingMessages.java +++ b/smssync/src/main/java/org/addhen/smssync/fragments/PendingMessages.java @@ -17,17 +17,6 @@ package org.addhen.smssync.fragments; -import android.app.Activity; -import android.app.AlertDialog; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.content.IntentFilter; -import android.os.Bundle; -import android.view.MenuItem; -import android.view.View; - import com.squareup.otto.Subscribe; import org.addhen.smssync.App; @@ -51,6 +40,17 @@ import org.addhen.smssync.util.Util; import org.addhen.smssync.views.PendingMessagesView; +import android.app.Activity; +import android.app.AlertDialog; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.IntentFilter; +import android.os.Bundle; +import android.view.MenuItem; +import android.view.View; + import java.text.DateFormat; import java.util.ArrayList; import java.util.Date; @@ -63,7 +63,9 @@ public class PendingMessages android.view.View.OnClickListener { public static final int PENDING_MESSAGES_INTENT_FLAG = 4; + private static final String STATE_CHECKED = "org.addhen.smssync.fragments.STATE_CHECKED"; + private Intent syncPendingMessagesServiceIntent; private LinkedHashSet mSelectedItemsPositions; @@ -117,7 +119,6 @@ public void onActivityCreated(Bundle savedInstanceState) { } } view.sync.setOnClickListener(this); - App.bus.register(this); getActivity().registerReceiver(failedReceiver, new IntentFilter(ServicesConstants.FAILED_ACTION)); } @@ -133,6 +134,7 @@ public void onSaveInstanceState(Bundle state) { public void onResume() { log("onResume()"); super.onResume(); + App.bus.register(this); idle(); loadingTask(); } @@ -462,30 +464,31 @@ public void loadingTask() { } private void fetchMessages() { - App.getDatabaseInstance().getMessageInstance().fetchPending(new BaseDatabseHelper.DatabaseCallback>() { - @Override - public void onFinished(final List result) { - if (result != null) { - UiThread.getInstance().post(new Runnable() { - @Override - public void run() { - view.listLoadingProgress.setVisibility(android.view.View.GONE); - view.emptyView.setVisibility(View.VISIBLE); - adapter.setItems(result); - listView.setAdapter(adapter); + App.getDatabaseInstance().getMessageInstance() + .fetchPending(new BaseDatabseHelper.DatabaseCallback>() { + @Override + public void onFinished(final List result) { + if (result != null) { + UiThread.getInstance().post(new Runnable() { + @Override + public void run() { + view.listLoadingProgress.setVisibility(android.view.View.GONE); + view.emptyView.setVisibility(View.VISIBLE); + adapter.setItems(result); + listView.setAdapter(adapter); + } + }); + } else { + toastLong("No pending messages"); } - }); - } else { - toastLong("No pending messages"); - } - } + } - @Override - public void onError(Exception exception) { + @Override + public void onError(Exception exception) { - } - }); + } + }); } @Subscribe @@ -554,31 +557,34 @@ protected Boolean doInBackground(String... args) { if (deletebyUuid) { for (Integer position : mSelectedItemsPositions) { - App.getDatabaseInstance().getMessageInstance().fetchByUuid(adapter.getItem(position).getUuid(), new BaseDatabseHelper.DatabaseCallback() { - @Override - public void onFinished(Message result) { - // Do nothing - } - - @Override - public void onError(Exception exception) { - // Do nothing - } - }); + App.getDatabaseInstance().getMessageInstance() + .fetchByUuid(adapter.getItem(position).getUuid(), + new BaseDatabseHelper.DatabaseCallback() { + @Override + public void onFinished(Message result) { + // Do nothing + } + + @Override + public void onError(Exception exception) { + // Do nothing + } + }); } } else { - App.getDatabaseInstance().getMessageInstance().deleteAll(new BaseDatabseHelper.DatabaseCallback() { - @Override - public void onFinished(Void result) { - // Do nothing - } - - @Override - public void onError(Exception exception) { - //Do nothing - } - }); + App.getDatabaseInstance().getMessageInstance() + .deleteAll(new BaseDatabseHelper.DatabaseCallback() { + @Override + public void onFinished(Void result) { + // Do nothing + } + + @Override + public void onError(Exception exception) { + //Do nothing + } + }); } deleted = 2; } diff --git a/smssync/src/main/java/org/addhen/smssync/fragments/SentMessageFragment.java b/smssync/src/main/java/org/addhen/smssync/fragments/SentMessageFragment.java index c9ae4f1ef..4b4ce0f9e 100644 --- a/smssync/src/main/java/org/addhen/smssync/fragments/SentMessageFragment.java +++ b/smssync/src/main/java/org/addhen/smssync/fragments/SentMessageFragment.java @@ -87,8 +87,6 @@ public void onActivityCreated(Bundle savedInstanceState) { listView.setLongClickable(true); listView.setOnItemLongClickListener(new SentMessagesActionModeListener( this, listView)); - App.bus.register(this); - } @Override diff --git a/smssync/src/main/java/org/addhen/smssync/net/GoogleDocsHttpClient.java b/smssync/src/main/java/org/addhen/smssync/net/GoogleDocsHttpClient.java index f76bfa258..33d8fb7e7 100644 --- a/smssync/src/main/java/org/addhen/smssync/net/GoogleDocsHttpClient.java +++ b/smssync/src/main/java/org/addhen/smssync/net/GoogleDocsHttpClient.java @@ -17,14 +17,12 @@ package org.addhen.smssync.net; -import android.content.Context; -import android.content.res.Resources; - -import com.squareup.otto.Produce; - import org.addhen.smssync.R; import org.addhen.smssync.util.Util; +import android.content.Context; +import android.content.res.Resources; + import java.util.Locale; /** @@ -74,9 +72,4 @@ public void setServerError(String error, int statusCode) { res.getString(R.string.sending_failed_http_code, statusCode)); Util.logActivities(context, serverError); } - - @Produce - public boolean reloadLog() { - return true; - } } diff --git a/smssync/src/main/java/org/addhen/smssync/net/MessageSyncHttpClient.java b/smssync/src/main/java/org/addhen/smssync/net/MessageSyncHttpClient.java index 605e3c9b8..2b6a35a76 100644 --- a/smssync/src/main/java/org/addhen/smssync/net/MessageSyncHttpClient.java +++ b/smssync/src/main/java/org/addhen/smssync/net/MessageSyncHttpClient.java @@ -16,12 +16,7 @@ */ package org.addhen.smssync.net; -import android.content.Context; -import android.content.res.Resources; -import android.text.TextUtils; - import com.google.gson.Gson; -import com.squareup.otto.Produce; import org.addhen.smssync.R; import org.addhen.smssync.models.Message; @@ -35,6 +30,10 @@ import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.protocol.HTTP; +import android.content.Context; +import android.content.res.Resources; +import android.text.TextUtils; + import java.util.Locale; public class MessageSyncHttpClient extends MainHttpClient { @@ -212,11 +211,6 @@ public void setServerSuccessResp(SmssyncResponse smssyncResponse) { this.smssyncResponse = smssyncResponse; } - @Produce - public boolean reloadLog() { - return true; - } - public SyncUrl getSyncUrl() { return syncUrl; } diff --git a/smssync/src/main/java/org/addhen/smssync/services/AutoSyncScheduledService.java b/smssync/src/main/java/org/addhen/smssync/services/AutoSyncScheduledService.java index 33e165f60..1d1b74713 100644 --- a/smssync/src/main/java/org/addhen/smssync/services/AutoSyncScheduledService.java +++ b/smssync/src/main/java/org/addhen/smssync/services/AutoSyncScheduledService.java @@ -17,16 +17,13 @@ package org.addhen.smssync.services; -import android.content.Intent; - -import com.squareup.otto.Produce; - import org.addhen.smssync.App; import org.addhen.smssync.messages.ProcessMessage; import org.addhen.smssync.messages.ProcessSms; -import org.addhen.smssync.state.LogEvent; import org.addhen.smssync.util.ServicesConstants; +import android.content.Intent; + /** * This class handles background services for periodic synchronization of pending messages. * @@ -63,9 +60,4 @@ protected void executeTask(Intent intent) { sendBroadcast(statusIntent); } } - - @Produce - public LogEvent readLogs() { - return new LogEvent(); - } } diff --git a/smssync/src/main/java/org/addhen/smssync/services/CheckTaskScheduledService.java b/smssync/src/main/java/org/addhen/smssync/services/CheckTaskScheduledService.java index a3fccfd58..7ca065ea6 100644 --- a/smssync/src/main/java/org/addhen/smssync/services/CheckTaskScheduledService.java +++ b/smssync/src/main/java/org/addhen/smssync/services/CheckTaskScheduledService.java @@ -17,19 +17,16 @@ package org.addhen.smssync.services; -import android.content.Intent; - -import com.squareup.otto.Produce; - import org.addhen.smssync.App; import org.addhen.smssync.R; import org.addhen.smssync.database.BaseDatabseHelper; import org.addhen.smssync.messages.ProcessMessage; import org.addhen.smssync.messages.ProcessSms; import org.addhen.smssync.models.SyncUrl; -import org.addhen.smssync.state.LogEvent; import org.addhen.smssync.util.Util; +import android.content.Intent; + import java.util.List; public class CheckTaskScheduledService extends SmsSyncServices { @@ -52,7 +49,8 @@ public void executeTask(Intent intent) { public void onFinished(List result) { for (SyncUrl syncUrl : result) { new ProcessMessage(CheckTaskScheduledService.this, - new ProcessSms(CheckTaskScheduledService.this)).performTask(syncUrl); + new ProcessSms(CheckTaskScheduledService.this)) + .performTask(syncUrl); } } @@ -63,9 +61,4 @@ public void onError(Exception exception) { }); } - - @Produce - public LogEvent readLog() { - return new LogEvent(); - } } diff --git a/smssync/src/main/java/org/addhen/smssync/services/SmsReceiverService.java b/smssync/src/main/java/org/addhen/smssync/services/SmsReceiverService.java index 4d70346d0..331f054f7 100644 --- a/smssync/src/main/java/org/addhen/smssync/services/SmsReceiverService.java +++ b/smssync/src/main/java/org/addhen/smssync/services/SmsReceiverService.java @@ -17,6 +17,15 @@ package org.addhen.smssync.services; +import org.addhen.smssync.App; +import org.addhen.smssync.R; +import org.addhen.smssync.controllers.DebugCallbacks; +import org.addhen.smssync.messages.ProcessMessage; +import org.addhen.smssync.messages.ProcessSms; +import org.addhen.smssync.util.Logger; +import org.addhen.smssync.util.ServicesConstants; +import org.addhen.smssync.util.Util; + import android.app.Service; import android.content.Context; import android.content.Intent; @@ -31,18 +40,6 @@ import android.os.Process; import android.telephony.SmsMessage; -import com.squareup.otto.Produce; - -import org.addhen.smssync.App; -import org.addhen.smssync.R; -import org.addhen.smssync.controllers.DebugCallbacks; -import org.addhen.smssync.messages.ProcessMessage; -import org.addhen.smssync.messages.ProcessSms; -import org.addhen.smssync.state.LogEvent; -import org.addhen.smssync.util.Logger; -import org.addhen.smssync.util.ServicesConstants; -import org.addhen.smssync.util.Util; - import java.lang.ref.WeakReference; import java.util.Date; @@ -258,7 +255,8 @@ protected void handleSmsReceived(Intent intent) { log("handleSmsReceived() messagesUuid: " + messagesUuid); // Log received SMS - Util.logActivities(this, getString(R.string.received_msg, msg.getBody(), msg.getPhoneNumber())); + Util.logActivities(this, + getString(R.string.received_msg, msg.getBody(), msg.getPhoneNumber())); // route the sms boolean sent = mProcessMessage.routeSms(msg); @@ -290,17 +288,12 @@ protected void log(String message, Exception ex) { Logger.log(getClass().getName(), message, ex); } - @Produce - public LogEvent reloadLog() { - return new LogEvent(); - } - private static class ServiceHandler extends Handler { private final WeakReference mSmsReceiverService; public ServiceHandler(SmsReceiverService mSmsReceiverService, - Looper looper) { + Looper looper) { super(looper); this.mSmsReceiverService = new WeakReference<>( mSmsReceiverService); diff --git a/smssync/src/main/play/en-US/whatsnew b/smssync/src/main/play/en-US/whatsnew index 27ae0b88f..cb408ba67 100644 --- a/smssync/src/main/play/en-US/whatsnew +++ b/smssync/src/main/play/en-US/whatsnew @@ -1,2 +1,3 @@ -- Upgrade otto to v1.3.7 to fix synthetic bridge methods created by JDK 8. -- Fix issue when messages received from server is empty. \ No newline at end of file +- Fix issue with app crashing because of unnecessary definition of otto bus @Producers. +- Fix issue with app crashing because otto bus is not properly registered. +- Fix issue with app sporadically crashing when you invoke navigation drawer. \ No newline at end of file