Make it possible to configure the instant and max values of all supported actions. Ongoing rewards will be enabled later. Bug: 158300259 Bug: 189850067 Bug: 191876714 Bug: 191877052 Test: Manual Change-Id: Ia854f18820f3fe95b3b1448c5fa8411853859052
169 lines
7.5 KiB
Java
169 lines
7.5 KiB
Java
/*
|
|
* Copyright (C) 2021 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.settings.development.tare;
|
|
|
|
import android.annotation.Nullable;
|
|
import android.app.Fragment;
|
|
import android.app.tare.EconomyManager;
|
|
import android.content.res.Resources;
|
|
import android.os.Bundle;
|
|
import android.view.LayoutInflater;
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
import android.widget.ExpandableListView;
|
|
import android.widget.ExpandableListView.OnChildClickListener;
|
|
|
|
import com.android.settings.R;
|
|
|
|
/**
|
|
* Creates the AlarmManager fragment to display all the AlarmManager factors
|
|
* when the AlarmManager policy is chosen in the dropdown TARE menu.
|
|
*/
|
|
public class AlarmManagerFragment extends Fragment implements
|
|
TareFactorController.DataChangeListener {
|
|
|
|
private TareFactorController mFactorController;
|
|
|
|
private TareFactorExpandableListAdapter mExpandableListAdapter;
|
|
|
|
private String[] mGroups;
|
|
private String[][] mChildren;
|
|
private String[][] mKeys;
|
|
|
|
@Override
|
|
public void onCreate(@Nullable Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
|
|
mFactorController = TareFactorController.getInstance(getContext());
|
|
populateArrays();
|
|
}
|
|
|
|
@Override
|
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
|
Bundle savedInstanceState) {
|
|
View v = inflater.inflate(R.layout.tare_policy_fragment, null);
|
|
ExpandableListView elv = (ExpandableListView) v.findViewById(R.id.factor_list);
|
|
mExpandableListAdapter = new TareFactorExpandableListAdapter(
|
|
mFactorController, LayoutInflater.from(getActivity()), mGroups, mChildren, mKeys);
|
|
elv.setGroupIndicator(null);
|
|
elv.setAdapter(mExpandableListAdapter);
|
|
elv.setOnChildClickListener(new OnChildClickListener() {
|
|
public boolean onChildClick(ExpandableListView parent, View v,
|
|
int groupPosition, int childPosition, long id) {
|
|
final String key = mExpandableListAdapter.getKey(groupPosition, childPosition);
|
|
mFactorController.createDialog(key).show(getFragmentManager(), key);
|
|
return true;
|
|
}
|
|
});
|
|
return v;
|
|
}
|
|
|
|
@Override
|
|
public void onStart() {
|
|
super.onStart();
|
|
mFactorController.registerListener(this);
|
|
}
|
|
|
|
@Override
|
|
public void onStop() {
|
|
mFactorController.unregisterListener(this);
|
|
super.onStop();
|
|
}
|
|
|
|
@Override
|
|
public void onDataChanged() {
|
|
mExpandableListAdapter.notifyDataSetChanged();
|
|
}
|
|
|
|
private void populateArrays() {
|
|
final Resources resources = getResources();
|
|
|
|
mGroups = new String[]{
|
|
resources.getString(R.string.tare_consumption_limits),
|
|
resources.getString(R.string.tare_balances),
|
|
// resources.getString(R.string.tare_modifiers),
|
|
resources.getString(R.string.tare_actions_ctp),
|
|
resources.getString(R.string.tare_actions_base_price),
|
|
resources.getString(R.string.tare_rewards_instantaneous),
|
|
resources.getString(R.string.tare_rewards_max)
|
|
};
|
|
|
|
mChildren = new String[][]{
|
|
resources.getStringArray(R.array.tare_consumption_limit_subfactors),
|
|
resources.getStringArray(R.array.tare_app_balance_subfactors),
|
|
// TODO: support
|
|
// resources.getStringArray(R.array.tare_modifiers_subfactors),
|
|
resources.getStringArray(R.array.tare_alarm_manager_actions),
|
|
resources.getStringArray(R.array.tare_alarm_manager_actions),
|
|
resources.getStringArray(R.array.tare_rewards_subfactors),
|
|
resources.getStringArray(R.array.tare_rewards_subfactors)
|
|
};
|
|
|
|
mKeys = new String[][]{
|
|
{
|
|
EconomyManager.KEY_AM_INITIAL_CONSUMPTION_LIMIT,
|
|
EconomyManager.KEY_AM_HARD_CONSUMPTION_LIMIT
|
|
},
|
|
{
|
|
EconomyManager.KEY_AM_MAX_SATIATED_BALANCE,
|
|
EconomyManager.KEY_AM_MIN_SATIATED_BALANCE_EXEMPTED,
|
|
EconomyManager.KEY_AM_MIN_SATIATED_BALANCE_HEADLESS_SYSTEM_APP,
|
|
EconomyManager.KEY_AM_MIN_SATIATED_BALANCE_OTHER_APP
|
|
},
|
|
// {},
|
|
{
|
|
EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_WAKEUP_CTP,
|
|
EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_WAKEUP_CTP,
|
|
EconomyManager.KEY_AM_ACTION_ALARM_EXACT_WAKEUP_CTP,
|
|
EconomyManager.KEY_AM_ACTION_ALARM_INEXACT_WAKEUP_CTP,
|
|
EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_NONWAKEUP_CTP,
|
|
EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_NONWAKEUP_CTP,
|
|
EconomyManager.KEY_AM_ACTION_ALARM_EXACT_NONWAKEUP_CTP,
|
|
EconomyManager.KEY_AM_ACTION_ALARM_INEXACT_NONWAKEUP_CTP,
|
|
EconomyManager.KEY_AM_ACTION_ALARM_ALARMCLOCK_CTP
|
|
},
|
|
{
|
|
EconomyManager.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_WAKEUP_BASE_PRICE,
|
|
EconomyManager
|
|
.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_WAKEUP_BASE_PRICE,
|
|
EconomyManager.KEY_AM_ACTION_ALARM_EXACT_WAKEUP_BASE_PRICE,
|
|
EconomyManager.KEY_AM_ACTION_ALARM_INEXACT_WAKEUP_BASE_PRICE,
|
|
EconomyManager
|
|
.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_EXACT_NONWAKEUP_BASE_PRICE,
|
|
EconomyManager
|
|
.KEY_AM_ACTION_ALARM_ALLOW_WHILE_IDLE_INEXACT_NONWAKEUP_BASE_PRICE,
|
|
EconomyManager.KEY_AM_ACTION_ALARM_EXACT_NONWAKEUP_BASE_PRICE,
|
|
EconomyManager.KEY_AM_ACTION_ALARM_INEXACT_NONWAKEUP_BASE_PRICE,
|
|
EconomyManager.KEY_AM_ACTION_ALARM_ALARMCLOCK_BASE_PRICE
|
|
},
|
|
{
|
|
EconomyManager.KEY_AM_REWARD_TOP_ACTIVITY_MAX,
|
|
EconomyManager.KEY_AM_REWARD_NOTIFICATION_SEEN_MAX,
|
|
EconomyManager.KEY_AM_REWARD_NOTIFICATION_INTERACTION_MAX,
|
|
EconomyManager.KEY_AM_REWARD_WIDGET_INTERACTION_MAX,
|
|
EconomyManager.KEY_AM_REWARD_OTHER_USER_INTERACTION_MAX,
|
|
},
|
|
{
|
|
EconomyManager.KEY_AM_REWARD_TOP_ACTIVITY_MAX,
|
|
EconomyManager.KEY_AM_REWARD_NOTIFICATION_SEEN_MAX,
|
|
EconomyManager.KEY_AM_REWARD_NOTIFICATION_INTERACTION_MAX,
|
|
EconomyManager.KEY_AM_REWARD_WIDGET_INTERACTION_MAX,
|
|
EconomyManager.KEY_AM_REWARD_OTHER_USER_INTERACTION_MAX,
|
|
}
|
|
};
|
|
}
|
|
}
|