Loading core/java/android/provider/MediaStore.java +32 −47 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import android.graphics.ImageDecoder; import android.graphics.Point; import android.graphics.PostProcessor; import android.media.ExifInterface; import android.media.MediaFile; import android.net.Uri; import android.os.Bundle; import android.os.CancellationSignal; Loading Loading @@ -1724,18 +1725,25 @@ public final class MediaStore { @Deprecated public static final String insertImage(ContentResolver cr, String imagePath, String name, String description) throws FileNotFoundException { // Check if file exists with a FileInputStream FileInputStream stream = new FileInputStream(imagePath); try { Bitmap bm = BitmapFactory.decodeFile(imagePath); String ret = insertImage(cr, bm, name, description); bm.recycle(); return ret; } finally { try { stream.close(); } catch (IOException e) { final File file = new File(imagePath); final String mimeType = MediaFile.getMimeTypeForFile(imagePath); if (TextUtils.isEmpty(name)) name = "Image"; final PendingParams params = new PendingParams( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, name, mimeType); final Context context = AppGlobals.getInitialApplication(); final Uri pendingUri = createPending(context, params); try (PendingSession session = openPending(context, pendingUri)) { try (InputStream in = new FileInputStream(file); OutputStream out = session.openOutputStream()) { FileUtils.copy(in, out); } return session.publish().toString(); } catch (Exception e) { Log.w(TAG, "Failed to insert image", e); context.getContentResolver().delete(pendingUri, null, null); return null; } } Loading @@ -1755,45 +1763,22 @@ public final class MediaStore { @Deprecated public static final String insertImage(ContentResolver cr, Bitmap source, String title, String description) { ContentValues values = new ContentValues(); values.put(Images.Media.DISPLAY_NAME, title); values.put(Images.Media.DESCRIPTION, description); values.put(Images.Media.MIME_TYPE, "image/jpeg"); Uri url = null; String stringUrl = null; /* value to be returned */ if (TextUtils.isEmpty(title)) title = "Image"; final PendingParams params = new PendingParams( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, title, "image/jpeg"); try { url = cr.insert(getContentUri(VOLUME_EXTERNAL_PRIMARY), values); if (source != null) { try (OutputStream out = new ParcelFileDescriptor.AutoCloseOutputStream( cr.openFile(url, "w", null))) { source.compress(Bitmap.CompressFormat.JPEG, 50, out); } long id = ContentUris.parseId(url); // Block until we've generated common thumbnails Images.Thumbnails.getThumbnail(cr, id, Images.Thumbnails.MINI_KIND, null); Images.Thumbnails.getThumbnail(cr, id, Images.Thumbnails.MICRO_KIND, null); } else { Log.e(TAG, "Failed to create thumbnail, removing original"); cr.delete(url, null, null); url = null; final Context context = AppGlobals.getInitialApplication(); final Uri pendingUri = createPending(context, params); try (PendingSession session = openPending(context, pendingUri)) { try (OutputStream out = session.openOutputStream()) { source.compress(Bitmap.CompressFormat.JPEG, 90, out); } return session.publish().toString(); } catch (Exception e) { Log.e(TAG, "Failed to insert image", e); if (url != null) { cr.delete(url, null, null); url = null; } } if (url != null) { stringUrl = url.toString(); Log.w(TAG, "Failed to insert image", e); context.getContentResolver().delete(pendingUri, null, null); return null; } return stringUrl; } /** Loading core/res/res/values-af/strings.xml +3 −6 Original line number Diff line number Diff line Loading @@ -573,12 +573,9 @@ <string name="face_acquired_too_similar" msgid="1508776858407646460">"Te eenders. Verander asseblief jou pose."</string> <string name="face_acquired_pan_too_extreme" msgid="4581629343077288178">"Draai jou kop \'n bietjie minder."</string> <string name="face_acquired_tilt_too_extreme" msgid="4019954263012496468">"Draai jou kop \'n bietjie minder."</string> <!-- no translation found for face_acquired_roll_too_extreme (6312973147689664409) --> <skip /> <!-- no translation found for face_acquired_obscured (5357207702967893283) --> <skip /> <!-- no translation found for face_acquired_sensor_dirty (2535761002815565222) --> <skip /> <string name="face_acquired_roll_too_extreme" msgid="6312973147689664409">"Draai jou kop \'n bietjie minder."</string> <string name="face_acquired_obscured" msgid="5357207702967893283">"Verwyder enigiets wat jou gesig versteek."</string> <string name="face_acquired_sensor_dirty" msgid="2535761002815565222">"Maak die sensor op die skerm se borand skoon."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="396883585636963908">"Kan nie gesig verifieer nie. Hardeware nie beskikbaar nie."</string> Loading core/res/res/values-am/strings.xml +3 −6 Original line number Diff line number Diff line Loading @@ -573,12 +573,9 @@ <string name="face_acquired_too_similar" msgid="1508776858407646460">"በጣም ይመሳሰላል፣ እባክዎ የእርስዎን ፎቶ አነሳስ ይለውጡ"</string> <string name="face_acquired_pan_too_extreme" msgid="4581629343077288178">"ጭንቅላትዎን ትንሽ ብቻ ያዙሩት።"</string> <string name="face_acquired_tilt_too_extreme" msgid="4019954263012496468">"ጭንቅላትዎን ትንሽ ብቻ ያዙሩት።"</string> <!-- no translation found for face_acquired_roll_too_extreme (6312973147689664409) --> <skip /> <!-- no translation found for face_acquired_obscured (5357207702967893283) --> <skip /> <!-- no translation found for face_acquired_sensor_dirty (2535761002815565222) --> <skip /> <string name="face_acquired_roll_too_extreme" msgid="6312973147689664409">"ጭንቅላትዎን ትንሽ ብቻ ያዙሩት።"</string> <string name="face_acquired_obscured" msgid="5357207702967893283">"የእርስዎን ፊት የሚደብቀውን ሁሉንም ነገር በማስወገድ ላይ"</string> <string name="face_acquired_sensor_dirty" msgid="2535761002815565222">"በማያ ገጹ ላይኛው ጫፍ ላይ ዳሳሹን ያጽዱ።"</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="396883585636963908">"መልክን ማረጋገጥ አይቻልም። ሃርድዌር የለም።"</string> Loading core/res/res/values-ar/strings.xml +5 −8 Original line number Diff line number Diff line Loading @@ -583,14 +583,11 @@ <string name="face_acquired_recalibrate" msgid="8077949502893707539">"يُرجى إعادة تسجيل وجهك."</string> <string name="face_acquired_too_different" msgid="7663983770123789694">"لم يعُد يمكن التعرّف على الوجه. حاول مرة أخرى."</string> <string name="face_acquired_too_similar" msgid="1508776858407646460">"الوجه مشابه جدًا، يُرجى تغيير وضعيتك."</string> <string name="face_acquired_pan_too_extreme" msgid="4581629343077288178">"اخفض وجهك قليلاً."</string> <string name="face_acquired_tilt_too_extreme" msgid="4019954263012496468">"اخفض وجهك قليلاً."</string> <!-- no translation found for face_acquired_roll_too_extreme (6312973147689664409) --> <skip /> <!-- no translation found for face_acquired_obscured (5357207702967893283) --> <skip /> <!-- no translation found for face_acquired_sensor_dirty (2535761002815565222) --> <skip /> <string name="face_acquired_pan_too_extreme" msgid="4581629343077288178">"حرّك رأسك قليلاً نحو الأمام مباشرة."</string> <string name="face_acquired_tilt_too_extreme" msgid="4019954263012496468">"حرّك رأسك قليلاً نحو الأمام مباشرة."</string> <string name="face_acquired_roll_too_extreme" msgid="6312973147689664409">"حرّك رأسك قليلاً نحو الوسط."</string> <string name="face_acquired_obscured" msgid="5357207702967893283">"عليك بإزالة أي شيء يُخفي وجهك."</string> <string name="face_acquired_sensor_dirty" msgid="2535761002815565222">"نظِّف المستشعر أعلى الشاشة."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="396883585636963908">"يتعذّر التحقُّق من الوجه. الجهاز غير مُتاح."</string> Loading core/res/res/values-az/strings.xml +3 −6 Original line number Diff line number Diff line Loading @@ -573,12 +573,9 @@ <string name="face_acquired_too_similar" msgid="1508776858407646460">"Digəri ilə oxşardır, pozanızı dəyişin."</string> <string name="face_acquired_pan_too_extreme" msgid="4581629343077288178">"Başınızı bir az döndərin."</string> <string name="face_acquired_tilt_too_extreme" msgid="4019954263012496468">"Başınızı bir az döndərin."</string> <!-- no translation found for face_acquired_roll_too_extreme (6312973147689664409) --> <skip /> <!-- no translation found for face_acquired_obscured (5357207702967893283) --> <skip /> <!-- no translation found for face_acquired_sensor_dirty (2535761002815565222) --> <skip /> <string name="face_acquired_roll_too_extreme" msgid="6312973147689664409">"Başınızı bir az döndərin."</string> <string name="face_acquired_obscured" msgid="5357207702967893283">"Üzünüzü gizlədən maneələri kənarlaşdırın."</string> <string name="face_acquired_sensor_dirty" msgid="2535761002815565222">"Ekranın yuxarı küncündəki sensoru təmizləyin."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="396883585636963908">"Üz doğrulanmadı. Avadanlıq əlçatan deyil."</string> Loading Loading
core/java/android/provider/MediaStore.java +32 −47 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import android.graphics.ImageDecoder; import android.graphics.Point; import android.graphics.PostProcessor; import android.media.ExifInterface; import android.media.MediaFile; import android.net.Uri; import android.os.Bundle; import android.os.CancellationSignal; Loading Loading @@ -1724,18 +1725,25 @@ public final class MediaStore { @Deprecated public static final String insertImage(ContentResolver cr, String imagePath, String name, String description) throws FileNotFoundException { // Check if file exists with a FileInputStream FileInputStream stream = new FileInputStream(imagePath); try { Bitmap bm = BitmapFactory.decodeFile(imagePath); String ret = insertImage(cr, bm, name, description); bm.recycle(); return ret; } finally { try { stream.close(); } catch (IOException e) { final File file = new File(imagePath); final String mimeType = MediaFile.getMimeTypeForFile(imagePath); if (TextUtils.isEmpty(name)) name = "Image"; final PendingParams params = new PendingParams( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, name, mimeType); final Context context = AppGlobals.getInitialApplication(); final Uri pendingUri = createPending(context, params); try (PendingSession session = openPending(context, pendingUri)) { try (InputStream in = new FileInputStream(file); OutputStream out = session.openOutputStream()) { FileUtils.copy(in, out); } return session.publish().toString(); } catch (Exception e) { Log.w(TAG, "Failed to insert image", e); context.getContentResolver().delete(pendingUri, null, null); return null; } } Loading @@ -1755,45 +1763,22 @@ public final class MediaStore { @Deprecated public static final String insertImage(ContentResolver cr, Bitmap source, String title, String description) { ContentValues values = new ContentValues(); values.put(Images.Media.DISPLAY_NAME, title); values.put(Images.Media.DESCRIPTION, description); values.put(Images.Media.MIME_TYPE, "image/jpeg"); Uri url = null; String stringUrl = null; /* value to be returned */ if (TextUtils.isEmpty(title)) title = "Image"; final PendingParams params = new PendingParams( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, title, "image/jpeg"); try { url = cr.insert(getContentUri(VOLUME_EXTERNAL_PRIMARY), values); if (source != null) { try (OutputStream out = new ParcelFileDescriptor.AutoCloseOutputStream( cr.openFile(url, "w", null))) { source.compress(Bitmap.CompressFormat.JPEG, 50, out); } long id = ContentUris.parseId(url); // Block until we've generated common thumbnails Images.Thumbnails.getThumbnail(cr, id, Images.Thumbnails.MINI_KIND, null); Images.Thumbnails.getThumbnail(cr, id, Images.Thumbnails.MICRO_KIND, null); } else { Log.e(TAG, "Failed to create thumbnail, removing original"); cr.delete(url, null, null); url = null; final Context context = AppGlobals.getInitialApplication(); final Uri pendingUri = createPending(context, params); try (PendingSession session = openPending(context, pendingUri)) { try (OutputStream out = session.openOutputStream()) { source.compress(Bitmap.CompressFormat.JPEG, 90, out); } return session.publish().toString(); } catch (Exception e) { Log.e(TAG, "Failed to insert image", e); if (url != null) { cr.delete(url, null, null); url = null; } } if (url != null) { stringUrl = url.toString(); Log.w(TAG, "Failed to insert image", e); context.getContentResolver().delete(pendingUri, null, null); return null; } return stringUrl; } /** Loading
core/res/res/values-af/strings.xml +3 −6 Original line number Diff line number Diff line Loading @@ -573,12 +573,9 @@ <string name="face_acquired_too_similar" msgid="1508776858407646460">"Te eenders. Verander asseblief jou pose."</string> <string name="face_acquired_pan_too_extreme" msgid="4581629343077288178">"Draai jou kop \'n bietjie minder."</string> <string name="face_acquired_tilt_too_extreme" msgid="4019954263012496468">"Draai jou kop \'n bietjie minder."</string> <!-- no translation found for face_acquired_roll_too_extreme (6312973147689664409) --> <skip /> <!-- no translation found for face_acquired_obscured (5357207702967893283) --> <skip /> <!-- no translation found for face_acquired_sensor_dirty (2535761002815565222) --> <skip /> <string name="face_acquired_roll_too_extreme" msgid="6312973147689664409">"Draai jou kop \'n bietjie minder."</string> <string name="face_acquired_obscured" msgid="5357207702967893283">"Verwyder enigiets wat jou gesig versteek."</string> <string name="face_acquired_sensor_dirty" msgid="2535761002815565222">"Maak die sensor op die skerm se borand skoon."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="396883585636963908">"Kan nie gesig verifieer nie. Hardeware nie beskikbaar nie."</string> Loading
core/res/res/values-am/strings.xml +3 −6 Original line number Diff line number Diff line Loading @@ -573,12 +573,9 @@ <string name="face_acquired_too_similar" msgid="1508776858407646460">"በጣም ይመሳሰላል፣ እባክዎ የእርስዎን ፎቶ አነሳስ ይለውጡ"</string> <string name="face_acquired_pan_too_extreme" msgid="4581629343077288178">"ጭንቅላትዎን ትንሽ ብቻ ያዙሩት።"</string> <string name="face_acquired_tilt_too_extreme" msgid="4019954263012496468">"ጭንቅላትዎን ትንሽ ብቻ ያዙሩት።"</string> <!-- no translation found for face_acquired_roll_too_extreme (6312973147689664409) --> <skip /> <!-- no translation found for face_acquired_obscured (5357207702967893283) --> <skip /> <!-- no translation found for face_acquired_sensor_dirty (2535761002815565222) --> <skip /> <string name="face_acquired_roll_too_extreme" msgid="6312973147689664409">"ጭንቅላትዎን ትንሽ ብቻ ያዙሩት።"</string> <string name="face_acquired_obscured" msgid="5357207702967893283">"የእርስዎን ፊት የሚደብቀውን ሁሉንም ነገር በማስወገድ ላይ"</string> <string name="face_acquired_sensor_dirty" msgid="2535761002815565222">"በማያ ገጹ ላይኛው ጫፍ ላይ ዳሳሹን ያጽዱ።"</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="396883585636963908">"መልክን ማረጋገጥ አይቻልም። ሃርድዌር የለም።"</string> Loading
core/res/res/values-ar/strings.xml +5 −8 Original line number Diff line number Diff line Loading @@ -583,14 +583,11 @@ <string name="face_acquired_recalibrate" msgid="8077949502893707539">"يُرجى إعادة تسجيل وجهك."</string> <string name="face_acquired_too_different" msgid="7663983770123789694">"لم يعُد يمكن التعرّف على الوجه. حاول مرة أخرى."</string> <string name="face_acquired_too_similar" msgid="1508776858407646460">"الوجه مشابه جدًا، يُرجى تغيير وضعيتك."</string> <string name="face_acquired_pan_too_extreme" msgid="4581629343077288178">"اخفض وجهك قليلاً."</string> <string name="face_acquired_tilt_too_extreme" msgid="4019954263012496468">"اخفض وجهك قليلاً."</string> <!-- no translation found for face_acquired_roll_too_extreme (6312973147689664409) --> <skip /> <!-- no translation found for face_acquired_obscured (5357207702967893283) --> <skip /> <!-- no translation found for face_acquired_sensor_dirty (2535761002815565222) --> <skip /> <string name="face_acquired_pan_too_extreme" msgid="4581629343077288178">"حرّك رأسك قليلاً نحو الأمام مباشرة."</string> <string name="face_acquired_tilt_too_extreme" msgid="4019954263012496468">"حرّك رأسك قليلاً نحو الأمام مباشرة."</string> <string name="face_acquired_roll_too_extreme" msgid="6312973147689664409">"حرّك رأسك قليلاً نحو الوسط."</string> <string name="face_acquired_obscured" msgid="5357207702967893283">"عليك بإزالة أي شيء يُخفي وجهك."</string> <string name="face_acquired_sensor_dirty" msgid="2535761002815565222">"نظِّف المستشعر أعلى الشاشة."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="396883585636963908">"يتعذّر التحقُّق من الوجه. الجهاز غير مُتاح."</string> Loading
core/res/res/values-az/strings.xml +3 −6 Original line number Diff line number Diff line Loading @@ -573,12 +573,9 @@ <string name="face_acquired_too_similar" msgid="1508776858407646460">"Digəri ilə oxşardır, pozanızı dəyişin."</string> <string name="face_acquired_pan_too_extreme" msgid="4581629343077288178">"Başınızı bir az döndərin."</string> <string name="face_acquired_tilt_too_extreme" msgid="4019954263012496468">"Başınızı bir az döndərin."</string> <!-- no translation found for face_acquired_roll_too_extreme (6312973147689664409) --> <skip /> <!-- no translation found for face_acquired_obscured (5357207702967893283) --> <skip /> <!-- no translation found for face_acquired_sensor_dirty (2535761002815565222) --> <skip /> <string name="face_acquired_roll_too_extreme" msgid="6312973147689664409">"Başınızı bir az döndərin."</string> <string name="face_acquired_obscured" msgid="5357207702967893283">"Üzünüzü gizlədən maneələri kənarlaşdırın."</string> <string name="face_acquired_sensor_dirty" msgid="2535761002815565222">"Ekranın yuxarı küncündəki sensoru təmizləyin."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="396883585636963908">"Üz doğrulanmadı. Avadanlıq əlçatan deyil."</string> Loading