Search in sources :

Example 1 with HeaderItem

use of im.actor.sdk.controllers.pickers.file.items.HeaderItem 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 HeaderItem

use of im.actor.sdk.controllers.pickers.file.items.HeaderItem 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 HeaderItem

use of im.actor.sdk.controllers.pickers.file.items.HeaderItem in project actor-platform by actorapp.

the class ExplorerFragment method loadHistory.

private ArrayList<ExplorerItem> loadHistory() {
    ArrayList<ExplorerItem> history = new ArrayList<ExplorerItem>();
    ArrayList<String> pathesFromDB = HistoryDatabase.getHistory(pickerActivity);
    if (!pathesFromDB.isEmpty()) {
        history.add(new HeaderItem(getString(R.string.picker_file_header_recent)));
        for (String pathFromDB : pathesFromDB) {
            File historyFile = new File(pathFromDB);
            if (historyFile.exists())
                history.add(getFileItem(historyFile));
        }
    }
    return history;
}
Also used : ExplorerItem(im.actor.sdk.controllers.pickers.file.items.ExplorerItem) ArrayList(java.util.ArrayList) HeaderItem(im.actor.sdk.controllers.pickers.file.items.HeaderItem) File(java.io.File)

Example 4 with HeaderItem

use of im.actor.sdk.controllers.pickers.file.items.HeaderItem in project actor-platform by actorapp.

the class WelcomeExplorerAdapter method getView.

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View itemView;
    ExplorerItem item = getItem(position);
    if (item instanceof HeaderItem) {
        itemView = View.inflate(context, R.layout.picker_item_header, null);
        itemView.setTag("header");
        item.bindData(itemView);
        return itemView;
    } else {
        if (convertView != null && !convertView.getTag().equals("header"))
            return super.getView(position, convertView, parent);
        else
            return super.getView(position, null, parent);
    }
}
Also used : ExplorerItem(im.actor.sdk.controllers.pickers.file.items.ExplorerItem) HeaderItem(im.actor.sdk.controllers.pickers.file.items.HeaderItem) View(android.view.View)

Aggregations

HeaderItem (im.actor.sdk.controllers.pickers.file.items.HeaderItem)4 View (android.view.View)2 AlphaAnimation (android.view.animation.AlphaAnimation)2 AnimationSet (android.view.animation.AnimationSet)2 TranslateAnimation (android.view.animation.TranslateAnimation)2 ListView (android.widget.ListView)2 TextView (android.widget.TextView)2 ExplorerItem (im.actor.sdk.controllers.pickers.file.items.ExplorerItem)2 MaterialInterpolator (im.actor.sdk.controllers.pickers.file.view.MaterialInterpolator)2 File (java.io.File)2 ArrayList (java.util.ArrayList)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 FileNameOrderComparator (im.actor.sdk.controllers.pickers.file.util.FileNameOrderComparator)1