Example usage for android.view.animation AlphaAnimation setAnimationListener

List of usage examples for android.view.animation AlphaAnimation setAnimationListener

Introduction

In this page you can find the example usage for android.view.animation AlphaAnimation setAnimationListener.

Prototype

public void setAnimationListener(AnimationListener listener) 

Source Link

Document

Binds an animation listener to this animation.

Usage

From source file:com.irccloud.android.fragment.MessageViewFragment.java

public void showSpinner(boolean show) {
    if (show) {/*from  www.  jav  a2  s  .  c om*/
        if (Build.VERSION.SDK_INT < 16) {
            AlphaAnimation anim = new AlphaAnimation(0, 1);
            anim.setDuration(150);
            anim.setFillAfter(true);
            spinner.setAnimation(anim);
        } else {
            spinner.setAlpha(0);
            spinner.animate().alpha(1);
        }
        spinner.setVisibility(View.VISIBLE);
    } else {
        if (Build.VERSION.SDK_INT < 16) {
            AlphaAnimation anim = new AlphaAnimation(1, 0);
            anim.setDuration(150);
            anim.setFillAfter(true);
            anim.setAnimationListener(new AnimationListener() {
                @Override
                public void onAnimationStart(Animation animation) {

                }

                @Override
                public void onAnimationEnd(Animation animation) {
                    spinner.setVisibility(View.GONE);
                }

                @Override
                public void onAnimationRepeat(Animation animation) {

                }
            });
            spinner.setAnimation(anim);
        } else {
            spinner.animate().alpha(0).withEndAction(new Runnable() {
                @Override
                public void run() {
                    spinner.setVisibility(View.GONE);
                }
            });
        }
    }
}

From source file:com.irccloud.android.activity.MainActivity.java

@Override
public void onBufferSelected(int bid) {
    launchBid = -1;//from   ww w  .ja  va 2 s .co  m
    launchURI = null;
    cidToOpen = -1;
    bufferToOpen = null;
    setIntent(new Intent(this, MainActivity.class));

    if (suggestionsTimerTask != null)
        suggestionsTimerTask.cancel();
    sortedChannels = null;
    sortedUsers = null;

    if (drawerLayout != null) {
        drawerLayout.closeDrawers();
    }
    if (bid != -1 && conn != null && conn.getUserInfo() != null) {
        conn.getUserInfo().last_selected_bid = bid;
    }
    for (int i = 0; i < backStack.size(); i++) {
        if (buffer != null && backStack.get(i) == buffer.bid)
            backStack.remove(i);
    }
    if (buffer != null && buffer.bid >= 0 && bid != buffer.bid) {
        backStack.add(0, buffer.bid);
        buffer.draft = messageTxt.getText().toString();
    }
    if (buffer == null || buffer.bid == -1 || buffer.cid == -1 || buffer.bid == bid)
        shouldFadeIn = false;
    else
        shouldFadeIn = true;
    buffer = BuffersDataSource.getInstance().getBuffer(bid);
    if (buffer != null) {
        Crashlytics.log(Log.DEBUG, "IRCCloud",
                "Buffer selected: cid" + buffer.cid + " bid" + bid + " shouldFadeIn: " + shouldFadeIn);
        server = ServersDataSource.getInstance().getServer(buffer.cid);

        try {
            TreeMap<Long, EventsDataSource.Event> events = EventsDataSource.getInstance()
                    .getEventsForBuffer(buffer.bid);
            if (events != null) {
                events = (TreeMap<Long, EventsDataSource.Event>) events.clone();
                for (EventsDataSource.Event e : events.values()) {
                    if (e != null && e.highlight && e.from != null) {
                        UsersDataSource.User u = UsersDataSource.getInstance().getUser(buffer.bid, e.from);
                        if (u != null && u.last_mention < e.eid)
                            u.last_mention = e.eid;
                    }
                }
            }
        } catch (Exception e) {
            Crashlytics.logException(e);
        }

        try {
            if (Build.VERSION.SDK_INT >= 16 && buffer != null && server != null) {
                NfcAdapter nfc = NfcAdapter.getDefaultAdapter(this);
                if (nfc != null) {
                    String uri = "irc";
                    if (server.ssl > 0)
                        uri += "s";
                    uri += "://" + server.hostname + ":" + server.port;
                    if (buffer.type.equals("channel")) {
                        uri += "/" + URLEncoder.encode(buffer.name, "UTF-8");
                        ChannelsDataSource.Channel c = ChannelsDataSource.getInstance()
                                .getChannelForBuffer(buffer.bid);
                        if (c != null && c.hasMode("k"))
                            uri += "," + c.paramForMode("k");
                    }
                    nfc.setNdefPushMessage(new NdefMessage(NdefRecord.createUri(uri)), this);
                }
            }
        } catch (Exception e) {
        }
    } else {
        Crashlytics.log(Log.DEBUG, "IRCCloud",
                "Buffer selected but not found: bid" + bid + " shouldFadeIn: " + shouldFadeIn);
        server = null;
    }
    update_subtitle();
    final Bundle b = new Bundle();
    if (buffer != null)
        b.putInt("cid", buffer.cid);
    b.putInt("bid", bid);
    b.putBoolean("fade", shouldFadeIn);
    BuffersListFragment blf = (BuffersListFragment) getSupportFragmentManager()
            .findFragmentById(R.id.BuffersList);
    final MessageViewFragment mvf = (MessageViewFragment) getSupportFragmentManager()
            .findFragmentById(R.id.messageViewFragment);
    UsersListFragment ulf = (UsersListFragment) getSupportFragmentManager()
            .findFragmentById(R.id.usersListFragment);
    UsersListFragment ulf2 = (UsersListFragment) getSupportFragmentManager()
            .findFragmentById(R.id.usersListFragment2);
    if (mvf != null)
        mvf.ready = false;
    if (blf != null)
        blf.setSelectedBid(bid);
    if (ulf != null)
        ulf.setArguments(b);
    if (ulf2 != null)
        ulf2.setArguments(b);

    if (shouldFadeIn) {
        Crashlytics.log(Log.DEBUG, "IRCCloud", "Fade Out");
        if (Build.VERSION.SDK_INT < 16) {
            AlphaAnimation anim = new AlphaAnimation(1, 0);
            anim.setDuration(150);
            anim.setFillAfter(true);
            anim.setAnimationListener(new Animation.AnimationListener() {
                @Override
                public void onAnimationStart(Animation animation) {

                }

                @Override
                public void onAnimationEnd(Animation animation) {
                    if (mvf != null)
                        mvf.setArguments(b);
                    messageTxt.setText("");
                    if (buffer != null && buffer.draft != null)
                        messageTxt.append(buffer.draft);
                }

                @Override
                public void onAnimationRepeat(Animation animation) {

                }
            });
            try {
                mvf.getListView().startAnimation(anim);
                ulf.getListView().startAnimation(anim);
            } catch (Exception e) {

            }
        } else {
            mvf.getListView().animate().alpha(0).withEndAction(new Runnable() {
                @Override
                public void run() {
                    if (mvf != null)
                        mvf.setArguments(b);
                    messageTxt.setText("");
                    if (buffer != null && buffer.draft != null)
                        messageTxt.append(buffer.draft);
                }
            });
            ulf.getListView().animate().alpha(0);
        }
        mvf.showSpinner(true);
    } else {
        if (mvf != null)
            mvf.setArguments(b);
        messageTxt.setText("");
        if (buffer != null && buffer.draft != null)
            messageTxt.append(buffer.draft);
    }

    updateUsersListFragmentVisibility();
    supportInvalidateOptionsMenu();
    if (excludeBIDTask != null)
        excludeBIDTask.cancel(true);
    excludeBIDTask = new ExcludeBIDTask();
    excludeBIDTask.execute(bid);
    if (drawerLayout != null)
        new RefreshUpIndicatorTask().execute((Void) null);
    if (buffer != null && buffer.cid != -1) {
        if (drawerLayout != null) {
            drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, Gravity.LEFT);
            getSupportActionBar().setHomeButtonEnabled(true);
        }
    }
    update_suggestions(false);
}

