Skip to content

Commit b978567

Browse files
author
Kunal
committed
faq page added
1 parent 8fe143b commit b978567

File tree

10 files changed

+310
-18
lines changed

10 files changed

+310
-18
lines changed

app/src/main/AndroidManifest.xml

+19-18
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,6 @@
33
xmlns:tools="http://schemas.android.com/tools"
44
package="io.neurolab">
55

6-
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
7-
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
8-
9-
<uses-feature android:name="android.hardware.usb.host" />
10-
11-
<uses-permission android:name="android.permission.INTERNET" />
12-
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
13-
<uses-permission android:name="android.permission.BLUETOOTH" />
14-
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
15-
166
<application
177
android:allowBackup="true"
188
android:hardwareAccelerated="true"
@@ -23,8 +13,10 @@
2313
android:supportsRtl="true"
2414
android:theme="@style/AppTheme"
2515
tools:ignore="AllowBackup">
26-
<activity android:name=".activities.ShareDataActivity"
27-
android:label="Share"/>
16+
<activity android:name=".activities.FAQActivity"></activity>
17+
<activity
18+
android:name=".activities.ShareDataActivity"
19+
android:label="Share" />
2820
<activity android:name=".activities.RelaxParentActivity" />
2921
<activity android:name=".activities.PinLayoutActivity" />
3022
<activity android:name=".activities.MeditationListActivity" />
@@ -62,8 +54,8 @@
6254
</activity>
6355
<activity
6456
android:name=".activities.SettingsActivity"
65-
android:parentActivityName=".main.NeuroLab"
66-
android:configChanges="orientation|keyboardHidden"/>
57+
android:configChanges="orientation|keyboardHidden"
58+
android:parentActivityName=".main.NeuroLab" />
6759
<activity
6860
android:name=".activities.OnBoardingActivity"
6961
android:theme="@style/AppTheme.NoActionBar" />
@@ -77,6 +69,10 @@
7769
<activity android:name=".activities.DataLoggerActivity" />
7870
<activity android:name=".activities.DeviceInstructionsActivity" />
7971

72+
<meta-data
73+
android:name="preloaded_fonts"
74+
android:resource="@array/preloaded_fonts" />
75+
8076
<provider
8177
android:name="android.support.v4.content.FileProvider"
8278
android:authorities="io.neurolab.fileprovider"
@@ -86,10 +82,15 @@
8682
android:name="android.support.FILE_PROVIDER_PATHS"
8783
android:resource="@xml/filepaths" />
8884
</provider>
89-
90-
<meta-data
91-
android:name="preloaded_fonts"
92-
android:resource="@array/preloaded_fonts" />
9385
</application>
9486

