package com.smartisanos.sidebar.setting; import java.util.List; import smartisanos.widget.SettingItemSwitch; import smartisanos.widget.SettingItemText; import smartisanos.widget.Title; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.graphics.Paint; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.provider.Settings; import android.util.Log; import android.view.View; import android.view.ViewTreeObserver; import android.view.onestep.OneStepManager; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.TextView; import com.smartisanos.sidebar.R; import com.smartisanos.sidebar.SidebarController; import com.smartisanos.sidebar.util.AddContactManager; import com.smartisanos.sidebar.util.Tracker; import com.smartisanos.sidebar.util.Utils; import com.smartisanos.sidebar.util.AddContactManager.AddContactItem; public class SettingActivity extends BaseActivity { public static final int BIT_SIDEBAR_IN_LEFT_TOP_MODE = 1 << 0; public static final int BIT_SIDEBAR_IN_RIGHT_TOP_MODE = 1 << 1; private Title mTitle; private SettingItemSwitch mSidebarSwitch; private SettingItemText mAddContact, mAddApp, mAddShare; private TextView mIntroText; private OneStepManager mOneStepManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.settings_layout); // recyle window background bitmap to release memory getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); mOneStepManager = (OneStepManager) getSystemService(Context.ONE_STEP_SERVICE); mTitle = (Title) findViewById(R.id.title_bar); mTitle.getBackButton().setVisibility(View.INVISIBLE); mSidebarSwitch = (SettingItemSwitch) findViewById(R.id.sidebar_switch); mSidebarSwitch.setChecked(isSidebarEnable()); mSidebarSwitch.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { Settings.Global.putInt(getContentResolver(), Settings.Global.SIDE_BAR_MODE, isChecked ? 1 : 0); setEnable(isChecked); if(isChecked) { enterSidebarMode(); } Tracker.onClick(Tracker.EVENT_SWITCH, "status", isChecked ? "1" : "0"); } }); mAddContact = (SettingItemText) findViewById(R.id.add_contact); mAddContact.setTitle(R.string.add_contact_to_sidebar); mAddContact.setIconResource(R.drawable.icon_add_contact); mAddContact.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startAddContactActivity(); } }); mAddApp = (SettingItemText) findViewById(R.id.add_app); mAddApp.setTitle(R.string.add_app_to_sidebar); mAddApp.setIconResource(R.drawable.icon_add_app); mAddApp.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startAddApplicationActivity(); } }); mAddShare = (SettingItemText) findViewById(R.id.add_share); mAddShare.setTitle(R.string.add_share_to_sidebar); mAddShare.setIconResource(R.drawable.icon_add_share); mAddShare.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startAddResolveInfoGroupActivtiy(); } }); mIntroText = (TextView) findViewById(R.id.introduction_link); mIntroText.getPaint().setFlags(Paint. UNDERLINE_TEXT_FLAG ); mIntroText.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Uri uri = Uri.parse("http://www.smartisan.com/pr/#/video/onestep-Introduction"); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); } }); getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { getWindow().getDecorView().getViewTreeObserver().removeGlobalOnLayoutListener(this); int minHeight = findViewById(R.id.settings).getHeight() - mTitle.getHeight(); findViewById(R.id.setting_content).setMinimumHeight(minHeight); } }); tryEnterSidebarMode(); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); tryEnterSidebarMode(); } private void tryEnterSidebarMode() { if (isSidebarEnable() && !mOneStepManager.isInOneStepMode()) { // this means we enter one step mode due to user click on laucher Tracker.onClick(Tracker.EVENT_ONLAUNCH); new Handler(Looper.getMainLooper()).postDelayed(new Runnable() { @Override public void run() { enterSidebarMode(); } }, 500);// waiting for window-animation finished ! } } @Override protected void onResume() { super.onResume(); setEnable(isSidebarEnable()); } private void enterSidebarMode() { boolean left = false; mOneStepManager.requestEnterOneStepMode(left ? BIT_SIDEBAR_IN_LEFT_TOP_MODE : BIT_SIDEBAR_IN_RIGHT_TOP_MODE); } private boolean isSidebarEnable() { return Settings.Global.getInt(getContentResolver(), Settings.Global.SIDE_BAR_MODE, 1) == 1; } private void setEnable(boolean enable) { mAddContact.setEnabled(enable); mAddApp.setEnabled(enable); mAddShare.setEnabled(enable); } private void startAddContactActivity() { Intent intent = new Intent(); intent.setClassName("com.smartisanos.sidebar", "com.smartisanos.sidebar.setting.AddContactActivity"); intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); intent.putExtra(smartisanos.widget.Title.EXTRA_BACK_BTN_TEXT, getResources().getString(R.string.back_text)); startActivity(intent,false); } private void startAddApplicationActivity() { Intent intent = new Intent(); intent.setClassName("com.smartisanos.sidebar", "com.smartisanos.sidebar.setting.AddApplicationActivity"); intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); intent.putExtra(smartisanos.widget.Title.EXTRA_BACK_BTN_TEXT, getResources().getString(R.string.back_text)); startActivity(intent,false); } private void startAddResolveInfoGroupActivtiy() { Intent intent = new Intent(); intent.setClassName("com.smartisanos.sidebar", "com.smartisanos.sidebar.setting.AddResolveInfoGroupActivtiy"); intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); intent.putExtra(smartisanos.widget.Title.EXTRA_BACK_BTN_TEXT, getResources().getString(R.string.back_text)); startActivity(intent,false); } }