DT @07.09.2015: DB incidient count implemented, blank activities added

This commit is contained in:
Dennis Thießen
2015-09-07 11:23:51 +02:00
parent 89ce650489
commit 788793d61c
20 changed files with 397 additions and 106 deletions

View File

@@ -3,7 +3,7 @@
package="org.deke.risk.riskahead" >
<application
android:name=".AppController"
android:name=".helper.AppController"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
@@ -89,7 +89,7 @@
android:exported="false" />
<activity
android:name=".UserConfigActivity"
android:name=".ProfileActivity"
android:label="@string/title_activity_user_config"
android:parentActivityName=".MainActivity" >
</activity>
@@ -97,6 +97,14 @@
android:name=".ReportActivity"
android:label="@string/title_activity_report" >
</activity>
<activity
android:name=".SettingsActivity"
android:label="@string/title_activity_settings" >
</activity>
<activity
android:name=".SubscriptionsActivity"
android:label="@string/title_activity_subscriptions" >
</activity>
</application>
</manifest>

View File

@@ -1,9 +1,7 @@
package org.deke.risk.riskahead;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
@@ -19,13 +17,13 @@ import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.android.volley.Request;
import com.facebook.CallbackManager;
import org.deke.risk.riskahead.fragments.FacebookButtonFragment;
import org.deke.risk.riskahead.fragments.GooglePlusButtonFragment;
import org.deke.risk.riskahead.fragments.TwitterButtonFragment;
import org.deke.risk.riskahead.helper.AppConfig;
import org.deke.risk.riskahead.helper.AppController;
import org.deke.risk.riskahead.helper.SQLiteHandler;
import org.deke.risk.riskahead.helper.SessionManager;
import org.json.JSONException;
@@ -43,12 +41,13 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr
private static final String TAG = LoginActivity.class.getSimpleName();
private CallbackManager callbackManager;
private Button btnSignUpMY;
private String inputMsg;
private TextView input_email;
private TextView input_full_name;
private TextView input_password;
private Context thiscontext;
private ProgressDialog pDialog;
private SessionManager session;
@@ -61,8 +60,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr
Intent intent = getIntent();
inputMsg = intent.getStringExtra(StartActivity.EXTRA_MESSAGE);
callbackManager = CallbackManager.Factory.create();
thiscontext = this;
// Session manager
session = new SessionManager(getApplicationContext());
// Progress dialog
@@ -210,7 +208,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr
}
public void onClick(View view){
if(input_email.getText().toString().isEmpty()){
if(input_email.getText() != null && input_email.getText().toString().isEmpty()){
showMessage("Enter your E-Mail to reset your password");
return;
}
@@ -346,7 +344,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr
String providerType = "local";
if(status.equals("0")){
new AlertDialog.Builder(thiscontext)
new AlertDialog.Builder(getApplicationContext())
.setTitle("Activate your account")
.setMessage("Your account is not activated yet. Please follow the instructions in your E-Mail. Do you want to resent the E-Mail?")
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {

View File

@@ -2,24 +2,80 @@ package org.deke.risk.riskahead;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.FragmentManager;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.beardedhen.androidbootstrap.BootstrapButton;
import org.deke.risk.riskahead.helper.AppConfig;
import org.deke.risk.riskahead.helper.AppController;
import org.deke.risk.riskahead.helper.BaseActivity;
import org.deke.risk.riskahead.helper.SQLiteHandler;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
public class MainActivity extends BaseActivity{
public String inputMsg;
private String mActivityTitle = "RiskAhead";
public static FragmentManager fragmentManager;
private static final String TAG = MainActivity.class.getSimpleName();
Handler mHandler = new Handler();
private SQLiteHandler db;
private String mActivityTitle = "RiskAhead";
private final static int INTERVAL = 1000 * 10; //10 seconds
private TextView incidentCount;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
Intent intent = getIntent();
inputMsg = intent.getStringExtra(StartActivity.EXTRA_MESSAGE);
fragmentManager = getSupportFragmentManager();
incidentCount = (TextView) findViewById(R.id.txt_incidents);
db = new SQLiteHandler(getApplicationContext());
StringRequest strReq = getStringRequestIncidentCount(db.getUserDetails().get("email"));
String tag_string_req = "req_incidents";
AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
findViewById(R.id.btn_report).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
gotoReportActivity();
}
});
findViewById(R.id.btn_view_map).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
gotoMapActivity();
}
});
}
@Override
protected void onPause(){
stopRepeatingTask();
}
@Override
protected void onResume(){
startRepeatingTask();
}
@Override
@@ -31,4 +87,71 @@ public class MainActivity extends BaseActivity{
protected String getActivityName() {
return mActivityTitle;
}
Runnable mHandlerTask = new Runnable()
{
@Override
public void run() {
StringRequest strReq = getStringRequestIncidentCount(db.getUserDetails().get("email"));
String tag_string_req = "req_incidents";
AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
mHandler.postDelayed(mHandlerTask, INTERVAL);
}
};
void startRepeatingTask()
{
mHandlerTask.run();
}
void stopRepeatingTask()
{
mHandler.removeCallbacks(mHandlerTask);
}
private StringRequest getStringRequestIncidentCount(final String email) {
return new StringRequest(Request.Method.POST, AppConfig.URL_REGISTER, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, "Incident count: " + response.toString());
try {
JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error");
if (!error) {
TextView count = (TextView) findViewById(R.id.txt_incidents);
count.setText(jObj.getString("msg"));
} else {
String errorMsg = jObj.getString("error_msg");
Toast.makeText(getApplicationContext(),
errorMsg, Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "E-Mail pw resend Error: " + error.getMessage());
Toast.makeText(getApplicationContext(),
error.getMessage(), Toast.LENGTH_LONG).show();
}
}) {
@Override
protected Map<String, String> getParams() {
// Posting params to register url
Map<String, String> params = new HashMap<String, String>();
params.put("tag", "getincidentcount");
params.put("email", email);
return params;
}
};
}
}

