am 25c5296b: Merge "An updater for all timezone data on a device"
* commit '25c5296b0d85979ad216195000b857dce8127ab1': An updater for all timezone data on a device
This commit is contained in:
@@ -3098,9 +3098,9 @@
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver android:name="com.android.server.updates.TZInfoInstallReceiver" >
|
||||
<receiver android:name="com.android.server.updates.TzDataInstallReceiver" >
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.UPDATE_TZINFO" />
|
||||
<action android:name="android.intent.action.UPDATE_TZDATA" />
|
||||
<data android:scheme="content" android:host="*" android:mimeType="*/*" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
@@ -10,5 +10,6 @@ LOCAL_SRC_FILES += \
|
||||
java/com/android/server/am/EventLogTags.logtags
|
||||
|
||||
LOCAL_JAVA_LIBRARIES := android.policy telephony-common
|
||||
LOCAL_STATIC_JAVA_LIBRARIES := tzdata_update
|
||||
|
||||
include $(BUILD_STATIC_JAVA_LIBRARY)
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2013 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.server.updates;
|
||||
|
||||
import android.util.Base64;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class TZInfoInstallReceiver extends ConfigUpdateInstallReceiver {
|
||||
|
||||
public TZInfoInstallReceiver() {
|
||||
super("/data/misc/zoneinfo/", "tzdata", "metadata/", "version");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void install(byte[] encodedContent, int version) throws IOException {
|
||||
super.install(Base64.decode(encodedContent, Base64.DEFAULT), version);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
* 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.server.updates;
|
||||
|
||||
import android.util.Slog;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import libcore.tzdata.update.TzDataBundleInstaller;
|
||||
|
||||
/**
|
||||
* An install receiver responsible for installing timezone data updates.
|
||||
*/
|
||||
public class TzDataInstallReceiver extends ConfigUpdateInstallReceiver {
|
||||
|
||||
private static final String TAG = "TZDataInstallReceiver";
|
||||
|
||||
private static final File TZ_DATA_DIR = new File("/data/misc/zoneinfo");
|
||||
private static final String UPDATE_DIR_NAME = TZ_DATA_DIR.getPath() + "/updates/";
|
||||
private static final String UPDATE_METADATA_DIR_NAME = "metadata/";
|
||||
private static final String UPDATE_VERSION_FILE_NAME = "version";
|
||||
private static final String UPDATE_CONTENT_FILE_NAME = "tzdata_bundle.zip";
|
||||
|
||||
private final TzDataBundleInstaller installer;
|
||||
|
||||
public TzDataInstallReceiver() {
|
||||
super(UPDATE_DIR_NAME, UPDATE_CONTENT_FILE_NAME, UPDATE_METADATA_DIR_NAME,
|
||||
UPDATE_VERSION_FILE_NAME);
|
||||
installer = new TzDataBundleInstaller(TAG, TZ_DATA_DIR);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void install(byte[] content, int version) throws IOException {
|
||||
boolean valid = installer.install(content);
|
||||
Slog.i(TAG, "Timezone data install valid for this device: " + valid);
|
||||
// Even if !valid, we call super.install(). Only in the event of an exception should we
|
||||
// not. If we didn't do this we could attempt to install repeatedly.
|
||||
super.install(content, version);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user