package info.papdt.express.helper.ui; import android.graphics.Color; import android.os.Build; import android.os.Bundle; import android.support.annotation.LayoutRes; import android.support.v7.app.ActionBar; import android.support.v7.widget.Toolbar; import android.view.MenuItem; import android.view.View; import info.papdt.express.helper.R; import info.papdt.express.helper.support.Settings; import info.papdt.express.helper.support.Utility; import me.imid.swipebacklayout.lib.SwipeBackLayout; import me.imid.swipebacklayout.lib.app.SwipeBackActivity; public abstract class AbsActivity extends SwipeBackActivity { protected Toolbar mToolbar; protected ActionBar mActionBar; protected Settings mSets; private SwipeBackLayout mSwipeBackLayout; protected int statusBarHeight = 0; @Override protected void onCreate(Bundle savedInstanceState) { /** Initialize Settings */ mSets = Settings.getInstance(getApplicationContext()); /** Set up translucent status bar */ if (Build.VERSION.SDK_INT >= 19 && !Utility.isChrome()) { getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); statusBarHeight = Utility.getStatusBarHeight(getApplicationContext()); } if (Build.VERSION.SDK_INT >= 21) { getWindow().setStatusBarColor(Color.TRANSPARENT); if (mSets.getBoolean(Settings.KEY_NAVIGATION_TINT, true)) { getWindow().setNavigationBarColor(getResources().getColor(R.color.pink_800)); } } super.onCreate(savedInstanceState); } protected abstract void setUpViews(); @Override public void setContentView(@LayoutRes int layoutResId) { super.setContentView(layoutResId); try { View statusHeaderView = findViewById(R.id.statusHeaderView); statusHeaderView.getLayoutParams().height = statusBarHeight; } catch (NullPointerException e) { } try { mToolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(mToolbar); } catch (Exception e) { } mActionBar = getSupportActionBar(); try { mSwipeBackLayout = getSwipeBackLayout(); mSwipeBackLayout.setEdgeTrackingEnabled(SwipeBackLayout.EDGE_LEFT | SwipeBackLayout.EDGE_RIGHT); mSwipeBackLayout.setEnableGesture(mSets.getBoolean(Settings.KEY_SWIPE_BACK, true)); } catch (Exception e) { } setUpViews(); } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { this.onBackPressed(); return true; } return super.onOptionsItemSelected(item); } @Override public void onBackPressed() { if (mSwipeBackLayout != null && mSwipeBackLayout.isGestureEnabled()) { scrollToFinishActivity(); } else { super.onBackPressed(); } } }