View File

@@ -14,7 +14,7 @@ import org.deke.risk.riskahead.helper.SessionManager;
import java.util.HashMap;
public class UserConfigActivity extends BaseActivity {
public class ProfileActivity extends BaseActivity {
private TextView txtName;
private TextView txtEmail;
private TextView txtTest;
@@ -27,7 +27,7 @@ public class UserConfigActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_user_config);
//setContentView(R.layout.activity_profile);
session = new SessionManager(getApplicationContext());
@@ -54,20 +54,14 @@ public class UserConfigActivity extends BaseActivity {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_user_config, menu);
getMenuInflater().inflate(R.menu.menu_profile, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
@@ -77,7 +71,7 @@ public class UserConfigActivity extends BaseActivity {
@Override
protected int getLayoutResourceId() {
return R.layout.activity_user_config;
return R.layout.activity_profile;
}
@Override

View File

@@ -1,50 +1,33 @@
package org.deke.risk.riskahead;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import org.deke.risk.riskahead.helper.BaseActivity;
import org.deke.risk.riskahead.helper.SQLiteHandler;
public class ReportActivity extends BaseActivity {
private String mActivityTitle = "Report";
private static final String TAG = ReportActivity.class.getSimpleName();
private SQLiteHandler db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_report);
}
//setContentView(R.layout.activity_report);
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_report, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
db = new SQLiteHandler(getApplicationContext());
}
@Override
protected int getLayoutResourceId() {
return 0;
return R.layout.activity_report;
}
@Override
protected String getActivityName() {
return null;
return mActivityTitle;
}
}

View File

@@ -0,0 +1,26 @@
package org.deke.risk.riskahead;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import org.deke.risk.riskahead.helper.BaseActivity;
public class SettingsActivity extends BaseActivity {
private String mActivityTitle = "Settings";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_settings);
}
@Override
protected int getLayoutResourceId() {
return R.layout.activity_settings;
}
@Override
protected String getActivityName() { return mActivityTitle; }
}

View File

@@ -1,6 +1,5 @@
package org.deke.risk.riskahead;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

View File

@@ -0,0 +1,27 @@
package org.deke.risk.riskahead;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import org.deke.risk.riskahead.helper.BaseActivity;
public class SubscriptionsActivity extends BaseActivity {
private String mActivityTitle = "Subscriptions";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_subscriptions);
}
@Override
protected int getLayoutResourceId() {
return R.layout.activity_settings;
}
@Override
protected String getActivityName() { return mActivityTitle; }
}

View File

