package com.liyu.fakeweather.ui.base;
import android.os.Bundle;
import android.support.annotation.LayoutRes;
import android.support.annotation.MenuRes;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.app.AppCompatDelegate;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import com.liyu.fakeweather.R;
import com.liyu.fakeweather.utils.SettingsUtil;
public abstract class BaseActivity extends AppCompatActivity {
protected Toolbar toolbar;
protected abstract
@LayoutRes
int getLayoutId();
protected abstract
@MenuRes
int getMenuId();
protected abstract void initViews(Bundle savedInstanceState);
protected abstract void loadData();
static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initTheme();
setContentView(getLayoutId());
initToolBar();
initViews(savedInstanceState);
loadData();
}
private void initToolBar() {
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
}
protected void setDisplayHomeAsUpEnabled(boolean enable) {
if (getSupportActionBar() != null)
getSupportActionBar().setDisplayHomeAsUpEnabled(enable);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
if (getMenuId() != 0) {
getMenuInflater().inflate(getMenuId(), menu);
return true;
}
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home) {
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
private void initTheme(){
int themeIndex = SettingsUtil.getTheme();
switch (themeIndex){
case 0:
setTheme(R.style.LapisBlueTheme);
break;
case 1:
setTheme(R.style.PaleDogwoodTheme);
break;
case 2:
setTheme(R.style.GreeneryTheme);
break;
case 3:
setTheme(R.style.PrimroseYellowTheme);
break;
case 4:
setTheme(R.style.FlameTheme);
break;
case 5:
setTheme(R.style.IslandParadiseTheme);
break;
case 6:
setTheme(R.style.KaleTheme);
break;
case 7:
setTheme(R.style.PinkYarrowTheme);
break;
case 8:
setTheme(R.style.NiagaraTheme);
break;
}
}
protected void hideSystemUI() {
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
protected void showSystemUI() {
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}
}