|
|
/*
|
|
|
* Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
|
|
|
*
|
|
|
* 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 net.micode.notes.ui;
|
|
|
|
|
|
import android.app.ActionBar;
|
|
|
import android.app.Activity;
|
|
|
import android.content.Intent;
|
|
|
import android.os.Bundle;
|
|
|
import android.view.MenuItem;
|
|
|
import android.view.View;
|
|
|
import android.widget.AdapterView;
|
|
|
import android.widget.ArrayAdapter;
|
|
|
import android.widget.Button;
|
|
|
import android.widget.LinearLayout;
|
|
|
import android.widget.Spinner;
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
import net.micode.notes.R;
|
|
|
import net.micode.notes.tool.DynamicBackgroundManager;
|
|
|
import net.micode.notes.tool.ResourceParser;
|
|
|
|
|
|
/**
|
|
|
* 动态背景设置界面
|
|
|
*/
|
|
|
public class DynamicBackgroundSettings extends Activity {
|
|
|
private DynamicBackgroundManager mBgManager;
|
|
|
|
|
|
private Spinner mMorningSpinner;
|
|
|
private Spinner mAfternoonSpinner;
|
|
|
private Spinner mEveningSpinner;
|
|
|
private Button mSaveButton;
|
|
|
|
|
|
private static final String[] BG_COLOR_NAMES = {
|
|
|
"Yellow", "Blue", "White", "Green", "Red"
|
|
|
};
|
|
|
|
|
|
@Override
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
super.onCreate(savedInstanceState);
|
|
|
setContentView(R.layout.dynamic_bg_settings);
|
|
|
|
|
|
// 启用返回按钮
|
|
|
ActionBar actionBar = getActionBar();
|
|
|
if (actionBar != null) {
|
|
|
actionBar.setDisplayHomeAsUpEnabled(true);
|
|
|
actionBar.setTitle(R.string.dynamic_bg_setup);
|
|
|
}
|
|
|
|
|
|
mBgManager = new DynamicBackgroundManager(this);
|
|
|
|
|
|
initViews();
|
|
|
loadCurrentSettings();
|
|
|
|
|
|
// 添加自定义时间设置入口
|
|
|
// 只有选择了自定义模式才显示
|
|
|
if (mBgManager.getBackgroundMode() == DynamicBackgroundManager.MODE_CUSTOM) {
|
|
|
Button btnCustomSettings = new Button(this);
|
|
|
btnCustomSettings.setText(R.string.custom_time_settings_title);
|
|
|
btnCustomSettings.setOnClickListener(new View.OnClickListener() {
|
|
|
@Override
|
|
|
public void onClick(View v) {
|
|
|
// 打开自定义时间设置页面
|
|
|
Intent intent = new Intent(DynamicBackgroundSettings.this, CustomTimeSettingsActivity.class);
|
|
|
startActivity(intent);
|
|
|
}
|
|
|
});
|
|
|
|
|
|
// 添加到布局中
|
|
|
LinearLayout layout = findViewById(R.id.bg_settings_layout);
|
|
|
layout.addView(btnCustomSettings, new LinearLayout.LayoutParams(
|
|
|
LinearLayout.LayoutParams.MATCH_PARENT,
|
|
|
LinearLayout.LayoutParams.WRAP_CONTENT));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
private void initViews() {
|
|
|
mMorningSpinner = findViewById(R.id.spinner_morning_bg);
|
|
|
mAfternoonSpinner = findViewById(R.id.spinner_afternoon_bg);
|
|
|
mEveningSpinner = findViewById(R.id.spinner_evening_bg);
|
|
|
mSaveButton = findViewById(R.id.btn_save_bg_settings);
|
|
|
|
|
|
// 设置颜色选择器适配器
|
|
|
ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
|
|
|
android.R.layout.simple_spinner_item, BG_COLOR_NAMES);
|
|
|
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
|
|
|
|
mMorningSpinner.setAdapter(adapter);
|
|
|
mAfternoonSpinner.setAdapter(adapter);
|
|
|
mEveningSpinner.setAdapter(adapter);
|
|
|
|
|
|
// 保存按钮点击事件
|
|
|
mSaveButton.setOnClickListener(new View.OnClickListener() {
|
|
|
@Override
|
|
|
public void onClick(View v) {
|
|
|
saveSettings();
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
private void loadCurrentSettings() {
|
|
|
// 加载当前的颜色设置
|
|
|
int morningColor = mBgManager.getTimePeriodColor(DynamicBackgroundManager.TIME_PERIOD_MORNING);
|
|
|
int afternoonColor = mBgManager.getTimePeriodColor(DynamicBackgroundManager.TIME_PERIOD_AFTERNOON);
|
|
|
int eveningColor = mBgManager.getTimePeriodColor(DynamicBackgroundManager.TIME_PERIOD_EVENING);
|
|
|
|
|
|
// 如果颜色ID大于BG_COLOR_NAMES.length,则使用默认颜色
|
|
|
mMorningSpinner.setSelection(morningColor < BG_COLOR_NAMES.length ? morningColor : 0);
|
|
|
mAfternoonSpinner.setSelection(afternoonColor < BG_COLOR_NAMES.length ? afternoonColor : 1);
|
|
|
mEveningSpinner.setSelection(eveningColor < BG_COLOR_NAMES.length ? eveningColor : 4);
|
|
|
}
|
|
|
|
|
|
private void saveSettings() {
|
|
|
// 保存颜色设置
|
|
|
int morningColor = mMorningSpinner.getSelectedItemPosition();
|
|
|
int afternoonColor = mAfternoonSpinner.getSelectedItemPosition();
|
|
|
int eveningColor = mEveningSpinner.getSelectedItemPosition();
|
|
|
|
|
|
mBgManager.setTimePeriodColor(DynamicBackgroundManager.TIME_PERIOD_MORNING, morningColor);
|
|
|
mBgManager.setTimePeriodColor(DynamicBackgroundManager.TIME_PERIOD_AFTERNOON, afternoonColor);
|
|
|
mBgManager.setTimePeriodColor(DynamicBackgroundManager.TIME_PERIOD_EVENING, eveningColor);
|
|
|
|
|
|
// 确保模式已设置
|
|
|
if (mBgManager.getBackgroundMode() == DynamicBackgroundManager.MODE_DISABLED) {
|
|
|
mBgManager.setBackgroundMode(DynamicBackgroundManager.MODE_TIME_PERIOD);
|
|
|
}
|
|
|
|
|
|
Toast.makeText(this, "设置已保存", Toast.LENGTH_SHORT).show();
|
|
|
finish();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public boolean onOptionsItemSelected(MenuItem item) {
|
|
|
if (item.getItemId() == android.R.id.home) {
|
|
|
finish();
|
|
|
return true;
|
|
|
}
|
|
|
return super.onOptionsItemSelected(item);
|
|
|
}
|
|
|
} |