Search in sources :

Example 1 with SgApp

use of com.battlelancer.seriesguide.SgApp in project SeriesGuide by UweTrottmann.

the class RateDialogFragment method rate.

private void rate(Rating rating) {
    Bundle args = getArguments();
    String itemType = args.getString(InitBundle.ITEM_TYPE);
    if (itemType == null) {
        return;
    }
    int itemId = args.getInt(InitBundle.ITEM_ID);
    SgApp app = SgApp.from(getActivity());
    BaseRateItemTask task = null;
    switch(itemType) {
        case ITEM_MOVIE:
            {
                task = new RateMovieTask(app, rating, itemId);
                break;
            }
        case ITEM_SHOW:
            {
                task = new RateShowTask(app, rating, itemId);
                break;
            }
        case ITEM_EPISODE:
            {
                task = new RateEpisodeTask(app, rating, itemId);
                break;
            }
    }
    if (task != null) {
        AsyncTaskCompat.executeParallel(task);
    }
    dismiss();
}
Also used : RateEpisodeTask(com.battlelancer.seriesguide.util.tasks.RateEpisodeTask) Bundle(android.os.Bundle) BaseRateItemTask(com.battlelancer.seriesguide.util.tasks.BaseRateItemTask) RateMovieTask(com.battlelancer.seriesguide.util.tasks.RateMovieTask) SgApp(com.battlelancer.seriesguide.SgApp) SuppressLint(android.annotation.SuppressLint) RateShowTask(com.battlelancer.seriesguide.util.tasks.RateShowTask)

Example 2 with SgApp

use of com.battlelancer.seriesguide.SgApp in project SeriesGuide by UweTrottmann.

the class NotificationActionReceiver method onReceive.

@Override
public void onReceive(Context context, Intent intent) {
    if (!intent.hasExtra(EXTRA_EPISODE_TVDBID)) {
        return;
    }
    int episodeTvdbvId = intent.getIntExtra(EXTRA_EPISODE_TVDBID, -1);
    if (episodeTvdbvId <= 0) {
        return;
    }
    Context appContext = context.getApplicationContext();
    if (!(appContext instanceof SgApp)) {
        return;
    }
    SgApp app = (SgApp) appContext;
    // query for episode details
    Cursor query = context.getContentResolver().query(SeriesGuideContract.Episodes.buildEpisodeWithShowUri(episodeTvdbvId), new String[] { SeriesGuideContract.Shows.REF_SHOW_ID, SeriesGuideContract.Episodes.SEASON, SeriesGuideContract.Episodes.NUMBER }, null, null, null);
    if (query == null) {
        return;
    }
    if (query.moveToFirst()) {
        int showTvdbId = query.getInt(0);
        int season = query.getInt(1);
        int episode = query.getInt(2);
        // mark episode watched
        EpisodeTools.episodeWatched(app, showTvdbId, episodeTvdbvId, season, episode, EpisodeFlags.WATCHED);
    }
    query.close();
    // dismiss the notification
    NotificationManagerCompat manager = NotificationManagerCompat.from(context);
    manager.cancel(SgApp.NOTIFICATION_EPISODE_ID);
    // replicate delete intent
    NotificationService.handleDeleteIntent(context, intent);
}
Also used : Context(android.content.Context) NotificationManagerCompat(android.support.v4.app.NotificationManagerCompat) SgApp(com.battlelancer.seriesguide.SgApp) Cursor(android.database.Cursor)

Example 3 with SgApp

use of com.battlelancer.seriesguide.SgApp in project SeriesGuide by UweTrottmann.

the class TraktCancelCheckinDialogFragment method onCreateDialog.

