Search in sources :

Example 1 with MaterialInterpolator

use of im.actor.sdk.controllers.pickers.file.view.MaterialInterpolator in project actor-platform by actorapp.

the class ExplorerFragment method onCreateView.

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    Log.d("Explorer Animation", "Created");
    {
        rootView = inflater.inflate(R.layout.picker_fragment_file_picker, container, false);
        list = (ListView) rootView.findViewById(R.id.list);
        Bundle bundle = getArguments();
        statusView = (TextView) rootView.findViewById(R.id.status);
        emptyView = rootView.findViewById(R.id.empty);
        items = new ArrayList<ExplorerItem>();
        if (bundle != null) {
            path = bundle.getString("path");
            Log.d(LOG_TAG, "Path: " + path);
            File currentPathFile = new File(path);
            File[] fileList = currentPathFile.listFiles();
            title = currentPathFile.getPath();
            if (title.contains(Environment.getExternalStorageDirectory().getPath())) {
                title = title.replace(Environment.getExternalStorageDirectory().getPath(), "");
            }
            if (title.length() > 0 && title.toCharArray()[0] == '/') {
                title = title.substring(1);
            }
            if (path.equals(Environment.getExternalStorageDirectory().getPath())) {
                if (Environment.isExternalStorageEmulated()) {
                    title = getString(R.string.picker_file_memory_phone);
                } else
                    title = getString((R.string.picker_file_memory_external));
            } else if (path.equals("/"))
                title = getString(R.string.picker_file_memory_phone);
            if (fileList == null) {
                statusView.setVisibility(View.VISIBLE);
                File external = Environment.getExternalStorageDirectory();
                if (path.equals(external.getPath()))
                    statusView.setText(R.string.picker_file_memory_external_error);
                else
                    statusView.setText(R.string.picker_file_denied);
                return rootView;
            } else {
                if (fileList.length == 0) {
                    emptyView.setVisibility(View.VISIBLE);
                    AnimationSet slideInAnimation = new AnimationSet(true);
                    slideInAnimation.setInterpolator(new MaterialInterpolator());
                    slideInAnimation.setDuration(280);
                    AlphaAnimation alphaAnimation = new AlphaAnimation(0, 1);
                    slideInAnimation.addAnimation(alphaAnimation);
                    TranslateAnimation translateAnimation = new TranslateAnimation(0, 0, 150, 0);
                    slideInAnimation.addAnimation(translateAnimation);
                    emptyView.startAnimation(slideInAnimation);
                    statusView.setVisibility(View.VISIBLE);
                    AnimationSet slideInAnimation1 = new AnimationSet(true);
                    slideInAnimation1.setInterpolator(new MaterialInterpolator());
                    slideInAnimation1.setDuration(280);
                    //cause of offset
                    slideInAnimation1.setStartOffset(150);
                    AlphaAnimation alphaAnimation1 = new AlphaAnimation(0, 1);
                    slideInAnimation1.addAnimation(alphaAnimation1);
                    TranslateAnimation translateAnimation1 = new TranslateAnimation(0, 0, 150, 0);
                    slideInAnimation1.addAnimation(translateAnimation1);
                    statusView.startAnimation(slideInAnimation1);
                    statusView.setText(R.string.picker_file_directory_empty);
                //return rootView;
                }
            }
            Log.d(LOG_TAG, "Size: " + fileList.length);
            for (File file : fileList) {
                putItem(file);
            }
            Collections.sort(items, new FileNameOrderComparator());
            insertBack();
            adapter = new ExplorerAdapter(getActivity(), items);
        } else {
            welcome = true;
            //                items.add(new StorageItem(getActivity()));
            adapter = new WelcomeExplorerAdapter(getActivity(), items);
            items.add(new HeaderItem(getString(R.string.picker_file_header_main)));
            String externalStorageState = Environment.getExternalStorageState();
            Log.w(LOG_TAG, externalStorageState);
            if (externalStorageState.equals(Environment.MEDIA_REMOVED) || externalStorageState.equals(Environment.MEDIA_BAD_REMOVAL) || externalStorageState.equals(Environment.MEDIA_UNKNOWN) || externalStorageState.equals(Environment.MEDIA_UNMOUNTED) || externalStorageState.equals(Environment.MEDIA_UNMOUNTABLE) || externalStorageState.equals(Environment.MEDIA_SHARED) || externalStorageState.equals(Environment.MEDIA_NOFS)) {
                items.add(new StorageItem(getString(R.string.picker_file_memory_phone)));
            } else {
                /*
                    File cameraFile = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
                    if(cameraFile.exists()) {
                       items.add(new FolderItem(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM),R.drawable.picker_folder_camera,getString(R.string.picker_files_camera)));
                    }*/
                putItem(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM));
                putItem(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS));
                putItem((Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)));
                putItem(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC));
                putItem((Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES)));
                if (Environment.isExternalStorageEmulated()) {
                    items.add(new ExternalStorageItem(getString(R.string.picker_file_memory_phone), R.drawable.picker_memory));
                } else
                    items.add(new ExternalStorageItem(getString(R.string.picker_file_memory_external), R.drawable.picker_sdcard));
                if (Build.VERSION.SDK_INT >= 19) {
                // putItem(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS));
                // even on sdk>19 documents folder does not work.
                }
            }
            path = "";
            title = getString(R.string.picker_file_activity_title);
            ArrayList<ExplorerItem> historyItems = loadHistory();
            if (!historyItems.isEmpty()) {
                items.addAll(historyItems);
            }
        }
        list.setAdapter(adapter);
        list.setOnItemClickListener((BasePickerActivity) getActivity());
    }
    pickerActivity.updateCounter();
    return rootView;
}
Also used : Bundle(android.os.Bundle) ArrayList(java.util.ArrayList) TranslateAnimation(android.view.animation.TranslateAnimation) HeaderItem(im.actor.sdk.controllers.pickers.file.items.HeaderItem) AlphaAnimation(android.view.animation.AlphaAnimation) MaterialInterpolator(im.actor.sdk.controllers.pickers.file.view.MaterialInterpolator) ListView(android.widget.ListView) FileNameOrderComparator(im.actor.sdk.controllers.pickers.file.util.FileNameOrderComparator) TextView(android.widget.TextView) File(java.io.File) AnimationSet(android.view.animation.AnimationSet) ExternalStorageItem(im.actor.sdk.controllers.pickers.file.items.ExternalStorageItem) StorageItem(im.actor.sdk.controllers.pickers.file.items.StorageItem) ExternalStorageItem(im.actor.sdk.controllers.pickers.file.items.ExternalStorageItem)

