/**
* Copyright 2016 JustWayward Team
* <p>
* 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
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* 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.justwayward.reader.ui.activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.widget.SwitchCompat;
import android.widget.CompoundButton;
import android.widget.TextView;
import com.justwayward.reader.R;
import com.justwayward.reader.base.BaseActivity;
import com.justwayward.reader.base.Constant;
import com.justwayward.reader.component.AppComponent;
import com.justwayward.reader.component.DaggerMainComponent;
import com.justwayward.reader.manager.CacheManager;
import com.justwayward.reader.manager.EventManager;
import com.justwayward.reader.manager.SettingManager;
import com.justwayward.reader.utils.SharedPreferencesUtil;
import butterknife.Bind;
import butterknife.OnClick;
/**
* Created by xiaoshu on 2016/10/8.
*/
public class SettingActivity extends BaseActivity {
public static void startActivity(Context context) {
context.startActivity(new Intent(context, SettingActivity.class));
}
@Bind(R.id.mTvSort)
TextView mTvSort;
@Bind(R.id.tvFlipStyle)
TextView mTvFlipStyle;
@Bind(R.id.tvCacheSize)
TextView mTvCacheSize;
@Bind(R.id.noneCoverCompat)
SwitchCompat noneCoverCompat;
@Override
public int getLayoutId() {
return R.layout.activity_setting;
}
@Override
protected void setupActivityComponent(AppComponent appComponent) {
DaggerMainComponent.builder()
.appComponent(appComponent)
.build()
.inject(this);
}
@Override
public void initToolBar() {
mCommonToolbar.setTitle("设置");
mCommonToolbar.setNavigationIcon(R.drawable.ab_back);
}
@Override
public void initDatas() {
new Thread(new Runnable() {
@Override
public void run() {
final String cachesize = CacheManager.getInstance().getCacheSize();
runOnUiThread(new Runnable() {
@Override
public void run() {
mTvCacheSize.setText(cachesize);
}
});
}
}).start();
mTvSort.setText(getResources().getStringArray(R.array.setting_dialog_sort_choice)[
SharedPreferencesUtil.getInstance().getBoolean(Constant.ISBYUPDATESORT, true) ? 0 : 1]);
mTvFlipStyle.setText(getResources().getStringArray(R.array.setting_dialog_style_choice)[
SharedPreferencesUtil.getInstance().getInt(Constant.FLIP_STYLE, 0)]);
}
@Override
public void configViews() {
noneCoverCompat.setChecked(SettingManager.getInstance().isNoneCover());
noneCoverCompat.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SettingManager.getInstance().saveNoneCover(isChecked);
}
});
}
@OnClick(R.id.bookshelfSort)
public void onClickBookShelfSort() {
new AlertDialog.Builder(mContext)
.setTitle("书架排序方式")
.setSingleChoiceItems(getResources().getStringArray(R.array.setting_dialog_sort_choice),
SharedPreferencesUtil.getInstance().getBoolean(Constant.ISBYUPDATESORT, true) ? 0 : 1,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mTvSort.setText(getResources().getStringArray(R.array.setting_dialog_sort_choice)[which]);
SharedPreferencesUtil.getInstance().putBoolean(Constant.ISBYUPDATESORT, which == 0);
EventManager.refreshCollectionList();
dialog.dismiss();
}
})
.create().show();
}
@OnClick(R.id.rlFlipStyle)
public void onClickFlipStyle() {
new AlertDialog.Builder(mContext)
.setTitle("阅读页翻页效果")
.setSingleChoiceItems(getResources().getStringArray(R.array.setting_dialog_style_choice),
SharedPreferencesUtil.getInstance().getInt(Constant.FLIP_STYLE, 0),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mTvFlipStyle.setText(getResources().getStringArray(R.array.setting_dialog_style_choice)[which]);
SharedPreferencesUtil.getInstance().putInt(Constant.FLIP_STYLE, which);
dialog.dismiss();
}
})
.create().show();
}
@OnClick(R.id.feedBack)
public void feedBack() {
FeedbackActivity.startActivity(this);
}
@OnClick(R.id.cleanCache)
public void onClickCleanCache() {
//默认不勾选清空书架列表,防手抖!!
final boolean selected[] = {true, false};
new AlertDialog.Builder(mContext)
.setTitle("清除缓存")
.setCancelable(true)
.setMultiChoiceItems(new String[]{"删除阅读记录", "清空书架列表"}, selected, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
selected[which] = isChecked;
}
})
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
new Thread(new Runnable() {
@Override
public void run() {
CacheManager.getInstance().clearCache(selected[0], selected[1]);
final String cacheSize = CacheManager.getInstance().getCacheSize();
runOnUiThread(new Runnable() {
@Override
public void run() {
mTvCacheSize.setText(cacheSize);
EventManager.refreshCollectionList();
}
});
}
}).start();
dialog.dismiss();
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.create().show();
}
}