Search in sources :

Example 1 with EnhancedListView

use of de.timroes.android.listview.EnhancedListView in project Conversations by siacs.

the class ConversationActivity method onCreate.

@Override
protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (savedInstanceState != null) {
        mOpenConversation = savedInstanceState.getString(STATE_OPEN_CONVERSATION, null);
        mPanelOpen = savedInstanceState.getBoolean(STATE_PANEL_OPEN, true);
        int pos = savedInstanceState.getInt(STATE_FIRST_VISIBLE, -1);
        int offset = savedInstanceState.getInt(STATE_OFFSET_FROM_TOP, 1);
        if (pos >= 0 && offset <= 0) {
            Log.d(Config.LOGTAG, "retrieved scroll position from instanceState " + pos + ":" + offset);
            mScrollPosition = new Pair<>(pos, offset);
        } else {
            mScrollPosition = null;
        }
        String pending = savedInstanceState.getString(STATE_PENDING_URI, null);
        if (pending != null) {
            Log.d(Config.LOGTAG, "ConversationsActivity.onCreate() - restoring pending image uri");
            mPendingImageUris.clear();
            mPendingImageUris.add(Uri.parse(pending));
        }
    }
    setContentView(R.layout.fragment_conversations_overview);
    this.mConversationFragment = new ConversationFragment();
    FragmentTransaction transaction = getFragmentManager().beginTransaction();
    transaction.replace(R.id.selected_conversation, this.mConversationFragment, "conversation");
    transaction.commit();
    listView = (EnhancedListView) findViewById(R.id.list);
    this.listAdapter = new ConversationAdapter(this, conversationList);
    listView.setAdapter(this.listAdapter);
    final ActionBar actionBar = getActionBar();
    if (actionBar != null) {
        actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE);
    }
    listView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View clickedView, int position, long arg3) {
            if (getSelectedConversation() != conversationList.get(position)) {
                setSelectedConversation(conversationList.get(position));
                ConversationActivity.this.mConversationFragment.reInit(getSelectedConversation());
                conversationWasSelectedByKeyboard = false;
            }
            hideConversationsOverview();
            openConversation();
        }
    });
    listView.setDismissCallback(new EnhancedListView.OnDismissCallback() {

        @Override
        public EnhancedListView.Undoable onDismiss(final EnhancedListView enhancedListView, final int position) {
            final int index = listView.getFirstVisiblePosition();
            View v = listView.getChildAt(0);
            final int top = (v == null) ? 0 : (v.getTop() - listView.getPaddingTop());
            try {
                swipedConversation = listAdapter.getItem(position);
            } catch (IndexOutOfBoundsException e) {
                return null;
            }
            listAdapter.remove(swipedConversation);
            xmppConnectionService.markRead(swipedConversation);
            final boolean formerlySelected = (getSelectedConversation() == swipedConversation);
            if (position == 0 && listAdapter.getCount() == 0) {
                endConversation(swipedConversation, false, true);
                return null;
            } else if (formerlySelected) {
                setSelectedConversation(listAdapter.getItem(0));
                ConversationActivity.this.mConversationFragment.reInit(getSelectedConversation());
            }
            return new EnhancedListView.Undoable() {

                @Override
                public void undo() {
                    listAdapter.insert(swipedConversation, position);
                    if (formerlySelected) {
                        setSelectedConversation(swipedConversation);
                        ConversationActivity.this.mConversationFragment.reInit(getSelectedConversation());
                    }
                    swipedConversation = null;
                    listView.setSelectionFromTop(index + (listView.getChildCount() < position ? 1 : 0), top);
                }

                @Override
                public void discard() {
                    if (!swipedConversation.isRead() && swipedConversation.getMode() == Conversation.MODE_SINGLE) {
                        swipedConversation = null;
                        return;
                    }
                    endConversation(swipedConversation, false, false);
                    swipedConversation = null;
                }

                @Override
                public String getTitle() {
                    if (swipedConversation.getMode() == Conversation.MODE_MULTI) {
                        return getResources().getString(R.string.title_undo_swipe_out_muc);
                    } else {
                        return getResources().getString(R.string.title_undo_swipe_out_conversation);
                    }
                }
            };
        }
    });
    listView.enableSwipeToDismiss();
    listView.setSwipingLayout(R.id.swipeable_item);
    listView.setUndoStyle(EnhancedListView.UndoStyle.SINGLE_POPUP);
    listView.setUndoHideDelay(5000);
    listView.setRequireTouchBeforeDismiss(false);
    mContentView = findViewById(R.id.content_view_spl);
    if (mContentView == null) {
        mContentView = findViewById(R.id.content_view_ll);
    }
    if (mContentView instanceof SlidingPaneLayout) {
        SlidingPaneLayout mSlidingPaneLayout = (SlidingPaneLayout) mContentView;
        mSlidingPaneLayout.setShadowResource(R.drawable.es_slidingpane_shadow);
        mSlidingPaneLayout.setSliderFadeColor(0);
        mSlidingPaneLayout.setPanelSlideListener(new PanelSlideListener() {

            @Override
            public void onPanelOpened(View arg0) {
                mShouldPanelBeOpen.set(true);
                updateActionBarTitle();
                invalidateOptionsMenu();
                hideKeyboard();
                if (xmppConnectionServiceBound) {
                    xmppConnectionService.getNotificationService().setOpenConversation(null);
                }
                closeContextMenu();
            }

            @Override
            public void onPanelClosed(View arg0) {
                mShouldPanelBeOpen.set(false);
                listView.discardUndo();
                openConversation();
            }

            @Override
            public void onPanelSlide(View arg0, float arg1) {
            // TODO Auto-generated method stub
            }
        });
    }
}
Also used : OnItemClickListener(android.widget.AdapterView.OnItemClickListener) PanelSlideListener(android.support.v4.widget.SlidingPaneLayout.PanelSlideListener) ConversationAdapter(eu.siacs.conversations.ui.adapter.ConversationAdapter) SlidingPaneLayout(android.support.v4.widget.SlidingPaneLayout) View(android.view.View) AdapterView(android.widget.AdapterView) EnhancedListView(de.timroes.android.listview.EnhancedListView) SuppressLint(android.annotation.SuppressLint) FragmentTransaction(android.app.FragmentTransaction) EnhancedListView(de.timroes.android.listview.EnhancedListView) ActionBar(android.app.ActionBar)

