├── .gitattributes ├── .gitignore ├── Library └── library_drag-sort-listview │ ├── .gitignore │ ├── AndroidManifest.xml │ ├── ant.properties │ ├── build.xml │ ├── libs │ └── android-support-v4.jar │ ├── pom.xml │ ├── proguard-project.txt │ ├── project.properties │ ├── res │ └── values │ │ └── dslv_attrs.xml │ └── src │ └── com │ └── mobeta │ └── android │ └── dslv │ ├── DragSortController.java │ ├── DragSortCursorAdapter.java │ ├── DragSortItemView.java │ ├── DragSortItemViewCheckable.java │ ├── DragSortListView.java │ ├── ResourceDragSortCursorAdapter.java │ ├── SimpleDragSortCursorAdapter.java │ └── SimpleFloatViewManager.java ├── README.md └── TomatoTime ├── AndroidManifest.xml ├── gen └── com │ └── time │ └── tomato │ ├── BuildConfig.java │ └── R.java ├── ic_launcher-web.png ├── libs └── android-support-v4.jar ├── proguard-project.txt ├── project.properties ├── res ├── anim │ ├── slide_buttom_in.xml │ ├── slide_buttom_out.xml │ ├── slide_top_in.xml │ └── slide_top_out.xml ├── drawable-hdpi │ ├── button_rotate_bottom_normal.png │ ├── button_rotate_bottom_pressed.png │ ├── button_rotate_icon_normal.png │ ├── button_rotate_icon_pressed.png │ ├── ic_launcher.png │ ├── ic_rotate_add.png │ └── ic_rotate_refresh.png ├── drawable-mdpi │ └── ic_launcher.png ├── drawable-nodpi │ ├── actionbar_shadow.9.png │ ├── card_background.9.png │ ├── drawer_shadow.9.png │ ├── finished_todo_section_bg.9.png │ ├── login_input.9.png │ ├── popup_red.9.png │ ├── segment_radio_grey_left.9.png │ ├── segment_radio_grey_left_press.9.png │ ├── segment_radio_grey_right.9.png │ ├── segment_radio_grey_right_press.9.png │ ├── segment_radio_white_left.9.png │ ├── segment_radio_white_left_press.9.png │ ├── segment_radio_white_right.9.png │ ├── segment_radio_white_right_press.9.png │ └── widget_preview.png ├── drawable-xhdpi │ ├── cir_checkbox_off.png │ ├── cir_checkbox_on.png │ ├── empty_finished_todo.png │ ├── empty_history_view.png │ ├── empty_running_view.png │ ├── hlv_overscroll_glow.png │ ├── ic_action_bar_logo.png │ ├── ic_action_cancel.png │ ├── ic_action_cancel_red.png │ ├── ic_action_delete.png │ ├── ic_action_next_item.png │ ├── ic_action_overflow.png │ ├── ic_action_play.png │ ├── ic_action_play_red.png │ ├── ic_action_previous_item.png │ ├── ic_action_undo.png │ ├── ic_launcher.png │ ├── ic_pulltorefresh_arrow_up.png │ ├── ic_stat_notify_msg.png │ ├── pin_checked.png │ ├── pin_unchecked.png │ ├── progress_bg_pomo.9.png │ ├── progress_primary_pomo.9.png │ └── progress_secondary_pomo.9.png ├── drawable │ ├── background_tab.xml │ ├── button_rotate_bottom.xml │ ├── button_rotate_icon.xml │ ├── cir_checkbox.xml │ ├── history_row_background.xml │ ├── listview_bg.xml │ ├── pin_checkbox.xml │ ├── wheel_bg.xml │ └── wheel_val.xml ├── layout │ ├── act_main.xml │ ├── act_running.xml │ ├── activity_finish_dialog.xml │ ├── activity_finished_todo.xml │ ├── arc_menu.xml │ ├── frm_history.xml │ ├── frm_settings.xml │ ├── frm_statistical.xml │ ├── frm_todolist.xml │ ├── list_row_finished_todolist_item.xml │ ├── list_row_finished_todolist_section.xml │ ├── list_row_history_item.xml │ ├── list_row_history_section.xml │ ├── list_row_running_item.xml │ ├── list_row_swipe_undo.xml │ ├── list_row_todolist_item.xml │ ├── process_actionbar.xml │ ├── ray_menu.xml │ ├── refresh_footer.xml │ ├── view_drawer.xml │ ├── view_fake_listview.xml │ ├── view_pop_add.xml │ └── view_wheel_time.xml ├── menu │ └── main.xml ├── values-sw600dp │ └── dimens.xml ├── values-sw720dp-land │ └── dimens.xml ├── values-v11 │ └── styles.xml ├── values-v14 │ └── styles.xml └── values │ ├── attrs.xml │ ├── colors.xml │ ├── defaults.xml │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml └── src └── com └── time └── tomato ├── FinishedTodoActivity.java ├── MainActivity.java ├── RunningActivity.java ├── adapter ├── TodoListAdapter.java └── TomatoPagerAdapter.java ├── app └── AppApplication.java ├── base ├── BaseActivity.java └── BaseFragment.java ├── db ├── DBHelper.java └── DBUtil.java ├── entity └── TomatoEntity.java ├── fragment ├── HistoryFragment.java ├── SettingsFragment.java ├── StatisticalFragment.java └── TodoListFragment.java ├── service ├── AutoCountDownTimer.java └── AutoService.java ├── tools ├── BaseTools.java ├── Constants.java ├── Settings.java ├── TimeTools.java └── TomatoNotification.java └── view ├── BeneathProcessBar.java ├── DragListView.java ├── ProcessActionBar.java ├── PullToRefreshView.java ├── rotatemenu ├── ArcLayout.java ├── ArcMenu.java ├── RayLayout.java ├── RayMenu.java └── RotateAndTranslateAnimation.java ├── smoothprogressbar ├── ColorsShape.java ├── SmoothProgressBar.java ├── SmoothProgressBarUtils.java └── SmoothProgressDrawable.java └── wheel ├── ArrayWheelAdapter.java ├── NumericWheelAdapter.java ├── OnWheelChangedListener.java ├── OnWheelScrollListener.java ├── WheelAdapter.java └── WheelView.java /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ################# 2 | ## Eclipse 3 | ################# 4 | 5 | *.pydevproject 6 | .project 7 | .metadata 8 | bin/ 9 | tmp/ 10 | *.tmp 11 | *.bak 12 | *.swp 13 | *~.nib 14 | local.properties 15 | .classpath 16 | .settings/ 17 | .loadpath 18 | 19 | # External tool builders 20 | .externalToolBuilders/ 21 | 22 | # Locally stored "Eclipse launch configurations" 23 | *.launch 24 | 25 | # CDT-specific 26 | .cproject 27 | 28 | # PDT-specific 29 | .buildpath 30 | 31 | 32 | ################# 33 | ## Visual Studio 34 | ################# 35 | 36 | ## Ignore Visual Studio temporary files, build results, and 37 | ## files generated by popular Visual Studio add-ons. 38 | 39 | # User-specific files 40 | *.suo 41 | *.user 42 | *.sln.docstates 43 | 44 | # Build results 45 | 46 | [Dd]ebug/ 47 | [Rr]elease/ 48 | x64/ 49 | build/ 50 | [Bb]in/ 51 | [Oo]bj/ 52 | 53 | # MSTest test Results 54 | [Tt]est[Rr]esult*/ 55 | [Bb]uild[Ll]og.* 56 | 57 | *_i.c 58 | *_p.c 59 | *.ilk 60 | *.meta 61 | *.obj 62 | *.pch 63 | *.pdb 64 | *.pgc 65 | *.pgd 66 | *.rsp 67 | *.sbr 68 | *.tlb 69 | *.tli 70 | *.tlh 71 | *.tmp 72 | *.tmp_proj 73 | *.log 74 | *.vspscc 75 | *.vssscc 76 | .builds 77 | *.pidb 78 | *.log 79 | *.scc 80 | 81 | # Visual C++ cache files 82 | ipch/ 83 | *.aps 84 | *.ncb 85 | *.opensdf 86 | *.sdf 87 | *.cachefile 88 | 89 | # Visual Studio profiler 90 | *.psess 91 | *.vsp 92 | *.vspx 93 | 94 | # Guidance Automation Toolkit 95 | *.gpState 96 | 97 | # ReSharper is a .NET coding add-in 98 | _ReSharper*/ 99 | *.[Rr]e[Ss]harper 100 | 101 | # TeamCity is a build add-in 102 | _TeamCity* 103 | 104 | # DotCover is a Code Coverage Tool 105 | *.dotCover 106 | 107 | # NCrunch 108 | *.ncrunch* 109 | .*crunch*.local.xml 110 | 111 | # Installshield output folder 112 | [Ee]xpress/ 113 | 114 | # DocProject is a documentation generator add-in 115 | DocProject/buildhelp/ 116 | DocProject/Help/*.HxT 117 | DocProject/Help/*.HxC 118 | DocProject/Help/*.hhc 119 | DocProject/Help/*.hhk 120 | DocProject/Help/*.hhp 121 | DocProject/Help/Html2 122 | DocProject/Help/html 123 | 124 | # Click-Once directory 125 | publish/ 126 | 127 | # Publish Web Output 128 | *.Publish.xml 129 | *.pubxml 130 | 131 | # NuGet Packages Directory 132 | ## TODO: If you have NuGet Package Restore enabled, uncomment the next line 133 | #packages/ 134 | 135 | # Windows Azure Build Output 136 | csx 137 | *.build.csdef 138 | 139 | # Windows Store app package directory 140 | AppPackages/ 141 | 142 | # Others 143 | sql/ 144 | *.Cache 145 | ClientBin/ 146 | [Ss]tyle[Cc]op.* 147 | ~$* 148 | *~ 149 | *.dbmdl 150 | *.[Pp]ublish.xml 151 | *.pfx 152 | *.publishsettings 153 | 154 | # RIA/Silverlight projects 155 | Generated_Code/ 156 | 157 | # Backup & report files from converting an old project file to a newer 158 | # Visual Studio version. Backup files are not needed, because we have git ;-) 159 | _UpgradeReport_Files/ 160 | Backup*/ 161 | UpgradeLog*.XML 162 | UpgradeLog*.htm 163 | 164 | # SQL Server files 165 | App_Data/*.mdf 166 | App_Data/*.ldf 167 | 168 | ############# 169 | ## Windows detritus 170 | ############# 171 | 172 | # Windows image file caches 173 | Thumbs.db 174 | ehthumbs.db 175 | 176 | # Folder config file 177 | Desktop.ini 178 | 179 | # Recycle Bin used on file shares 180 | $RECYCLE.BIN/ 181 | 182 | # Mac crap 183 | .DS_Store 184 | 185 | 186 | ############# 187 | ## Python 188 | ############# 189 | 190 | *.py[co] 191 | 192 | # Packages 193 | *.egg 194 | *.egg-info 195 | dist/ 196 | build/ 197 | eggs/ 198 | parts/ 199 | var/ 200 | sdist/ 201 | develop-eggs/ 202 | .installed.cfg 203 | 204 | # Installer logs 205 | pip-log.txt 206 | 207 | # Unit test / coverage reports 208 | .coverage 209 | .tox 210 | 211 | #Translations 212 | *.mo 213 | 214 | #Mr Developer 215 | .mr.developer.cfg 216 | -------------------------------------------------------------------------------- /Library/library_drag-sort-listview/.gitignore: -------------------------------------------------------------------------------- 1 | # built application files 2 | *.apk 3 | *.ap_ 4 | 5 | # files for the dex VM 6 | *.dex 7 | 8 | # Java class files 9 | *.class 10 | 11 | # generated files 12 | bin/ 13 | gen/ 14 | target/ 15 | 16 | # Local configuration file (sdk path, etc) 17 | local.properties 18 | .gitattributes 19 | 20 | # Eclipse project files 21 | .classpath 22 | .project 23 | -------------------------------------------------------------------------------- /Library/library_drag-sort-listview/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 8 | 9 | -------------------------------------------------------------------------------- /Library/library_drag-sort-listview/ant.properties: -------------------------------------------------------------------------------- 1 | # This file is used to override default values used by the Ant build system. 2 | # 3 | # This file must be checked into Version Control Systems, as it is 4 | # integral to the build system of your project. 5 | 6 | # This file is only used by the Ant script. 7 | 8 | # You can use this to override default values such as 9 | # 'source.dir' for the location of your java source folder and 10 | # 'out.dir' for the location of your output folder. 11 | 12 | # You can also use it define how the release builds are signed by declaring 13 | # the following properties: 14 | # 'key.store' for the location of your keystore and 15 | # 'key.alias' for the name of the key to use. 16 | # The password will be asked during the build when you use the 'release' target. 17 | 18 | -------------------------------------------------------------------------------- /Library/library_drag-sort-listview/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 29 | 30 | 31 | 40 | 41 | 42 | 43 | 47 | 48 | 60 | 61 | 62 | 80 | 81 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /Library/library_drag-sort-listview/libs/android-support-v4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/Library/library_drag-sort-listview/libs/android-support-v4.jar -------------------------------------------------------------------------------- /Library/library_drag-sort-listview/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 4.0.0 19 | 20 | com.mobeta.android.dslv 21 | drag-sort-listview 22 | apklib 23 | 0.6.1-SNAPSHOT 24 | 25 | 26 | com.mobeta.android.dslv 27 | parent 28 | 0.6.1-SNAPSHOT 29 | ../pom.xml 30 | 31 | 32 | 33 | 34 | com.google.android 35 | android 36 | provided 37 | 38 | 39 | com.google.android 40 | support-v4 41 | true 42 | 43 | 44 | 45 | 46 | src 47 | test 48 | 49 | 50 | 51 | com.jayway.maven.plugins.android.generation2 52 | android-maven-plugin 53 | 54 | 55 | org.apache.maven.plugins 56 | maven-eclipse-plugin 57 | 58 | 59 | org.apache.maven.plugins 60 | maven-javadoc-plugin 61 | 2.7 62 | 63 | 64 | com.google.doclava 65 | doclava 66 | 1.0.5 67 | 68 | com.google.doclava.Doclava 69 | 72 | ${sun.boot.class.path} 73 | 74 | -quiet 75 | -federate Android http://d.android.com/reference 76 | -federationxml Android http://doclava.googlecode.com/svn/static/api/android-10.xml 77 | -hdf project.name "${project.name}" 78 | -d ${project.build.directory}/apidocs 79 | 80 | false 81 | 84 | -J-Xmx1024m 85 | 86 | 87 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /Library/library_drag-sort-listview/proguard-project.txt: -------------------------------------------------------------------------------- 1 | # To enable ProGuard in your project, edit project.properties 2 | # to define the proguard.config property as described in that file. 3 | # 4 | # Add project specific ProGuard rules here. 5 | # By default, the flags in this file are appended to flags specified 6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt 7 | # You can edit the include path and order by changing the ProGuard 8 | # include property in project.properties. 9 | # 10 | # For more details, see 11 | # http://developer.android.com/guide/developing/tools/proguard.html 12 | 13 | # Add any project specific keep options here: 14 | 15 | # If your project uses WebView with JS, uncomment the following 16 | # and specify the fully qualified class name to the JavaScript interface 17 | # class: 18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 19 | # public *; 20 | #} 21 | -------------------------------------------------------------------------------- /Library/library_drag-sort-listview/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | android.library=true 14 | # Project target. 15 | target=android-7 16 | -------------------------------------------------------------------------------- /Library/library_drag-sort-listview/res/values/dslv_attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /Library/library_drag-sort-listview/src/com/mobeta/android/dslv/DragSortCursorAdapter.java: -------------------------------------------------------------------------------- 1 | package com.mobeta.android.dslv; 2 | 3 | import java.util.ArrayList; 4 | 5 | import android.content.Context; 6 | import android.database.Cursor; 7 | import android.util.SparseIntArray; 8 | import android.view.View; 9 | import android.view.ViewGroup; 10 | import android.support.v4.widget.CursorAdapter; 11 | 12 | 13 | /** 14 | * A subclass of {@link android.widget.CursorAdapter} that provides 15 | * reordering of the elements in the Cursor based on completed 16 | * drag-sort operations. The reordering is a simple mapping of 17 | * list positions into Cursor positions (the Cursor is unchanged). 18 | * To persist changes made by drag-sorts, one can retrieve the 19 | * mapping with the {@link #getCursorPositions()} method, which 20 | * returns the reordered list of Cursor positions. 21 | * 22 | * An instance of this class is passed 23 | * to {@link DragSortListView#setAdapter(ListAdapter)} and, since 24 | * this class implements the {@link DragSortListView.DragSortListener} 25 | * interface, it is automatically set as the DragSortListener for 26 | * the DragSortListView instance. 27 | */ 28 | public abstract class DragSortCursorAdapter extends CursorAdapter implements DragSortListView.DragSortListener { 29 | 30 | public static final int REMOVED = -1; 31 | 32 | /** 33 | * Key is ListView position, value is Cursor position 34 | */ 35 | private SparseIntArray mListMapping = new SparseIntArray(); 36 | 37 | private ArrayList mRemovedCursorPositions = new ArrayList(); 38 | 39 | public DragSortCursorAdapter(Context context, Cursor c) { 40 | super(context, c); 41 | } 42 | 43 | public DragSortCursorAdapter(Context context, Cursor c, boolean autoRequery) { 44 | super(context, c, autoRequery); 45 | } 46 | 47 | public DragSortCursorAdapter(Context context, Cursor c, int flags) { 48 | super(context, c, flags); 49 | } 50 | 51 | /** 52 | * Swaps Cursor and clears list-Cursor mapping. 53 | * 54 | * @see android.widget.CursorAdapter#swapCursor(android.database.Cursor) 55 | */ 56 | @Override 57 | public Cursor swapCursor(Cursor newCursor) { 58 | Cursor old = super.swapCursor(newCursor); 59 | resetMappings(); 60 | return old; 61 | } 62 | 63 | /** 64 | * Changes Cursor and clears list-Cursor mapping. 65 | * 66 | * @see android.widget.CursorAdapter#changeCursor(android.database.Cursor) 67 | */ 68 | @Override 69 | public void changeCursor(Cursor cursor) { 70 | super.changeCursor(cursor); 71 | resetMappings(); 72 | } 73 | 74 | /** 75 | * Resets list-cursor mapping. 76 | */ 77 | public void reset() { 78 | resetMappings(); 79 | notifyDataSetChanged(); 80 | } 81 | 82 | private void resetMappings() { 83 | mListMapping.clear(); 84 | mRemovedCursorPositions.clear(); 85 | } 86 | 87 | @Override 88 | public Object getItem(int position) { 89 | return super.getItem(mListMapping.get(position, position)); 90 | } 91 | 92 | @Override 93 | public long getItemId(int position) { 94 | return super.getItemId(mListMapping.get(position, position)); 95 | } 96 | 97 | @Override 98 | public View getDropDownView(int position, View convertView, ViewGroup parent) { 99 | return super.getDropDownView(mListMapping.get(position, position), convertView, parent); 100 | } 101 | 102 | @Override 103 | public View getView(int position, View convertView, ViewGroup parent) { 104 | return super.getView(mListMapping.get(position, position), convertView, parent); 105 | } 106 | 107 | /** 108 | * On drop, this updates the mapping between Cursor positions 109 | * and ListView positions. The Cursor is unchanged. Retrieve 110 | * the current mapping with {@link getCursorPositions()}. 111 | * 112 | * @see DragSortListView.DropListener#drop(int, int) 113 | */ 114 | @Override 115 | public void drop(int from, int to) { 116 | if (from != to) { 117 | int cursorFrom = mListMapping.get(from, from); 118 | 119 | if (from > to) { 120 | for (int i = from; i > to; --i) { 121 | mListMapping.put(i, mListMapping.get(i - 1, i - 1)); 122 | } 123 | } else { 124 | for (int i = from; i < to; ++i) { 125 | mListMapping.put(i, mListMapping.get(i + 1, i + 1)); 126 | } 127 | } 128 | mListMapping.put(to, cursorFrom); 129 | 130 | cleanMapping(); 131 | notifyDataSetChanged(); 132 | } 133 | } 134 | 135 | /** 136 | * On remove, this updates the mapping between Cursor positions 137 | * and ListView positions. The Cursor is unchanged. Retrieve 138 | * the current mapping with {@link getCursorPositions()}. 139 | * 140 | * @see DragSortListView.RemoveListener#remove(int) 141 | */ 142 | @Override 143 | public void remove(int which) { 144 | int cursorPos = mListMapping.get(which, which); 145 | if (!mRemovedCursorPositions.contains(cursorPos)) { 146 | mRemovedCursorPositions.add(cursorPos); 147 | } 148 | 149 | int newCount = getCount(); 150 | for (int i = which; i < newCount; ++i) { 151 | mListMapping.put(i, mListMapping.get(i + 1, i + 1)); 152 | } 153 | 154 | mListMapping.delete(newCount); 155 | 156 | cleanMapping(); 157 | notifyDataSetChanged(); 158 | } 159 | 160 | /** 161 | * Does nothing. Just completes DragSortListener interface. 162 | */ 163 | @Override 164 | public void drag(int from, int to) { 165 | // do nothing 166 | } 167 | 168 | /** 169 | * Remove unnecessary mappings from sparse array. 170 | */ 171 | private void cleanMapping() { 172 | ArrayList toRemove = new ArrayList(); 173 | 174 | int size = mListMapping.size(); 175 | for (int i = 0; i < size; ++i) { 176 | if (mListMapping.keyAt(i) == mListMapping.valueAt(i)) { 177 | toRemove.add(mListMapping.keyAt(i)); 178 | } 179 | } 180 | 181 | size = toRemove.size(); 182 | for (int i = 0; i < size; ++i) { 183 | mListMapping.delete(toRemove.get(i)); 184 | } 185 | } 186 | 187 | @Override 188 | public int getCount() { 189 | return super.getCount() - mRemovedCursorPositions.size(); 190 | } 191 | 192 | /** 193 | * Get the Cursor position mapped to by the provided list position 194 | * (given all previously handled drag-sort 195 | * operations). 196 | * 197 | * @param position List position 198 | * 199 | * @return The mapped-to Cursor position 200 | */ 201 | public int getCursorPosition(int position) { 202 | return mListMapping.get(position, position); 203 | } 204 | 205 | /** 206 | * Get the current order of Cursor positions presented by the 207 | * list. 208 | */ 209 | public ArrayList getCursorPositions() { 210 | ArrayList result = new ArrayList(); 211 | 212 | for (int i = 0; i < getCount(); ++i) { 213 | result.add(mListMapping.get(i, i)); 214 | } 215 | 216 | return result; 217 | } 218 | 219 | /** 220 | * Get the list position mapped to by the provided Cursor position. 221 | * If the provided Cursor position has been removed by a drag-sort, 222 | * this returns {@link #REMOVED}. 223 | * 224 | * @param cursorPosition A Cursor position 225 | * @return The mapped-to list position or REMOVED 226 | */ 227 | public int getListPosition(int cursorPosition) { 228 | if (mRemovedCursorPositions.contains(cursorPosition)) { 229 | return REMOVED; 230 | } 231 | 232 | int index = mListMapping.indexOfValue(cursorPosition); 233 | if (index < 0) { 234 | return cursorPosition; 235 | } else { 236 | return mListMapping.keyAt(index); 237 | } 238 | } 239 | 240 | 241 | } 242 | -------------------------------------------------------------------------------- /Library/library_drag-sort-listview/src/com/mobeta/android/dslv/DragSortItemView.java: -------------------------------------------------------------------------------- 1 | package com.mobeta.android.dslv; 2 | 3 | import android.content.Context; 4 | import android.view.Gravity; 5 | import android.view.View; 6 | import android.view.View.MeasureSpec; 7 | import android.view.ViewGroup; 8 | import android.widget.AbsListView; 9 | import android.util.Log; 10 | 11 | /** 12 | * Lightweight ViewGroup that wraps list items obtained from user's 13 | * ListAdapter. ItemView expects a single child that has a definite 14 | * height (i.e. the child's layout height is not MATCH_PARENT). 15 | * The width of 16 | * ItemView will always match the width of its child (that is, 17 | * the width MeasureSpec given to ItemView is passed directly 18 | * to the child, and the ItemView measured width is set to the 19 | * child's measured width). The height of ItemView can be anything; 20 | * the 21 | * 22 | * 23 | * The purpose of this class is to optimize slide 24 | * shuffle animations. 25 | */ 26 | public class DragSortItemView extends ViewGroup { 27 | 28 | private int mGravity = Gravity.TOP; 29 | 30 | public DragSortItemView(Context context) { 31 | super(context); 32 | 33 | // always init with standard ListView layout params 34 | setLayoutParams(new AbsListView.LayoutParams( 35 | ViewGroup.LayoutParams.FILL_PARENT, 36 | ViewGroup.LayoutParams.WRAP_CONTENT)); 37 | 38 | //setClipChildren(true); 39 | } 40 | 41 | public void setGravity(int gravity) { 42 | mGravity = gravity; 43 | } 44 | 45 | public int getGravity() { 46 | return mGravity; 47 | } 48 | 49 | @Override 50 | protected void onLayout(boolean changed, int left, int top, int right, int bottom) { 51 | final View child = getChildAt(0); 52 | 53 | if (child == null) { 54 | return; 55 | } 56 | 57 | if (mGravity == Gravity.TOP) { 58 | child.layout(0, 0, getMeasuredWidth(), child.getMeasuredHeight()); 59 | } else { 60 | child.layout(0, getMeasuredHeight() - child.getMeasuredHeight(), getMeasuredWidth(), getMeasuredHeight()); 61 | } 62 | } 63 | 64 | /** 65 | * 66 | */ 67 | @Override 68 | protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 69 | 70 | int height = MeasureSpec.getSize(heightMeasureSpec); 71 | int width = MeasureSpec.getSize(widthMeasureSpec); 72 | 73 | int heightMode = MeasureSpec.getMode(heightMeasureSpec); 74 | 75 | final View child = getChildAt(0); 76 | if (child == null) { 77 | setMeasuredDimension(0, width); 78 | return; 79 | } 80 | 81 | if (child.isLayoutRequested()) { 82 | // Always let child be as tall as it wants. 83 | measureChild(child, widthMeasureSpec, 84 | MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); 85 | } 86 | 87 | if (heightMode == MeasureSpec.UNSPECIFIED) { 88 | ViewGroup.LayoutParams lp = getLayoutParams(); 89 | 90 | if (lp.height > 0) { 91 | height = lp.height; 92 | } else { 93 | height = child.getMeasuredHeight(); 94 | } 95 | } 96 | 97 | setMeasuredDimension(width, height); 98 | } 99 | 100 | } 101 | -------------------------------------------------------------------------------- /Library/library_drag-sort-listview/src/com/mobeta/android/dslv/DragSortItemViewCheckable.java: -------------------------------------------------------------------------------- 1 | package com.mobeta.android.dslv; 2 | 3 | import android.content.Context; 4 | import android.view.Gravity; 5 | import android.view.View; 6 | import android.view.View.MeasureSpec; 7 | import android.view.ViewGroup; 8 | import android.widget.AbsListView; 9 | import android.widget.Checkable; 10 | import android.util.Log; 11 | 12 | /** 13 | * Lightweight ViewGroup that wraps list items obtained from user's 14 | * ListAdapter. ItemView expects a single child that has a definite 15 | * height (i.e. the child's layout height is not MATCH_PARENT). 16 | * The width of 17 | * ItemView will always match the width of its child (that is, 18 | * the width MeasureSpec given to ItemView is passed directly 19 | * to the child, and the ItemView measured width is set to the 20 | * child's measured width). The height of ItemView can be anything; 21 | * the 22 | * 23 | * 24 | * The purpose of this class is to optimize slide 25 | * shuffle animations. 26 | */ 27 | public class DragSortItemViewCheckable extends DragSortItemView implements Checkable { 28 | 29 | public DragSortItemViewCheckable(Context context) { 30 | super(context); 31 | } 32 | 33 | @Override 34 | public boolean isChecked() { 35 | View child = getChildAt(0); 36 | if (child instanceof Checkable) 37 | return ((Checkable) child).isChecked(); 38 | else 39 | return false; 40 | } 41 | 42 | @Override 43 | public void setChecked(boolean checked) { 44 | View child = getChildAt(0); 45 | if (child instanceof Checkable) 46 | ((Checkable) child).setChecked(checked); 47 | } 48 | 49 | @Override 50 | public void toggle() { 51 | View child = getChildAt(0); 52 | if (child instanceof Checkable) 53 | ((Checkable) child).toggle(); 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /Library/library_drag-sort-listview/src/com/mobeta/android/dslv/ResourceDragSortCursorAdapter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.mobeta.android.dslv; 18 | 19 | import android.content.Context; 20 | import android.database.Cursor; 21 | import android.view.View; 22 | import android.view.ViewGroup; 23 | import android.view.LayoutInflater; 24 | 25 | // taken from v4 rev. 10 ResourceCursorAdapter.java 26 | 27 | /** 28 | * Static library support version of the framework's {@link android.widget.ResourceCursorAdapter}. 29 | * Used to write apps that run on platforms prior to Android 3.0. When running 30 | * on Android 3.0 or above, this implementation is still used; it does not try 31 | * to switch to the framework's implementation. See the framework SDK 32 | * documentation for a class overview. 33 | */ 34 | public abstract class ResourceDragSortCursorAdapter extends DragSortCursorAdapter { 35 | private int mLayout; 36 | 37 | private int mDropDownLayout; 38 | 39 | private LayoutInflater mInflater; 40 | 41 | /** 42 | * Constructor the enables auto-requery. 43 | * 44 | * @deprecated This option is discouraged, as it results in Cursor queries 45 | * being performed on the application's UI thread and thus can cause poor 46 | * responsiveness or even Application Not Responding errors. As an alternative, 47 | * use {@link android.app.LoaderManager} with a {@link android.content.CursorLoader}. 48 | * 49 | * @param context The context where the ListView associated with this adapter is running 50 | * @param layout resource identifier of a layout file that defines the views 51 | * for this list item. Unless you override them later, this will 52 | * define both the item views and the drop down views. 53 | */ 54 | @Deprecated 55 | public ResourceDragSortCursorAdapter(Context context, int layout, Cursor c) { 56 | super(context, c); 57 | mLayout = mDropDownLayout = layout; 58 | mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 59 | } 60 | 61 | /** 62 | * Constructor with default behavior as per 63 | * {@link CursorAdapter#CursorAdapter(Context, Cursor, boolean)}; it is recommended 64 | * you not use this, but instead {@link #ResourceCursorAdapter(Context, int, Cursor, int)}. 65 | * When using this constructor, {@link #FLAG_REGISTER_CONTENT_OBSERVER} 66 | * will always be set. 67 | * 68 | * @param context The context where the ListView associated with this adapter is running 69 | * @param layout resource identifier of a layout file that defines the views 70 | * for this list item. Unless you override them later, this will 71 | * define both the item views and the drop down views. 72 | * @param c The cursor from which to get the data. 73 | * @param autoRequery If true the adapter will call requery() on the 74 | * cursor whenever it changes so the most recent 75 | * data is always displayed. Using true here is discouraged. 76 | */ 77 | public ResourceDragSortCursorAdapter(Context context, int layout, Cursor c, boolean autoRequery) { 78 | super(context, c, autoRequery); 79 | mLayout = mDropDownLayout = layout; 80 | mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 81 | } 82 | 83 | /** 84 | * Standard constructor. 85 | * 86 | * @param context The context where the ListView associated with this adapter is running 87 | * @param layout Resource identifier of a layout file that defines the views 88 | * for this list item. Unless you override them later, this will 89 | * define both the item views and the drop down views. 90 | * @param c The cursor from which to get the data. 91 | * @param flags Flags used to determine the behavior of the adapter, 92 | * as per {@link CursorAdapter#CursorAdapter(Context, Cursor, int)}. 93 | */ 94 | public ResourceDragSortCursorAdapter(Context context, int layout, Cursor c, int flags) { 95 | super(context, c, flags); 96 | mLayout = mDropDownLayout = layout; 97 | mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 98 | } 99 | 100 | /** 101 | * Inflates view(s) from the specified XML file. 102 | * 103 | * @see android.widget.CursorAdapter#newView(android.content.Context, 104 | * android.database.Cursor, ViewGroup) 105 | */ 106 | @Override 107 | public View newView(Context context, Cursor cursor, ViewGroup parent) { 108 | return mInflater.inflate(mLayout, parent, false); 109 | } 110 | 111 | @Override 112 | public View newDropDownView(Context context, Cursor cursor, ViewGroup parent) { 113 | return mInflater.inflate(mDropDownLayout, parent, false); 114 | } 115 | 116 | /** 117 | *

