Coder Social home page Coder Social logo

aricneto / twistytimer Goto Github PK

View Code? Open in Web Editor NEW
237.0 28.0 52.0 8.71 MB

Twisty Timer is a material design twisty puzzle timer for Android. It uses the TNoodle library to generate scramble sequences for all current official speedsolving puzzles.

License: GNU General Public License v3.0

Java 100.00%

twistytimer's Introduction

Get it on Google Play

Twisty Timer is a Material Design twisty puzzle timer for Android. It uses the TNoodle library to generate scramble sequences for all current official speedsolving puzzles.

If you would like to add a new feature or fix something, just send a pull request.

Special thanks to Prisma Puzzle Timer, TNoodle and PlusTimer for being my inspirations to create this project :).

I want to translate this app! Crowdin

If you're interested in translating Twisty Timer, just go to this page and select your language. If it's not on the list, just contact me and I'll add it.

If you spot a problem in any of the translations, please correct it on the Crowdin page and send me a message, don't open a request here! This makes it easier to manage the localizations.

License (GNU GPL v3)

Copyright (C) 2016  Ariovaldo Neto

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

twistytimer's People

Contributors

aricneto avatar arineto-sn avatar aswna avatar damo avatar dmelton-gpsw avatar freundtech avatar hato-ya avatar ivan-nebogatikov avatar sorashi 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  avatar  avatar  avatar  avatar

Watchers

 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

twistytimer's Issues

Puzzle substeps scramblers

It would be nice to have scramblers to train some specific substeps of a solving method. For example one for F2L (that puts the cube in a solved cross state), one for PLL or OLL.

The one for F2L could be easily implemented by adding the moves to solve the cross (generated by the hints section) to the scramble.