@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    final Context context = getActivity().getApplicationContext();
    final Bundle args = getArguments();
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setMessage(context.getString(R.string.traktcheckin_inprogress, mWait < 0 ? context.getString(R.string.not_available) : DateUtils.formatElapsedTime(mWait)));
    final SgApp app = SgApp.from(getActivity());
    builder.setPositiveButton(R.string.traktcheckin_cancel, new OnClickListener() {

        @Override
        @SuppressLint("CommitTransaction")
        public void onClick(DialogInterface dialog, int which) {
            AsyncTask<String, Void, String> cancelCheckinTask = new AsyncTask<String, Void, String>() {

                @Override
                protected String doInBackground(String... params) {
                    // check for credentials
                    if (!TraktCredentials.get(context).hasCredentials()) {
                        return context.getString(R.string.trakt_error_credentials);
                    }
                    try {
                        retrofit2.Response<Void> response = traktCheckin.get().deleteActiveCheckin().execute();
                        if (response.isSuccessful()) {
                            return null;
                        } else {
                            if (SgTrakt.isUnauthorized(context, response)) {
                                return context.getString(R.string.trakt_error_credentials);
                            }
                            SgTrakt.trackFailedRequest(context, "delete check-in", response);
                        }
                    } catch (IOException e) {
                        SgTrakt.trackFailedRequest(context, "delete check-in", e);
                    }
                    return context.getString(R.string.api_error_generic, context.getString(R.string.trakt));
                }

                @Override
                protected void onPostExecute(String message) {
                    if (message == null) {
                        // all good
                        Toast.makeText(context, R.string.checkin_canceled_success_trakt, Toast.LENGTH_SHORT).show();
                        // relaunch the trakt task which called us to
                        // try the check in again
                        AsyncTaskCompat.executeParallel(new TraktTask(app, args));
                    } else {
                        // well, something went wrong
                        Toast.makeText(context, message, Toast.LENGTH_LONG).show();
                    }
                }
            };
            AsyncTaskCompat.executeParallel(cancelCheckinTask);
        }
    });
    builder.setNegativeButton(R.string.traktcheckin_wait, new OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            // broadcast check-in success
            EventBus.getDefault().post(new TraktTask.TraktActionCompleteEvent(TraktAction.valueOf(args.getString(InitBundle.TRAKTACTION)), true, null));
        }
    });
    return builder.create();
}
Also used : Context(android.content.Context) AlertDialog(android.support.v7.app.AlertDialog) DialogInterface(android.content.DialogInterface) Bundle(android.os.Bundle) InitBundle(com.battlelancer.seriesguide.util.TraktTask.InitBundle) TraktTask(com.battlelancer.seriesguide.util.TraktTask) AsyncTask(android.os.AsyncTask) IOException(java.io.IOException) SgApp(com.battlelancer.seriesguide.SgApp) SuppressLint(android.annotation.SuppressLint) OnClickListener(android.content.DialogInterface.OnClickListener) SuppressLint(android.annotation.SuppressLint) NonNull(android.support.annotation.NonNull)

Aggregations

SgApp (com.battlelancer.seriesguide.SgApp)3 SuppressLint (android.annotation.SuppressLint)2 Context (android.content.Context)2 Bundle (android.os.Bundle)2 DialogInterface (android.content.DialogInterface)1 OnClickListener (android.content.DialogInterface.OnClickListener)1 Cursor (android.database.Cursor)1 AsyncTask (android.os.AsyncTask)1 NonNull (android.support.annotation.NonNull)1 NotificationManagerCompat (android.support.v4.app.NotificationManagerCompat)1 AlertDialog (android.support.v7.app.AlertDialog)1 TraktTask (com.battlelancer.seriesguide.util.TraktTask)1 InitBundle (com.battlelancer.seriesguide.util.TraktTask.InitBundle)1 BaseRateItemTask (com.battlelancer.seriesguide.util.tasks.BaseRateItemTask)1 RateEpisodeTask (com.battlelancer.seriesguide.util.tasks.RateEpisodeTask)1 RateMovieTask (com.battlelancer.seriesguide.util.tasks.RateMovieTask)1 RateShowTask (com.battlelancer.seriesguide.util.tasks.RateShowTask)1 IOException (java.io.IOException)1