A resizable widget that shows your financial portfolio on your android home screen

Overview

Stocks Widget

Build Unit tests

Get it on Google Play Get it on F-Droid

App features

  • A home screen widget that shows your stock portfolio in a resizable grid
  • Stocks can be sorted by dragging and dropping the list
  • Only performs automatic fetching of stocks during trading hours
  • Displays price change and summary alerts

License

GPL

Author

Prem Nirmal

Comments
  • The application automatically crashes when I click on the end time option

    The application automatically crashes when I click on the end time option

    Project Information

    • Repository: https://github.com/premnirmal/StockTicker
    • Project Name: Stock Widget

    Expected behavior

    The application should not crash when I click the end time option Rather, all end time options should be properly displayed

    Actual behavior

    The application automatically crashes when I click on the end time option

    How to reproduce

    1-Downloadthe app and open it 2- Go to the setting 3- click on end time 4- see bug

    • Browser/App version: Current Version 3.0.4
    • Operating system: 6.0.1
    • Smartphone: Galaxy j7

    Recording Of The Bug

    20190507_145133

    My Github Account

    https://github.com/facebook-786

    Logcat

    E/AndroidRuntime(11193): FATAL EXCEPTION: main
    
    E/AndroidRuntime(11193): Process: com.github.premnirmal.tickerwidget, PID: 11193
    
    E/AndroidRuntime(11193): android.view.InflateException: Binary XML file line #20: Error inflating class android.widget.TimePicker
    
    E/AndroidRuntime(11193): 	at android.view.LayoutInflater.createView(LayoutInflater.java:633)
    
    E/AndroidRuntime(11193): 	at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.onCreateView(SourceFile:164)
    
    E/AndroidRuntime(11193): 	at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
    
    E/AndroidRuntime(11193): 	at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.onCreateView(SourceFile:148)
    
    E/AndroidRuntime(11193): 	at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
    
    E/AndroidRuntime(11193): 	at android.view.LayoutInflater.inflate(LayoutInflater.java:482)
    
    E/AndroidRuntime(11193): 	at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(SourceFile:60)
    
    E/AndroidRuntime(11193): 	at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
    
    E/AndroidRuntime(11193): 	at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
    
    E/AndroidRuntime(11193): 	at android.app.TimePickerDialog.(TimePickerDialog.java:134)
    
    E/AndroidRuntime(11193): 	at android.app.TimePickerDialog.(TimePickerDialog.java:102)
    
    E/AndroidRuntime(11193): 	at com.github.premnirmal.ticker.settings.SettingsFragment.onDisplayPreferenceDialog(SourceFile:113)
    
    E/AndroidRuntime(11193): 	at androidx.preference.PreferenceManager.showDialog(SourceFile:530)
    
    E/AndroidRuntime(11193): 	at androidx.preference.DialogPreference.onClick(SourceFile:258)
    
    E/AndroidRuntime(11193): 	at androidx.preference.Preference.performClick(SourceFile:1167)
    
    E/AndroidRuntime(11193): 	at androidx.preference.Preference.performClick(SourceFile:1152)
    
    E/AndroidRuntime(11193): 	at androidx.preference.Preference$1.onClick(SourceFile:182)
    
    E/AndroidRuntime(11193): 	at android.view.View.performClick(View.java:5076)
    
    E/AndroidRuntime(11193): 	at android.view.View$PerformClick.run(View.java:20279)
    
    E/AndroidRuntime(11193): 	at android.os.Handler.handleCallback(Handler.java:739)
    
    E/AndroidRuntime(11193): 	at android.os.Handler.dispatchMessage(Handler.java:95)
    
    E/AndroidRuntime(11193): 	at android.os.Looper.loop(Looper.java:135)
    
    E/AndroidRuntime(11193): 	at android.app.ActivityThread.main(ActivityThread.java:5910)
    
    E/AndroidRuntime(11193): 	at java.lang.reflect.Method.invoke(Native Method)
    
    E/AndroidRuntime(11193): 	at java.lang.reflect.Method.invoke(Method.java:372)
    
    E/AndroidRuntime(11193): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1405)
    
    E/AndroidRuntime(11193): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200)
    
    E/AndroidRuntime(11193): Caused by: java.lang.reflect.InvocationTargetException
    
    E/AndroidRuntime(11193): 	at java.lang.reflect.Constructor.newInstance(Native Method)
    
    E/AndroidRuntime(11193): 	at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
    
    E/AndroidRuntime(11193): 	at android.view.LayoutInflater.createView(LayoutInflater.java:607)
    
    E/AndroidRuntime(11193): 	... 26 more
    
    E/AndroidRuntime(11193): Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'void android.widget.TimePicker$TimePickerDelegate.onRtlPropertiesChanged(int)' on a null object reference
    
    E/AndroidRuntime(11193): 	at android.widget.TimePicker.onRtlPropertiesChanged(TimePicker.java:193)
    
    E/AndroidRuntime(11193): 	at android.view.View.resolvePadding(View.java:13757)
    
    E/AndroidRuntime(11193): 	at android.view.ViewGroup.resolvePadding(ViewGroup.java:6344)
    
    E/AndroidRuntime(11193): 	at android.view.View.initializeScrollbarsInternal(View.java:4849)
    
    E/AndroidRuntime(11193): 	at android.view.View.(View.java:4278)
    
    E/AndroidRuntime(11193): 	at android.view.ViewGroup.(ViewGroup.java:503)
    
    E/AndroidRuntime(11193): 	at android.widget.FrameLayout.(FrameLayout.java:115)
    
    E/AndroidRuntime(11193): 	at android.widget.TimePicker.(TimePicker.java:84)
    
    E/AndroidRuntime(11193): 	at android.widget.TimePicker.(TimePicker.java:80)
    
    E/AndroidRuntime(11193): 	at android.widget.TimePicker.(TimePicker.java:76)
    
    E/AndroidRuntime(11193): 	... 29 more
    
    help wanted 
    opened by saraji-ali 15
  • OTC stocks failed to fetch

    OTC stocks failed to fetch

    All my OTC stocks have disappeared from the widget. If I again add a missing ticker, I get an error like "failed to fetch," and the ticker appears with price $0. Soon it disappears again.

    In previous version similar problem would happen sometimes. Tickers would disappear and adding them again gave error like "ticker already exists," and eventually the tickers and prices would return on their own.

    opened by neffnet 14
  • F-Droid can't build

    F-Droid can't build

    ...remove DOS newlines from https://github.com/premnirmal/StockTicker/blob/master/gradle/wrapper/gradle-wrapper.properties

    Ref: https://f-droid.org/wiki/index.php?title=com.github.premnirmal.tickerwidget/lastbuild_396&oldid=273192

    @Bubu @eighthave so this is soooo fixed yet not really?

    opened by licaon-kter 11
  • StockTicker crashes when entering/searching for new tickers

    StockTicker crashes when entering/searching for new tickers

    StockTicker crashes when entering/searching for new tickers.

    I/ActivityManager(11128): START u0 {flg=0x10000000 cmp=com.github.premnirmal.tickerwidget/com.github.premnirmal.ticker.ui.ParanormalActivity} from pid -1 I/ActivityManager(11128): Start proc com.github.premnirmal.tickerwidget for activity com.github.premnirmal.tickerwidget/com.github.premnirmal.ticker.ui.ParanormalActivity: pid=16423 uid=10322 gids={50322, 3003, 1028, 1015} D/ActivityThread(16423): handleBindApplication:com.github.premnirmal.tickerwidget D/Event (16423): No subscribers registered for event class com.github.premnirmal.ticker.events.StockUpdatedEvent I/ActivityManager(11128): Displayed com.github.premnirmal.tickerwidget/com.github.premnirmal.ticker.ui.ParanormalActivity: +1s184ms I/Timeline(11128): Timeline: Activity_windows_visible id: ActivityRecord{655a4868 u0 com.github.premnirmal.tickerwidget/com.github.premnirmal.ticker.ui.ParanormalActivity t61} time:93070245 I/Timeline(11128): Timeline: Activity_windows_visible id: ActivityRecord{655a4868 u0 com.github.premnirmal.tickerwidget/com.github.premnirmal.ticker.ui.ParanormalActivity t61} time:93085705 I/Timeline(16423): Timeline: Activity_launch_request id:com.github.premnirmal.tickerwidget time:93086406 I/ActivityManager(11128): START u0 {cmp=com.github.premnirmal.tickerwidget/com.github.premnirmal.ticker.ui.TickerSelectorActivity} from pid 16423 I/ActivityManager(11128): Displayed com.github.premnirmal.tickerwidget/com.github.premnirmal.ticker.ui.TickerSelectorActivity: +94ms I/Timeline(11128): Timeline: Activity_windows_visible id: ActivityRecord{656505a8 u0 com.github.premnirmal.tickerwidget/com.github.premnirmal.ticker.ui.TickerSelectorActivity t61} time:93086832 E/AndroidRuntime(16423): Process: com.github.premnirmal.tickerwidget, PID: 16423 W/ActivityManager(11128): Force finishing activity com.github.premnirmal.tickerwidget/com.github.premnirmal.ticker.ui.TickerSelectorActivity W/ActivityManager(11128): Activity pause timeout for ActivityRecord{656505a8 u0 com.github.premnirmal.tickerwidget/com.github.premnirmal.ticker.ui.TickerSelectorActivity t61 f} W/ActivityManager(11128): Activity pause timeout for ActivityRecord{655a4868 u0 com.github.premnirmal.tickerwidget/com.github.premnirmal.ticker.ui.ParanormalActivity t61} I/WindowState(11128): WIN DEATH: Window{65b13d10 u0 com.github.premnirmal.tickerwidget/com.github.premnirmal.ticker.ui.ParanormalActivity} I/ActivityManager(11128): Process com.github.premnirmal.tickerwidget (pid 16423) has died. I/WindowState(11128): WIN DEATH: Window{656ac5d0 u0 com.github.premnirmal.tickerwidget/com.github.premnirmal.ticker.ui.TickerSelectorActivity}

    bug 
    opened by DocSniper 10
  • F-Droid can't pick up new releases

    F-Droid can't pick up new releases

    ...since https://github.com/premnirmal/StockTicker/commit/d9a66be6ecc8a2ab7e2ebef30de67f5e899625ce

    app/version.properties not found in tag 3.9.770

    Ref: https://gitlab.com/fdroid/fdroiddata/-/blob/8a4dd287e9658401f2c462a1f17fc54176d45756/metadata/com.github.premnirmal.tickerwidget.yml#L1520

    bug 
    opened by licaon-kter 9
  • Error Fetching Suggestions, Can't Add New Ticker

    Error Fetching Suggestions, Can't Add New Ticker

    When I try to add a new ticker symbol in the search function, I immediately get an error message saying "error fetching suggestions". This prevents me from adding a new stock to my portfolio.

    I am using a Samsung phone with the standard Android system.

    Thank you!

    Screenshot_20210723-094711_Stocks Widget

    bug help wanted 
    opened by TheOneBoris 9
  • Enter current stock or price when bought

    Enter current stock or price when bought

    Probably a dumb question, but do i enter the price when i bought or really the current price. My guess is, when bought, so the difference gets shown but it somehow is not the same like online.

    opened by natrius 9
  • Lost portfolio data after update

    Lost portfolio data after update

    It looks like my app updated automatically overnight and I lost a large widget and portfolio that I had on my home screen. I cannot find a backup or way to restore what was approximately 40 stocks in my portfolio as well as holdings. Any suggestions as to how I can restore this quickly before it gets overwritten? The widget that was on my home screen is gone and when I go in the settings in the app there is a small portfolio that doesn't match my prior data.

    bug 
    opened by UnnamedGitHubUser 8
  • Widget refresh fails

    Widget refresh fails

    Widget refresh stopped working as of 5/20. Force refresh using the refresh button on widget, as well as pull-to-refresh within the app do not with either.

    opened by webmihir 8
  • Add 1 day range

    Add 1 day range

    Hi,

    Like in the issue #87, I like to see the chart of the day to see what's happening. I added the button 1D below the charts.

    StockTicker_1dRange

    I checked the chart of some actions and the result correspond to the reality. I don't know what's going to happen on the day of the exchange. We'll see on Monday. :)

    opened by b0bdN 6
  • Feature request: Monitor portfolio

    Feature request: Monitor portfolio

    Would it be possible to have the ability to specify share count and avg price (price owned) when adding a ticker?

    That way on the main page you could show the gain/loss based on current price compared to owned price. Maybe in the place of 52 week hi/lo numbers?

    I tried forking it and doing in myself but my Java skills are terrible. Also, does the Android studio have some kind of GUI to edit the layout files (similar to how you'd make a form in Visual Studio for example)?

    If you don't have time or desire to do such a change I understand. I'll keep plugging along to see if I can do it.

    enhancement 
    opened by howeyc 6
  • Choose protfolio currency

    Choose protfolio currency

    I will like to see my protfolio on the currency that I choose I'm checking my protfolio once a week or so, and after I get the current status I'm calculating the amount in my currency.

    Add to settings a master/protfolio currency An option of master currency, and the app will show the total amount on the chosen currency.

    Alternative: I'm using an alternative - just calculating by myself.

    opened by izikavi 0
  • "Refreshing" spinner never stops

    Describe the bug The "refresh" button in the corner of the widget spins endlessly. I think it even prevents normal refreshes.

    To Reproduce It just happens. I've tried some things to STOP it.

    1. Rebooting didn't help. It just started up in the spinning state and stayed there. I think it did update the prices, though.
    2. In the widget settings I selected "hide header". It forced a refresh, but when I enabled the header again the spinner was still spinning.

    Expected behavior Spin during a refresh, then stop.

    Screenshots I took this screenshot today, Monday, but notice that it says the last update was last Thursday (and the NEXT update was last Thursday). It's set to update every 15 minutes. Screenshot_20221024-121354

    Smartphone (please complete the following information):

    • Device: moto g7
    • OS: Android 10, build QPUS30.52-23-13-4
    • App Version 3.9.813

    Additional context I think it prevents regular price updates. And it prevents me from hitting the refresh button to get new prices.

    bug 
    opened by dmancine 0
  • Re-arranging stocks does change the stock names

    Re-arranging stocks does change the stock names

    Describe the bug While re-arranging the stock list by pressing and moving a stock the label for the stock becomes erranous in an odd way.

    To Reproduce Steps to reproduce the behavior:

    1. Press and hold the stock to be re-arranged.
    2. Move the stock (up).
    3. When doing this the stock will dissappear, and a somewhat random labeling from one of the neighboring stocks will be places instead.
    4. See error photos.

    Expected behavior I would expect all the labels to remain the same, only that the stock is re-arranged.

    Screenshots Note in the two screenshots here, that for the first one I pressed and held and moved the ETH-USD "stock". While moving it it suddenly dissapears, and when releasing the hold, I all of a sudden have two SEK=X instead, but no ETH-USD.

    1

    2

    Smartphone (please complete the following information):

    • Device: Google Pixel 4a
    • OS: Android Version 13
    • App Version: V3.9.809

    Additional context

    bug 
    opened by olundberg 0
  • I can't choose which widget (portfolio) to show on the desktop

    I can't choose which widget (portfolio) to show on the desktop

    When I add a new widget, a new empty widget is created? How do I choose Widget #1 which is the widget where I have added the tics? Now when I create a widget it creates a #2, empty?

    bug 
    opened by olundberg 1
  • Feature Request: Turkish language support

    Feature Request: Turkish language support

    I am native speaker Turkish.

    If you share with me app strings on Crowdin, Hosted Weblate, OneSky or Transifex, I want to translate the app Turkish.

    Thanks Önder

    opened by ondern 4
Releases(3.9.818)
Owner
Prem Nirmal
Prem Nirmal
Android component which presents a dismissible view from the bottom of the screen

BottomSheet BottomSheet is an Android component which presents a dismissible view from the bottom of the screen. BottomSheet can be a useful replaceme

Flipboard 4.5k Dec 28, 2022
Bubbles for Android is an Android library to provide chat heads capabilities on your apps. With a fast way to integrate with your development.

Bubbles for Android Bubbles for Android is an Android library to provide chat heads capabilities on your apps. With a fast way to integrate with your

Txus Ballesteros 1.5k Jan 2, 2023
This library provides a simple way to add a draggable sliding up panel (popularized by Google Music and Google Maps) to your Android application. Brought to you by Umano.

Note: we are not actively responding to issues right now. If you find a bug, please submit a PR. Android Sliding Up Panel This library provides a simp

Umano: News Read To You 9.4k Dec 31, 2022
Draftsman is an on device layout inspector which can be embedded in your android app.

Draftsman Draftsman is an on-device layout inspector for Android apps. It allows you to view various properties of rendered Android Views such as widt

Gojek 243 Dec 22, 2022
[Archived] Highlight the best bits of your app to users quickly, simply, and cool...ly

ShowcaseView The ShowcaseView (SCV) library is designed to highlight and showcase specific parts of apps to the user with a distinctive and attractive

Alex Curran 5.6k Dec 16, 2022
An elegant way to show your menu or messages.

Android View Hover In my opinion, jumping to a new activity to show your menu is a kind of wasting time and life. So, I think, we need a hover view, t

代码家 3.2k Dec 6, 2022
Animate your activity!

Warning This library is not in development anymore, but we are accepting PRs or successors if anyone is interested. If you want to use these transitio

Pedro Paulo Amorim 1.3k Dec 4, 2022
You don’t want your apps look and feel boring, do you? Add some bubbles!

#BubbleAnimationLayout Say hello to Bubble Animation Layout for Android by Cleveroad You don’t want your apps look and feel boring, do you? Add some b

Cleveroad 576 Nov 23, 2022
Android library used to create an awesome Android UI based on a draggable element similar to the last YouTube graphic component.

Draggable Panel DEPRECATED. This project is not maintained anymore. Draggable Panel is an Android library created to build a draggable user interface

Pedro Vicente Gómez Sánchez 3k Jan 5, 2023
Android library used to create an awesome Android UI based on a draggable element similar to the last YouTube New graphic component.

Please switch to DragView, for the best support, thank you DraggablePanel Download allprojects { repositories { ... maven { url 'https://jitp

Hoàng Anh Tuấn 103 Oct 12, 2022
FixedHeaderTableLayout is a powerful Android library for displaying complex data structures and rendering tabular data composed of rows, columns and cells with scrolling and zooming features. FixedHeaderTableLayout is similar in construction and use as to Android's TableLayout

FixedHeaderTableLayout is a powerful Android library for displaying complex data structures and rendering tabular data composed of rows, columns and cells with scrolling and zooming features. FixedHeaderTableLayout is similar in construction and use as to Android's TableLayout

null 33 Dec 8, 2022
A wave view of android,can be used as progress bar.

WaveView ![Gitter](https://badges.gitter.im/Join Chat.svg) A wave view of android,can be used as progress bar. Screenshot APK demo.apk What can be use

Kai Wang 1.3k Dec 28, 2022
An Android Layout which has a same function like https://github.com/romaonthego/RESideMenu

ResideLayout An Android Layout which has a same function like https://github.com/romaonthego/RESideMenu. Can be used on Android 1.6(I haven't try it.)

Yang Hui 392 Oct 12, 2022
An Android library that help you to build app with swipe back gesture.

SwipeBackLayout An Android library that help you to build app with swipe back gesture. Demo Apk GooglePlay Requirement The latest android-support-v4.j

ike_w0ng 6.1k Dec 29, 2022
TileView is a subclass of android.view.ViewGroup that asynchronously displays, pans and zooms tile-based images. Plugins are available for features like markers, hotspots, and path drawing.

This project isn't maintained anymore. It is now recommended to use https://github.com/peterLaurence/MapView. MapView is maintained by Peter, one of o

Mike Dunn 1.5k Nov 21, 2022
Ultra Pull to Refresh for Android. Support all the views.

Welcome to follow me on GitHub or Twitter GitHub: https://github.com/liaohuqiu Twitter: https://twitter.com/liaohuqiu 中文版文档 Wanna auto-load-more? This

Huqiu Liao 9.6k Jan 5, 2023
SwipeBack is an android library that can finish a activity by using gesture.

SwipeBack SwipeBack is a android library that can finish a activity by using gesture. You can set the swipe direction,such as left,top,right and botto

Eric 1.7k Nov 21, 2022
A very simple arc layout library for Android

ArcLayout A very simple arc layout library for Android. Try out the sample application on the Play Store. Usage (For a working implementation of this

ogaclejapan 1.4k Dec 26, 2022
Android layout that simulates physics using JBox2D

PhysicsLayout Android layout that simulates physics using JBox2D. Simply add views, enable physics, and watch them fall! See it in action with the sam

John Carlson 689 Dec 29, 2022