summaryrefslogtreecommitdiffstats
path: root/src/com/android/messaging/sms/SmsReleaseStorage.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/messaging/sms/SmsReleaseStorage.java')
-rw-r--r--src/com/android/messaging/sms/SmsReleaseStorage.java166
1 files changed, 0 insertions, 166 deletions
diff --git a/src/com/android/messaging/sms/SmsReleaseStorage.java b/src/com/android/messaging/sms/SmsReleaseStorage.java
deleted file mode 100644
index 13a6284..0000000
--- a/src/com/android/messaging/sms/SmsReleaseStorage.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.messaging.sms;
-
-import android.content.res.Resources;
-
-import com.android.messaging.Factory;
-import com.android.messaging.R;
-import com.android.messaging.datamodel.SyncManager;
-import com.android.messaging.util.BugleGservices;
-import com.android.messaging.util.BugleGservicesKeys;
-import com.android.messaging.util.LogUtil;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * Class handling message cleanup when storage is low
- */
-public class SmsReleaseStorage {
- /**
- * Class representing a time duration specified by Gservices
- */
- public static class Duration {
- // Time duration unit types
- public static final int UNIT_WEEK = 'w';
- public static final int UNIT_MONTH = 'm';
- public static final int UNIT_YEAR = 'y';
-
- // Number of units
- public final int mCount;
- // Unit type: week, month or year
- public final int mUnit;
-
- public Duration(final int count, final int unit) {
- mCount = count;
- mUnit = unit;
- }
- }
-
- private static final String TAG = LogUtil.BUGLE_TAG;
-
- private static final Duration DEFAULT_DURATION = new Duration(1, Duration.UNIT_MONTH);
-
- private static final Pattern DURATION_PATTERN = Pattern.compile("([1-9]+\\d*)(w|m|y)");
- /**
- * Parse message retaining time duration specified by Gservices
- *
- * @return The parsed time duration from Gservices
- */
- public static Duration parseMessageRetainingDuration() {
- final String smsAutoDeleteMessageRetainingDuration =
- BugleGservices.get().getString(
- BugleGservicesKeys.SMS_STORAGE_PURGING_MESSAGE_RETAINING_DURATION,
- BugleGservicesKeys.SMS_STORAGE_PURGING_MESSAGE_RETAINING_DURATION_DEFAULT);
- final Matcher matcher = DURATION_PATTERN.matcher(smsAutoDeleteMessageRetainingDuration);
- try {
- if (matcher.matches()) {
- return new Duration(
- Integer.parseInt(matcher.group(1)),
- matcher.group(2).charAt(0));
- }
- } catch (final NumberFormatException e) {
- // Nothing to do
- }
- LogUtil.e(TAG, "SmsAutoDelete: invalid duration " +
- smsAutoDeleteMessageRetainingDuration);
- return DEFAULT_DURATION;
- }
-
- /**
- * Get string representation of the time duration
- *
- * @param duration
- * @return
- */
- public static String getMessageRetainingDurationString(final Duration duration) {
- final Resources resources = Factory.get().getApplicationContext().getResources();
- switch (duration.mUnit) {
- case Duration.UNIT_WEEK:
- return resources.getQuantityString(
- R.plurals.week_count, duration.mCount, duration.mCount);
- case Duration.UNIT_MONTH:
- return resources.getQuantityString(
- R.plurals.month_count, duration.mCount, duration.mCount);
- case Duration.UNIT_YEAR:
- return resources.getQuantityString(
- R.plurals.year_count, duration.mCount, duration.mCount);
- }
- throw new IllegalArgumentException(
- "SmsAutoDelete: invalid duration unit " + duration.mUnit);
- }
-
- // Time conversations
- private static final long WEEK_IN_MILLIS = 7 * 24 * 3600 * 1000L;
- private static final long MONTH_IN_MILLIS = 30 * 24 * 3600 * 1000L;
- private static final long YEAR_IN_MILLIS = 365 * 24 * 3600 * 1000L;
-
- /**
- * Convert time duration to time in milliseconds
- *
- * @param duration
- * @return
- */
- public static long durationToTimeInMillis(final Duration duration) {
- switch (duration.mUnit) {
- case Duration.UNIT_WEEK:
- return duration.mCount * WEEK_IN_MILLIS;
- case Duration.UNIT_MONTH:
- return duration.mCount * MONTH_IN_MILLIS;
- case Duration.UNIT_YEAR:
- return duration.mCount * YEAR_IN_MILLIS;
- }
- return -1L;
- }
-
- /**
- * Delete message actions:
- * 0: delete media messages
- * 1: delete old messages
- *
- * @param actionIndex The index of the delete action to perform
- * @param durationInMillis The time duration for retaining messages
- */
- public static void deleteMessages(final int actionIndex, final long durationInMillis) {
- int deleted = 0;
- switch (actionIndex) {
- case 0: {
- // Delete media
- deleted = MmsUtils.deleteMediaMessages();
- break;
- }
- case 1: {
- // Delete old messages
- final long now = System.currentTimeMillis();
- final long cutOffTimestampInMillis = now - durationInMillis;
- // Delete messages from telephony provider
- deleted = MmsUtils.deleteMessagesOlderThan(cutOffTimestampInMillis);
- break;
- }
- default: {
- LogUtil.e(TAG, "SmsStorageStatusManager: invalid action " + actionIndex);
- break;
- }
- }
-
- if (deleted > 0) {
- // Kick off a sync to update local db.
- SyncManager.sync();
- }
- }
-}