package moe.feng.nhentai.ui.common; import android.graphics.Color; import android.os.Build; import android.os.Bundle; import android.support.annotation.LayoutRes; import android.support.v4.content.ContextCompat; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.util.Log; import android.view.MenuItem; import android.view.View; import moe.feng.nhentai.R; import moe.feng.nhentai.util.Settings; import moe.feng.nhentai.util.Utility; public abstract class AbsActivity extends AppCompatActivity { protected Toolbar mToolbar; protected ActionBar mActionBar; protected Settings mSets; protected int statusBarHeight = 0; @Override protected void onCreate(Bundle savedInstanceState) { SetTranslucent(true); mSets = Settings.getInstance(getApplicationContext()); super.onCreate(savedInstanceState); } protected void SetTranslucent (boolean statusBarTranslucent) { /** Set up translucent status bar */ if (statusBarTranslucent) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ) { getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); statusBarHeight = Utility.getStatusBarHeight(getApplicationContext()); getWindow().setStatusBarColor(Color.TRANSPARENT); getWindow().setNavigationBarColor(ContextCompat.getColor(getApplicationContext(), R.color.deep_purple_800)); } } } protected abstract void setUpViews(); @Override public void setContentView(@LayoutRes int layoutResId) { super.setContentView(layoutResId); try { View statusHeaderView = $(R.id.status_bar_header); statusHeaderView.getLayoutParams().height = statusBarHeight; } catch (NullPointerException e) { Log.e("setContentView", "Cannot find status header."); } try { mToolbar = $(R.id.toolbar); setSupportActionBar(mToolbar); } catch (Exception e) { Log.e("setContentView", "Cannot find toolbar."); } mActionBar = getSupportActionBar(); setUpViews(); } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { this.onBackPressed(); return true; } return super.onOptionsItemSelected(item); } protected <T extends View> T $(int id) { return (T) findViewById(id); } }