Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Batch of crash fixes and tweaks #21

Merged
merged 50 commits into from
Mar 15, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
dae3a04
Cmd-alt-L on the whole app module, something changed
rock3r Nov 24, 2016
4f0a354
Well apparently some stuff was not reformatted 😡
rock3r Nov 24, 2016
f187b41
Only include TweetUI as dependency
rock3r Nov 24, 2016
ddd6852
Rename themes to Theme.Connfa.*
rock3r Nov 24, 2016
1dbc7cd
Create Social Feed Activity
rock3r Nov 24, 2016
812259b
Update GMS and appcompat versions
rock3r Nov 24, 2016
91b06a5
Add socialQuery to application.properties sample
rock3r Nov 24, 2016
37b185a
Rename toolbar ID to R.id.toolbar
rock3r Nov 24, 2016
a50d405
Rename enum members to be uppercase
rock3r Nov 24, 2016
fa1db4a
Create MVP content for Social Feed activity
rock3r Nov 24, 2016
056f441
Show SocialFeedActivity when navigating from Nav Drawer
rock3r Nov 24, 2016
c1a35f5
Fix toolbar theming in social feed screen
rock3r Nov 24, 2016
3f57e1a
Deprecate SocialMediaFragment
rock3r Nov 24, 2016
800a446
Merge pull request #12 from rock3r/Twitter_feed_again_🐦
danybony Nov 25, 2016
82273e4
Merge remote-tracking branch 'mainline/github-master' into Working_br…
rock3r Dec 3, 2016
cdecf40
Merge pull request #13 from rock3r/Working_branch
frapontillo Dec 3, 2016
43396b4
Create setup docs
rock3r Dec 3, 2016
bdc5d97
Create CONTRIBUTORS.md
rock3r Dec 3, 2016
b6fde54
Update README.md
rock3r Dec 3, 2016
8672762
Add link to setup docs in readme
rock3r Dec 4, 2016
ac88d50
Merge branch 'develop' into add_setup_docs
rock3r Dec 4, 2016
733f064
Merge pull request #14 from rock3r/add_setup_docs
frapontillo Dec 4, 2016
081eaca
Use exclusions for IDE settings ignores
rock3r Dec 12, 2016
a15a73f
Merge pull request #15 from rock3r/gitignore-improvements
frapontillo Dec 12, 2016
188e00d
Update Gradle plugin 2.2.2 -> 2.2.3
rock3r Dec 13, 2016
2b3fcbc
Update build tools 25.0.0 -> 25.0.2
rock3r Dec 13, 2016
dc7d179
Update Play Services 10.0.0 -> 10.0.1
rock3r Dec 13, 2016
46ce8b9
Update travis.yml for build tools 25.0.2
frapontillo Dec 13, 2016
4301b58
Merge pull request #16 from rock3r/Update_Gradle_plugin_and_deps
frapontillo Dec 13, 2016
db4a1ac
Move the apply-from to the root build.gradle
rock3r Dec 13, 2016
55505bf
Merge pull request #17 from rock3r/Improve_build
frapontillo Dec 13, 2016
ea7f050
Update Gradle v3.1 -> v3.2.1
rock3r Dec 28, 2016
9922520
Merge branch 'develop' into Improve_build
rock3r Dec 28, 2016
13ab8d1
Merge pull request #18 from rock3r/Improve_build
danybony Dec 28, 2016
26feddb
Fix crash in EventHolderFragment due to task leak
rock3r Dec 28, 2016
8711686
Remove comments and reorder code
rock3r Dec 28, 2016
849b443
Remove unneeded WeakReference in task
rock3r Dec 28, 2016
7f43708
Merge pull request #19 from rock3r/CA-14_Fix_Events_screen_crash
danybony Dec 29, 2016
0f5e53f
Refactor asynctasks in FloorPlanFragment
rock3r Dec 29, 2016
258ac4b
Reorder methods and alter lifecycle
rock3r Dec 29, 2016
4e84e87
Refactor one of the callbacks
rock3r Dec 29, 2016
06a820d
Make sure we can only run one load plans task at a time
rock3r Dec 29, 2016
66a86eb
Make sure we can only run one load image task at a time
rock3r Dec 29, 2016
3e2b9c4
Rename view fields
rock3r Dec 29, 2016
3f0c88e
Reorder methods in FloorPlanFragment
rock3r Jan 4, 2017
7f92351
Merge pull request #20 from rock3r/CA-16_Fix_floor_plan_crash
danybony Jan 4, 2017
5d0e189
Add place and speakers to notification text
danybony Jan 11, 2017
6616bb5
Extract parametrised string for notification text
danybony Jan 11, 2017
bfa9ccf
Extract speakers names index checks to methods
danybony Jan 11, 2017
f94d494
Merge pull request #21 from rock3r/updated_notification_text
fourlastor Jan 11, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 12 additions & 11 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,18 @@ local.properties
*.iml
*.ipr
*.iws
**/.idea/shelf
**/.idea/workspace.xml
**/.idea/tasks.xml
**/.idea/datasources.xml
**/.idea/dataSources.ids
**/.idea/gradle.xml
**/.idea/misc.xml
**/.idea/modules.xml
**/.idea/libraries
**/.idea/dictionaries
**/.idea/runConfigurations.xml
**/.idea/