Example 2 with MaterialInterpolator

use of im.actor.sdk.controllers.pickers.file.view.MaterialInterpolator in project actor-platform by actorapp.

the class ExplorerFragment method onCreateAnimator.

@Override
public Animator onCreateAnimator(int transit, boolean enter, int nextAnim) {
    Log.d("Explorer animation", "CreateAnimator: " + transit + " " + enter + " " + nextAnim);
    int animationLength = 0;
    if (nextAnim == R.animator.picker_fragment_explorer_welcome_enter) {
        list.setAlpha(0);
        list.post(new Runnable() {

            @Override
            public void run() {
                list.setAlpha(1);
                int offsetIncreaseOffset = 0;
                for (int i = 0; i < list.getChildCount(); i++) {
                    View searchItemView = list.getChildAt(i);
                    AnimationSet slideInAnimation = new AnimationSet(true);
                    slideInAnimation.setInterpolator(new MaterialInterpolator());
                    slideInAnimation.setDuration(180);
                    if (items.get(i) instanceof HeaderItem) {
                        offsetIncreaseOffset += 150;
                        slideInAnimation.setStartOffset(i * 50 + offsetIncreaseOffset);
                        offsetIncreaseOffset += 200;
                    } else
                        slideInAnimation.setStartOffset(i * 50 + offsetIncreaseOffset);
                    AlphaAnimation alphaAnimation = new AlphaAnimation(0, 1);
                    slideInAnimation.addAnimation(alphaAnimation);
                    TranslateAnimation translateAnimation = new TranslateAnimation(0, 0, 150, 0);
                    slideInAnimation.addAnimation(translateAnimation);
                    searchItemView.startAnimation(slideInAnimation);
                }
            }
        });
        animationLength = list.getChildCount() * 100 + 50;
        Log.d("Explorer animation", "CreateAnimator: enter");
    } else if (nextAnim == R.animator.picker_fragment_explorer_enter) {
        list.setAlpha(0);
        list.post(new Runnable() {

            @Override
            public void run() {
                list.setAlpha(1);
                int offsetIncreaseOffset = 0;
                for (int i = 0; i < list.getChildCount(); i++) {
                    View searchItemView = list.getChildAt(i);
                    AnimationSet slideInAnimation = new AnimationSet(true);
                    slideInAnimation.setInterpolator(new MaterialInterpolator());
                    slideInAnimation.setDuration(100);
                    slideInAnimation.setStartOffset(i * 50 + offsetIncreaseOffset);
                    AlphaAnimation alphaAnimation = new AlphaAnimation(0, 1);
                    slideInAnimation.addAnimation(alphaAnimation);
                    TranslateAnimation translateAnimation = new TranslateAnimation(100, 0, 0, 0);
                    slideInAnimation.addAnimation(translateAnimation);
                    searchItemView.startAnimation(slideInAnimation);
                }
            }
        });
        animationLength = list.getChildCount() * 100 + 50;
        Log.d("Explorer animation", "CreateAnimator: enter");
    } else if (nextAnim == R.animator.picker_fragment_explorer_welcome_exit || nextAnim == R.animator.picker_fragment_explorer_exit) {
        for (int i = 0; i < list.getChildCount(); i++) {
            View searchItemView = list.getChildAt(i);
            AnimationSet slideInAnimation = new AnimationSet(true);
            slideInAnimation.setInterpolator(new MaterialInterpolator());
            slideInAnimation.setDuration(100);
            slideInAnimation.setStartOffset(i * 50);
            slideInAnimation.setFillAfter(true);
            AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);
            alphaAnimation.setFillAfter(true);
            slideInAnimation.addAnimation(alphaAnimation);
            TranslateAnimation translateAnimation = new TranslateAnimation(0, -100, 0, 0);
            slideInAnimation.addAnimation(translateAnimation);
            searchItemView.startAnimation(slideInAnimation);
        }
        // list.getChildCount() * 100 + 50;
        animationLength = 0;
        Log.d("Explorer animation", "CreateAnimator: exit");
    } else if (nextAnim == R.animator.picker_fragment_explorer_return) {
        list.setAlpha(0);
        list.post(new Runnable() {

            @Override
            public void run() {
                list.setAlpha(1);
                for (int i = 0; i < list.getChildCount(); i++) {
                    View searchItemView = list.getChildAt(i);
                    AnimationSet slideInAnimation = new AnimationSet(true);
                    slideInAnimation.setInterpolator(new MaterialInterpolator());
                    slideInAnimation.setDuration(100);
                    slideInAnimation.setStartOffset(i * 50);
                    AlphaAnimation alphaAnimation = new AlphaAnimation(0, 1);
                    slideInAnimation.addAnimation(alphaAnimation);
                    TranslateAnimation translateAnimation = new TranslateAnimation(-100, 0, 0, 0);
                    slideInAnimation.addAnimation(translateAnimation);
                    searchItemView.startAnimation(slideInAnimation);
                }
            }
        });
        animationLength = list.getChildCount() * 100 + 50;
        Log.d("Explorer animation", "CreateAnimator: return");
    } else if (nextAnim == R.animator.picker_fragment_explorer_out) {
        for (int i = 0; i < list.getChildCount(); i++) {
            View searchItemView = list.getChildAt(i);
            AnimationSet slideInAnimation = new AnimationSet(true);
            slideInAnimation.setInterpolator(new MaterialInterpolator());
            slideInAnimation.setDuration(100);
            slideInAnimation.setStartOffset(i * 50);
            slideInAnimation.setFillAfter(true);
            AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);
            alphaAnimation.setFillAfter(true);
            slideInAnimation.addAnimation(alphaAnimation);
            TranslateAnimation translateAnimation = new TranslateAnimation(0, 100, 0, 0);
            slideInAnimation.addAnimation(translateAnimation);
            searchItemView.startAnimation(slideInAnimation);
        }
        if (items.size() == 1) {
            AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);
            alphaAnimation.setInterpolator(new MaterialInterpolator());
            alphaAnimation.setDuration(100);
            alphaAnimation.setFillAfter(true);
            emptyView.startAnimation(alphaAnimation);
            statusView.startAnimation(alphaAnimation);
            animationLength = 250;
        }
        //else
        // list.getChildCount() * 100 + 50;
        animationLength = 0;
        Log.d("Explorer animation", "CreateAnimator: out");
    }
    AnimatorSet animator = (AnimatorSet) AnimatorInflater.loadAnimator(pickerActivity, R.animator.picker_fragment_explorer_enter);
    animator.setDuration(animationLength);
    return animator;
}
Also used : MaterialInterpolator(im.actor.sdk.controllers.pickers.file.view.MaterialInterpolator) TranslateAnimation(android.view.animation.TranslateAnimation) AnimatorSet(android.animation.AnimatorSet) HeaderItem(im.actor.sdk.controllers.pickers.file.items.HeaderItem) View(android.view.View) TextView(android.widget.TextView) ListView(android.widget.ListView) AnimationSet(android.view.animation.AnimationSet) AlphaAnimation(android.view.animation.AlphaAnimation)

