Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 42bb829a authored by Moez Bhatti's avatar Moez Bhatti
Browse files

Query all messages before a given date

parent ace3962f
Loading
Loading
Loading
Loading
+33 −5
Original line number Diff line number Diff line
@@ -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));

@@ -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");
        }
@@ -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;
    }
}