diff options
Diffstat (limited to 'src/com/android/loganalysis/item')
3 files changed, 110 insertions, 8 deletions
diff --git a/src/com/android/loganalysis/item/AppVersionItem.java b/src/com/android/loganalysis/item/AppVersionItem.java new file mode 100644 index 0000000..5c144f2 --- /dev/null +++ b/src/com/android/loganalysis/item/AppVersionItem.java @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2017 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.loganalysis.item; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** An {@link IItem} used to store an app's version code and name. */ +public class AppVersionItem extends GenericItem { + + /** Constants for JSON output */ + public static final String VERSION_CODE = "VERSION_CODE"; + + public static final String VERSION_NAME = "VERSION_NAME"; + + private static final Set<String> ATTRIBUTES = + new HashSet<String>(Arrays.asList(VERSION_CODE, VERSION_NAME)); + + /** + * The constructor for {@link AppVersionItem} + * + * @param versionCode the version code + * @param versionName the version name + */ + public AppVersionItem(int versionCode, String versionName) { + super(ATTRIBUTES); + + setAttribute(VERSION_CODE, versionCode); + setAttribute(VERSION_NAME, versionName); + } + + public int getVersionCode() { + return (Integer) getAttribute(VERSION_CODE); + } + + public String getVersionName() { + return (String) getAttribute(VERSION_NAME); + } +} diff --git a/src/com/android/loganalysis/item/DumpsysItem.java b/src/com/android/loganalysis/item/DumpsysItem.java index 7f219bf..b66a82c 100644 --- a/src/com/android/loganalysis/item/DumpsysItem.java +++ b/src/com/android/loganalysis/item/DumpsysItem.java @@ -27,12 +27,15 @@ public class DumpsysItem extends GenericItem { /** Constant for JSON output */ private static final String BATTERY_STATS = "BATTERY_STATS"; /** Constant for JSON output */ + private static final String PACKAGE_STATS = "PACKAGE_STATS"; + /** Constant for JSON output */ private static final String PROC_STATS = "PROC_STATS"; /** Constant for JSON output */ private static final String WIFI_STATS = "WIFI_STATS"; - private static final Set<String> ATTRIBUTES = new HashSet<String>(Arrays.asList( - BATTERY_STATS, PROC_STATS, WIFI_STATS)); + private static final Set<String> ATTRIBUTES = + new HashSet<String>( + Arrays.asList(BATTERY_STATS, PACKAGE_STATS, PROC_STATS, WIFI_STATS)); /** * The constructor for {@link DumpsysItem}. @@ -48,9 +51,12 @@ public class DumpsysItem extends GenericItem { setAttribute(BATTERY_STATS, batteryStats); } - /** - * Set the {@link DumpsysProcStatsItem} of the bugreport. - */ + /** Set the {@link DumpsysPackageStatsItem} of the bugreport. */ + public void setPackageStats(DumpsysPackageStatsItem packageStats) { + setAttribute(PACKAGE_STATS, packageStats); + } + + /** Set the {@link DumpsysProcStatsItem} of the bugreport. */ public void setProcStats(DumpsysProcStatsItem procStats) { setAttribute(PROC_STATS, procStats); } @@ -69,9 +75,12 @@ public class DumpsysItem extends GenericItem { return (DumpsysBatteryStatsItem) getAttribute(BATTERY_STATS); } - /** - * Get the {@link DumpsysProcStatsItem} of the bugreport. - */ + /** Get the {@link DumpsysPackageStatsItem} of the bugreport. */ + public DumpsysPackageStatsItem getPackageStats() { + return (DumpsysPackageStatsItem) getAttribute(PACKAGE_STATS); + } + + /** Get the {@link DumpsysProcStatsItem} of the bugreport. */ public DumpsysProcStatsItem getProcStats() { return (DumpsysProcStatsItem) getAttribute(PROC_STATS); } diff --git a/src/com/android/loganalysis/item/DumpsysPackageStatsItem.java b/src/com/android/loganalysis/item/DumpsysPackageStatsItem.java new file mode 100644 index 0000000..14c4073 --- /dev/null +++ b/src/com/android/loganalysis/item/DumpsysPackageStatsItem.java @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2017 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.loganalysis.item; + +import org.json.JSONException; +import org.json.JSONObject; + +/** An {@link IItem} used to store apps and their version codes and names. */ +public class DumpsysPackageStatsItem extends GenericMapItem<AppVersionItem> { + private static final long serialVersionUID = 1L; + + /** Constant for JSON output */ + public static final String APP_VERSIONS = "APP_VERSIONS"; + + /** {@inheritDoc} */ + @Override + public JSONObject toJson() { + JSONObject object = new JSONObject(); + try { + object.put(APP_VERSIONS, super.toJson()); + } catch (JSONException e) { + // Ignore + } + return object; + } +} |