Loading app/build.gradle +3 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,9 @@ dependencies { api 'androidx.annotation:annotation:1.3.0' implementation 'androidx.core:core:1.6.0' implementation 'androidx.appcompat:appcompat:1.0.2' implementation "androidx.constraintlayout:constraintlayout:2.1.3" implementation 'com.google.android.material:material:1.5.0' implementation 'com.github.bumptech.glide:glide:4.13.1' def work_version = "2.7.1" // (Java only) Loading app/src/main/AndroidManifest.xml +7 −6 Original line number Diff line number Diff line Loading @@ -21,20 +21,21 @@ <application android:name=".EdriveApplication" android:persistent="true" android:allowBackup="true" android:icon="@mipmap/ic_eelo" android:label="@string/app_name" android:persistent="true" android:roundIcon="@mipmap/ic_eelo_round"> <!-- widget --> <activity android:exported="true" android:name=".activity.AccountsActivity" android:label="Account Activity" android:theme="@style/Theme.AppCompat.DayNight"/> android:exported="true" android:label="My Account" android:theme="@style/AccountActivityTheme" /> <!-- widget --> <receiver android:name=".widgets.EDriveWidget" android:label="@string/app_widget_description" android:exported="true"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> Loading app/src/main/java/foundation/e/drive/activity/AccountsActivity.java +102 −6 Original line number Diff line number Diff line Loading @@ -8,15 +8,24 @@ package foundation.e.drive.activity; import static foundation.e.drive.widgets.EDriveWidget.buildIntent; import static foundation.e.drive.widgets.EDriveWidget.convertIntoMB; import static foundation.e.drive.widgets.EDriveWidget.dataForWeb; import android.accounts.Account; import android.accounts.AccountManager; 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; 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; Loading @@ -29,13 +38,20 @@ 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/"; 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; Loading @@ -45,11 +61,29 @@ public class AccountsActivity extends AppCompatActivity { binding = ActivityAccountsBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); setSupportActionBar(binding.toolbar); binding.toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onBackPressed(); } }); binding.settings.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final Intent settingsIntent = buildIntent(Intent.ACTION_VIEW, "") .setComponent(new ComponentName( EDriveWidget.ACCOUNT_MANAGER_PACKAGE_NAME, ACCOUNT_SETTINGS)); startActivity(settingsIntent); } }); final AccountManager accountManager = AccountManager.get(this); final Account account = CommonUtils.getAccount(getString(R.string.eelo_account_type), account = CommonUtils.getAccount(getString(R.string.eelo_account_type), accountManager); final OwnCloudClient client = CommonUtils.getOwnCloudClient(account, this); client = CommonUtils.getOwnCloudClient(account, this); final HandlerThread handlerThread = new HandlerThread("Network Request"); handlerThread.start(); Loading @@ -67,6 +101,12 @@ public class AccountsActivity extends AppCompatActivity { } }; if (!CommonUtils.haveNetworkConnection(this)) { handleNoInternetConnection(); return; } binding.loading.setVisibility(View.VISIBLE); mHandler.post(new Runnable() { @Override public void run() { Loading @@ -79,13 +119,14 @@ public class AccountsActivity extends AppCompatActivity { if (aliasResult.isSuccess() && aliasResult.getData() != null) { aliases = aliasResult.getData(); } callback.onComplete(); } callback.onComplete(); } }); } private void onNetworkRequestCompleted() { binding.loading.setVisibility(View.GONE); if (userInfo.displayName == null) { binding.name.setText(userInfo.alternateDisplayName); } else { Loading @@ -96,24 +137,79 @@ public class AccountsActivity extends AppCompatActivity { final int usedMB = convertIntoMB(userInfo.quota.used); final int totalMB = convertIntoMB(userInfo.quota.total); binding.progress.setMax(totalMB); binding.progress.setProgress(usedMB); binding.progress.setVisibility(View.VISIBLE); binding.plan.setText(getString(R.string.free_plan, CommonUtils.humanReadableByteCountBin(userInfo.quota.total))); for (String group : userInfo.groups) { if (group.contains("premium-")) { 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))); if (aliases != null && !aliases.isEmpty()) { binding.alias1.setText(getString(R.string.alias_dot) + aliases.get(0)); binding.alias.setVisibility(View.VISIBLE); binding.alias1.setText(aliases.get(0).toString()); binding.aliasDivider.setVisibility(View.VISIBLE); } else { binding.alias1.setText(getString(R.string.no_alias)); binding.alias.setVisibility(View.GONE); binding.alias1Container.setVisibility(View.GONE); } binding.alias1Clipboard.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { CommonUtils.copyToClipboard(Uri.parse(binding.alias1.getText().toString()), 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) { final Intent upgradeIntent = buildIntent(Intent.ACTION_VIEW, String.format(EDriveWidget.WEBPAGE, userInfo.id, client.getCredentials().getAuthToken(), dataForWeb(userInfo.quota.total))); startActivity(upgradeIntent); } }); binding.alias.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (binding.alias1Container.getVisibility() == View.VISIBLE) { binding.alias1Container.setVisibility(View.GONE); binding.alias.setCompoundDrawablesWithIntrinsicBounds(null, null, ContextCompat.getDrawable(v.getContext(), R.drawable.ic_expand_more), null); } else { binding.alias1Container.setVisibility(View.VISIBLE); binding.alias.setCompoundDrawablesWithIntrinsicBounds(null, null, ContextCompat.getDrawable(v.getContext(), R.drawable.ic_expand_less), null); } } }); Glide.with(this) .load(client.getBaseUri() + NON_OFFICIAL_AVATAR_PATH + client.getCredentials().getUsername() + "/" + 300) .error(R.mipmap.ic_eelo_foreground) .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/utils/CommonUtils.java +38 −25 Original line number Diff line number Diff line Loading @@ -15,6 +15,8 @@ import android.accounts.AccountManager; import android.app.NotificationChannel; import android.app.NotificationManager; import android.app.Service; import android.content.ClipData; import android.content.ClipboardManager; import android.content.ContentResolver; import android.content.Context; import android.media.MediaScannerConnection; Loading @@ -25,6 +27,7 @@ import android.net.Uri; import android.os.Build; import android.util.Log; import android.webkit.MimeTypeMap; import android.widget.Toast; import com.owncloud.android.lib.common.OwnCloudBasicCredentials; import com.owncloud.android.lib.common.OwnCloudClient; Loading Loading @@ -431,4 +434,14 @@ public abstract class CommonUtils { notificationManager.createNotificationChannel(channel); } } public static void copyToClipboard(Uri data, Context context, String label) { final ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); final ClipData clip = ClipData.newPlainText(label, String.valueOf(data)); clipboard.setPrimaryClip(clip); Toast.makeText(context, context.getString(R.string.copied_to_clipboard, label), Toast.LENGTH_SHORT).show(); } } app/src/main/java/foundation/e/drive/widgets/EDriveWidget.java +25 −32 Original line number Diff line number Diff line Loading @@ -13,8 +13,6 @@ import android.accounts.AccountManager; import android.app.PendingIntent; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.ClipData; import android.content.ClipboardManager; import android.content.ComponentName; import android.content.Context; import android.content.Intent; Loading Loading @@ -44,10 +42,10 @@ import foundation.e.drive.utils.CommonUtils; * Implementation of App Widget functionality. */ public class EDriveWidget extends AppWidgetProvider { private static final String webpage = public static final String WEBPAGE = "https://esolutions.shop/ecloud-subscriptions/?username=%s&token=%s¤t-quota=%s&from=nextcloud"; public static final String ACCOUNT_MANAGER_PACKAGE_NAME = "foundation.e.accountmanager"; private static final String ADD_ACCOUNT_WEBPAGE = "https://e.foundation/e-email-invite/"; private static final String ACCOUNT_MANAGER_PACKAGE_NAME = "foundation.e.accountmanager"; private static final String GET_ACCOUNT_MANAGER_COMPONENT_NAME = ACCOUNT_MANAGER_PACKAGE_NAME + ".ui.setup.LoginActivity"; private static final String SETUP_ACCOUNT_PROVIDER_TYPE = "setup_account_provider_type"; Loading @@ -67,6 +65,26 @@ public class EDriveWidget extends AppWidgetProvider { private UserInfo userInfo = null; private RemoteViews views = null; public static String dataForWeb(Long bytes) { final String space = CommonUtils.humanReadableByteCountBin(bytes); final String[] split = space.split(" "); return Math.round(Double.parseDouble(split[0])) + split[1]; } public static Intent buildIntent(String name, String extra) { final Intent intent = new Intent(name); if (!extra.isEmpty()) { intent.setData(Uri.parse(extra)); } intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); return intent; } public static int convertIntoMB(Long quota) { return (int) (quota / 1048576); // 1024.0 * 1024.0 = 1048576.0 } public void updateAppWidget(final Context context) { AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); final ComponentName provider = new ComponentName(context, getClass()); Loading Loading @@ -152,28 +170,13 @@ public class EDriveWidget extends AppWidgetProvider { updateAppWidget(context); break; case COPY_ALIAS: copyToClipboard(intent.getData(), context); CommonUtils.copyToClipboard(intent.getData(), context, context.getString(R.string.alias)); break; } super.onReceive(context, intent); } private String dataForWeb(Long bytes) { final String space = CommonUtils.humanReadableByteCountBin(bytes); final String[] split = space.split(" "); return Math.round(Double.parseDouble(split[0])) + split[1]; } private Intent buildIntent(String name, String extra) { final Intent intent = new Intent(name); if (!extra.isEmpty()) { intent.setData(Uri.parse(extra)); } intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); return intent; } private void onNetworkRequestCompleted(Context context, AppWidgetManager appWidgetManager, int appWidgetId, OwnCloudClient client, Account account) { if (account == null || userInfo == null) { Loading Loading @@ -250,7 +253,7 @@ public class EDriveWidget extends AppWidgetProvider { views.setOnClickPendingIntent(R.id.settings, pendingIntentSettings); final PendingIntent pendingIntentUpgrade = PendingIntent.getActivity(context, 0, buildIntent(Intent.ACTION_VIEW, String.format(webpage, userInfo.id, buildIntent(Intent.ACTION_VIEW, String.format(WEBPAGE, userInfo.id, client.getCredentials().getAuthToken(), dataForWeb(userInfo.quota.total))), PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.upgrade, pendingIntentUpgrade); Loading @@ -268,14 +271,4 @@ public class EDriveWidget extends AppWidgetProvider { return PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); } private void copyToClipboard(Uri data, Context context) { final ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); final ClipData clip = ClipData.newPlainText("alias", String.valueOf(data)); clipboard.setPrimaryClip(clip); } public static int convertIntoMB(Long quota) { return (int) (quota / 1048576); // 1024.0 * 1024.0 = 1048576.0 } } No newline at end of file Loading
app/build.gradle +3 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,9 @@ dependencies { api 'androidx.annotation:annotation:1.3.0' implementation 'androidx.core:core:1.6.0' implementation 'androidx.appcompat:appcompat:1.0.2' implementation "androidx.constraintlayout:constraintlayout:2.1.3" implementation 'com.google.android.material:material:1.5.0' implementation 'com.github.bumptech.glide:glide:4.13.1' def work_version = "2.7.1" // (Java only) Loading
app/src/main/AndroidManifest.xml +7 −6 Original line number Diff line number Diff line Loading @@ -21,20 +21,21 @@ <application android:name=".EdriveApplication" android:persistent="true" android:allowBackup="true" android:icon="@mipmap/ic_eelo" android:label="@string/app_name" android:persistent="true" android:roundIcon="@mipmap/ic_eelo_round"> <!-- widget --> <activity android:exported="true" android:name=".activity.AccountsActivity" android:label="Account Activity" android:theme="@style/Theme.AppCompat.DayNight"/> android:exported="true" android:label="My Account" android:theme="@style/AccountActivityTheme" /> <!-- widget --> <receiver android:name=".widgets.EDriveWidget" android:label="@string/app_widget_description" android:exported="true"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> Loading
app/src/main/java/foundation/e/drive/activity/AccountsActivity.java +102 −6 Original line number Diff line number Diff line Loading @@ -8,15 +8,24 @@ package foundation.e.drive.activity; import static foundation.e.drive.widgets.EDriveWidget.buildIntent; import static foundation.e.drive.widgets.EDriveWidget.convertIntoMB; import static foundation.e.drive.widgets.EDriveWidget.dataForWeb; import android.accounts.Account; import android.accounts.AccountManager; 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; 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; Loading @@ -29,13 +38,20 @@ 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/"; 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; Loading @@ -45,11 +61,29 @@ public class AccountsActivity extends AppCompatActivity { binding = ActivityAccountsBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); setSupportActionBar(binding.toolbar); binding.toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onBackPressed(); } }); binding.settings.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final Intent settingsIntent = buildIntent(Intent.ACTION_VIEW, "") .setComponent(new ComponentName( EDriveWidget.ACCOUNT_MANAGER_PACKAGE_NAME, ACCOUNT_SETTINGS)); startActivity(settingsIntent); } }); final AccountManager accountManager = AccountManager.get(this); final Account account = CommonUtils.getAccount(getString(R.string.eelo_account_type), account = CommonUtils.getAccount(getString(R.string.eelo_account_type), accountManager); final OwnCloudClient client = CommonUtils.getOwnCloudClient(account, this); client = CommonUtils.getOwnCloudClient(account, this); final HandlerThread handlerThread = new HandlerThread("Network Request"); handlerThread.start(); Loading @@ -67,6 +101,12 @@ public class AccountsActivity extends AppCompatActivity { } }; if (!CommonUtils.haveNetworkConnection(this)) { handleNoInternetConnection(); return; } binding.loading.setVisibility(View.VISIBLE); mHandler.post(new Runnable() { @Override public void run() { Loading @@ -79,13 +119,14 @@ public class AccountsActivity extends AppCompatActivity { if (aliasResult.isSuccess() && aliasResult.getData() != null) { aliases = aliasResult.getData(); } callback.onComplete(); } callback.onComplete(); } }); } private void onNetworkRequestCompleted() { binding.loading.setVisibility(View.GONE); if (userInfo.displayName == null) { binding.name.setText(userInfo.alternateDisplayName); } else { Loading @@ -96,24 +137,79 @@ public class AccountsActivity extends AppCompatActivity { final int usedMB = convertIntoMB(userInfo.quota.used); final int totalMB = convertIntoMB(userInfo.quota.total); binding.progress.setMax(totalMB); binding.progress.setProgress(usedMB); binding.progress.setVisibility(View.VISIBLE); binding.plan.setText(getString(R.string.free_plan, CommonUtils.humanReadableByteCountBin(userInfo.quota.total))); for (String group : userInfo.groups) { if (group.contains("premium-")) { 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))); if (aliases != null && !aliases.isEmpty()) { binding.alias1.setText(getString(R.string.alias_dot) + aliases.get(0)); binding.alias.setVisibility(View.VISIBLE); binding.alias1.setText(aliases.get(0).toString()); binding.aliasDivider.setVisibility(View.VISIBLE); } else { binding.alias1.setText(getString(R.string.no_alias)); binding.alias.setVisibility(View.GONE); binding.alias1Container.setVisibility(View.GONE); } binding.alias1Clipboard.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { CommonUtils.copyToClipboard(Uri.parse(binding.alias1.getText().toString()), 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) { final Intent upgradeIntent = buildIntent(Intent.ACTION_VIEW, String.format(EDriveWidget.WEBPAGE, userInfo.id, client.getCredentials().getAuthToken(), dataForWeb(userInfo.quota.total))); startActivity(upgradeIntent); } }); binding.alias.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (binding.alias1Container.getVisibility() == View.VISIBLE) { binding.alias1Container.setVisibility(View.GONE); binding.alias.setCompoundDrawablesWithIntrinsicBounds(null, null, ContextCompat.getDrawable(v.getContext(), R.drawable.ic_expand_more), null); } else { binding.alias1Container.setVisibility(View.VISIBLE); binding.alias.setCompoundDrawablesWithIntrinsicBounds(null, null, ContextCompat.getDrawable(v.getContext(), R.drawable.ic_expand_less), null); } } }); Glide.with(this) .load(client.getBaseUri() + NON_OFFICIAL_AVATAR_PATH + client.getCredentials().getUsername() + "/" + 300) .error(R.mipmap.ic_eelo_foreground) .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/utils/CommonUtils.java +38 −25 Original line number Diff line number Diff line Loading @@ -15,6 +15,8 @@ import android.accounts.AccountManager; import android.app.NotificationChannel; import android.app.NotificationManager; import android.app.Service; import android.content.ClipData; import android.content.ClipboardManager; import android.content.ContentResolver; import android.content.Context; import android.media.MediaScannerConnection; Loading @@ -25,6 +27,7 @@ import android.net.Uri; import android.os.Build; import android.util.Log; import android.webkit.MimeTypeMap; import android.widget.Toast; import com.owncloud.android.lib.common.OwnCloudBasicCredentials; import com.owncloud.android.lib.common.OwnCloudClient; Loading Loading @@ -431,4 +434,14 @@ public abstract class CommonUtils { notificationManager.createNotificationChannel(channel); } } public static void copyToClipboard(Uri data, Context context, String label) { final ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); final ClipData clip = ClipData.newPlainText(label, String.valueOf(data)); clipboard.setPrimaryClip(clip); Toast.makeText(context, context.getString(R.string.copied_to_clipboard, label), Toast.LENGTH_SHORT).show(); } }
app/src/main/java/foundation/e/drive/widgets/EDriveWidget.java +25 −32 Original line number Diff line number Diff line Loading @@ -13,8 +13,6 @@ import android.accounts.AccountManager; import android.app.PendingIntent; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.ClipData; import android.content.ClipboardManager; import android.content.ComponentName; import android.content.Context; import android.content.Intent; Loading Loading @@ -44,10 +42,10 @@ import foundation.e.drive.utils.CommonUtils; * Implementation of App Widget functionality. */ public class EDriveWidget extends AppWidgetProvider { private static final String webpage = public static final String WEBPAGE = "https://esolutions.shop/ecloud-subscriptions/?username=%s&token=%s¤t-quota=%s&from=nextcloud"; public static final String ACCOUNT_MANAGER_PACKAGE_NAME = "foundation.e.accountmanager"; private static final String ADD_ACCOUNT_WEBPAGE = "https://e.foundation/e-email-invite/"; private static final String ACCOUNT_MANAGER_PACKAGE_NAME = "foundation.e.accountmanager"; private static final String GET_ACCOUNT_MANAGER_COMPONENT_NAME = ACCOUNT_MANAGER_PACKAGE_NAME + ".ui.setup.LoginActivity"; private static final String SETUP_ACCOUNT_PROVIDER_TYPE = "setup_account_provider_type"; Loading @@ -67,6 +65,26 @@ public class EDriveWidget extends AppWidgetProvider { private UserInfo userInfo = null; private RemoteViews views = null; public static String dataForWeb(Long bytes) { final String space = CommonUtils.humanReadableByteCountBin(bytes); final String[] split = space.split(" "); return Math.round(Double.parseDouble(split[0])) + split[1]; } public static Intent buildIntent(String name, String extra) { final Intent intent = new Intent(name); if (!extra.isEmpty()) { intent.setData(Uri.parse(extra)); } intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); return intent; } public static int convertIntoMB(Long quota) { return (int) (quota / 1048576); // 1024.0 * 1024.0 = 1048576.0 } public void updateAppWidget(final Context context) { AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); final ComponentName provider = new ComponentName(context, getClass()); Loading Loading @@ -152,28 +170,13 @@ public class EDriveWidget extends AppWidgetProvider { updateAppWidget(context); break; case COPY_ALIAS: copyToClipboard(intent.getData(), context); CommonUtils.copyToClipboard(intent.getData(), context, context.getString(R.string.alias)); break; } super.onReceive(context, intent); } private String dataForWeb(Long bytes) { final String space = CommonUtils.humanReadableByteCountBin(bytes); final String[] split = space.split(" "); return Math.round(Double.parseDouble(split[0])) + split[1]; } private Intent buildIntent(String name, String extra) { final Intent intent = new Intent(name); if (!extra.isEmpty()) { intent.setData(Uri.parse(extra)); } intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); return intent; } private void onNetworkRequestCompleted(Context context, AppWidgetManager appWidgetManager, int appWidgetId, OwnCloudClient client, Account account) { if (account == null || userInfo == null) { Loading Loading @@ -250,7 +253,7 @@ public class EDriveWidget extends AppWidgetProvider { views.setOnClickPendingIntent(R.id.settings, pendingIntentSettings); final PendingIntent pendingIntentUpgrade = PendingIntent.getActivity(context, 0, buildIntent(Intent.ACTION_VIEW, String.format(webpage, userInfo.id, buildIntent(Intent.ACTION_VIEW, String.format(WEBPAGE, userInfo.id, client.getCredentials().getAuthToken(), dataForWeb(userInfo.quota.total))), PendingIntent.FLAG_IMMUTABLE); views.setOnClickPendingIntent(R.id.upgrade, pendingIntentUpgrade); Loading @@ -268,14 +271,4 @@ public class EDriveWidget extends AppWidgetProvider { return PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); } private void copyToClipboard(Uri data, Context context) { final ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); final ClipData clip = ClipData.newPlainText("alias", String.valueOf(data)); clipboard.setPrimaryClip(clip); } public static int convertIntoMB(Long quota) { return (int) (quota / 1048576); // 1024.0 * 1024.0 = 1048576.0 } } No newline at end of file