summaryrefslogtreecommitdiffstats
path: root/java/com/android/dialer/persistentlog
diff options
context:
space:
mode:
authorEric Erfanian <erfanian@google.com>2017-05-15 14:05:33 -0700
committerEric Erfanian <erfanian@google.com>2017-05-15 14:48:12 -0700
commitc857f90590e7d7fcffa89511982eb33afd34805f (patch)
tree9910fb95c6fdb10b06ee8be02a3374d2882005b9 /java/com/android/dialer/persistentlog
parent738bb09adee2b56c99063a0264f8f76de393143b (diff)
downloadandroid_packages_apps_Dialer-c857f90590e7d7fcffa89511982eb33afd34805f.tar.gz
android_packages_apps_Dialer-c857f90590e7d7fcffa89511982eb33afd34805f.tar.bz2
android_packages_apps_Dialer-c857f90590e7d7fcffa89511982eb33afd34805f.zip
Update Dialer to v10 RC32
This release was created following the instructions at: go/dialer-aosp-release Subsequent dialer releases will follow as O bugs are fixed, until we reach our final RC. Version: 10 Candidate: RC32 Branch: dialer-android_release_branch/153304843.1 dialer-android_20170416.00/dialer-android_20170416.00_RC32 This release contains the following bug fixes since RC17: Bug: 33176679 33272455 3646510 36773894 37297649 37413780 37513689 37640315 37680595 37698062 37873639 37901752 37919295 37953423 38062852 38069600 38137349 38173549 38180252 38191514 Test: make, on device Change-Id: I4e4bb630082758e418ff24892b7db3142c6eb09a
Diffstat (limited to 'java/com/android/dialer/persistentlog')
-rw-r--r--java/com/android/dialer/persistentlog/PersistentLogFileHandler.java24
-rw-r--r--java/com/android/dialer/persistentlog/PersistentLogger.java4
2 files changed, 24 insertions, 4 deletions
diff --git a/java/com/android/dialer/persistentlog/PersistentLogFileHandler.java b/java/com/android/dialer/persistentlog/PersistentLogFileHandler.java
index 4ba5a72ec..5c7a28c5b 100644
--- a/java/com/android/dialer/persistentlog/PersistentLogFileHandler.java
+++ b/java/com/android/dialer/persistentlog/PersistentLogFileHandler.java
@@ -26,6 +26,7 @@ import android.support.annotation.MainThread;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.WorkerThread;
+import android.support.v4.os.UserManagerCompat;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
@@ -65,6 +66,7 @@ final class PersistentLogFileHandler {
private SharedPreferences sharedPreferences;
private File outputFile;
+ private Context context;
@MainThread
PersistentLogFileHandler(String subfolder, int fileSizeLimit, int fileCountLimit) {
@@ -76,8 +78,18 @@ final class PersistentLogFileHandler {
/** Must be called right after the logger thread is created. */
@WorkerThread
void initialize(Context context) {
+ this.context = context;
logDirectory = new File(new File(context.getCacheDir(), LOG_DIRECTORY), subfolder);
- sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
+ initializeSharedPreference(context);
+ }
+
+ @WorkerThread
+ private boolean initializeSharedPreference(Context context) {
+ if (sharedPreferences == null && UserManagerCompat.isUserUnlocked(context)) {
+ sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
+ return true;
+ }
+ return sharedPreferences != null;
}
/**
@@ -117,10 +129,10 @@ final class PersistentLogFileHandler {
return byteBuffer.array();
}
- private static final int getTotalSize(File[] files) {
+ private static int getTotalSize(File[] files) {
int sum = 0;
for (File file : files) {
- sum += file.length();
+ sum += (int) file.length();
}
return sum;
}
@@ -195,7 +207,11 @@ final class PersistentLogFileHandler {
}
@WorkerThread
- private int getAndIncrementNextFileIndex() {
+ private int getAndIncrementNextFileIndex() throws IOException {
+ if (!initializeSharedPreference(context)) {
+ throw new IOException("Shared preference is not available");
+ }
+
int index = sharedPreferences.getInt(getNextFileKey(), 0);
sharedPreferences.edit().putInt(getNextFileKey(), index + 1).commit();
return index;
diff --git a/java/com/android/dialer/persistentlog/PersistentLogger.java b/java/com/android/dialer/persistentlog/PersistentLogger.java
index 049eb9687..cf43b8ca8 100644
--- a/java/com/android/dialer/persistentlog/PersistentLogger.java
+++ b/java/com/android/dialer/persistentlog/PersistentLogger.java
@@ -23,6 +23,7 @@ import android.support.annotation.AnyThread;
import android.support.annotation.NonNull;
import android.support.annotation.VisibleForTesting;
import android.support.annotation.WorkerThread;
+import android.support.v4.os.UserManagerCompat;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
import java.io.IOException;
@@ -79,6 +80,9 @@ public final class PersistentLogger {
loggerThreadHandler.removeMessages(MESSAGE_FLUSH);
List<byte[]> messages = new ArrayList<>();
messageQueue.drainTo(messages);
+ if (!UserManagerCompat.isUserUnlocked(context)) {
+ return true;
+ }
try {
fileHandler.writeLogs(messages);
} catch (IOException e) {