Git Product home page Git Product logo

super-productivity-android's Introduction

super-productivity-android

Android App for Super Productivity (https://super-productivity.com/).

I am not an Android developer, so help would be very welcome!!

Building locally

For building this app locally you have two options for loading the web view:

  1. Pointing to "https://app.super-productivity.com", Which is what the app currently does in production mode, Then you only can edit and see the changes you make on android app part.
  2. Running super productivity app locally and point the web view to load that address, So you can see the changes you have made. To make the local web app accessible from inside the Android Studio emulator, run the web app using ng serve --disable-host-check --host 0.0.0.0 --port 4200 --live-reload --watch (note the --host 0.0.0.0, this is necessary otherwise the web app won't be reachable). Then, inside the Android app's code, simply point to http://10.0.2.2:4200 (the URL should also work in the emulator's Chrome browser).

You can edit the url that the web view loads in "App.java" file here.

super-productivity-android's People

Contributors

ariamoradi avatar berhram avatar fynngodau avatar gabriellcosta avatar johannesjo avatar lrq3000 avatar penn5 avatar zoli avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

super-productivity-android's Issues

Release filesync

πŸ™ Problem Statement

I'm eager to see the filesync feature make it to an android release. I'm guessing it is soon to be released, or perhaps it is not yet deemed to be stable enough for a release.

❔ Possible Solution

A release, possibly a beta or unstable release. Unstable release could be released as a separate app, or alternatively on a custom fdroid repo.

‴️ Describe alternatives you've considered

Building an apk myself.

βž• Additional context

#37 #25 #36

Back button behaviour inconsistent with Android UX

πŸ‘» Brief Description

When navigating through the app, especially between top-level navigation points such as those found under the hamburger menu (Today, Scheduled, Project Foo etc...), I would expect interaction with the back button to navigate to the previous screen.

Steps To Reproduce

Steps to reproduce the behavior:

  1. Open App
  2. See Today screen
  3. Tap icon for navigation menu
  4. Navigate to another screen, Scheduled for example
  5. Tap device's back button
  6. App closes

πŸš“ Expected behavior

  1. Open App
  2. See Today screen
  3. Tap icon for navigation menu
  4. Navigate to another screen, Scheduled for example
  5. Tap device's back button
  6. Navigate back to Today screen

Suggestions

You can capture the back button event before it is delegated to the system by overriding onBackPressed() in an Activity.
In the case of this app, I think you could override in FullscreenActivity following the tips here: https://developer.android.com/guide/navigation/navigation-custom-back#implement_custom_back_navigation

βž• Additional context

Some context around the back behaviour: https://developer.android.com/guide/components/activities/tasks-and-back-stack

Releases on github

πŸ™ Problem Statement

This project doesn't use github to release official apk. As of now the most official sources for apk are Google Play and F-Droid. Neither are recommended for privacy [1]. Further apps in the official F-Droid repository often fall behind on updates [2].

❔ Possible Solution

Release official apk with github release. We already have the version tags.

This would mean that the most up-to-date apk would always be available via github releases.

‴️ Describe alternatives you've considered

Forget about privacy and up-to-date releases?

App Crashes in Samsung M51 with a pop up "This app has a bug. Please clear cache."

πŸ‘» Brief Description

App Crashes in Samsung M51 with a pop up "This app has a bug. Please clear cache." Even after clearing cache, it keeps crashing. It is opening for some seconds then closes automatically.

πŸ₯ž Action version

Version 17.0

🎩 workflow configuration

Just install the app

Steps To Reproduce

Steps to reproduce the behavior:

  1. Install the app frm Fdroid
  2. Launch the app

πŸš“ Expected behavior

App should run smoothly

βž• Additional context

Add any other context about the problem here. e.g. related issues or existing pull requests.

Is the project still alive?

I found the app being pretty interesting just after the installing. But here I can see pretty old issues and lack of recent commits. Thus the questions are:

  • Has the project died?
  • And what's going on now?

Serve web app locally

Problem Statement

Currently the Android app connects to https://app.super-productivity.com to load necessary source code to function. For an ToDo / time tracking app that can and is intended to function locally - except from optional task syncing - that's an unnecessary step just transferring data that could be leaked and adding attack surface that could be abused.

❔ Possible Solution

The best option would probably be to serve the web app locally and therefore embed all needed files inside the Android app itself. That would prevent the former existent connection to be manipulated, spied on or abused otherwise by an attacker.

‴️ Describe alternatives you've considered

Other alternatives would be:

Give users a option to use a self-hosted instance of the super productivity web app. This wouldn't eliminate the problem completely but users wouldn't have to trust a foreign, uncontrollable and unverifiable web app anymore, because users could set up their own instance or use one they trust. Therefore, the problem would be minimized a bit.

The other option would be to inform the users at the first start of the Android app that a connection to your servers are necessary for super productivity to function properly. This wouldn't avoid the problem, but at least users would know and can actively decide if that's okay with them or not.

βž• Additional context

A pleasant side effect would be that bugs like #3 would probably be avoided :-)

Close left menus with the swipe

It would be aesthetically pleasant to be able to close the left menu with the swipe, and not just with the tap on the rest of the space.

App fix and overhaul

Hello.
Great app (web), can't use the Android version because of broken. Many deprecated APIs are used (which means that the app will not work in the latest androids versions). Also, there are dangerously debugging that need to be deleted (e.g. with proguard rules).
I'm an Android developer and will be happy to help. Rewrite to Kotlin or fix the existing codebase, it doesn't matter.

Null Pointer Dereference on Project Colour Selection

Brief Description

App crashes when trying to select colour for new project.

Action version

Could use this app only for 15 seconds, because it crashes, when I try to start using it. So, nothing is set up, yet.

Workflow Configuration

Could use this app only for 15 seconds, because it crashes, when I try to start using it. So, nothing is set up, yet.

Steps To Reproduce

  1. Install App
  2. Open App
  3. Click "Create new Project"
  4. Try to select Project Colour
  5. See App Crash

Expected behavior

Colour should be selectable, without the app crashing.

Additional context

Just installed this app. My experience is, that I opened the app, tried to create a new project, clicked on the colour bar, to try to change the project's colour, but it always leads to the aforementioned app crash.

I did not set anything up or do anything with the app, yet, simply because I cannot even start using it. Total failure.

Logs

Revision: '0'
ABI: 'arm64'
pid: 21614, tid: 21614, name: perproductivity  >>> com.superproductivity.superproductivity <<<
uid: 10569
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x68
Cause: null pointer dereference
x0  0000000000000040  x1  00000000ff78909c  x2  0000000000000079  x3  0000000070c89630
x4  0000000000000079  x5  0000006d8a2d0674  x6  0000000012c5d610  x7  0000000000000018
x8  0000000000000000  x9  fd582cb7eb200c00  x10 0000000000430000  x11 0000000000000001
x12 0000000000000078  x13 0000006d995b7720  x14 0000006d995b7780  x15 0000000000000007
x16 0000000000000000  x17 000000000004b175  x18 00000070303e0000  x19 00000000ff78909c
x20 0000006dba9222d8  x21 0000006ec9b70460  x22 0000006e59b5f610  x23 0000007ff76902d0
x24 0000007ff76902b0  x25 0000006d400a1830  x26 000000702f23d000  x27 0000006e69be63a8
x28 0000006d40055000  x29 0000007ff7690030
lr  0000006d3d40fbd4  sp  0000007ff7690020  pc  0000006d3d417ee0  pst 0000000060000000
backtrace:
#00 pc 000000000197cee0  /product/app/webview/webview.apk!libwebviewchromium.so (offset 0x9db000) (BuildId: 7b9c507e4f5d53ab00dfdeb2487c487a1485f16e)

Show push notification with reminders when the app is closed

πŸ—£οΈ Foreword

I want to use super productivity as the only application for my daily life planning. It fits all my needs except one - it has some problems with notifications.

πŸ‘» Brief Description

The application has reminders especially for scheduled and repeated tasks. But application must be active to show it. I would like to have such notifications even I close the application. I know it should be possible, because it is general thing for android apps.

πŸ₯ž Action version

7.5.2

Steps To Reproduce

Steps to reproduce the behavior:

  1. Create a task
  2. Schedule it for some time in future and set the reminder for that
  3. Exit the app
  4. There will no be notification for the issue
  5. Open the app
  6. Notification appears in the app.

πŸš“ Expected behavior

I get a reminder(push notification) even the super-productivity app is closed.

βž• Additional context

I believe it happens because super-productivity stops all its activities when it looses focus. So any reminders and notifications are happening only when the app is visible.

App fails to start without internet connection

Current behaviour

When I run the Android App, it doesn't work when there is no internet connection. You just get an error page that the website https://app.super-productivity.com couldn't load. So the App seems to load something from your web server and just fails to start if it can't.

My question here would be, what does the app try to load from your webserver? Is the app just a wrapper for the web app and loads all the html, css, js content from your webserver at each start? Or is it just some update check?

Suggested behaviour

It would be great if the app would work offline, too.

Infinite loading when pointing to local angular webserver inside android emulator

πŸ‘» Brief Description

When running a local angular webserver with ng serve --host 0.0.0.0, and configuring the Android app to set url = "http://10.0.2.2:4200" inside the AndroidΒ Studio emulator, the Android app should in theory request resources from the local webapp.

However, it does not work: the Android app stays in an infinite loading screen (with the "quote of the day"). However, the web app works fine in the emulator's Android Chrome browser at the address http://10.0.2.2:4200. This suggests that either the webapp behaves differently if it's the Android app, or it's the Android app's WebView component that is failing to properly process the webapp when it's locally served.

I tried to debug, but no luck. I even tried to nullify these constants in the webapp:

export const IS_ANDROID_WEB_VIEW = false;
export const IS_F_DROID_APP = false;

To try to force the behavior to be the same between the Android app and Chrome browser, but it did not change anything.

Because of this issue, it is impossible currently to develop the webapp and Android app locally. The webapp needs to be uploaded on an online server before.

πŸ₯ž Action version

Same branch as #33. This PRΒ implements some bugfixes and updated instructions to launch the webserver locally and access it from inside the emulator, otherwise it would not even display in emulated Chrome browser.

🎩 workflow configuration

Android 11 (emulated on a Pixel 3a phone). Host computer: Windows 10 x64.

Steps To Reproduce

Steps to reproduce the behavior:

  1. git clone super-productivity and npm install etc
  2. ng serve --host 0.0.0.0
  3. launch the Android app in Android Studio's emulator
  4. the app should be stuck in an infinite loop
  5. launch Chrome browser inside the Android emulator, and type http://10.0.2.2:4200. This should work fine.

πŸš“ Expected behavior

The Android app should get redirected to "Today" tab after loading.

Prompt for a title when creating subtasks

Problem Statement

When creating a new subtask, there is no prompt to enter a title. Instead the subtask is created with no title, and I have to tap it, tap the title bar, enter the title and tap back.

Possible Solution

When creating a top level task a small grey dialog opens, which asks for the title and can include tags and a project. Using that same dialog when creating subtasks would solve the problem.

Fail to sync with Google Drive

πŸ—£οΈ Foreword

Thank for taking the time to fill this bug report fully. Without it we may not be able to fix the bug, and the issue may be closed without resolution.

And thank you for writing the Super Productivity app πŸ™‚

πŸ‘» Brief Description

I already am using Super Productivity on my laptop and wanted to use it on my Android as well. I receive an error when trying to configure synchronization via Google Drive.

Steps To Reproduce

Steps to reproduce the behavior:

  1. Start the app;
  2. Go to 'Settings';
  3. Scroll down to 'Sync & Export' session;
  4. Expand the 'Sync' panel;
  5. Select GoogleDrive as the Sync Provider;
  6. Tap 'Save';
  7. A dialog should appear to select the Google account. Select the desired Google account to use;
  8. See the error Google Drive: Error while creating sync file. [object Object].

πŸš“ Expected behavior

The synchronization configuration working.

File sync not working for android versions below Q

Hey hey @lrq3000 ! Could I maybe ask you to have another look at this? I am try to get this to work on my phone which runs on android 9. Unfortunately there the permissions dialog is never opened and without it it doesn't seem to be able to write the file.

impossible to complete a task in Android version 7.16.

πŸ‘» Brief Description

I use the windows version all the time. When a task is running next to the title are three icons: Remove from my day, Completed, Show additional info. In Android version haven't found a way to complete a task as there are no such icons visible.

πŸ₯ž Action version

Version of the Action where you are encountering the issue.

🎩 workflow configuration

I am running Super Productivity 7.16 for Android on Redmi Note 10 pro , which runs Android 12 SKQ1.210908 and MIUI Global version 13.0.16.

Steps To Reproduce

Steps to reproduce the behavior:

  1. Go to Today. Now you see all task scheduled for today.
  2. Select any of the tasks
  3. Click on 'Run/play'
  4. Try to mark the task as completed.

πŸš“ Expected behavior

There should be a βœ”οΈ icon so that the task or subtask can be completed.

βž• Additional context

It is a great program. Thank you all!

Where is the user data folder on Android?

I would like to sync the user data folders with Syncthing. For that, I need to know where the user data folder is in Android.

I checked under Android/data/, looking for something like a com.superproductivity folder, but couldn't find anything.

Also, there is not option for automatic backup in the Android app, so I wasn't able to find the path like I did on Linux.

Could you tell me where the user data folder is?

Thanks

Download .apk from github directly with Obtainium

I would like to pull the latest .apk directly from github using Obtainium. In order to do this, the latest released .apk would have to be listed under Releases. Would this be possible or is there another way to get the latest .apk directly from github?

Dropbox sync request fails with http status 409

  1. clean install from f-droid v7.0
  2. added a project an ome tasks with description
  3. created a new dropbox account
  4. created auth + token

The mesage with some failed sync requests and http status 409 pops up a ew times.

OS: Android 10 on a lenovo tab

Requests to external domain

I found that the app I always sending a request to https://app.super-productivity.com at the app start. And btw, it breaks if the internet is off on the phone when you open it first time.

Could you specify, why the connection is needed and if it's possible somehow to manage this behavior?

No notification when task is scheduled 2 hours or longer in the future (possibly less than 2 hours)

πŸ‘» Brief Description

After some time, I don't receive notifications anymore from the app. When i have a task scheduled within half an hour or so, i get a notification, but when it is scheduled in 2 hours and i don't open the app anymore, I don't get the notification for the task

πŸ₯ž Action version

I'm using the app downloaded from f-droid. I'm using version 21.0

Steps To Reproduce

Steps to reproduce the behavior:

  1. I make a task and schedule it (for example 2 hours in the future)
  2. I close SupProd and don't open it before the scheduled time for the task
  3. When I should get a notification of the task, I don't receive it until I reopen the app

πŸš“ Expected behavior

Getting a notification for a scheduled task, even though it is more than 2 hours in the future and I don't open SupProd in the meantime

βž• Additional context

I have disabled battery optimization
I have locked the app in the recent list
I'm using a OnePlus 5T

CORS headers should not be required

Hello!

First, great thanks for Super Productivity, I discovered it yesterday and it feels like an awesome discovery! Sorry for not filling in the whole template, I just feel like it's not really relevant for this β€œissue”

As per eg. johannesjo/super-productivity#668 , the WebAppPassword app is currently required in order to do WebDAV from the android application. To the best of my understanding, this is due to CORS: Nextcloud explicitly disallows requests from other websites, and so this is security working as designed. WebAppPassword basically weakens this security in order to make Super Productivity work anyway.

However, this does not have to be the case: as there is an actual android app, it should not actually verify CORS headers.

My understanding is that the issue stems from the fact that the WebView is configured to run the webapp from the website directly (thus requiring internet): https://github.com/johannesjo/super-productivity-android/blob/master/app/src/main/java/com/superproductivity/superproductivity/App.java#L43

I think the issue could be solved by bundling the webapp code into the application itself, as this way the URLΒ would be given as file:// rather than https://, and thus be exempt from CORS.

In addition, I'm not sure how exactly the thing works but maybe it would also allow (for free) the app to work without an internet connection, which can always be useful. (Also, this way people could upgrade their app independently from app.superproductivity.com, which is always a nice thing: as I'm personally maybe too much security-conscious I don't feel right allowing superproductivity.com access to all the information in my todo-list, as it contains sensitive information and the website being hacked could lead to this information being exfiltrated)

Would such a change make sense to you?

Anyway, thank you very much from Super Productivity, I've been using it for just a day and I already love it!
Best,
LΓ©o

Local sync error in both linux and android versions

On the linux version the error shown is EISDIR: illegal operation on a directory, open 'path to file'
And on the android version it shows: java exception was raised during method invocation.
I have tried looking it up but cannot find anything to fix this.
This happens immediately after I click save for enabling sync.

Alternative web base for the app

Hi there,

I've just installed docker version of the web app, and got the question: how to make the android app connect to exactly this (my server) instead of the default one by official domain?

Pressing back when a side bar is opened changes page instead of closing the bar

πŸ‘» Brief Description

When a side panel is opened, such as the side navigation bar or the task bar or notes bar, pressing the Back button on the Android interface should close the side panel, but instead the panel is ignored and the app goes to the previous page in history or it closes down if on the Today page.

🎩 workflow configuration

Android 11 in AVD emulator.

βž• Additional context

As usual, I can work on the Android side. But here the web app needs to be modified to add required callbacks: one to hide each bar + one to query the state of each bar. But I'm very inexperienced with typescript.

I tried to register a new callback inside android-interface.ts:

  androidInterface.hideNavBarCallBack = () => {
    androidInterface.showToast('Received hideNavBarCallBack new');
    androidInterface.layoutService.hideSideNav();
    androidInterface.layoutService.hideNotes();
    androidInterface.layoutService.hideAddTaskBar();
    androidInterface.showToast('Received hideNavBarCallBack end');
    console.log('Received hideNavBarCallBack end');
  };

But the calls fail (the showToast() work fine).

Also I would need access to selectIsShow*.

If somebody can implement these changes or suggest how to do so, I would be happy to fix this issue in the Android app, so that we get a fully functional native behavior with the back button (extending the work of #27).

font size

πŸ—£οΈ

please add an option to change the font size of the Android app

Keep "Finish day" as an option before closing the app

:person_frowning: Problem Statement

Once opened, whenever I have to close the app it compulsorily asks me to finish the day and move the done tasks to archive or just stay.

❔ Possible Solution

It would be great to have a check box kind of a thing in the settings where one could opt for closing the app to "finish day" or just keep everything as it is until returned to by opening the app.

‴️ Describe alternatives you've considered

Something like:

  • Finish day when closing the app
    If left unchecked you won't be asked to finish the day and put the completed tasks in archive when closing the app and will return to the same workflow when reopened

Open app drawer with swipe

Problem Statement

In most (if not all) android apps drawer can be opened with a swipe gesture, but here the user needs to explicitly click on the drawer button.

❔ Possible Solution

Implement opening drawer with swipe gesture

lack of LocalFile sync on Android versions.

πŸ—£οΈ Foreword

Thank you so much for great app, today i've switched to it from taskwarrior and gnome-pomodora because got tired of its bugs after each gnome update.

πŸ™πŸ½ Problem Statement

The Android (both F-Droid and GPlay versions) lack critical feature for me the LocalFile sync in order to can keep same copy of tasks on both devices.

❔ Possible Solution

Can you please add LocalFile sync.

‴️ Describe alternatives you've considered

As an alternative maybe we can specify our own path for user_data if it is compatible with PC version.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.