package net.qiujuer.tips.view.activity;
import android.content.Intent;
import android.graphics.Rect;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import net.qiujuer.tips.R;
import net.qiujuer.tips.common.drawable.AnimJagDrawable;
import net.qiujuer.tips.common.widget.CalendarView;
import net.qiujuer.tips.factory.util.TipsCalender;
import java.util.Calendar;
public class SearchKitActivity extends BlurActivity implements View.OnClickListener {
private int mYear;
private int mMonth;
private int mDay;
private boolean mIsLunar;
private TipsCalender mDate;
private Button mButton;
private TextView mLunarDate;
private TextView mSunDate;
private TextView mDistanceNow;
private TextView mWeek;
private TextView mConstellation;
private TextView mZodiac;
private View mSearchLayShow;
private CalendarView mCalendarView;
private String[] mWeeks;
private String[] mZodiacs;
private String[] mConstellations;
private final int[] mConstellationInterval = new int[]{
20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22
};
private AnimJagDrawable mTopBg;
public static void show(BaseActivity activity) {
Intent intent = new Intent(activity, SearchKitActivity.class);
activity.startActivity(intent);
activity.setBlur(activity);
}
@Override
protected int getContentView() {
return R.layout.activity_search_kit;
}
@Override
protected void onInitToolBar() {
super.onInitToolBar();
mToolbar.setTitle(getTitle());
mToolbar.setNavigationIcon(R.mipmap.ic_action_back);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
mToolbar.setOnMenuItemClickListener(this);
mToolbar.inflateMenu(R.menu.menu_search_kit);
}
@Override
public boolean onMenuItemClick(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_change) {
mCalendarView.setLunar(!mCalendarView.isLunar());
if (mCalendarView.isLunar()) {
item.setIcon(R.drawable.ic_brightness_medium_black_24dp);
} else {
item.setIcon(R.drawable.ic_brightness_high_black_24dp);
}
return true;
}
return super.onOptionsItemSelected(item);
}
/**
* mWeeks 7
* mConstellations 12star
* mZodiacs 12
*
* @param savedInstanceState Bundle
*/
@Override
protected void onInit(Bundle savedInstanceState) {
mWeeks = getResources().getStringArray(R.array.array_search_week);
mConstellations = getResources().getStringArray(R.array.array_search_constellation);
mZodiacs = getResources().getStringArray(R.array.array_search_zodiac);
mCalendarView = (CalendarView) findViewById(R.id.search_kit_calendar_container);
mLunarDate = (TextView) findViewById(R.id.search_txt_show_lunar);
mSunDate = (TextView) findViewById(R.id.search_txt_show_sun);
mDistanceNow = (TextView) findViewById(R.id.search_txt_show_distance_now);
mWeek = (TextView) findViewById(R.id.search_txt_show_week);
mConstellation = (TextView) findViewById(R.id.search_txt_show_constellation);
mZodiac = (TextView) findViewById(R.id.search_txt_show_zodiac);
mSearchLayShow = findViewById(R.id.search_lay_show);
mButton = (Button) findViewById(R.id.search_btn_commit);
View view = findViewById(R.id.lay_top);
view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
AnimJagDrawable drawable = new AnimJagDrawable();
drawable.setFluCount(new Rect(0, 0, 0, 36));
drawable.setColor(getResources().getColor(R.color.purple_500));
drawable.setAlpha(164);
view.setBackgroundDrawable(drawable);
mTopBg = drawable;
// onInitValues
onInitValues();
}
@Override
protected void onResume() {
super.onResume();
if (mTopBg != null) {
mTopBg.startAnim();
mTopBg = null;
}
}
private void onInitValues() {
mButton.setOnClickListener(this);
mDate = TipsCalender.getNow();
initMydDate(mDate.getYear(), mDate.getMonth(),
mDate.getDay(), mDate.getIsLunar());
mCalendarView.setDate(mYear, mMonth, mDay, mIsLunar);
mCalendarView.setOnNewValueListener(new CalendarView.OnValueChangeListener() {
@Override
public void onValueChanged(int newYear, int newMonth, int newDay, boolean isLunar) {
initMydDate(newYear, newMonth, newDay, isLunar);
}
});
}
private void initMydDate(int y, int m, int d, boolean isLunar) {
mYear = y;
mMonth = m;
mDay = d;
mIsLunar = isLunar;
}
private void setmDate(int y, int m, int d, boolean isLunar) {
mDate.setYear(y);
mDate.setMonth(m);
mDate.setDay(d);
mDate.setLunar(isLunar);
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.search_btn_commit) {
mSearchLayShow.setVisibility(View.VISIBLE);
setmDate(mYear, mMonth, mDay, mIsLunar);
refreshShow(mDate);
}
}
private void refreshShow(TipsCalender date) {
Calendar calendar = date.getCalender();
String lunar = getResources().getString(R.string.txt_search_kit_str_lunar);
lunar = String.format(lunar, date.toLunarString());
mLunarDate.setText(lunar);
String sun = getResources().getString(R.string.txt_search_kit_str_sun);
sun = String.format(sun, date.toSunString());
mSunDate.setText(sun);
String distance = getResources().getString(R.string.txt_search_kit_str_distance);
distance = String.format(distance, String.valueOf(date.distanceNow()));
mDistanceNow.setText(distance);
String week = getResources().getString(R.string.txt_search_kit_str_week);
week = String.format(week, getWeek(calendar));
mWeek.setText(week);
String constellation = getResources().getString(R.string.txt_search_kit_str_constellation);
constellation = String.format(constellation, getConstellation(calendar));
mConstellation.setText(constellation);
String zodiac = getResources().getString(R.string.txt_search_kit_str_zodiac);
zodiac = String.format(zodiac, getZodiac(date));
mZodiac.setText(zodiac);
}
private String getZodiac(TipsCalender date) {
int year = date.transformLunaryear();
return mZodiacs[year % 12];
}
private String getWeek(Calendar calendar) {
int weekDay = calendar.get(Calendar.DAY_OF_WEEK);
return mWeeks[weekDay - 1];
}
private String getConstellation(Calendar calendar) {
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);
int index = month;
if (day < mConstellationInterval[month]) {
if (index == 0) {
index = 11;
} else {
index = index - 1;
}
}
return mConstellations[index];
}
}