@@ -1,4 +1,4 @@
package org.deke.risk.riskahead;
package org.deke.risk.riskahead.helper;
import android.app.Application;
import android.text.TextUtils;

View File

@@ -20,7 +20,10 @@ import org.deke.risk.riskahead.LoginActivity;
import org.deke.risk.riskahead.MainActivity;
import org.deke.risk.riskahead.MapsActivity;
import org.deke.risk.riskahead.R;
import org.deke.risk.riskahead.UserConfigActivity;
import org.deke.risk.riskahead.ReportActivity;
import org.deke.risk.riskahead.ProfileActivity;
import org.deke.risk.riskahead.SettingsActivity;
import org.deke.risk.riskahead.SubscriptionsActivity;
import java.util.HashMap;
@@ -30,7 +33,7 @@ public abstract class BaseActivity extends AppCompatActivity {
private DrawerLayout mDrawerLayout;
private ListView mDrawerList;
private ArrayAdapter<String> mAdapter;
ShareActionProvider mShareActionProvider;
private ShareActionProvider mShareActionProvider;
private SQLiteHandler db;
private SessionManager session;
public HashMap<String, String> user;
@@ -66,6 +69,18 @@ public abstract class BaseActivity extends AppCompatActivity {
getSupportActionBar().setHomeButtonEnabled(true);
}
public void logoutUser() {
session.setLogin(false);
db.deleteUsers();
// Launching the login activity
Intent intent = new Intent(this, LoginActivity.class);
intent.putExtra(EXTRA_MESSAGE, "login");
startActivity(intent);
finish();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_common, menu);
@@ -122,22 +137,30 @@ public abstract class BaseActivity extends AppCompatActivity {
@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
Intent intent;
switch (position) {
case 0:
intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
gotoMainActivity();
break;
case 1:
intent = new Intent(getApplicationContext(), MapsActivity.class);
startActivity(intent);
gotoReportActivity();
break;
case 2:
intent = new Intent(getApplicationContext(), UserConfigActivity.class);
startActivity(intent);
gotoMapActivity();
break;
case 3:
gotoProfileActivity();
break;
case 4:
gotoSettingsActivity();
break;
case 5:
gotoSubscriptionsActivity();
break;
case 6:
logoutUser();
break;
default:
Log.d("switch: ", Integer.toString(position));
Log.d("Unknown switch page: ", Integer.toString(position));
break;
}
}
@@ -147,6 +170,42 @@ public abstract class BaseActivity extends AppCompatActivity {
});
}
public void gotoMainActivity(){
Intent intent;
intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
}
public void gotoReportActivity(){
Intent intent;
intent = new Intent(getApplicationContext(), ReportActivity.class);
startActivity(intent);
}
public void gotoMapActivity(){
Intent intent;
intent = new Intent(getApplicationContext(), MapsActivity.class);
startActivity(intent);
}
public void gotoProfileActivity(){
Intent intent;
intent = new Intent(getApplicationContext(), ProfileActivity.class);
startActivity(intent);
}
public void gotoSettingsActivity(){
Intent intent;
intent = new Intent(getApplicationContext(), SettingsActivity.class);
startActivity(intent);
}
public void gotoSubscriptionsActivity(){
Intent intent;
intent = new Intent(getApplicationContext(), SubscriptionsActivity.class);
startActivity(intent);
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
@@ -159,21 +218,6 @@ public abstract class BaseActivity extends AppCompatActivity {
mDrawerToggle.onConfigurationChanged(newConfig);
}
private void setShareIntent() {
if (mShareActionProvider != null) {
// create an Intent with the contents of the TextView
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "Android Development");
shareIntent.putExtra(Intent.EXTRA_TEXT, "Ich empfehle RiskAhead!");
// Make sure the provider knows
// it should work with that Intent
mShareActionProvider.setShareIntent(shareIntent);
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
@@ -194,19 +238,19 @@ public abstract class BaseActivity extends AppCompatActivity {
return super.onOptionsItemSelected(item);
}
/**
* Logging out the user. Will set isLoggedIn flag to false in shared
* preferences Clears the user data from sqlite users table
* */
public void logoutUser() {
session.setLogin(false);
db.deleteUsers();
private void setShareIntent() {
if (mShareActionProvider != null) {
// Launching the login activity
Intent intent = new Intent(this, LoginActivity.class);
intent.putExtra(EXTRA_MESSAGE, "login");
startActivity(intent);
finish();
// create an Intent with the contents of the TextView
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "Android Development");
shareIntent.putExtra(Intent.EXTRA_TEXT, "Ich empfehle RiskAhead!");
// Make sure the provider knows
// it should work with that Intent
mShareActionProvider.setShareIntent(shareIntent);
}
}
protected abstract int getLayoutResourceId();

View File

@@ -3,7 +3,7 @@
xmlns:tools="http://schemas.android.com/tools"
xmlns:bootstrap="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:background="@drawable/vAGZp"
android:background="@drawable/bg_main2"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
@@ -84,7 +84,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_weight="1"
android:text="View Map"
bootstrap:bb_icon_left="fa-map"
bootstrap:bb_icon_left="fa-info"
bootstrap:bb_type="primary"
bootstrap:bb_roundedCorners="true"/>

View File

@@ -4,7 +4,8 @@
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="org.deke.risk.riskahead.UserConfigActivity">
android:background="@drawable/bg_main2"
tools:context="org.deke.risk.riskahead.ProfileActivity">
<LinearLayout
android:id="@+id/content"

View File

@@ -1,12 +1,28 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="org.deke.risk.riskahead.ReportActivity">
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:bootstrap="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:background="@drawable/bg_main2"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ReportActivity">
<TextView android:text="@string/hello_world" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<RelativeLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</RelativeLayout>
<TextView android:text="Report Activity!" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
<ListView
android:id="@+id/navList"
android:layout_width="200dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#ffeeee"/>
</android.support.v4.widget.DrawerLayout>

View File

@@ -0,0 +1,28 @@
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:bootstrap="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:background="@drawable/bg_main2"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SettingsActivity">
<RelativeLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView android:text="Settings Activity!" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
<ListView
android:id="@+id/navList"
android:layout_width="200dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#ffeeee"/>
</android.support.v4.widget.DrawerLayout>

View File

@@ -0,0 +1,28 @@
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:bootstrap="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:background="@drawable/bg_main2"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SubscriptionsActivity">
<RelativeLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView android:text="Subscriptions Activity!" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
<ListView
android:id="@+id/navList"
android:layout_width="200dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#ffeeee"/>
</android.support.v4.widget.DrawerLayout>

View File

@@ -1,7 +1,7 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" tools:context=".LoginActivity">
<item android:id="@+id/action_settings" android:title="@string/action_settings"
<item android:id="@+id/action_about" android:title="@string/action_about"
android:orderInCategory="100" app:showAsAction="never" />
</menu>

View File

@@ -1,7 +1,7 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="org.deke.risk.riskahead.UserConfigActivity">
tools:context="org.deke.risk.riskahead.ProfileActivity">
<item android:id="@+id/action_settings" android:title="@string/action_settings"
android:orderInCategory="100" app:showAsAction="never" />
</menu>

View File

@@ -0,0 +1,7 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="org.deke.risk.riskahead.SettingsActivity">
<item android:id="@+id/action_settings" android:title="@string/action_settings"
android:orderInCategory="100" app:showAsAction="never" />
</menu>

View File

@@ -0,0 +1,7 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="org.deke.risk.riskahead.SubscriptionsActivity">
<item android:id="@+id/action_settings" android:title="@string/action_settings"
android:orderInCategory="100" app:showAsAction="never" />
</menu>

View File

@@ -4,7 +4,7 @@
<string name="txt_welcome_register">Register to RiskAhead</string>
<string name="txt_welcome_login">Log-in to RiskAhead</string>
<string name="txt_resend_password">Forgot your password?\nClick here</string>
<string name="action_settings">Settings</string>
<string name="action_about">About</string>
<string name="txt_policy"><a href="test.com">Terms of Service</a> and\n<a href="test.com">Privacy Policy</a></string>
<string name="hint_full_name">Full Name</string>
<string name="hint_email">E-Mail</string>
@@ -46,4 +46,6 @@
<string name="title_activity_report">ReportActivity</string>
<string name="hello_world">Hello world!</string>
<string name="title_activity_settings">SettingsActivity</string>
<string name="title_activity_subscriptions">SubscriptionsActivity</string>
</resources>