# IDEA/Android Studio Ignore exceptions
!/.idea/vcs.xml
!/.idea/fileTemplates/
!/.idea/inspectionProfiles/
!/.idea/scopes/
!/.idea/codeStyleSettings.xml
!/.idea/.name
!/.idea/encodings.xml
!/.idea/copyright/
!/.idea/compiler.xml

# OSX
*.DS_Store
Expand Down
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ android:
- tools

# The BuildTools version used by your project
- build-tools-25.0.0
- build-tools-25.0.2

# The SDK version used to compile your project
- android-25
Expand Down
6 changes: 6 additions & 0 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Connfa is brought to you by:

* [Lemberg Solutions](http://lemberg.co.uk) - [@lemberg](https://github.com/lemberg)
* Sebastiano Poggi - [@rock3r](https://github.com/rock3r)
* Francesco Pontillo - [@frapontillo](https://github.com/frapontillo)
* Roberto Orgiu - [@tiwiz](https://github.com/tiwiz)
8 changes: 6 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
Documentation is available on [http://connfa.com/](http://connfa.com/)
# Connfa

Project is supported by [Lemberg Solutions](http://lemberg.co.uk)
Connfa is an open source platform for conferences to provide web and native apps to their attendees. Documentation is available on [http://connfa.com/](http://connfa.com/). The project is supported by [Lemberg Solutions](http://lemberg.co.uk) and by independent contributors (see CONTRIBUTORS.md).

# Setting up the app

See [`docs/setup.md`](docs/setup.md).
11 changes: 7 additions & 4 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
apply from: '../dependencies.gradle'

buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
Expand Down Expand Up @@ -72,6 +70,10 @@ android {
.or(buildProperties.env['BASE_URL'])
.string

resValueString 'social_query', buildProperties.application['socialQuery']
.or('#AndroidDev')
.string

}

if (System.getenv('CI') == null) {
Expand All @@ -97,6 +99,8 @@ android {
}

dependencies {
compile project(':drupalSDK')

compile libraries.app.annotations
compile libraries.app.gson
compile libraries.app.volley
Expand All @@ -114,8 +118,7 @@ dependencies {
compile(libraries.app.crashlytics) {
transitive = true
}
compile project(':drupalSDK')
compile libraries.app.twitter
compile libraries.app.tweetUi
}

apply plugin: 'com.google.gms.google-services'
18 changes: 12 additions & 6 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

<application
android:name="com.connfa.ConnfaApplication"
android:theme="@style/Theme.DrupalCon.Home"
android:theme="@style/Theme.Connfa.Home"
android:allowBackup="true"
android:fullBackupContent="false"
android:icon="@drawable/ic_launcher"
Expand All @@ -20,7 +20,7 @@

<activity
android:name="com.connfa.ui.activity.SplashActivity"
android:theme="@style/Theme.DrupalCon.Home"
android:theme="@style/Theme.Connfa.Home"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
Expand All @@ -31,23 +31,29 @@

<activity
android:name="com.connfa.ui.activity.HomeActivity"
android:theme="@style/Theme.DrupalCon.Home"
android:theme="@style/Theme.Connfa.Home"
android:launchMode="singleTask"
android:screenOrientation="portrait" />

<activity
android:name="com.connfa.ui.activity.SpeakerDetailsActivity"
android:theme="@style/Theme.DrupalCon.Speaker"
android:theme="@style/Theme.Connfa.Speaker"
android:screenOrientation="portrait" />

<activity
android:name="com.connfa.ui.activity.AboutDetailsActivity"
android:theme="@style/Theme.DrupalCon.About"
android:theme="@style/Theme.Connfa.About"
android:screenOrientation="portrait" />

<activity
android:name="com.connfa.ui.activity.EventDetailsActivity"
android:theme="@style/Theme.DrupalCon.Event"
android:theme="@style/Theme.Connfa.Event"
android:screenOrientation="portrait" />

<activity
android:name="com.connfa.social.SocialFeedActivity"
android:label="@string/activity_social_feed"
android:theme="@style/Theme.Connfa.SocialFeed"
android:screenOrientation="portrait" />

<receiver android:name="com.connfa.receiver.NotifyReceiver" />
Expand Down
5 changes: 3 additions & 2 deletions app/src/main/java/com/connfa/ConnfaApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@
import com.ls.drupal.DrupalClient;
import com.ls.http.base.BaseRequest;
import com.ls.util.image.DrupalImageView;
import com.twitter.sdk.android.Twitter;
import com.twitter.sdk.android.core.TwitterAuthConfig;
import com.twitter.sdk.android.core.TwitterCore;
import com.twitter.sdk.android.tweetui.TweetUi;

import io.fabric.sdk.android.Fabric;
import timber.log.Timber;
Expand Down Expand Up @@ -55,6 +56,6 @@ private void setupFabric() {
getString(R.string.api_value_twitter_api_key),
getString(R.string.api_value_twitter_secret)
);
Fabric.with(this, new Crashlytics(), new Twitter(authConfig));
Fabric.with(this, new Crashlytics(), new TwitterCore(authConfig), new TweetUi());
}
}
6 changes: 3 additions & 3 deletions app/src/main/java/com/connfa/model/UpdatesManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,11 @@ public class UpdatesManager {
public static int convertEventIdToEventModePos(int eventModePos) {
switch (eventModePos) {
case PROGRAMS_REQUEST_ID:
return DrawerManager.EventMode.Program.ordinal();
return DrawerManager.EventMode.PROGRAM.ordinal();
case BOFS_REQUEST_ID:
return DrawerManager.EventMode.Bofs.ordinal();
return DrawerManager.EventMode.BOFS.ordinal();
case SOCIALS_REQUEST_ID:
return DrawerManager.EventMode.Social.ordinal();
return DrawerManager.EventMode.SOCIAL.ordinal();
}
return 0;
}
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/com/connfa/model/dao/EventDao.java
Original file line number Diff line number Diff line change
Expand Up @@ -368,7 +368,7 @@ public List<SpeakerDetailsEvent> getEventsBySpeakerId(long speakerId) {
event.setEventName(cursor.getString(cursor.getColumnIndex("_name")));
event.setLevelName(cursor.getString(cursor.getColumnIndex("level_name")));
event.setTrackName(cursor.getString(cursor.getColumnIndex("track_name")));
event.setDate(getContext(), cursor.getLong(cursor.getColumnIndex( "_date")));
event.setDate(getContext(), cursor.getLong(cursor.getColumnIndex("_date")));
event.setFavorite(cursor.getInt(cursor.getColumnIndex("_favorite")) == 1);
event.setPlace(cursor.getString(cursor.getColumnIndex("_place")));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ private boolean containsData(E entity) {
public final int deleteData(I entity) {
ILAPIDBFacade facade = getFacade();
return facade.delete(getTableName(), getSearchCondition(),
getSearchConditionArguments(entity)
getSearchConditionArguments(entity)
);
}

Expand All @@ -64,7 +64,7 @@ public final int deleteDataSafe(I entity) {
facade.open();

return facade.delete(getTableName(), getSearchCondition(),
getSearchConditionArguments(entity)
getSearchConditionArguments(entity)
);
} finally {
facade.close();
Expand Down Expand Up @@ -110,7 +110,7 @@ private List<E> getData(String condition, String[] arguments) {

ILAPIDBFacade facade = getFacade();
Cursor cursor = facade.getAllRecords(getTableName(), null,
condition, arguments
condition, arguments
);

boolean moved = cursor.moveToFirst();
Expand Down Expand Up @@ -293,7 +293,7 @@ private int updateData(E entity) {

ILAPIDBFacade facade = getFacade();
return facade.update(getTableName(), getSearchCondition(),
getSearchConditionArguments(entity.getId()), values
getSearchConditionArguments(entity.getId()), values
);
}

Expand Down
34 changes: 17 additions & 17 deletions app/src/main/java/com/connfa/model/database/DatabaseFacade.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ class DatabaseFacade implements ILAPIDBFacade {

private final Context context;
private int openCounter = 0;

DatabaseFacade(Context context, DBInfo dbInfo) {
this.context = context;
this.dbInfo = dbInfo;
Expand Down Expand Up @@ -136,26 +136,26 @@ public int clearTable(String table) {

public Cursor getAllRecords(String table, String[] columns, String selection) {
return db.query(true,
table,
columns,
selection,// selection
null,// selection args
null,// groupBy
null,// having
null,// order by
null);
table,
columns,
selection,// selection
null,// selection args
null,// groupBy
null,// having
null,// order by
null);
}

public Cursor getAllRecords(String table, String[] columns, String selection, String[] selectionArgs) {
return db.query(true,
table,
columns,
selection,// selection
selectionArgs,// selection args
null,// groupBy
null,// having
null,// order by
null);
table,
columns,
selection,// selection
selectionArgs,// selection args
null,// groupBy
null,// having
null,// order by
null);
}

public String getQuery(int resId) {
Expand Down
84 changes: 70 additions & 14 deletions app/src/main/java/com/connfa/receiver/NotifyReceiver.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,38 +9,94 @@
import android.support.v4.app.NotificationCompat;

import com.connfa.R;
import com.connfa.model.Model;
import com.connfa.model.data.EventDetailsEvent;
import com.connfa.model.data.Speaker;
import com.connfa.model.managers.EventManager;
import com.connfa.model.managers.SpeakerManager;
import com.connfa.ui.activity.EventDetailsActivity;
import com.connfa.ui.activity.HomeActivity;
import com.connfa.utils.AlarmTask;

import java.util.List;

import static android.R.attr.id;

public class NotifyReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
long eventId = intent.getLongExtra(AlarmTask.EXTRA_ID, -1);
long day = intent.getLongExtra(AlarmTask.EXTRA_DAY, -1);
String text = intent.getStringExtra(AlarmTask.EXTRA_TEXT);
showNotification(context, eventId, day, text);
public void onReceive(final Context context, Intent intent) {
long eventId = intent.getLongExtra(AlarmTask.EXTRA_ID, -1);
long day = intent.getLongExtra(AlarmTask.EXTRA_DAY, -1);

SpeakerManager speakerManager = Model.getInstance().getSpeakerManager();
List<Speaker> speakerList = speakerManager.getSpeakersByEventId(eventId);

EventManager eventManager = Model.getInstance().getEventManager();
EventDetailsEvent event = eventManager.getEventById(eventId);
if (event != null) {
showNotification(context, event, speakerList, day);
}

}

private void showNotification(Context context, long id, long day, String text) {
String title = context.getString(R.string.dont_miss_it);
private void showNotification(Context context, EventDetailsEvent event, List<Speaker> speakerList, long day) {
String title = event.getEventName();
int icon = android.R.drawable.ic_dialog_info;

Intent intent = new Intent(context, HomeActivity.class);
intent.putExtra(EventDetailsActivity.EXTRA_EVENT_ID, id);
intent.putExtra(EventDetailsActivity.EXTRA_DAY, day);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
builder.setSmallIcon(icon);
builder.setContentTitle(title);
builder.setContentText(text);
builder.setAutoCancel(true);
builder.setContentIntent(contentIntent);
builder.setDefaults(Notification.DEFAULT_ALL);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
.setSmallIcon(icon)
.setContentTitle(title)
.setContentText(createContentText(context, event))
.setAutoCancel(true)
.setContentIntent(contentIntent)
.setStyle(new NotificationCompat.BigTextStyle()
.bigText(createBigText(context, event, speakerList)))
.setDefaults(Notification.DEFAULT_ALL);

NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(0, builder.build());
}

private CharSequence createContentText(Context context, EventDetailsEvent event) {
return context.getString(R.string.start_in_5_minutes_in_place, event.getPlace());
}

private CharSequence createBigText(Context context, EventDetailsEvent event, List<Speaker> speakerList) {
String speakersNames = createSpeakersNames(speakerList);
return context.getString(R.string.start_in_5_minutes_in_place_speakers, event.getPlace(), speakersNames);
}

private String createSpeakersNames(List<Speaker> speakerList) {
if (speakerList.isEmpty()) {
return "";
}
StringBuilder sb = new StringBuilder("by ");
for (int i = 0; i < speakerList.size(); i++) {
sb.append(createSpeakerFullName(speakerList.get(i)));
if (isBeforeSecondToLast(speakerList, i)) {
sb.append(", ");
} else if (isSecondToLast(speakerList, i)) {
sb.append(" and ");
}
}
return sb.toString();
}

private boolean isBeforeSecondToLast(List<Speaker> speakerList, int i) {
return i < speakerList.size() - 2;
}

private boolean isSecondToLast(List<Speaker> speakerList, int i) {
return i == speakerList.size() - 2;
}

private String createSpeakerFullName(Speaker speaker) {
return speaker.getFirstName() + " " + speaker.getLastName();
}
}
Loading