@Override
 public void onPause() {
   super.onPause();
   DownloadService service = getService();
   if (service != null) {
     service.setNextResponder(null);
   }
 }
  @Override
  public boolean onContextItemSelected(android.view.MenuItem item) {
    AdapterView.AdapterContextMenuInfo info =
        (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
    int menuItemIndex = item.getItemId();
    if (menuItemIndex == DOWNLOAD_DELETE_DOWNLOAD) {
      // We are going to take the first element
      if (_menuItemSelected.getJobType() == PutlockerUpDownloadJob.DOWNLOAD_JOB) {
        final File f = new File(((PutlockerDownloadJob) _menuItemSelected).getFileLocation());
        // does the file exist?
        if (f.exists()) {
          AlertDialog.Builder builder = new AlertDialog.Builder(this);
          builder.setTitle(R.string.delete_file);
          builder.setMessage(R.string.would_you_like_to_delete_file);
          builder.setPositiveButton(
              R.string.yes,
              new OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                  f.delete();
                  getPutlockerApplication().getStorage().deleteTyped(_menuItemSelected);
                  doAddItems();
                  _menuItemSelected = null;
                }
              });
          builder.setNegativeButton(
              R.string.no,
              new OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                  getPutlockerApplication().getStorage().deleteTyped(_menuItemSelected);
                  doAddItems();
                  _menuItemSelected = null;
                }
              });
          builder.setCancelable(false).create().show();
        } else {
          getPutlockerApplication().getStorage().deleteTyped(_menuItemSelected);
          doAddItems();
          _menuItemSelected = null;
        }
      } else {
        getPutlockerApplication().getStorage().deleteTyped(_menuItemSelected);
        doAddItems();
        _menuItemSelected = null;
      }
    } else if (menuItemIndex == DOWNLOAD_STOP_DOWNLOAD) {
      DownloadService service = getPutlockerApplication().getService();
      if (service != null) {
        service.cancelJob(_menuItemSelected);
      }
      _menuItemSelected = null;
    }

    return true;
  }
 @Override
 public void onResume() {
   super.onResume();
   DownloadService service = getService();
   if (service != null) {
     service.setNextResponder(this);
   }
   doAddItems();
 }
