com.javielinux.dialogs.CreateDefaultColumnsUserDialogFragment.java Source code

Java tutorial

Introduction

Here is the source code for com.javielinux.dialogs.CreateDefaultColumnsUserDialogFragment.java

Source

/*
 * Copyright 2012 Javier Prez Pacheco and Francisco Daz Rodriguez
 * TweetTopics 2.0
 * javielinux@gmail.com
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.javielinux.dialogs;

import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.android.dataframework.DataFramework;
import com.android.dataframework.Entity;
import com.javielinux.tweettopics2.R;
import com.javielinux.tweettopics2.TweetTopicsActivity;
import com.javielinux.twitter.ConnectionManager;
import com.javielinux.utils.TweetTopicsUtils;
import com.javielinux.utils.Utils;
import twitter4j.TwitterException;

public class CreateDefaultColumnsUserDialogFragment extends DialogFragment {

    private long userId;
    private Entity userEntity;

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {

        userId = getArguments().getLong("user_id");

        userEntity = new Entity("users", userId);

        CharSequence[] choices = new CharSequence[3];
        choices[0] = getString(R.string.timeline);
        choices[1] = getString(R.string.mentions);
        choices[2] = getString(R.string.direct_messages);

        final boolean[] isChoices = new boolean[] { true, true, true };

        LinearLayout llTitle = new LinearLayout(getActivity());
        llTitle.setOrientation(LinearLayout.VERTICAL);
        final CheckBox boxInvite = new CheckBox(getActivity());
        boxInvite.setText(R.string.follow_tweettopics);
        boxInvite.setChecked(true);
        llTitle.addView(boxInvite);
        TextView txtTitle = new TextView(getActivity());
        txtTitle.setText(R.string.create_columns);
        txtTitle.setTextSize(25);
        llTitle.addView(txtTitle);

        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setCustomTitle(llTitle);
        builder.setMultiChoiceItems(choices, isChoices, new DialogInterface.OnMultiChoiceClickListener() {
            public void onClick(DialogInterface dialog, int whichButton, boolean isChecked) {
                isChoices[whichButton] = isChecked;
            }
        });
        builder.setCancelable(false);
        builder.setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                // choices
                int count = DataFramework.getInstance().getEntityListCount("columns", "") + 1;
                if (isChoices[0]) {
                    Entity type = new Entity("type_columns", (long) TweetTopicsUtils.COLUMN_TIMELINE);
                    Entity timeline = new Entity("columns");
                    timeline.setValue("description", type.getString("description"));
                    timeline.setValue("type_id", type);
                    timeline.setValue("position", count);
                    timeline.setValue("user_id", userEntity.getId());
                    timeline.save();
                    count++;
                }
                if (isChoices[1]) {
                    Entity type = new Entity("type_columns", (long) TweetTopicsUtils.COLUMN_MENTIONS);
                    Entity mentions = new Entity("columns");
                    mentions.setValue("description", type.getString("description"));
                    mentions.setValue("type_id", type);
                    mentions.setValue("position", count);
                    mentions.setValue("user_id", userEntity.getId());
                    mentions.save();
                    count++;
                }
                if (isChoices[2]) {
                    Entity type = new Entity("type_columns", (long) TweetTopicsUtils.COLUMN_DIRECT_MESSAGES);
                    Entity dms = new Entity("columns");
                    dms.setValue("description", type.getString("description"));
                    dms.setValue("type_id", type);
                    dms.setValue("position", count);
                    dms.setValue("user_id", userEntity.getId());
                    dms.save();
                }

                ((TweetTopicsActivity) getActivity()).refreshColumns();

                // create friend
                if (boxInvite.isChecked()) {
                    Utils.showMessage(getActivity(), getActivity().getString(R.string.thanks));
                    new Thread(new Runnable() {
                        @Override
                        public void run() {
                            try {
                                ConnectionManager.getInstance().getTwitter(userEntity.getId())
                                        .createFriendship("tweettopics_app");
                            } catch (TwitterException e1) {
                                e1.printStackTrace();
                            } catch (IllegalArgumentException e) {
                                e.printStackTrace();
                            }
                        }
                    }).start();
                }
            }

        });

        return builder.create();

    }
}