Sets the layout resource of the item views.

118 | * 119 | * @param layout the layout resources used to create item views 120 | */ 121 | public void setViewResource(int layout) { 122 | mLayout = layout; 123 | } 124 | 125 | /** 126 | *

Sets the layout resource of the drop down views.

127 | * 128 | * @param dropDownLayout the layout resources used to create drop down views 129 | */ 130 | public void setDropDownViewResource(int dropDownLayout) { 131 | mDropDownLayout = dropDownLayout; 132 | } 133 | } 134 | -------------------------------------------------------------------------------- /Library/library_drag-sort-listview/src/com/mobeta/android/dslv/SimpleFloatViewManager.java: -------------------------------------------------------------------------------- 1 | package com.mobeta.android.dslv; 2 | 3 | import android.graphics.Bitmap; 4 | import android.graphics.Point; 5 | import android.graphics.Color; 6 | import android.widget.ListView; 7 | import android.widget.ImageView; 8 | import android.view.View; 9 | import android.view.ViewGroup; 10 | import android.util.Log; 11 | 12 | /** 13 | * Simple implementation of the FloatViewManager class. Uses list 14 | * items as they appear in the ListView to create the floating View. 15 | */ 16 | public class SimpleFloatViewManager implements DragSortListView.FloatViewManager { 17 | 18 | private Bitmap mFloatBitmap; 19 | 20 | private ImageView mImageView; 21 | 22 | private int mFloatBGColor = Color.BLACK; 23 | 24 | private ListView mListView; 25 | 26 | public SimpleFloatViewManager(ListView lv) { 27 | mListView = lv; 28 | } 29 | 30 | public void setBackgroundColor(int color) { 31 | mFloatBGColor = color; 32 | } 33 | 34 | /** 35 | * This simple implementation creates a Bitmap copy of the 36 | * list item currently shown at ListView position. 37 | */ 38 | @Override 39 | public View onCreateFloatView(int position) { 40 | // Guaranteed that this will not be null? I think so. Nope, got 41 | // a NullPointerException once... 42 | View v = mListView.getChildAt(position + mListView.getHeaderViewsCount() - mListView.getFirstVisiblePosition()); 43 | 44 | if (v == null) { 45 | return null; 46 | } 47 | 48 | v.setPressed(false); 49 | 50 | // Create a copy of the drawing cache so that it does not get 51 | // recycled by the framework when the list tries to clean up memory 52 | //v.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH); 53 | v.setDrawingCacheEnabled(true); 54 | mFloatBitmap = Bitmap.createBitmap(v.getDrawingCache()); 55 | v.setDrawingCacheEnabled(false); 56 | 57 | if (mImageView == null) { 58 | mImageView = new ImageView(mListView.getContext()); 59 | } 60 | mImageView.setBackgroundColor(mFloatBGColor); 61 | mImageView.setPadding(0, 0, 0, 0); 62 | mImageView.setImageBitmap(mFloatBitmap); 63 | mImageView.setLayoutParams(new ViewGroup.LayoutParams(v.getWidth(), v.getHeight())); 64 | 65 | return mImageView; 66 | } 67 | 68 | /** 69 | * This does nothing 70 | */ 71 | @Override 72 | public void onDragFloatView(View floatView, Point position, Point touch) { 73 | // do nothing 74 | } 75 | 76 | /** 77 | * Removes the Bitmap from the ImageView created in 78 | * onCreateFloatView() and tells the system to recycle it. 79 | */ 80 | @Override 81 | public void onDestroyFloatView(View floatView) { 82 | ((ImageView) floatView).setImageDrawable(null); 83 | 84 | mFloatBitmap.recycle(); 85 | mFloatBitmap = null; 86 | } 87 | 88 | } 89 | 90 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 番茄学习法 2 | by Ra 3 | -------------------------------------------------------------------------------- /TomatoTime/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | 17 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /TomatoTime/gen/com/time/tomato/BuildConfig.java: -------------------------------------------------------------------------------- 1 | /** Automatically generated file. DO NOT MODIFY */ 2 | package com.time.tomato; 3 | 4 | public final class BuildConfig { 5 | public final static boolean DEBUG = true; 6 | } -------------------------------------------------------------------------------- /TomatoTime/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/ic_launcher-web.png -------------------------------------------------------------------------------- /TomatoTime/libs/android-support-v4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/libs/android-support-v4.jar -------------------------------------------------------------------------------- /TomatoTime/proguard-project.txt: -------------------------------------------------------------------------------- 1 | # To enable ProGuard in your project, edit project.properties 2 | # to define the proguard.config property as described in that file. 3 | # 4 | # Add project specific ProGuard rules here. 5 | # By default, the flags in this file are appended to flags specified 6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt 7 | # You can edit the include path and order by changing the ProGuard 8 | # include property in project.properties. 9 | # 10 | # For more details, see 11 | # http://developer.android.com/guide/developing/tools/proguard.html 12 | 13 | # Add any project specific keep options here: 14 | 15 | # If your project uses WebView with JS, uncomment the following 16 | # and specify the fully qualified class name to the JavaScript interface 17 | # class: 18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 19 | # public *; 20 | #} 21 | -------------------------------------------------------------------------------- /TomatoTime/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-17 15 | -------------------------------------------------------------------------------- /TomatoTime/res/anim/slide_buttom_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /TomatoTime/res/anim/slide_buttom_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /TomatoTime/res/anim/slide_top_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /TomatoTime/res/anim/slide_top_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /TomatoTime/res/drawable-hdpi/button_rotate_bottom_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-hdpi/button_rotate_bottom_normal.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-hdpi/button_rotate_bottom_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-hdpi/button_rotate_bottom_pressed.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-hdpi/button_rotate_icon_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-hdpi/button_rotate_icon_normal.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-hdpi/button_rotate_icon_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-hdpi/button_rotate_icon_pressed.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-hdpi/ic_rotate_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-hdpi/ic_rotate_add.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-hdpi/ic_rotate_refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-hdpi/ic_rotate_refresh.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-nodpi/actionbar_shadow.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-nodpi/actionbar_shadow.9.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-nodpi/card_background.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-nodpi/card_background.9.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-nodpi/drawer_shadow.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-nodpi/drawer_shadow.9.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-nodpi/finished_todo_section_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-nodpi/finished_todo_section_bg.9.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-nodpi/login_input.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-nodpi/login_input.9.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-nodpi/popup_red.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-nodpi/popup_red.9.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-nodpi/segment_radio_grey_left.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-nodpi/segment_radio_grey_left.9.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-nodpi/segment_radio_grey_left_press.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-nodpi/segment_radio_grey_left_press.9.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-nodpi/segment_radio_grey_right.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-nodpi/segment_radio_grey_right.9.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-nodpi/segment_radio_grey_right_press.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-nodpi/segment_radio_grey_right_press.9.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-nodpi/segment_radio_white_left.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-nodpi/segment_radio_white_left.9.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-nodpi/segment_radio_white_left_press.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-nodpi/segment_radio_white_left_press.9.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-nodpi/segment_radio_white_right.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-nodpi/segment_radio_white_right.9.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-nodpi/segment_radio_white_right_press.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-nodpi/segment_radio_white_right_press.9.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-nodpi/widget_preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-nodpi/widget_preview.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-xhdpi/cir_checkbox_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-xhdpi/cir_checkbox_off.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-xhdpi/cir_checkbox_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-xhdpi/cir_checkbox_on.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-xhdpi/empty_finished_todo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-xhdpi/empty_finished_todo.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-xhdpi/empty_history_view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-xhdpi/empty_history_view.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-xhdpi/empty_running_view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-xhdpi/empty_running_view.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-xhdpi/hlv_overscroll_glow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-xhdpi/hlv_overscroll_glow.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-xhdpi/ic_action_bar_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-xhdpi/ic_action_bar_logo.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-xhdpi/ic_action_cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-xhdpi/ic_action_cancel.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-xhdpi/ic_action_cancel_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-xhdpi/ic_action_cancel_red.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-xhdpi/ic_action_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-xhdpi/ic_action_delete.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-xhdpi/ic_action_next_item.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-xhdpi/ic_action_next_item.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-xhdpi/ic_action_overflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-xhdpi/ic_action_overflow.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-xhdpi/ic_action_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-xhdpi/ic_action_play.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-xhdpi/ic_action_play_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-xhdpi/ic_action_play_red.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-xhdpi/ic_action_previous_item.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-xhdpi/ic_action_previous_item.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-xhdpi/ic_action_undo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-xhdpi/ic_action_undo.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-xhdpi/ic_pulltorefresh_arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-xhdpi/ic_pulltorefresh_arrow_up.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-xhdpi/ic_stat_notify_msg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-xhdpi/ic_stat_notify_msg.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-xhdpi/pin_checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-xhdpi/pin_checked.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-xhdpi/pin_unchecked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-xhdpi/pin_unchecked.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-xhdpi/progress_bg_pomo.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-xhdpi/progress_bg_pomo.9.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-xhdpi/progress_primary_pomo.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-xhdpi/progress_primary_pomo.9.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable-xhdpi/progress_secondary_pomo.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TomatoTime/6204aafdf0c1a260057e690f09d97447a4ee9ba0/TomatoTime/res/drawable-xhdpi/progress_secondary_pomo.9.png -------------------------------------------------------------------------------- /TomatoTime/res/drawable/background_tab.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /TomatoTime/res/drawable/button_rotate_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /TomatoTime/res/drawable/button_rotate_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /TomatoTime/res/drawable/cir_checkbox.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TomatoTime/res/drawable/history_row_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /TomatoTime/res/drawable/listview_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /TomatoTime/res/drawable/pin_checkbox.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TomatoTime/res/drawable/wheel_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /TomatoTime/res/drawable/wheel_val.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 20 | 21 | 22 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /TomatoTime/res/layout/act_main.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 11 | 12 | 18 | 19 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /TomatoTime/res/layout/act_running.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | 28 | 29 | 36 | 37 | 44 | 45 | 46 | 62 | 63 | 72 | 73 | 80 | 81 | 86 | 87 | 88 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 117 | 118 | 125 | 126 | 133 | 134 | 141 | 142 | 143 | 144 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 170 | 171 | 178 | 179 | 187 | 188 | 195 | 196 | 197 | 198 | -------------------------------------------------------------------------------- /TomatoTime/res/layout/activity_finish_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 14 | 23 | 24 | 29 | 30 | 40 | 41 | 45 | 46 | 50 | 51 |