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:
parent
1e748874d9
commit
7ec0599fd9
9 changed files with 87 additions and 15 deletions
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
26
app/src/main/java/be/digitalia/fosdem/utils/ThemeUtils.java
Normal file
26
app/src/main/java/be/digitalia/fosdem/utils/ThemeUtils.java
Normal 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));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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>
|
Loading…
Reference in a new issue