Also a timer for the cross that uses the standard 3x3 scramble (this is related to #24) would be useful.

Android wear module

Is it possible to add an android wear module to this project?

It will be really nice to control the timer via the wear module

Graph times over time

Currently from my understanding graph displays times(solves) over count therefore I can see how I progress over time.

IDEA: For this there could be graph over days (Average of day). (Maybe with days without time as empty space? So it's more accurate representation of data over time)

Importing from txt crashes with ClassNotFoundException org.apache.commons.lang3.StringUtils

Finally managed to export my old times from Cube Companion but it seems a jar is missing from this latest build that is preventing me from importing them.

04-11 03:31:01.735 31251 31270 E AndroidRuntime: FATAL EXCEPTION: AsyncTask #3
04-11 03:31:01.735 31251 31270 E AndroidRuntime: Process: com.aricneto.twistytimer, PID: 31251
04-11 03:31:01.735 31251 31270 E AndroidRuntime: java.lang.RuntimeException: An error occurred while executing doInBackground()
04-11 03:31:01.735 31251 31270 E AndroidRuntime:    at android.os.AsyncTask$3.done(AsyncTask.java:309)
04-11 03:31:01.735 31251 31270 E AndroidRuntime:    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
04-11 03:31:01.735 31251 31270 E AndroidRuntime:    at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
04-11 03:31:01.735 31251 31270 E AndroidRuntime:    at java.util.concurrent.FutureTask.run(FutureTask.java:242)
04-11 03:31:01.735 31251 31270 E AndroidRuntime:    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
04-11 03:31:01.735 31251 31270 E AndroidRuntime:    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
04-11 03:31:01.735 31251 31270 E AndroidRuntime:    at java.lang.Thread.run(Thread.java:818)
04-11 03:31:01.735 31251 31270 E AndroidRuntime: Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/commons/lang3/StringUtils;
04-11 03:31:01.735 31251 31270 E AndroidRuntime:    at com.e.b.a(Unknown Source)
04-11 03:31:01.735 31251 31270 E AndroidRuntime:    at com.e.b.a(Unknown Source)
04-11 03:31:01.735 31251 31270 E AndroidRuntime:    at com.e.b.a(Unknown Source)
04-11 03:31:01.735 31251 31270 E AndroidRuntime:    at com.e.d.a(Unknown Source)
04-11 03:31:01.735 31251 31270 E AndroidRuntime:    at com.aricneto.twistytimer.activity.m.a(Unknown Source)
04-11 03:31:01.735 31251 31270 E AndroidRuntime:    at com.aricneto.twistytimer.activity.m.doInBackground(Unknown Source)
04-11 03:31:01.735 31251 31270 E AndroidRuntime:    at android.os.AsyncTask$2.call(AsyncTask.java:295)
04-11 03:31:01.735 31251 31270 E AndroidRuntime:    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
04-11 03:31:01.735 31251 31270 E AndroidRuntime:    ... 3 more
04-11 03:31:01.735 31251 31270 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.commons.lang3.StringUtils" on path: DexPathList[[zip file "/data/app/com.aricneto.twistytimer-2/base.apk"],nativeLibraryDirectories=[/data/app/com.aricneto.twistytimer-2/lib/arm, /vendor/lib, /system/lib]]
04-11 03:31:01.735 31251 31270 E AndroidRuntime:    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
04-11 03:31:01.735 31251 31270 E AndroidRuntime:    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
04-11 03:31:01.735 31251 31270 E AndroidRuntime:    at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
04-11 03:31:01.735 31251 31270 E AndroidRuntime:    ... 11 more
04-11 03:31:01.735 31251 31270 E AndroidRuntime:    Suppressed: java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils
04-11 03:31:01.735 31251 31270 E AndroidRuntime:        at java.lang.Class.classForName(Native Method)
04-11 03:31:01.735 31251 31270 E AndroidRuntime:        at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
04-11 03:31:01.735 31251 31270 E AndroidRuntime:        at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
04-11 03:31:01.735 31251 31270 E AndroidRuntime:        at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
04-11 03:31:01.735 31251 31270 E AndroidRuntime:        ... 12 more
04-11 03:31:01.735 31251 31270 E AndroidRuntime:    Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
04-11 03:31:01.737 31251 31267 E Surface : getSlotFromBufferLocked: unknown buffer: 0xb9bc9bc0
04-11 03:31:01.737  2242  3432 W ActivityManager:   Force finishing activity com.aricneto.twistytimer/.activity.MainActivity

Verbal 8- and 12-second warnings during inspection time

In WCA competitions, the competitor does not see how much inspection time they have remaining, and instead only gets a verbal warning after 8 and 12 seconds have passed. I'd appreciate Twisty Timer also providing such verbal warnings, so as to more closely imitate the format of a competition, and so that I do not have to look away from the puzzle to see how much time is remaining.

Category indicator text

There should be text (maybe optional) which will show in which category you are because when I have 2 sometimes I do solve in wrong category. I'm talking about that pencil icon in top right corner where you can make and change categories.

P.S. Not a big problem just minor addition

[FEATURE] MBLD

Multi blindfolded support.
It's should give as many scrambles as you want.

Proper keyboard for adding times

It currently opens a full QWERTY keyboard. I haven't found a way to show a digit keypad but still allow comma, period and colon.

Rolling averages

The graph could also display a rolling average to see overall trends within a session/overall.

Press back button twice to exit

I find quite annoying that when I'm on the timer, times list or graph "page" if I press the back button the app will immediately close. I suggest that when I'm on the times list or on the graph, pressing the back button will take me to the timer "page", and pressing the button twice will close the app.

[BUG] left over inspection +2

Reproduce bug:
*Get +2 on inspection
*Start timer
*Press back to cancel solve
*Do next solve normally
*And you will get +2

Exiting app by pressing back button (BUG)

*From references
*From other tabs (like graph). It would be nice if after pressing back button you will get back to main timer tab

And it would be nice if you needed double back button press to exit app. It could show dialog or pop up "press again to exit"

Best time line

Graph could also display line of best time. Not straight line of current best time but line for every record until it's beaten.

Don't keep the screen on when the timer is not running

the line#8 in fragment_timer.xml causes the screen to keep powering down as the android:keepScreenOn flag is kept true throughout the fragment lifecycle.

The same can be done programatically using getWindow().addFlag(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) when the timer is started and clearing the flag later when the timer is stopped. This keeps the device from going to sleep only when the timer is running.

This behavior is consistent from other time keeping apps (e.g., the default alarm app on android)

Median

I think that would be a nice addition.

Timer/Graph page disappearing

On the hamburguer menu, press "Timer", then change phone orientation or app theme.
The fragment still gets created (onCreate and the rest are called), but the page is blank.

Remember last puzzle

When opening the app the timer starts automatically with the 3x3 while it would be useful if it started with the last puzzle solved.

This should be a setting probably.

Example format for text import correct

The example format shown in the dialog when importing a .txt format is incorrect. The pop-up shows:

"1:32.15"; "R U2"; "2016-03-16T08:16:42"

But it should be:

"4:24.58";"R U2";"2016-11-22T23:52:48.000+01:00"

Importing a file just the first sample line leads to a crashing application. Importing the correct format works without a problem. I found the correct format by exporting some results and opening it with a text editor.

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.