Example 3 with MaterialInterpolator

use of im.actor.sdk.controllers.pickers.file.view.MaterialInterpolator in project actor-platform by actorapp.

the class SearchFileFragment method showItems.

private void showItems(ArrayList<ExplorerItem> found) {
    items.clear();
    items.addAll(found);
    status.setVisibility(View.GONE);
    adapter.notifyDataSetChanged();
    if (!animated) {
        listView.setAlpha(0);
        listView.post(new Runnable() {

            @Override
            public void run() {
                listView.setAlpha(1);
                for (int i = 0; i < listView.getChildCount(); i++) {
                    View searchItemView = listView.getChildAt(i);
                    AnimationSet slideInAnimation = new AnimationSet(true);
                    slideInAnimation.setInterpolator(new MaterialInterpolator());
                    slideInAnimation.setDuration(200);
                    if (i != 0) {
                        slideInAnimation.setStartOffset(i * 50 + 25);
                    } else {
                        slideInAnimation.setStartOffset(75);
                    }
                    AlphaAnimation alphaAnimation = new AlphaAnimation(0, 1);
                    slideInAnimation.addAnimation(alphaAnimation);
                    TranslateAnimation translateAnimation = new TranslateAnimation(0, 0, 150, 0);
                    slideInAnimation.addAnimation(translateAnimation);
                    searchItemView.startAnimation(slideInAnimation);
                }
            }
        });
        animated = true;
    } else
        listView.setVisibility(View.VISIBLE);
}
Also used : MaterialInterpolator(im.actor.sdk.controllers.pickers.file.view.MaterialInterpolator) TranslateAnimation(android.view.animation.TranslateAnimation) SearchView(android.support.v7.widget.SearchView) View(android.view.View) AbsListView(android.widget.AbsListView) TextView(android.widget.TextView) ListView(android.widget.ListView) AnimationSet(android.view.animation.AnimationSet) AlphaAnimation(android.view.animation.AlphaAnimation)

