Loading app/build.gradle +4 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,10 @@ android { buildFeatures { viewBinding true } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } Loading app/src/main/java/foundation/e/drive/activity/AccountsActivity.java +52 −123 Original line number Diff line number Diff line Loading @@ -8,6 +8,12 @@ package foundation.e.drive.activity; import static foundation.e.drive.utils.AppConstants.ACCOUNT_DATA_ALIAS_KEY; import static foundation.e.drive.utils.AppConstants.ACCOUNT_DATA_EMAIL; import static foundation.e.drive.utils.AppConstants.ACCOUNT_DATA_GROUPS; import static foundation.e.drive.utils.AppConstants.ACCOUNT_DATA_NAME; import static foundation.e.drive.utils.AppConstants.ACCOUNT_DATA_TOTAL_QUOTA_KEY; import static foundation.e.drive.utils.AppConstants.ACCOUNT_DATA_USED_QUOTA_KEY; import static foundation.e.drive.widgets.EDriveWidget.buildIntent; import static foundation.e.drive.widgets.EDriveWidget.convertIntoMB; import static foundation.e.drive.widgets.EDriveWidget.dataForWeb; Loading @@ -18,8 +24,6 @@ import android.content.ComponentName; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; import android.view.View; import androidx.appcompat.app.AppCompatActivity; Loading @@ -27,32 +31,18 @@ import androidx.core.content.ContextCompat; import com.bumptech.glide.Glide; import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.UserInfo; import com.owncloud.android.lib.common.operations.RemoteOperationResult; import com.owncloud.android.lib.resources.users.GetRemoteUserInfoOperation; import java.util.ArrayList; import foundation.e.drive.R; import foundation.e.drive.databinding.ActivityAccountsBinding; import foundation.e.drive.operations.GetAliasOperation; import foundation.e.drive.utils.CommonUtils; import foundation.e.drive.widgets.EDriveNetworkCallback; import foundation.e.drive.widgets.EDriveWidget; public class AccountsActivity extends AppCompatActivity { private static final String NON_OFFICIAL_AVATAR_PATH = "/index.php/avatar/"; public static final String NON_OFFICIAL_AVATAR_PATH = "/index.php/avatar/"; private static final String ACCOUNT_SETTINGS = EDriveWidget.ACCOUNT_MANAGER_PACKAGE_NAME + ".ui.AccountsActivity"; private final GetRemoteUserInfoOperation getRemoteUserInfoOperation = new GetRemoteUserInfoOperation(); private final GetAliasOperation getAliasOperation = new GetAliasOperation(); private UserInfo userInfo = null; private ArrayList<Object> aliases; private OwnCloudClient client; private Account account; private ActivityAccountsBinding binding; @Override Loading @@ -63,130 +53,76 @@ public class AccountsActivity extends AppCompatActivity { setContentView(binding.getRoot()); setSupportActionBar(binding.toolbar); binding.toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onBackPressed(); } }); binding.toolbar.setNavigationOnClickListener(v -> onBackPressed()); binding.settings.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { binding.settings.setOnClickListener(v -> { final Intent settingsIntent = buildIntent(Intent.ACTION_VIEW, "") .setComponent(new ComponentName( EDriveWidget.ACCOUNT_MANAGER_PACKAGE_NAME, ACCOUNT_SETTINGS)); startActivity(settingsIntent); } }); showDetails(); } private void showDetails() { final AccountManager accountManager = AccountManager.get(this); account = CommonUtils.getAccount(getString(R.string.eelo_account_type), final Account account = CommonUtils.getAccount(getString(R.string.eelo_account_type), accountManager); client = CommonUtils.getOwnCloudClient(account, this); final OwnCloudClient client = CommonUtils.getOwnCloudClient(account, this); final HandlerThread handlerThread = new HandlerThread("Network Request"); handlerThread.start(); final Handler mHandler = new Handler(handlerThread.getLooper()); final EDriveNetworkCallback callback = new EDriveNetworkCallback() { @Override public void onComplete() { runOnUiThread(new Runnable() { @Override public void run() { onNetworkRequestCompleted(); } }); } }; final String usedQuota = accountManager.getUserData(account, ACCOUNT_DATA_USED_QUOTA_KEY); final String totalQuota = accountManager.getUserData(account, ACCOUNT_DATA_TOTAL_QUOTA_KEY); final String email = accountManager.getUserData(account, ACCOUNT_DATA_EMAIL); if (!CommonUtils.haveNetworkConnection(this, true)) { handleNoInternetConnection(); return; } binding.name.setText(accountManager.getUserData(account, ACCOUNT_DATA_NAME)); binding.email.setText(email); binding.loading.setVisibility(View.VISIBLE); mHandler.post(new Runnable() { @Override public void run() { if (client != null) { RemoteOperationResult ocsResult = getRemoteUserInfoOperation.execute(client); if (ocsResult.isSuccess() && ocsResult.getData() != null) { userInfo = (UserInfo) ocsResult.getData().get(0); } RemoteOperationResult aliasResult = getAliasOperation.execute(client); if (aliasResult.isSuccess() && aliasResult.getData() != null) { aliases = aliasResult.getData(); } } callback.onComplete(); } }); } private void onNetworkRequestCompleted() { binding.loading.setVisibility(View.GONE); if (userInfo.displayName == null) { binding.name.setText(userInfo.alternateDisplayName); } else { binding.name.setText(userInfo.displayName); } binding.email.setText(userInfo.id); final int usedMB = convertIntoMB(userInfo.quota.used); final int totalMB = convertIntoMB(userInfo.quota.total); binding.progress.setMax(totalMB); binding.progress.setProgress(usedMB); binding.progress.setMax(convertIntoMB(totalQuota)); binding.progress.setProgress(convertIntoMB(usedQuota)); binding.progress.setVisibility(View.VISIBLE); binding.plan.setText(getString(R.string.free_plan, CommonUtils.humanReadableByteCountBin(userInfo.quota.total))); for (String group : userInfo.groups) { CommonUtils.humanReadableByteCountBin(Long.parseLong(totalQuota)))); String[] groups = accountManager.getUserData(account, ACCOUNT_DATA_GROUPS).split(","); for (String group : groups) { if (group.contains("premium-")) { binding.plan.setText(getString(R.string.premium_plan, group.split("-")[1])); binding.plan.setText(getString(R.string.premium_plan, group.split("-")[1])); break; } } binding.myPlan.setVisibility(View.VISIBLE); binding.plan.setVisibility(View.VISIBLE); binding.status.setText(getString(R.string.progress_status, CommonUtils.humanReadableByteCountBin(userInfo.quota.used), CommonUtils.humanReadableByteCountBin(userInfo.quota.total))); CommonUtils.humanReadableByteCountBin(Long.parseLong(usedQuota)), CommonUtils.humanReadableByteCountBin(Long.parseLong(totalQuota)))); String aliases = accountManager.getUserData(account, ACCOUNT_DATA_ALIAS_KEY); if (aliases != null && !aliases.isEmpty()) { binding.alias.setVisibility(View.VISIBLE); binding.alias1.setText(aliases.get(0).toString()); binding.alias1.setText(aliases.split(",")[0]); binding.aliasDivider.setVisibility(View.VISIBLE); } else { binding.alias.setVisibility(View.GONE); binding.alias1Container.setVisibility(View.GONE); } binding.alias1Clipboard.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { binding.alias1Clipboard.setOnClickListener(v -> CommonUtils.copyToClipboard(Uri.parse(binding.alias1.getText().toString()), v.getContext(), v.getContext().getString(R.string.alias)); } }); v.getContext(), v.getContext().getString(R.string.alias))); binding.upgrade.setVisibility(View.VISIBLE); binding.upgrade.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { binding.upgrade.setOnClickListener(v -> { final Intent upgradeIntent = buildIntent(Intent.ACTION_VIEW, String.format(EDriveWidget.WEBPAGE, userInfo.id, dataForWeb(userInfo.quota.total))); String.format(EDriveWidget.WEBPAGE, email, dataForWeb(Long.parseLong(totalQuota)))); startActivity(upgradeIntent); } }); binding.alias.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { binding.alias.setOnClickListener(v -> { if (binding.alias1Container.getVisibility() == View.VISIBLE) { binding.alias1Container.setVisibility(View.GONE); binding.alias.setCompoundDrawablesWithIntrinsicBounds(null, null, Loading @@ -196,7 +132,6 @@ public class AccountsActivity extends AppCompatActivity { binding.alias.setCompoundDrawablesWithIntrinsicBounds(null, null, ContextCompat.getDrawable(v.getContext(), R.drawable.ic_expand_less), null); } } }); Glide.with(this) Loading @@ -206,10 +141,4 @@ public class AccountsActivity extends AppCompatActivity { .into(binding.avatar); binding.avatar.setVisibility(View.VISIBLE); } private void handleNoInternetConnection() { binding.name.setText(account.name); binding.email.setText(account.type); binding.avatar.setVisibility(View.VISIBLE); } } app/src/main/java/foundation/e/drive/services/InitializerService.java +2 −0 Original line number Diff line number Diff line Loading @@ -100,6 +100,8 @@ public class InitializerService extends Service { return; } CommonUtils.registerPeriodicUserInfoChecking(WorkManager.getInstance(this)); final List<String> syncCategories = new ArrayList<>(); syncCategories.addAll(Arrays.asList(MEDIA_SYNCABLE_CATEGORIES)); Loading app/src/main/java/foundation/e/drive/services/SynchronizationService.java +0 −28 Original line number Diff line number Diff line Loading @@ -158,13 +158,6 @@ public class SynchronizationService extends Service implements OnRemoteOperation if (callerOperation instanceof UploadFileOperation && callerOperationResultData != null && callerOperationResultData.size() > 1) { final Float relativeQuota = (Float) result.getData().get(1); if (relativeQuota >= 99.0) { addNotification(getString(R.string.notif_quota_99Plus_title), getString(R.string.notif_quota_99Plus_text)); } else if (relativeQuota >= 90.0) { addNotification(getString(R.string.notif_quota_80plus_title), getString(R.string.notif_quota_90Plus_text)); } else if (relativeQuota >= 80.0) { addNotification(getString(R.string.notif_quota_80plus_title), getString(R.string.notif_quota_80Plus_text)); } } switch (result.getCode()) { case OK: Loading Loading @@ -204,7 +197,6 @@ public class SynchronizationService extends Service implements OnRemoteOperation case QUOTA_EXCEEDED: //Case specific to UploadFileOperation Log.w(TAG, "Quota_EXCEEDED"); addNotification(getString(R.string.notif_quota_99Plus_title), getString(R.string.notif_quota_execeeded_text)); break; case FILE_NOT_FOUND: //Case specific to DownloadFileOperation Loading Loading @@ -237,26 +229,6 @@ public class SynchronizationService extends Service implements OnRemoteOperation return operation; } /** * send notification to inform user that he lacks space on ecloud * Improvement idea: * - add translatable message & title * - make message & title to be a parameter of the method, so we could reuse the function somewhere * - else with different notification. File conflict for example. **/ private void addNotification(String title, String text){ final NotificationCompat.Builder builder = new NotificationCompat.Builder(this, AppConstants.notificationChannelID) .setSmallIcon(android.R.drawable.stat_sys_warning) .setContentTitle(title) .setContentText(text) .setStyle(new NotificationCompat.BigTextStyle().bigText(text)); // Add as notification final NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); manager.notify(0, builder.build()); } /** * Handler for the class Loading app/src/main/java/foundation/e/drive/utils/AppConstants.java +17 −9 Original line number Diff line number Diff line Loading @@ -9,7 +9,6 @@ package foundation.e.drive.utils; import android.os.Build; import foundation.e.drive.BuildConfig; import java.text.SimpleDateFormat; import java.util.Locale; Loading @@ -31,6 +30,14 @@ public abstract class AppConstants { public static final String SHARED_PREFERENCE_NAME = "preferences"; public static final String KEY_LAST_SYNC_TIME = "lastSyncTimestamp"; public static final String ACCOUNT_DATA_NAME = "display_name"; public static final String ACCOUNT_DATA_USED_QUOTA_KEY = "used_quota"; public static final String ACCOUNT_DATA_TOTAL_QUOTA_KEY = "total_quota"; public static final String ACCOUNT_DATA_RELATIVE_QUOTA_KEY = "relative_quota"; public static final String ACCOUNT_DATA_GROUPS = "group"; public static final String ACCOUNT_DATA_ALIAS_KEY = "alias"; public static final String ACCOUNT_DATA_EMAIL = "email"; public static final String[] MEDIA_SYNCABLE_CATEGORIES = new String[]{"Images", "Movies", "Music", "Ringtones", "Documents", "Podcasts"}; public static final String[] SETTINGS_SYNCABLE_CATEGORIES = new String[]{"Rom settings"}; Loading @@ -41,6 +48,7 @@ public abstract class AppConstants { /** * Get a readable OS's build date String * * @return Os'build date */ private static String getBuildTime() { Loading Loading
app/build.gradle +4 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,10 @@ android { buildFeatures { viewBinding true } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } Loading
app/src/main/java/foundation/e/drive/activity/AccountsActivity.java +52 −123 Original line number Diff line number Diff line Loading @@ -8,6 +8,12 @@ package foundation.e.drive.activity; import static foundation.e.drive.utils.AppConstants.ACCOUNT_DATA_ALIAS_KEY; import static foundation.e.drive.utils.AppConstants.ACCOUNT_DATA_EMAIL; import static foundation.e.drive.utils.AppConstants.ACCOUNT_DATA_GROUPS; import static foundation.e.drive.utils.AppConstants.ACCOUNT_DATA_NAME; import static foundation.e.drive.utils.AppConstants.ACCOUNT_DATA_TOTAL_QUOTA_KEY; import static foundation.e.drive.utils.AppConstants.ACCOUNT_DATA_USED_QUOTA_KEY; import static foundation.e.drive.widgets.EDriveWidget.buildIntent; import static foundation.e.drive.widgets.EDriveWidget.convertIntoMB; import static foundation.e.drive.widgets.EDriveWidget.dataForWeb; Loading @@ -18,8 +24,6 @@ import android.content.ComponentName; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; import android.view.View; import androidx.appcompat.app.AppCompatActivity; Loading @@ -27,32 +31,18 @@ import androidx.core.content.ContextCompat; import com.bumptech.glide.Glide; import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.UserInfo; import com.owncloud.android.lib.common.operations.RemoteOperationResult; import com.owncloud.android.lib.resources.users.GetRemoteUserInfoOperation; import java.util.ArrayList; import foundation.e.drive.R; import foundation.e.drive.databinding.ActivityAccountsBinding; import foundation.e.drive.operations.GetAliasOperation; import foundation.e.drive.utils.CommonUtils; import foundation.e.drive.widgets.EDriveNetworkCallback; import foundation.e.drive.widgets.EDriveWidget; public class AccountsActivity extends AppCompatActivity { private static final String NON_OFFICIAL_AVATAR_PATH = "/index.php/avatar/"; public static final String NON_OFFICIAL_AVATAR_PATH = "/index.php/avatar/"; private static final String ACCOUNT_SETTINGS = EDriveWidget.ACCOUNT_MANAGER_PACKAGE_NAME + ".ui.AccountsActivity"; private final GetRemoteUserInfoOperation getRemoteUserInfoOperation = new GetRemoteUserInfoOperation(); private final GetAliasOperation getAliasOperation = new GetAliasOperation(); private UserInfo userInfo = null; private ArrayList<Object> aliases; private OwnCloudClient client; private Account account; private ActivityAccountsBinding binding; @Override Loading @@ -63,130 +53,76 @@ public class AccountsActivity extends AppCompatActivity { setContentView(binding.getRoot()); setSupportActionBar(binding.toolbar); binding.toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onBackPressed(); } }); binding.toolbar.setNavigationOnClickListener(v -> onBackPressed()); binding.settings.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { binding.settings.setOnClickListener(v -> { final Intent settingsIntent = buildIntent(Intent.ACTION_VIEW, "") .setComponent(new ComponentName( EDriveWidget.ACCOUNT_MANAGER_PACKAGE_NAME, ACCOUNT_SETTINGS)); startActivity(settingsIntent); } }); showDetails(); } private void showDetails() { final AccountManager accountManager = AccountManager.get(this); account = CommonUtils.getAccount(getString(R.string.eelo_account_type), final Account account = CommonUtils.getAccount(getString(R.string.eelo_account_type), accountManager); client = CommonUtils.getOwnCloudClient(account, this); final OwnCloudClient client = CommonUtils.getOwnCloudClient(account, this); final HandlerThread handlerThread = new HandlerThread("Network Request"); handlerThread.start(); final Handler mHandler = new Handler(handlerThread.getLooper()); final EDriveNetworkCallback callback = new EDriveNetworkCallback() { @Override public void onComplete() { runOnUiThread(new Runnable() { @Override public void run() { onNetworkRequestCompleted(); } }); } }; final String usedQuota = accountManager.getUserData(account, ACCOUNT_DATA_USED_QUOTA_KEY); final String totalQuota = accountManager.getUserData(account, ACCOUNT_DATA_TOTAL_QUOTA_KEY); final String email = accountManager.getUserData(account, ACCOUNT_DATA_EMAIL); if (!CommonUtils.haveNetworkConnection(this, true)) { handleNoInternetConnection(); return; } binding.name.setText(accountManager.getUserData(account, ACCOUNT_DATA_NAME)); binding.email.setText(email); binding.loading.setVisibility(View.VISIBLE); mHandler.post(new Runnable() { @Override public void run() { if (client != null) { RemoteOperationResult ocsResult = getRemoteUserInfoOperation.execute(client); if (ocsResult.isSuccess() && ocsResult.getData() != null) { userInfo = (UserInfo) ocsResult.getData().get(0); } RemoteOperationResult aliasResult = getAliasOperation.execute(client); if (aliasResult.isSuccess() && aliasResult.getData() != null) { aliases = aliasResult.getData(); } } callback.onComplete(); } }); } private void onNetworkRequestCompleted() { binding.loading.setVisibility(View.GONE); if (userInfo.displayName == null) { binding.name.setText(userInfo.alternateDisplayName); } else { binding.name.setText(userInfo.displayName); } binding.email.setText(userInfo.id); final int usedMB = convertIntoMB(userInfo.quota.used); final int totalMB = convertIntoMB(userInfo.quota.total); binding.progress.setMax(totalMB); binding.progress.setProgress(usedMB); binding.progress.setMax(convertIntoMB(totalQuota)); binding.progress.setProgress(convertIntoMB(usedQuota)); binding.progress.setVisibility(View.VISIBLE); binding.plan.setText(getString(R.string.free_plan, CommonUtils.humanReadableByteCountBin(userInfo.quota.total))); for (String group : userInfo.groups) { CommonUtils.humanReadableByteCountBin(Long.parseLong(totalQuota)))); String[] groups = accountManager.getUserData(account, ACCOUNT_DATA_GROUPS).split(","); for (String group : groups) { if (group.contains("premium-")) { binding.plan.setText(getString(R.string.premium_plan, group.split("-")[1])); binding.plan.setText(getString(R.string.premium_plan, group.split("-")[1])); break; } } binding.myPlan.setVisibility(View.VISIBLE); binding.plan.setVisibility(View.VISIBLE); binding.status.setText(getString(R.string.progress_status, CommonUtils.humanReadableByteCountBin(userInfo.quota.used), CommonUtils.humanReadableByteCountBin(userInfo.quota.total))); CommonUtils.humanReadableByteCountBin(Long.parseLong(usedQuota)), CommonUtils.humanReadableByteCountBin(Long.parseLong(totalQuota)))); String aliases = accountManager.getUserData(account, ACCOUNT_DATA_ALIAS_KEY); if (aliases != null && !aliases.isEmpty()) { binding.alias.setVisibility(View.VISIBLE); binding.alias1.setText(aliases.get(0).toString()); binding.alias1.setText(aliases.split(",")[0]); binding.aliasDivider.setVisibility(View.VISIBLE); } else { binding.alias.setVisibility(View.GONE); binding.alias1Container.setVisibility(View.GONE); } binding.alias1Clipboard.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { binding.alias1Clipboard.setOnClickListener(v -> CommonUtils.copyToClipboard(Uri.parse(binding.alias1.getText().toString()), v.getContext(), v.getContext().getString(R.string.alias)); } }); v.getContext(), v.getContext().getString(R.string.alias))); binding.upgrade.setVisibility(View.VISIBLE); binding.upgrade.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { binding.upgrade.setOnClickListener(v -> { final Intent upgradeIntent = buildIntent(Intent.ACTION_VIEW, String.format(EDriveWidget.WEBPAGE, userInfo.id, dataForWeb(userInfo.quota.total))); String.format(EDriveWidget.WEBPAGE, email, dataForWeb(Long.parseLong(totalQuota)))); startActivity(upgradeIntent); } }); binding.alias.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { binding.alias.setOnClickListener(v -> { if (binding.alias1Container.getVisibility() == View.VISIBLE) { binding.alias1Container.setVisibility(View.GONE); binding.alias.setCompoundDrawablesWithIntrinsicBounds(null, null, Loading @@ -196,7 +132,6 @@ public class AccountsActivity extends AppCompatActivity { binding.alias.setCompoundDrawablesWithIntrinsicBounds(null, null, ContextCompat.getDrawable(v.getContext(), R.drawable.ic_expand_less), null); } } }); Glide.with(this) Loading @@ -206,10 +141,4 @@ public class AccountsActivity extends AppCompatActivity { .into(binding.avatar); binding.avatar.setVisibility(View.VISIBLE); } private void handleNoInternetConnection() { binding.name.setText(account.name); binding.email.setText(account.type); binding.avatar.setVisibility(View.VISIBLE); } }
app/src/main/java/foundation/e/drive/services/InitializerService.java +2 −0 Original line number Diff line number Diff line Loading @@ -100,6 +100,8 @@ public class InitializerService extends Service { return; } CommonUtils.registerPeriodicUserInfoChecking(WorkManager.getInstance(this)); final List<String> syncCategories = new ArrayList<>(); syncCategories.addAll(Arrays.asList(MEDIA_SYNCABLE_CATEGORIES)); Loading
app/src/main/java/foundation/e/drive/services/SynchronizationService.java +0 −28 Original line number Diff line number Diff line Loading @@ -158,13 +158,6 @@ public class SynchronizationService extends Service implements OnRemoteOperation if (callerOperation instanceof UploadFileOperation && callerOperationResultData != null && callerOperationResultData.size() > 1) { final Float relativeQuota = (Float) result.getData().get(1); if (relativeQuota >= 99.0) { addNotification(getString(R.string.notif_quota_99Plus_title), getString(R.string.notif_quota_99Plus_text)); } else if (relativeQuota >= 90.0) { addNotification(getString(R.string.notif_quota_80plus_title), getString(R.string.notif_quota_90Plus_text)); } else if (relativeQuota >= 80.0) { addNotification(getString(R.string.notif_quota_80plus_title), getString(R.string.notif_quota_80Plus_text)); } } switch (result.getCode()) { case OK: Loading Loading @@ -204,7 +197,6 @@ public class SynchronizationService extends Service implements OnRemoteOperation case QUOTA_EXCEEDED: //Case specific to UploadFileOperation Log.w(TAG, "Quota_EXCEEDED"); addNotification(getString(R.string.notif_quota_99Plus_title), getString(R.string.notif_quota_execeeded_text)); break; case FILE_NOT_FOUND: //Case specific to DownloadFileOperation Loading Loading @@ -237,26 +229,6 @@ public class SynchronizationService extends Service implements OnRemoteOperation return operation; } /** * send notification to inform user that he lacks space on ecloud * Improvement idea: * - add translatable message & title * - make message & title to be a parameter of the method, so we could reuse the function somewhere * - else with different notification. File conflict for example. **/ private void addNotification(String title, String text){ final NotificationCompat.Builder builder = new NotificationCompat.Builder(this, AppConstants.notificationChannelID) .setSmallIcon(android.R.drawable.stat_sys_warning) .setContentTitle(title) .setContentText(text) .setStyle(new NotificationCompat.BigTextStyle().bigText(text)); // Add as notification final NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); manager.notify(0, builder.build()); } /** * Handler for the class Loading
app/src/main/java/foundation/e/drive/utils/AppConstants.java +17 −9 Original line number Diff line number Diff line Loading @@ -9,7 +9,6 @@ package foundation.e.drive.utils; import android.os.Build; import foundation.e.drive.BuildConfig; import java.text.SimpleDateFormat; import java.util.Locale; Loading @@ -31,6 +30,14 @@ public abstract class AppConstants { public static final String SHARED_PREFERENCE_NAME = "preferences"; public static final String KEY_LAST_SYNC_TIME = "lastSyncTimestamp"; public static final String ACCOUNT_DATA_NAME = "display_name"; public static final String ACCOUNT_DATA_USED_QUOTA_KEY = "used_quota"; public static final String ACCOUNT_DATA_TOTAL_QUOTA_KEY = "total_quota"; public static final String ACCOUNT_DATA_RELATIVE_QUOTA_KEY = "relative_quota"; public static final String ACCOUNT_DATA_GROUPS = "group"; public static final String ACCOUNT_DATA_ALIAS_KEY = "alias"; public static final String ACCOUNT_DATA_EMAIL = "email"; public static final String[] MEDIA_SYNCABLE_CATEGORIES = new String[]{"Images", "Movies", "Music", "Ringtones", "Documents", "Podcasts"}; public static final String[] SETTINGS_SYNCABLE_CATEGORIES = new String[]{"Rom settings"}; Loading @@ -41,6 +48,7 @@ public abstract class AppConstants { /** * Get a readable OS's build date String * * @return Os'build date */ private static String getBuildTime() { Loading