Пример #1
0
  /**
   * @param context Current context
   * @param uri Path of the image passed
   * @param bitmap Bitmap that will be saved that has filter applied
   */
  public void saveFile(Context context, Uri uri, Bitmap bitmap) {
    Log.d(TAG, "saveFile() ::" + "\ncontext: " + context + "\nuri: " + uri + "\nbitmap: " + bitmap);

    String imagePath = uri.toString();
    Log.i(TAG, "saveFile() ::" + "\nimagePath: " + imagePath);

    File file = new File(imagePath);
    filterUri = Uri.parse(imagePath);

    /* boolean isQualityImprove applies multiple filters. Only want to
     * save file until after all filters are applied */
    if (CameraActivity.isQualityImprove() == false) {
      try {
        Log.e(TAG, "Saving filtered file in progress");
        FileOutputStream fOut = new FileOutputStream(file);
        bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fOut);
        fOut.flush();
        fOut.close();
      } catch (FileNotFoundException e) {
        e.printStackTrace();
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
  }
Пример #2
0
 public void unBindSaverService() {
   Log.i(TAG, "[unBindSaverService]...");
   synchronized (mSaveServiceObject) {
     if (mSaverService != null) {
       mSaverService = null;
     }
   }
   if (mConnection != null) {
     mContext.unbindService(mConnection);
   }
 }
Пример #3
0
  // record type, location and datetaken
  public SaveRequest preparePhotoRequest(int fileType, int pictureType) {
    Log.i(TAG, "[preparePhotoRequest]fileType =" + fileType + ",pictureType = " + pictureType);
    SaveRequest request = null;
    if (fileType == Storage.FILE_TYPE_PANO) {
      request = new PanoOperator(pictureType);
    } else {
      request = new PhotoOperator(pictureType);
    }
    request.prepareRequest();
    mContext.applyParameterForCapture(request);

    return request;
  }
Пример #4
0
  // sychronized this method to avoid when mFileNamer is just construct by an
  // AsynTask but
  // another AsynTask quickly get element from mFileNamer, it will return
  // null.
  private synchronized String createName(int fileType, long dateTaken, int count) {
    if (mFileNamer == null) {
      mFileNamer = new HashMap<Integer, ImageFileNamer>();
      ImageFileNamer photo =
          new ImageFileNamer(mContext.getString(R.string.image_file_name_format));
      mFileNamer.put(Storage.FILE_TYPE_PHOTO, photo);
      // pano_file_name_format changed to image format for UX design.
      mFileNamer.put(Storage.FILE_TYPE_PANO, photo);
      mFileNamer.put(
          Storage.FILE_TYPE_VIDEO,
          new ImageFileNamer(mContext.getString(R.string.video_file_name_format)));
    }
    Date date = new Date(dateTaken);
    String name = null;
    // tag != 0 is used for the last blend picture
    if (count == 0 && mFileNamer.get(fileType) != null) {
      name = mFileNamer.get(fileType).generateName(dateTaken);
    } else if (count > 0) {
      name = mFileNamer.get(fileType).generateContinuousName(dateTaken, count);
    }
    Log.d(TAG, "[createName]fileType = " + fileType + ",name = " + name);

    return name;
  }
Пример #5
0
  public void initialize(PreferenceGroup group) {
    super.initialize(group);
    mPopup = null;
    PieItem item = null;
    final Resources res = mActivity.getResources();
    Locale locale = res.getConfiguration().locale;
    // The order is from left to right in the menu.

    // HDR+ (GCam).
    if (group.findPreference(CameraSettings.KEY_CAMERA_HDR_PLUS) != null) {
      item = makeSwitchItem(CameraSettings.KEY_CAMERA_HDR_PLUS, true);
      mRenderer.addItem(item);
    }

    // HDR.
    if (group.findPreference(CameraSettings.KEY_CAMERA_HDR) != null) {
      item = makeSwitchItem(CameraSettings.KEY_CAMERA_HDR, true);
      mRenderer.addItem(item);
    }
    // Exposure compensation.
    if (group.findPreference(CameraSettings.KEY_EXPOSURE) != null) {
      item = makeItem(CameraSettings.KEY_EXPOSURE);
      item.setLabel(res.getString(R.string.pref_exposure_label));
      mRenderer.addItem(item);
    }
    // More settings.
    PieItem more = makeItem(R.drawable.ic_settings_holo_light);
    more.setLabel(res.getString(R.string.camera_menu_more_label));
    mRenderer.addItem(more);

    // Flash.
    if (group.findPreference(CameraSettings.KEY_FLASH_MODE) != null) {
      item = makeItem(CameraSettings.KEY_FLASH_MODE);
      item.setLabel(res.getString(R.string.pref_camera_flashmode_label));
      mRenderer.addItem(item);
    }
    // Camera switcher.
    if (group.findPreference(CameraSettings.KEY_CAMERA_ID) != null) {
      item = makeSwitchItem(CameraSettings.KEY_CAMERA_ID, false);
      final PieItem fitem = item;
      item.setOnClickListener(
          new OnClickListener() {
            @Override
            public void onClick(PieItem item) {
              // Find the index of next camera.
              ListPreference pref = mPreferenceGroup.findPreference(CameraSettings.KEY_CAMERA_ID);
              if (pref != null) {
                int index = pref.findIndexOfValue(pref.getValue());
                CharSequence[] values = pref.getEntryValues();
                index = (index + 1) % values.length;
                pref.setValueIndex(index);
                mListener.onCameraPickerClicked(index);
              }
              updateItem(fitem, CameraSettings.KEY_CAMERA_ID);
            }
          });
      mRenderer.addItem(item);
    }
    // Location.
    if (group.findPreference(CameraSettings.KEY_RECORD_LOCATION) != null) {
      item = makeSwitchItem(CameraSettings.KEY_RECORD_LOCATION, true);
      more.addItem(item);
      if (mActivity.isSecureCamera()) {
        // Prevent location preference from getting changed in secure camera mode
        item.setEnabled(false);
      }
    }
    // Countdown timer.
    final ListPreference ctpref = group.findPreference(CameraSettings.KEY_TIMER);
    final ListPreference beeppref = group.findPreference(CameraSettings.KEY_TIMER_SOUND_EFFECTS);
    item = makeItem(R.drawable.ic_timer);
    item.setLabel(res.getString(R.string.pref_camera_timer_title).toUpperCase(locale));
    item.setOnClickListener(
        new OnClickListener() {
          @Override
          public void onClick(PieItem item) {
            CountdownTimerPopup timerPopup =
                (CountdownTimerPopup)
                    mActivity
                        .getLayoutInflater()
                        .inflate(R.layout.countdown_setting_popup, null, false);
            timerPopup.initialize(ctpref, beeppref);
            timerPopup.setSettingChangedListener(PhotoMenu.this);
            mUI.dismissPopup();
            mPopup = timerPopup;
            mUI.showPopup(mPopup);
          }
        });
    more.addItem(item);
    // Image size.
    item = makeItem(R.drawable.ic_imagesize);
    final ListPreference sizePref = group.findPreference(CameraSettings.KEY_PICTURE_SIZE);
    item.setLabel(res.getString(R.string.pref_camera_picturesize_title).toUpperCase(locale));
    item.setOnClickListener(
        new OnClickListener() {
          @Override
          public void onClick(PieItem item) {
            ListPrefSettingPopup popup =
                (ListPrefSettingPopup)
                    mActivity
                        .getLayoutInflater()
                        .inflate(R.layout.list_pref_setting_popup, null, false);
            popup.initialize(sizePref);
            popup.setSettingChangedListener(PhotoMenu.this);
            mUI.dismissPopup();
            mPopup = popup;
            mUI.showPopup(mPopup);
          }
        });
    more.addItem(item);
    // White balance.
    if (group.findPreference(CameraSettings.KEY_WHITE_BALANCE) != null) {
      item = makeItem(CameraSettings.KEY_WHITE_BALANCE);
      item.setLabel(res.getString(R.string.pref_camera_whitebalance_label));
      more.addItem(item);
    }
    // Scene mode.
    if (group.findPreference(CameraSettings.KEY_SCENE_MODE) != null) {
      IconListPreference pref =
          (IconListPreference) group.findPreference(CameraSettings.KEY_SCENE_MODE);
      pref.setUseSingleIcon(true);
      item = makeItem(CameraSettings.KEY_SCENE_MODE);
      more.addItem(item);
    }
  }
Пример #6
0
 public PhotoMenu(CameraActivity activity, PhotoUI ui, PieRenderer pie) {
   super(activity, pie);
   mUI = ui;
   mSettingOff = activity.getString(R.string.setting_off_value);
   mActivity = activity;
 }
Пример #7
0
 public void bindSaverService() {
   Log.i(TAG, "[bindSaverService]...");
   Intent intent = new Intent((Context) mContext, FileSaverService.class);
   mContext.bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
 }
Пример #8
0
 public FileSaver(CameraActivity cameraActivity) {
   Log.i(TAG, "[FileSaver]constructor... ");
   mContext = cameraActivity;
   mContentResolver = mContext.getContentResolver();
 }
Пример #9
0
 @Override
 public void onQueueStatus(boolean full) {
   mContext.getCameraAppUI().getPhotoShutter().setEnabled(!full);
 }
 public PhotoController(CameraActivity activity, PhotoModule module, PieRenderer pie) {
   super(activity, pie);
   mModule = module;
   mSettingOff = activity.getString(R.string.setting_off_value);
 }