/* * Copyright (c) 2016 Zhang Hai <Dreaming.in.Code.ZH@Gmail.com> * All Rights Reserved. */ package me.zhanghai.android.douya.settings.ui; import android.app.Activity; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; import butterknife.BindView; import butterknife.ButterKnife; import me.zhanghai.android.douya.BuildConfig; import me.zhanghai.android.douya.R; import me.zhanghai.android.douya.profile.ui.ProfileActivity; import me.zhanghai.android.douya.scalpel.ScalpelHelperFragment; import me.zhanghai.android.douya.ui.KonamiCodeDetector; import me.zhanghai.android.douya.util.AppUtils; public class AboutFragment extends Fragment implements ConfirmEnableScalpelDialogFragment.Listener { @BindView(R.id.container) LinearLayout mContainerLayout; @BindView(R.id.toolbar) Toolbar mToolbar; @BindView(R.id.version) TextView mVersionText; @BindView(R.id.douban) Button mDoubanButton; public static AboutFragment newInstance() { //noinspection deprecation return new AboutFragment(); } /** * @deprecated Use {@link #newInstance()} instead. */ public AboutFragment() {} @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return inflater.inflate(R.layout.about_fragment, container, false); } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); ButterKnife.bind(this, view); } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); ScalpelHelperFragment.attachTo(this); AppCompatActivity activity = (AppCompatActivity) getActivity(); activity.setSupportActionBar(mToolbar); activity.getSupportActionBar().setTitle(null); // Seems that ScrollView intercepts touch event, so we have to set the onTouchListener on a // view inside it. mContainerLayout.setOnTouchListener(new KonamiCodeDetector(activity) { @Override public void onDetected() { onEnableScalpel(); } }); mVersionText.setText(getString(R.string.about_version_format, BuildConfig.VERSION_NAME)); mDoubanButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Activity activity = getActivity(); activity.startActivity(ProfileActivity.makeIntent("douban-douya", activity)); } }); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: AppUtils.navigateUp(getActivity()); return true; default: return super.onOptionsItemSelected(item); } } private void onEnableScalpel() { ConfirmEnableScalpelDialogFragment.show(this); } @Override public void enableScalpel() { ScalpelHelperFragment.setEnabled(true); } }