Loading QKSMS/src/main/AndroidManifest.xml +1 −1 Original line number Diff line number Diff line Loading @@ -450,9 +450,9 @@ <action android:name="com.mariussoft.endlessjabber.action.extend" /> </intent-filter> </receiver> <receiver android:name=".receiver.AutoDeleteReceiver" /> <service android:name="com.mariussoft.endlessjabber.sdk.EndlessJabberWakefulService" /> <service android:name=".service.DeleteOldMessagesService" /> <service android:name=".receiver.UnreadBadgeService" Loading QKSMS/src/main/java/com/moez/QKSMS/receiver/BootReceiver.java +2 −1 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.preference.PreferenceManager; import com.moez.QKSMS.service.DeleteOldMessagesService; import com.moez.QKSMS.transaction.NotificationManager; import com.moez.QKSMS.ui.settings.SettingsFragment; Loading @@ -16,6 +17,6 @@ public class BootReceiver extends BroadcastReceiver { SettingsFragment.updateAlarmManager(context, PreferenceManager.getDefaultSharedPreferences(context).getBoolean(SettingsFragment.NIGHT_AUTO, false)); AutoDeleteReceiver.setupAutoDeleteAlarm(context); DeleteOldMessagesService.setupAutoDeleteAlarm(context); } } QKSMS/src/main/java/com/moez/QKSMS/receiver/AutoDeleteReceiver.java→QKSMS/src/main/java/com/moez/QKSMS/service/DeleteOldMessagesService.java +42 −17 Original line number Diff line number Diff line package com.moez.QKSMS.receiver; package com.moez.QKSMS.service; import android.app.AlarmManager; import android.app.IntentService; import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.database.Cursor; Loading @@ -13,11 +13,15 @@ import com.moez.QKSMS.transaction.SmsHelper; import java.util.Calendar; public class AutoDeleteReceiver extends BroadcastReceiver { private static final String TAG = "AutoDeleteService"; public class DeleteOldMessagesService extends IntentService { private static final String TAG = "DeleteOldMessages"; public DeleteOldMessagesService() { super(TAG); } @Override public void onReceive(Context context, Intent intent) { protected void onHandleIntent(Intent intent) { Calendar last = Calendar.getInstance(); last.setTimeInMillis(QKPreferences.getLong(QKPreference.LAST_AUTO_DELETE_CHECK)); Loading @@ -30,30 +34,42 @@ public class AutoDeleteReceiver extends BroadcastReceiver { Log.i(TAG, "Ready to delete old messages"); QKPreferences.setLong(QKPreference.LAST_AUTO_DELETE_CHECK, System.currentTimeMillis()); getAutoDeleteCount(context); deleteOldUnreadMessages(this); deleteOldReadMessages(this); } else { Log.i(TAG, "Not going to delete old messages"); } } public static void setupAutoDeleteAlarm(Context context) { private void deleteOldUnreadMessages(Context context) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); calendar.set(Calendar.HOUR_OF_DAY, 3); // We want this service to run when the phone is not likely being used calendar.add(Calendar.DAY_OF_YEAR, -Integer.parseInt(QKPreferences.getString(QKPreference.AUTO_DELETE_UNREAD))); Intent intent = new Intent(context, AutoDeleteReceiver.class); PendingIntent pIntent = PendingIntent.getBroadcast(context, 9237, intent, PendingIntent.FLAG_UPDATE_CURRENT); Cursor cursor = null; String selection = SmsHelper.COLUMN_DATE + "<=?"; AlarmManager alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); alarm.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pIntent); try { cursor = context.getContentResolver().query( SmsHelper.SMS_CONTENT_PROVIDER, new String[]{SmsHelper.COLUMN_ID, SmsHelper.COLUMN_DATE}, selection, new String[]{String.valueOf(calendar.getTimeInMillis())}, null); } catch (Exception e) { e.printStackTrace(); } finally { if (cursor != null) { cursor.close(); } } } private int getAutoDeleteCount(Context context) { private void deleteOldReadMessages(Context context) { Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_YEAR, -Integer.parseInt(QKPreferences.getString(QKPreference.AUTO_DELETE_READ))); Cursor cursor = null; int count = 0; String selection = SmsHelper.COLUMN_DATE + "<=?"; try { Loading @@ -64,7 +80,6 @@ public class AutoDeleteReceiver extends BroadcastReceiver { new String[]{String.valueOf(calendar.getTimeInMillis())}, null); count = cursor.getCount(); } catch (Exception e) { e.printStackTrace(); } finally { Loading @@ -72,7 +87,17 @@ public class AutoDeleteReceiver extends BroadcastReceiver { cursor.close(); } } } return count; public static void setupAutoDeleteAlarm(Context context) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); calendar.set(Calendar.HOUR_OF_DAY, 3); // We want this service to run when the phone is not likely being used Intent intent = new Intent(context, DeleteOldMessagesService.class); PendingIntent pIntent = PendingIntent.getService(context, 9237, intent, PendingIntent.FLAG_UPDATE_CURRENT); AlarmManager alarm = (AlarmManager) context.getSystemService(ALARM_SERVICE); alarm.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pIntent); } } QKSMS/src/main/java/com/moez/QKSMS/ui/MainActivity.java +2 −2 Original line number Diff line number Diff line Loading @@ -30,8 +30,8 @@ import com.moez.QKSMS.common.google.DraftCache; import com.moez.QKSMS.common.utils.MessageUtils; import com.moez.QKSMS.data.Conversation; import com.moez.QKSMS.enums.QKPreference; import com.moez.QKSMS.receiver.AutoDeleteReceiver; import com.moez.QKSMS.receiver.IconColorReceiver; import com.moez.QKSMS.service.DeleteOldMessagesService; import com.moez.QKSMS.transaction.NotificationManager; import com.moez.QKSMS.transaction.SmsHelper; import com.moez.QKSMS.ui.base.QKActivity; Loading Loading @@ -102,7 +102,7 @@ public class MainActivity extends QKActivity { SnackEngage.from(this).withSnack(new QKRateSnack().withDuration(BaseSnack.DURATION_LONG)) .build().engageWhenAppropriate(); AutoDeleteReceiver.setupAutoDeleteAlarm(this); DeleteOldMessagesService.setupAutoDeleteAlarm(this); } /** Loading Loading
QKSMS/src/main/AndroidManifest.xml +1 −1 Original line number Diff line number Diff line Loading @@ -450,9 +450,9 @@ <action android:name="com.mariussoft.endlessjabber.action.extend" /> </intent-filter> </receiver> <receiver android:name=".receiver.AutoDeleteReceiver" /> <service android:name="com.mariussoft.endlessjabber.sdk.EndlessJabberWakefulService" /> <service android:name=".service.DeleteOldMessagesService" /> <service android:name=".receiver.UnreadBadgeService" Loading
QKSMS/src/main/java/com/moez/QKSMS/receiver/BootReceiver.java +2 −1 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.preference.PreferenceManager; import com.moez.QKSMS.service.DeleteOldMessagesService; import com.moez.QKSMS.transaction.NotificationManager; import com.moez.QKSMS.ui.settings.SettingsFragment; Loading @@ -16,6 +17,6 @@ public class BootReceiver extends BroadcastReceiver { SettingsFragment.updateAlarmManager(context, PreferenceManager.getDefaultSharedPreferences(context).getBoolean(SettingsFragment.NIGHT_AUTO, false)); AutoDeleteReceiver.setupAutoDeleteAlarm(context); DeleteOldMessagesService.setupAutoDeleteAlarm(context); } }
QKSMS/src/main/java/com/moez/QKSMS/receiver/AutoDeleteReceiver.java→QKSMS/src/main/java/com/moez/QKSMS/service/DeleteOldMessagesService.java +42 −17 Original line number Diff line number Diff line package com.moez.QKSMS.receiver; package com.moez.QKSMS.service; import android.app.AlarmManager; import android.app.IntentService; import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.database.Cursor; Loading @@ -13,11 +13,15 @@ import com.moez.QKSMS.transaction.SmsHelper; import java.util.Calendar; public class AutoDeleteReceiver extends BroadcastReceiver { private static final String TAG = "AutoDeleteService"; public class DeleteOldMessagesService extends IntentService { private static final String TAG = "DeleteOldMessages"; public DeleteOldMessagesService() { super(TAG); } @Override public void onReceive(Context context, Intent intent) { protected void onHandleIntent(Intent intent) { Calendar last = Calendar.getInstance(); last.setTimeInMillis(QKPreferences.getLong(QKPreference.LAST_AUTO_DELETE_CHECK)); Loading @@ -30,30 +34,42 @@ public class AutoDeleteReceiver extends BroadcastReceiver { Log.i(TAG, "Ready to delete old messages"); QKPreferences.setLong(QKPreference.LAST_AUTO_DELETE_CHECK, System.currentTimeMillis()); getAutoDeleteCount(context); deleteOldUnreadMessages(this); deleteOldReadMessages(this); } else { Log.i(TAG, "Not going to delete old messages"); } } public static void setupAutoDeleteAlarm(Context context) { private void deleteOldUnreadMessages(Context context) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); calendar.set(Calendar.HOUR_OF_DAY, 3); // We want this service to run when the phone is not likely being used calendar.add(Calendar.DAY_OF_YEAR, -Integer.parseInt(QKPreferences.getString(QKPreference.AUTO_DELETE_UNREAD))); Intent intent = new Intent(context, AutoDeleteReceiver.class); PendingIntent pIntent = PendingIntent.getBroadcast(context, 9237, intent, PendingIntent.FLAG_UPDATE_CURRENT); Cursor cursor = null; String selection = SmsHelper.COLUMN_DATE + "<=?"; AlarmManager alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); alarm.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pIntent); try { cursor = context.getContentResolver().query( SmsHelper.SMS_CONTENT_PROVIDER, new String[]{SmsHelper.COLUMN_ID, SmsHelper.COLUMN_DATE}, selection, new String[]{String.valueOf(calendar.getTimeInMillis())}, null); } catch (Exception e) { e.printStackTrace(); } finally { if (cursor != null) { cursor.close(); } } } private int getAutoDeleteCount(Context context) { private void deleteOldReadMessages(Context context) { Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_YEAR, -Integer.parseInt(QKPreferences.getString(QKPreference.AUTO_DELETE_READ))); Cursor cursor = null; int count = 0; String selection = SmsHelper.COLUMN_DATE + "<=?"; try { Loading @@ -64,7 +80,6 @@ public class AutoDeleteReceiver extends BroadcastReceiver { new String[]{String.valueOf(calendar.getTimeInMillis())}, null); count = cursor.getCount(); } catch (Exception e) { e.printStackTrace(); } finally { Loading @@ -72,7 +87,17 @@ public class AutoDeleteReceiver extends BroadcastReceiver { cursor.close(); } } } return count; public static void setupAutoDeleteAlarm(Context context) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); calendar.set(Calendar.HOUR_OF_DAY, 3); // We want this service to run when the phone is not likely being used Intent intent = new Intent(context, DeleteOldMessagesService.class); PendingIntent pIntent = PendingIntent.getService(context, 9237, intent, PendingIntent.FLAG_UPDATE_CURRENT); AlarmManager alarm = (AlarmManager) context.getSystemService(ALARM_SERVICE); alarm.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pIntent); } }
QKSMS/src/main/java/com/moez/QKSMS/ui/MainActivity.java +2 −2 Original line number Diff line number Diff line Loading @@ -30,8 +30,8 @@ import com.moez.QKSMS.common.google.DraftCache; import com.moez.QKSMS.common.utils.MessageUtils; import com.moez.QKSMS.data.Conversation; import com.moez.QKSMS.enums.QKPreference; import com.moez.QKSMS.receiver.AutoDeleteReceiver; import com.moez.QKSMS.receiver.IconColorReceiver; import com.moez.QKSMS.service.DeleteOldMessagesService; import com.moez.QKSMS.transaction.NotificationManager; import com.moez.QKSMS.transaction.SmsHelper; import com.moez.QKSMS.ui.base.QKActivity; Loading Loading @@ -102,7 +102,7 @@ public class MainActivity extends QKActivity { SnackEngage.from(this).withSnack(new QKRateSnack().withDuration(BaseSnack.DURATION_LONG)) .build().engageWhenAppropriate(); AutoDeleteReceiver.setupAutoDeleteAlarm(this); DeleteOldMessagesService.setupAutoDeleteAlarm(this); } /** Loading