├── .gitignore ├── .idea ├── .name ├── compiler.xml ├── copyright │ └── profiles_settings.xml ├── dictionaries │ └── adhikari.xml ├── encodings.xml ├── gradle.xml ├── libraries │ ├── appcompat_v7_20_0_0.xml │ ├── sugar_1_3.xml │ ├── support_annotations_20_0_0.xml │ └── support_v4_20_0_0.xml ├── misc.xml ├── modules.xml ├── scopes │ └── scope_settings.xml └── vcs.xml ├── README.md ├── SpacedLearning.iml ├── app ├── .gitignore ├── app-release.apk ├── app.iml ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── spacedlearning │ │ └── bigfootsoftwares │ │ └── com │ │ └── spacedlearning │ │ └── ApplicationTest.java │ └── main │ ├── AndroidManifest.xml │ ├── assets │ └── Roboto-Thin.ttf │ ├── ic_launcher-web.png │ ├── java │ └── com │ │ └── bigfootsoftwares │ │ └── notes │ │ ├── AnswerCard.java │ │ ├── MainActivity.java │ │ ├── MyReceiver.java │ │ ├── NewNotes.java │ │ ├── NoteItems.java │ │ ├── NotesDataSource.java │ │ ├── SQLiteHelper.java │ │ └── SpacedService.java │ └── res │ ├── drawable-hdpi │ ├── ic_action_about.png │ ├── ic_action_new.png │ └── ic_launcher.png │ ├── drawable-mdpi │ ├── ic_action_about.png │ ├── ic_action_new.png │ └── ic_launcher.png │ ├── drawable-xhdpi │ ├── ic_action_about.png │ ├── ic_action_new.png │ └── ic_launcher.png │ ├── drawable-xxhdpi │ ├── ic_action_about.png │ ├── ic_action_new.png │ └── ic_launcher.png │ ├── drawable │ ├── button.xml │ ├── button_pressed.xml │ ├── buttonselect.xml │ ├── card.9.png │ └── layer_card_background.xml │ ├── layout │ ├── aboutus.xml │ ├── activity_answer_card.xml │ ├── activity_new_notes.xml │ ├── activity_notes.xml │ └── list_item.xml │ ├── menu │ ├── answer_card.xml │ ├── context.xml │ ├── new_notes.xml │ └── notes.xml │ ├── values-w820dp │ └── dimens.xml │ └── values │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── hs_err_pid16729.log └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /local.properties 3 | /.idea/workspace.xml 4 | .DS_Store 5 | /build 6 | -------------------------------------------------------------------------------- /.idea/.name: -------------------------------------------------------------------------------- 1 | Spaced Learning -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.idea/dictionaries/adhikari.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /.idea/libraries/appcompat_v7_20_0_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/sugar_1_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/support_annotations_20_0_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/support_v4_20_0_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | Android API 19 Platform 14 | 15 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/scopes/scope_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Smart-Note 2 | ========== 3 | 4 | An android application that helps you take things to long term memory. 5 | 6 | Give it a try 7 | https://play.google.com/store/apps/details?id=com.bigfootsoftwares.note 8 | 9 | Humans more easily remember or learn items when they are studied a few times spaced over a long time span rather than repeatedly studied in a short span of time. 10 | 11 | Using the latest research on the field of "spacing effect" we present you an app which helps you to take information from your short term memory to long term memory. 12 | We have found this app to be most effective while learning new language and preparing for tests like SAT or GRE but the scope is limitless. We would be glad to hear from you on how you are using the app. 13 | Wikipedia reference: 14 | http://en.wikipedia.org/wiki/Spacing_effect 15 | 16 | -------------------------------------------------------------------------------- /SpacedLearning.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/app-release.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meadhikari/Smart-Note/1d594cbb863b3e9579eab888a83193cce197b895/app/app-release.apk -------------------------------------------------------------------------------- /app/app.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 20 5 | buildToolsVersion "20.0.0" 6 | 7 | defaultConfig { 8 | applicationId "com.bigfootsoftwares.note" 9 | minSdkVersion 9 10 | targetSdkVersion 20 11 | versionCode 1 12 | versionName "0.1.5" 13 | } 14 | buildTypes { 15 | release { 16 | runProguard false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | } 21 | 22 | dependencies { 23 | compile fileTree(dir: 'libs', include: ['*.jar']) 24 | 25 | compile 'com.android.support:appcompat-v7:20.+' 26 | compile 'com.github.satyan:sugar:1.3' 27 | } 28 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /home/adhikari/android_sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /app/src/androidTest/java/spacedlearning/bigfootsoftwares/com/spacedlearning/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package spacedlearning.bigfootsoftwares.com.spacedlearning; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 12 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 25 | 28 | 29 | 33 | 36 | 37 | 38 | 43 | 44 | 45 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /app/src/main/assets/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meadhikari/Smart-Note/1d594cbb863b3e9579eab888a83193cce197b895/app/src/main/assets/Roboto-Thin.ttf -------------------------------------------------------------------------------- /app/src/main/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meadhikari/Smart-Note/1d594cbb863b3e9579eab888a83193cce197b895/app/src/main/ic_launcher-web.png -------------------------------------------------------------------------------- /app/src/main/java/com/bigfootsoftwares/notes/AnswerCard.java: -------------------------------------------------------------------------------- 1 | package com.bigfootsoftwares.notes; 2 | 3 | import android.app.AlertDialog; 4 | import android.content.DialogInterface; 5 | import android.content.Intent; 6 | import android.graphics.Color; 7 | import android.graphics.Typeface; 8 | import android.graphics.drawable.ColorDrawable; 9 | import android.os.Handler; 10 | import android.support.v7.app.ActionBarActivity; 11 | import android.os.Bundle; 12 | import android.text.SpannableString; 13 | import android.text.util.Linkify; 14 | import android.view.Menu; 15 | import android.view.MenuItem; 16 | import android.view.View; 17 | import android.widget.TextView; 18 | import android.widget.Toast; 19 | 20 | 21 | 22 | public class AnswerCard extends ActionBarActivity { 23 | 24 | TextView title_tv; 25 | TextView content_tv; 26 | 27 | private boolean doubleBackToExitPressedOnce = false; 28 | @Override 29 | protected void onCreate(Bundle savedInstanceState) { 30 | super.onCreate(savedInstanceState); 31 | setContentView(R.layout.activity_answer_card); 32 | getSupportActionBar().setIcon(new ColorDrawable(getResources().getColor(android.R.color.transparent))); 33 | getSupportActionBar().setTitle("Note"); 34 | getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#00b5b5"))); 35 | int titleId = getResources().getIdentifier("action_bar_title", "id","android"); 36 | TextView yourTextView = (TextView) findViewById(titleId); 37 | yourTextView.setTextSize(30); 38 | Typeface face = Typeface.createFromAsset(getAssets(),"Roboto-Thin.ttf"); 39 | yourTextView.setTypeface(face); 40 | 41 | Intent intent = getIntent(); 42 | String title = intent.getStringExtra("title"); 43 | String content = intent.getStringExtra("content"); 44 | String from = intent.getStringExtra("from"); 45 | 46 | NotesDataSource nds = new NotesDataSource(this); 47 | nds.modifyLastSeen(content); 48 | title_tv = (TextView) findViewById(R.id.title_answercard); 49 | content_tv = (TextView) findViewById(R.id.content_answercard); 50 | 51 | title_tv.setTypeface(face); 52 | content_tv.setTypeface(face); 53 | 54 | title_tv.setText(title); 55 | content_tv.setText(content); 56 | //Toast.makeText(getApplicationContext(),content,Toast.LENGTH_LONG).show(); 57 | 58 | 59 | 60 | 61 | 62 | } 63 | 64 | 65 | @Override 66 | public boolean onCreateOptionsMenu(Menu menu) { 67 | // Inflate the menu; this adds items to the action bar if it is present. 68 | getMenuInflater().inflate(R.menu.answer_card, menu); 69 | return true; 70 | } 71 | 72 | @Override 73 | public boolean onOptionsItemSelected(MenuItem item) { 74 | // Handle action bar item clicks here. The action bar will 75 | // automatically handle clicks on the Home/Up button, so long 76 | // as you specify a parent activity in AndroidManifest.xml. 77 | int id = item.getItemId(); 78 | if (id == R.id.about) 79 | { 80 | AlertDialog.Builder localBuilder = new AlertDialog.Builder(this); 81 | View localView = getLayoutInflater().inflate(R.layout.aboutus, null); 82 | TextView localTextView1 = (TextView)localView.findViewById(R.id.title); 83 | Typeface localTypeface = Typeface.createFromAsset(getAssets(), "Roboto-Thin.ttf"); 84 | localTextView1.setTypeface(localTypeface); 85 | TextView localTextView2 = (TextView)localView.findViewById(R.id.content); 86 | SpannableString localSpannableString = new SpannableString("Humans more easily remember or learn items when they are studied a few times spaced over a long time span rather than repeatedly studied in a short span of time\n\n" + 87 | "Just click on the + icon and start adding notes and let the app handle the remembering part for you\n\n" + 88 | "Long press a note to delete it\n\n\n" + 89 | "Warning: Having too many notes at once could lead to multiple notification making this app unusable, limit to few notes at a time to get the most from the app"); 90 | Linkify.addLinks(localSpannableString, 15); 91 | localTextView2.setTypeface(localTypeface); 92 | localTextView2.setText(localSpannableString); 93 | localBuilder.setView(localView).setPositiveButton("Ok", new DialogInterface.OnClickListener() 94 | { 95 | public void onClick(DialogInterface paramAnonymousDialogInterface, int paramAnonymousInt) 96 | { 97 | } 98 | }); 99 | localBuilder.show(); 100 | return true; 101 | } 102 | return super.onOptionsItemSelected(item); 103 | } 104 | /* 105 | @Override 106 | public void onBackPressed() { 107 | if (doubleBackToExitPressedOnce) { 108 | Intent intent = new Intent(Intent.ACTION_MAIN); 109 | intent.addCategory(Intent.CATEGORY_HOME); 110 | intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 111 | startActivity(intent); 112 | 113 | super.onBackPressed(); 114 | return; 115 | } 116 | 117 | this.doubleBackToExitPressedOnce = true; 118 | Toast.makeText(this, "Please click back once more to exit", Toast.LENGTH_SHORT).show(); 119 | 120 | new Handler().postDelayed(new Runnable() { 121 | 122 | @Override 123 | public void run() { 124 | doubleBackToExitPressedOnce=false; 125 | } 126 | }, 2000); 127 | }*/ 128 | } 129 | -------------------------------------------------------------------------------- /app/src/main/java/com/bigfootsoftwares/notes/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.bigfootsoftwares.notes; 2 | 3 | import android.app.AlertDialog; 4 | import android.content.DialogInterface; 5 | import android.content.Intent; 6 | import android.graphics.Color; 7 | import android.graphics.Typeface; 8 | import android.graphics.drawable.ColorDrawable; 9 | import android.os.Bundle; 10 | import android.os.Handler; 11 | import android.support.v7.app.ActionBarActivity; 12 | import android.text.SpannableString; 13 | import android.text.util.Linkify; 14 | import android.view.ContextMenu; 15 | import android.view.LayoutInflater; 16 | import android.view.Menu; 17 | import android.view.MenuItem; 18 | import android.view.View; 19 | import android.view.ViewGroup; 20 | import android.widget.AdapterView; 21 | import android.widget.BaseAdapter; 22 | import android.widget.ListView; 23 | import android.widget.TextView; 24 | import android.widget.Toast; 25 | 26 | import java.util.ArrayList; 27 | import java.util.Collections; 28 | import java.util.Comparator; 29 | import java.util.List; 30 | import java.util.concurrent.TimeUnit; 31 | 32 | 33 | public class MainActivity extends ActionBarActivity 34 | { 35 | private boolean doubleBackToExitPressedOnce = false; 36 | ArrayList items; 37 | NotesAdapter notesAdapter; 38 | ListView notes_lv; 39 | 40 | TextView tips; 41 | public List getDataForListView() 42 | { 43 | items = new NotesDataSource(getApplicationContext()).getAllNotes(); 44 | Collections.sort(items, new Comparator(){ 45 | public int compare(NoteItems s1, NoteItems s2) { 46 | return s1.total_reviews.compareToIgnoreCase(s2.total_reviews); 47 | } 48 | }); 49 | return this.items; 50 | } 51 | 52 | 53 | /*@Override 54 | public void onBackPressed() { 55 | if (doubleBackToExitPressedOnce) { 56 | Intent intent = new Intent(Intent.ACTION_MAIN); 57 | intent.addCategory(Intent.CATEGORY_HOME); 58 | intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 59 | startActivity(intent); 60 | 61 | super.onBackPressed(); 62 | return; 63 | } 64 | 65 | this.doubleBackToExitPressedOnce = true; 66 | Toast.makeText(this, "Please click back once more to exit", Toast.LENGTH_SHORT).show(); 67 | 68 | new Handler().postDelayed(new Runnable() { 69 | 70 | @Override 71 | public void run() { 72 | doubleBackToExitPressedOnce=false; 73 | } 74 | }, 2000); 75 | }*/ 76 | 77 | public boolean onContextItemSelected(MenuItem paramMenuItem) 78 | { 79 | switch (paramMenuItem.getItemId()) 80 | { 81 | case R.id.delete_item: 82 | int i = (int)((AdapterView.AdapterContextMenuInfo)paramMenuItem.getMenuInfo()).id; 83 | new NotesDataSource(getApplicationContext()).deleteOne(((NoteItems)this.items.get(i)).title, ((NoteItems)this.items.get(i)).content); 84 | this.items.remove(i); 85 | this.notesAdapter.notifyDataSetChanged(); 86 | return true; 87 | 88 | default: 89 | return super.onContextItemSelected(paramMenuItem); 90 | 91 | 92 | } 93 | 94 | 95 | } 96 | 97 | protected void onCreate(Bundle paramBundle) 98 | { 99 | super.onCreate(paramBundle); 100 | setContentView(R.layout.activity_notes); 101 | //getSupportActionBar().setIcon(new ColorDrawable(getResources().getColor(17170445))); 102 | getSupportActionBar().setTitle("Notes"); 103 | getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#00b5b5"))); 104 | TextView localTextView = (TextView)findViewById(getResources().getIdentifier("action_bar_title", "id", "android")); 105 | localTextView.setTextSize(30.0F); 106 | Typeface face = Typeface.createFromAsset(getAssets(), "Roboto-Thin.ttf"); 107 | localTextView.setTypeface(face); 108 | Intent localIntent = new Intent(getApplicationContext(), SpacedService.class); 109 | localIntent.putExtra("KEY1", "Value to be used by the service"); 110 | getApplicationContext().startService(localIntent); 111 | tips = (TextView) findViewById(R.id.tips); 112 | tips.setTypeface(face); 113 | SpannableString localSpannableString = new SpannableString("Humans more easily remember or learn items when they are studied a few times spaced over a long time span rather than repeatedly studied in a short span of time\n\n" + 114 | "Just click on the + icon and start adding notes and let the app handle the rest\n\n" + 115 | "Warning: Having too many notes at once could lead to multiple notification making this app unusable, limit to few notes at a time to get the most from the app"); 116 | tips.setText(localSpannableString); 117 | List items = MainActivity.this.getDataForListView(); 118 | if (items.size() != 0) 119 | { 120 | tips.setVisibility(View.GONE); 121 | } 122 | this.notesAdapter = new NotesAdapter(items); 123 | this.notes_lv = ((ListView)findViewById(R.id.notes_lv)); 124 | this.notes_lv.addFooterView(new View(this), null, false); 125 | this.notes_lv.addHeaderView(new View(this), null, false); 126 | this.notes_lv.setAdapter(this.notesAdapter); 127 | registerForContextMenu(this.notes_lv); 128 | this.notes_lv.setOnItemClickListener(new AdapterView.OnItemClickListener() 129 | { 130 | public void onItemClick(AdapterView paramAnonymousAdapterView, View paramAnonymousView, int paramAnonymousInt, long paramAnonymousLong) 131 | { 132 | Intent localIntent = new Intent(MainActivity.this, AnswerCard.class); 133 | localIntent.putExtra("title", ((NoteItems)MainActivity.this.items.get(paramAnonymousInt - 1)).title); 134 | localIntent.putExtra("content", ((NoteItems)MainActivity.this.items.get(paramAnonymousInt - 1)).content); 135 | localIntent.putExtra("from", "app"); 136 | MainActivity.this.startActivity(localIntent); 137 | } 138 | }); 139 | this.notes_lv.setLongClickable(true); 140 | } 141 | 142 | public void onCreateContextMenu(ContextMenu paramContextMenu, View paramView, ContextMenu.ContextMenuInfo paramContextMenuInfo) 143 | { 144 | super.onCreateContextMenu(paramContextMenu, paramView, paramContextMenuInfo); 145 | getMenuInflater().inflate(R.menu.context, paramContextMenu); 146 | } 147 | 148 | public boolean onCreateOptionsMenu(Menu paramMenu) 149 | { 150 | getMenuInflater().inflate(R.menu.notes, paramMenu); 151 | return true; 152 | } 153 | 154 | public boolean onOptionsItemSelected(MenuItem paramMenuItem) 155 | { 156 | int i = paramMenuItem.getItemId(); 157 | if (i == R.id.newNotes) 158 | { 159 | startActivity(new Intent(this, NewNotes.class)); 160 | return true; 161 | } 162 | if (i == R.id.about) 163 | { 164 | AlertDialog.Builder localBuilder = new AlertDialog.Builder(this); 165 | View localView = getLayoutInflater().inflate(R.layout.aboutus, null); 166 | TextView localTextView1 = (TextView)localView.findViewById(R.id.title); 167 | Typeface localTypeface = Typeface.createFromAsset(getAssets(), "Roboto-Thin.ttf"); 168 | localTextView1.setTypeface(localTypeface); 169 | TextView localTextView2 = (TextView)localView.findViewById(R.id.content); 170 | SpannableString localSpannableString = new SpannableString("Humans more easily remember or learn items when they are studied a few times spaced over a long time span rather than repeatedly studied in a short span of time\n\n" + 171 | "Just click on the + icon and start adding notes and let the app handle the remembering part for you\n\n" + 172 | "Long press a note to delete it\n\n\n" + 173 | "Warning: Having too many notes at once could lead to multiple notification making this app unusable, limit to few notes at a time to get the most from the app"); 174 | Linkify.addLinks(localSpannableString, 15); 175 | localTextView2.setTypeface(localTypeface); 176 | localTextView2.setText(localSpannableString); 177 | localBuilder.setView(localView).setPositiveButton("Ok", new DialogInterface.OnClickListener() 178 | { 179 | public void onClick(DialogInterface paramAnonymousDialogInterface, int paramAnonymousInt) 180 | { 181 | } 182 | }); 183 | localBuilder.show(); 184 | return true; 185 | } 186 | return super.onOptionsItemSelected(paramMenuItem); 187 | } 188 | 189 | public class NotesAdapter extends BaseAdapter 190 | { 191 | List items = null; 192 | 193 | public NotesAdapter(List items) 194 | { 195 | this.items = items; 196 | } 197 | 198 | public int getCount() 199 | { 200 | return this.items.size(); 201 | } 202 | 203 | public Object getItem(int paramInt) 204 | { 205 | return null; 206 | } 207 | 208 | public long getItemId(int paramInt) 209 | { 210 | return paramInt; 211 | } 212 | 213 | public View getView(int paramInt, View paramView, ViewGroup paramViewGroup) 214 | { 215 | if (paramView == null) 216 | { 217 | LayoutInflater localLayoutInflater = (LayoutInflater)MainActivity.this.getSystemService("layout_inflater"); 218 | paramView = localLayoutInflater.inflate(R.layout.list_item, paramViewGroup, false); 219 | localLayoutInflater.inflate(R.layout.list_item, paramViewGroup, false); 220 | } 221 | Typeface localTypeface = Typeface.createFromAsset(MainActivity.this.getAssets(), "Roboto-Thin.ttf"); 222 | TextView localTextView1 = (TextView)paramView.findViewById(R.id.title); 223 | TextView localTextView2 = (TextView)paramView.findViewById(R.id.last_reviewed); 224 | TextView localTextView3 = (TextView)paramView.findViewById(R.id.total_reviews); 225 | localTextView1.setTypeface(localTypeface); 226 | localTextView2.setTypeface(localTypeface); 227 | localTextView3.setTypeface(localTypeface); 228 | NoteItems localNoteItems = (NoteItems)this.items.get(paramInt); 229 | localTextView1.setText(localNoteItems.title); 230 | long l1 = Long.valueOf(localNoteItems.last_reviewed).longValue(); 231 | long l2 = System.currentTimeMillis() - l1; 232 | Object[] arrayOfObject = new Object[2]; 233 | arrayOfObject[0] = Long.valueOf(TimeUnit.MILLISECONDS.toMinutes(l2)); 234 | arrayOfObject[1] = Long.valueOf(TimeUnit.MILLISECONDS.toSeconds(l2) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(l2))); 235 | String str = String.format("%d min, %d sec", arrayOfObject); 236 | localTextView2.setText("Last seen: " + str + " ago"); 237 | localTextView3.setText("Notification sent: " + localNoteItems.total_reviews + " times"); 238 | return paramView; 239 | } 240 | } 241 | } -------------------------------------------------------------------------------- /app/src/main/java/com/bigfootsoftwares/notes/MyReceiver.java: -------------------------------------------------------------------------------- 1 | package com.bigfootsoftwares.notes; 2 | 3 | import android.content.BroadcastReceiver; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | 7 | public class MyReceiver extends BroadcastReceiver { 8 | public MyReceiver() { 9 | } 10 | 11 | @Override 12 | public void onReceive(Context context, Intent intent) { 13 | // TODO: This method is called when the BroadcastReceiver is receiving 14 | // an Intent broadcast. 15 | Intent i= new Intent(context, SpacedService.class); 16 | 17 | i.putExtra("KEY1", "Value to be used by the service"); 18 | context.startService(i); 19 | // throw new UnsupportedOperationException1("Not yet implemented"); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/bigfootsoftwares/notes/NewNotes.java: -------------------------------------------------------------------------------- 1 | package com.bigfootsoftwares.notes; 2 | 3 | import android.app.Activity; 4 | import android.app.AlertDialog; 5 | import android.content.DialogInterface; 6 | import android.content.Intent; 7 | import android.graphics.Color; 8 | import android.graphics.Typeface; 9 | import android.graphics.drawable.ColorDrawable; 10 | import android.os.Bundle; 11 | import android.os.Handler; 12 | import android.support.v7.app.ActionBarActivity; 13 | import android.text.SpannableString; 14 | import android.text.util.Linkify; 15 | import android.view.Menu; 16 | import android.view.MenuItem; 17 | import android.view.View; 18 | import android.widget.Button; 19 | import android.widget.EditText; 20 | import android.widget.TextView; 21 | import android.widget.Toast; 22 | 23 | 24 | public class NewNotes extends ActionBarActivity { 25 | 26 | EditText title; 27 | EditText content; 28 | Button start_remembering; 29 | 30 | private boolean doubleBackToExitPressedOnce = false; 31 | 32 | @Override 33 | protected void onCreate(Bundle savedInstanceState) { 34 | super.onCreate(savedInstanceState); 35 | 36 | setContentView(R.layout.activity_new_notes); 37 | getSupportActionBar().setDisplayHomeAsUpEnabled(true); 38 | 39 | getSupportActionBar().setIcon(new ColorDrawable(getResources().getColor(android.R.color.transparent))); 40 | getSupportActionBar().setTitle("Add Notes"); 41 | getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#00b5b5"))); 42 | int titleId = getResources().getIdentifier("action_bar_title", "id","android"); 43 | TextView yourTextView = (TextView) findViewById(titleId); 44 | yourTextView.setTextSize(30); 45 | Typeface face = Typeface.createFromAsset(getAssets(),"Roboto-Thin.ttf"); 46 | yourTextView.setTypeface(face); 47 | 48 | title = (EditText) findViewById(R.id.title); 49 | content = (EditText) findViewById(R.id.content); 50 | 51 | title.setTypeface(face); 52 | content.setTypeface(face); 53 | 54 | start_remembering = (Button) findViewById(R.id.start_remembering); 55 | start_remembering.setTypeface(face); 56 | start_remembering.setTextSize(30); 57 | 58 | start_remembering.setOnClickListener(new View.OnClickListener() { 59 | @Override 60 | public void onClick(View v) { 61 | try{ 62 | NotesDataSource nds = new NotesDataSource(getApplicationContext()); 63 | if (!title.getText().toString().trim().isEmpty() && !content.getText().toString().trim().isEmpty() ) 64 | { 65 | nds.insertNotes(title.getText().toString(),content.getText().toString()); 66 | Toast.makeText(getApplicationContext(),"Note Added.",Toast.LENGTH_LONG).show(); 67 | Intent i = new Intent(NewNotes.this,MainActivity.class); 68 | i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 69 | startActivity(i); 70 | } 71 | else 72 | { 73 | Toast.makeText(getApplicationContext(),"Please write something.",Toast.LENGTH_LONG).show(); 74 | } 75 | 76 | 77 | } 78 | catch (Exception e){ 79 | Toast.makeText(getApplicationContext(),"Error Please try again",Toast.LENGTH_LONG).show(); 80 | } 81 | 82 | } 83 | }); 84 | 85 | } 86 | 87 | 88 | @Override 89 | public boolean onCreateOptionsMenu(Menu menu) { 90 | // Inflate the menu; this adds items to the action bar if it is present. 91 | getMenuInflater().inflate(R.menu.new_notes, menu); 92 | return true; 93 | } 94 | 95 | @Override 96 | public boolean onOptionsItemSelected(MenuItem item) { 97 | // Handle action bar item clicks here. The action bar will 98 | // automatically handle clicks on the Home/Up button, so long 99 | // as you specify a parent activity in AndroidManifest.xml. 100 | int id = item.getItemId(); 101 | if (id == R.id.about) 102 | { 103 | AlertDialog.Builder localBuilder = new AlertDialog.Builder(this); 104 | View localView = getLayoutInflater().inflate(R.layout.aboutus, null); 105 | TextView localTextView1 = (TextView)localView.findViewById(R.id.title); 106 | Typeface localTypeface = Typeface.createFromAsset(getAssets(), "Roboto-Thin.ttf"); 107 | localTextView1.setTypeface(localTypeface); 108 | TextView localTextView2 = (TextView)localView.findViewById(R.id.content); 109 | SpannableString localSpannableString = new SpannableString("Humans more easily remember or learn items when they are studied a few times spaced over a long time span rather than repeatedly studied in a short span of time\n\n" + 110 | "Just click on the + icon and start adding notes and let the app handle the remembering part for you\n\n" + 111 | "Long press a note to delete it\n\n\n" + 112 | "Warning: Having too many notes at once could lead to multiple notification making this app unusable, limit to few notes at a time to get the most from the app"); 113 | Linkify.addLinks(localSpannableString, 15); 114 | localTextView2.setTypeface(localTypeface); 115 | localTextView2.setText(localSpannableString); 116 | localBuilder.setView(localView).setPositiveButton("Ok", new DialogInterface.OnClickListener() 117 | { 118 | public void onClick(DialogInterface paramAnonymousDialogInterface, int paramAnonymousInt) 119 | { 120 | } 121 | }); 122 | localBuilder.show(); 123 | return true; 124 | } 125 | return super.onOptionsItemSelected(item); 126 | } 127 | /* 128 | @Override 129 | public void onBackPressed() { 130 | if (doubleBackToExitPressedOnce) { 131 | Intent intent = new Intent(Intent.ACTION_MAIN); 132 | intent.addCategory(Intent.CATEGORY_HOME); 133 | intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 134 | startActivity(intent); 135 | 136 | super.onBackPressed(); 137 | return; 138 | } 139 | 140 | this.doubleBackToExitPressedOnce = true; 141 | Toast.makeText(this, "Please click back once more to exit", Toast.LENGTH_SHORT).show(); 142 | 143 | new Handler().postDelayed(new Runnable() { 144 | 145 | @Override 146 | public void run() { 147 | doubleBackToExitPressedOnce=false; 148 | } 149 | }, 2000); 150 | }*/ 151 | } 152 | -------------------------------------------------------------------------------- /app/src/main/java/com/bigfootsoftwares/notes/NoteItems.java: -------------------------------------------------------------------------------- 1 | package com.bigfootsoftwares.notes; 2 | 3 | public class NoteItems 4 | 5 | { 6 | 7 | public long id; 8 | public String title; 9 | public String last_reviewed; 10 | public String total_reviews; 11 | public String content; 12 | 13 | public NoteItems(String title, String last_reviewed, String total_reviews, String content) 14 | { 15 | this.title = title; 16 | this.last_reviewed = last_reviewed; 17 | this.total_reviews = total_reviews; 18 | this.content = content; 19 | } 20 | } -------------------------------------------------------------------------------- /app/src/main/java/com/bigfootsoftwares/notes/NotesDataSource.java: -------------------------------------------------------------------------------- 1 | package com.bigfootsoftwares.notes; 2 | 3 | import android.content.ContentValues; 4 | import android.content.Context; 5 | import android.database.Cursor; 6 | import android.database.SQLException; 7 | import android.database.sqlite.SQLiteDatabase; 8 | import java.util.ArrayList; 9 | import java.util.List; 10 | 11 | public class NotesDataSource { 12 | 13 | // Database fields 14 | private SQLiteDatabase database; 15 | private SQLiteHelper dbHelper; 16 | 17 | private static final String DATABASE_NAME = "notes.db"; 18 | 19 | public NotesDataSource(Context context) { 20 | dbHelper = new SQLiteHelper(context); 21 | } 22 | 23 | public void open() throws SQLException { 24 | database = dbHelper.getWritableDatabase(); 25 | } 26 | 27 | public void close() { 28 | dbHelper.close(); 29 | } 30 | 31 | public long insertNotes(String title, String content) 32 | { 33 | this.open(); 34 | ContentValues insertValues = new ContentValues(); 35 | insertValues.put(SQLiteHelper.COLUMN_TITLE, title); 36 | insertValues.put(SQLiteHelper.COLUMN_CONTENT, content); 37 | long epoch = System.currentTimeMillis(); 38 | insertValues.put(SQLiteHelper.COLUMN_LAST_REVIEWED, epoch); 39 | insertValues.put(SQLiteHelper.COLUMN_TOTAL_REVIEWS, 0); 40 | long val = database.insert(SQLiteHelper.TABLE_NOTES, null, insertValues); 41 | this.close(); 42 | return val; 43 | } 44 | public long deleteOne(String title, String content) 45 | { 46 | this.open(); 47 | database.delete(SQLiteHelper.TABLE_NOTES, SQLiteHelper.COLUMN_CONTENT + " = ?", new String[] { String.valueOf(content) }); 48 | this.close(); 49 | return 0; 50 | } 51 | public long incrementTotalReviews(String content) 52 | { 53 | this.open(); 54 | String sql = "UPDATE " + SQLiteHelper.TABLE_NOTES + 55 | " SET " + SQLiteHelper.COLUMN_TOTAL_REVIEWS + "=" + SQLiteHelper.COLUMN_TOTAL_REVIEWS + "+1" + 56 | " WHERE " + SQLiteHelper.COLUMN_CONTENT + " >= '" + content+"'"; 57 | 58 | database.execSQL(sql); 59 | /*database.execSQL("UPDATE " + SQLiteHelper.TABLE_NOTES + " SET " 60 | + SQLiteHelper.COLUMN_TOTAL_REVIEWS + " = " + SQLiteHelper.COLUMN_TOTAL_REVIEWS + " +1 WHERE " 61 | + SQLiteHelper.COLUMN_CONTENT + " = " +content);*/ 62 | this.close(); 63 | return 0; 64 | 65 | } 66 | public long modifyLastSeen(String content) 67 | { 68 | this.open(); 69 | String sql = "UPDATE " + SQLiteHelper.TABLE_NOTES + 70 | " SET " + SQLiteHelper.COLUMN_LAST_REVIEWED + "=" + System.currentTimeMillis()+ 71 | " WHERE " + SQLiteHelper.COLUMN_CONTENT + " >= '" + content+"'"; 72 | 73 | database.execSQL(sql); 74 | /*database.execSQL("UPDATE " + SQLiteHelper.TABLE_NOTES + " SET " 75 | + SQLiteHelper.COLUMN_TOTAL_REVIEWS + " = " + SQLiteHelper.COLUMN_TOTAL_REVIEWS + " +1 WHERE " 76 | + SQLiteHelper.COLUMN_CONTENT + " = " +content);*/ 77 | this.close(); 78 | return 0; 79 | 80 | } 81 | public ArrayList getAllNotes() { 82 | this.open(); 83 | ArrayList items = new ArrayList(); 84 | Cursor cursor = database.rawQuery("select * from notes",null); 85 | 86 | if (cursor .moveToFirst()) { 87 | 88 | while (!cursor.isAfterLast()) { 89 | String title = cursor.getString(cursor.getColumnIndex(SQLiteHelper.COLUMN_TITLE)); 90 | String last_reviewed = cursor.getString(cursor.getColumnIndex(SQLiteHelper.COLUMN_LAST_REVIEWED)); 91 | String total_reviews = cursor.getString(cursor.getColumnIndex(SQLiteHelper.COLUMN_TOTAL_REVIEWS)); 92 | String content = cursor.getString(cursor.getColumnIndex(SQLiteHelper.COLUMN_CONTENT)); 93 | 94 | NoteItems item = new NoteItems(title,last_reviewed,total_reviews,content); 95 | items.add(item); 96 | cursor.moveToNext(); 97 | } 98 | } 99 | this.close(); 100 | return items; 101 | } 102 | 103 | 104 | public List getAllNotesForNotification() { 105 | this.open(); 106 | List items = new ArrayList(); 107 | Cursor cursor = database.rawQuery("select * from notes",null); 108 | 109 | if (cursor .moveToFirst()) { 110 | 111 | while (!cursor.isAfterLast()) { 112 | String title = cursor.getString(cursor.getColumnIndex(SQLiteHelper.COLUMN_TITLE)); 113 | String last_reviewed = cursor.getString(cursor.getColumnIndex(SQLiteHelper.COLUMN_LAST_REVIEWED)); 114 | String total_reviews = cursor.getString(cursor.getColumnIndex(SQLiteHelper.COLUMN_TOTAL_REVIEWS)); 115 | String content = cursor.getString(cursor.getColumnIndex(SQLiteHelper.COLUMN_CONTENT)); 116 | 117 | NoteItems item = new NoteItems(title,last_reviewed,total_reviews,content); 118 | long past_epoch = Long.valueOf(item.last_reviewed); 119 | long current_epoch = System.currentTimeMillis(); 120 | long difference = current_epoch - past_epoch; 121 | if (notificationRequired(difference,Integer.valueOf(item.total_reviews))) { 122 | items.add(item); 123 | } 124 | cursor.moveToNext(); 125 | } 126 | } 127 | this.close(); 128 | return items; 129 | } 130 | 131 | public boolean notificationRequired(long difference, int times) 132 | { 133 | if (times == 0){ 134 | return true; 135 | } 136 | else if (times == 1 && difference >= 60000*5) 137 | { 138 | return true; 139 | } 140 | else if (times == 2 && difference >=60000*10) 141 | { 142 | return true; 143 | } 144 | else if (times == 3 && difference >=60000*30) 145 | { 146 | return true; 147 | } 148 | else if (times == 4 && difference >=60000*60) 149 | { 150 | return true; 151 | } 152 | else if (times == 5 && difference >=60000*60*2) 153 | { 154 | return true; 155 | } 156 | else if (times == 6 && difference >=60000*60*4) 157 | { 158 | return true; 159 | } 160 | else if (times == 7 && difference >=60000*60*8) 161 | { 162 | return true; 163 | } 164 | else if (times == 8 && difference >=60000*60*12) 165 | { 166 | return true; 167 | } 168 | else if (times == 9 && difference >=60000*60*24) 169 | { 170 | return true; 171 | } 172 | else if (times == 10 && difference >=60000*60*24*2) 173 | { 174 | return true; 175 | } 176 | else if (times == 11 && difference >=60000*60*24*4) 177 | { 178 | return true; 179 | } 180 | else if (times == 11 && difference >=60000*60*24*8) 181 | { 182 | return true; 183 | } 184 | else if (times == 11 && difference >=60000*60*24*16) 185 | { 186 | return true; 187 | } 188 | else 189 | { 190 | return false; 191 | } 192 | 193 | } 194 | } 195 | -------------------------------------------------------------------------------- /app/src/main/java/com/bigfootsoftwares/notes/SQLiteHelper.java: -------------------------------------------------------------------------------- 1 | package com.bigfootsoftwares.notes; 2 | 3 | import android.content.Context; 4 | import android.database.sqlite.SQLiteDatabase; 5 | import android.util.Log; 6 | 7 | import android.database.sqlite.SQLiteOpenHelper; 8 | 9 | public class SQLiteHelper extends SQLiteOpenHelper { 10 | 11 | public static final String TABLE_NOTES = "notes"; 12 | public static final String COLUMN_ID = "_id"; 13 | public static final String COLUMN_TITLE = "title"; 14 | public static final String COLUMN_LAST_REVIEWED = "last_reviewed"; 15 | public static final String COLUMN_TOTAL_REVIEWS = "total_reviews"; 16 | public static final String COLUMN_CONTENT = "content"; 17 | 18 | private static final String DATABASE_NAME = "notes.db"; 19 | private static final int DATABASE_VERSION = 1; 20 | 21 | // Database creation sql statement 22 | private static final String DATABASE_CREATE = "create table " 23 | + TABLE_NOTES + "(" + COLUMN_ID 24 | + " integer primary key autoincrement, " + COLUMN_LAST_REVIEWED 25 | + " text not null);"; 26 | 27 | public SQLiteHelper(Context context) { 28 | super(context, DATABASE_NAME, null, DATABASE_VERSION); 29 | } 30 | 31 | @Override 32 | public void onCreate(SQLiteDatabase database) { 33 | database.execSQL(" CREATE TABLE " + TABLE_NOTES + " (" + 34 | COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 35 | COLUMN_TITLE + " TEXT NOT NULL, " + 36 | COLUMN_LAST_REVIEWED + " TEXT NOT NULL, " + 37 | COLUMN_TOTAL_REVIEWS + " INT NOT NULL, " + 38 | COLUMN_CONTENT + " TEXT NOT NULL);" 39 | ); 40 | 41 | } 42 | 43 | @Override 44 | public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 45 | Log.w(SQLiteHelper.class.getName(), 46 | "Upgrading database from version " + oldVersion + " to " 47 | + newVersion + ", which will destroy all old data"); 48 | db.execSQL("DROP TABLE IF EXISTS " + TABLE_NOTES); 49 | onCreate(db); 50 | } 51 | 52 | } -------------------------------------------------------------------------------- /app/src/main/java/com/bigfootsoftwares/notes/SpacedService.java: -------------------------------------------------------------------------------- 1 | package com.bigfootsoftwares.notes; 2 | 3 | import android.app.Notification; 4 | import android.app.NotificationManager; 5 | import android.app.PendingIntent; 6 | import android.app.Service; 7 | import android.content.Intent; 8 | import android.os.Handler; 9 | import android.os.IBinder; 10 | 11 | import java.util.List; 12 | 13 | 14 | 15 | public class SpacedService extends Service { 16 | 17 | 18 | 19 | 20 | @Override 21 | public void onCreate() { 22 | super.onCreate(); 23 | final Handler handler = new Handler(); 24 | handler.postDelayed(new Runnable() { 25 | public void run() { 26 | NotesDataSource nds = new NotesDataSource(SpacedService.this); 27 | List items = nds.getAllNotesForNotification(); 28 | for(NoteItems item : items) 29 | { 30 | SpacedService.this.notification(item.title,item.content); 31 | nds.incrementTotalReviews(item.content); 32 | } 33 | handler.postDelayed(this, 120000/2); //now is every 2 minutes 34 | } 35 | }, 120000/2); 36 | 37 | 38 | 39 | } 40 | 41 | @Override 42 | public IBinder onBind(Intent intent) { 43 | // TODO: Return the communication channel to the service. 44 | throw new UnsupportedOperationException("Not yet implemented"); 45 | } 46 | 47 | public void notification(String title, String message) 48 | { 49 | //int random = 1 + (int)(Math.random() * ((100 - 1) + 1)); // generates random number from 1 to 100 50 | 51 | int random = message.hashCode(); 52 | final NotificationManager mgr= (NotificationManager)getSystemService(NOTIFICATION_SERVICE); 53 | Notification note=new Notification(R.drawable.ic_launcher,"Smart Note "+"::"+title,System.currentTimeMillis()); 54 | 55 | // This pending intent will open after notification click 56 | Intent intent = new Intent(this,AnswerCard.class); 57 | intent.putExtra("title",title); 58 | intent.putExtra("content",message); 59 | intent.putExtra("from","notification"); 60 | PendingIntent i=PendingIntent.getActivity(this, random,intent,PendingIntent.FLAG_UPDATE_CURRENT); 61 | 62 | note.setLatestEventInfo(this,title,"Reminder From"+" Smart Note", i); 63 | //note.number=2; 64 | note.flags |= Notification.FLAG_AUTO_CANCEL; 65 | 66 | mgr.notify(random, note); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_action_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meadhikari/Smart-Note/1d594cbb863b3e9579eab888a83193cce197b895/app/src/main/res/drawable-hdpi/ic_action_about.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_action_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meadhikari/Smart-Note/1d594cbb863b3e9579eab888a83193cce197b895/app/src/main/res/drawable-hdpi/ic_action_new.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meadhikari/Smart-Note/1d594cbb863b3e9579eab888a83193cce197b895/app/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_action_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meadhikari/Smart-Note/1d594cbb863b3e9579eab888a83193cce197b895/app/src/main/res/drawable-mdpi/ic_action_about.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_action_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meadhikari/Smart-Note/1d594cbb863b3e9579eab888a83193cce197b895/app/src/main/res/drawable-mdpi/ic_action_new.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meadhikari/Smart-Note/1d594cbb863b3e9579eab888a83193cce197b895/app/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_action_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meadhikari/Smart-Note/1d594cbb863b3e9579eab888a83193cce197b895/app/src/main/res/drawable-xhdpi/ic_action_about.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_action_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meadhikari/Smart-Note/1d594cbb863b3e9579eab888a83193cce197b895/app/src/main/res/drawable-xhdpi/ic_action_new.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meadhikari/Smart-Note/1d594cbb863b3e9579eab888a83193cce197b895/app/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_action_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meadhikari/Smart-Note/1d594cbb863b3e9579eab888a83193cce197b895/app/src/main/res/drawable-xxhdpi/ic_action_about.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_action_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meadhikari/Smart-Note/1d594cbb863b3e9579eab888a83193cce197b895/app/src/main/res/drawable-xxhdpi/ic_action_new.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meadhikari/Smart-Note/1d594cbb863b3e9579eab888a83193cce197b895/app/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/button.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/button_pressed.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/buttonselect.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/card.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meadhikari/Smart-Note/1d594cbb863b3e9579eab888a83193cce197b895/app/src/main/res/drawable/card.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/layer_card_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/layout/aboutus.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 12 | 13 | 22 | 23 | 30 | 31 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_answer_card.xml: -------------------------------------------------------------------------------- 1 | 11 | 12 | 20 | 24 | 28 | 29 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_new_notes.xml: -------------------------------------------------------------------------------- 1 | 11 | 12 | 13 | 26 | 27 | 36 | 37 | 38 |