Skip to main content

C++ Notes published

I have published my next app - C++ Notes

The app has short notes on basic and advanced topics of C++ along with quiz and programs.

I have tried to use material design here - may not be so successful. And have used firebase ads instead of admob. Admob has now become firebase.

Be careful, when you add firebase ads, three extra permissions are added to the app - WAKELOCK and some c2d -permission-receive and c2d message. And users will wonder why the hell this app needs these permissions.

So you can add these lines in your manifest file to remove these permissions.
 
 <uses-permission android:name="android.permission.WAKE_LOCK" tools:node="remove" />
 <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" tools:node="remove" />
 <uses-permission android:name="your.app.package.permission.C2D_MESSAGE" tools:node="remove" />
 
I spent quite some time on deciding about scrolling and swiping. Notes had some formatting - colors, fonts etc. So I thought I will use HTML and webview.  Questions are some what lengthy, I had to put these in a  scrollview. Webview has a scroll feature automatically.

So when I tried to add swipe feature using ontouch listener, the behavior was erratic. Scroll would swipe the page. After lot of tinkering, I decided not to use swipe at all. Any views?

And it would have looked good, if the continue button was visible only when the webview scrolled to the bottom. Could not do it. :(

And I processed the html pages using Kompozer - reasonably good enough tool for HTML formatting. But even within that, code formatting was not good. So I used hilite.me site for formatting code with colors, borders etc.

Instead of actionbar I used toolbar with support library. Support library because my minimum sdk is 11. Toolbar is OK. Not as friendly as I expected it to be. But one good thing is you can add widgets in it directly and format them as you want them to be and write on click listeners to them.

One thing which I forgot was search feature. This is present in C app. But here since the topics were already highlighted in first page, I let it lapse.

Download the app and give me your feedback. 


Comments

Popular posts from this blog

Simple ListView Adapter and list item select

When you are using a listview in your applications many a times you will write your own adapter to display item. But if your list is very simple showing a list of strings, you can use inbuilt adapters like ArrayAdapter, SimpleCursorAdapter etc.

ArrayAdapterLet us look at an example

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ListView android:layout_height="wrap_content" android:id="@+id/listView1" android:layout_width="match_parent" android:layout_margin="20dp"> </ListView> </LinearLayout>

And add these lines to the onCreate method of the activity.

super.onCreate(savedInstanceState); …

Drawables in Android - Layer drawable

Let us see how to use layer drawable. You can have two or more bitmaps on different layers to create such a drawable

Using xml:

You should use layer-list in your xml file to create layerdrawable. Here is layer.xml
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <bitmap android:src="@drawable/whiteicon" android:gravity="top|left"/> </item> <item> <bitmap android:src="@drawable/blueicon" android:gravity="top|left"/> </item> <item> <bitmap android:src="@drawable/redicon" android:gravity="top|left"/> </item> </layer-list>
We are using three different bitmaps whiteicon.png, redicon.png and blueicon.png which are present in /res/drawable/mdpi folder. All these are of different sizes and aligned to top left. This drawab…

DatePickers in Android

DatePicker is a view which lets the user select a date showing a calendar or 3 spinners for dd, mm and yy.

Let us see how to use this.
Easy Method: To use a DatePicker you can use DatePickerDialog. This can be created and shown programmatically too.

publicvoidonCreate(Bundle b){/*********/ Button btn =(Button)findViewById(R.id.btn); btn.setOnClickListener(new View.OnClickListener(){@OverridepublicvoidonClick(View v){ showPickerDialog();}});}privatevoidshowPickerDialog(){ DatePickerDialog dtPickerDlg =new DatePickerDialog(this,this, 2017,10,20); dtPickerDialog.show();}

In our xml file, let us have a button and in the onclick listener of the button, let us display the date picker dialog - we call showPickerDialog.

In showPickerDialog,  we are using a random date to initialize.

The first  parameter is the context. Second parameter is the class which implements the interface OnDateSetListener. Next three parameters are year, month (Jan is 0) and …