87+
<uses-feature android:name="android.hardware.usb.host" />
88+
<uses-permission android:name="android.permission.INTERNET" />
89+
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
90+
<uses-permission android:name="android.permission.BLUETOOTH" />
91+
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
92+
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
93+
94+
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
95+
9596
</manifest>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
package io.neurolab.activities;
2+
3+
import android.support.v7.app.AppCompatActivity;
4+
import android.os.Bundle;
5+
import android.text.Html;
6+
import android.text.method.LinkMovementMethod;
7+
import android.view.LayoutInflater;
8+
import android.view.View;
9+
import android.view.ViewGroup;
10+
import android.widget.BaseExpandableListAdapter;
11+
import android.widget.ExpandableListAdapter;
12+
import android.widget.ExpandableListView;
13+
import android.widget.TextView;
14+
15+
import io.neurolab.R;
16+
17+
public class FAQActivity extends AppCompatActivity {
18+
19+
private String[] questions;
20+
private String[][] answers;
21+
22+
@Override
23+
protected void onCreate(Bundle savedInstanceState) {
24+
super.onCreate(savedInstanceState);
25+
setContentView(R.layout.activity_faq);
26+
27+
questions = getResources().getStringArray(R.array.faq_questions);
28+
29+
String[] ans = getResources().getStringArray(R.array.faq_answers);
30+
answers = new String[ans.length][];
31+
for (int i = 0; i < ans.length; i++) {
32+
answers[i] = new String[]{ans[i]};
33+
}
34+
35+
ExpandableListView listView;
36+
37+
listView = findViewById(R.id.expListView);
38+
listView.setAdapter(new ExpandableListAdapter(questions, answers));
39+
listView.setGroupIndicator(null);
40+
}
41+
42+
public class ExpandableListAdapter extends BaseExpandableListAdapter {
43+
44+
private final LayoutInflater inf;
45+
private String[] questions;
46+
private String[][] answers;
47+
48+
public ExpandableListAdapter(String[] questions, String[][] answers) {
49+
this.questions = questions;
50+
this.answers = answers;
51+
inf = LayoutInflater.from(getApplication());
52+
}
53+
54+
@Override
55+
public int getGroupCount() {
56+
return questions.length;
57+
}
58+
59+
@Override
60+
public int getChildrenCount(int questionPosition) {
61+
return answers[questionPosition].length;
62+
}
63+
64+
@Override
65+
public Object getGroup(int questionPosition) {
66+
return questions[questionPosition];
67+
}
68+
69+
@Override
70+
public Object getChild(int questionPosition, int answerPosition) {
71+
return answers[questionPosition][answerPosition];
72+
}
73+
74+
@Override
75+
public long getGroupId(int questionPosition) {
76+
return questionPosition;
77+
}
78+
79+
@Override
80+
public long getChildId(int questionPosition, int answerPosition) {
81+
return answerPosition;
82+
}
83+
84+
@Override
85+
public boolean hasStableIds() {
86+
return true;
87+
}
88+
89+
@Override
90+
public View getChildView(int questionPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
91+
92+
ViewHolder holder;
93+
View v = convertView;
94+
if (v == null) {
95+
v = inf.inflate(R.layout.list_item, parent, false);
96+
holder = new ViewHolder();
97+
98+
holder.text = (TextView) v.findViewById(R.id.lblListItem);
99+
v.setTag(holder);
100+
} else {
101+
holder = (ViewHolder) v.getTag();
102+
}
103+
104+
holder.text.setClickable(true);
105+
holder.text.setMovementMethod(LinkMovementMethod.getInstance());
106+
holder.text.setText(Html.fromHtml(getChild(questionPosition, childPosition).toString(), Html.FROM_HTML_MODE_COMPACT));
107+
108+
return v;
109+
}
110+
111+
@Override
112+
public View getGroupView(int questionPosition, boolean isExpanded, View convertView, ViewGroup parent) {
113+
ViewHolder holder;
114+
View v = convertView;
115+
if (v == null) {
116+
v = inf.inflate(R.layout.list_group, parent, false);
117+
118+
holder = new ViewHolder();
119+
holder.text = (TextView) v.findViewById(R.id.lblListHeader);
120+
v.setTag(holder);
121+
} else {
122+
holder = (ViewHolder) v.getTag();
123+
}
124+
125+
holder.text.setText(getGroup(questionPosition).toString());
126+
127+
return v;
128+
}
129+
130+
@Override
131+
public boolean isChildSelectable(int questionPosition, int answerPosition) {
132+
return true;
133+
}
134+
135+
private class ViewHolder {
136+
private TextView text;
137+
}
138+
}
139+
}

app/src/main/java/io/neurolab/main/NeuroLab.java

+3
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import io.neurolab.activities.AboutUsActivity;
4242
import io.neurolab.activities.DataLoggerActivity;
4343
import io.neurolab.activities.DeviceInstructionsActivity;
44+
import io.neurolab.activities.FAQActivity;
4445
import io.neurolab.activities.FocusParentActivity;
4546
import io.neurolab.activities.MeditationHome;
4647
import io.neurolab.activities.MemoryGraphParent;
@@ -368,6 +369,8 @@ public boolean onNavigationItemSelected(@NonNull MenuItem item) {
368369
startActivity(new Intent(this, SettingsActivity.class));
369370
} else if (id == R.id.nav_about_us) {
370371
startActivity(new Intent(this, AboutUsActivity.class));
372+
} else if (id == R.id.nav_faq) {
373+
startActivity(new Intent(this, FAQActivity.class));
371374
} else if (id == R.id.nav_share) {
372375
startActivity(new Intent(this, ShareDataActivity.class));
373376
} else if (id == R.id.nav_data_logger) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="24dp"
3+
android:height="24dp"
4+
android:viewportWidth="24.0"
5+
android:viewportHeight="24.0">
6+
<path
7+
android:fillColor="#FF000000"
8+
android:pathData="M20,2L4,2c-1.1,0 -1.99,0.9 -1.99,2L2,22l4,-4h14c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM13,14h-2v-2h2v2zM13,10h-2L11,6h2v4z"/>
9+
</vector>
+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:id="@+id/faq"
4+
android:layout_width="match_parent"
5+
android:layout_height="match_parent"
6+
android:background="#ffffff"
7+
android:orientation="vertical">
8+
9+
<ExpandableListView
10+
android:id="@+id/expListView"
11+
android:layout_margin="@dimen/faq_answer_margin_start"
12+
android:layout_width="match_parent"
13+
android:layout_height="@dimen/dimen_zero_dp"
14+
android:layout_weight="0.14"
15+
android:childDivider="@android:color/transparent">
16+
</ExpandableListView>
17+
18+
</LinearLayout>
+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:tools="http://schemas.android.com/tools"
4+
android:layout_width="fill_parent"
5+
android:layout_height="wrap_content"
6+
android:background="#ffffff"
7+
android:orientation="horizontal">
8+
9+
<LinearLayout
10+
android:layout_width="@dimen/list_group_layout_width"
11+
android:layout_height="@dimen/list_group_layout_height"
12+
android:orientation="vertical">
13+
14+
<TextView
15+
android:layout_width="match_parent"
16+
android:layout_height="match_parent"
17+
android:layout_marginTop="@dimen/faq_question_margin_top"
18+
android:text="@string/question"
19+
android:textAlignment="center"
20+
android:textColor="@color/colorPrimary"
21+
android:textSize="@dimen/faq_question_text_size" />
22+
23+
</LinearLayout>
24+
25+
<LinearLayout
26+
android:layout_width="match_parent"
27+
android:layout_height="wrap_content"
28+
android:orientation="vertical">
29+
30+
<TextView
31+
android:id="@+id/lblListHeader"
32+
android:layout_width="match_parent"
33+
android:layout_height="match_parent"
34+
android:gravity="center_vertical"
35+
android:justificationMode="inter_word"
36+
android:paddingBottom="@dimen/text_padding_top"
37+
android:paddingLeft="@dimen/text_padding_top"
38+
android:paddingTop="@dimen/text_padding_top"
39+
android:textColor="@color/colorPrimaryDark"
40+
android:textSize="@dimen/text_size"
41+
tools:ignore="SpUsage" />
42+
43+
</LinearLayout>
44+
45+
</LinearLayout>

app/src/main/res/layout/list_item.xml

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:layout_width="match_parent"
4+
android:layout_height="wrap_content"
5+
android:background="#ffffff"
6+
android:orientation="vertical">
7+
8+
<LinearLayout
9+
android:layout_width="match_parent"
10+
android:layout_height="wrap_content">
11+
12+
<TextView
13+
android:layout_width="wrap_content"
14+
android:layout_height="match_parent"
15+
android:layout_marginLeft="@dimen/faq_answer_margin_start"
16+
android:layout_marginTop="@dimen/faq_question_margin_top"
17+
android:text="@string/answer"
18+
android:textAlignment="center"
19+
android:textColor="#000000"
20+
android:textSize="@dimen/faq_question_text_size" />
21+
22+
<TextView
23+
android:id="@+id/lblListItem"
24+
android:layout_width="fill_parent"
25+
android:layout_height="match_parent"
26+
android:layout_marginLeft="@dimen/faq_answer_margin"
27+
android:paddingBottom="@dimen/list_item_padding"
28+
android:paddingLeft="@dimen/text_padding_top"
29+
android:paddingRight="@dimen/text_padding_top"
30+
android:paddingTop="@dimen/list_item_padding"
31+
android:textSize="@dimen/text_size_wavegen" />
32+
33+
</LinearLayout>
34+
35+
</LinearLayout>

app/src/main/res/menu/activity_main_drawer.xml

+5
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@
4444
android:icon="@drawable/ic_info"
4545
android:title="@string/about_us" />
4646

47+
<item
48+
android:id="@+id/nav_faq"
49+
android:icon="@drawable/ic_feedback_black_24dp"
50+
android:title="@string/faq" />
51+
4752
<item
4853
android:id="@+id/nav_share"
4954
android:icon="@drawable/ic_menu_share"

app/src/main/res/values/dimens.xml

+11
Original file line numberDiff line numberDiff line change
@@ -113,5 +113,16 @@
113113
<dimen name="card_main_layout_padding">16dp</dimen>
114114
<dimen name="image_main_layout_margin">8dp</dimen>
115115
<dimen name="main_content_padding_textview">12dp</dimen>
116+
<dimen name="faq_answer_margin_start">15dp</dimen>
117+
<dimen name="dimen_zero_dp">0dp</dimen>
118+
<dimen name="text_size_wavegen">14sp</dimen>
119+
<dimen name="list_item_padding">5dp</dimen>
120+
<dimen name="text_padding_top">10dp</dimen>
121+
<dimen name="faq_answer_margin">20dp</dimen>
122+
<dimen name="faq_question_text_size">20dp</dimen>
123+
<dimen name="faq_question_margin_top">10dp</dimen>
124+
<dimen name="text_size">17sp</dimen>
125+
<dimen name="list_group_layout_height">52dp</dimen>
126+
<dimen name="list_group_layout_width">52dp</dimen>
116127

117128
</resources>

0 commit comments

Comments
 (0)