Add functions for table action.
1. Insert/Update/Query/Delete 2. Update the action when app been restricted 3. Display restriction time in RestrictedAppDetails Bug: 111366678 Test: RunSettingsRoboTests Change-Id: I77a53f70e1ce4b612aabe28b7a1bb5df8f3ec9d5
This commit is contained in:
@@ -22,6 +22,8 @@ import android.content.pm.PackageManager;
|
||||
import android.os.Bundle;
|
||||
import android.os.UserHandle;
|
||||
import android.util.IconDrawableFactory;
|
||||
import android.util.Log;
|
||||
import android.util.SparseLongArray;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto;
|
||||
import com.android.settings.R;
|
||||
@@ -29,7 +31,9 @@ import com.android.settings.Utils;
|
||||
import com.android.settings.core.InstrumentedPreferenceFragment;
|
||||
import com.android.settings.core.SubSettingLauncher;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
import com.android.settings.fuelgauge.batterytip.AnomalyDatabaseHelper;
|
||||
import com.android.settings.fuelgauge.batterytip.AppInfo;
|
||||
import com.android.settings.fuelgauge.batterytip.BatteryDatabaseManager;
|
||||
import com.android.settings.fuelgauge.batterytip.BatteryTipDialogFragment;
|
||||
import com.android.settings.fuelgauge.batterytip.BatteryTipPreferenceController;
|
||||
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
|
||||
@@ -37,6 +41,7 @@ import com.android.settings.fuelgauge.batterytip.tips.RestrictAppTip;
|
||||
import com.android.settings.fuelgauge.batterytip.tips.UnrestrictAppTip;
|
||||
import com.android.settings.widget.AppCheckBoxPreference;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
import com.android.settingslib.utils.StringUtil;
|
||||
import com.android.settingslib.widget.FooterPreferenceMixinCompat;
|
||||
|
||||
import java.util.List;
|
||||
@@ -57,6 +62,7 @@ public class RestrictedAppDetails extends DashboardFragment implements
|
||||
@VisibleForTesting
|
||||
static final String EXTRA_APP_INFO_LIST = "app_info_list";
|
||||
private static final String KEY_PREF_RESTRICTED_APP_LIST = "restrict_app_list";
|
||||
private static final long TIME_NULL = -1;
|
||||
|
||||
@VisibleForTesting
|
||||
List<AppInfo> mAppInfos;
|
||||
@@ -68,6 +74,8 @@ public class RestrictedAppDetails extends DashboardFragment implements
|
||||
BatteryUtils mBatteryUtils;
|
||||
@VisibleForTesting
|
||||
PackageManager mPackageManager;
|
||||
@VisibleForTesting
|
||||
BatteryDatabaseManager mBatteryDatabaseManager;
|
||||
private final FooterPreferenceMixinCompat mFooterPreferenceMixin =
|
||||
new FooterPreferenceMixinCompat(this, getSettingsLifecycle());
|
||||
|
||||
@@ -96,6 +104,7 @@ public class RestrictedAppDetails extends DashboardFragment implements
|
||||
mPackageManager = context.getPackageManager();
|
||||
mIconDrawableFactory = IconDrawableFactory.newInstance(context);
|
||||
mBatteryUtils = BatteryUtils.getInstance(context);
|
||||
mBatteryDatabaseManager = BatteryDatabaseManager.getInstance(context);
|
||||
|
||||
refreshUi();
|
||||
}
|
||||
@@ -135,6 +144,9 @@ public class RestrictedAppDetails extends DashboardFragment implements
|
||||
void refreshUi() {
|
||||
mRestrictedAppListGroup.removeAll();
|
||||
final Context context = getPrefContext();
|
||||
final SparseLongArray timestampArray = mBatteryDatabaseManager
|
||||
.queryActionTime(AnomalyDatabaseHelper.ActionType.RESTRICTION);
|
||||
final long now = System.currentTimeMillis();
|
||||
|
||||
for (int i = 0, size = mAppInfos.size(); i < size; i++) {
|
||||
final CheckBoxPreference checkBoxPreference = new AppCheckBoxPreference(context);
|
||||
@@ -158,9 +170,16 @@ public class RestrictedAppDetails extends DashboardFragment implements
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
final long timestamp = timestampArray.get(appInfo.uid, TIME_NULL);
|
||||
if (timestamp != TIME_NULL) {
|
||||
checkBoxPreference.setSummary(getString(R.string.restricted_app_time_summary,
|
||||
StringUtil.formatRelativeTime(context, now - timestamp, false)));
|
||||
}
|
||||
final CharSequence test = checkBoxPreference.getSummaryOn();
|
||||
mRestrictedAppListGroup.addPreference(checkBoxPreference);
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
Log.e(TAG, "Can't find package: " + appInfo.packageName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user