package com.seafile.seadroid2.cameraupload; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.animation.AccelerateDecelerateInterpolator; import android.view.animation.Animation; import android.view.animation.Animation.AnimationListener; import android.view.animation.TranslateAnimation; import android.widget.Button; import android.widget.RadioGroup; import android.widget.RadioGroup.OnCheckedChangeListener; import android.widget.RelativeLayout; import com.seafile.seadroid2.R; import com.seafile.seadroid2.SettingsManager; /** * Buckets fragment */ public class BucketsFragment extends Fragment { private CameraUploadConfigActivity mActivity; private FragmentManager fm; private BucketsSelectionFragment mSelectionFragment; private RadioGroup mRadioGroup; private Button mDoneBtn; private TranslateAnimation mSlideInAnimation; private TranslateAnimation mSlideOutAnimation; private RelativeLayout mDirectoriesLayout; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mActivity = (CameraUploadConfigActivity) getActivity(); View rootView = mActivity.getLayoutInflater().inflate(R.layout.cuc_local_directory_fragment, null); mDirectoriesLayout = (RelativeLayout) rootView.findViewById(R.id.cuc_local_directory_list_container); mSlideInAnimation = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 2.0f, Animation.RELATIVE_TO_SELF, 0.0f); mSlideInAnimation.setDuration(600); mSlideInAnimation.setInterpolator(new AccelerateDecelerateInterpolator()); mSlideInAnimation.setAnimationListener(slideInListener); mSlideOutAnimation = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 2.0f); mSlideOutAnimation.setDuration(600); mSlideOutAnimation.setInterpolator(new AccelerateDecelerateInterpolator()); mSlideOutAnimation.setAnimationListener(slideOutListener); fm = getChildFragmentManager(); fm.beginTransaction() .add(R.id.cuc_local_directory_list_container, getSelectionFragment()) .commit(); mRadioGroup = (RadioGroup) rootView.findViewById(R.id.cuc_local_directory_radio_group); mDoneBtn = (Button) rootView.findViewById(R.id.cuc_local_directory_btn); mDoneBtn.setOnClickListener(onClickListener); if (mActivity.isChooseDirPage()) mDoneBtn.setVisibility(View.VISIBLE); // RadioButton mAutoScanRadioBtn = (RadioButton) mRadioGroup.findViewById(R.id.cuc_local_library_auto_scan_rb); // RadioButton mCustomPickRadioBtn = (RadioButton) mRadioGroup.findViewById(R.id.cuc_local_library_pick_folders_rb); SettingsManager settingsManager = SettingsManager.instance(); if (settingsManager.getCameraUploadBucketList().isEmpty()) { // auto scan mDirectoriesLayout.setVisibility(View.INVISIBLE); mDirectoriesLayout.setEnabled(false); mRadioGroup.check(R.id.cuc_local_directory_auto_scan_rb); } else { // pick custom folders to scan mDirectoriesLayout.setVisibility(View.VISIBLE); mDirectoriesLayout.setEnabled(true); mRadioGroup.check(R.id.cuc_local_directory_pick_folders_rb); } mRadioGroup.setOnCheckedChangeListener(onCheckedChangeListener); return rootView; } /** * RadioButton selection listener. */ private OnCheckedChangeListener onCheckedChangeListener = new OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int radioButtonId) { switch (radioButtonId) { case R.id.cuc_local_directory_auto_scan_rb: mActivity.saveSettings(); mDirectoriesLayout.startAnimation(mSlideOutAnimation); mDirectoriesLayout.setEnabled(false); mActivity.saveSettings(); break; case R.id.cuc_local_directory_pick_folders_rb: mDirectoriesLayout.startAnimation(mSlideInAnimation); mDirectoriesLayout.setEnabled(true); mActivity.saveSettings(); break; } } }; public boolean isAutoScanSelected() { return mRadioGroup.getCheckedRadioButtonId() == R.id.cuc_local_directory_auto_scan_rb; } private View.OnClickListener onClickListener = new View.OnClickListener() { @Override public void onClick(View v) { mActivity.saveSettings(); mActivity.finish(); } }; /** * Slide out animation listener. */ private AnimationListener slideOutListener = new AnimationListener() { @Override public void onAnimationEnd(Animation arg0) { mDirectoriesLayout.setVisibility(View.INVISIBLE); } @Override public void onAnimationRepeat(Animation arg0) {} @Override public void onAnimationStart(Animation arg0) { mDirectoriesLayout.setVisibility(View.VISIBLE); } }; /** * Slide in animation listener. */ private AnimationListener slideInListener = new AnimationListener() { @Override public void onAnimationEnd(Animation arg0) { mDirectoriesLayout.setVisibility(View.VISIBLE); } @Override public void onAnimationRepeat(Animation arg0) {} @Override public void onAnimationStart(Animation arg0) { mDirectoriesLayout.setVisibility(View.VISIBLE); } }; /** * Instantiates a new fragment if mSelectionFragment is null. * Returns the current fragment, otherwise. */ public BucketsSelectionFragment getSelectionFragment() { if (mSelectionFragment == null) { mSelectionFragment = new BucketsSelectionFragment(); } return mSelectionFragment; } }