/* * Copyright (C) 2014 Philippine Android Developers Community * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package ph.devcon.android; import android.app.Application; import java.util.ArrayList; import java.util.List; import dagger.ObjectGraph; import ph.devcon.android.attendee.module.AttendeeModule; import ph.devcon.android.auth.module.AuthModule; import ph.devcon.android.base.module.APIModule; import ph.devcon.android.category.module.CategoryModule; import ph.devcon.android.news.module.NewsModule; import ph.devcon.android.profile.module.ProfileModule; import ph.devcon.android.program.module.ProgramModule; import ph.devcon.android.settings.SettingsModule; import ph.devcon.android.speaker.module.SpeakerModule; import ph.devcon.android.sponsor.module.SponsorModule; import ph.devcon.android.technology.module.TechnologyModule; import ph.devcon.android.util.TypeFaceUtil; /** * Created by lope on 9/13/14. */ public class DevConApplication extends Application { public static final String SOURCESANSPRO_SEMIBOLD = "SANS_SERIF"; public static final String SOURCESANSPRO_REGULAR = "SERIF"; public static final String PTSERIF_ITALIC = "MONOSPACE"; public static final String API_ENDPOINT = "http://api.devcon.ph/api/v1/"; static DevConApplication instance; ObjectGraph graph; public DevConApplication() { instance = this; } public static DevConApplication getInstance() { return instance; } public static void injectMembers(Object object) { getInstance().graph.inject(object); } @Override public void onCreate() { initFonts(); graph = buildObjectGraph(); } private void initFonts() { TypeFaceUtil.overrideFont(getApplicationContext(), SOURCESANSPRO_SEMIBOLD, "fonts/SourceSansPro-Semibold.otf"); TypeFaceUtil.overrideFont(getApplicationContext(), SOURCESANSPRO_REGULAR, "fonts/SourceSansPro-Regular.otf"); TypeFaceUtil.overrideFont(getApplicationContext(), PTSERIF_ITALIC, "fonts/pt-serif.italic.ttf"); } protected ObjectGraph buildObjectGraph() { List<Object> objectList = new ArrayList<Object>(); objectList.addAll(getModules()); return ObjectGraph.create(objectList.toArray()); } public List<Object> getModules() { List<Object> objectList = new ArrayList<Object>(); objectList.add(new SettingsModule(this)); objectList.add(new AuthModule(this)); objectList.add(new APIModule(this)); objectList.add(new ProgramModule(this)); objectList.add(new SpeakerModule(this)); objectList.add(new NewsModule(this)); objectList.add(new AttendeeModule(this)); objectList.add(new SponsorModule(this)); objectList.add(new ProfileModule(this)); objectList.add(new CategoryModule(this)); objectList.add(new TechnologyModule(this)); return objectList; } public ObjectGraph getGraph() { return graph; } public void setGraph(ObjectGraph graph) { this.graph = graph; } }