package jp.gr.procon.proconapp.ui.fragment; import android.app.Activity; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import jp.gr.procon.proconapp.R; public class SettingFragment extends BaseFragment implements View.OnClickListener { public interface OnClickSettingItemListener { void onClickNoticeSetting(); void onClickLicense(); } private OnClickSettingItemListener mOnClickSettingItemListener; public static SettingFragment newInstance() { SettingFragment fragment = new SettingFragment(); return fragment; } @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_setting, container, false); } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); // 通知設定 View notice = view.findViewById(R.id.item_notice); ((TextView) notice.findViewById(R.id.title_text)).setText(R.string.title_setting_notice); notice.setOnClickListener(this); // ライセンス View license = view.findViewById(R.id.item_license); ((TextView) license.findViewById(R.id.title_text)).setText(R.string.title_setting_license); license.setOnClickListener(this); // バージョン View version = view.findViewById(R.id.item_version); ((TextView) version.findViewById(R.id.title_text)).setText(R.string.title_setting_version); TextView versionText = (TextView) version.findViewById(R.id.body_text); versionText.setText(getVersionName(getActivity())); versionText.setVisibility(View.VISIBLE); } @Override public void onAttach(Activity activity) { super.onAttach(activity); Fragment fragment = getParentFragment(); if (fragment != null && fragment instanceof OnClickSettingItemListener) { mOnClickSettingItemListener = (OnClickSettingItemListener) fragment; } else if (activity instanceof OnClickSettingItemListener) { mOnClickSettingItemListener = (OnClickSettingItemListener) activity; } else { throw new RuntimeException("parent fragment or activity mush implements OnClickSettingItemListener"); } } @Override public void onDetach() { super.onDetach(); mOnClickSettingItemListener = null; } @Override public void onClick(View v) { int id = v.getId(); switch (id) { case R.id.item_notice: if (mOnClickSettingItemListener != null) { mOnClickSettingItemListener.onClickNoticeSetting(); } break; case R.id.item_license: if (mOnClickSettingItemListener != null) { mOnClickSettingItemListener.onClickLicense(); } break; default: break; } } public static String getVersionName(Context context) { PackageManager pm = context.getPackageManager(); String versionName = ""; try { PackageInfo packageInfo = pm.getPackageInfo(context.getPackageName(), 0); versionName = packageInfo.versionName; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return versionName; } }