mirror of
https://github.com/nextcloud/android.git
synced 2024-11-26 07:05:49 +03:00
implement the same for videos and do some code cleanup
This commit is contained in:
parent
89ae5bfe1a
commit
3c388ad120
5 changed files with 50 additions and 15 deletions
|
@ -41,6 +41,10 @@
|
|||
<com.owncloud.android.ui.PreferenceWithLongSummary
|
||||
android:title="@string/prefs_instant_video_upload_path_title"
|
||||
android:key="instant_video_upload_path" />
|
||||
<com.owncloud.android.ui.CheckBoxPreferenceWithLongTitle
|
||||
android:title="@string/prefs_instant_upload_path_use_subfolders_title"
|
||||
android:summary="@string/prefs_instant_upload_path_use_subfolders_summary"
|
||||
android:key="instant_video_upload_path_use_subfolders" />
|
||||
<com.owncloud.android.ui.CheckBoxPreferenceWithLongTitle
|
||||
android:title="@string/instant_video_upload_on_wifi"
|
||||
android:key="instant_video_upload_on_wifi"/>
|
||||
|
|
|
@ -40,6 +40,7 @@ public abstract class PreferenceManager {
|
|||
private static final String PREF__INSTANT_UPLOAD_PATH_USE_SUBFOLDERS = "instant_upload_path_use_subfolders";
|
||||
private static final String PREF__INSTANT_UPLOAD_ON_WIFI = "instant_upload_on_wifi";
|
||||
private static final String PREF__INSTANT_VIDEO_UPLOAD_ON_WIFI = "instant_video_upload_on_wifi";
|
||||
private static final String PREF__INSTANT_VIDEO_UPLOAD_PATH_USE_SUBFOLDERS = "instant_video_upload_path_use_subfolders";
|
||||
|
||||
public static boolean instantPictureUploadEnabled(Context context) {
|
||||
return getDefaultSharedPreferences(context).getBoolean(PREF__INSTANT_UPLOADING, false);
|
||||
|
@ -57,6 +58,10 @@ public abstract class PreferenceManager {
|
|||
return getDefaultSharedPreferences(context).getBoolean(PREF__INSTANT_UPLOAD_ON_WIFI, false);
|
||||
}
|
||||
|
||||
public static boolean instantVideoUploadPathUseSubfolders(Context context) {
|
||||
return getDefaultSharedPreferences(context).getBoolean(PREF__INSTANT_VIDEO_UPLOAD_PATH_USE_SUBFOLDERS, false);
|
||||
}
|
||||
|
||||
public static boolean instantVideoUploadViaWiFiOnly(Context context) {
|
||||
return getDefaultSharedPreferences(context).getBoolean(PREF__INSTANT_VIDEO_UPLOAD_ON_WIFI, false);
|
||||
}
|
||||
|
|
|
@ -163,6 +163,7 @@ public class InstantUploadBroadcastReceiver extends BroadcastReceiver {
|
|||
String file_path = null;
|
||||
String file_name = null;
|
||||
String mime_type = null;
|
||||
long date_taken = 0;
|
||||
|
||||
Log_OC.i(TAG, "New video received");
|
||||
|
||||
|
@ -188,6 +189,7 @@ public class InstantUploadBroadcastReceiver extends BroadcastReceiver {
|
|||
file_name = c.getString(c.getColumnIndex(Video.Media.DISPLAY_NAME));
|
||||
mime_type = c.getString(c.getColumnIndex(Video.Media.MIME_TYPE));
|
||||
c.close();
|
||||
date_taken = System.currentTimeMillis();
|
||||
Log_OC.d(TAG, file_path + "");
|
||||
|
||||
int behaviour = getUploadBehaviour(context);
|
||||
|
@ -196,7 +198,7 @@ public class InstantUploadBroadcastReceiver extends BroadcastReceiver {
|
|||
context,
|
||||
account,
|
||||
file_path,
|
||||
FileStorageUtils.getInstantVideoUploadFilePath(context, file_name),
|
||||
FileStorageUtils.getInstantVideoUploadFilePath(context, file_name, date_taken),
|
||||
behaviour,
|
||||
mime_type,
|
||||
true, // create parent folder if not existent
|
||||
|
|
|
@ -114,6 +114,7 @@ public class Preferences extends PreferenceActivity
|
|||
private Preference mPrefInstantUploadPathWiFi;
|
||||
private Preference mPrefInstantVideoUpload;
|
||||
private Preference mPrefInstantVideoUploadPath;
|
||||
private Preference mPrefInstantVideoUploadUseSubfolders;
|
||||
private Preference mPrefInstantVideoUploadPathWiFi;
|
||||
private String mUploadVideoPath;
|
||||
|
||||
|
@ -429,6 +430,7 @@ public class Preferences extends PreferenceActivity
|
|||
});
|
||||
}
|
||||
|
||||
mPrefInstantVideoUploadUseSubfolders = findPreference("instant_video_upload_path_use_subfolders");
|
||||
mPrefInstantVideoUploadPathWiFi = findPreference("instant_video_upload_on_wifi");
|
||||
mPrefInstantVideoUpload = findPreference("instant_video_uploading");
|
||||
toggleInstantVideoOptions(((CheckBoxPreference) mPrefInstantVideoUpload).isChecked());
|
||||
|
@ -491,9 +493,11 @@ public class Preferences extends PreferenceActivity
|
|||
if (value){
|
||||
mPrefInstantUploadCategory.addPreference(mPrefInstantVideoUploadPathWiFi);
|
||||
mPrefInstantUploadCategory.addPreference(mPrefInstantVideoUploadPath);
|
||||
mPrefInstantUploadCategory.addPreference(mPrefInstantVideoUploadUseSubfolders);
|
||||
} else {
|
||||
mPrefInstantUploadCategory.removePreference(mPrefInstantVideoUploadPathWiFi);
|
||||
mPrefInstantUploadCategory.removePreference(mPrefInstantVideoUploadPath);
|
||||
mPrefInstantUploadCategory.removePreference(mPrefInstantVideoUploadUseSubfolders);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -120,6 +120,27 @@ public class FileStorageUtils {
|
|||
return Environment.getExternalStorageDirectory() + File.separator + MainApp.getDataFolder() + File.separator + "log";
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the a string like 2016/08/ for the passed date. If date is 0 an empty
|
||||
* string is returned
|
||||
*
|
||||
* @param date: date in microseconds since 1st January 1970
|
||||
* @return
|
||||
*/
|
||||
private static String getSubpathFromDate(long date) {
|
||||
try {
|
||||
if(date == 0) {
|
||||
return "";
|
||||
}
|
||||
SimpleDateFormat formatter = new SimpleDateFormat(
|
||||
"yyyy" + OCFile.PATH_SEPARATOR + "MM" + OCFile.PATH_SEPARATOR, Locale.ENGLISH);
|
||||
return formatter.format(new Date(date));
|
||||
}
|
||||
catch(RuntimeException ex) {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the InstantUploadFilePath on the owncloud instance
|
||||
*
|
||||
|
@ -132,18 +153,12 @@ public class FileStorageUtils {
|
|||
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
String uploadPathdef = context.getString(R.string.instant_upload_path);
|
||||
String uploadPath = pref.getString("instant_upload_path", uploadPathdef);
|
||||
String subFolders = null;
|
||||
if(dateTaken != 0 && com.owncloud.android.db.PreferenceManager.instantPictureUploadPathUseSubfolders(context)) {
|
||||
try {
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy" + OCFile.PATH_SEPARATOR + "MM" + OCFile.PATH_SEPARATOR, Locale.ENGLISH);
|
||||
subFolders = formatter.format(new Date(dateTaken));
|
||||
Date d = new Date(dateTaken);
|
||||
String subPath = "";
|
||||
if(com.owncloud.android.db.PreferenceManager.instantPictureUploadPathUseSubfolders(context)) {
|
||||
subPath = getSubpathFromDate(dateTaken);
|
||||
}
|
||||
catch(RuntimeException ex) {
|
||||
// don´t use a subfolder if we can´t parse the date
|
||||
}
|
||||
}
|
||||
String value = uploadPath + OCFile.PATH_SEPARATOR + (subFolders != null ? subFolders : "") + (fileName == null ? "" : fileName);
|
||||
String value = uploadPath + OCFile.PATH_SEPARATOR + subPath
|
||||
+ (fileName == null ? "" : fileName);
|
||||
return value;
|
||||
}
|
||||
|
||||
|
@ -153,11 +168,16 @@ public class FileStorageUtils {
|
|||
* @param fileName: video file name
|
||||
* @return String: video file path composed
|
||||
*/
|
||||
public static String getInstantVideoUploadFilePath(Context context, String fileName) {
|
||||
public static String getInstantVideoUploadFilePath(Context context, String fileName, long dateTaken) {
|
||||
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
String uploadVideoPathdef = context.getString(R.string.instant_upload_path);
|
||||
String uploadVideoPath = pref.getString("instant_video_upload_path", uploadVideoPathdef);
|
||||
String value = uploadVideoPath + OCFile.PATH_SEPARATOR + (fileName == null ? "" : fileName);
|
||||
String subPath = "";
|
||||
if(com.owncloud.android.db.PreferenceManager.instantVideoUploadPathUseSubfolders(context)) {
|
||||
subPath = getSubpathFromDate(dateTaken);
|
||||
}
|
||||
String value = uploadVideoPath + OCFile.PATH_SEPARATOR + subPath
|
||||
+ (fileName == null ? "" : fileName);
|
||||
return value;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue