/** Returns true if we are on a user-permitted and connected internet connection. */ public static boolean isAllowedConnection(Context context) { if (UpdateSettings.isOnlyUpdateOverWifi(context)) { return AndroidUtils.isWifiConnected(context); } else { return AndroidUtils.isNetworkConnected(context); } }
public void onListLoad(boolean isInitialLoad) { // nag about no connectivity if (!AndroidUtils.isNetworkConnected(getActivity())) { Toast.makeText(getActivity(), getString(R.string.offline), Toast.LENGTH_LONG).show(); } else { // nag about a trakt account if trying to display auth-only lists if (isInitialLoad) { getLoaderManager().initLoader(MOVIES_LOADER_ID, getArguments(), this); } else { getLoaderManager().restartLoader(MOVIES_LOADER_ID, getArguments(), this); } } }
protected void search() { // nag about no connectivity if (!AndroidUtils.isNetworkConnected(getSherlockActivity())) { Toast.makeText(getSherlockActivity(), R.string.offline, Toast.LENGTH_LONG).show(); return; } String query = mSearchBox.getText().toString().trim(); if (query.length() == 0) { return; } if (mSearchTask == null || mSearchTask.getStatus() == AsyncTask.Status.FINISHED) { mSearchTask = new SearchTask(getActivity()); AndroidUtils.executeAsyncTask(mSearchTask, query); } }
@Override protected void handleGetGlueToggle(boolean isChecked) { if (isChecked) { if (!GetGlueSettings.isAuthenticated(getActivity())) { if (!AndroidUtils.isNetworkConnected(getActivity())) { Toast.makeText(getActivity(), R.string.offline, Toast.LENGTH_LONG).show(); mToggleGetGlueButton.setChecked(false); return; } else { // authenticate already here Intent i = new Intent(getSherlockActivity(), GetGlueAuthActivity.class); startActivity(i); } } else if (TextUtils.isEmpty(mGetGlueId)) { // the user has to set a GetGlue object id launchFixGetGlueCheckInActivity(mToggleGetGlueButton, mShowTvdbId); } } }
@Override protected Response doInBackground(Void... params) { // we need this value in onPostExecute, so get it already here mAction = TraktAction.values()[mArgs.getInt(InitBundle.TRAKTACTION)]; // check for network connection if (!AndroidUtils.isNetworkConnected(mContext)) { Response r = new Response(); r.status = TraktStatus.FAILURE; r.error = mContext.getString(R.string.offline); return r; } // check for valid credentials if (!ServiceUtils.isTraktCredentialsValid(mContext)) { // return null so a credentials dialog is displayed // it will call us again with valid credentials return null; } // get an authenticated trakt-java ServiceManager ServiceManager manager = ServiceUtils.getTraktServiceManagerWithAuth(mContext, false); if (manager == null) { // password could not be decrypted Response r = new Response(); r.status = TraktStatus.FAILURE; r.error = mContext.getString(R.string.trakt_generalerror); return r; } // get values used by all actions final int showTvdbId = mArgs.getInt(InitBundle.SHOW_TVDBID); final int season = mArgs.getInt(InitBundle.SEASON); final int episode = mArgs.getInt(InitBundle.EPISODE); // last chance to abort if (isCancelled()) { return null; } try { Response r = null; switch (mAction) { case CHECKIN_EPISODE: { final String message = mArgs.getString(InitBundle.MESSAGE); final CheckinBuilder checkinBuilder = manager.showService().checkin(showTvdbId).season(season).episode(episode); if (!TextUtils.isEmpty(message)) { checkinBuilder.message(message); } r = checkinBuilder.fire(); if (TraktStatus.SUCCESS.equals(r.status)) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext); r.message = mContext.getString( R.string.checkin_success_trakt, (r.show != null ? r.show.title + " " : "") + Utils.getEpisodeNumber(prefs, season, episode)); } break; } case CHECKIN_MOVIE: { final String imdbId = mArgs.getString(InitBundle.IMDB_ID); final String message = mArgs.getString(InitBundle.MESSAGE); final MovieService.CheckinBuilder checkinBuilder = manager.movieService().checkin(imdbId); if (!TextUtils.isEmpty(message)) { checkinBuilder.message(message); } r = checkinBuilder.fire(); if (TraktStatus.SUCCESS.equals(r.status)) { r.message = mContext.getString( R.string.checkin_success_trakt, (r.movie != null ? r.movie.title + " " : "")); } break; } case RATE_EPISODE: { final Rating rating = Rating.fromValue(mArgs.getString(InitBundle.RATING)); r = manager .rateService() .episode(showTvdbId) .season(season) .episode(episode) .rating(rating) .fire(); break; } case RATE_SHOW: { final Rating rating = Rating.fromValue(mArgs.getString(InitBundle.RATING)); r = manager.rateService().show(showTvdbId).rating(rating).fire(); break; } case SHOUT: { final String shout = mArgs.getString(InitBundle.MESSAGE); final boolean isSpoiler = mArgs.getBoolean(InitBundle.ISSPOILER); if (episode == 0) { r = manager .commentService() .show(showTvdbId) .comment(shout) .spoiler(isSpoiler) .fire(); } else { r = manager .commentService() .episode(showTvdbId) .season(season) .episode(episode) .comment(shout) .spoiler(isSpoiler) .fire(); } break; } case WATCHLIST_MOVIE: { final int tmdbId = mArgs.getInt(InitBundle.TMDB_ID); manager.movieService().watchlist().movie(tmdbId).fire(); // In case of failure this will just return an exception, so // we need to construct our own response r = new Response(); r.status = TraktStatus.SUCCESS; r.message = mContext.getString(R.string.watchlist_added); break; } case UNWATCHLIST_MOVIE: { final int tmdbId = mArgs.getInt(InitBundle.TMDB_ID); manager.movieService().unwatchlist().movie(tmdbId).fire(); // In case of failure this will just return an exception, so // we need to construct our own response r = new Response(); r.status = TraktStatus.SUCCESS; r.message = mContext.getString(R.string.watchlist_removed); break; } default: break; } return r; } catch (TraktException e) { Utils.trackExceptionAndLog(mContext, TAG, e); Response r = new Response(); r.status = TraktStatus.FAILURE; r.error = mContext.getString(R.string.trakt_generalerror); return r; } catch (ApiException e) { Utils.trackExceptionAndLog(mContext, TAG, e); Response r = new Response(); r.status = TraktStatus.FAILURE; r.error = mContext.getString(R.string.trakt_generalerror); return r; } }