Search in sources :

Example 66 with DialogAction

use of com.afollestad.materialdialogs.DialogAction in project Tapad by berict.

the class MainActivity method checkVersion.

private void checkVersion() {
    try {
        currentVersionCode = a.getPackageManager().getPackageInfo(a.getPackageName(), 0).versionCode;
        Log.i("versionCode", "versionCode retrieved = " + String.valueOf(currentVersionCode));
    } catch (android.content.pm.PackageManager.NameNotFoundException e) {
        // handle exception
        currentVersionCode = -1;
        Log.e("NameNotFound", "NNFE, currentVersionCode = -1");
    }
    // version checks
    Intent launcherIntent = getIntent();
    if (launcherIntent != null && launcherIntent.getStringExtra("version") != null) {
        String version = launcherIntent.getStringExtra("version");
        if (version.equals("new")) {
            // new install, show intro
            intent.intent(a, "activity.MainIntroActivity");
            preferences.setVersionCode(currentVersionCode);
        } else if (version.equals("updated")) {
            // updated, show changelog
            new MaterialDialog.Builder(a).title(w.getStringId("info_tapad_info_changelog")).content(w.getStringId("info_tapad_info_changelog_text")).contentColorRes(R.color.dark_primary).positiveText(R.string.dialog_close).positiveColorRes(R.color.colorAccent).dismissListener(new DialogInterface.OnDismissListener() {

                @Override
                public void onDismiss(DialogInterface dialogInterface) {
                    preferences.setVersionCode(currentVersionCode);
                    // show Studio Berict social links
                    new MaterialDialog.Builder(a).title(w.getStringId("info_tapad_info_social")).content(w.getStringId("info_tapad_info_social_text")).contentColorRes(R.color.dark_primary).positiveText(R.string.dialog_learn_more).onPositive(new MaterialDialog.SingleButtonCallback() {

                        @Override
                        public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
                            intent.intentWithExtra(a, "activity.AboutActivity", "about", "dev", 0);
                        }
                    }).negativeText(R.string.close).show();
                }
            }).show();
        }
    }
}
Also used : MaterialDialog(com.afollestad.materialdialogs.MaterialDialog) DialogInterface(android.content.DialogInterface) GsonBuilder(com.google.gson.GsonBuilder) Intent(android.content.Intent) DialogAction(com.afollestad.materialdialogs.DialogAction) NonNull(android.support.annotation.NonNull)

Example 67 with DialogAction

use of com.afollestad.materialdialogs.DialogAction in project AisenWeiBo by wangdan.

the class BizFragment method destoryFollower.

/* 结束查看用户好友列表 */
// XXX /*开始移除粉丝*/
public void destoryFollower(final WeiBoUser user, final OnDestoryFollowerCallback callback) {
    Token token = AppContext.getAccount().getAccessToken();
    if (AppContext.getAccount().getAdvancedToken() != null)
        token = AppContext.getAccount().getAdvancedToken();
    final Token trueToken = token;
    new MaterialDialog.Builder(getRealActivity()).title(R.string.title_destory_friend).content(R.string.biz_destory_follower).negativeText(R.string.cancel).positiveText(R.string.confirm).onPositive(new MaterialDialog.SingleButtonCallback() {

        @Override
        public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
            new WorkTask<Void, Void, WeiBoUser>() {

                @Override
                public WeiBoUser workInBackground(Void... params) throws TaskException {
                    return SinaSDK.getInstance(trueToken).friendshipsFollowersDestory(user.getIdstr());
                }

                @Override
                protected void onPrepare() {
                    super.onPrepare();
                    ViewUtils.createProgressDialog(getRealActivity(), getRealString(R.string.biz_destory_follower_loading), ThemeUtils.getThemeColor()).show();
                }

                @Override
                protected void onFailure(TaskException exception) {
                    super.onFailure(exception);
                    showMessage(exception.getMessage());
                }

                @Override
                protected void onSuccess(WeiBoUser result) {
                    super.onSuccess(result);
                    if (getRealActivity() != null)
                        callback.onDestoryFollower(result);
                }

                @Override
                protected void onFinished() {
                    super.onFinished();
                    ViewUtils.dismissProgressDialog();
                }
            }.execute();
        }
    }).show();
}
Also used : MaterialDialog(com.afollestad.materialdialogs.MaterialDialog) TaskException(org.aisen.android.network.task.TaskException) DialogAction(com.afollestad.materialdialogs.DialogAction) NonNull(android.support.annotation.NonNull) WeiBoUser(org.aisen.weibo.sina.sinasdk.bean.WeiBoUser) Token(org.aisen.weibo.sina.sinasdk.bean.Token)

Example 68 with DialogAction

