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();
}
}
}
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();
}
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);
}
}
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();
}
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();
}
Aggregations