1
0
Fork 0
mirror of https://github.com/MatomoCamp/matomocamp-companion-android.git synced 2024-09-19 16:13:46 +02:00

Added colors to distinguish track types

This commit is contained in:
Christophe Beyls 2017-01-12 17:32:15 +01:00
parent 1e748874d9
commit 7ec0599fd9
9 changed files with 87 additions and 15 deletions

View file

@ -3,6 +3,7 @@ package be.digitalia.fosdem.activities;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.LoaderManager.LoaderCallbacks;
@ -21,6 +22,7 @@ import be.digitalia.fosdem.loaders.LocalCacheLoader;
import be.digitalia.fosdem.model.Event;
import be.digitalia.fosdem.utils.NfcUtils;
import be.digitalia.fosdem.utils.NfcUtils.CreateNfcAppDataCallback;
import be.digitalia.fosdem.utils.ThemeUtils;
/**
* Displays a single event passed either as a complete Parcelable object in extras or as an id in data.
@ -62,10 +64,11 @@ public class EventDetailsActivity extends AppCompatActivity implements LoaderCal
/**
* Initialize event-related configuration after the event has been loaded.
*/
private void initEvent(Event event) {
private void initEvent(@NonNull Event event) {
this.event = event;
// Enable up navigation only after getting the event details
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
ThemeUtils.setActionBarTrackColor(this, event.getTrack().getType());
// Enable Android Beam
NfcUtils.setAppDataPushMessageCallbackIfAvailable(this, this);
}

View file

@ -21,6 +21,7 @@ import be.digitalia.fosdem.model.Event;
import be.digitalia.fosdem.model.Track;
import be.digitalia.fosdem.utils.NfcUtils;
import be.digitalia.fosdem.utils.NfcUtils.CreateNfcAppDataCallback;
import be.digitalia.fosdem.utils.ThemeUtils;
/**
* Track Schedule container, works in both single pane and dual pane modes.
@ -61,6 +62,7 @@ public class TrackScheduleActivity extends AppCompatActivity
bar.setTitle(track.toString());
bar.setSubtitle(day.toString());
setTitle(String.format("%1$s, %2$s", track.toString(), day.toString()));
ThemeUtils.setActionBarTrackColor(this, track.getType());
isTabletLandscape = getResources().getBoolean(R.bool.tablet_landscape);

View file

@ -7,13 +7,14 @@ import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.app.LoaderManager.LoaderCallbacks;
import android.support.v4.content.ContextCompat;
import android.support.v4.content.Loader;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import com.viewpagerindicator.PageIndicator;
import com.viewpagerindicator.UnderlinePageIndicator;
import be.digitalia.fosdem.R;
import be.digitalia.fosdem.db.DatabaseManager;
@ -23,6 +24,7 @@ import be.digitalia.fosdem.model.Day;
import be.digitalia.fosdem.model.Track;
import be.digitalia.fosdem.utils.NfcUtils;
import be.digitalia.fosdem.utils.NfcUtils.CreateNfcAppDataCallback;
import be.digitalia.fosdem.utils.ThemeUtils;
import be.digitalia.fosdem.widgets.ContentLoadingProgressBar;
/**
@ -43,7 +45,7 @@ public class TrackScheduleEventActivity extends AppCompatActivity implements Loa
private int initialPosition = -1;
private ContentLoadingProgressBar progress;
private ViewPager pager;
private PageIndicator pageIndicator;
private UnderlinePageIndicator pageIndicator;
private TrackScheduleEventAdapter adapter;
@Override
@ -59,7 +61,8 @@ public class TrackScheduleEventActivity extends AppCompatActivity implements Loa
progress = (ContentLoadingProgressBar) findViewById(R.id.progress);
pager = (ViewPager) findViewById(R.id.pager);
adapter = new TrackScheduleEventAdapter(getSupportFragmentManager());
pageIndicator = (PageIndicator) findViewById(R.id.indicator);
pageIndicator = (UnderlinePageIndicator) findViewById(R.id.indicator);
pageIndicator.setSelectedColor(ContextCompat.getColor(this, track.getType().getColorResId()));
if (savedInstanceState == null) {
initialPosition = extras.getInt(EXTRA_POSITION, -1);
@ -71,6 +74,7 @@ public class TrackScheduleEventActivity extends AppCompatActivity implements Loa
bar.setDisplayHomeAsUpEnabled(true);
bar.setTitle(track.toString());
bar.setSubtitle(day.toString());
ThemeUtils.setActionBarTrackColor(this, track.getType());
// Enable Android Beam
NfcUtils.setAppDataPushMessageCallbackIfAvailable(this, this);

View file

@ -23,6 +23,7 @@ import java.util.Date;
import be.digitalia.fosdem.R;
import be.digitalia.fosdem.db.DatabaseManager;
import be.digitalia.fosdem.model.Event;
import be.digitalia.fosdem.model.Track;
import be.digitalia.fosdem.widgets.MultiChoiceHelper;
public class BookmarksAdapter extends EventsAdapter {
@ -100,8 +101,10 @@ public class BookmarksAdapter extends EventsAdapter {
String personsSummary = event.getPersonsSummary();
holder.persons.setText(personsSummary);
holder.persons.setVisibility(TextUtils.isEmpty(personsSummary) ? View.GONE : View.VISIBLE);
holder.trackName.setText(event.getTrack().getName());
holder.trackName.setContentDescription(context.getString(R.string.track_content_description, event.getTrack().getName()));
Track track = event.getTrack();
holder.trackName.setText(track.getName());
holder.trackName.setTextColor(ContextCompat.getColor(holder.trackName.getContext(), track.getType().getColorResId()));
holder.trackName.setContentDescription(context.getString(R.string.track_content_description, track.getName()));
Date startTime = event.getStartTime();
Date endTime = event.getEndTime();

View file

@ -4,6 +4,7 @@ import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.drawable.Drawable;
import android.support.v4.content.ContextCompat;
import android.support.v4.widget.TextViewCompat;
import android.support.v7.widget.AppCompatDrawableManager;
import android.text.TextUtils;
@ -19,6 +20,7 @@ import be.digitalia.fosdem.R;
import be.digitalia.fosdem.activities.EventDetailsActivity;
import be.digitalia.fosdem.db.DatabaseManager;
import be.digitalia.fosdem.model.Event;
import be.digitalia.fosdem.model.Track;
import be.digitalia.fosdem.utils.DateUtils;
import be.digitalia.fosdem.widgets.MultiChoiceHelper;
@ -73,8 +75,10 @@ public class EventsAdapter extends RecyclerViewCursorAdapter<EventsAdapter.ViewH
String personsSummary = event.getPersonsSummary();
holder.persons.setText(personsSummary);
holder.persons.setVisibility(TextUtils.isEmpty(personsSummary) ? View.GONE : View.VISIBLE);
holder.trackName.setText(event.getTrack().getName());
holder.trackName.setContentDescription(context.getString(R.string.track_content_description, event.getTrack().getName()));
Track track = event.getTrack();
holder.trackName.setText(track.getName());
holder.trackName.setTextColor(ContextCompat.getColor(holder.trackName.getContext(), track.getType().getColorResId()));
holder.trackName.setContentDescription(context.getString(R.string.track_content_description, track.getName()));
Date startTime = event.getStartTime();
Date endTime = event.getEndTime();

View file

@ -6,6 +6,7 @@ import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.LoaderManager.LoaderCallbacks;
import android.support.v4.content.ContextCompat;
import android.support.v4.content.Loader;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.LinearLayoutManager;
@ -127,6 +128,7 @@ public class TracksListFragment extends RecyclerViewFragment implements LoaderCa
holder.track = DatabaseManager.toTrack(cursor, holder.track);
holder.name.setText(holder.track.getName());
holder.type.setText(holder.track.getType().getNameResId());
holder.type.setTextColor(ContextCompat.getColor(holder.type.getContext(), holder.track.getType().getColorResId()));
}
}

View file

@ -2,6 +2,7 @@ package be.digitalia.fosdem.model;
import android.os.Parcel;
import android.os.Parcelable;
import android.support.annotation.ColorRes;
import android.support.annotation.StringRes;
import be.digitalia.fosdem.R;
@ -9,23 +10,37 @@ import be.digitalia.fosdem.R;
public class Track implements Parcelable {
public enum Type {
other(R.string.other),
keynote(R.string.keynote),
maintrack(R.string.main_track),
devroom(R.string.developer_room),
lightningtalk(R.string.lightning_talk),
certification(R.string.certification_exam);
other(R.string.other, R.color.track_type_other, R.color.track_type_other_dark),
keynote(R.string.keynote, R.color.track_type_keynote, R.color.track_type_keynote_dark),
maintrack(R.string.main_track, R.color.track_type_main, R.color.track_type_main_dark),
devroom(R.string.developer_room, R.color.track_type_developer_room, R.color.track_type_developer_room_dark),
lightningtalk(R.string.lightning_talk, R.color.track_type_lightning_talk, R.color.track_type_lightning_talk_dark),
certification(R.string.certification_exam, R.color.track_type_certification_exam, R.color.track_type_certification_exam_dark);
private final int nameResId;
private final int colorResId;
private final int darkColorResId;
Type(@StringRes int nameResId) {
Type(@StringRes int nameResId, @ColorRes int colorResId, @ColorRes int darkColorResId) {
this.nameResId = nameResId;
this.colorResId = colorResId;
this.darkColorResId = darkColorResId;
}
@StringRes
public int getNameResId() {
return nameResId;
}
@ColorRes
public int getColorResId() {
return colorResId;
}
@ColorRes
public int getDarkColorResId() {
return darkColorResId;
}
}
private String name;

View file

@ -0,0 +1,26 @@
package be.digitalia.fosdem.utils;
import android.app.ActivityManager;
import android.graphics.drawable.ColorDrawable;
import android.os.Build;
import android.support.annotation.NonNull;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import be.digitalia.fosdem.model.Track;
public class ThemeUtils {
public static void setActionBarTrackColor(@NonNull AppCompatActivity activity, @NonNull Track.Type trackType) {
ActionBar actionBar = activity.getSupportActionBar();
final int color = ContextCompat.getColor(activity, trackType.getColorResId());
actionBar.setBackgroundDrawable(new ColorDrawable(color));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
final int darkColor = ContextCompat.getColor(activity, trackType.getDarkColorResId());
activity.getWindow().setStatusBarColor(darkColor);
activity.setTaskDescription(new ActivityManager.TaskDescription(null, null, color | 0xFF000000));
}
}
}

View file

@ -13,4 +13,17 @@
<color name="error_material">#dd2c00</color>
<color name="shortcut_background">#F5F5F5</color>
<color name="track_type_keynote">@color/color_primary</color>
<color name="track_type_keynote_dark">@color/color_primary_dark</color>
<color name="track_type_main">#d32f2f</color>
<color name="track_type_main_dark">#b71c1c</color>
<color name="track_type_developer_room">#303f9f</color>
<color name="track_type_developer_room_dark">#1a237e</color>
<color name="track_type_lightning_talk">#388e3c</color>
<color name="track_type_lightning_talk_dark">#1b5e20</color>
<color name="track_type_certification_exam">#795548</color>
<color name="track_type_certification_exam_dark">#5d4037</color>
<color name="track_type_other">#757575</color>
<color name="track_type_other_dark">#616161</color>
</resources>