use of com.afollestad.materialdialogs.DialogAction in project AisenWeiBo by wangdan.

the class OfflineUtils method toggleOffline.

/**
 * 触发一次离线,如果没有设置过离线分组,优先设置后再离线
 *
 * @param context
 */
public static void toggleOffline(final Activity context) {
    if (!AppContext.isLoggedIn())
        return;
    List<Group> groups = SinaDB.getOfflineSqlite().select(new Extra(AppContext.getAccount().getUser().getIdstr(), null), Group.class);
    if (groups.size() == 0) {
        Logger.d(TAG, "离线分组未设置过");
        new MaterialDialog.Builder(context).content(R.string.offline_none_groups_remind).negativeText(R.string.cancel).positiveText(R.string.yes).onPositive(new MaterialDialog.SingleButtonCallback() {

            @Override
            public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
                showOfflineGroupsModifyDialog(context, new ArrayList<Group>(), new OnOfflineGroupSetCallback() {

                    @Override
                    public void onChanged(List<Group> newGroups) {
                        // 设置离线分组
                        Logger.d(TAG, "设置离线分组%d个", newGroups.size());
                        if (newGroups.size() > 0) {
                            SinaDB.getOfflineSqlite().insert(getLoggedExtra(null), newGroups);
                            toggleOffline(context);
                        }
                    }
                }, R.string.offline_groups_dialog);
            }
        }).show();
    } else {
        OfflineService.startOffline((ArrayList) groups);
    }
}
Also used : Group(org.aisen.weibo.sina.sinasdk.bean.Group) MaterialDialog(com.afollestad.materialdialogs.MaterialDialog) Extra(org.aisen.android.component.orm.extra.Extra) DialogAction(com.afollestad.materialdialogs.DialogAction) NonNull(android.support.annotation.NonNull)

Example 69 with DialogAction

use of com.afollestad.materialdialogs.DialogAction in project AisenWeiBo by wangdan.

the class OfflineUtils method showOfflineGroupsModifyDialog.

/**
 * 显示一个Dialog,用来设置分组
 *
 * @param activity
 * @param selectedGroups
 * @param callback
 * @param titleId
 */
public static void showOfflineGroupsModifyDialog(Activity activity, final List<Group> selectedGroups, final OnOfflineGroupSetCallback callback, int titleId) {
    String[] items = new String[AppContext.getAccount().getGroups().getLists().size()];
    Integer[] selectedIndices = new Integer[selectedGroups.size()];
    int index = 0;
    for (int i = 0; i < AppContext.getAccount().getGroups().getLists().size(); i++) {
        Group group = AppContext.getAccount().getGroups().getLists().get(i);
        items[i] = group.getName();
        for (Group groupSelectd : selectedGroups) {
            if (groupSelectd.getId().equals(group.getIdstr())) {
                selectedIndices[index++] = i;
                break;
            }
        }
    }
    MaterialDialog.Builder dialogBuilder = new MaterialDialog.Builder(activity).title(titleId).items(items).itemsCallbackMultiChoice(selectedIndices, new MaterialDialog.ListCallbackMultiChoice() {

        @Override
        public boolean onSelection(MaterialDialog dialog, Integer[] which, CharSequence[] text) {
            selectedGroups.clear();
            List<Group> groups = AppContext.getAccount().getGroups().getLists();
            for (int i = 0; i < groups.size(); i++) {
                for (int i1 = 0; i1 < which.length; i1++) {
                    if (i == which[i1]) {
                        selectedGroups.add(groups.get(i));
                    }
                }
            }
            return true;
        }
    }).alwaysCallMultiChoiceCallback();
    dialogBuilder.negativeText(R.string.cancel).positiveText(R.string.confirm).onPositive(new MaterialDialog.SingleButtonCallback() {

        @Override
        public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
            // 艹,这个控件这里有bug
            GlobalContext.getInstance().getHandler().postDelayed(new Runnable() {

                @Override
                public void run() {
                    callback.onChanged(selectedGroups);
                }
            }, 300);
        }
    }).show();
}
Also used : Group(org.aisen.weibo.sina.sinasdk.bean.Group) MaterialDialog(com.afollestad.materialdialogs.MaterialDialog) DialogAction(com.afollestad.materialdialogs.DialogAction) NonNull(android.support.annotation.NonNull)

Example 70 with DialogAction

use of com.afollestad.materialdialogs.DialogAction in project AisenWeiBo by wangdan.

the class VideoPlayerActivity method playWithShort.