示例#4
0
  private void initializeSubscriptions() {
    if (downloadsSubscription != null && !downloadsSubscription.isUnsubscribed())
      downloadsSubscription.unsubscribe();

    if (threadsNumberSubscription != null && !threadsNumberSubscription.isUnsubscribed())
      threadsNumberSubscription.unsubscribe();

    threadsNumberSubscription =
        preferences.downloadThreads().asObservable().subscribe(threadsNumber::onNext);

    downloadsSubscription =
        downloadsQueueSubject
            .lift(new DynamicConcurrentMergeOperator<>(this::downloadChapter, threadsNumber))
            .onBackpressureBuffer()
            .observeOn(AndroidSchedulers.mainThread())
            .map(download -> areAllDownloadsFinished())
            .subscribe(
                finished -> {
                  if (finished) {
                    DownloadService.stop(context);
                  }
                },
                e -> Timber.e(e.getCause(), e.getMessage()));

    if (!isRunning) {
      isRunning = true;
      runningSubject.onNext(true);
    }
  }
 @RequestMapping(method = RequestMethod.GET)
 public @ResponseBody Geometry get(
     BoundingBox boundingBox, SearchConfig searchConfig, HttpServletRequest request)
     throws Exception {
   searchConfig.setUseOverpass(request.getParameter("useOverpass"));
   searchConfig.setWithoutSurface(request.getParameter("withoutSurface"));
   searchConfig.setAllTracks(request.getParameter("allTracks"));
   searchConfig.setShowBuildings(request.getParameter("showBuildings"));
   return downloadService.downloadData(boundingBox, searchConfig);
 }
  public void addInfo(Info addedInfo) {
    Log.i("dataBase", "called method addInfo");

    initColumns();

    Log.i("id", idCollumIndex + "");
    Log.i("id", authorCollumIndex + "");
    Log.i("id", nameCollumIndex + "");
    Log.i("id", likesCountCollumIndex + "");
    Log.i("id", artworkUrlCollumIndex + "");
    Log.i("id", streamUrlCollumIndex + "");
    Log.i("id", durationCollumIndex + "");
    Log.i("id", pathToFileCollumIndex + "");
    cursor = musicBase.query("mytable", null, null, null, null, null, null);

    if (cursor.moveToFirst()) {
      Log.i("dataBase", "cursor moved to first");

      do {
        Info tempInfo =
            new Info(
                cursor.getString(nameCollumIndex),
                cursor.getInt(durationCollumIndex),
                new User(cursor.getString(authorCollumIndex)),
                cursor.getInt(likesCountCollumIndex),
                cursor.getString(streamUrlCollumIndex),
                cursor.getString(pathToFileCollumIndex),
                cursor.getString(artworkUrlCollumIndex));
        Log.i("dataBase info", "addedInfo________" + addedInfo.getStream_url());
        Log.i("dataBase info", "tempInfo________" + tempInfo.getStream_url());

        Log.i("dataBase list", tempInfo.toString());
        Log.i("dataBase list", addedInfo.toString());
        if (addedInfo.getStream_url().equals(tempInfo.getStream_url())) {
          Log.i("dataBase", "we have this music");
          return;
        }

      } while (cursor.moveToNext());
    }

    Calendar c = Calendar.getInstance();
    String seconds =
        c.get(Calendar.YEAR)
            + ""
            + c.get(Calendar.MONTH)
            + ""
            + c.get(Calendar.DAY_OF_MONTH)
            + ""
            + c.get(Calendar.HOUR_OF_DAY)
            + ""
            + c.get(Calendar.MINUTE)
            + ""
            + c.get(Calendar.SECOND);
    Log.i("dataBase", seconds);
    String name = addedInfo.getTitle();
    File dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC);
    File myFile = new File(dir, name + ".mp3");

    try {
      myFile.createNewFile();
      Log.i("dataBase", "file created");
    } catch (IOException e) {
      e.printStackTrace();
      Log.i("dataBase", e.toString());
      Log.i("dataBase", "file not created");
      return;
    }

    if (myFile.exists()) {

      Log.i("dataBase", "started downloading");
      DownloadService.downloadFile(
          addedInfo.getStream_url() + "?client_id=b45b1aa10f1ac2941910a7f0d10f8e28", myFile);

      addedInfo.setPath_to_file(myFile.getAbsolutePath());
      Log.i("dataBase", "file created");
    } else {
      Log.i("dataBase", "file not found");
      return;
    }

    Log.i("dataBase FileInfo", myFile.getAbsolutePath());

    ContentValues values = new ContentValues();
    values.put("author", addedInfo.getUser().getUsername());
    values.put("name", addedInfo.getTitle());
    values.put("likesCount", addedInfo.getLikes_count());
    values.put("duration", addedInfo.getDuration());
    values.put("artworkUrl", addedInfo.getPath_to_file());
    values.put("pathToFile", addedInfo.getPath_to_file());
    values.put("streamUrl", addedInfo.getStream_url());

    long insertResult = musicBase.insert("mytable", null, values);
    Log.i("dataBase", "insertResult: " + insertResult);

    Log.i("dataBase insert", addedInfo.getUser().getUsername());
    Log.i("dataBase insert", addedInfo.getTitle());
    Log.i("dataBase insert", addedInfo.getLikes_count() + "");
    Log.i("dataBase insert", addedInfo.getDuration() + "");

    Log.i("dataBase", "info inserted");
  }
 public void cancelService(String key) {
   DownloadService ds = serviceMap.remove(key);
   if (ds != null) {
     ds.cancelDownload();
   }
 }
 public void stopService(String key) {
   DownloadService ds = serviceMap.remove(key);
   if (ds != null) {
     ds.stopService();
   }
 }