diff --git a/app/build.gradle b/app/build.gradle index 7bbf987..65c93ee 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ android { applicationId "org.literacyapp" minSdkVersion 21 targetSdkVersion 23 - versionCode 1005006 - versionName "1.5.6" + versionCode 1005007 + versionName "1.5.7" // jackOptions { // enabled true diff --git a/app/src/main/java/org/literacyapp/authentication/AuthenticationActivity.java b/app/src/main/java/org/literacyapp/authentication/AuthenticationActivity.java index c34d007..e6c0d9a 100644 --- a/app/src/main/java/org/literacyapp/authentication/AuthenticationActivity.java +++ b/app/src/main/java/org/literacyapp/authentication/AuthenticationActivity.java @@ -14,6 +14,7 @@ import org.literacyapp.authentication.animaloverlay.AnimalOverlay; import org.literacyapp.authentication.animaloverlay.AnimalOverlayHelper; import org.literacyapp.authentication.helper.AuthenticationHelper; +import org.literacyapp.authentication.helper.AuthenticationInstructionHelper; import org.literacyapp.authentication.helper.DetectionHelper; import org.literacyapp.authentication.thread.RecognitionThread; import org.literacyapp.authentication.thread.TrainingThread; @@ -22,7 +23,6 @@ import org.literacyapp.contentprovider.dao.StudentImageCollectionEventDao; import org.literacyapp.contentprovider.model.Student; import org.literacyapp.util.EnvironmentSettings; -import org.literacyapp.util.MultimediaHelper; import org.opencv.android.CameraBridgeViewBase; import org.opencv.android.JavaCameraView; import org.opencv.android.OpenCVLoader; @@ -82,7 +82,7 @@ protected void onCreate(Bundle savedInstanceState) { displayTemperatureNight = DetectionHelper.getDisplayTemperatureNight(); authenticationAnimation = (GifImageView) findViewById(R.id.authentication_animation); - MultimediaHelper.setAuthenticationInstructionAnimation(getApplicationContext(), authenticationAnimation); + AuthenticationInstructionHelper.setAuthenticationInstructionAnimation(getApplicationContext(), authenticationAnimation); // Initialize DB Session LiteracyApplication literacyApplication = (LiteracyApplication) getApplicationContext(); @@ -201,7 +201,7 @@ public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) { if (faceDetected && !isFaceInsideFrame){ DetectionHelper.drawArrowFromFaceToFrame(animalOverlay, imgRgba, face); - MultimediaHelper.playTabletPlacementOverlay(mediaPlayerTabletPlacement, mediaPlayerTabletPlacementOverlay, mediaPlayerAnimalSound); + AuthenticationInstructionHelper.playTabletPlacementOverlay(mediaPlayerTabletPlacement, mediaPlayerTabletPlacementOverlay, mediaPlayerAnimalSound); } if (DetectionHelper.shouldFallbackActivityBeStarted(startTimeFallback, currentTime)){ @@ -225,12 +225,12 @@ public void onResume() numberOfTries = 0; animalOverlay = animalOverlayHelper.getAnimalOverlay(""); if (animalOverlay != null) { - mediaPlayerAnimalSound = MediaPlayer.create(this, getResources().getIdentifier(animalOverlay.getSoundFile(), MultimediaHelper.RESOURCES_RAW_FOLDER, getPackageName())); + mediaPlayerAnimalSound = MediaPlayer.create(this, getResources().getIdentifier(animalOverlay.getSoundFile(), AuthenticationInstructionHelper.RESOURCES_RAW_FOLDER, getPackageName())); } preview.enableView(); - mediaPlayerTabletPlacement = MultimediaHelper.getMediaPlayerTabletPlacement(getApplicationContext()); + mediaPlayerTabletPlacement = AuthenticationInstructionHelper.getMediaPlayerTabletPlacement(getApplicationContext()); mediaPlayerTabletPlacement.start(); - mediaPlayerTabletPlacementOverlay = MultimediaHelper.getMediaPlayerTabletPlacementOverlay(getApplicationContext()); + mediaPlayerTabletPlacementOverlay = AuthenticationInstructionHelper.getMediaPlayerTabletPlacementOverlay(getApplicationContext()); tensorFlowLoadingThread.start(); startTimeFallback = new Date().getTime(); startTimeAuthenticationAnimation = new Date().getTime(); @@ -244,7 +244,7 @@ public void run() { authenticationAnimation.setVisibility(View.INVISIBLE); ImageView animalOverlayImageView = (ImageView)findViewById(R.id.animalOverlay); - animalOverlayImageView.setImageResource(getResources().getIdentifier(animalOverlay.getName(), MultimediaHelper.RESOURCES_DRAWABLE_FOLDER, getPackageName())); + animalOverlayImageView.setImageResource(getResources().getIdentifier(animalOverlay.getName(), AuthenticationInstructionHelper.RESOURCES_DRAWABLE_FOLDER, getPackageName())); animalOverlayImageView.setVisibility(View.VISIBLE); preview.disableView(); diff --git a/app/src/main/java/org/literacyapp/authentication/StudentImageCollectionActivity.java b/app/src/main/java/org/literacyapp/authentication/StudentImageCollectionActivity.java index ca36f35..bc058e4 100644 --- a/app/src/main/java/org/literacyapp/authentication/StudentImageCollectionActivity.java +++ b/app/src/main/java/org/literacyapp/authentication/StudentImageCollectionActivity.java @@ -12,6 +12,7 @@ import org.literacyapp.R; import org.literacyapp.authentication.animaloverlay.AnimalOverlay; import org.literacyapp.authentication.animaloverlay.AnimalOverlayHelper; +import org.literacyapp.authentication.helper.AuthenticationInstructionHelper; import org.literacyapp.authentication.helper.DetectionHelper; import org.literacyapp.contentprovider.dao.DaoSession; import org.literacyapp.contentprovider.dao.StudentImageCollectionEventDao; @@ -22,7 +23,6 @@ import org.literacyapp.receiver.BootReceiver; import org.literacyapp.util.DeviceInfoHelper; import org.literacyapp.util.EnvironmentSettings; -import org.literacyapp.util.MultimediaHelper; import org.literacyapp.util.StudentHelper; import org.opencv.android.CameraBridgeViewBase; import org.opencv.android.JavaCameraView; @@ -94,7 +94,7 @@ protected void onCreate(Bundle savedInstanceState) { displayTemperatureNight = DetectionHelper.getDisplayTemperatureNight(); authenticationAnimation = (GifImageView) findViewById(R.id.authentication_animation); - MultimediaHelper.setAuthenticationInstructionAnimation(getApplicationContext(), authenticationAnimation); + AuthenticationInstructionHelper.setAuthenticationInstructionAnimation(getApplicationContext(), authenticationAnimation); animalOverlayName = getIntent().getStringExtra(AuthenticationActivity.ANIMAL_OVERLAY_IDENTIFIER); @@ -208,7 +208,7 @@ public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) { if (faceDetected && !isFaceInsideFrame){ DetectionHelper.drawArrowFromFaceToFrame(animalOverlay, imgRgba, face); - MultimediaHelper.playTabletPlacementOverlay(mediaPlayerTabletPlacement, mediaPlayerTabletPlacementOverlay, mediaPlayerAnimalSound); + AuthenticationInstructionHelper.playTabletPlacementOverlay(mediaPlayerTabletPlacement, mediaPlayerTabletPlacementOverlay, mediaPlayerAnimalSound); } EnvironmentSettings.freeMemory(); @@ -224,14 +224,14 @@ public void onResume() ppF = new PreProcessorFactory(getApplicationContext()); animalOverlay = animalOverlayHelper.getAnimalOverlay(animalOverlayName); if (animalOverlay != null){ - mediaPlayerAnimalSound = MediaPlayer.create(this, getResources().getIdentifier(animalOverlay.getSoundFile(), MultimediaHelper.RESOURCES_RAW_FOLDER, getPackageName())); + mediaPlayerAnimalSound = MediaPlayer.create(this, getResources().getIdentifier(animalOverlay.getSoundFile(), AuthenticationInstructionHelper.RESOURCES_RAW_FOLDER, getPackageName())); } preview.enableView(); if (!authenticationAnimationAlreadyPlayed){ - mediaPlayerTabletPlacement = MultimediaHelper.getMediaPlayerTabletPlacement(getApplicationContext()); + mediaPlayerTabletPlacement = AuthenticationInstructionHelper.getMediaPlayerTabletPlacement(getApplicationContext()); mediaPlayerTabletPlacement.start(); } - mediaPlayerTabletPlacementOverlay = MultimediaHelper.getMediaPlayerTabletPlacementOverlay(getApplicationContext()); + mediaPlayerTabletPlacementOverlay = AuthenticationInstructionHelper.getMediaPlayerTabletPlacementOverlay(getApplicationContext()); startTimeFallback = new Date().getTime(); startTimeAuthenticationAnimation = new Date().getTime(); if (authenticationAnimationAlreadyPlayed){ @@ -247,7 +247,7 @@ public void run() { authenticationAnimation.setVisibility(View.INVISIBLE); ImageView animalOverlayImageView = (ImageView)findViewById(R.id.animalOverlay); - animalOverlayImageView.setImageResource(getResources().getIdentifier(animalOverlay.getName(), MultimediaHelper.RESOURCES_DRAWABLE_FOLDER, getPackageName())); + animalOverlayImageView.setImageResource(getResources().getIdentifier(animalOverlay.getName(), AuthenticationInstructionHelper.RESOURCES_DRAWABLE_FOLDER, getPackageName())); animalOverlayImageView.setVisibility(View.VISIBLE); preview.disableView(); diff --git a/app/src/main/java/org/literacyapp/util/MultimediaHelper.java b/app/src/main/java/org/literacyapp/authentication/helper/AuthenticationInstructionHelper.java similarity index 53% rename from app/src/main/java/org/literacyapp/util/MultimediaHelper.java rename to app/src/main/java/org/literacyapp/authentication/helper/AuthenticationInstructionHelper.java index ae36cfd..049ea4f 100644 --- a/app/src/main/java/org/literacyapp/util/MultimediaHelper.java +++ b/app/src/main/java/org/literacyapp/authentication/helper/AuthenticationInstructionHelper.java @@ -1,4 +1,4 @@ -package org.literacyapp.util; +package org.literacyapp.authentication.helper; import android.content.Context; import android.media.MediaPlayer; @@ -16,99 +16,15 @@ import java.io.OutputStream; /** - * Helper class for determining folder paths of multimedia content. + * Helper class for fetching image overlay displayed during authentication. */ -public class MultimediaHelper { +public class AuthenticationInstructionHelper { private static final String AUTHENTICATION_INSTRUCTION_BOY = "authentication_instruction_640"; private static final String AUTHENTICATION_INSTRUCTION_GIRL = "authentication_instruction_girl_640"; public static final String RESOURCES_DRAWABLE_FOLDER = "drawable"; public static final String RESOURCES_RAW_FOLDER = "raw"; - public static File getMultimediaDirectory() { - File multimediaDirectory = new File(Environment.getExternalStorageDirectory() + "/.literacyapp/multimedia"); - if (!multimediaDirectory.exists()) { - multimediaDirectory.mkdirs(); - } - return multimediaDirectory; - } - - public static File getAudioDirectory() { - File audioDirectory = new File(getMultimediaDirectory(), "audio"); - if (!audioDirectory.exists()) { - audioDirectory.mkdir(); - } - return audioDirectory; - } - - public static File getImageDirectory() { - File imageDirectory = new File(getMultimediaDirectory(), "image"); - if (!imageDirectory.exists()) { - imageDirectory.mkdir(); - } - return imageDirectory; - } - - public static File getVideoDirectory() { - File videoDirectory = new File(getMultimediaDirectory(), "video"); - if (!videoDirectory.exists()) { - videoDirectory.mkdir(); - } - return videoDirectory; - } - - public static File getFile(Audio audio) { - File file = null; - - if (audio == null) { - return null; - } - - File audioDirectory = getAudioDirectory(); - file = new File(audioDirectory, audio.getId() + "_r" + audio.getRevisionNumber() + "." + audio.getAudioFormat().toString().toLowerCase()); - - return file; - } - - public static File getFile(Image image) { - File file = null; - - if (image == null) { - return null; - } - - File imageDirectory = getImageDirectory(); - file = new File(imageDirectory, image.getId() + "_r" + image.getRevisionNumber() + "." + image.getImageFormat().toString().toLowerCase()); - - return file; - } - - public static File getFile(Video video) { - File file = null; - - if (video == null) { - return null; - } - - File videoDirectory = getVideoDirectory(); - file = new File(videoDirectory, video.getId() + "_r" + video.getRevisionNumber() + "." + video.getVideoFormat().toString().toLowerCase()); - - return file; - } - - public static File getVideoThumbnail(Video video) { - File file = null; - - if (video == null) { - return null; - } - - File videoDirectory = getVideoDirectory(); - file = new File(videoDirectory, video.getId() + "_r" + video.getRevisionNumber() + ".png"); - - return file; - } - public static void copyFile(InputStream in, OutputStream out) throws IOException { byte[] buffer = new byte[1024]; int read; diff --git a/app/src/main/java/org/literacyapp/authentication/thread/TrainingThread.java b/app/src/main/java/org/literacyapp/authentication/thread/TrainingThread.java index 5f2578c..2192b58 100644 --- a/app/src/main/java/org/literacyapp/authentication/thread/TrainingThread.java +++ b/app/src/main/java/org/literacyapp/authentication/thread/TrainingThread.java @@ -8,6 +8,7 @@ import com.google.gson.reflect.TypeToken; import org.literacyapp.LiteracyApplication; +import org.literacyapp.authentication.helper.AuthenticationInstructionHelper; import org.literacyapp.contentprovider.dao.DaoSession; import org.literacyapp.contentprovider.dao.StudentDao; import org.literacyapp.contentprovider.dao.StudentImageCollectionEventDao; @@ -19,7 +20,6 @@ import org.literacyapp.contentprovider.model.analytics.StudentImageCollectionEvent; import org.literacyapp.service.FaceRecognitionTrainingJobService; import org.literacyapp.util.AiHelper; -import org.literacyapp.util.MultimediaHelper; import org.literacyapp.util.StudentHelper; import org.opencv.android.OpenCVLoader; import org.opencv.core.Core; @@ -319,7 +319,7 @@ private File createAvatarFileFromStudentImage(StudentImage studentImage, Student Log.i(getClass().getName(), "createAvatarFileFromStudentImage: OutputStream with the file: " + avatarFile.getAbsolutePath()); OutputStream outputStream = new FileOutputStream(avatarFile); Log.i(getClass().getName(), "createAvatarFileFromStudentImage: Start copying of the file..."); - MultimediaHelper.copyFile(inputStream, outputStream); + AuthenticationInstructionHelper.copyFile(inputStream, outputStream); Log.i(getClass().getName(), "createAvatarFileFromStudentImage: Finished file copying."); } catch (FileNotFoundException e) { Log.e(getClass().getName(), null, e); diff --git a/app/src/main/java/org/literacyapp/content/letter/LettersActivity.java b/app/src/main/java/org/literacyapp/content/letter/LettersActivity.java index ed09a01..bb8c91f 100644 --- a/app/src/main/java/org/literacyapp/content/letter/LettersActivity.java +++ b/app/src/main/java/org/literacyapp/content/letter/LettersActivity.java @@ -23,9 +23,8 @@ import org.literacyapp.contentprovider.model.content.multimedia.Audio; import org.literacyapp.logic.CurriculumHelper; import org.literacyapp.model.enums.content.LiteracySkill; -import org.literacyapp.model.enums.content.NumeracySkill; import org.literacyapp.util.MediaPlayerHelper; -import org.literacyapp.util.MultimediaHelper; +import org.literacyapp.contentprovider.util.MultimediaHelper; import org.literacyapp.util.TtsHelper; import java.io.File; diff --git a/app/src/main/java/org/literacyapp/content/multimedia/video/VideosActivity.java b/app/src/main/java/org/literacyapp/content/multimedia/video/VideosActivity.java index 4c8f130..8830b3f 100644 --- a/app/src/main/java/org/literacyapp/content/multimedia/video/VideosActivity.java +++ b/app/src/main/java/org/literacyapp/content/multimedia/video/VideosActivity.java @@ -20,7 +20,7 @@ import org.literacyapp.contentprovider.model.content.Number; import org.literacyapp.contentprovider.model.content.multimedia.Video; import org.literacyapp.logic.CurriculumHelper; -import org.literacyapp.util.MultimediaHelper; +import org.literacyapp.contentprovider.util.MultimediaHelper; import java.io.File; import java.util.Iterator; diff --git a/app/src/main/java/org/literacyapp/content/number/NumbersActivity.java b/app/src/main/java/org/literacyapp/content/number/NumbersActivity.java index 7eca129..c27e70e 100644 --- a/app/src/main/java/org/literacyapp/content/number/NumbersActivity.java +++ b/app/src/main/java/org/literacyapp/content/number/NumbersActivity.java @@ -25,7 +25,7 @@ import org.literacyapp.logic.CurriculumHelper; import org.literacyapp.model.enums.content.NumeracySkill; import org.literacyapp.util.MediaPlayerHelper; -import org.literacyapp.util.MultimediaHelper; +import org.literacyapp.contentprovider.util.MultimediaHelper; import org.literacyapp.util.TtsHelper; import java.io.File; diff --git a/app/src/main/java/org/literacyapp/content/task/LetterGraphemeActivity.java b/app/src/main/java/org/literacyapp/content/task/LetterGraphemeActivity.java index 416d8bd..85560e5 100644 --- a/app/src/main/java/org/literacyapp/content/task/LetterGraphemeActivity.java +++ b/app/src/main/java/org/literacyapp/content/task/LetterGraphemeActivity.java @@ -20,7 +20,7 @@ import org.literacyapp.contentprovider.model.content.Letter; import org.literacyapp.contentprovider.model.content.multimedia.Audio; import org.literacyapp.util.MediaPlayerHelper; -import org.literacyapp.util.MultimediaHelper; +import org.literacyapp.contentprovider.util.MultimediaHelper; import org.literacyapp.util.TtsHelper; import java.io.File; diff --git a/app/src/main/java/org/literacyapp/content/task/NumberActivity.java b/app/src/main/java/org/literacyapp/content/task/NumberActivity.java index 160f16c..7e6c77b 100644 --- a/app/src/main/java/org/literacyapp/content/task/NumberActivity.java +++ b/app/src/main/java/org/literacyapp/content/task/NumberActivity.java @@ -19,7 +19,7 @@ import org.literacyapp.contentprovider.model.content.Number; import org.literacyapp.contentprovider.model.content.multimedia.Audio; import org.literacyapp.util.MediaPlayerHelper; -import org.literacyapp.util.MultimediaHelper; +import org.literacyapp.contentprovider.util.MultimediaHelper; import org.literacyapp.util.TtsHelper; import java.io.File; diff --git a/app/src/main/java/org/literacyapp/content/task/NumberGraphemeActivity.java b/app/src/main/java/org/literacyapp/content/task/NumberGraphemeActivity.java index 2f8f198..619b662 100644 --- a/app/src/main/java/org/literacyapp/content/task/NumberGraphemeActivity.java +++ b/app/src/main/java/org/literacyapp/content/task/NumberGraphemeActivity.java @@ -20,7 +20,7 @@ import org.literacyapp.contentprovider.model.content.Number; import org.literacyapp.contentprovider.model.content.multimedia.Audio; import org.literacyapp.util.MediaPlayerHelper; -import org.literacyapp.util.MultimediaHelper; +import org.literacyapp.contentprovider.util.MultimediaHelper; import org.literacyapp.util.TtsHelper; import java.io.File; diff --git a/app/src/main/java/org/literacyapp/content/task/ScrollingLetterActivity.java b/app/src/main/java/org/literacyapp/content/task/ScrollingLetterActivity.java index d8df138..2f9198e 100644 --- a/app/src/main/java/org/literacyapp/content/task/ScrollingLetterActivity.java +++ b/app/src/main/java/org/literacyapp/content/task/ScrollingLetterActivity.java @@ -22,7 +22,7 @@ import org.literacyapp.contentprovider.model.content.Letter; import org.literacyapp.contentprovider.model.content.multimedia.Audio; import org.literacyapp.util.MediaPlayerHelper; -import org.literacyapp.util.MultimediaHelper; +import org.literacyapp.contentprovider.util.MultimediaHelper; import org.literacyapp.util.TtsHelper; import java.io.File; diff --git a/app/src/main/java/org/literacyapp/content/task/SelectLetterActivity.java b/app/src/main/java/org/literacyapp/content/task/SelectLetterActivity.java index 6d96d6a..3e87875 100644 --- a/app/src/main/java/org/literacyapp/content/task/SelectLetterActivity.java +++ b/app/src/main/java/org/literacyapp/content/task/SelectLetterActivity.java @@ -25,7 +25,7 @@ import org.literacyapp.contentprovider.model.content.multimedia.Audio; import org.literacyapp.logic.CurriculumHelper; import org.literacyapp.util.MediaPlayerHelper; -import org.literacyapp.util.MultimediaHelper; +import org.literacyapp.contentprovider.util.MultimediaHelper; import org.literacyapp.util.TtsHelper; import java.io.File; diff --git a/app/src/main/java/org/literacyapp/content/task/SelectNumberActivity.java b/app/src/main/java/org/literacyapp/content/task/SelectNumberActivity.java index aabacf6..68694d1 100644 --- a/app/src/main/java/org/literacyapp/content/task/SelectNumberActivity.java +++ b/app/src/main/java/org/literacyapp/content/task/SelectNumberActivity.java @@ -25,7 +25,7 @@ import org.literacyapp.contentprovider.model.content.multimedia.Audio; import org.literacyapp.logic.CurriculumHelper; import org.literacyapp.util.MediaPlayerHelper; -import org.literacyapp.util.MultimediaHelper; +import org.literacyapp.contentprovider.util.MultimediaHelper; import org.literacyapp.util.TtsHelper; import java.io.File; diff --git a/app/src/main/java/org/literacyapp/content/task/TypeLetterActivity.java b/app/src/main/java/org/literacyapp/content/task/TypeLetterActivity.java index 220af59..fe315aa 100644 --- a/app/src/main/java/org/literacyapp/content/task/TypeLetterActivity.java +++ b/app/src/main/java/org/literacyapp/content/task/TypeLetterActivity.java @@ -29,7 +29,7 @@ import org.literacyapp.contentprovider.model.content.multimedia.JoinVideosWithLetters; import org.literacyapp.contentprovider.model.content.multimedia.Video; import org.literacyapp.util.MediaPlayerHelper; -import org.literacyapp.util.MultimediaHelper; +import org.literacyapp.contentprovider.util.MultimediaHelper; import org.literacyapp.util.TtsHelper; import java.io.File; diff --git a/app/src/main/java/org/literacyapp/content/task/TypeNumberActivity.java b/app/src/main/java/org/literacyapp/content/task/TypeNumberActivity.java index 72b9711..18bc82e 100644 --- a/app/src/main/java/org/literacyapp/content/task/TypeNumberActivity.java +++ b/app/src/main/java/org/literacyapp/content/task/TypeNumberActivity.java @@ -29,7 +29,7 @@ import org.literacyapp.contentprovider.model.content.multimedia.JoinVideosWithNumbers; import org.literacyapp.contentprovider.model.content.multimedia.Video; import org.literacyapp.util.MediaPlayerHelper; -import org.literacyapp.util.MultimediaHelper; +import org.literacyapp.contentprovider.util.MultimediaHelper; import org.literacyapp.util.TtsHelper; import java.io.File; diff --git a/app/src/main/java/org/literacyapp/content/task/VideoActivity.java b/app/src/main/java/org/literacyapp/content/task/VideoActivity.java index 8c9cc89..e2bb384 100644 --- a/app/src/main/java/org/literacyapp/content/task/VideoActivity.java +++ b/app/src/main/java/org/literacyapp/content/task/VideoActivity.java @@ -12,7 +12,7 @@ import org.literacyapp.R; import org.literacyapp.contentprovider.dao.VideoDao; import org.literacyapp.contentprovider.model.content.multimedia.Video; -import org.literacyapp.util.MultimediaHelper; +import org.literacyapp.contentprovider.util.MultimediaHelper; import java.io.File; diff --git a/app/src/main/java/org/literacyapp/content/task/VisemeActivity.java b/app/src/main/java/org/literacyapp/content/task/VisemeActivity.java index b409c1c..2dd1e6a 100644 --- a/app/src/main/java/org/literacyapp/content/task/VisemeActivity.java +++ b/app/src/main/java/org/literacyapp/content/task/VisemeActivity.java @@ -21,7 +21,7 @@ import org.literacyapp.contentprovider.model.content.Letter; import org.literacyapp.contentprovider.model.content.multimedia.Audio; import org.literacyapp.util.MediaPlayerHelper; -import org.literacyapp.util.MultimediaHelper; +import org.literacyapp.contentprovider.util.MultimediaHelper; import org.literacyapp.util.TtsHelper; import java.io.File; diff --git a/app/src/main/java/org/literacyapp/logic/CurriculumHelper.java b/app/src/main/java/org/literacyapp/logic/CurriculumHelper.java index 6bcd0bf..e4e6d2c 100644 --- a/app/src/main/java/org/literacyapp/logic/CurriculumHelper.java +++ b/app/src/main/java/org/literacyapp/logic/CurriculumHelper.java @@ -38,7 +38,7 @@ public CurriculumHelper(Context context) { * default list. */ public List getAvailableLetters(Student student) { - Log.i(getClass().getName(), "getUnlockedLetters"); + Log.i(getClass().getName(), "getAvailableLetters"); List letters = new ArrayList<>(); @@ -72,7 +72,7 @@ public List getAvailableLetters(Student student) { * default list. */ public List getAvailableNumbers(Student student) { - Log.i(getClass().getName(), "getUnlockedNumbers"); + Log.i(getClass().getName(), "getAvailableNumbers"); List numbers = new ArrayList<>(); diff --git a/app/src/main/java/org/literacyapp/service/synchronization/DownloadContentAsyncTask.java b/app/src/main/java/org/literacyapp/service/synchronization/DownloadContentAsyncTask.java index 53b88b4..eada9d2 100644 --- a/app/src/main/java/org/literacyapp/service/synchronization/DownloadContentAsyncTask.java +++ b/app/src/main/java/org/literacyapp/service/synchronization/DownloadContentAsyncTask.java @@ -55,7 +55,7 @@ import org.literacyapp.util.DeviceInfoHelper; import org.literacyapp.util.EnvironmentSettings; import org.literacyapp.util.JsonLoader; -import org.literacyapp.util.MultimediaHelper; +import org.literacyapp.contentprovider.util.MultimediaHelper; import org.literacyapp.util.MultimediaDownloader; import java.io.File; diff --git a/contentprovider/build.gradle b/contentprovider/build.gradle index f0cd479..5d79ccf 100644 --- a/contentprovider/build.gradle +++ b/contentprovider/build.gradle @@ -8,11 +8,10 @@ android { defaultConfig { minSdkVersion 21 targetSdkVersion 23 - versionCode 1000001 - versionName "1.0.1" + versionCode 1000003 + versionName "1.0.3" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" - } buildTypes { diff --git a/contentprovider/src/main/java/org/literacyapp/contentprovider/ContentProvider.java b/contentprovider/src/main/java/org/literacyapp/contentprovider/ContentProvider.java index 5565ffc..187348e 100644 --- a/contentprovider/src/main/java/org/literacyapp/contentprovider/ContentProvider.java +++ b/contentprovider/src/main/java/org/literacyapp/contentprovider/ContentProvider.java @@ -48,6 +48,17 @@ public static DaoSession initializeDb(Context context) { return daoSession; } + /** + * Only use this method if none of the other methods return what you need, and you want to + * create a custom query. + */ + public static DaoSession getDaoSession() { + return daoSession; + } + + /** + * Returns a list of all letters available to the current student. + */ public static List getUnlockedLetters() { Log.i(ContentProvider.class.getName(), "getUnlockedLetters"); @@ -85,6 +96,9 @@ public static List getUnlockedLetters() { return letters; } + /** + * Returns a list of all letters, including those not yet made available to the current student. + */ public static List getAllLetters() { Log.i(ContentProvider.class.getName(), "getAllLetters"); @@ -110,6 +124,9 @@ public static List getAllLettersOrderedByFrequency() { return letters; } + /** + * Returns a list of all numbers available to the current student. + */ public static List getUnlockedNumbers() { Log.i(ContentProvider.class.getName(), "getUnlockedNumbers"); @@ -147,6 +164,9 @@ public static List getUnlockedNumbers() { return numbers; } + /** + * Returns a list of all numbers, including those not yet made available to the current student. + */ public static List getAllNumbers() { Log.i(ContentProvider.class.getName(), "getAllNumbers"); diff --git a/contentprovider/src/main/java/org/literacyapp/contentprovider/util/MultimediaHelper.java b/contentprovider/src/main/java/org/literacyapp/contentprovider/util/MultimediaHelper.java new file mode 100644 index 0000000..5200d31 --- /dev/null +++ b/contentprovider/src/main/java/org/literacyapp/contentprovider/util/MultimediaHelper.java @@ -0,0 +1,99 @@ +package org.literacyapp.contentprovider.util; + +import android.os.Environment; + +import org.literacyapp.contentprovider.model.content.multimedia.Audio; +import org.literacyapp.contentprovider.model.content.multimedia.Image; +import org.literacyapp.contentprovider.model.content.multimedia.Video; + +import java.io.File; + +/** + * Helper class for determining folder paths of multimedia content. + */ +public class MultimediaHelper { + + public static File getMultimediaDirectory() { + File multimediaDirectory = new File(Environment.getExternalStorageDirectory() + "/.literacyapp/multimedia"); + if (!multimediaDirectory.exists()) { + multimediaDirectory.mkdirs(); + } + return multimediaDirectory; + } + + public static File getAudioDirectory() { + File audioDirectory = new File(getMultimediaDirectory(), "audio"); + if (!audioDirectory.exists()) { + audioDirectory.mkdir(); + } + return audioDirectory; + } + + public static File getImageDirectory() { + File imageDirectory = new File(getMultimediaDirectory(), "image"); + if (!imageDirectory.exists()) { + imageDirectory.mkdir(); + } + return imageDirectory; + } + + public static File getVideoDirectory() { + File videoDirectory = new File(getMultimediaDirectory(), "video"); + if (!videoDirectory.exists()) { + videoDirectory.mkdir(); + } + return videoDirectory; + } + + public static File getFile(Audio audio) { + File file = null; + + if (audio == null) { + return null; + } + + File audioDirectory = getAudioDirectory(); + file = new File(audioDirectory, audio.getId() + "_r" + audio.getRevisionNumber() + "." + audio.getAudioFormat().toString().toLowerCase()); + + return file; + } + + public static File getFile(Image image) { + File file = null; + + if (image == null) { + return null; + } + + File imageDirectory = getImageDirectory(); + file = new File(imageDirectory, image.getId() + "_r" + image.getRevisionNumber() + "." + image.getImageFormat().toString().toLowerCase()); + + return file; + } + + public static File getFile(Video video) { + File file = null; + + if (video == null) { + return null; + } + + File videoDirectory = getVideoDirectory(); + file = new File(videoDirectory, video.getId() + "_r" + video.getRevisionNumber() + "." + video.getVideoFormat().toString().toLowerCase()); + + return file; + } + + public static File getVideoThumbnail(Video video) { + File file = null; + + if (video == null) { + return null; + } + + File videoDirectory = getVideoDirectory(); + file = new File(videoDirectory, video.getId() + "_r" + video.getRevisionNumber() + ".png"); + + return file; + } +}