/*
* Copyright 2015. Appsi Mobile
*
* 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.appsimobile.appsii.module.appsisettings;
import android.content.Intent;
import android.media.AudioManager;
import android.net.ConnectivityManager;
import android.net.wifi.WifiManager;
import android.provider.Settings;
import android.telephony.TelephonyManager;
import com.appsimobile.appsii.R;
import com.appsimobile.appsii.compat.MapCompat;
import java.util.Map;
/**
* Created by Nick Martens on 8/7/13.
*/
public class SettingsDefinition {
// header
private static final int WIRELESS_AND_NETWORKS =
R.string.settings_header_category_wireless_networks;
private static final String WIFI_SETTINGS = Settings.ACTION_WIFI_SETTINGS;
private static final int WIFI_SETTINGS_TITLE = R.string.settings_wifi_settings_title;
private static final int WIFI_SETTINGS_ICON = R.drawable.ic_settings_wireless;
private static final String BLUETOOTH_SETTINGS = Settings.ACTION_BLUETOOTH_SETTINGS;
private static final int BLUETOOTH_SETTINGS_TITLE = R.string.settings_bluetooth_settings_title;
private static final int BLUETOOTH_SETTINGS_ICON = R.drawable.ic_settings_bluetooth2;
private static final String DATA_USAGE_SETTINGS = "_DATA_USAGE_";
private static final int DATA_USAGE_SETTINGS_TITLE = R.string.settings_data_usage_summary_title;
private static final int DATA_USAGE_SETTINGS_ICON = R.drawable.ic_settings_data_usage;
private static final String OPERATOR_SETTINGS = Settings.ACTION_NETWORK_OPERATOR_SETTINGS;
private static final int OPERATOR_TITLE = 0;
private static final int OPERATOR_ICON = R.drawable.empty_icon;
private static final String MORE_SETTINGS = Settings.ACTION_WIRELESS_SETTINGS;
private static final int MORE_SETTINGS_TITLE = R.string.settings_radio_controls_title;
private static final int MORE_SETTINGS_ICON = R.drawable.ic_empty;
/* DEVICE SECTION */
private static final int DEVICE = R.string.settings_header_category_device;
private static final String SOUND_SETTINGS = Settings.ACTION_SOUND_SETTINGS;
private static final int SOUND_SETTINGS_TITLE = R.string.settings_sound_settings;
private static final int SOUND_SETTINGS_ICON = R.drawable.ic_settings_sound;
private static final String DISPLAY_SETTINGS = Settings.ACTION_DISPLAY_SETTINGS;
private static final int DISPLAY_SETTINGS_TITLE = R.string.settings_display_settings;
private static final int DISPLAY_SETTINGS_ICON = R.drawable.ic_settings_display;
private static final String STORAGE_SETTINGS = Settings.ACTION_INTERNAL_STORAGE_SETTINGS;
private static final int STORAGE_SETTINGS_TITLE = R.string.settings_storage_settings;
private static final int STORAGE_SETTINGS_ICON = R.drawable.ic_settings_storage;
private static final String BATTERY_SETTINGS = Intent.ACTION_POWER_USAGE_SUMMARY;
private static final int BATTERY_SETTINGS_TITLE = R.string.settings_power_usage_summary_title;
private static final int BATTERY_SETTINGS_ICON = R.drawable.ic_settings_battery;
private static final String APPLICATION_SETTINGS = Settings.ACTION_APPLICATION_SETTINGS;
private static final int APPLICATION_SETTINGS_TITLE = R.string.settings_applications_settings;
private static final int APPLICATION_SETTINGS_ICON = R.drawable.ic_settings_applications;
private static final String MANAGE_USER_SETTINGS = Settings.ACTION_ADD_ACCOUNT;
private static final int MANAGE_USERS_SETTINGS_TITLE = R.string.settings_user_settings_title;
private static final int MANAGE_USERS_SETTINGS_ICON = R.drawable.ic_settings_multiuser;
/* Personal section */
private static final int PERSONAL = R.string.settings_header_category_personal;
/*
<!-- Manufacturer hook -->
<header
android:id="@+id/manufacturer_settings">
<intent android:action="com.android.settings.MANUFACTURER_APPLICATION_SETTING" />
</header>
*/
private static final String LOCATION_SETTINGS = Settings.ACTION_LOCATION_SOURCE_SETTINGS;
private static final int LOCATION_SETTINGS_TITLE = R.string.settings_location_settings_title;
private static final int LOCATION_SETTINGS_ICON = R.drawable.ic_settings_location;
private static final String SECURITY_SETTINGS = Settings.ACTION_SECURITY_SETTINGS;
private static final int SECURITY_SETTINGS_TITLE = R.string.settings_security_settings_title;
private static final int SECURITY_SETTINGS_ICON = R.drawable.ic_settings_security;
private static final String LANGUAGE_SETTINGS = Settings.ACTION_LOCALE_SETTINGS;
private static final int LANGUAGE_SETTINGS_TITLE = R.string.settings_language_settings;
private static final int LANGUAGE_SETTINGS_ICON = R.drawable.ic_settings_language;
private static final String BACKUP_SETTINGS = Settings.ACTION_PRIVACY_SETTINGS;
private static final int BACKUP_SETTINGS_TITLE = R.string.settings_privacy_settings;
private static final int BACKUP_SETTINGS_ICON = R.drawable.ic_settings_backup;
/* Account section */
private static final int ACCOUNTS = R.string.settings_account_settings;
private static final String ACCOUNT_SETTINGS_SETTINGS = Settings.ACTION_SYNC_SETTINGS;
private static final int ACCOUNT_SETTINGS_ICON = R.drawable.empty_icon;
private static final int ACCOUNT_SETTINGS_TITLE = R.string.settings_account_settings;
private static final int SYSTEM = R.string.settings_header_category_system;
/* System section */
private static final String DATE_TIME_SETTINGS = Settings.ACTION_DATE_SETTINGS;
private static final int DATE_TIME_SETTINGS_TITLE =
R.string.settings_date_and_time_settings_title;
private static final int DATE_TIME_SETTINGS_ICON = R.drawable.ic_settings_date_time;
private static final String ACCESSIBILITY_SETTINGS = Settings.ACTION_ACCESSIBILITY_SETTINGS;
private static final int ACCESSIBILITY_SETTINGS_TITLE =
R.string.settings_accessibility_settings;
private static final int ACCESSIBILITY_SETTINGS_ICON = R.drawable.ic_settings_accessibility;
private static final String PRINT_SETTINGS = Settings.ACTION_PRINT_SETTINGS;
private static final int PRINT_SETTINGS_TITLE = R.string.settings_settings_printing_settings;
private static final int PRINT_SETTINGS_ICON = R.drawable.ic_settings_print;
private static final String DEVELOPMENT_SETTINGS =
Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS;
private static final int DEVELOPMENT_SETTINGS_TITLE =
R.string.settings_development_settings_title;
private static final int DEVELOPMENT_SETTINGS_ICON = R.drawable.ic_settings_development;
private static final String ABOUT_SETTINGS = Settings.ACTION_DEVICE_INFO_SETTINGS;
private static final int ABOUT_SETTINGS_TITLE = R.string.settings_about_settings;
private static final int ABOUT_SETTINGS_ICON = R.drawable.ic_settings_about;
private static final SettingsHelper.Section[] SECTIONS;
private static final Map<String, Integer> ICON_LOOKUP = MapCompat.createMap();
private static final String AIRPLANE_MODE_SETTINGS = Settings.ACTION_AIRPLANE_MODE_SETTINGS;
private static final int AIRPLANE_MODE_SETTINGS_TITLE = R.string.settings_airplane_mode;
/* Additional settings actions */
private static final int AIRPLANE_MODE_SETTINGS_ICON = R.drawable.ic_airplane_mode;
private static final String ACTION_APN_SETTINGS = Settings.ACTION_APN_SETTINGS;
private static final int ACTION_APN_SETTINGS_TITLE = R.string.settings_apns_title;
private static final int ACTION_APN_SETTINGS_ICON = R.drawable.settings_apn;
// API 19
private static final String ACTION_CAPTIONING_SETTINGS = Settings.ACTION_CAPTIONING_SETTINGS;
private static final int ACTION_CAPTIONING_SETTINGS_TITLE =
R.string.settings_captioning_settings_title;
private static final int ACTION_CAPTIONING_SETTINGS_ICON = R.drawable.ic_settings_captioning;
private static final String ACTION_DATA_ROAMING_SETTINGS =
Settings.ACTION_DATA_ROAMING_SETTINGS;
private static final int ACTION_DATA_ROAMING_SETTINGS_TITLE =
R.string.settings_roaming_settings_title;
private static final int ACTION_DATA_ROAMING_SETTINGS_ICON = R.drawable.ic_settings_roaming;
// API 18
private static final String ACTION_DREAM_SETTINGS = Settings.ACTION_DREAM_SETTINGS;
private static final int ACTION_DREAM_SETTINGS_TITLE = R.string.settings_dream_settings_title;
private static final int ACTION_DREAM_SETTINGS_ICON = R.drawable.ic_settings_daydream;
private static final String ACTION_INPUT_METHOD_SETTINGS =
Settings.ACTION_INPUT_METHOD_SETTINGS;
private static final int ACTION_INPUT_METHOD_SETTINGS_TITLE =
R.string.settings_input_methods_settings_title;
private static final int ACTION_INPUT_METHOD_SETTINGS_ICON =
R.drawable.ic_settings_input_methods;
// API 9
private static final String ACTION_MEMORY_CARD_SETTINGS = Settings.ACTION_MEMORY_CARD_SETTINGS;
private static final int ACTION_MEMORY_CARD_SETTINGS_TITLE =
R.string.settings_memory_card_settings_title;
private static final int ACTION_MEMORY_CARD_SETTINGS_ICON = R.drawable.ic_settings_memory_card;
// API 14
private static final String ACTION_NFCSHARING_SETTINGS = Settings.ACTION_NFCSHARING_SETTINGS;
private static final int ACTION_NFCSHARING_SETTINGS_TITLE =
R.string.settings_nfc_sharing_settings_title;
private static final int ACTION_NFCSHARING_SETTINGS_ICON = R.drawable.ic_settings_nfc_sharing;
// API 19
private static final String ACTION_NFC_PAYMENT_SETTINGS = Settings.ACTION_NFC_PAYMENT_SETTINGS;
private static final int ACTION_NFC_PAYMENT_SETTINGS_TITLE =
R.string.settings_nfc_payment_settings_title;
private static final int ACTION_NFC_PAYMENT_SETTINGS_ICON = R.drawable.ic_settings_nfc_payment;
// API 16
private static final String ACTION_NFC_SETTINGS = Settings.ACTION_NFC_SETTINGS;
private static final int ACTION_NFC_SETTINGS_TITLE = R.string.settings_nfc_settings_title;
private static final int ACTION_NFC_SETTINGS_ICON = R.drawable.ic_settings_nfc;
private static boolean UPDATED_SECTIONS;
static {
ICON_LOOKUP.put(WIFI_SETTINGS, WIFI_SETTINGS_ICON);
ICON_LOOKUP.put(BLUETOOTH_SETTINGS, BLUETOOTH_SETTINGS_ICON);
ICON_LOOKUP.put(DATA_USAGE_SETTINGS, DATA_USAGE_SETTINGS_ICON);
ICON_LOOKUP.put(OPERATOR_SETTINGS, OPERATOR_ICON);
ICON_LOOKUP.put(MORE_SETTINGS, MORE_SETTINGS_ICON);
ICON_LOOKUP.put(SOUND_SETTINGS, SOUND_SETTINGS_ICON);
ICON_LOOKUP.put(DISPLAY_SETTINGS, DISPLAY_SETTINGS_ICON);
ICON_LOOKUP.put(STORAGE_SETTINGS, STORAGE_SETTINGS_ICON);
ICON_LOOKUP.put(BATTERY_SETTINGS, BATTERY_SETTINGS_ICON);
ICON_LOOKUP.put(APPLICATION_SETTINGS, APPLICATION_SETTINGS_ICON);
ICON_LOOKUP.put(MANAGE_USER_SETTINGS, MANAGE_USERS_SETTINGS_ICON);
ICON_LOOKUP.put(LOCATION_SETTINGS, LOCATION_SETTINGS_ICON);
ICON_LOOKUP.put(SECURITY_SETTINGS, SECURITY_SETTINGS_ICON);
ICON_LOOKUP.put(LANGUAGE_SETTINGS, LANGUAGE_SETTINGS_ICON);
ICON_LOOKUP.put(BACKUP_SETTINGS, BACKUP_SETTINGS_ICON);
ICON_LOOKUP.put(ACCOUNT_SETTINGS_SETTINGS, ACCOUNT_SETTINGS_ICON);
ICON_LOOKUP.put(DATE_TIME_SETTINGS, DATE_TIME_SETTINGS_ICON);
ICON_LOOKUP.put(ACCESSIBILITY_SETTINGS, ACCESSIBILITY_SETTINGS_ICON);
ICON_LOOKUP.put(PRINT_SETTINGS, PRINT_SETTINGS_ICON);
ICON_LOOKUP.put(DEVELOPMENT_SETTINGS, DEVELOPMENT_SETTINGS_ICON);
ICON_LOOKUP.put(ABOUT_SETTINGS, ABOUT_SETTINGS_ICON);
ICON_LOOKUP.put(AIRPLANE_MODE_SETTINGS, AIRPLANE_MODE_SETTINGS_ICON);
ICON_LOOKUP.put(ACTION_APN_SETTINGS, ACTION_APN_SETTINGS_ICON);
ICON_LOOKUP.put(ACTION_CAPTIONING_SETTINGS, ACTION_CAPTIONING_SETTINGS_ICON);
ICON_LOOKUP.put(ACTION_DATA_ROAMING_SETTINGS, ACTION_DATA_ROAMING_SETTINGS_ICON);
ICON_LOOKUP.put(ACTION_DREAM_SETTINGS, ACTION_DREAM_SETTINGS_ICON);
ICON_LOOKUP.put(ACTION_INPUT_METHOD_SETTINGS, ACTION_INPUT_METHOD_SETTINGS_ICON);
ICON_LOOKUP.put(ACTION_MEMORY_CARD_SETTINGS, ACTION_MEMORY_CARD_SETTINGS_ICON);
ICON_LOOKUP.put(ACTION_NFCSHARING_SETTINGS, ACTION_NFCSHARING_SETTINGS_ICON);
ICON_LOOKUP.put(ACTION_NFC_PAYMENT_SETTINGS, ACTION_NFC_PAYMENT_SETTINGS_ICON);
ICON_LOOKUP.put(ACTION_NFC_SETTINGS, ACTION_NFC_SETTINGS_ICON);
SECTIONS = new SettingsHelper.Section[]{
new SettingsHelper.Section(WIRELESS_AND_NETWORKS,
new SettingsHelper.SectionItem[]{
new SettingsHelper.SectionItem(WIFI_SETTINGS,
WIFI_SETTINGS_TITLE, WIFI_SETTINGS_ICON),
new SettingsHelper.SectionItem(BLUETOOTH_SETTINGS,
BLUETOOTH_SETTINGS_TITLE, BLUETOOTH_SETTINGS_ICON),
new SettingsHelper.SectionItem(DATA_USAGE_SETTINGS,
DATA_USAGE_SETTINGS_TITLE, DATA_USAGE_SETTINGS_ICON),
/* new SectionItem(OPERATOR_SETTINGS, OPERATOR_TITLE, OPERATOR_ICON), */
new SettingsHelper.SectionItem(MORE_SETTINGS,
MORE_SETTINGS_TITLE, MORE_SETTINGS_ICON),
}),
new SettingsHelper.Section(DEVICE, new SettingsHelper.SectionItem[]{
new SettingsHelper.SectionItem(SOUND_SETTINGS, SOUND_SETTINGS_TITLE,
SOUND_SETTINGS_ICON),
new SettingsHelper.SectionItem(DISPLAY_SETTINGS, DISPLAY_SETTINGS_TITLE,
DISPLAY_SETTINGS_ICON),
new SettingsHelper.SectionItem(STORAGE_SETTINGS, STORAGE_SETTINGS_TITLE,
STORAGE_SETTINGS_ICON),
new SettingsHelper.SectionItem(BATTERY_SETTINGS, BATTERY_SETTINGS_TITLE,
BATTERY_SETTINGS_ICON),
new SettingsHelper.SectionItem(APPLICATION_SETTINGS,
APPLICATION_SETTINGS_TITLE, APPLICATION_SETTINGS_ICON),
/*new SectionItem(MANAGE_USER_SETTINGS, MANAGE_USERS_SETTINGS_TITLE,
MANAGE_USERS_SETTINGS_ICON),*/
}),
new SettingsHelper.Section(PERSONAL, new SettingsHelper.SectionItem[]{
new SettingsHelper.SectionItem(LOCATION_SETTINGS,
LOCATION_SETTINGS_TITLE, LOCATION_SETTINGS_ICON),
new SettingsHelper.SectionItem(SECURITY_SETTINGS,
SECURITY_SETTINGS_TITLE, SECURITY_SETTINGS_ICON),
new SettingsHelper.SectionItem(LANGUAGE_SETTINGS,
LANGUAGE_SETTINGS_TITLE, LANGUAGE_SETTINGS_ICON),
new SettingsHelper.SectionItem(BACKUP_SETTINGS, BACKUP_SETTINGS_TITLE,
BACKUP_SETTINGS_ICON),
}), new SettingsHelper.Section(ACCOUNTS, new SettingsHelper.SectionItem[]{
new SettingsHelper.SectionItem(MANAGE_USER_SETTINGS, ACCOUNT_SETTINGS_TITLE,
MANAGE_USERS_SETTINGS_ICON),
}),
new SettingsHelper.Section(SYSTEM, new SettingsHelper.SectionItem[]{
new SettingsHelper.SectionItem(DATE_TIME_SETTINGS,
DATE_TIME_SETTINGS_TITLE, DATE_TIME_SETTINGS_ICON),
new SettingsHelper.SectionItem(ACCESSIBILITY_SETTINGS,
ACCESSIBILITY_SETTINGS_TITLE, ACCESSIBILITY_SETTINGS_ICON),
new SettingsHelper.SectionItem(PRINT_SETTINGS, PRINT_SETTINGS_TITLE,
PRINT_SETTINGS_ICON),
new SettingsHelper.SectionItem(DEVELOPMENT_SETTINGS,
DEVELOPMENT_SETTINGS_TITLE, DEVELOPMENT_SETTINGS_ICON),
new SettingsHelper.SectionItem(ABOUT_SETTINGS, ABOUT_SETTINGS_TITLE,
ABOUT_SETTINGS_ICON),
}),
};
}
public static SettingsHelper.Builder createSettingsConstants(
ConnectivityManager connectivityManager,
TelephonyManager telephonyManager,
AudioManager audioManager,
WifiManager wifiManager) {
return new SettingsHelper.Builder(SECTIONS,
R.drawable.ic_airplane_mode,
R.drawable.ic_settings_bluetooth2,
R.drawable.ic_settings_data,
R.drawable.ic_settings_wireless,
R.drawable.ic_settings_sound,
connectivityManager,
telephonyManager,
audioManager,
wifiManager
);
}
}