From source file:com.irccloud.android.activity.MainActivity.java

private void update_suggestions(boolean force) {
    if (buffer != null && suggestionsContainer != null && messageTxt != null && messageTxt.getText() != null) {
        String text;/*w  ww  . j av  a2 s  .co  m*/
        try {
            text = messageTxt.getText().toString();
        } catch (Exception e) {
            text = "";
        }
        if (text.lastIndexOf(' ') > 0 && text.lastIndexOf(' ') < text.length() - 1) {
            text = text.substring(text.lastIndexOf(' ') + 1);
        }
        if (text.endsWith(":"))
            text = text.substring(0, text.length() - 1);
        text = text.toLowerCase();
        final ArrayList<String> sugs = new ArrayList<String>();
        HashSet<String> sugs_set = new HashSet<String>();
        if (text.length() > 2 || force || (text.length() > 0 && suggestionsAdapter.activePos != -1)) {
            ArrayList<ChannelsDataSource.Channel> channels = sortedChannels;
            if (channels == null) {
                channels = ChannelsDataSource.getInstance().getChannels();
                Collections.sort(channels, new Comparator<ChannelsDataSource.Channel>() {
                    @Override
                    public int compare(ChannelsDataSource.Channel lhs, ChannelsDataSource.Channel rhs) {
                        return lhs.name.compareTo(rhs.name);
                    }
                });

                sortedChannels = channels;
            }

            if (buffer != null && messageTxt.getText().length() > 0 && buffer.type.equals("channel")
                    && buffer.name.toLowerCase().startsWith(text) && !sugs_set.contains(buffer.name)) {
                sugs_set.add(buffer.name);
                sugs.add(buffer.name);
            }
            if (channels != null) {
                for (ChannelsDataSource.Channel channel : channels) {
                    if (text.length() > 0 && text.charAt(0) == channel.name.charAt(0)
                            && channel.name.toLowerCase().startsWith(text)
                            && !sugs_set.contains(channel.name)) {
                        sugs_set.add(channel.name);
                        sugs.add(channel.name);
                    }
                }
            }

            JSONObject disableAutoSuggest = null;
            if (NetworkConnection.getInstance().getUserInfo() != null
                    && NetworkConnection.getInstance().getUserInfo().prefs != null) {
                try {
                    if (NetworkConnection.getInstance().getUserInfo().prefs.has("channel-disableAutoSuggest"))
                        disableAutoSuggest = NetworkConnection.getInstance().getUserInfo().prefs
                                .getJSONObject("channel-disableAutoSuggest");
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }

            boolean disabled;
            try {
                disabled = disableAutoSuggest != null && disableAutoSuggest.has(String.valueOf(buffer.bid))
                        && disableAutoSuggest.getBoolean(String.valueOf(buffer.bid));
            } catch (JSONException e) {
                disabled = false;
            }

            ArrayList<UsersDataSource.User> users = sortedUsers;
            if (users == null && buffer != null && (force || !disabled)) {
                users = UsersDataSource.getInstance().getUsersForBuffer(buffer.bid);
                if (users != null) {
                    Collections.sort(users, new Comparator<UsersDataSource.User>() {
                        @Override
                        public int compare(UsersDataSource.User lhs, UsersDataSource.User rhs) {
                            if (lhs.last_mention > rhs.last_mention)
                                return -1;
                            if (lhs.last_mention < rhs.last_mention)
                                return 1;
                            return lhs.nick.compareToIgnoreCase(rhs.nick);
                        }
                    });
                }
                sortedUsers = users;
            }
            if (users != null) {
                for (UsersDataSource.User user : users) {
                    String nick = user.nick_lowercase;
                    if (text.matches("^[a-zA-Z0-9]+.*"))
                        nick = nick.replaceFirst("^[^a-zA-Z0-9]+", "");

                    if (nick.startsWith(text) && !sugs_set.contains(user.nick)) {
                        sugs_set.add(user.nick);
                        sugs.add(user.nick);
                    }
                }
            }
        }

        if (Build.VERSION.SDK_INT >= 14 && text.startsWith(":") && text.length() > 1) {
            String q = text.toLowerCase().substring(1);
            for (String emocode : ColorFormatter.emojiMap.keySet()) {
                if (emocode.startsWith(q)) {
                    String emoji = ColorFormatter.emojiMap.get(emocode);
                    if (!sugs_set.contains(emoji)) {
                        sugs_set.add(emoji);
                        sugs.add(emoji);
                    }
                }
            }
        }

        if (sugs.size() == 0 && suggestionsContainer.getVisibility() == View.INVISIBLE)
            return;

        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                if (sugs.size() > 0) {
                    if (suggestionsAdapter.activePos == -1) {
                        suggestionsAdapter.clear();
                        for (String s : sugs) {
                            suggestionsAdapter.add(s);
                        }
                        suggestionsAdapter.notifyDataSetChanged();
                        suggestions.smoothScrollToPosition(0);
                    }
                    if (suggestionsContainer.getVisibility() == View.INVISIBLE) {
                        if (Build.VERSION.SDK_INT < 16) {
                            AlphaAnimation anim = new AlphaAnimation(0, 1);
                            anim.setDuration(250);
                            anim.setFillAfter(true);
                            suggestionsContainer.startAnimation(anim);
                        } else {
                            suggestionsContainer.setAlpha(0);
                            suggestionsContainer.setTranslationY(1000);
                            suggestionsContainer.animate().alpha(1).translationY(0)
                                    .setInterpolator(new DecelerateInterpolator());
                        }
                        suggestionsContainer.setVisibility(View.VISIBLE);
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                if (suggestionsContainer.getHeight() < 48) {
                                    getSupportActionBar().hide();
                                }
                            }
                        });
                    }
                } else {
                    if (suggestionsContainer.getVisibility() == View.VISIBLE) {
                        if (Build.VERSION.SDK_INT < 16) {
                            AlphaAnimation anim = new AlphaAnimation(1, 0);
                            anim.setDuration(250);
                            anim.setFillAfter(true);
                            anim.setAnimationListener(new Animation.AnimationListener() {
                                @Override
                                public void onAnimationStart(Animation animation) {

                                }

                                @Override
                                public void onAnimationEnd(Animation animation) {
                                    suggestionsContainer.setVisibility(View.INVISIBLE);
                                    suggestionsAdapter.clear();
                                    suggestionsAdapter.notifyDataSetChanged();
                                }

                                @Override
                                public void onAnimationRepeat(Animation animation) {

                                }
                            });
                            suggestionsContainer.startAnimation(anim);
                        } else {
                            suggestionsContainer.animate().alpha(1).translationY(1000)
                                    .setInterpolator(new AccelerateInterpolator())
                                    .withEndAction(new Runnable() {
                                        @Override
                                        public void run() {
                                            suggestionsContainer.setVisibility(View.INVISIBLE);
                                            suggestionsAdapter.clear();
                                            suggestionsAdapter.notifyDataSetChanged();
                                        }
                                    });
                        }
                        sortedUsers = null;
                        sortedChannels = null;
                        if (!getSupportActionBar().isShowing())
                            getSupportActionBar().show();
                    }
                }
            }
        });
    }
}