<uses-sdk
android:minSdkVersion="8"
- android:targetSdkVersion="13" />
+ android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
</uses-permission>
</service>
<service
android:name=".syncadapter.FileSyncService"
- android:exported="true" >
+ android:exported="true"
+ android:process=":sync">
<intent-filter>
<action android:name="android.content.SyncAdapter" />
</intent-filter>
import android.util.Log;
+
/**
* AdvancedSSLProtocolSocketFactory allows to create SSL {@link Socket}s with
* a custom SSLContext and an optional Hostname Verifier.
import android.util.Log;
+
/**
* @author David A. Velasco
*/
import android.util.Log;
+
/**
* Bearer authentication scheme as defined in RFC 6750.
*
import android.util.Log;
-
/**
* A RequestEntity that represents a PIECE of a file.
*
import com.owncloud.android.oc_framework.network.ProgressiveDataTransferer;
-
-
/**
* A RequestEntity that represents a File.
*
import com.owncloud.android.oc_framework.network.BearerAuthScheme;
import com.owncloud.android.oc_framework.network.BearerCredentials;
-
import android.net.Uri;
import android.util.Log;
import org.apache.jackrabbit.webdav.property.DavPropertySet;
+
import android.net.Uri;
import android.util.Log;
import com.owncloud.android.oc_framework.operations.RemoteOperationResult.ResultCode;
+
import android.accounts.Account;
import android.accounts.AccountManager;
import android.accounts.AccountsException;
# project structure.
# Project target.
-target=android-17
-android.library.reference.1=actionbarsherlock\\library
+target=android-19
+android.library.reference.1=actionbarsherlock/library
android.library.reference.2=oc_framework
</LinearLayout>\r
\r
<Button\r
- android:id="@id/buttonOK"\r
- android:layout_width="match_parent"\r
- android:layout_height="wrap_content"\r
- android:background="@android:drawable/btn_default"\r
- android:layout_above="@id/account_register"\r
- android:layout_centerHorizontal="true"\r
- android:enabled="false"\r
- android:onClick="onOkClick"\r
- android:text="@string/setup_btn_connect"\r
- />\r
+ android:id="@id/buttonOK"\r
+ android:layout_width="match_parent"\r
+ android:layout_height="wrap_content"\r
+ android:layout_above="@+id/welcome_link"\r
+ android:layout_centerHorizontal="true"\r
+ android:enabled="false"\r
+ android:onClick="onOkClick"\r
+ android:text="@string/setup_btn_connect" />\r
\r
<Button\r
- android:id="@+id/account_register"\r
- android:layout_width="wrap_content"\r
- android:layout_height="wrap_content"\r
- android:layout_centerHorizontal="true"\r
- android:layout_alignParentBottom="true"\r
- android:background="@android:color/transparent"\r
- android:textColor="#0000FF"\r
- android:onClick="onRegisterClick"\r
- android:paddingTop="5dp"\r
- android:paddingBottom="5dp"\r
- android:text="@string/auth_register" \r
- />\r
+ android:id="@id/welcome_link"\r
+ android:layout_width="wrap_content"\r
+ android:layout_height="wrap_content"\r
+ android:layout_alignParentBottom="true"\r
+ android:layout_centerHorizontal="true"\r
+ android:background="@android:color/transparent"\r
+ android:onClick="onRegisterClick"\r
+ android:paddingBottom="5dp"\r
+ android:paddingTop="5dp"\r
+ android:text="@string/auth_register"\r
+ android:textColor="#0000FF"/>\r
\r
</RelativeLayout>\r
android:id="@+id/buttonOK"\r
android:layout_width="match_parent"\r
android:layout_height="wrap_content"\r
- android:background="@android:drawable/btn_default"\r
android:layout_gravity="center_horizontal"\r
android:enabled="false"\r
android:onClick="onOkClick"\r
- android:text="@string/setup_btn_connect"\r
- />\r
+ android:text="@string/setup_btn_connect" />\r
\r
<Button\r
- android:id="@+id/account_register"\r
+ android:id="@+id/welcome_link"\r
android:layout_width="wrap_content"\r
android:layout_height="wrap_content"\r
android:background="@android:color/transparent"\r
- android:textColor="#0000FF" \r
android:onClick="onRegisterClick"\r
android:paddingBottom="5dp"\r
android:paddingTop="5dp"\r
android:text="@string/auth_register"\r
- />\r
+ android:textColor="#0000FF"/>\r
+\r
</LinearLayout>\r
\r
</ScrollView>
\ No newline at end of file
android:layout_height="wrap_content"
android:gravity="bottom">
- <Button android:id="@+id/deleteLogHistoryButton"
+ <Button
+ android:id="@+id/deleteLogHistoryButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/prefs_log_delete_history_button"/>
style="@style/PassCodeStyle" />\r
</LinearLayout>\r
\r
- <Button android:layout_width="wrap_content"\r
+ <Button\r
+ android:id="@+id/cancel"\r
+ android:layout_width="wrap_content"\r
android:layout_height="wrap_content"\r
- android:text="@string/common_cancel"\r
- android:textColor="@android:color/black"\r
- android:id="@+id/cancel"/>\r
+ android:text="@string/common_cancel" />\r
+\r
</LinearLayout>\r
android:layout_width="fill_parent" android:layout_alignParentBottom="true" android:layout_height="wrap_content" android:orientation="vertical">
<Button android:layout_gravity="bottom" android:layout_height="wrap_content"
android:layout_width="fill_parent" android:id="@+id/uploader_choose_folder"
- android:text="@string/uploader_btn_upload_text"></Button>
+ android:text="@string/uploader_btn_upload_text"/>
</LinearLayout>
</RelativeLayout>
<string name="auth_timeout_title">El servidor ha trigat massa en respondre</string>
<string name="auth_incorrect_address_title">La URL esà malformada</string>
<string name="auth_ssl_general_error_title">La inicialització SSL ha fallat</string>
+ <string name="auth_ssl_unverified_server_title">No s\'ha pogut verificar la identitat SSL del servidor</string>
<string name="auth_bad_oc_version_title">Versió del servidor desconeguda</string>
<string name="auth_wrong_connection_title">No s\'ha pogut establir la connexió</string>
<string name="auth_secure_connection">S\'ha establert la connexió segura</string>
<string name="prefs_log_summary_history">여기서 기록된 로그를 보여줍니다</string>
<string name="prefs_log_delete_history_button">역사 삭제하기</string>
<string name="prefs_help">도움말</string>
+ <string name="prefs_recommend">친구들에게 권하기</string>
<string name="prefs_feedback">피드백</string>
<string name="prefs_imprint">임프린트</string>
+ <string name="recommend_subject">%1$s 을 스마트폰에서 사용해보세요!</string>
<string name="auth_check_server">서버 확인</string>
<string name="auth_host_url">서버 주소</string>
<string name="auth_username">사용자 이름</string>
<string name="sync_foreign_files_forgotten_ticker">몇몇 로컬 파일이 사라졌습니다.</string>
<string name="sync_foreign_files_forgotten_content">%1$d 파일을 %2$s 디렉토리에 복사하지 못하였습니다.</string>
<string name="sync_foreign_files_forgotten_explanation">1.3.16 버전에서, 파일 업로드는 다수의 계정이 동시에 접속될때 데이터 유실을 피하기 위해 로컬 %1$s 폴더로 복사됩니다.⏎\n⏎\n이 변화로 인해, 예전 버전으로 올리신 파일들은 %2$s 폴더로 복사되었습니다. 그러나, 계정 동기화중 오류로 인해 작업을 완료하지 못할수 있습니다. 파일을 남기시고 %3$s로 연결되는 링크를 지우시거나, 혹은 파일을 %1$s 폴더로 이동시키고, %4$s에 링크를 유지시킬수 있습니다.⏎\n⏎\n아래에는 로컬 파일과 더불어, %5$s로 링크된 리모트 파일들의 목록이 있습니다.\n</string>
+ <string name="sync_current_folder_was_removed">%1$s 폴더가 존재하지 않습니다.</string>
<string name="foreign_files_move">모두 옮김</string>
<string name="foreign_files_success">모든 파일 옮김</string>
<string name="foreign_files_fail">몇몇 파일을 옮기지 못했습니다.</string>
<string name="auth_timeout_title">서버 응답 시간이 초과되었습니다</string>
<string name="auth_incorrect_address_title">잘못된 URL</string>
<string name="auth_ssl_general_error_title">SSL 초기화 오류</string>
+ <string name="auth_ssl_unverified_server_title">SSL 서버의 신원을 확인할수 없습니다</string>
<string name="auth_bad_oc_version_title">확인할 수 없는 서버 버전</string>
<string name="auth_wrong_connection_title">연결을 수립할 수 없음</string>
<string name="auth_secure_connection">암호화된 연결 사용 중</string>
<string name="auth_oauth_error">권한부여가 성공적으로 이뤄지지 않았습니다</string>
<string name="auth_oauth_error_access_denied">권한 서버로 부터 접근이 거부되었습니다</string>
<string name="auth_wtf_reenter_URL">뜻밖의 상태; 다시 서버 주소를 입력해주십시오</string>
+ <string name="auth_expired_oauth_token_toast">인증이 만료되었습니다. 다시 인증해주세요</string>
<string name="auth_expired_basic_auth_toast">현재 암호를 </string>
+ <string name="auth_expired_saml_sso_token_toast">세션이 만료되었습니다. 다시 접속해주세요</string>
+ <string name="auth_connecting_auth_server">인증 서버에 접속하는 중...</string>
+ <string name="auth_unsupported_auth_method">서버에서 이 인증 방법을 지원하지 않습니다.</string>
+ <string name="auth_unsupported_multiaccount">%1$s 에서는 다중 계정을 지원하지 않습니다</string>
<string name="fd_keep_in_sync">파일을 최신 정보로 유지</string>
<string name="common_rename">이름 바꾸기</string>
<string name="common_remove">삭제</string>
<string name="wait_a_moment">잠시 기다려 주십시오</string>
<string name="filedisplay_unexpected_bad_get_content">예상하지 못한 오류입니다. 다른 앱에서 파일을 선택하십시오</string>
<string name="filedisplay_no_file_selected">선택한 파일 없음</string>
+ <string name="oauth_check_onoff">oAuth2로 로그인하기</string>
<string name="oauth_login_connection">oAuth2 서버에 연결중...</string>
<string name="ssl_validator_header">사이트 인증서를 확인할 수 없었습니다</string>
<string name="ssl_validator_reason_cert_not_trusted">- 서버 인증서를 신뢰할 수 없습니다</string>
<string name="pincode_stored">PIN App disimpan</string>
<string name="auth_no_net_conn_title">Tiada sambungan rangkaian</string>
<string name="common_rename">Namakan</string>
+ <string name="common_remove">Buang</string>
<string name="confirmation_remove_local">Lokal sahaja</string>
</resources>
<string name="sync_foreign_files_forgotten_ticker">Несколько локальных файлов были забыты</string>
<string name="sync_foreign_files_forgotten_content">%1$d файлы из %2$s папки не могут быть скопированы в</string>
<string name="sync_foreign_files_forgotten_explanation">файлы, загруженные с этого устройства, скопированы в локальную папку %1$s для предотвращения потери данных, когда отдельный файл синхронизируется с нескольких учётных записей. По причине этого изменения, все файлы, загруженные в предыдущих версиях этого приложения, были скопированы в папку %2$s. Однако, ошибка помешала завершению этой операции при синхронизации учётной записи. Вы можете либо оставить файлы как есть, или переместить их в папку %1$s и сохранить ссылку в %4$s. \nВ списке указаны локальные файлы, привязанные к файлам на сервере в папке %5$s.</string>
+ <string name="sync_current_folder_was_removed">Каталог %1$s больше не существует</string>
<string name="foreign_files_move">Переместить всё</string>
<string name="foreign_files_success">Все файлы были перемещены</string>
<string name="foreign_files_fail">Некоторые файлы не могут быть перемещены</string>
<string name="media_err_unsupported">Saknar stöd för denna mediatyp</string>
<string name="media_err_io">Mediafil kunde inte skapas</string>
<string name="media_err_malformed">Mediafilen är felaktigt kodad</string>
+ <string name="media_err_timeout">Försökt att spela för länge</string>
<string name="media_err_invalid_progressive_playback">Meidiafilen kan inte strömmas</string>
<string name="media_err_unknown">Mediefilen kan inte spelas med standardspelaren</string>
<string name="media_err_security_ex">Säkerhetsproplem när vi försöker spela %1$s</string>
<string name="wait_a_moment">Var god vänta</string>
<string name="filedisplay_unexpected_bad_get_content">Oväntat problem; prova annat program för aktuell fil</string>
<string name="filedisplay_no_file_selected">Ingen fil vald</string>
+ <string name="oauth_check_onoff">Logga in med oAuth2.</string>
<string name="oauth_login_connection">Ansluter till oAuth2 servern…</string>
<string name="ssl_validator_header">Webbplatsens identitet kunde inte verifieras</string>
<string name="ssl_validator_reason_cert_not_trusted">- Servercertifikatet är inte tillförlitligt</string>
--- /dev/null
+<?xml version='1.0' encoding='UTF-8'?>
+<resources/>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <style name="Theme.ownCloud.ButtonStyle" parent="@android:style/Widget.Holo.Light.Button">
+ <item name="android:background">@android:drawable/btn_default</item>
+ <item name="android:textColor">@color/button_text_color</item>
+ </style>
+
+</resources>
<resources>
<!-- App name and other strings-->
<string name="app_name">ownCloud</string>
- <string name="account_type">owncloud</string>
- <string name="authority">org.owncloud</string>
+ <string name="account_type">owncloud</string> <!-- better if was a domain name; but changing it now would require migrate accounts when the app is updated -->
+ <string name="authority">org.owncloud</string> <!-- better if was the app package with ".provider" appended ; it identifies the provider -->
<string name ="db_file">owncloud.db</string>
<string name ="db_name">ownCloud</string>
<string name ="data_folder">owncloud</string>
<!-- URLs and flags related -->
<string name="server_url"></string>
<bool name="show_server_url_input">true</bool>
- <string name="url_account_register">"https://owncloud.com/mobile/new"</string>
+ <bool name="show_welcome_link">true</bool>
+ <string name="welcome_link_url">"https://owncloud.com/mobile/new"</string>
<!-- Flags to setup the authentication methods available in the app -->
<string name="auth_method_oauth2">off</string>
<color name="actionbar_start_color">#1D2D44</color>
<color name="actionbar_end_color">#1D2D44</color>
+ <!-- Button -->
+ <color name="button_text_color">#000000</color>
+
<!-- Multiaccount support -->
<bool name="multiaccount_support">true</bool>
</resources>
+
<style name="Theme.ownCloud" parent="style/Theme.Sherlock.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/Theme.ownCloud.Widget.ActionBar</item>
<item name="actionBarStyle">@style/Theme.ownCloud.Widget.ActionBar</item>
+ <item name="android:buttonStyle">@style/Theme.ownCloud.ButtonStyle</item>
+ <item name="actionDropDownStyle">@style/Theme.ownCloud.DropDownStyle</item>
+ <item name="android:actionDropDownStyle">@style/Theme.ownCloud.DropDownStyle</item>
</style>
<style name="Theme.ownCloud.noActionBar" parent="style/Theme.Sherlock.Light.NoActionBar">
<item name="android:actionBarStyle">@style/Theme.ownCloud.Widget.ActionBar</item>
<item name="actionBarStyle">@style/Theme.ownCloud.Widget.ActionBar</item>
+ <item name="android:buttonStyle">@style/Theme.ownCloud.ButtonStyle</item>
+ <item name="actionDropDownStyle">@style/Theme.ownCloud.DropDownStyle</item>
+ <item name="android:actionDropDownStyle">@style/Theme.ownCloud.DropDownStyle</item>
</style>
<style name="Theme.ownCloud.Fullscreen" parent="style/Theme.Sherlock.NoActionBar">
<item name="android:actionBarStyle">@style/Theme.ownCloud.Widget.ActionBar</item>
<item name="actionBarStyle">@style/Theme.ownCloud.Widget.ActionBar</item>
<item name="android:windowFullscreen">true</item>
+ <item name="actionDropDownStyle">@style/Theme.ownCloud.DropDownStyle</item>
+ <item name="android:actionDropDownStyle">@style/Theme.ownCloud.DropDownStyle</item>
</style>
<item name="android:shadowRadius">1</item>
<item name="android:shadowDy">1</item>
<item name="android:backgroundSplit">@drawable/split_action_bg</item>
+ <item name="android:indeterminateProgressStyle">@style/Theme.ownCloud.IndeterminateStyle</item>
+ <item name="indeterminateProgressStyle">@style/Theme.ownCloud.IndeterminateStyle</item>
</style>
-
<!-- Dialogs -->
<style name="Theme.ownCloud.Dialog" parent="style/Theme.Sherlock.Light.Dialog">
</style>
-
<!-- PopDownMenu -->
<style name="Animations.PopDownMenu" />
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <!-- Buttons -->
+ <style name="Theme.ownCloud.ButtonStyle" parent="@android:style/Widget.Button">
+ <item name="android:background">@android:drawable/btn_default</item>
+ <item name="android:textColor">@color/button_text_color</item>
+ </style>
+
+ <!-- DropDown -->
+ <style name="Theme.ownCloud.DropDownStyle" parent="style/Widget.Sherlock.Spinner.DropDown.ActionBar">
+ <item name="android:background">@drawable/abs__spinner_ab_holo_dark</item>
+ </style>
+
+ <style name="Theme.ownCloud.IndeterminateStyle" parent="style/Widget.Sherlock.ProgressBar">
+ <item name="android:indeterminateDrawable">@drawable/abs__progress_medium_holo</item>
+ </style>
+
+</resources>
android:contentAuthority="@string/authority"
android:accountType="@string/account_type"
android:supportsUploading="true"
+ android:userVisible="true"
+ android:allowParallelSyncs="true"
+ android:isAlwaysSyncable="true"
/>
import java.util.Stack;
import java.util.Vector;
+import com.owncloud.android.R;
+import com.owncloud.android.authentication.AccountAuthenticator;
+import com.owncloud.android.datamodel.FileDataStorageManager;
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.files.services.FileUploader;
+
import android.accounts.Account;
import android.accounts.AccountManager;
import android.app.AlertDialog;
import android.widget.SimpleAdapter;
import android.widget.Toast;
-import com.owncloud.android.authentication.AccountAuthenticator;
-import com.owncloud.android.datamodel.FileDataStorageManager;
-import com.owncloud.android.datamodel.OCFile;
-import com.owncloud.android.files.services.FileUploader;
-
-import com.owncloud.android.R;
/**
* This can be used to upload things to an ownCloud instance.
package com.owncloud.android.authentication;
+import com.owncloud.android.Log_OC;
+import com.owncloud.android.MainApp;
+import com.owncloud.android.R;
+
import android.accounts.*;
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
import android.widget.Toast;
-import com.owncloud.android.Log_OC;
-import com.owncloud.android.MainApp;
-
-import com.owncloud.android.R;
import com.owncloud.android.oc_framework.accounts.AccountTypeUtils;
public class AccountAuthenticatorService extends Service {
private AccountAuthenticator mAuthenticator;
- //static final public String ACCOUNT_TYPE = "owncloud";
@Override
public void onCreate() {
import com.owncloud.android.ui.dialog.SslValidatorDialog.OnSslValidatorListener;\r
import com.owncloud.android.oc_framework.utils.OwnCloudVersion;\r
\r
-\r
/**\r
* This Activity is used to add an ownCloud account to the App\r
* \r
/// set Host Url Input Enabled\r
mHostUrlInputEnabled = getResources().getBoolean(R.bool.show_server_url_input);\r
\r
-\r
- /// complete label for 'register account' button\r
- Button b = (Button) findViewById(R.id.account_register);\r
- if (b != null) {\r
- b.setText(String.format(getString(R.string.auth_register), getString(R.string.app_name)));\r
+ /// set visibility of link for new users\r
+ boolean accountRegisterVisibility = getResources().getBoolean(R.bool.show_welcome_link);\r
+ Button welcomeLink = (Button) findViewById(R.id.welcome_link);\r
+ if (welcomeLink != null) {\r
+ if (accountRegisterVisibility) {\r
+ welcomeLink.setVisibility(View.VISIBLE);\r
+ welcomeLink.setText(String.format(getString(R.string.auth_register), getString(R.string.app_name))); \r
+ } else {\r
+ findViewById(R.id.welcome_link).setVisibility(View.GONE);\r
+ }\r
}\r
\r
/// initialization\r
setAccountAuthenticatorResult(intent.getExtras());\r
setResult(RESULT_OK, intent);\r
\r
- /// immediately request for the synchronization of the new account\r
- Bundle bundle = new Bundle();\r
- bundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);\r
- ContentResolver.requestSync(mAccount, MainApp.getAuthTokenType(), bundle);\r
- syncAccount();\r
-// Bundle bundle = new Bundle();\r
-// bundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);\r
-// ContentResolver.requestSync(mAccount, MainApp.getAuthTokenType(), bundle);\r
return true;\r
}\r
}\r
* @param view 'Account register' button\r
*/\r
public void onRegisterClick(View view) {\r
- Intent register = new Intent(Intent.ACTION_VIEW, Uri.parse(getString(R.string.url_account_register)));\r
+ Intent register = new Intent(Intent.ACTION_VIEW, Uri.parse(getString(R.string.welcome_link_url)));\r
setResult(RESULT_CANCELED);\r
startActivity(register);\r
}\r
mAuthMessage.setVisibility(View.GONE);\r
}\r
\r
- private void syncAccount(){\r
- /// immediately request for the synchronization of the new account\r
- Bundle bundle = new Bundle();\r
- bundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);\r
- ContentResolver.requestSync(mAccount, MainApp.getAuthTokenType(), bundle);\r
- }\r
- \r
@Override\r
public boolean onTouchEvent(MotionEvent event) {\r
if (AccountTypeUtils.getAuthTokenTypeSamlSessionCookie(MainApp.getAccountType()).equals(mAuthTokenType) &&\r
import com.owncloud.android.Log_OC;
+
import android.graphics.Bitmap;
import android.os.Handler;
import android.os.Message;
import com.owncloud.android.db.ProviderMeta.ProviderTableMeta;
import com.owncloud.android.utils.FileStorageUtils;
+
import android.accounts.Account;
import android.content.ContentProviderClient;
import android.content.ContentProviderOperation;
if (id > FileDataStorageManager.ROOT_PARENT_ID) {
Log_OC.d(TAG, "Updating size of " + id);
if (getContentResolver() != null) {
- getContentResolver().update(ProviderTableMeta.CONTENT_URI_DIR, null,
+ getContentResolver().update(ProviderTableMeta.CONTENT_URI_DIR,
+ new ContentValues(), // won't be used, but cannot be null; crashes in KLP
ProviderTableMeta._ID + "=?",
new String[] { String.valueOf(id) });
} else {
try {
- getContentProviderClient().update(ProviderTableMeta.CONTENT_URI_DIR, null,
- ProviderTableMeta._ID + "=?",
- new String[] { String.valueOf(id) });
+ getContentProviderClient().update(ProviderTableMeta.CONTENT_URI_DIR,
+ new ContentValues(), // won't be used, but cannot be null; crashes in KLP
+ ProviderTableMeta._ID + "=?",
+ new String[] { String.valueOf(id) });
} catch (RemoteException e) {
Log_OC.e(TAG, "Exception in update of folder size through compatibility patch " + e.getMessage());
import com.owncloud.android.Log_OC;
+
import android.os.Parcel;
import android.os.Parcelable;
import android.webkit.MimeTypeMap;
import java.io.File;
+import com.owncloud.android.Log_OC;
+import com.owncloud.android.MainApp;
import com.owncloud.android.authentication.AccountUtils;
import com.owncloud.android.db.DbHandler;
import com.owncloud.android.files.services.FileUploader;
+import com.owncloud.android.utils.FileStorageUtils;
+
import android.accounts.Account;
import android.content.BroadcastReceiver;
import android.provider.MediaStore.Images.Media;
import android.webkit.MimeTypeMap;
-import com.owncloud.android.Log_OC;
-import com.owncloud.android.MainApp;
-import com.owncloud.android.utils.FileStorageUtils;
public class InstantUploadBroadcastReceiver extends BroadcastReceiver {
import com.owncloud.android.ui.activity.ConflictsResolveActivity;
+
import android.accounts.Account;
import android.content.Context;
import android.content.Intent;
import java.util.HashMap;
import java.util.Map;
+import com.owncloud.android.R;
+
import android.app.Notification;
import android.app.NotificationManager;
import android.content.Context;
import android.widget.RemoteViews;
-import com.owncloud.android.R;
public class OCNotificationManager {
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
+import com.owncloud.android.Log_OC;
+import com.owncloud.android.R;
import com.owncloud.android.authentication.AuthenticatorActivity;
import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.datamodel.OCFile;
import android.os.Process;
import android.widget.RemoteViews;
-import com.owncloud.android.Log_OC;
-import com.owncloud.android.R;
-
public class FileDownloader extends Service implements OnDatatransferProgressListener {
public static final String EXTRA_ACCOUNT = "ACCOUNT";
import com.owncloud.android.operations.SynchronizeFileOperation;
import com.owncloud.android.utils.FileStorageUtils;
+
import android.accounts.Account;
import android.accounts.AccountManager;
import android.app.Service;
import org.apache.jackrabbit.webdav.MultiStatus;
import org.apache.jackrabbit.webdav.client.methods.PropFindMethod;
+import com.owncloud.android.Log_OC;
+import com.owncloud.android.MainApp;
+import com.owncloud.android.R;
import com.owncloud.android.authentication.AccountAuthenticator;
import com.owncloud.android.authentication.AuthenticatorActivity;
import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.db.DbHandler;
import com.owncloud.android.operations.ChunkedUploadFileOperation;
import com.owncloud.android.operations.CreateFolderOperation;
import com.owncloud.android.operations.ExistenceCheckOperation;
import com.owncloud.android.operations.UploadFileOperation;
import com.owncloud.android.oc_framework.operations.RemoteOperationResult.ResultCode;
import com.owncloud.android.oc_framework.utils.OwnCloudVersion;
-
import com.owncloud.android.oc_framework.network.webdav.OnDatatransferProgressListener;
import com.owncloud.android.oc_framework.accounts.OwnCloudAccount;
import com.owncloud.android.oc_framework.network.webdav.OwnCloudClientFactory;
import com.owncloud.android.oc_framework.network.webdav.WebdavClient;
import com.owncloud.android.oc_framework.network.webdav.WebdavEntry;
import com.owncloud.android.oc_framework.network.webdav.WebdavUtils;
+import com.owncloud.android.ui.activity.FailedUploadActivity;
+import com.owncloud.android.ui.activity.FileActivity;
+import com.owncloud.android.ui.activity.FileDisplayActivity;
+import com.owncloud.android.ui.activity.InstantUploadActivity;
+import com.owncloud.android.ui.preview.PreviewImageActivity;
+import com.owncloud.android.ui.preview.PreviewImageFragment;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.webkit.MimeTypeMap;
import android.widget.RemoteViews;
-import com.owncloud.android.Log_OC;
-import com.owncloud.android.MainApp;
-import com.owncloud.android.R;
-import com.owncloud.android.db.DbHandler;
-import com.owncloud.android.ui.activity.FailedUploadActivity;
-import com.owncloud.android.ui.activity.FileActivity;
-import com.owncloud.android.ui.activity.FileDisplayActivity;
-import com.owncloud.android.ui.activity.InstantUploadActivity;
-import com.owncloud.android.ui.preview.PreviewImageActivity;
-import com.owncloud.android.ui.preview.PreviewImageFragment;
public class FileUploader extends Service implements OnDatatransferProgressListener {
import com.owncloud.android.R;
+
/**
* View containing controls for a {@link MediaPlayer}.
*
import com.owncloud.android.ui.activity.FileActivity;
import com.owncloud.android.ui.activity.FileDisplayActivity;
+
/**
* Service that handles media playback, both audio and video.
*
return (currentState == MediaService.State.PLAYING || currentState == MediaService.State.PAUSED);
}
+
+ @Override
+ public int getAudioSessionId() {
+ return 1; // not really used
+ }
+
}
import com.owncloud.android.oc_framework.network.webdav.WebdavClient;
import com.owncloud.android.oc_framework.network.webdav.WebdavUtils;
+
import android.accounts.Account;
import java.io.IOException;
import org.apache.jackrabbit.webdav.client.methods.DavMethodBase;
-//import org.apache.jackrabbit.webdav.client.methods.MoveMethod;
-
-import android.accounts.Account;
import com.owncloud.android.Log_OC;
import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.oc_framework.operations.RemoteOperationResult;
import com.owncloud.android.oc_framework.operations.RemoteOperationResult.ResultCode;
import com.owncloud.android.utils.FileStorageUtils;
+//import org.apache.jackrabbit.webdav.client.methods.MoveMethod;
+
+import android.accounts.Account;
+
/**
import org.apache.jackrabbit.webdav.MultiStatus;
import org.apache.jackrabbit.webdav.client.methods.PropFindMethod;
-import android.accounts.Account;
-import android.content.Context;
-import android.content.Intent;
-
import com.owncloud.android.Log_OC;
import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.oc_framework.operations.RemoteOperationResult;
import com.owncloud.android.oc_framework.operations.RemoteOperationResult.ResultCode;
+import android.accounts.Account;
+import android.content.Context;
+import android.content.Intent;
+
public class SynchronizeFileOperation extends RemoteOperation {
import org.json.JSONException;
import org.json.JSONObject;
-import android.accounts.Account;
-import android.accounts.AccountManager;
-import android.content.Context;
-
-import com.owncloud.android.authentication.AccountAuthenticator;
-import com.owncloud.android.authentication.AccountUtils;
import com.owncloud.android.Log_OC;
+import com.owncloud.android.authentication.AccountUtils;
import com.owncloud.android.oc_framework.accounts.OwnCloudAccount;
import com.owncloud.android.oc_framework.network.webdav.WebdavClient;
import com.owncloud.android.oc_framework.operations.RemoteOperation;
import com.owncloud.android.oc_framework.operations.RemoteOperationResult.ResultCode;
import com.owncloud.android.oc_framework.utils.OwnCloudVersion;
+import android.accounts.Account;
+import android.accounts.AccountManager;
+import android.content.Context;
+
/**
* Remote operation that checks the version of an ownCloud server and stores it locally
import org.apache.http.HttpStatus;
import com.owncloud.android.Log_OC;
-import android.accounts.Account;
-
import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.files.services.FileUploader;
import com.owncloud.android.oc_framework.network.ProgressiveDataTransferer;
import com.owncloud.android.oc_framework.operations.RemoteOperationResult.ResultCode;
import com.owncloud.android.utils.FileStorageUtils;
+import android.accounts.Account;
+
/**
* Remote operation performing the upload of a file to an ownCloud server
import com.owncloud.android.db.ProviderMeta.ProviderTableMeta;
+
import android.content.ContentProvider;
import android.content.ContentProviderOperation;
import android.content.ContentProviderResult;
import com.owncloud.android.oc_framework.network.webdav.OwnCloudClientFactory;\r
import com.owncloud.android.oc_framework.network.webdav.WebdavClient;\r
\r
+\r
import android.accounts.Account;\r
import android.accounts.AccountManager;\r
import android.accounts.AuthenticatorException;\r
\r
private AccountManager accountManager;\r
private Account account;\r
- private ContentProviderClient contentProvider;\r
+ private ContentProviderClient mContentProviderClient;\r
private FileDataStorageManager mStoreManager;\r
\r
private WebdavClient mClient = null;\r
this.setAccountManager(AccountManager.get(context));\r
}\r
\r
+ public AbstractOwnCloudSyncAdapter(Context context, boolean autoInitialize, boolean allowParallelSyncs) {\r
+ super(context, autoInitialize, allowParallelSyncs);\r
+ this.setAccountManager(AccountManager.get(context));\r
+ }\r
+\r
public AccountManager getAccountManager() {\r
return accountManager;\r
}\r
this.account = account;\r
}\r
\r
- public ContentProviderClient getContentProvider() {\r
- return contentProvider;\r
+ public ContentProviderClient getContentProviderClient() {\r
+ return mContentProviderClient;\r
}\r
\r
- public void setContentProvider(ContentProviderClient contentProvider) {\r
- this.contentProvider = contentProvider;\r
+ public void setContentProviderClient(ContentProviderClient contentProvider) {\r
+ this.mContentProviderClient = contentProvider;\r
}\r
\r
public void setStorageManager(FileDataStorageManager storage_manager) {\r
import com.owncloud.android.authentication.AccountUtils;
import com.owncloud.android.oc_framework.accounts.OwnCloudAccount;
+
import android.accounts.Account;
import android.accounts.AccountManager;
import android.accounts.AuthenticatorException;
public void onPerformSync(Account account, Bundle extras, String authority,
ContentProviderClient provider, SyncResult syncResult) {
setAccount(account);
- setContentProvider(provider);
+ setContentProviderClient(provider);
Cursor c = getLocalContacts(false);
if (c.moveToFirst()) {
do {
import com.owncloud.android.oc_framework.operations.RemoteOperationResult.ResultCode;
import com.owncloud.android.ui.activity.ErrorsWhileCopyingHandlerActivity;
+
import android.accounts.Account;
import android.accounts.AccountsException;
import android.app.Notification;
/**
- * Creates an {@link FileSyncAdapter}
+ * Creates a {@link FileSyncAdapter}
*
* {@inheritDoc}
*/
/**
+ * Creates a {@link FileSyncAdapter}
+ *
+ * {@inheritDoc}
+ */
+ public FileSyncAdapter(Context context, boolean autoInitialize, boolean allowParallelSyncs) {
+ super(context, autoInitialize, allowParallelSyncs);
+ }
+
+
+ /**
* {@inheritDoc}
*/
@Override
public synchronized void onPerformSync(Account account, Bundle extras,
- String authority, ContentProviderClient provider,
+ String authority, ContentProviderClient providerClient,
SyncResult syncResult) {
mCancellation = false;
mSyncResult.delayUntil = 60*60*24; // avoid too many automatic synchronizations
this.setAccount(account);
- this.setContentProvider(provider);
- this.setStorageManager(new FileDataStorageManager(account, provider));
+ this.setContentProviderClient(providerClient);
+ this.setStorageManager(new FileDataStorageManager(account, providerClient));
try {
this.initClientForCurrentAccount();
} catch (IOException e) {
*/\r
package com.owncloud.android.syncadapter;\r
\r
+import com.owncloud.android.Log_OC;\r
+\r
import android.app.Service;\r
import android.content.Intent;\r
import android.os.IBinder;\r
public static final String ACCOUNT_NAME = "ACCOUNT_NAME";\r
public static final String SYNC_RESULT = "SYNC_RESULT";\r
\r
+ // Storage for an instance of the sync adapter\r
+ private static FileSyncAdapter sSyncAdapter = null;\r
+ // Object to use as a thread-safe lock\r
+ private static final Object sSyncAdapterLock = new Object();\r
+ \r
public static String getSyncMessage(){\r
return FileSyncService.class.getName().toString() + SYNC_MESSAGE;\r
}\r
*/\r
@Override\r
public void onCreate() {\r
+ synchronized (sSyncAdapterLock) {\r
+ if (sSyncAdapter == null) {\r
+ sSyncAdapter = new FileSyncAdapter(getApplicationContext(), true);\r
+ }\r
+ }\r
}\r
\r
/*\r
*/\r
@Override\r
public IBinder onBind(Intent intent) {\r
- return new FileSyncAdapter(getApplicationContext(), true).getSyncAdapterBinder();\r
+ return sSyncAdapter.getSyncAdapterBinder();\r
}\r
\r
}\r
\r
import com.owncloud.android.R;\r
\r
+\r
/**\r
* Popup window, shows action list as icon and text like the one in Gallery3D\r
* app.\r
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
-import com.owncloud.android.authentication.AccountAuthenticator;
import com.owncloud.android.authentication.AuthenticatorActivity;
import com.owncloud.android.authentication.AccountUtils;
import com.owncloud.android.oc_framework.accounts.OwnCloudAccount;
import com.owncloud.android.Log_OC;
import com.owncloud.android.MainApp;
-
import com.owncloud.android.R;
+
public class AccountSelectActivity extends SherlockListActivity implements
AccountManagerCallback<Boolean> {
(mPreviousAccount != null && !mPreviousAccount.equals(current))) {
/// the account set as default changed since this activity was created
- // trigger synchronization
- ContentResolver.cancelSync(null, MainApp.getAuthTokenType());
- Bundle bundle = new Bundle();
- bundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
- ContentResolver.requestSync(AccountUtils.getCurrentOwnCloudAccount(this), MainApp.getAuthTokenType(), bundle);
-
// restart the main activity
Intent i = new Intent(this, FileDisplayActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
import com.owncloud.android.R;
import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.datamodel.OCFile;
+
import com.owncloud.android.ui.dialog.IndeterminateProgressDialog;
import com.owncloud.android.utils.FileStorageUtils;
+
/**
* Activity reporting errors occurred when local files uploaded to an ownCloud account with an app in
* version under 1.3.16 where being copied to the ownCloud local folder.
/// customize buttons
Button cancelBtn = (Button) findViewById(R.id.cancel);
Button okBtn = (Button) findViewById(R.id.ok);
+
okBtn.setText(R.string.foreign_files_move);
cancelBtn.setOnClickListener(this);
okBtn.setOnClickListener(this);
\r
package com.owncloud.android.ui.activity;\r
\r
+import com.owncloud.android.R;\r
+\r
import android.app.Activity;\r
import android.os.Bundle;\r
import android.view.View;\r
import android.widget.Button;\r
import android.widget.TextView;\r
\r
-import com.owncloud.android.R;\r
\r
/**\r
* This Activity is used to display a detail message for failed uploads\r
String message = getIntent().getStringExtra(MESSAGE);\r
TextView textView = (TextView) findViewById(R.id.faild_upload_message);\r
textView.setText(message);\r
- Button close_button = (Button) findViewById(R.id.failed_uploadactivity_close_button);\r
- close_button.setOnClickListener(new OnClickListener() {\r
+ Button closeBtn = (Button) findViewById(R.id.failed_uploadactivity_close_button);\r
+ \r
+ closeBtn.setOnClickListener(new OnClickListener() {\r
@Override\r
public void onClick(View v) {\r
finish();\r
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
+import android.content.IntentFilter.AuthorityEntry;
import android.content.ServiceConnection;
import android.content.SharedPreferences;
+import android.content.SyncRequest;
import android.content.res.Resources.NotFoundException;
import android.database.Cursor;
import android.net.Uri;
import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.files.services.FileDownloader;
-import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
import com.owncloud.android.files.services.FileObserverService;
import com.owncloud.android.files.services.FileUploader;
+import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
import com.owncloud.android.operations.CreateFolderOperation;
import com.owncloud.android.oc_framework.operations.OnRemoteOperationListener;
import com.owncloud.android.ui.preview.PreviewMediaFragment;
import com.owncloud.android.ui.preview.PreviewVideoActivity;
+
/**
* Displays, what files the user has available in his ownCloud.
*
}
private void startSynchronization() {
- ContentResolver.cancelSync(null, MainApp.getAuthTokenType()); // cancel the current synchronizations of any ownCloud account
- Bundle bundle = new Bundle();
- bundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
- ContentResolver.requestSync(
- getAccount(),
- MainApp.getAuthTokenType(), bundle);
+ Log_OC.e(TAG, "Got to start sync");
+ if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.KITKAT) {
+ Log_OC.e(TAG, "Canceling all syncs for " + MainApp.getAuthority());
+ ContentResolver.cancelSync(null, MainApp.getAuthority()); // cancel the current synchronizations of any ownCloud account
+ Bundle bundle = new Bundle();
+ bundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
+ bundle.putBoolean(ContentResolver.SYNC_EXTRAS_EXPEDITED, true);
+ Log_OC.e(TAG, "Requesting sync for " + getAccount().name + " at " + MainApp.getAuthority());
+ ContentResolver.requestSync(
+ getAccount(),
+ MainApp.getAuthority(), bundle);
+ } else {
+ Log_OC.e(TAG, "Requesting sync for " + getAccount().name + " at " + MainApp.getAuthority() + " with new API");
+ SyncRequest.Builder builder = new SyncRequest.Builder();
+ builder.setSyncAdapter(getAccount(), MainApp.getAuthority());
+ builder.setExpedited(true);
+ builder.setManual(true);
+ builder.syncOnce();
+ SyncRequest request = builder.build();
+ ContentResolver.requestSync(request);
+ }
}
@Override
public void onSavedCertificate() {
- startSynchronization();
+ startSyncFolderOperation(getCurrentDir());
}
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.owncloud.android.R;
+
/**
* Activity showing a text message and, optionally, a couple list of single or paired text strings.
*
import java.util.ArrayList;
import java.util.List;
+import com.owncloud.android.Log_OC;
+import com.owncloud.android.R;
+import com.owncloud.android.authentication.AccountUtils;
+import com.owncloud.android.db.DbHandler;
+import com.owncloud.android.files.InstantUploadBroadcastReceiver;
+import com.owncloud.android.files.services.FileUploader;
+import com.owncloud.android.utils.FileStorageUtils;
+
import android.accounts.Account;
import android.app.Activity;
import android.content.Intent;
import android.widget.TextView;
import android.widget.Toast;
-import com.owncloud.android.Log_OC;
-import com.owncloud.android.R;
-import com.owncloud.android.authentication.AccountUtils;
-import com.owncloud.android.db.DbHandler;
-import com.owncloud.android.files.InstantUploadBroadcastReceiver;
-import com.owncloud.android.files.services.FileUploader;
-import com.owncloud.android.utils.FileStorageUtils;
/**
* This Activity is used to display a list with images they could not be
super.onCreate(savedInstanceState);
setContentView(R.layout.failed_upload_files);
- Button delete_all_btn = (Button) findViewById(R.id.failed_upload_delete_all_btn);
- delete_all_btn.setOnClickListener(getDeleteListner());
- Button retry_all_btn = (Button) findViewById(R.id.failed_upload_retry_all_btn);
- retry_all_btn.setOnClickListener(getRetryListner());
+ Button deleteAllBtn = (Button) findViewById(R.id.failed_upload_delete_all_btn);
+ deleteAllBtn.setOnClickListener(getDeleteListner());
+ Button retryAllBtn = (Button) findViewById(R.id.failed_upload_retry_all_btn);
+ retryAllBtn.setOnClickListener(getRetryListner());
this.failed_upload_all_cb = (CheckBox) findViewById(R.id.failed_upload_headline_cb);
failed_upload_all_cb.setOnCheckedChangeListener(getCheckAllListener());
listView = (LinearLayout) findViewById(R.id.failed_upload_scrollviewlayout);
-
+
loadListView(true);
}
+
public class LogHistoryActivity extends SherlockPreferenceActivity implements OnPreferenceChangeListener {
String logpath = FileStorageUtils.getLogPath();
File logDIR = null;
actionBar.setDisplayHomeAsUpEnabled(true);
ListView listView = (ListView) findViewById(android.R.id.list);
Button deleteHistoryButton = (Button) findViewById(R.id.deleteLogHistoryButton);
+
deleteHistoryButton.setOnClickListener(new OnClickListener() {
@Override
import java.util.Arrays;
import com.actionbarsherlock.app.SherlockFragmentActivity;
-
import com.owncloud.android.R;
import android.app.AlertDialog;
mText3 = (EditText) findViewById(R.id.txt3);
mText4 = (EditText) findViewById(R.id.txt4);
-
-
SharedPreferences appPrefs = PreferenceManager
.getDefaultSharedPreferences(getApplicationContext());
import com.owncloud.android.R;
import com.owncloud.android.db.DbHandler;
+
/**
* An Activity that allows the user to change the application's settings.
*
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.ActionBar.OnNavigationListener;
import com.actionbarsherlock.view.MenuItem;
+import com.owncloud.android.Log_OC;
+import com.owncloud.android.R;
import com.owncloud.android.ui.dialog.IndeterminateProgressDialog;
import com.owncloud.android.ui.fragment.ConfirmationDialogFragment;
import com.owncloud.android.ui.fragment.LocalFileListFragment;
import com.owncloud.android.ui.fragment.ConfirmationDialogFragment.ConfirmationDialogFragmentListener;
import com.owncloud.android.utils.FileStorageUtils;
-import com.owncloud.android.Log_OC;
-import com.owncloud.android.R;
/**
* Displays local files and let the user choose what of them wants to upload
mCancelBtn.setOnClickListener(this);
mUploadBtn = (Button) findViewById(R.id.upload_files_btn_upload);
mUploadBtn.setOnClickListener(this);
+
// Action bar setup
ActionBar actionBar = getSupportActionBar();
import android.widget.ListView;\r
import android.widget.TextView;\r
\r
+\r
+import java.util.Vector;\r
+\r
import com.owncloud.android.DisplayUtils;\r
import com.owncloud.android.R;\r
import com.owncloud.android.authentication.AccountUtils;\r
import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;\r
import com.owncloud.android.ui.activity.TransferServiceGetter;\r
\r
-import java.util.Vector;\r
-\r
\r
/**\r
* This Adapter populates a ListView with all files and folders in an ownCloud\r
private FileDataStorageManager mStorageManager;\r
private Account mAccount;\r
private TransferServiceGetter mTransferServiceGetter;\r
- //total size of a directory (recursive)\r
- private Long totalSizeOfDirectoriesRecursive = null;\r
- private Long lastModifiedOfAllSubdirectories = null;\r
\r
public FileListListAdapter(Context context, TransferServiceGetter transferServiceGetter) {\r
mContext = context;\r
import com.owncloud.android.DisplayUtils;
import com.owncloud.android.R;
+
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import java.io.File;
+import com.owncloud.android.R;
+
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.widget.ArrayAdapter;
import android.widget.TextView;
-import com.owncloud.android.R;
public class LogListAdapter extends ArrayAdapter<String> {
import com.actionbarsherlock.app.SherlockDialogFragment;
import com.owncloud.android.R;
+
/**
* Dialog to show the contents of res/raw/CHANGELOG.txt
*/
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.owncloud.android.R;
+
/**
* Dialog which will be displayed to user upon keep-in-sync file conflict.
*
import com.owncloud.android.R;
+
/**
* Dialog to request the user to input a name, optionally initialized with a former name.
*
import com.actionbarsherlock.app.SherlockDialogFragment;
import com.owncloud.android.R;
+
public class IndeterminateProgressDialog extends SherlockDialogFragment {
private static final String ARG_MESSAGE_ID = IndeterminateProgressDialog.class.getCanonicalName() + ".ARG_MESSAGE_ID";
import javax.security.auth.x500.X500Principal;
+import com.owncloud.android.Log_OC;
+import com.owncloud.android.R;
+
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;
-import com.owncloud.android.Log_OC;
-import com.owncloud.android.R;
import com.owncloud.android.oc_framework.network.CertificateCombinedException;
import com.owncloud.android.oc_framework.network.NetworkUtils;
import com.owncloud.android.oc_framework.operations.RemoteOperationResult;
View detailsScroll = findViewById(R.id.details_scroll);
if (detailsScroll.getVisibility() == View.VISIBLE) {
detailsScroll.setVisibility(View.GONE);
- ((Button)v).setText(R.string.ssl_validator_btn_details_see);
+ ((Button) v).setText(R.string.ssl_validator_btn_details_see);
} else {
detailsScroll.setVisibility(View.VISIBLE);
- ((Button)v).setText(R.string.ssl_validator_btn_details_hide);
+ ((Button) v).setText(R.string.ssl_validator_btn_details_hide);
}
}
});
import com.actionbarsherlock.app.SherlockDialogFragment;
import com.owncloud.android.Log_OC;
+
public class ConfirmationDialogFragment extends SherlockDialogFragment {
public final static String ARG_CONF_RESOURCE_ID = "resource_id";
import com.owncloud.android.R;
import com.owncloud.android.ui.ExtendedListView;
+
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import com.owncloud.android.R;
import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.datamodel.OCFile;
-import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
import com.owncloud.android.files.services.FileObserverService;
import com.owncloud.android.files.services.FileUploader;
+import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
import com.owncloud.android.oc_framework.network.webdav.OnDatatransferProgressListener;
import com.owncloud.android.oc_framework.operations.OnRemoteOperationListener;
import com.owncloud.android.files.FileHandler;
import com.owncloud.android.ui.activity.TransferServiceGetter;
+
/**
* Common methods for {@link Fragment}s containing {@link OCFile}s
*
import java.io.File;
+import com.owncloud.android.Log_OC;
+import com.owncloud.android.R;
import com.owncloud.android.ui.adapter.LocalFileListAdapter;
+
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.widget.ImageView;
import android.widget.ListView;
-import com.owncloud.android.Log_OC;
-import com.owncloud.android.R;
/**
* A Fragment that lists all files and folders in a given LOCAL path.
import com.owncloud.android.ui.preview.PreviewImageFragment;
import com.owncloud.android.ui.preview.PreviewMediaFragment;
+
import android.accounts.Account;
import android.app.Activity;
import android.os.Bundle;
import java.lang.ref.WeakReference;
+import com.owncloud.android.Log_OC;
+import com.owncloud.android.R;
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
+import com.owncloud.android.ui.fragment.FileFragment;
+
import android.accounts.Account;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ProgressBar;
import android.widget.TextView;
-import com.owncloud.android.datamodel.OCFile;
-import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
import com.owncloud.android.oc_framework.network.webdav.OnDatatransferProgressListener;
-import com.owncloud.android.ui.fragment.FileFragment;
-
-import com.owncloud.android.Log_OC;
-import com.owncloud.android.R;
/**
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.view.MenuItem;
import com.actionbarsherlock.view.Window;
+import com.owncloud.android.Log_OC;
+import com.owncloud.android.R;
import com.owncloud.android.authentication.AccountUtils;
import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.files.services.FileDownloader;
-import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
import com.owncloud.android.files.services.FileUploader;
+import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
import com.owncloud.android.ui.activity.FileActivity;
import com.owncloud.android.ui.activity.FileDisplayActivity;
import com.owncloud.android.ui.dialog.LoadingDialog;
import com.owncloud.android.ui.fragment.FileFragment;
-import com.owncloud.android.Log_OC;
-import com.owncloud.android.R;
/**
* Holds a swiping galley where image files contained in an ownCloud directory are shown
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
+import com.owncloud.android.Log_OC;
+import com.owncloud.android.R;
import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.oc_framework.network.webdav.WebdavUtils;
import com.owncloud.android.ui.fragment.ConfirmationDialogFragment;
import com.owncloud.android.ui.fragment.FileFragment;
-import com.owncloud.android.Log_OC;
-import com.owncloud.android.R;
-
/**
* This fragment shows a preview of a downloaded image.
import java.util.Set;
import java.util.Vector;
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.ui.fragment.FileFragment;
+
import android.accounts.Account;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.view.ViewGroup;
import com.owncloud.android.datamodel.FileDataStorageManager;
-import com.owncloud.android.datamodel.OCFile;
-import com.owncloud.android.ui.fragment.FileFragment;
/**
* Adapter class that provides Fragment instances
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
+import com.owncloud.android.Log_OC;
+import com.owncloud.android.R;
import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.media.MediaControlView;
import com.owncloud.android.ui.fragment.ConfirmationDialogFragment;
import com.owncloud.android.ui.fragment.FileFragment;
-import com.owncloud.android.Log_OC;
-import com.owncloud.android.R;
/**
* This fragment shows a preview of a downloaded media file (audio or video).
package com.owncloud.android.ui.preview;
+import com.owncloud.android.Log_OC;
+import com.owncloud.android.R;
+import com.owncloud.android.datamodel.FileDataStorageManager;
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.media.MediaService;
+import com.owncloud.android.ui.activity.FileActivity;
+
import android.accounts.Account;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.widget.MediaController;
import android.widget.VideoView;
-import com.owncloud.android.Log_OC;
-import com.owncloud.android.R;
-import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.oc_framework.accounts.AccountUtils;
import com.owncloud.android.oc_framework.accounts.AccountUtils.AccountNotFoundException;
-import com.owncloud.android.datamodel.OCFile;
-import com.owncloud.android.media.MediaService;
-import com.owncloud.android.ui.activity.FileActivity;
/**
* Activity implementing a basic video player.
import java.io.File;
+import com.owncloud.android.MainApp;
+import com.owncloud.android.R;
+import com.owncloud.android.datamodel.OCFile;
+
import android.annotation.SuppressLint;
import android.content.Context;
import android.net.Uri;
import android.os.Environment;
import android.os.StatFs;
-import com.owncloud.android.MainApp;
-import com.owncloud.android.R;
-import com.owncloud.android.datamodel.OCFile;
/**
* Static methods to help in access to local file system.
import java.lang.reflect.Method;
import com.owncloud.android.R;
+
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="src" path="gen"/>
- <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
- <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
- <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
- <classpathentry combineaccessrules="false" kind="src" path="/owncloud-android"/>
- <classpathentry kind="lib" path="/oc_framework/bin/oc_framework.jar"/>
<classpathentry kind="output" path="bin/classes"/>
</classpath>
<uses-library android:name="android.test.runner" />
</application>
<!--
- This declares that this application uses the instrumentation test runner targeting
- the package of com.owncloud.android.test. To run the tests use the command:
- "adb shell am instrument -w com.owncloud.android.tests/android.test.InstrumentationTestRunner"
+ This declares that this application uses the instrumentation test runner targeting
+ the package of com.owncloud.android.test. To run the tests use the command:
+ "adb shell am instrument -w com.owncloud.android.tests/android.test.InstrumentationTestRunner"
-->
<instrumentation android:name="android.test.InstrumentationTestRunner"
- android:targetPackage="com.owncloud.android"
- android:label="Tests for com.owncloud.android"/>
+ android:targetPackage="com.owncloud.android"
+ android:label="Tests for com.owncloud.android"/>
</manifest>
assertTrue(AccountUtils.getWebdavPath(ocv12, false, false).equals("/webdav/owncloud.php"));
assertTrue(AccountUtils.getWebdavPath(ocv12s, false, false).equals("/webdav/owncloud.php"));
assertTrue(AccountUtils.getWebdavPath(ocv22, false, false).equals("/files/webdav.php"));
- assertTrue(AccountUtils.getWebdavPath(ocv30, false, false).equals("/files/webdav.php"));
+ assertTrue(AccountUtils.getWebdavPath(ocv30,false, false).equals("/files/webdav.php"));
assertTrue(AccountUtils.getWebdavPath(ocv33s, false, false).equals("/files/webdav.php"));
assertTrue(AccountUtils.getWebdavPath(ocv45, false, false).equals("/remote.php/webdav"));
assertTrue(AccountUtils.getWebdavPath(ocv70, false, false).equals("/remote.php/webdav"));
import com.owncloud.android.db.ProviderMeta.ProviderTableMeta;
import com.owncloud.android.providers.FileContentProvider;
-
import android.annotation.TargetApi;
import android.net.Uri;
import android.os.Build;
}
public FileContentProviderTest() {
- super(FileContentProvider.class, "com.owncloud.android.providers.FileContentProvider");
+ super(FileContentProvider.class, "com.owncloud.android.providers.FileContentProvider");
}
@Override