Example 2 with EnhancedListView

use of de.timroes.android.listview.EnhancedListView in project Talon-for-Twitter by klinker24.

the class DrawerActivity method setUpDrawer.

public void setUpDrawer(int number, final String actName) {
    int currentAccount = sharedPrefs.getInt("current_account", 1);
    for (int i = 0; i < TimelinePagerAdapter.MAX_EXTRA_PAGES; i++) {
        String pageIdentifier = "account_" + currentAccount + "_page_" + (i + 1);
        int type = sharedPrefs.getInt(pageIdentifier, AppSettings.PAGE_TYPE_NONE);
        if (type != AppSettings.PAGE_TYPE_NONE) {
            number++;
        }
    }
    try {
        ViewConfiguration config = ViewConfiguration.get(this);
        Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
        if (menuKeyField != null) {
            menuKeyField.setAccessible(true);
            menuKeyField.setBoolean(config, false);
        }
    } catch (Exception ex) {
    // Ignore
    }
    actionBar = getActionBar();
    adapter = new MainDrawerArrayAdapter(context);
    MainDrawerArrayAdapter.setCurrent(context, number);
    TypedArray a = context.getTheme().obtainStyledAttributes(new int[] { R.attr.drawerIcon });
    int resource = a.getResourceId(0, 0);
    a.recycle();
    a = context.getTheme().obtainStyledAttributes(new int[] { R.attr.read_button });
    openMailResource = a.getResourceId(0, 0);
    a.recycle();
    a = context.getTheme().obtainStyledAttributes(new int[] { R.attr.unread_button });
    closedMailResource = a.getResourceId(0, 0);
    a.recycle();
    mDrawerLayout = (NotificationDrawerLayout) findViewById(R.id.drawer_layout);
    mDrawer = (LinearLayout) findViewById(R.id.left_drawer);
    HoloTextView name = (HoloTextView) mDrawer.findViewById(R.id.name);
    HoloTextView screenName = (HoloTextView) mDrawer.findViewById(R.id.screen_name);
    backgroundPic = (NetworkedCacheableImageView) mDrawer.findViewById(R.id.background_image);
    profilePic = (NetworkedCacheableImageView) mDrawer.findViewById(R.id.profile_pic_contact);
    final ImageButton showMoreDrawer = (ImageButton) mDrawer.findViewById(R.id.options);
    final LinearLayout logoutLayout = (LinearLayout) mDrawer.findViewById(R.id.logoutLayout);
    final Button logoutDrawer = (Button) mDrawer.findViewById(R.id.logoutButton);
    drawerList = (ListView) mDrawer.findViewById(R.id.drawer_list);
    notificationList = (EnhancedListView) findViewById(R.id.notificationList);
    try {
        mDrawerLayout = (NotificationDrawerLayout) findViewById(R.id.drawer_layout);
        mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, Gravity.START);
        mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow_rev, Gravity.END);
        mDrawerToggle = new ActionBarDrawerToggle(this, /* host Activity */
        mDrawerLayout, /* DrawerLayout object */
        resource, /* nav drawer icon to replace 'Up' caret */
        R.string.app_name, /* "open drawer" description */
        R.string.app_name) {

            /* "close drawer" description */
            public void onDrawerClosed(View view) {
                actionBar.setIcon(new ColorDrawable(getResources().getColor(android.R.color.transparent)));
                if (logoutVisible) {
                    Animation ranim = AnimationUtils.loadAnimation(context, R.anim.drawer_rotate_back);
                    ranim.setFillAfter(true);
                    showMoreDrawer.startAnimation(ranim);
                    logoutLayout.setVisibility(View.GONE);
                    drawerList.setVisibility(View.VISIBLE);
                    logoutVisible = false;
                }
                if (MainDrawerArrayAdapter.current > adapter.pageTypes.size()) {
                    actionBar.setTitle(actName);
                } else {
                    int position = mViewPager.getCurrentItem();
                    String title = "";
                    try {
                        title = "" + mSectionsPagerAdapter.getPageTitle(position);
                    } catch (NullPointerException e) {
                        title = "";
                    }
                    actionBar.setTitle(title);
                }
                try {
                    if (oldInteractions.getText().toString().equals(getResources().getString(R.string.new_interactions))) {
                        oldInteractions.setText(getResources().getString(R.string.old_interactions));
                        readButton.setImageResource(openMailResource);
                        notificationList.enableSwipeToDismiss();
                        notificationAdapter = new InteractionsCursorAdapter(context, InteractionsDataSource.getInstance(context).getUnreadCursor(DrawerActivity.settings.currentAccount));
                        notificationList.setAdapter(notificationAdapter);
                    }
                } catch (Exception e) {
                // don't have talon pull on
                }
                invalidateOptionsMenu();
            }

            public void onDrawerOpened(View drawerView) {
                actionBar.setTitle(getResources().getString(R.string.app_name));
                actionBar.setIcon(R.mipmap.ic_launcher);
                try {
                    notificationAdapter = new InteractionsCursorAdapter(context, InteractionsDataSource.getInstance(context).getUnreadCursor(settings.currentAccount));
                    notificationList.setAdapter(notificationAdapter);
                    notificationList.enableSwipeToDismiss();
                    oldInteractions.setText(getResources().getString(R.string.old_interactions));
                    readButton.setImageResource(openMailResource);
                    sharedPrefs.edit().putBoolean("new_notification", false).commit();
                } catch (Exception e) {
                // don't have talon pull on
                }
                invalidateOptionsMenu();
            }

            public void onDrawerSlide(View drawerView, float slideOffset) {
                super.onDrawerSlide(drawerView, slideOffset);
                if (!actionBar.isShowing()) {
                    actionBar.show();
                }
                if (translucent) {
                    statusBar.setVisibility(View.VISIBLE);
                }
            }
        };
        mDrawerLayout.setDrawerListener(mDrawerToggle);
    } catch (Exception e) {
    // landscape mode
    }
    actionBar.setDisplayHomeAsUpEnabled(true);
    actionBar.setHomeButtonEnabled(true);
    showMoreDrawer.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            if (logoutLayout.getVisibility() == View.GONE) {
                Animation ranim = AnimationUtils.loadAnimation(context, R.anim.drawer_rotate);
                ranim.setFillAfter(true);
                showMoreDrawer.startAnimation(ranim);
                Animation anim = AnimationUtils.loadAnimation(context, R.anim.fade_out);
                anim.setAnimationListener(new Animation.AnimationListener() {

                    @Override
                    public void onAnimationStart(Animation animation) {
                    }

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

                    @Override
                    public void onAnimationRepeat(Animation animation) {
                    }
                });
                anim.setDuration(300);
                drawerList.startAnimation(anim);
                Animation anim2 = AnimationUtils.loadAnimation(context, R.anim.fade_in);
                anim2.setAnimationListener(new Animation.AnimationListener() {

                    @Override
                    public void onAnimationStart(Animation animation) {
                    }

                    @Override
                    public void onAnimationEnd(Animation animation) {
                        logoutLayout.setVisibility(View.VISIBLE);
                    }

                    @Override
                    public void onAnimationRepeat(Animation animation) {
                    }
                });
                anim2.setDuration(300);
                logoutLayout.startAnimation(anim2);
                logoutVisible = true;
            } else {
                Animation ranim = AnimationUtils.loadAnimation(context, R.anim.drawer_rotate_back);
                ranim.setFillAfter(true);
                showMoreDrawer.startAnimation(ranim);
                Animation anim = AnimationUtils.loadAnimation(context, R.anim.fade_in);
                anim.setAnimationListener(new Animation.AnimationListener() {

                    @Override
                    public void onAnimationStart(Animation animation) {
                    }

                    @Override
                    public void onAnimationEnd(Animation animation) {
                        drawerList.setVisibility(View.VISIBLE);
                    }

                    @Override
                    public void onAnimationRepeat(Animation animation) {
                    }
                });
                anim.setDuration(300);
                drawerList.startAnimation(anim);
                Animation anim2 = AnimationUtils.loadAnimation(context, R.anim.fade_out);
                anim2.setAnimationListener(new Animation.AnimationListener() {

                    @Override
                    public void onAnimationStart(Animation animation) {
                    }

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

                    @Override
                    public void onAnimationRepeat(Animation animation) {
                    }
                });
                anim2.setDuration(300);
                logoutLayout.startAnimation(anim2);
                logoutVisible = false;
            }
        }
    });
    logoutDrawer.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            logoutFromTwitter();
        }
    });
    final String sName = settings.myName;
    final String sScreenName = settings.myScreenName;
    final String backgroundUrl = settings.myBackgroundUrl;
    final String profilePicUrl = settings.myProfilePicUrl;
    final BitmapLruCache mCache = App.getInstance(context).getProfileCache();
    if (!backgroundUrl.equals("")) {
        backgroundPic.loadImage(backgroundUrl, false, null);
    //ImageUtils.loadImage(context, backgroundPic, backgroundUrl, mCache);
    } else {
        backgroundPic.setImageDrawable(getResources().getDrawable(R.drawable.default_header_background));
    }
    backgroundPic.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            try {
                mDrawerLayout.closeDrawer(Gravity.START);
            } catch (Exception e) {
            }
            new Handler().postDelayed(new Runnable() {

                @Override
                public void run() {
                    Intent viewProfile = new Intent(context, ProfilePager.class);
                    viewProfile.putExtra("name", sName);
                    viewProfile.putExtra("screenname", sScreenName);
                    viewProfile.putExtra("proPic", profilePicUrl);
                    viewProfile.putExtra("tweetid", 0);
                    viewProfile.putExtra("retweet", false);
                    viewProfile.putExtra("long_click", false);
                    context.startActivity(viewProfile);
                }
            }, 400);
        }
    });
    backgroundPic.setOnLongClickListener(new View.OnLongClickListener() {

        @Override
        public boolean onLongClick(View view) {
            try {
                mDrawerLayout.closeDrawer(Gravity.START);
            } catch (Exception e) {
            }
            new Handler().postDelayed(new Runnable() {

                @Override
                public void run() {
                    Intent viewProfile = new Intent(context, ProfilePager.class);
                    viewProfile.putExtra("name", sName);
                    viewProfile.putExtra("screenname", sScreenName);
                    viewProfile.putExtra("proPic", profilePicUrl);
                    viewProfile.putExtra("tweetid", 0);
                    viewProfile.putExtra("retweet", false);
                    viewProfile.putExtra("long_click", true);
                    context.startActivity(viewProfile);
                }
            }, 400);
            return false;
        }
    });
    try {
        name.setText(sName);
        screenName.setText("@" + sScreenName);
        name.setTextSize(15);
        screenName.setTextSize(15);
    } catch (Exception e) {
    // 7 inch tablet in portrait
    }
    try {
        if (settings.roundContactImages) {
            //profilePic.loadImage(profilePicUrl, false, null, NetworkedCacheableImageView.CIRCLE);
            ImageUtils.loadCircleImage(context, profilePic, profilePicUrl, mCache);
        } else {
            profilePic.loadImage(profilePicUrl, false, null);
            ImageUtils.loadImage(context, profilePic, profilePicUrl, mCache);
        }
    } catch (Exception e) {
    // empty path again
    }
    drawerList.setAdapter(adapter);
    drawerList.setOnItemClickListener(new MainDrawerClickListener(context, mDrawerLayout, mViewPager));
    // set up for the second account
    // number of accounts logged in
    int count = 0;
    if (sharedPrefs.getBoolean("is_logged_in_1", false)) {
        count++;
    }
    if (sharedPrefs.getBoolean("is_logged_in_2", false)) {
        count++;
    }
    RelativeLayout secondAccount = (RelativeLayout) findViewById(R.id.second_profile);
    HoloTextView name2 = (HoloTextView) findViewById(R.id.name_2);
    HoloTextView screenname2 = (HoloTextView) findViewById(R.id.screen_name_2);
    NetworkedCacheableImageView proPic2 = (NetworkedCacheableImageView) findViewById(R.id.profile_pic_2);
    name2.setTextSize(15);
    screenname2.setTextSize(15);
    final int current = sharedPrefs.getInt("current_account", 1);
    // make a second account
    if (count == 1) {
        name2.setText(getResources().getString(R.string.new_account));
        screenname2.setText(getResources().getString(R.string.tap_to_setup));
        secondAccount.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                if (canSwitch) {
                    if (current == 1) {
                        sharedPrefs.edit().putInt("current_account", 2).commit();
                    } else {
                        sharedPrefs.edit().putInt("current_account", 1).commit();
                    }
                    context.sendBroadcast(new Intent("com.klinker.android.twitter.STOP_PUSH_SERVICE"));
                    context.sendBroadcast(new Intent("com.klinker.android.twitter.MARK_POSITION"));
                    Intent login = new Intent(context, LoginActivity.class);
                    AppSettings.invalidate();
                    finish();
                    startActivity(login);
                }
            }
        });
    } else {
        // switch accounts
        if (current == 1) {
            name2.setText(sharedPrefs.getString("twitter_users_name_2", ""));
            screenname2.setText("@" + sharedPrefs.getString("twitter_screen_name_2", ""));
            try {
                if (settings.roundContactImages) {
                    //proPic2.loadImage(sharedPrefs.getString("profile_pic_url_2", ""), true, null, NetworkedCacheableImageView.CIRCLE);
                    ImageUtils.loadCircleImage(context, proPic2, sharedPrefs.getString("profile_pic_url_2", ""), mCache);
                } else {
                    //proPic2.loadImage(sharedPrefs.getString("profile_pic_url_2", ""), true, null);
                    ImageUtils.loadImage(context, proPic2, sharedPrefs.getString("profile_pic_url_2", ""), mCache);
                }
            } catch (Exception e) {
            }
            secondAccount.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View view) {
                    if (canSwitch) {
                        context.sendBroadcast(new Intent("com.klinker.android.twitter.STOP_PUSH_SERVICE"));
                        context.sendBroadcast(new Intent("com.klinker.android.twitter.MARK_POSITION").putExtra("current_account", current));
                        Toast.makeText(context, "Preparing to switch", Toast.LENGTH_SHORT).show();
                        // we want to wait a second so that the mark position broadcast will work
                        new Thread(new Runnable() {

                            @Override
                            public void run() {
                                try {
                                    Thread.sleep(1000);
                                } catch (Exception e) {
                                }
                                sharedPrefs.edit().putInt("current_account", 2).commit();
                                sharedPrefs.edit().remove("new_notifications").remove("new_retweets").remove("new_favorites").remove("new_follows").commit();
                                AppSettings.invalidate();
                                finish();
                                Intent next = new Intent(context, MainActivity.class);
                                startActivity(next);
                            }
                        }).start();
                    }
                }
            });
        } else {
            name2.setText(sharedPrefs.getString("twitter_users_name_1", ""));
            screenname2.setText("@" + sharedPrefs.getString("twitter_screen_name_1", ""));
            try {
                if (settings.roundContactImages) {
                    //proPic2.loadImage(sharedPrefs.getString("profile_pic_url_1", ""), true, null, NetworkedCacheableImageView.CIRCLE);
                    ImageUtils.loadCircleImage(context, proPic2, sharedPrefs.getString("profile_pic_url_1", ""), mCache);
                } else {
                    //proPic2.loadImage(sharedPrefs.getString("profile_pic_url_1", ""), true, null);
                    ImageUtils.loadImage(context, proPic2, sharedPrefs.getString("profile_pic_url_1", ""), mCache);
                }
            } catch (Exception e) {
            }
            secondAccount.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View view) {
                    if (canSwitch) {
                        context.sendBroadcast(new Intent("com.klinker.android.twitter.STOP_PUSH_SERVICE"));
                        context.sendBroadcast(new Intent("com.klinker.android.twitter.MARK_POSITION").putExtra("current_account", current));
                        Toast.makeText(context, "Preparing to switch", Toast.LENGTH_SHORT).show();
                        new Thread(new Runnable() {

                            @Override
                            public void run() {
                                try {
                                    Thread.sleep(1000);
                                } catch (Exception e) {
                                }
                                sharedPrefs.edit().putInt("current_account", 1).commit();
                                sharedPrefs.edit().remove("new_notifications").remove("new_retweets").remove("new_favorites").remove("new_follows").commit();
                                AppSettings.invalidate();
                                finish();
                                Intent next = new Intent(context, MainActivity.class);
                                startActivity(next);
                            }
                        }).start();
                    }
                }
            });
        }
    }
    statusBar = findViewById(R.id.activity_status_bar);
    statusBarHeight = Utils.getStatusBarHeight(context);
    navBarHeight = Utils.getNavBarHeight(context);
    try {
        RelativeLayout.LayoutParams statusParams = (RelativeLayout.LayoutParams) statusBar.getLayoutParams();
        statusParams.height = statusBarHeight;
        statusBar.setLayoutParams(statusParams);
    } catch (Exception e) {
        try {
            LinearLayout.LayoutParams statusParams = (LinearLayout.LayoutParams) statusBar.getLayoutParams();
            statusParams.height = statusBarHeight;
            statusBar.setLayoutParams(statusParams);
        } catch (Exception x) {
        // in the trends
        }
    }
    View navBarSeperater = findViewById(R.id.nav_bar_seperator);
    if (translucent && Utils.hasNavBar(context)) {
        try {
            RelativeLayout.LayoutParams navParams = (RelativeLayout.LayoutParams) navBarSeperater.getLayoutParams();
            navParams.height = navBarHeight;
            navBarSeperater.setLayoutParams(navParams);
        } catch (Exception e) {
            try {
                LinearLayout.LayoutParams navParams = (LinearLayout.LayoutParams) navBarSeperater.getLayoutParams();
                navParams.height = navBarHeight;
                navBarSeperater.setLayoutParams(navParams);
            } catch (Exception x) {
            // in the trends
            }
        }
    }
    if (translucent) {
        if (Utils.hasNavBar(context)) {
            View footer = new View(context);
            footer.setOnClickListener(null);
            footer.setOnLongClickListener(null);
            ListView.LayoutParams params = new ListView.LayoutParams(ListView.LayoutParams.MATCH_PARENT, Utils.getNavBarHeight(context));
            footer.setLayoutParams(params);
            drawerList.addFooterView(footer);
            drawerList.setFooterDividersEnabled(false);
        }
        View drawerStatusBar = findViewById(R.id.drawer_status_bar);
        LinearLayout.LayoutParams status2Params = (LinearLayout.LayoutParams) drawerStatusBar.getLayoutParams();
        status2Params.height = statusBarHeight;
        drawerStatusBar.setLayoutParams(status2Params);
        drawerStatusBar.setVisibility(View.VISIBLE);
        statusBar.setVisibility(View.VISIBLE);
        drawerStatusBar = findViewById(R.id.drawer_status_bar_2);
        status2Params = (LinearLayout.LayoutParams) drawerStatusBar.getLayoutParams();
        status2Params.height = statusBarHeight;
        drawerStatusBar.setLayoutParams(status2Params);
        drawerStatusBar.setVisibility(View.VISIBLE);
    }
    if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE || getResources().getBoolean(R.bool.isTablet)) {
        actionBar.setDisplayHomeAsUpEnabled(false);
    }
    if (!settings.pushNotifications || !settings.useInteractionDrawer) {
        try {
            mDrawerLayout.setDrawerLockMode(NotificationDrawerLayout.LOCK_MODE_LOCKED_CLOSED, Gravity.END);
        } catch (Exception e) {
        // no drawer?
        }
    } else {
        mDrawerLayout.setDrawerRightEdgeSize(this, .1f);
        try {
            if (Build.VERSION.SDK_INT < 18 && DrawerActivity.settings.uiExtras) {
                View viewHeader2 = ((Activity) context).getLayoutInflater().inflate(R.layout.ab_header, null);
                notificationList.addHeaderView(viewHeader2, null, false);
                notificationList.setHeaderDividersEnabled(false);
            }
        } catch (Exception e) {
        // i don't know why it does this to be honest...
        }
        notificationAdapter = new InteractionsCursorAdapter(context, InteractionsDataSource.getInstance(context).getUnreadCursor(DrawerActivity.settings.currentAccount));
        try {
            notificationList.setAdapter(notificationAdapter);
        } catch (Exception e) {
        }
        View viewHeader = ((Activity) context).getLayoutInflater().inflate(R.layout.interactions_footer_1, null);
        notificationList.addFooterView(viewHeader, null, false);
        oldInteractions = (HoloTextView) findViewById(R.id.old_interactions_text);
        readButton = (ImageView) findViewById(R.id.read_button);
        LinearLayout footer = (LinearLayout) viewHeader.findViewById(R.id.footer);
        footer.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                if (oldInteractions.getText().toString().equals(getResources().getString(R.string.old_interactions))) {
                    oldInteractions.setText(getResources().getString(R.string.new_interactions));
                    readButton.setImageResource(closedMailResource);
                    notificationList.disableSwipeToDismiss();
                    notificationAdapter = new InteractionsCursorAdapter(context, InteractionsDataSource.getInstance(context).getCursor(DrawerActivity.settings.currentAccount));
                } else {
                    oldInteractions.setText(getResources().getString(R.string.old_interactions));
                    readButton.setImageResource(openMailResource);
                    notificationList.enableSwipeToDismiss();
                    notificationAdapter = new InteractionsCursorAdapter(context, InteractionsDataSource.getInstance(context).getUnreadCursor(DrawerActivity.settings.currentAccount));
                }
                notificationList.setAdapter(notificationAdapter);
            }
        });
        if (DrawerActivity.translucent) {
            if (Utils.hasNavBar(context)) {
                View nav = new View(context);
                nav.setOnClickListener(null);
                nav.setOnLongClickListener(null);
                ListView.LayoutParams params = new ListView.LayoutParams(ListView.LayoutParams.MATCH_PARENT, Utils.getNavBarHeight(context));
                nav.setLayoutParams(params);
                notificationList.addFooterView(nav);
                notificationList.setFooterDividersEnabled(false);
            }
        }
        notificationList.setDismissCallback(new EnhancedListView.OnDismissCallback() {

            @Override
            public EnhancedListView.Undoable onDismiss(EnhancedListView listView, int position) {
                Log.v("talon_interactions_delete", "position to delete: " + position);
                InteractionsDataSource data = InteractionsDataSource.getInstance(context);
                data.markRead(settings.currentAccount, position);
                notificationAdapter = new InteractionsCursorAdapter(context, data.getUnreadCursor(DrawerActivity.settings.currentAccount));
                notificationList.setAdapter(notificationAdapter);
                oldInteractions.setText(getResources().getString(R.string.old_interactions));
                readButton.setImageResource(openMailResource);
                if (notificationAdapter.getCount() == 0) {
                    setNotificationFilled(false);
                }
                return null;
            }
        });
        notificationList.enableSwipeToDismiss();
        notificationList.setSwipeDirection(EnhancedListView.SwipeDirection.START);
        notificationList.setOnItemClickListener(new InteractionClickListener(context, mDrawerLayout, mViewPager));
    }
}
Also used : ActionBarDrawerToggle(com.klinker.android.twitter.views.ActionBarDrawerToggle) MainActivity(com.klinker.android.twitter.activities.MainActivity) InteractionsCursorAdapter(com.klinker.android.twitter.adapters.InteractionsCursorAdapter) ViewConfiguration(android.view.ViewConfiguration) Field(java.lang.reflect.Field) AsyncListView(org.lucasr.smoothie.AsyncListView) EnhancedListView(de.timroes.android.listview.EnhancedListView) InteractionClickListener(com.klinker.android.twitter.listeners.InteractionClickListener) TypedArray(android.content.res.TypedArray) LoginActivity(com.klinker.android.twitter.activities.setup.LoginActivity) Handler(android.os.Handler) MainDrawerClickListener(com.klinker.android.twitter.listeners.MainDrawerClickListener) HoloTextView(com.klinker.android.twitter.views.HoloTextView) NetworkedCacheableImageView(com.klinker.android.twitter.views.NetworkedCacheableImageView) AsyncListView(org.lucasr.smoothie.AsyncListView) View(android.view.View) HoloTextView(com.klinker.android.twitter.views.HoloTextView) EnhancedListView(de.timroes.android.listview.EnhancedListView) MainDrawerArrayAdapter(com.klinker.android.twitter.adapters.MainDrawerArrayAdapter) NetworkedCacheableImageView(com.klinker.android.twitter.views.NetworkedCacheableImageView) BitmapLruCache(uk.co.senab.bitmapcache.BitmapLruCache) ColorDrawable(android.graphics.drawable.ColorDrawable) Animation(android.view.animation.Animation) EnhancedListView(de.timroes.android.listview.EnhancedListView)

Aggregations

View (android.view.View)2 EnhancedListView (de.timroes.android.listview.EnhancedListView)2 SuppressLint (android.annotation.SuppressLint)1 ActionBar (android.app.ActionBar)1 FragmentTransaction (android.app.FragmentTransaction)1 TypedArray (android.content.res.TypedArray)1 ColorDrawable (android.graphics.drawable.ColorDrawable)1 Handler (android.os.Handler)1 SlidingPaneLayout (android.support.v4.widget.SlidingPaneLayout)1 PanelSlideListener (android.support.v4.widget.SlidingPaneLayout.PanelSlideListener)1 ViewConfiguration (android.view.ViewConfiguration)1 Animation (android.view.animation.Animation)1 AdapterView (android.widget.AdapterView)1 OnItemClickListener (android.widget.AdapterView.OnItemClickListener)1 MainActivity (com.klinker.android.twitter.activities.MainActivity)1 LoginActivity (com.klinker.android.twitter.activities.setup.LoginActivity)1 InteractionsCursorAdapter (com.klinker.android.twitter.adapters.InteractionsCursorAdapter)1 MainDrawerArrayAdapter (com.klinker.android.twitter.adapters.MainDrawerArrayAdapter)1 InteractionClickListener (com.klinker.android.twitter.listeners.InteractionClickListener)1 MainDrawerClickListener (com.klinker.android.twitter.listeners.MainDrawerClickListener)1