Example 4 with MaterialInterpolator

use of im.actor.sdk.controllers.pickers.file.view.MaterialInterpolator in project actor-platform by actorapp.

the class SearchFileFragment method onCreateView.

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    rootView = inflater.inflate(R.layout.picker_fragment_file_search, container, false);
    root = getArguments().getString("root");
    //        ViewGroup searchContainer = (ViewGroup) rootView.findViewById(R.id.search_container);
    View contentContainer = rootView.findViewById(R.id.content_container);
    status = (TextView) rootView.findViewById(R.id.status);
    // progress = new IndeterminateWrapper(pickerActivity);
    // progress.show();
    listView = (ListView) contentContainer.findViewById(R.id.list);
    listView.setOnScrollListener(this);
    adapter = new ExplorerAdapter(pickerActivity, items);
    listView.setAdapter(adapter);
    listView.setOnItemClickListener(pickerActivity);
    AlphaAnimation alphaAnimation = new AlphaAnimation(0, 1);
    alphaAnimation.setDuration(300);
    alphaAnimation.setInterpolator(new MaterialInterpolator());
    TranslateAnimation translateAnimation = new TranslateAnimation(0, 0, -150, 0);
    translateAnimation.setDuration(450);
    translateAnimation.setInterpolator(new MaterialInterpolator());
    //  searchContainer.startAnimation(translateAnimation);
    contentContainer.startAnimation(alphaAnimation);
    /**/
    pickerActivity.getSupportActionBar().setTitle(R.string.picker_file_search_activity_title);
    if (index.isEmpty()) {
        indexingTask = new IndexTask(new File(root)) {

            @Override
            public void onIndexingEnded(ArrayList<File> indexedItems) {
                index.clear();
                index.addAll(indexedItems);
                indexingTask = null;
                if (searchingTask != null) {
                    searchingTask.execute();
                } else {
                //  progress.hide();
                }
            }
        };
        //searchingProgressBar.progressiveStart();
        indexingTask.execute();
    } else {
    }
    return rootView;
}
Also used : MaterialInterpolator(im.actor.sdk.controllers.pickers.file.view.MaterialInterpolator) IndexTask(im.actor.sdk.controllers.pickers.file.search.IndexTask) TranslateAnimation(android.view.animation.TranslateAnimation) SearchView(android.support.v7.widget.SearchView) View(android.view.View) AbsListView(android.widget.AbsListView) TextView(android.widget.TextView) ListView(android.widget.ListView) File(java.io.File) AlphaAnimation(android.view.animation.AlphaAnimation)

Aggregations

AlphaAnimation (android.view.animation.AlphaAnimation)4 TranslateAnimation (android.view.animation.TranslateAnimation)4 ListView (android.widget.ListView)4 TextView (android.widget.TextView)4 MaterialInterpolator (im.actor.sdk.controllers.pickers.file.view.MaterialInterpolator)4 View (android.view.View)3 AnimationSet (android.view.animation.AnimationSet)3 SearchView (android.support.v7.widget.SearchView)2 AbsListView (android.widget.AbsListView)2 HeaderItem (im.actor.sdk.controllers.pickers.file.items.HeaderItem)2 File (java.io.File)2 AnimatorSet (android.animation.AnimatorSet)1 Bundle (android.os.Bundle)1 ExternalStorageItem (im.actor.sdk.controllers.pickers.file.items.ExternalStorageItem)1 StorageItem (im.actor.sdk.controllers.pickers.file.items.StorageItem)1 IndexTask (im.actor.sdk.controllers.pickers.file.search.IndexTask)1 FileNameOrderComparator (im.actor.sdk.controllers.pickers.file.util.FileNameOrderComparator)1 ArrayList (java.util.ArrayList)1