Android Development Resources
Android Development Resources
Table of Content
Introduction for CoreDe ............................................................................................................. 2
Requirements .............................................................................................................................. 3
ID 1.0 Folder structure............................................................................................................ 3
ID 2.0 Main pages .................................................................................................................. 3
ID 3.0 Overview page ............................................................................................................. 4
ID 3.1 Modify ..................................................................................................................... 4
ID 3.2 Delete ...................................................................................................................... 4
ID 3.3 Stop ......................................................................................................................... 4
ID 4.0 Run .............................................................................................................................. 4
ID 4.1 Run Copy ................................................................................................................ 4
ID 4.2 Run Compare .......................................................................................................... 5
ID 4.3 Run Delete............................................................................................................... 5
ID 4.4 Run Resize .............................................................................................................. 5
ID 5.0 Setting page ................................................................................................................. 6
ID 6.0 Expert page .................................................................................................................. 7
ID 7.0 SMB page .................................................................................................................... 7
ID 8.0 Localization and Language Support ............................................................................ 7
ID 9.0 Authentication and Security ........................................................................................ 7
ID 10.0 Errors ......................................................................................................................... 7
Buglist ........................................................................................................................................ 8
History ........................................................................................................................................ 8
Software Requirements Specification CoreDe
Confidential only to read by developer working with [email protected]
Date: 18 September 2024 ------ Page: 2 of 8 ------ Version: 1.1
The app features four main pages: an Overview page, a Settings page, an SMB page, and an Expert
page, navigable via a menu in the top-left corner. The Overview page displays a list of tasks that users
can modify, run, stop, or delete. The Settings page allows users to create and configure tasks with
elements like Task Number, Task Name, Source and Destination Paths (selectable from local or SMB
paths using an integrated file picker), Trigger options, Date, and Task Type (Copy, Compare, Resize, or
Delete). Depending on the selected Task Type, additional fields appear—for example, resizing factors
for images and videos or file size criteria for deletion tasks.
Tasks and SMB profiles are securely stored as encrypted XML files in the app's internal storage using
Android's EncryptedFile API and Keystore system, ensuring data persistence and protection from
cross-app access. The app requires network permissions to transfer files to NAS devices via SMB. On
the SMB page, users can enter necessary connection details test the connection, and save the profile.
The Expert page displays detailed logs of ongoing activities, lists all open-source packages used and
shows the app version. All text elements utilize the strings.xml resource file to facilitate future
translation. Date and time formats automatically adjust based on the user's locale settings.
Media processing tasks support all video and image formats compatible with FFmpeg and the app
ensures tasks continue running even if the phone display turns off or the app is closed.
Expected deliverables:
• Project file with source code for the app to be opened in Android Studio Koala.
• CoreDe.Apk compile version to test on the Phone.
Software Requirements Specification CoreDe
Confidential only to read by developer working with [email protected]
Date: 18 September 2024 ------ Page: 3 of 8 ------ Version: 1.1
Requirements
ID 1.0 Folder structure Requirement:
The code shall be following the standard structure for a app as following.
root/
│
├── app/ # The core Android app module
│ ├── manifests/ # Contains AndroidManifest.xml and related manifest files
│ │ └── AndroidManifest.xml # Defines app components, permissions, etc.
│ │
│ ├── java/ # Contains Java/Kotlin source code files organized by package
│ │ └── com/example/yourapp/
│ │ ├── MainActivity.kt # Main activity for the app
│ │ ├── data/ # Data handling (models, repositories, etc.)
│ │ ├── ui/ # UI-related components (Activities, Fragments, ViewModels)
│ │ └── utils/ # Utility classes (helpers, constants, extensions)
│ │
│ ├── res/ # Resource directory for UI elements and other non-code resources
│ │ ├── drawable/ # Image and graphic resources (PNG, JPG, XML shapes, etc.)
│ │ ├── layout/ # Layout XML files for UI (Activities, Fragments, Views)
│ │ ├── mipmap/ # Launcher icons for different device densities
│ │ ├── values/ # Stores XML files for strings, colors, dimensions, styles
│ │ ├── anim/ # XML files for defining animations
│ │ ├── xml/ # Miscellaneous XML files (e.g., backup configurations, custom settings)
│ │ └── menu/ # Menu resource files for options menus and context menus
│
├── build/ # Auto-generated build output (not to be modified manually)
├── gradle/ # Gradle wrapper for build scripts
├── build.gradle # Project-wide Gradle build configuration file
├── settings.gradle # Settings file to manage modules in a multi-module project
├── .gitignore # Files to be ignored by version control (e.g., unnecessary build files)
└── README.md # Documentation file with project setup and usage instructions
all [number of files] files of path “Source Path” are found in “Destination Path”
all check files [number of files] have a size greater as zero.
[number of files] are found with the size zero.
the median of “Source Path”: [Median of a path]
the median of “Destination Path”: [Median of a path]
The result is shown in log on the expert page. If all files of “Source Path” are found in “Destination
Path” then the next task defined at “Trigger:” is started or stopped defined with none. If not all files
of “Source Path” are found in “Destination Path” then stop the task and show the stop in the log.
Before the next task is started the field “Date” of the current task is updated with the current time.
A field named “Task No” it is the highest number of all stored task and will be updated when
the page Setting is open. highest number is found by search all the
saved task names in the internal storage. The file name is “Task No”
separated by “-“ and the “Task Name”.
A field named “Source Path” which opens a dialog to choose a path from the phone. When a SMB
profile exists, it shall be possible to choose a path from the server.
A field named “Destination Path” which opens a dialog to choose a path from the phone or
from the NAS when a SMB profile exists. When option Delete
is chosen the field “Destination Path:” disappears.
A drop-down menu named “Trigger” which show the already saved task. When no task is available
the only option is “none”
A field named “Date” which shows the last date time of task was running or the time and
date of creating the task.
A button named “Save Task” which save the information to the task as XML file in the internal
storage. The file name is “Task No” separated by “-“ and the “Task
Name”. After saving returns to the overview page.
A drop-down menu named “Type” with the options Copy, Compare, Resize, Delete
field “extension” defines the extension of the files to manipulate. Note: all video and
image formats supported by FFmpeg should be available. video:
mp4, avi, mkv, mov, wmv, flv, webm, 3gp, mpeg, mpg, ogg, ogv, mts,
m2ts, ts, vob, m4v, hevc, h265 image: jpg, jpeg, png, bmp, tiff, gif,
webp
When option Delete is chosen the „Destination Path:” disappears and additional elements appear:
field “extension” defines the extension of the files to manipulate e.g. JPEG, PNG, AVI,
MP4, MOV, MkV
drop-down menu “way” with the option “delete files bigger as size” or “delete files smaller as
size”
Software Requirements Specification CoreDe
Confidential only to read by developer working with [email protected]
Date: 18 September 2024 ------ Page: 7 of 8 ------ Version: 1.1
ID 6.0 Expert page requirement:
The Expert page shall display a log string that provides details of the ongoing activities. Additionally,
it shall include a field that lists all open-source packages used in the app, such as FFmpegKit or
MobileFFmpeg, and a field that shows the current version of the app.
History
Version Depiction
1.0 First version
1.1 Added to the requirement ID 4.4 Run Resize that also the attributes (taken date, GPS)
are the same as original file