private void playWithShort(final String url) {
    shortUri = Uri.parse(url);
    Logger.d(TAG, "short : " + url);
    new WorkTask<Void, Void, VideoBean>() {

        @Override
        protected void onPrepare() {
            super.onPrepare();
            layoutContent.setVisibility(View.GONE);
            progressBar.setVisibility(View.VISIBLE);
        }

        @Override
        public VideoBean workInBackground(Void... params) throws TaskException {
            String id = KeyGenerator.generateMD5(url);
            // VideoBean videoBean = SinaDB.getDB().selectById(null, VideoBean.class, id);
            // if (videoBean != null && !TextUtils.isEmpty(videoBean.getImage()) && !TextUtils.isEmpty(videoBean.getVideoUrl())) {
            // return videoBean;
            // }
            UrlsBean urlsBean = SinaSDK.getInstance(AppContext.getAccount().getAccessToken()).urlShort2Long(url);
            if (urlsBean != null && urlsBean.getUrls() != null && urlsBean.getUrls().size() > 0) {
                UrlBean urlBean = urlsBean.getUrls().get(0);
                VideoBean videoBean = new VideoBean();
                videoBean.setIdStr(KeyGenerator.generateMD5(url));
                videoBean.setShortUrl(urlBean.getUrl_short());
                videoBean.setLongUrl(urlBean.getUrl_long());
                int repeat = 8;
                while (repeat-- > 0) {
                    try {
                        if (VideoService.isSinaVideo(urlBean.getUrl_long())) {
                            videoBean.setType(VideoService.TYPE_VIDEO_SINA);
                            videoBean = VideoService.getVideoFromSinaVideo(videoBean);
                        } else if (VideoService.isWeipai(urlBean.getUrl_long())) {
                            videoBean.setType(VideoService.TYPE_VIDEO_WEIPAI);
                            videoBean = VideoService.getVideoFromWeipai(videoBean);
                        } else if (VideoService.isMeipai(urlBean.getUrl_long())) {
                            videoBean.setType(VideoService.TYPE_VIDEO_MEIPAI);
                            videoBean = VideoService.getVideoFromMeipai(videoBean);
                        }
                        repeat = 0;
                        if (!TextUtils.isEmpty(videoBean.getVideoUrl())) {
                            if (!TextUtils.isEmpty(videoBean.getImage())) {
                                SinaDB.getDB().update(null, videoBean);
                            }
                            return videoBean;
                        }
                    } catch (Throwable e) {
                        e.printStackTrace();
                    }
                }
            }
            throw new TaskException("解析短链接失败");
        }

        @Override
        protected void onSuccess(VideoBean videoBean) {
            super.onSuccess(videoBean);
            playWithVideo(url, videoBean);
        }

        @Override
        protected void onFailure(TaskException exception) {
            super.onFailure(exception);
            if (isDestory())
                return;
            new MaterialDialog.Builder(VideoPlayerActivity.this).forceStacking(true).content(R.string.video_short_faild).positiveText(R.string.video2browser).negativeText(R.string.video_again).onPositive(new MaterialDialog.SingleButtonCallback() {

                @Override
                public void onClick(MaterialDialog dialog, DialogAction which) {
                    toBrowser(url);
                }
            }).onNegative(new MaterialDialog.SingleButtonCallback() {

                @Override
                public void onClick(MaterialDialog dialog, DialogAction which) {
                    playWithShort(url);
                }
            }).show();
        }
    }.execute();
}
Also used : MaterialDialog(com.afollestad.materialdialogs.MaterialDialog) TaskException(org.aisen.android.network.task.TaskException) UrlBean(org.aisen.weibo.sina.sinasdk.bean.UrlBean) VideoBean(org.aisen.weibo.sina.support.bean.VideoBean) DialogAction(com.afollestad.materialdialogs.DialogAction) UrlsBean(org.aisen.weibo.sina.sinasdk.bean.UrlsBean)

Aggregations

DialogAction (com.afollestad.materialdialogs.DialogAction)165 MaterialDialog (com.afollestad.materialdialogs.MaterialDialog)165 View (android.view.View)97 NonNull (android.support.annotation.NonNull)85 TextView (android.widget.TextView)59 DialogInterface (android.content.DialogInterface)51 Intent (android.content.Intent)45 ImageView (android.widget.ImageView)39 RecyclerView (android.support.v7.widget.RecyclerView)28 ArrayList (java.util.ArrayList)25 List (java.util.List)25 SuppressLint (android.annotation.SuppressLint)23 ListView (android.widget.ListView)21 LayoutInflater (android.view.LayoutInflater)20 AdapterView (android.widget.AdapterView)20 NonNull (androidx.annotation.NonNull)20 Dialog (android.app.Dialog)18 AlertDialog (androidx.appcompat.app.AlertDialog)18 Context (android.content.Context)17 MenuItem (android.view.MenuItem)16