Loading QKSMS/src/main/java/com/moez/QKSMS/receiver/AutoDeleteReceiver.java +33 −5 Original line number Diff line number Diff line Loading @@ -5,21 +5,19 @@ import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.util.Log; import com.moez.QKSMS.common.QKPreferences; import com.moez.QKSMS.enums.QKPreference; import com.moez.QKSMS.transaction.SmsHelper; import java.util.Calendar; import static android.content.Context.ALARM_SERVICE; public class AutoDeleteReceiver extends BroadcastReceiver { private static final String TAG = "AutoDeleteService"; @Override public void onReceive(Context context, Intent intent) { Log.i(TAG, "onReceive"); Calendar last = Calendar.getInstance(); last.setTimeInMillis(QKPreferences.getLong(QKPreference.LAST_AUTO_DELETE_CHECK)); Loading @@ -31,6 +29,8 @@ public class AutoDeleteReceiver extends BroadcastReceiver { current.get(Calendar.YEAR) != last.get(Calendar.YEAR))) { Log.i(TAG, "Ready to delete old messages"); QKPreferences.setLong(QKPreference.LAST_AUTO_DELETE_CHECK, System.currentTimeMillis()); getAutoDeleteCount(context); } else { Log.i(TAG, "Not going to delete old messages"); } Loading @@ -44,7 +44,35 @@ public class AutoDeleteReceiver extends BroadcastReceiver { Intent intent = new Intent(context, AutoDeleteReceiver.class); PendingIntent pIntent = PendingIntent.getBroadcast(context, 9237, intent, PendingIntent.FLAG_UPDATE_CURRENT); AlarmManager alarm = (AlarmManager) context.getSystemService(ALARM_SERVICE); AlarmManager alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); alarm.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pIntent); } private int getAutoDeleteCount(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 { cursor = context.getContentResolver().query( SmsHelper.SMS_CONTENT_PROVIDER, new String[]{SmsHelper.COLUMN_ID, SmsHelper.COLUMN_DATE}, selection, new String[]{String.valueOf(calendar.getTimeInMillis())}, null); count = cursor.getCount(); } catch (Exception e) { e.printStackTrace(); } finally { if (cursor != null) { cursor.close(); } } return count; } } Loading
QKSMS/src/main/java/com/moez/QKSMS/receiver/AutoDeleteReceiver.java +33 −5 Original line number Diff line number Diff line Loading @@ -5,21 +5,19 @@ import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.util.Log; import com.moez.QKSMS.common.QKPreferences; import com.moez.QKSMS.enums.QKPreference; import com.moez.QKSMS.transaction.SmsHelper; import java.util.Calendar; import static android.content.Context.ALARM_SERVICE; public class AutoDeleteReceiver extends BroadcastReceiver { private static final String TAG = "AutoDeleteService"; @Override public void onReceive(Context context, Intent intent) { Log.i(TAG, "onReceive"); Calendar last = Calendar.getInstance(); last.setTimeInMillis(QKPreferences.getLong(QKPreference.LAST_AUTO_DELETE_CHECK)); Loading @@ -31,6 +29,8 @@ public class AutoDeleteReceiver extends BroadcastReceiver { current.get(Calendar.YEAR) != last.get(Calendar.YEAR))) { Log.i(TAG, "Ready to delete old messages"); QKPreferences.setLong(QKPreference.LAST_AUTO_DELETE_CHECK, System.currentTimeMillis()); getAutoDeleteCount(context); } else { Log.i(TAG, "Not going to delete old messages"); } Loading @@ -44,7 +44,35 @@ public class AutoDeleteReceiver extends BroadcastReceiver { Intent intent = new Intent(context, AutoDeleteReceiver.class); PendingIntent pIntent = PendingIntent.getBroadcast(context, 9237, intent, PendingIntent.FLAG_UPDATE_CURRENT); AlarmManager alarm = (AlarmManager) context.getSystemService(ALARM_SERVICE); AlarmManager alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); alarm.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pIntent); } private int getAutoDeleteCount(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 { cursor = context.getContentResolver().query( SmsHelper.SMS_CONTENT_PROVIDER, new String[]{SmsHelper.COLUMN_ID, SmsHelper.COLUMN_DATE}, selection, new String[]{String.valueOf(calendar.getTimeInMillis())}, null); count = cursor.getCount(); } catch (Exception e) { e.printStackTrace(); } finally { if (cursor != null) { cursor.close(); } } return count; } }